From 09bbffaca8d060c4cc70438cfd393d0566c47509 Mon Sep 17 00:00:00 2001 From: Angel Dimitriev Date: Tue, 2 Nov 2021 14:32:04 +0200 Subject: Update and rename Sem. 04_KN/tasks.cpp to Sem. 04/README.md --- Sem. 04/README.md | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++++ Sem. 04_KN/tasks.cpp | 1 - 2 files changed, 88 insertions(+), 1 deletion(-) create mode 100644 Sem. 04/README.md delete mode 100644 Sem. 04_KN/tasks.cpp diff --git a/Sem. 04/README.md b/Sem. 04/README.md new file mode 100644 index 0000000..3433548 --- /dev/null +++ b/Sem. 04/README.md @@ -0,0 +1,88 @@ +. +# Функции + +![enter image description here](https://i.ibb.co/PCGYQ71/func.png) +В контекста на _програмирането_, _функциясе нарича именувана група от инструкции, които изпълняват дадена функционалност. + +### Синтаксис +```c++ +<тип на връщане> <идентификатор> (параметър1, параметър ...) +{ + //тяло +} +``` +Всеки параметър се състои от **тип** и **идентификатор**. + +Пример: +```c++ +int max(int n, int k) +{ + return n > k ? n : k; +} +``` +Оператор **return**: + + - Прекратява изпълнението на функцията + - Замества извикването и с резултата (връща резултата) + +Операторът може да се използва и при функции, които не връщат нищо (void функции). Тогава return единствено прекратява функцията. + +### Параметри по копие +**Важно**: Функциите, написани по този начин, приемат своите параметри **по копие**. (Функции, които приемат параметри по референция (не по копие) ще учим по-натам). +```c++ +void f(int n) +{ + n++; +} +int main() +{ + int n = 4; + f(n); + cout << n << endl; //4 +} +``` + + +### Примери: + +**Задача 1:** Въвежда се неотрицателно число n. Да се отпечатат всички двойки прости числа, които са във вида 6k-1 и 6k+1. + +-решена без функции и решена с функции. + +**Задача 2:** Напишете функция, която приема неотрицателно число n и връща числото обърнато + +*Вход: 288, Изход: 882* + +**Задача 3:** Напишете функция, която приема неотрицателно число и връща дали числото е палиндром. + +*Вход: 2882 Изход: true* + +**Задача 4:** Напишете функция, която приема неотрицателни числа n и k и връща дали k е суфикс на n. + +*Вход: 288, 88, Изход: true* + +**Задача 5:** Напишете функция, която приема неотрицателни числа n и k и връща дали k е префикс на n. + +*Вход: 288, 28, Изход: true* + +**Задача 6:** Напишете функция, която приема неотрицателни числа n и k и връща дали k се съдържа в n. + +*Вход: 2831, 83, Изход: true* + +**Задача 7:** Напишете функция, която приема неотрицателно число и връща дали цифрите му са сортирани (във възходящ или в низходящ ред). + +*Вход: 122239, Изход: true* + + +**Задача 8:** Напишете функция, която приема неотрицателно число и връща дали цифрите му са еднакви. + +*Вход: 111111, Изход: true* + +**Задача 9:** Напишете функция, която приема неотрицателно числа n и k връща n^k + +*Вход: 3 4, Изход: 81* + +**Задача 10:** Напишете функция, която приема неотрицателно числа n и k връща log_k(n) (закръглено надолу) + +*Вход: 90 3 Изход: 4* + diff --git a/Sem. 04_KN/tasks.cpp b/Sem. 04_KN/tasks.cpp deleted file mode 100644 index 9c558e3..0000000 --- a/Sem. 04_KN/tasks.cpp +++ /dev/null @@ -1 +0,0 @@ -. -- cgit v1.3.1-23-gd82d From 72c9987765cf118b71bfdc9020e97bcf7f2a999a Mon Sep 17 00:00:00 2001 From: Angel Dimitriev Date: Tue, 2 Nov 2021 14:32:28 +0200 Subject: Update README.md --- Sem. 04/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Sem. 04/README.md b/Sem. 04/README.md index 3433548..a56ecd1 100644 --- a/Sem. 04/README.md +++ b/Sem. 04/README.md @@ -2,7 +2,8 @@ # Функции ![enter image description here](https://i.ibb.co/PCGYQ71/func.png) -В контекста на _програмирането_, _функциясе нарича именувана група от инструкции, които изпълняват дадена функционалност. + +В контекста на програмирането, функция се нарича именувана група от инструкции, които изпълняват дадена функционалност. ### Синтаксис ```c++ -- cgit v1.3.1-23-gd82d From 7b48d82f74cfa2a8820cad4c50ca7a916458850a Mon Sep 17 00:00:00 2001 From: Angel Dimitriev Date: Tue, 2 Nov 2021 14:32:57 +0200 Subject: Add files via upload --- Sem. 04/example1_no_functions.cpp | 39 ++++++++++ Sem. 04/example1_with_functions.cpp | 27 +++++++ Sem. 04/examples2-8.cpp | 141 ++++++++++++++++++++++++++++++++++++ 3 files changed, 207 insertions(+) create mode 100644 Sem. 04/example1_no_functions.cpp create mode 100644 Sem. 04/example1_with_functions.cpp create mode 100644 Sem. 04/examples2-8.cpp diff --git a/Sem. 04/example1_no_functions.cpp b/Sem. 04/example1_no_functions.cpp new file mode 100644 index 0000000..06e6629 --- /dev/null +++ b/Sem. 04/example1_no_functions.cpp @@ -0,0 +1,39 @@ +#include +using namespace std; + + +int main() +{ + int n; + cin >> n; + + for (int i = 6; i < n; i += 6) + { + int firstToCheck = i - 1; + int secondToCheck = i + 1; + + //prime check + bool isFirstPrime = true; + double temp = sqrt(firstToCheck); + for (int j = 2; j <= temp; j++) + { + if (firstToCheck % j == 0) + isFirstPrime = false; + } + + if (!isFirstPrime) + continue; + + //prime check + bool isSecondPrime = true; + double temp2 = sqrt(secondToCheck); + for (int j = 2; j <= temp2; j++) + { + if (secondToCheck % j == 0) + isSecondPrime = false; + } + + if (isSecondPrime) + cout << firstToCheck << " " << secondToCheck << endl; + } +} \ No newline at end of file diff --git a/Sem. 04/example1_with_functions.cpp b/Sem. 04/example1_with_functions.cpp new file mode 100644 index 0000000..f33b6b9 --- /dev/null +++ b/Sem. 04/example1_with_functions.cpp @@ -0,0 +1,27 @@ +#include +using namespace std; + +bool isPrime(int n) +{ + double temp = sqrt(n); + + for (int i = 2; i <= temp; i++) + { + if (n % i == 0) + return false; + } + + return true; +} + +int main() +{ + int n; + cin >> n; + + for (int i = 6; i < n; i += 6) + { + if (isPrime(i - 1) && isPrime(i + 1)) + cout << i - 1 << " " << i + 1 << endl; + } +} \ No newline at end of file diff --git a/Sem. 04/examples2-8.cpp b/Sem. 04/examples2-8.cpp new file mode 100644 index 0000000..002a8ab --- /dev/null +++ b/Sem. 04/examples2-8.cpp @@ -0,0 +1,141 @@ +#include +using namespace std; + + +//задача 2: +// Напишете функция, която приема цяло число и връща обърнатото му. +// 1234 - 4321 + +int reverse(unsigned int n) +{ + unsigned int result = 0; + + while (n != 0) + { + int lastDigit = n % 10; + (result *= 10) += lastDigit; + n /= 10; + } + + return result; +} + +//задача 3: Напишете функция, която приема цяло число и връща дали е палиндром + +//12321 -> true +//123 -> false; + +bool isPalindrome(unsigned int n) +{ + return n == reverse(n); +} +//задача 4: Напишете функция, която приема две цели числа - n и k. +//Функцията да връща дали k е суфикс на n. +// n = 1234 k = 34 true +// n = 1234 k = 234 true +// n = 1234 k = 1234 true +// n = 1234 k = 23 false + +bool isSuffix(unsigned int n, unsigned int k) +{ + if (k == 0 && (n % 10 != 0)) + return false; + + while (k != 0) + { + int lastDigitOfN = n % 10; + int lastDigitOfK = k % 10; + + if (lastDigitOfN != lastDigitOfK) + return false; + + n /= 10; + k /= 10; + } + + return true; +} + + +// задача 5: Напишете функция, която приема две цели числа -n и k. +// Функцията да връща дали k е префикс на n. + +// n = 1234, k = 12 true +// n = 1234, k = 23 false; + +// u е префикс на w <-> u ^rev е суфикс на w^rev +bool isPrefix(unsigned int n, unsigned int k) +{ + return isSuffix(reverse(n), reverse(k)); +} + +// задача 6: Напишете функция, която приема две числа - n,k. +// Функцията връща дали k е инфикс на n. + +bool isInfix(unsigned int n, unsigned int k) +{ + if (n == 0 && k == 0) + return true; + + while (n > 0) + { + if (isSuffix(n, k)) + return true; + n /= 10; + } + return false; +} + + +//задача. +//Да се напише функция, която приема цяло число и връща дали цифрите му са сортирани. + +// 1234 true +// 12379 true +// 1231 false +// 4321 true +// 4325 false +// 1111 true + +bool areDigitsSortedAscending(unsigned int n) +{ + while (n >= 10) + { + int lastDigit = n % 10; + int prevLastDigit = (n / 10) % 10; + + if (prevLastDigit > lastDigit) + return false; + + n /= 10; + } + + return true; +} + +bool areDigitsSortedDescending(int n) +{ + return areDigitsSortedAscending(reverse(n)); +} + +bool areDigitsSorted(int n) +{ + return areDigitsSortedDescending(n) || areDigitsSortedAscending(n); +} + +//задача. +// Напишете функция, която приема цяло число и връща дали се съдържа само от еднакви цифри. + +//Вход: 11111 Изход:true +//Вход: 123 Изход: false + +bool containOnlyOneDigit(int n) +{ + return areDigitsSortedDescending(n) && areDigitsSortedAscending(n); +} + + +int main() +{ + cout << containOnlyOneDigit(444) << endl; +} \ No newline at end of file -- cgit v1.3.1-23-gd82d From 2af7aac08e3bae3ed6e99fe04c32d39acb4bb129 Mon Sep 17 00:00:00 2001 From: Angel Dimitriev Date: Tue, 2 Nov 2021 14:34:38 +0200 Subject: Add files via upload --- Sem. 04/example01_no_functions.cpp | 39 ++++++++++ Sem. 04/example01_with_functions.cpp | 27 +++++++ Sem. 04/example02-08.cpp | 141 +++++++++++++++++++++++++++++++++++ Sem. 04/example09 .cpp | 21 ++++++ Sem. 04/example10.cpp | 21 ++++++ 5 files changed, 249 insertions(+) create mode 100644 Sem. 04/example01_no_functions.cpp create mode 100644 Sem. 04/example01_with_functions.cpp create mode 100644 Sem. 04/example02-08.cpp create mode 100644 Sem. 04/example09 .cpp create mode 100644 Sem. 04/example10.cpp diff --git a/Sem. 04/example01_no_functions.cpp b/Sem. 04/example01_no_functions.cpp new file mode 100644 index 0000000..06e6629 --- /dev/null +++ b/Sem. 04/example01_no_functions.cpp @@ -0,0 +1,39 @@ +#include +using namespace std; + + +int main() +{ + int n; + cin >> n; + + for (int i = 6; i < n; i += 6) + { + int firstToCheck = i - 1; + int secondToCheck = i + 1; + + //prime check + bool isFirstPrime = true; + double temp = sqrt(firstToCheck); + for (int j = 2; j <= temp; j++) + { + if (firstToCheck % j == 0) + isFirstPrime = false; + } + + if (!isFirstPrime) + continue; + + //prime check + bool isSecondPrime = true; + double temp2 = sqrt(secondToCheck); + for (int j = 2; j <= temp2; j++) + { + if (secondToCheck % j == 0) + isSecondPrime = false; + } + + if (isSecondPrime) + cout << firstToCheck << " " << secondToCheck << endl; + } +} \ No newline at end of file diff --git a/Sem. 04/example01_with_functions.cpp b/Sem. 04/example01_with_functions.cpp new file mode 100644 index 0000000..f33b6b9 --- /dev/null +++ b/Sem. 04/example01_with_functions.cpp @@ -0,0 +1,27 @@ +#include +using namespace std; + +bool isPrime(int n) +{ + double temp = sqrt(n); + + for (int i = 2; i <= temp; i++) + { + if (n % i == 0) + return false; + } + + return true; +} + +int main() +{ + int n; + cin >> n; + + for (int i = 6; i < n; i += 6) + { + if (isPrime(i - 1) && isPrime(i + 1)) + cout << i - 1 << " " << i + 1 << endl; + } +} \ No newline at end of file diff --git a/Sem. 04/example02-08.cpp b/Sem. 04/example02-08.cpp new file mode 100644 index 0000000..002a8ab --- /dev/null +++ b/Sem. 04/example02-08.cpp @@ -0,0 +1,141 @@ +#include +using namespace std; + + +//задача 2: +// Напишете функция, която приема цяло число и връща обърнатото му. +// 1234 - 4321 + +int reverse(unsigned int n) +{ + unsigned int result = 0; + + while (n != 0) + { + int lastDigit = n % 10; + (result *= 10) += lastDigit; + n /= 10; + } + + return result; +} + +//задача 3: Напишете функция, която приема цяло число и връща дали е палиндром + +//12321 -> true +//123 -> false; + +bool isPalindrome(unsigned int n) +{ + return n == reverse(n); +} +//задача 4: Напишете функция, която приема две цели числа - n и k. +//Функцията да връща дали k е суфикс на n. +// n = 1234 k = 34 true +// n = 1234 k = 234 true +// n = 1234 k = 1234 true +// n = 1234 k = 23 false + +bool isSuffix(unsigned int n, unsigned int k) +{ + if (k == 0 && (n % 10 != 0)) + return false; + + while (k != 0) + { + int lastDigitOfN = n % 10; + int lastDigitOfK = k % 10; + + if (lastDigitOfN != lastDigitOfK) + return false; + + n /= 10; + k /= 10; + } + + return true; +} + + +// задача 5: Напишете функция, която приема две цели числа -n и k. +// Функцията да връща дали k е префикс на n. + +// n = 1234, k = 12 true +// n = 1234, k = 23 false; + +// u е префикс на w <-> u ^rev е суфикс на w^rev +bool isPrefix(unsigned int n, unsigned int k) +{ + return isSuffix(reverse(n), reverse(k)); +} + +// задача 6: Напишете функция, която приема две числа - n,k. +// Функцията връща дали k е инфикс на n. + +bool isInfix(unsigned int n, unsigned int k) +{ + if (n == 0 && k == 0) + return true; + + while (n > 0) + { + if (isSuffix(n, k)) + return true; + n /= 10; + } + return false; +} + + +//задача. +//Да се напише функция, която приема цяло число и връща дали цифрите му са сортирани. + +// 1234 true +// 12379 true +// 1231 false +// 4321 true +// 4325 false +// 1111 true + +bool areDigitsSortedAscending(unsigned int n) +{ + while (n >= 10) + { + int lastDigit = n % 10; + int prevLastDigit = (n / 10) % 10; + + if (prevLastDigit > lastDigit) + return false; + + n /= 10; + } + + return true; +} + +bool areDigitsSortedDescending(int n) +{ + return areDigitsSortedAscending(reverse(n)); +} + +bool areDigitsSorted(int n) +{ + return areDigitsSortedDescending(n) || areDigitsSortedAscending(n); +} + +//задача. +// Напишете функция, която приема цяло число и връща дали се съдържа само от еднакви цифри. + +//Вход: 11111 Изход:true +//Вход: 123 Изход: false + +bool containOnlyOneDigit(int n) +{ + return areDigitsSortedDescending(n) && areDigitsSortedAscending(n); +} + + +int main() +{ + cout << containOnlyOneDigit(444) << endl; +} \ No newline at end of file diff --git a/Sem. 04/example09 .cpp b/Sem. 04/example09 .cpp new file mode 100644 index 0000000..f7f072b --- /dev/null +++ b/Sem. 04/example09 .cpp @@ -0,0 +1,21 @@ +#include +using namespace std; + +unsigned int log(unsigned int n, unsigned int k) +{ + int count = 0; + + while (n >= k) + { + n /= k; + count++; + } + + return count; +} + + +int main() +{ + cout << log(4, 10) << endl; +} \ No newline at end of file diff --git a/Sem. 04/example10.cpp b/Sem. 04/example10.cpp new file mode 100644 index 0000000..f7f072b --- /dev/null +++ b/Sem. 04/example10.cpp @@ -0,0 +1,21 @@ +#include +using namespace std; + +unsigned int log(unsigned int n, unsigned int k) +{ + int count = 0; + + while (n >= k) + { + n /= k; + count++; + } + + return count; +} + + +int main() +{ + cout << log(4, 10) << endl; +} \ No newline at end of file -- cgit v1.3.1-23-gd82d From d95311d6fe0b91ee54b4629c09914e5f44a476f9 Mon Sep 17 00:00:00 2001 From: Angel Dimitriev Date: Tue, 2 Nov 2021 14:34:50 +0200 Subject: Delete examples2-8.cpp --- Sem. 04/examples2-8.cpp | 141 ------------------------------------------------ 1 file changed, 141 deletions(-) delete mode 100644 Sem. 04/examples2-8.cpp diff --git a/Sem. 04/examples2-8.cpp b/Sem. 04/examples2-8.cpp deleted file mode 100644 index 002a8ab..0000000 --- a/Sem. 04/examples2-8.cpp +++ /dev/null @@ -1,141 +0,0 @@ -#include -using namespace std; - - -//задача 2: -// Напишете функция, която приема цяло число и връща обърнатото му. -// 1234 - 4321 - -int reverse(unsigned int n) -{ - unsigned int result = 0; - - while (n != 0) - { - int lastDigit = n % 10; - (result *= 10) += lastDigit; - n /= 10; - } - - return result; -} - -//задача 3: Напишете функция, която приема цяло число и връща дали е палиндром - -//12321 -> true -//123 -> false; - -bool isPalindrome(unsigned int n) -{ - return n == reverse(n); -} -//задача 4: Напишете функция, която приема две цели числа - n и k. -//Функцията да връща дали k е суфикс на n. -// n = 1234 k = 34 true -// n = 1234 k = 234 true -// n = 1234 k = 1234 true -// n = 1234 k = 23 false - -bool isSuffix(unsigned int n, unsigned int k) -{ - if (k == 0 && (n % 10 != 0)) - return false; - - while (k != 0) - { - int lastDigitOfN = n % 10; - int lastDigitOfK = k % 10; - - if (lastDigitOfN != lastDigitOfK) - return false; - - n /= 10; - k /= 10; - } - - return true; -} - - -// задача 5: Напишете функция, която приема две цели числа -n и k. -// Функцията да връща дали k е префикс на n. - -// n = 1234, k = 12 true -// n = 1234, k = 23 false; - -// u е префикс на w <-> u ^rev е суфикс на w^rev -bool isPrefix(unsigned int n, unsigned int k) -{ - return isSuffix(reverse(n), reverse(k)); -} - -// задача 6: Напишете функция, която приема две числа - n,k. -// Функцията връща дали k е инфикс на n. - -bool isInfix(unsigned int n, unsigned int k) -{ - if (n == 0 && k == 0) - return true; - - while (n > 0) - { - if (isSuffix(n, k)) - return true; - n /= 10; - } - return false; -} - - -//задача. -//Да се напише функция, която приема цяло число и връща дали цифрите му са сортирани. - -// 1234 true -// 12379 true -// 1231 false -// 4321 true -// 4325 false -// 1111 true - -bool areDigitsSortedAscending(unsigned int n) -{ - while (n >= 10) - { - int lastDigit = n % 10; - int prevLastDigit = (n / 10) % 10; - - if (prevLastDigit > lastDigit) - return false; - - n /= 10; - } - - return true; -} - -bool areDigitsSortedDescending(int n) -{ - return areDigitsSortedAscending(reverse(n)); -} - -bool areDigitsSorted(int n) -{ - return areDigitsSortedDescending(n) || areDigitsSortedAscending(n); -} - -//задача. -// Напишете функция, която приема цяло число и връща дали се съдържа само от еднакви цифри. - -//Вход: 11111 Изход:true -//Вход: 123 Изход: false - -bool containOnlyOneDigit(int n) -{ - return areDigitsSortedDescending(n) && areDigitsSortedAscending(n); -} - - -int main() -{ - cout << containOnlyOneDigit(444) << endl; -} \ No newline at end of file -- cgit v1.3.1-23-gd82d From b29cf210a7af3ae789e8067a88b7421dfc58e6a6 Mon Sep 17 00:00:00 2001 From: Angel Dimitriev Date: Tue, 2 Nov 2021 14:34:57 +0200 Subject: Delete example1_no_functions.cpp --- Sem. 04/example1_no_functions.cpp | 39 --------------------------------------- 1 file changed, 39 deletions(-) delete mode 100644 Sem. 04/example1_no_functions.cpp diff --git a/Sem. 04/example1_no_functions.cpp b/Sem. 04/example1_no_functions.cpp deleted file mode 100644 index 06e6629..0000000 --- a/Sem. 04/example1_no_functions.cpp +++ /dev/null @@ -1,39 +0,0 @@ -#include -using namespace std; - - -int main() -{ - int n; - cin >> n; - - for (int i = 6; i < n; i += 6) - { - int firstToCheck = i - 1; - int secondToCheck = i + 1; - - //prime check - bool isFirstPrime = true; - double temp = sqrt(firstToCheck); - for (int j = 2; j <= temp; j++) - { - if (firstToCheck % j == 0) - isFirstPrime = false; - } - - if (!isFirstPrime) - continue; - - //prime check - bool isSecondPrime = true; - double temp2 = sqrt(secondToCheck); - for (int j = 2; j <= temp2; j++) - { - if (secondToCheck % j == 0) - isSecondPrime = false; - } - - if (isSecondPrime) - cout << firstToCheck << " " << secondToCheck << endl; - } -} \ No newline at end of file -- cgit v1.3.1-23-gd82d From 57574519b81b9e83a13ad963398634cf00d36007 Mon Sep 17 00:00:00 2001 From: Angel Dimitriev Date: Tue, 2 Nov 2021 14:35:03 +0200 Subject: Delete example1_with_functions.cpp --- Sem. 04/example1_with_functions.cpp | 27 --------------------------- 1 file changed, 27 deletions(-) delete mode 100644 Sem. 04/example1_with_functions.cpp diff --git a/Sem. 04/example1_with_functions.cpp b/Sem. 04/example1_with_functions.cpp deleted file mode 100644 index f33b6b9..0000000 --- a/Sem. 04/example1_with_functions.cpp +++ /dev/null @@ -1,27 +0,0 @@ -#include -using namespace std; - -bool isPrime(int n) -{ - double temp = sqrt(n); - - for (int i = 2; i <= temp; i++) - { - if (n % i == 0) - return false; - } - - return true; -} - -int main() -{ - int n; - cin >> n; - - for (int i = 6; i < n; i += 6) - { - 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 From 4ffc24fb6c30ed7feda44a9c4f35056c5e2bff36 Mon Sep 17 00:00:00 2001 From: Angel Dimitriev Date: Tue, 2 Nov 2021 14:35:52 +0200 Subject: Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1004739..9a25dcb 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,7 @@ - **Тема 1:** Увод. Примитивни типове данни. Преобразуване между типове. Оператори. - **Тема 2:** Условни конструкции - if, switch и тернарен оператор. - **Тема 3:** Цикли. Оператори break и continue. + - **Тема 4:** Функции. ### Практикум: -- cgit v1.3.1-23-gd82d From 76f1bc24428d2527974cad61f60b9acc577054fe Mon Sep 17 00:00:00 2001 From: Angel Dimitriev Date: Tue, 2 Nov 2021 14:36:07 +0200 Subject: Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9a25dcb..8afebbd 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ - **Тема 1:** Увод. Примитивни типове данни. Преобразуване между типове. Оператори. - **Тема 2:** Условни конструкции - if, switch и тернарен оператор. - **Тема 3:** Цикли. Оператори break и continue. - - **Тема 4:** Функции. + - **Тема 4:** Функции. Оператор return. ### Практикум: -- cgit v1.3.1-23-gd82d From 01016f0f0540a15db4a7cf900a9fc42133b1964a Mon Sep 17 00:00:00 2001 From: Angel Dimitriev Date: Tue, 2 Nov 2021 15:01:08 +0200 Subject: Update README.md --- Sem. 04/README.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/Sem. 04/README.md b/Sem. 04/README.md index a56ecd1..0135d76 100644 --- a/Sem. 04/README.md +++ b/Sem. 04/README.md @@ -87,3 +87,30 @@ int main() *Вход: 90 3 Изход: 4* +

