Summary Files Commits Branches @commit @diff @stats
diff options
context:
space:
mode:
Commit7197424f34b22b92a416f7d9e85bf3d5e30e931d (patch)
Author
 Syndamia <kamen@syndamia.com>
2026-02-22 19:19:50 +0200
Committer
 Syndamia <kamen@syndamia.com>
2026-02-22 19:22:03 +0200
Files806fd6deea49389cd2211060d7cd4ed708c73f49
syndamia.com-7197424f34b22b92a416f7d9e85bf3d5e30e931d.tar
syndamia.com-7197424f34b22b92a416f7d9e85bf3d5e30e931d.tar.gz
syndamia.com-7197424f34b22b92a416f7d9e85bf3d5e30e931d.zip
Parent40cfbcdf753e5666578796046ca2a5f5772aa0fb (diff)
feat(teaching/oop-2025/w1): Add exercise fixes
1 files changed, 21 insertions, 4 deletions
-rw-r--r--src/teaching/oop-2025/week01/index.du25
diff --git a/src/teaching/oop-2025/week01/index.du b/src/teaching/oop-2025/week01/index.du
index bd2d034..bdfa9b2 100644
--- a/src/teaching/oop-2025/week01/index.du
+++ b/src/teaching/oop-2025/week01/index.du
@@ -2,11 +2,13 @@
'define expected-reading 2 min
'define created 17 February 2026
-'define edited 18 February 2026
+'define edited 22 February 2026
[$pagenav]
.warn Както винаги, [=НЕ=] може да използвате външни библиотеки и (почти) всичко от стандартната библиотека!
+.info [*(22.02.2026)*] По-подробни условия, оправени някои грешки в условията.
+
## За решаване
### Задача 1
@@ -22,7 +24,7 @@ void deleteMatrix(int**& matrix, unsigned rows); // Запишете nullptr в
int sumMatrix(const int** matrix, unsigned rows, unsigned cols);
Поставете техните имплементации във файл [`matrix.cpp`] и техните дефиниции в [`matrix.h`].
-Естествено, главната функция [=трябва да се намира извън [`arrmath.cpp`]!=]
+Естествено, главната функция [=трябва да се намира извън [`matrix.cpp`]!=]
От входа получавате размерите и стойностите на две матрици с цели числа.
Изкарайте разликата, между сумата на елементите на първата матрица и на втората матрица.
@@ -53,9 +55,13 @@ int sumMatrix(const int** matrix, unsigned rows, unsigned cols);
Реализирайте следните функции:
```c++
+// Сума на стойностите в elements
int sum(const int* elements, unsigned length);
-int average(const int* elements, unsigned length);
+// Средно аритметично на стойностите в elements
+double average(const int* elements, unsigned length);
+// Най-голямата стойност в elements
int largest(const int* elements, unsigned length);
+// Най-малката стойност в elements
int smallest(const int* elements, unsigned length);
// Връща индекса на първото срещане на elementToSearch
unsigned findIndex(const int* elements, unsigned length, int elementToSearch);
@@ -77,7 +83,7 @@ unsigned findIndex(const int* elements, unsigned length, int elementToSearch);
|: 5 2 1 3 5 4
|: 3
-|: 6 10 -2 17 0 0 1
+|: 6 10 -2 7 0 0 1
|: 4
|: 8 1 1 1 1 10 10 10 10
@@ -89,9 +95,14 @@ unsigned findIndex(const int* elements, unsigned length, int elementToSearch);
Реализирайте следните функции във файлове [`stringHelpers.cpp`] и [`stringHelpers.h`]:
```c++
+// Създава динамично-заделен низ по подадената дължина
char* newString(unsigned length);
+// Създава динамично-заделен низ, копие на подадения низ
char* newString(const char* string);
+// Слепява first и second, като поставя separator между тях (ако е валиден) и
+// връща резултатния (динамичо-заделен) низ
char* concatStrings(const char* first, const char* second, const char* separator);
+// Освобождава паметта на динамичо-заделен низ
void deleteString(char*& string); // Запишете nullptr в string!
Реализирайте следните функции във файлове [`ioHelpers.cpp`] и [`ioHelpers.h`]:
@@ -101,7 +112,13 @@ void deleteString(char*& string); // Запишете nullptr в string!
// като предоставя prompt преди въведената стойност
// При невалидна стойност, пита пак за вход
int readInteger(const char* prompt, int min, int max);
+// Прочита от потребителския вход число с плаваща запетая между min и max включително,
+// като предоставя prompt преди въведената стойност
+// При невалидна стойност, пита пак за вход
double readDouble(const char* prompt, double min, double max);
+// Прочита от потребителския вход един ред текст,
+// като предоставя prompt преди въведената стойност
+// При невалидна стойност, пита пак за вход
char* readString(const char* prompt);
За реализацията им използвайте [`stringHelpers`]!