From 771f48b96a1db631a04942c0988fdf8f7a364d2b Mon Sep 17 00:00:00 2001 From: Angel Dimitriev Date: Wed, 3 Nov 2021 13:25:03 +0200 Subject: Update README.md --- Sem. 03/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Sem. 03/README.md b/Sem. 03/README.md index dae7155..768614b 100644 --- a/Sem. 03/README.md +++ b/Sem. 03/README.md @@ -160,5 +160,7 @@ do +**Задача 15:** Да се напише програма, която приема цяло положително число n и отпечатва следната папионка: +![enter image description here](https://i.ibb.co/FhvpYHP/pap.png) -- cgit v1.3.1-23-gd82d From 7f3e540097425cde3356de7d27e5b47e977ccaa0 Mon Sep 17 00:00:00 2001 From: Angel Dimitriev Date: Wed, 3 Nov 2021 13:28:45 +0200 Subject: Update drawing_examples.txt --- Sem. 03/drawing_examples.txt | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/Sem. 03/drawing_examples.txt b/Sem. 03/drawing_examples.txt index d8fad73..d50ae16 100644 --- a/Sem. 03/drawing_examples.txt +++ b/Sem. 03/drawing_examples.txt @@ -120,6 +120,13 @@ $ $ $ $ . . . . . . . . . . . +вход: 5 +. . . . . . . . . . +. . . . +. . . . . . . +. . . . +. . . . . . . . . . + @@ -153,3 +160,30 @@ $ $ $ $ 1 121 1 + +задача 15: + +вход: 3 + +1 1 +1 2 2 1 +1 2 3 --- 3 2 1 +1 2 2 1 +1 1 + +вход: 4 +1 1 +1 2 2 1 +1 2 3 3 2 1 +1 2 3 4 -------- 4 3 2 1 +1 2 3 3 2 1 +1 2 2 1 +1 1 + + +вход: 2 + +1 1 +1 2 – 2 1 +1 1 + -- cgit v1.3.1-23-gd82d From 5f907f416b30533da40965c54463fa3b953b9db4 Mon Sep 17 00:00:00 2001 From: Angel Dimitriev Date: Wed, 3 Nov 2021 16:15:22 +0200 Subject: Update drawing_examples.txt --- Sem. 03/drawing_examples.txt | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/Sem. 03/drawing_examples.txt b/Sem. 03/drawing_examples.txt index d50ae16..73e3130 100644 --- a/Sem. 03/drawing_examples.txt +++ b/Sem. 03/drawing_examples.txt @@ -172,18 +172,19 @@ $ $ $ $ 1 1 вход: 4 -1 1 -1 2 2 1 -1 2 3 3 2 1 -1 2 3 4 -------- 4 3 2 1 -1 2 3 3 2 1 -1 2 2 1 -1 1 +1 1 +1 2 2 1 +1 2 3 3 2 1 +1 2 3 4 ---- 4 3 2 1 +1 2 3 3 2 1 +1 2 2 1 +1 1 вход: 2 -1 1 -1 2 – 2 1 -1 1 +1 1 +1 2 –- 2 1 +1 1 + -- cgit v1.3.1-23-gd82d From e9b2e3066d218e673eca87959205772cf72b95b4 Mon Sep 17 00:00:00 2001 From: Angel Dimitriev Date: Wed, 3 Nov 2021 16:16:51 +0200 Subject: Update README.md --- Sem. 03/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sem. 03/README.md b/Sem. 03/README.md index 768614b..35624d4 100644 --- a/Sem. 03/README.md +++ b/Sem. 03/README.md @@ -161,6 +161,6 @@ do **Задача 15:** Да се напише програма, която приема цяло положително число n и отпечатва следната папионка: -![enter image description here](https://i.ibb.co/FhvpYHP/pap.png) +![enter image description here](https://i.ibb.co/NKSPm4z/ddz.png) -- cgit v1.3.1-23-gd82d From 1d126d6a6aa59e7c3aadc3943b80395bb28865ef Mon Sep 17 00:00:00 2001 From: Angel Dimitriev Date: Wed, 3 Nov 2021 18:00:27 +0200 Subject: Update README.md --- Sem. 04/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sem. 04/README.md b/Sem. 04/README.md index 1d5fcb8..8e8acb0 100644 --- a/Sem. 04/README.md +++ b/Sem. 04/README.md @@ -99,7 +99,7 @@ int main() **Задача 2:** Напишете функция, която приема 4 цели числа - координати на 2 точки. Функцията да връща разстоянието между тези точки. -*Вход: 1 1 4 3, Изход: 6.403* +*Вход: 1 1 4 3, Изход: 3,605* **Задача 3:** Напишете функция, която приема 6 целочислени координати (3 точки) и връща обиколката на триъгълника по тези точки. -- cgit v1.3.1-23-gd82d From 90d1e842ee65040064207e53bf204d4d9b32d547 Mon Sep 17 00:00:00 2001 From: Angel Dimitriev Date: Wed, 3 Nov 2021 18:19:49 +0200 Subject: Create exercise 15.cpp --- Sem. 03/solutions/exercise 15.cpp | 58 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 Sem. 03/solutions/exercise 15.cpp diff --git a/Sem. 03/solutions/exercise 15.cpp b/Sem. 03/solutions/exercise 15.cpp new file mode 100644 index 0000000..652a201 --- /dev/null +++ b/Sem. 03/solutions/exercise 15.cpp @@ -0,0 +1,58 @@ +#include +using namespace std; + +int main() +{ + int n; + cin >> n; + + int spacesCount = 2 * (n - 1) + n + 2 * (n - 1); + int toGuess; + for (int i = 1; i <= n - 1; i++) + { + for (int j = 1; j <= i; j++) + cout << j << " "; + + for (int j = 0; j < spacesCount; j++) + cout << " "; + + for (int j = i; j >= 1; j--) + cout << " " << j; + + spacesCount -= 4; + + cout << endl; + + } + + //mid + for (int i = 1; i <= n; i++) + cout << i << " "; + for (int i = 0; i < n; i++) + cout << '-'; + for (int i = n; i >= 1; i--) + cout << " " << i; + cout << endl; + + + //down + spacesCount += 4; + for (int i = n - 1; i >= 0; i--) + { + for (int j = 1; j <= i; j++) + cout << j << " "; + + for (int j = 0; j < spacesCount; j++) + cout << " "; + + for (int j = i; j >= 1; j--) + cout << " " << j; + + spacesCount += 4; + + cout << endl; + + } + + +} -- cgit v1.3.1-23-gd82d From 174852de7b331be9ba32c485ffe97d928778b9cc Mon Sep 17 00:00:00 2001 From: angeld55 Date: Wed, 3 Nov 2021 18:25:21 +0200 Subject: sem5 --- Sem. 05_kn/BullsAndCows.cpp | 116 ++++++++++++++++++++++++++++++++++++++++++ Sem. 05_kn/refferences.cpp | 119 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 235 insertions(+) create mode 100644 Sem. 05_kn/BullsAndCows.cpp create mode 100644 Sem. 05_kn/refferences.cpp diff --git a/Sem. 05_kn/BullsAndCows.cpp b/Sem. 05_kn/BullsAndCows.cpp new file mode 100644 index 0000000..1ab2289 --- /dev/null +++ b/Sem. 05_kn/BullsAndCows.cpp @@ -0,0 +1,116 @@ +#include +using namespace std; +// Играта - бикове и крави. + + +const int DIGITS_COUNT = 3; + +int getNumLen(int n) +{ + int count = 0; + while (n != 0) + { + count++; + n /= 10; + } + return count; +} + +bool containsDigit(int n, int digit) +{ + while (n != 0) + { + int lastDigit = n % 10; + + if (digit == lastDigit) + return true; + + n /= 10; + } + return false; +} +bool containsDiffrentDigits(int n) +{ + while (n >= 10) + { + int lastDigit = n % 10; + n /= 10; + + if (containsDigit(n, lastDigit)) + return false; + } + return true; +} + +bool isValid(int n) +{ + return getNumLen(n) == DIGITS_COUNT && containsDiffrentDigits(n); +} + +void userInput(int& toGuess) +{ + do + { + cin >> toGuess; + } while (!isValid(toGuess)); +} + +int getBulls(int toGuess, int myGuess) +{ + int bulls = 0; + while (toGuess != 0) + { + int toGuessLastDigit = toGuess % 10; + int myGuessLastDigit = myGuess % 10; + + if (toGuessLastDigit == myGuessLastDigit) + bulls++; + + toGuess /= 10; + myGuess /= 10; + } + return bulls; +} + +int getCows(int toGuess, int myGuess, int bulls) +{ + int cows = 0; + while (myGuess != 0) + { + int lastDigit = myGuess % 10; + + if (containsDigit(toGuess, lastDigit)) + cows++; + + myGuess /= 10; + } + return cows - bulls; +} + +void getBullsAndCows(int toGuess, int myGuess, int& bulls, int& cows) +{ + bulls = getBulls(toGuess, myGuess); + cows = getCows(toGuess, myGuess, bulls); +} + +int main() +{ + int toGuess; + userInput(toGuess); + + cout << "Try to guess:" << endl; + + int bulls = 0; + int cows = 0; + + while (bulls != DIGITS_COUNT) + { + int myGuess; + userInput(myGuess); + getBullsAndCows(toGuess, myGuess, bulls, cows); + + cout << "Bulls: " << bulls << " " << ", Cows: " << cows << endl; + } + + cout << "Success!" << endl; +} diff --git a/Sem. 05_kn/refferences.cpp b/Sem. 05_kn/refferences.cpp new file mode 100644 index 0000000..47e4fba --- /dev/null +++ b/Sem. 05_kn/refferences.cpp @@ -0,0 +1,119 @@ +#include +using namespace std; + + +int f(int n) +{ + n++; + return n; +} + +// lvalue ("връщане на променлива") +// rvalue ("връщане на константа") + +//Референция - друго име за някоя променлива + +// Пример: +// Напишете функция, която приема цяло число и връща най-голямата и най-малката цифра. + +void getMaxAndMinDigit(int n, int& maxDigit, int& minDigit) +{ + int max = 0; + int min = 9; + + while (n != 0) + { + int lastDigit = n % 10; + + if (lastDigit > max) + max = lastDigit; + + if (lastDigit < min) + min = lastDigit; + + n /= 10; + } + maxDigit = max; + minDigit = min; + +} + +//! + +int& f(int& n) //--няма да върне копие. +{ + n++; + return n; +} + +int main() +{ + int n; + cin >> n; + + int max, min; + + getMaxAndMinDigit(n, max, min); + cout << "Min digit " << min << " " << "max digit " << max << endl; +} + + + + + +#include +using namespace std; + +// lvalue ("връщане на променлива") +// rvalue ("връщане на константа") + +//Референция - друго име за някоя променлива + +//Пример: +// Напишете функция, която приема цяло число и връща най-голямата и най-малката цифра. + +void getMaxAndMinDigit(int n, int& maxDigit, int& minDigit) +{ + int max = 0; + int min = 9; + + while (n != 0) + { + int lastDigit = n % 10; + + if (lastDigit > max) + max = lastDigit; + + if (lastDigit < min) + min = lastDigit; + + n /= 10; + } + maxDigit = max; + minDigit = min; + +} + + +int f1(int& n) //-връщат константа (rvalue) +{ + n++; + return n; +} +int& f2(int& n) //--връщат променлива (lvalue). +{ + n++; + return n; +} +///!!!!!!!!!!! error +int& f3() +{ + int a = 10; + return a; +} +int main() +{ + cout << ++f(); + + +} -- cgit v1.3.1-23-gd82d From 8d5e9200dbc71323b28111c0e229112def9b7c4b Mon Sep 17 00:00:00 2001 From: Angel Dimitriev Date: Wed, 3 Nov 2021 18:26:07 +0200 Subject: Update and rename BullsAndCows.cpp to BAndC.cpp --- Sem. 05_kn/BAndC.cpp | 115 +++++++++++++++++++++++++++++++++++++++++++ Sem. 05_kn/BullsAndCows.cpp | 116 -------------------------------------------- 2 files changed, 115 insertions(+), 116 deletions(-) create mode 100644 Sem. 05_kn/BAndC.cpp delete mode 100644 Sem. 05_kn/BullsAndCows.cpp diff --git a/Sem. 05_kn/BAndC.cpp b/Sem. 05_kn/BAndC.cpp new file mode 100644 index 0000000..af55fd0 --- /dev/null +++ b/Sem. 05_kn/BAndC.cpp @@ -0,0 +1,115 @@ +#include +using namespace std; + + +const int DIGITS_COUNT = 3; + +int getNumLen(int n) +{ + int count = 0; + while (n != 0) + { + count++; + n /= 10; + } + return count; +} + +bool containsDigit(int n, int digit) +{ + while (n != 0) + { + int lastDigit = n % 10; + + if (digit == lastDigit) + return true; + + n /= 10; + } + return false; +} +bool containsDiffrentDigits(int n) +{ + while (n >= 10) + { + int lastDigit = n % 10; + n /= 10; + + if (containsDigit(n, lastDigit)) + return false; + } + return true; +} + +bool isValid(int n) +{ + return getNumLen(n) == DIGITS_COUNT && containsDiffrentDigits(n); +} + +void userInput(int& toGuess) +{ + do + { + cin >> toGuess; + } while (!isValid(toGuess)); +} + +int getBulls(int toGuess, int myGuess) +{ + int bulls = 0; + while (toGuess != 0) + { + int toGuessLastDigit = toGuess % 10; + int myGuessLastDigit = myGuess % 10; + + if (toGuessLastDigit == myGuessLastDigit) + bulls++; + + toGuess /= 10; + myGuess /= 10; + } + return bulls; +} + +int getCows(int toGuess, int myGuess, int bulls) +{ + int cows = 0; + while (myGuess != 0) + { + int lastDigit = myGuess % 10; + + if (containsDigit(toGuess, lastDigit)) + cows++; + + myGuess /= 10; + } + return cows - bulls; +} + +void getBullsAndCows(int toGuess, int myGuess, int& bulls, int& cows) +{ + bulls = getBulls(toGuess, myGuess); + cows = getCows(toGuess, myGuess, bulls); +} + +int main() +{ + int toGuess; + userInput(toGuess); + + cout << "Try to guess:" << endl; + + int bulls = 0; + int cows = 0; + + while (bulls != DIGITS_COUNT) + { + int myGuess; + userInput(myGuess); + getBullsAndCows(toGuess, myGuess, bulls, cows); + + cout << "Bulls: " << bulls << " " << ", Cows: " << cows << endl; + } + + cout << "Success!" << endl; +} diff --git a/Sem. 05_kn/BullsAndCows.cpp b/Sem. 05_kn/BullsAndCows.cpp deleted file mode 100644 index 1ab2289..0000000 --- a/Sem. 05_kn/BullsAndCows.cpp +++ /dev/null @@ -1,116 +0,0 @@ -#include -using namespace std; -// Играта - бикове и крави. - - -const int DIGITS_COUNT = 3; - -int getNumLen(int n) -{ - int count = 0; - while (n != 0) - { - count++; - n /= 10; - } - return count; -} - -bool containsDigit(int n, int digit) -{ - while (n != 0) - { - int lastDigit = n % 10; - - if (digit == lastDigit) - return true; - - n /= 10; - } - return false; -} -bool containsDiffrentDigits(int n) -{ - while (n >= 10) - { - int lastDigit = n % 10; - n /= 10; - - if (containsDigit(n, lastDigit)) - return false; - } - return true; -} - -bool isValid(int n) -{ - return getNumLen(n) == DIGITS_COUNT && containsDiffrentDigits(n); -} - -void userInput(int& toGuess) -{ - do - { - cin >> toGuess; - } while (!isValid(toGuess)); -} - -int getBulls(int toGuess, int myGuess) -{ - int bulls = 0; - while (toGuess != 0) - { - int toGuessLastDigit = toGuess % 10; - int myGuessLastDigit = myGuess % 10; - - if (toGuessLastDigit == myGuessLastDigit) - bulls++; - - toGuess /= 10; - myGuess /= 10; - } - return bulls; -} - -int getCows(int toGuess, int myGuess, int bulls) -{ - int cows = 0; - while (myGuess != 0) - { - int lastDigit = myGuess % 10; - - if (containsDigit(toGuess, lastDigit)) - cows++; - - myGuess /= 10; - } - return cows - bulls; -} - -void getBullsAndCows(int toGuess, int myGuess, int& bulls, int& cows) -{ - bulls = getBulls(toGuess, myGuess); - cows = getCows(toGuess, myGuess, bulls); -} - -int main() -{ - int toGuess; - userInput(toGuess); - - cout << "Try to guess:" << endl; - - int bulls = 0; - int cows = 0; - - while (bulls != DIGITS_COUNT) - { - int myGuess; - userInput(myGuess); - getBullsAndCows(toGuess, myGuess, bulls, cows); - - cout << "Bulls: " << bulls << " " << ", Cows: " << cows << endl; - } - - cout << "Success!" << endl; -} -- cgit v1.3.1-23-gd82d From d0903680e8c5d1fbbde7b41c3dd2ad58201c2c30 Mon Sep 17 00:00:00 2001 From: Angel Dimitriev Date: Wed, 3 Nov 2021 18:26:27 +0200 Subject: Update BAndC.cpp --- Sem. 05_kn/BAndC.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sem. 05_kn/BAndC.cpp b/Sem. 05_kn/BAndC.cpp index af55fd0..30f8a3d 100644 --- a/Sem. 05_kn/BAndC.cpp +++ b/Sem. 05_kn/BAndC.cpp @@ -2,7 +2,7 @@ using namespace std; -const int DIGITS_COUNT = 3; +const int DIGITS_COUNT = 4; int getNumLen(int n) { -- cgit v1.3.1-23-gd82d From 91c58192153aec6803de90951e2d72b36fcc4e16 Mon Sep 17 00:00:00 2001 From: Angel Dimitriev Date: Wed, 3 Nov 2021 18:27:18 +0200 Subject: Create draw --- Sem. 05_kn/draw | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 Sem. 05_kn/draw diff --git a/Sem. 05_kn/draw b/Sem. 05_kn/draw new file mode 100644 index 0000000..652a201 --- /dev/null +++ b/Sem. 05_kn/draw @@ -0,0 +1,58 @@ +#include +using namespace std; + +int main() +{ + int n; + cin >> n; + + int spacesCount = 2 * (n - 1) + n + 2 * (n - 1); + int toGuess; + for (int i = 1; i <= n - 1; i++) + { + for (int j = 1; j <= i; j++) + cout << j << " "; + + for (int j = 0; j < spacesCount; j++) + cout << " "; + + for (int j = i; j >= 1; j--) + cout << " " << j; + + spacesCount -= 4; + + cout << endl; + + } + + //mid + for (int i = 1; i <= n; i++) + cout << i << " "; + for (int i = 0; i < n; i++) + cout << '-'; + for (int i = n; i >= 1; i--) + cout << " " << i; + cout << endl; + + + //down + spacesCount += 4; + for (int i = n - 1; i >= 0; i--) + { + for (int j = 1; j <= i; j++) + cout << j << " "; + + for (int j = 0; j < spacesCount; j++) + cout << " "; + + for (int j = i; j >= 1; j--) + cout << " " << j; + + spacesCount += 4; + + cout << endl; + + } + + +} -- cgit v1.3.1-23-gd82d From 2d690dadaf0dc606c59ae688011bac2af48d5d69 Mon Sep 17 00:00:00 2001 From: Angel Dimitriev Date: Fri, 5 Nov 2021 01:46:21 +0200 Subject: Update example01_with_functions.cpp --- Sem. 04/example01_with_functions.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Sem. 04/example01_with_functions.cpp b/Sem. 04/example01_with_functions.cpp index f33b6b9..64d4367 100644 --- a/Sem. 04/example01_with_functions.cpp +++ b/Sem. 04/example01_with_functions.cpp @@ -1,8 +1,11 @@ #include using namespace std; -bool isPrime(int n) +bool isPrime(unsigned n) { + if(n <= 1) + return false; + double temp = sqrt(n); for (int i = 2; i <= temp; i++) @@ -24,4 +27,4 @@ int main() if (isPrime(i - 1) && isPrime(i + 1)) cout << i - 1 << " " << i + 1 << endl; } -} \ No newline at end of file +} -- cgit v1.3.1-23-gd82d