Задачи

+ +**Задача 1:** Напишете функция, която приема цяло число и връща модула му. + +*Вход: 4, Изход: 4* + +*Вход: -4, Изход: 4* + +*Вход: 5 4 3 0 Изход: 12* + +**Задача 2:** Напишете функция, която приема 4 цели числа - координати на 2 точки. Функцията да връща разстоянието между тези точки. + +*Вход: 1 1 4 3, Изход: 6.403* + +**Задача 3:** Напишете функция, която приема 6 целочислени координати (3 точки) и връща обиколката на триъгълника по тези точки. + +*Вход: 1 1 4 7 0 10, Изход: 20.764* + +**Задача 4:** Да се напише функция, която приема три естествени числа a и b и k отпечатва всички числа в интервата [a...b], които имат точно k различни прости делители. +*Вход: 19 32 3, Изход: 20 30* +*Вход: 19 32 1, Изход: 19 23 29 31* +**Задача 4:** Да се напише функция, която приема естествено число n и отпечатва всички двойки , такива че a и b са прости и a + b = n. + +**Задача 5:** Да се напише функция, която приема две естествени числа a и b и отпечава всички числа k и интервала [a,b], такива че k = x^y (за някои ест. числа x и y) +*Вход: 15 30, Изход: 16 25 27* , защото (4^2, 5^2, 3^3) + + -- cgit v1.3.1-23-gd82d From 0fa86a114caa8384886fa20ba73803e69938d6f8 Mon Sep 17 00:00:00 2001 From: Angel Dimitriev Date: Tue, 2 Nov 2021 15:01:32 +0200 Subject: Update README.md --- Sem. 04/README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Sem. 04/README.md b/Sem. 04/README.md index 0135d76..55b21b0 100644 --- a/Sem. 04/README.md +++ b/Sem. 04/README.md @@ -108,9 +108,10 @@ int main() **Задача 4:** Да се напише функция, която приема три естествени числа a и b и k отпечатва всички числа в интервата [a...b], които имат точно k различни прости делители. *Вход: 19 32 3, Изход: 20 30* *Вход: 19 32 1, Изход: 19 23 29 31* -**Задача 4:** Да се напише функция, която приема естествено число n и отпечатва всички двойки , такива че a и b са прости и a + b = n. -**Задача 5:** Да се напише функция, която приема две естествени числа a и b и отпечава всички числа k и интервала [a,b], такива че k = x^y (за някои ест. числа x и y) +**Задача 5:** Да се напише функция, която приема естествено число n и отпечатва всички двойки , такива че a и b са прости и a + b = n. + +**Задача 6:** Да се напише функция, която приема две естествени числа a и b и отпечава всички числа k и интервала [a,b], такива че k = x^y (за някои ест. числа x и y) *Вход: 15 30, Изход: 16 25 27* , защото (4^2, 5^2, 3^3) -- cgit v1.3.1-23-gd82d From 576ea3051a88b2c740c816467a6761a888b5ef3f Mon Sep 17 00:00:00 2001 From: Angel Dimitriev Date: Tue, 2 Nov 2021 15:03:26 +0200 Subject: Create exercise01.cpp --- Sem. 04/Solutions/exercise01.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 Sem. 04/Solutions/exercise01.cpp diff --git a/Sem. 04/Solutions/exercise01.cpp b/Sem. 04/Solutions/exercise01.cpp new file mode 100644 index 0000000..edc9c9c --- /dev/null +++ b/Sem. 04/Solutions/exercise01.cpp @@ -0,0 +1,11 @@ +#include +using namespace std; + +int mod(int n) +{ + return n < 0 ? -n : n; +} +int main() +{ + cout << mod(-4) << endl; +} -- cgit v1.3.1-23-gd82d From a0d9a533e6e4f6b5b06fff9268e9bf6233ef3eef Mon Sep 17 00:00:00 2001 From: Angel Dimitriev Date: Tue, 2 Nov 2021 15:04:04 +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 55b21b0..d6f9af9 100644 --- a/Sem. 04/README.md +++ b/Sem. 04/README.md @@ -87,7 +87,7 @@ int main() *Вход: 90 3 Изход: 4* -

Задачи

+

Задачи:

**Задача 1:** Напишете функция, която приема цяло число и връща модула му. -- cgit v1.3.1-23-gd82d