Summary Files Commits Branches @commit @diff @stats
diff options
context:
space:
mode:
Commit2ec5faa88be1447cd93a301543f97ac9d6c312d7 (patch)
Author
 Syndamia <kamen.d.mladenov@protonmail.com>
2021-10-25 13:49:06 +0300
Committer
 Syndamia <kamen.d.mladenov@protonmail.com>
2021-10-25 13:49:06 +0300
Files31cf9a532dc8c17640b22be9035aa22a65135af0
uni-projects-2ec5faa88be1447cd93a301543f97ac9d6c312d7.tar
uni-projects-2ec5faa88be1447cd93a301543f97ac9d6c312d7.tar.gz
uni-projects-2ec5faa88be1447cd93a301543f97ac9d6c312d7.zip
Parent475f05d889ae3ffd828211a947305354b56b7f1c (diff)
Added all task descriptions above their corresponding function
diff --git a/Year 1/Programming introduction/Practice-08.10.21.cpp b/Year 1/Programming introduction/Practice-08.10.21.cpp
index 65df1b8..bb64a5b 100644
--- a/Year 1/Programming introduction/Practice-08.10.21.cpp
+++ b/Year 1/Programming introduction/Practice-08.10.21.cpp
@@ -6,12 +6,25 @@ using namespace std;
* https://github.com/triffon/ip-2021-22/blob/master/practicum/6/week1/%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8%20%D0%BF%D1%8A%D1%80%D0%B2%D0%B0%20%D1%81%D0%B5%D0%B4%D0%BC%D0%B8%D1%86%D0%B0.pdf
*/
+// Задача 1: Да се въведе число. Да се изведе:
+// - 1 ако е различно от 0
+// - 0 в противен случай !!
void ex1() {
int a;
cin >> a;
cout << (bool)a;
}
+// Задача 2: Да се въведе положително число а . Да се изведе:
+// - лицето и обиколката на квадрат със страна а
+// - дължината на окръжност с радиус а
+// - лицето и обиколката на равностранен триъгълник със страна а
+// Приемаме, че sqrt(3) = 1.73
+// Пример:
+// a=4
+// square: p = 16 s = 16
+// circle: p = 25.12
+// triangle: p = 12 s = 6.92
void ex2() {
int a;
cin >> a;
@@ -20,12 +33,22 @@ void ex2() {
cout << "Triangle: " << 1.73 * a * a / 4 << " " << a * 3;
}
+// Задача 3: От потребителя се въвежда число. Да се изведе:
+// - Единица, ако числото е четно.
+// - Нула в противен случай.
void ex3() {
int a;
cin >> a;
cout << !(a % 2);
}
+// Задача 4: Да се въведат две числа - а и b
+// Да се разменят стойностите им (по три начина, без да се използва функцията swap)
+// Пример:
+// a=2
+// b=9
+// 1: 9 2
+// 2: 9 2
void ex4() {
int A, B, a, b, temp;
cin >> a >> b;
@@ -49,18 +72,37 @@ void ex4() {
cout << a << " " << b << endl;
}
+// Задача 5: Да се въведе буква от английската азбука. Програмата връща:
+// - Единица, ако буквата е гласна.
+// - Нула в противен случай.
+// Гласните букви в английската азбука са: a, i, o, u, e
void ex5() {
char letter;
cin >> letter;
cout << (letter == 'a' || letter == 'i' || letter == 'u' || letter == 'e' || letter == 'o'); // when is vowel
}
+// Задача 6: Огледално на дадено число наричаме това, съставено от цифрите му в
+// обратен ред. Да се въведе четирицифрено число и да се изведе обратното му.
+// Пример:
+// a = 7121
+// mirror a: 1217
void ex6() {
int a;
cin >> a;
cout << a % 10 << (a % 100) / 10 << (a % 1000) / 100 << (a % 10000) / 1000; // 1234 becomes 4321
}
+// Задача 7: Напишете потребителски интерфейс, който изисква от потребителя да
+// въведе количество от даден продукт (по ваш избор) и цената му. Нека софтуерът
+// 1попита за три различни продукта. Накрая изведете сметката на потребителя:
+// какъв брой от какво си е поръчал и колко ще му струва.
+// Пример:
+// Apples: 2 0.6
+// Oranges: 1 1.5
+// Bananas: 3 0.78
+// Your order is: apples for 1.2, oranges for 1.5 and bananas for 2.34.
+// Total: 5.04.
void ex7() {
int currQuantity;
double currPrice, aPrice, oPrice, bPrice;
diff --git a/Year 1/Programming introduction/Practice-11.10.21.cpp b/Year 1/Programming introduction/Practice-11.10.21.cpp
index a6bb71d..b139e52 100644
--- a/Year 1/Programming introduction/Practice-11.10.21.cpp
+++ b/Year 1/Programming introduction/Practice-11.10.21.cpp
@@ -6,28 +6,51 @@ using namespace std;
* https://github.com/triffon/ip-2021-22/blob/master/practicum/6/week1/%D0%94%D0%BE%D0%BF%D1%8A%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D0%BD%D0%B8%20%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8.pdf
*/
+// Задача 0: Да се изведе на конзолата символа ’+’ без символа да се използва в
+// кода на програмата.
void ex0() {
cout << (char)43;
}
+// Задача 1: Да се напише програма, която при подаване на положително число
+// извежда сбора на числата от 1 до числото.
+// Пример:
+// Вход: 5
+// Изход: 1 + 2 + 3 + 4 + 5 = 15
void ex1() {
int a;
cin >> a;
cout << a * (1 + a) / 2; // sum of arithmetic sequence, where a0 = 1 and d = 1
}
+// Задача 2: Въвежда се число. Програмата изписва 1 ако числото се дели или на 3
+// или на 5. (но не и на двете едновременно)
+// Пример:
+// Вход: 15 –> Изход: 0
+// Вход: 3 –> Изход: 1
void ex2() {
int a;
cin >> a;
cout << ((a % 3 == 0) != (a % 5 == 0)); // != is logical XOR
}
+// Задача 3*: Да се напише програма която при дадено число определя броя на
+// числата които се делят на 3 или на 5 считано от 1 до числото включително. (като
+// числото може да се дели и на двете едновременно)
+// Пример:
+// Вход: 15
+// Изход: 7, понеже имаме 3, 5, 6, 9, 10, 12, 15
void ex3() {
int a;
cin >> a;
cout << a / 3 + a / 5 - (a / 5) / 3;
}
+// Задача 4*: Да се напише програма която при дадено число определя сумата на
+// числата които се делят на 3 считано от 1 до числото.
+// Пример:
+// Вход: 15
+// Изход: 45, понеже имаме 3 + 6 + 9 + 12 + 15
void ex4() {
int a;
cin >> a;
diff --git a/Year 1/Programming introduction/Practice-18.10.21.cpp b/Year 1/Programming introduction/Practice-18.10.21.cpp
index 0b336b3..d279418 100644
--- a/Year 1/Programming introduction/Practice-18.10.21.cpp
+++ b/Year 1/Programming introduction/Practice-18.10.21.cpp
@@ -9,6 +9,13 @@ using namespace std;
* https://github.com/triffon/ip-2021-22/blob/master/practicum/6/week2/%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8%20%D0%B2%D1%82%D0%BE%D1%80%D0%B0%20%D1%81%D0%B5%D0%B4%D0%BC%D0%B8%D1%86%D0%B0.pdf
*/
+// Задача 0
+// Дадени са n лева. Да се изведе на конзолата как може да се разпределят по
+// банкноти така, че да имаме минимален брой банкноти. В условието приемаме, че
+// имаме банкноти от 1 и 2 лева.
+// Пример:
+// Вход: 62
+// Изход: 1 * 50 + 1 * 10 + 1 * 2
void ex0() {
int a;
cin >> a;
@@ -30,6 +37,12 @@ void ex0() {
cout << a << " * 1";
}
+// Задача 1
+// Да се напише програма, използваща конструкцията switch, която приема число от
+// 1 до 12, и отпечатва на стандартния изход съответния месец от годината.
+// Пример:
+// Вход: 12
+// Изход: Декември
void ex1() {
int a;
cin >> a;
@@ -50,6 +63,12 @@ void ex1() {
}
}
+// Задача 2
+// В по - долната таблица е представена глобата, която водачът получава, при
+// превишена скорост. Да се изведе получената глоба при въведена скорост.
+// | 50 | 70 | 90 | 110 | 130 | 160 |
+// |----+----+----+-----+-----+-----|
+// | 0 | 20 | 50 | 150 | 350 | 700 |
void ex2() {
int a;
cin >> a;
@@ -62,6 +81,8 @@ void ex2() {
else cout << 0;
}
+// Задача 3
+// Да се въведат три числа и да се изведат на стандартния изход в нарастващ ред.
void ex3() {
int a, b, c;
cin >> a >> b >> c;
@@ -74,6 +95,11 @@ void ex3() {
cout << c << " " << ((b < a) ? b : a) << " " << ((a > b) ? a : b);
}
+// Задача 4
+// От стандартния вход се въвеждат координатите (x1, y1), и (x2, y2), които описват
+// правоъгълник в двуизмерна координатна система и координатите (x, y), които
+// описват точка. Да се изведе на стандартния изход "true"ако точката е в
+// правоъгълника, и "false"в противен случай.
void ex4() {
int x1, y1, x2, y2, x, y;
cin >> x1 >> y1 >> x2 >> y2 >> x >> y;
@@ -82,6 +108,17 @@ void ex4() {
cout << (( ((x > x1 && x < x2) || (x > x2 && x < x1)) && ((y > y1 && y < y2) || (y > y2 && y < y1)) ) ? "true" : "false");
}
+// Задача 5
+// Какво ще изведе програмата:
+// #include <iostream>
+// using namespace std;
+// int main() {
+// int c = 5;
+// int d = (c += 3 ) + (c += 5);
+// cout << d;
+// return 0;
+// }
+// Защо?
void ex5() {
cout << "Will output 26, since = returns a reference and at the end it evaluates to c + c." << endl;
@@ -90,6 +127,18 @@ void ex5() {
cout << d;
}
+// Задача 6
+// Какво ще изведе програмата:
+// #include <iostream>
+// using namespace std;
+// int main() {
+// int c = 5;
+// if (c += c -= 5)
+// cout << (c *= 10);
+// else
+// cout << c;
+// }
+// Защо?
void ex6() {
cout << "Will output 0, = evaluates from the right to the left, so c becomes 0 and we have 0 + 0." << endl;
@@ -100,6 +149,15 @@ void ex6() {
cout << c;
}
+// Задача 7
+// Какво ще изведе програмата:
+// #include <iostream>
+// using namespace std;
+// int main() {
+// int c = 5;
+// cout << ((c == 6) || (c / 0));
+// }
+// Защо?
void ex7() {
cout << "Will output nothing, since you cannot divide by 0" << endl;
@@ -107,6 +165,15 @@ void ex7() {
cout << ((c == 6) || (c / 0));
}
+// Задача 8
+// Какво ще изведе програмата:
+// #include <iostream>
+// using namespace std;
+// int main() {
+// int c = 5;
+// cout << ((c == 6) && (c / 0));
+// }
+// Защо?
void ex8() {
cout << "Will output 0, since comparison is lazy and when it evaluates c == 6 as false, it just returns" << endl;
@@ -114,6 +181,17 @@ void ex8() {
cout << ((c == 6) && (c / 0));
}
+// Задача 9
+// Какво ще изведе програмата:
+// #include <iostream>
+// using namespace std;
+// int main() {
+// int c = 5;
+// double e = 0;
+// cout << ((c = 6) && (e = 1));
+// cout << c << " " << e;
+// }
+// Защо?
void ex9() {
cout << "Will output 16 1, because = returns a reference, which is practically a number, that is more than 0 so it evaluates as true" << endl;
@@ -123,6 +201,10 @@ void ex9() {
cout << c << " " << e;
}
+// Задача 10*:
+// Да се реши квадратно уравнение, като предварително от потребителя са въведени
+// a, b и с където:
+// ax 2 + bx + c = 0
void ex10() {
double a, b, c;
cin >> a >> b >> c;
diff --git a/Year 1/Programming introduction/Practice-25.10.21.cpp b/Year 1/Programming introduction/Practice-25.10.21.cpp
index ab96626..973b5cc 100644
--- a/Year 1/Programming introduction/Practice-25.10.21.cpp
+++ b/Year 1/Programming introduction/Practice-25.10.21.cpp
@@ -6,6 +6,12 @@ using namespace std;
* https://github.com/triffon/ip-2021-22/blob/master/practicum/6/week3/%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8%20%D1%82%D1%80%D0%B5%D1%82%D0%B0%20%D1%81%D0%B5%D0%B4%D0%BC%D0%B8%D1%86%D0%B0.pdf
*/
+// Задача 0
+// Въведете число а. Изведете цифрите му в обратен ред.
+// Пример:
+// Вход: 123637
+// Изход:
+// 736321
void ex0() {
int a;
cin >> a;
@@ -17,6 +23,12 @@ void ex0() {
cout << endl;
}
+// Задача 1
+// Напишете програма, която по въведено цяло положително число N извежда дали е
+// просто.
+// Пример:
+// Вход: 47
+// Изход: yes
void ex1() {
int a;
cin >> a;
@@ -31,6 +43,11 @@ void ex1() {
cout << ((isPrime) ? "yes" : "no") << endl;
}
+// Задача 2
+// Да се въведен число от конзолата и да се определи броят на цифрите му.
+// Пример:
+// Вход: 47
+// Изход: 2
void ex2() {
int a;
cin >> a;
@@ -43,6 +60,14 @@ void ex2() {
cout << digits << endl;
}
+// Задача 3
+// Въведете n на брой цифри. Изведете числото, което образуват. N се въвежда от
+// клавиатурата.
+// Пример:
+// Вход:
+// 5
+// 15387
+// Изход: 15387
void ex3() {
int a;
cin >> a;
@@ -55,6 +80,9 @@ void ex3() {
cout << endl;
}
+// Задача 4:
+// Изведете на екрана всички трицифрени числа, сумата на цифрите на които е
+// двуцифрено число.
void ex4() {
for (int i = 100, digitSum; i < 1000; i++) { // could probably be optimized
digitSum = i % 10 + (i / 10) % 10 + i / 100;
@@ -63,6 +91,12 @@ void ex4() {
}
}
+// Задача 5:
+// Редицата на Fibonacci се дефинира чрез рекурентното уравнение
+// F(n) = |0, ако n = 0,
+// |1, ако n = 1,
+// |F(n − 1) + F(n − 2), ако n ≥ 2
+// Да се напише програма, която при въведено n изписва n-тото число на фибоначи.
void ex5() {
int n;
cin >> n;
@@ -79,6 +113,21 @@ void ex5() {
}
}
+// Задача 6
+// При въведено число n да се изведе следната форма:
+// Вход: 12
+// *
+// **
+// ***
+// ****
+// *****
+// ******
+// *******
+// ********
+// *********
+// **********
+// ***********
+// ************
void ex6() {
int n;
cin >> n;
@@ -90,6 +139,26 @@ void ex6() {
}
}
+// Задача 7
+// При въведено число n, ако n е четно, добавяме единица към него. Искаме да
+// изведем пясъчен часовник:
+// 15
+// ***************
+// *************
+// ***********
+// *********
+// *******
+// *****
+// ***
+// *
+// *
+// ***
+// *****
+// *******
+// *********
+// ***********
+// *************
+// ***************
void ex7() {
int n;
cin >> n;
@@ -107,6 +176,9 @@ void ex7() {
}
}
+// Задача 8
+// Въвеждат се два часа във формата HH:MM (примерно 12:34). Да се отпечатат
+// всички часове между по - ранния и по - късния.
void ex8() {
int hour1, hour2;
cin >> hour1 >> hour2;