Website Summary Files Commits Branches @commit @diff @stats
path: root / pract_SI / Pract. 03
diff options
context:
space:
mode:
Commit45167f8e4f3df0ca9ad4444272c1b8acf9a08f2c (patch)
Author
 Justsvetoslavov <justsvetoslavov@gmail.com>
2021-10-28 17:38:59 +0300
Committer
 Justsvetoslavov <justsvetoslavov@gmail.com>
2021-10-28 17:38:59 +0300
Filesa2e839c5fa42af0154dde5da0eb42f8abdd19037 /pract_SI/Pract. 03
Introduction_to_programming_FMI-45167f8e4f3df0ca9ad4444272c1b8acf9a08f2c.tar
Introduction_to_programming_FMI-45167f8e4f3df0ca9ad4444272c1b8acf9a08f2c.tar.gz
Introduction_to_programming_FMI-45167f8e4f3df0ca9ad4444272c1b8acf9a08f2c.zip
Parentf61a51c13a36ccf11b26651787be079861c50ea4 (diff)
Rename change
diff --git a/pract_SI/Pract. 03/Solutions/task1.cpp b/pract_SI/Pract. 03/Solutions/task1.cpp
new file mode 100644
index 0000000..ae955a8
--- /dev/null
+++ b/pract_SI/Pract. 03/Solutions/task1.cpp
@@ -0,0 +1,19 @@
+#include "pch.h"
+#include <iostream>
+
+using namespace std;
+
+int main()
+{
+ unsigned long long number;
+ cin >> number;
+
+ for (int i = 1; i <= number; i++)
+ {
+ for (int j = 1; j <= i; j++)
+ cout << j;
+ cout << endl;
+ }
+
+ return 0;
+}
diff --git a/pract_SI/Pract. 03/Solutions/task2.cpp b/pract_SI/Pract. 03/Solutions/task2.cpp
new file mode 100644
index 0000000..b3e970d
--- /dev/null
+++ b/pract_SI/Pract. 03/Solutions/task2.cpp
@@ -0,0 +1,17 @@
+#include <iostream>
+
+using namespace std;
+
+int main()
+{
+ unsigned long long number;
+ cin >> number;
+
+ for (unsigned long long x = 1, y = number; x < number; x++)
+ {
+ cout << "x = " << x << " "
+ << "y = " << --y << endl;
+ }
+
+ return 0;
+}
diff --git a/pract_SI/Pract. 03/Solutions/task3.cpp b/pract_SI/Pract. 03/Solutions/task3.cpp
new file mode 100644
index 0000000..a6a6362
--- /dev/null
+++ b/pract_SI/Pract. 03/Solutions/task3.cpp
@@ -0,0 +1,22 @@
+#include<iostream>
+using namespace std;
+int main()
+{
+ unsigned long long oldNumber, newNumber;
+
+ cout << "Enter a positive number: ";
+ cin >> oldNumber;
+
+ oldNumber *= oldNumber;
+ newNumber = 0;
+
+ while (oldNumber != 0)
+ {
+ newNumber = newNumber * 10 + oldNumber % 10;
+ oldNumber /= 10;
+ }
+
+ cout << newNumber << endl;
+
+ return 0;
+} \ No newline at end of file
diff --git a/pract_SI/Pract. 03/Solutions/task4.cpp b/pract_SI/Pract. 03/Solutions/task4.cpp
new file mode 100644
index 0000000..622b8a1
--- /dev/null
+++ b/pract_SI/Pract. 03/Solutions/task4.cpp
@@ -0,0 +1,21 @@
+#include<iostream>
+using namespace std;
+int main()
+{
+ unsigned int m, n;
+ cout << "Number of rows: ";
+ cin >> m;
+ cout << "Number of columns: ";
+ cin >> n;
+
+ for (unsigned int i = 1; i <= m * n; i++)
+ {
+ cout << i << " ";
+ if (i % n == 0)
+ {
+ cout << endl;
+ }
+ }
+
+ return 0;
+} \ No newline at end of file
diff --git a/pract_SI/Pract. 03/Solutions/task5.cpp b/pract_SI/Pract. 03/Solutions/task5.cpp
new file mode 100644
index 0000000..d6ac57c
--- /dev/null
+++ b/pract_SI/Pract. 03/Solutions/task5.cpp
@@ -0,0 +1,41 @@
+#include<iostream>
+using namespace std;
+int main()
+{
+ unsigned short number, guess;
+ unsigned int counter = 0;
+
+ cout << "Enter a number between 0 and 100: ";
+ cin >> number;
+ if (number < 0 || number > 100)
+ {
+ cout << "Invalid input!\n";
+ return 1;
+ }
+
+ do
+ {
+ ++counter;
+
+ cout << "Guess " << counter << ": ";
+ cin >> guess;
+ if (guess < 0 || guess > 100)
+ {
+ cout << "Invalid input!\n";
+ return 2;
+ }
+
+ if (guess < number)
+ {
+ cout << "The number you are looking for is greater than your guess!\n";
+ }
+ else if (guess > number)
+ {
+ cout << "The number you are looking for is less than your guess!\n";
+ }
+ } while (guess != number);
+
+ cout << "You found the number in " << counter << " attempt(s)!\n";
+
+ return 0;
+} \ No newline at end of file
diff --git a/pract_SI/Pract. 03/Solutions/task6.cpp b/pract_SI/Pract. 03/Solutions/task6.cpp
new file mode 100644
index 0000000..8d0beac
--- /dev/null
+++ b/pract_SI/Pract. 03/Solutions/task6.cpp
@@ -0,0 +1,18 @@
+#include<iostream>
+using namespace std;
+int main()
+{
+ unsigned int number = 0, input = 1;
+
+ while(input != 0)
+ {
+ cout << "Enter a positive number: ";
+ cin >> input;
+
+ number ^= input;
+ }
+
+ cout << "The single number is " << number << endl;
+
+ return 0;
+} \ No newline at end of file
diff --git a/pract_SI/Pract. 03/Solutions/task7.cpp b/pract_SI/Pract. 03/Solutions/task7.cpp
new file mode 100644
index 0000000..aa9194b
--- /dev/null
+++ b/pract_SI/Pract. 03/Solutions/task7.cpp
@@ -0,0 +1,30 @@
+#include <iostream>
+#define LIMIT 5
+#define SEPARATOR " "
+
+using namespace std;
+
+//const short LIMIT = 5;
+//const char SEPARATOR = ' ';
+
+
+int main()
+{
+ unsigned long long N;
+ cin >> N;
+
+ if (N < LIMIT)
+ return -1;
+
+ for (int c = 1; c <= N; c++) {
+ for (int b = 1; b < c; b++) {
+ for (int a = 1; a < b; a++) {
+ if ((a * a) + (b * b) == (c * c)) {
+ cout << a << SEPARATOR << b << SEPARATOR << c << endl;
+ }
+ }
+ }
+ }
+
+ return 0;
+}
diff --git a/pract_SI/Pract. 03/Solutions/task8.cpp b/pract_SI/Pract. 03/Solutions/task8.cpp
new file mode 100644
index 0000000..3f32ebf
--- /dev/null
+++ b/pract_SI/Pract. 03/Solutions/task8.cpp
@@ -0,0 +1,41 @@
+#include <iostream>
+
+using namespace std;
+
+const short LOWERLIMIT = 2;
+const short UPPERLIMIT = 9;
+const char SEPARATOR = ' ';
+
+int main()
+{
+ short N;
+ char S;
+ cin >> N >> S;
+
+ if (N < LOWERLIMIT || N > UPPERLIMIT)
+ return -1; //end program
+
+ for (int i = 1; i <= N; i++)
+ {
+ for (int j = N - i; j > 0; j--)
+ cout << SEPARATOR;
+
+ for (int k = 1; k < 2 * i; k++)
+ cout << S;
+
+ cout << endl;
+ }
+
+ for (int i = 1; i < N; i++)
+ {
+ for (int j = 1; j <= i; j++)
+ cout << SEPARATOR;
+
+ for (int k = 1; k < 2 * (N - i); k++)
+ cout << S;
+
+ cout << endl;
+ }
+
+ return 0;
+} \ No newline at end of file
diff --git a/pract_SI/Pract. 03/Solutions/task9.cpp b/pract_SI/Pract. 03/Solutions/task9.cpp
new file mode 100644
index 0000000..9f1f054
--- /dev/null
+++ b/pract_SI/Pract. 03/Solutions/task9.cpp
@@ -0,0 +1,59 @@
+#include <iostream>
+
+int main() {
+
+ // по-нататък ще учим как се вкарват сложни данни, затова сега ще ги hardcode-нем в main-а
+
+ int hoursOnesStart = 2, minutesTensStart = 5, secondsOnesStart = 6;
+ int hoursOnesFinal = 1, minutesTensFinal = 0, secondsOnesFinal = 2;
+ int hoursDelta = 10, minutesDelta = 19, secondsDelta = 26;
+
+ for (size_t hoursTensStart = 0; hoursTensStart <= 1; ++hoursTensStart)
+ {
+ for (size_t minutesOnesStart = 0; minutesOnesStart <= 9; ++minutesOnesStart)
+ {
+ for (size_t secondsTensStart = 0; secondsTensStart <= 5; secondsTensStart++)
+ {
+ int hoursTemp = hoursTensStart * 10 + hoursOnesStart;
+ int minutesTemp = minutesTensStart * 10 + minutesOnesStart;
+ int secondsTemp = secondsTensStart * 10 + secondsOnesStart;
+
+ secondsTemp += secondsDelta;
+ if (secondsTemp >= 60) {
+ minutesTemp += secondsTemp / 60;
+ secondsTemp %= 60;
+ }
+
+ minutesTemp += minutesDelta;
+ if (minutesTemp >= 60) {
+ hoursTemp += minutesTemp / 60;
+ minutesTemp %= 60;
+ }
+
+ hoursTemp += hoursDelta;
+ if (hoursTemp > 12) {
+ hoursTemp %= 12;
+ }
+
+ bool hoursOnesMatch = hoursTemp % 10 == hoursOnesFinal,
+ minutesTensMatch = minutesTemp / 10 == minutesTensFinal,
+ secondsOnesMatch = secondsTemp % 10 == secondsOnesFinal;
+
+ if (hoursOnesMatch && minutesTensMatch && secondsOnesMatch) {
+ int hoursTensFinal = hoursTemp / 10,
+ minutesOnesFinal = minutesTemp % 10,
+ secondsTensFinal = secondsTemp / 10;
+
+ std::cout << hoursTensStart << hoursOnesStart << ':'
+ << minutesTensStart << minutesOnesStart << ':'
+ << secondsTensStart << secondsOnesStart << ' '
+ << hoursTensFinal << hoursOnesFinal << ':'
+ << minutesTensFinal << minutesOnesFinal << ':'
+ << secondsTensFinal << secondsOnesFinal << '\n';
+ }
+ }
+ }
+ }
+
+ return 0;
+} \ No newline at end of file
diff --git a/pract_SI/Pract. 03/Startup_tasks.txt b/pract_SI/Pract. 03/Startup_tasks.txt
new file mode 100644
index 0000000..8ee6d58
--- /dev/null
+++ b/pract_SI/Pract. 03/Startup_tasks.txt
@@ -0,0 +1,7 @@
+1.Напишете програма , която приема като вход N лева.Да се отпечата как бихме разпределили сумата на банкноти,
+така че да имаме минимален брой банкноти. (Да не се използват условни оператори и цикли)
+Пояснение: Нека да приемем, че имаме банкноти с 1лв и 2лв.
+
+2.Напишете програма, която приема като вход цяло положително число V, което ще отговаря на скорост.
+Програмата да отпечатва колко е глобата от КАТ, а ако няма глоба следното съобщение "No speedticket".
+(https://stamatovandpartners.com/elektronen-fish-za-previshena-skorost/) \ No newline at end of file
diff --git a/pract_SI/Pract. 03/Tasks3.txt b/pract_SI/Pract. 03/Tasks3.txt
new file mode 100644
index 0000000..64c5c4c
--- /dev/null
+++ b/pract_SI/Pract. 03/Tasks3.txt
@@ -0,0 +1,131 @@
+#Никола Светославов - task3
+
+## Задачи
+
+1.Да се напише програма, която приема естествено число n и изписва стълба от 1 до n
+
+Пример
+Вход:
+5
+Изход:
+1
+12
+123
+1234
+12345
+
+2.Да се състави програма, която по въведено естествено число n да изведе всички естествени решения на уравнението x + y = n.
+
+Пример
+Вход:
+4
+Изход:
+x = 1 y = 3
+x = 2 y = 2
+x = 3 y = 1
+
+
+3.Напишете програма, която по въведено цяло положително число, извежда квадратът на това число, но в обратен ред, като водещите нули се игнорират.
+
+Пример
+Вход:
+10
+Изход:
+1
+
+Вход:
+25
+Изход:
+526
+
+4.Напишете програма, която приема от потребителя две цели положителни числа - *m* и *n*.
+ Програмата да отпечата числатаот 1 до m*n, като на всеки ред има по *n* числа (тоест ще отпечатате *m* реда).
+ Печатайте числата по редове:
+
+Пример
+Вход:
+2 3
+Изход:
+1 2 3
+4 5 6
+
+5.Напишете проста игра, в която първо се въвежда цяло число в интервала [0;100] и в последствие се въвеждат цели числа
+ (предположения), като за всяко се казва дали е по - малко или по - голямо от първоначално ваведеното.
+ Tова продължава до въвеждане на число, равно на първоначалното. Програмата да отпечата и броят направени предположения.
+
+6.Напишете програма, която иска от потребителя поредица от цели числа по - големи от 0.
+ Въвеждането приключва с въвеждане на 0. Гарантирано е, че всяко от числата е въведено **точно два пъти** освен едно,
+ което е въведено **точно веднъж**. Програмата да изведе кое е това число.
+
+7.Да се състави програма, която по въведено естествено число N намира и отпечатва всички тройки естествени числа a, b и c,
+ не по-големи от N, които могат да бъдат страни на правоъгълен триъгълник.
+
+Пример
+Вход:
+11
+Изход
+3 4 5
+6 8 10
+
+8.Напишете програма, която иска от потребителя вход цифра N[2;9] и символ S.Програмата да извежда фигура съставена от символа във вид на ромб, както е показано на примерите.
+
+Пример
+Вход:
+5 *
+Изход
+ *
+ ***
+ *****
+ *******
+*********
+ *******
+ *****
+ ***
+ *
+
+*Бонус*
+Задача ЕЛЕКТРОНЕН ЧАСОВНИК
+В големия нов МОЛ в града на програмистите се повредили част от цифрите на електронния часовник.
+Повредени били първата цифра от числото, което показва часовете, втората цифра на числото, което показва минутите и първата цифра на числото, което показва секундите.
+Вместо тях на екрана се появявал знака *.
+Когато Коко и приятелите му ходели на кино, те не успявали да преценят точно колко е часа.
+Все пак, момчетата си създали система за изчисление, която приблизително точно им показвало времето.
+Те успявали да предвидят колко е показвал часовника в началото и края на филма, в случай че знаят точно колко време е минало.
+Срещу името на всеки филм на входа на киното е дадено неговото времетраене в часове, минути и секунди.
+Пресмятанията доста затрудняват момчетата и затова на тях ще им е по-удобно това да се прави с компютърна програма.
+Те не разбират много от програмиране и затова вие трябва да напишете програма clock, която помага на Коко и приятелите му.
+
+Вход:
+На първия ред на стандартния вход е записана последователност от цифри и знака *, която показва какво се вижда на екрана на часовника в началото на филма.
+На втория ред е записана подобна последователност за показанието на часовника в края на филма.
+На третия ред се въвежда продължителността на филма в часове, минути и секунди.
+Часовникът е настроен така, че показва времето по 12-часова скала, а не по 24-часова.
+
+Изход:
+На стандартния изход изведете всички възможни показания на часовника за началото и края на филма.
+Всяка двойка с начален и краен час се извежда на един ред, като първо се извежда началното показание във формат hh:mm:ss, и след един интервал крайното показание в същия формат.
+Ако такива показания на часовника не са възможни, да се изведе “Impossible”.
+
+Ограничения:
+Продължителността на филма е не по-голяма 12 часа.
+
+Примери:
+
+Вход:
+*25**6
+*10**2
+10 19 26
+Изход:
+02:50:06 01:09:32
+02:50:16 01:09:42
+02:50:26 01:09:52
+12:50:06 11:09:32
+12:50:16 11:09:42
+12:50:26 11:09:52
+
+Вход:
+*95**6
+*21**2
+4 12 6
+Изход:
+Impossible