Summary Files Commits Branches @commit @diff @stats
path: root / Year 1 / Programming introduction / Practice-02.10.21.cpp
diff options
context:
space:
mode:
Commit07fe4df7b89a56f0f3e6bd224895483b04a52696 (patch)
Author
 Syndamia <kamen.d.mladenov@protonmail.com>
2021-11-07 12:27:31 +0200
Committer
 Syndamia <kamen.d.mladenov@protonmail.com>
2021-11-07 12:27:31 +0200
Files144219863e69b6b051f516ca87659b1d21e20003 /Year 1/Programming introduction/Practice-02.10.21.cpp
uni-projects-07fe4df7b89a56f0f3e6bd224895483b04a52696.tar
uni-projects-07fe4df7b89a56f0f3e6bd224895483b04a52696.tar.gz
uni-projects-07fe4df7b89a56f0f3e6bd224895483b04a52696.zip
Parent3f402620ecd071fb467b108036ac08ed48c5f929 (diff)
Fixed filename date
1 files changed, 0 insertions, 205 deletions
-rw-r--r--Year 1/Programming introduction/Practice-02.10.21.cpp205
diff --git a/Year 1/Programming introduction/Practice-02.10.21.cpp b/Year 1/Programming introduction/Practice-02.10.21.cpp
deleted file mode 100644
index 1ddf6bd..0000000
--- a/Year 1/Programming introduction/Practice-02.10.21.cpp
+++ /dev/null
@@ -1,205 +0,0 @@
-#include <cstdlib>
-#include <iostream>
-#include <cmath>
-
-using namespace std;
-
-/* Exercises:
- * https://github.com/triffon/ip-2021-22/blob/master/practicum/6/week4/%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B8%20%D1%87%D0%B5%D1%82%D0%B2%D1%8A%D1%80%D1%82%D0%B0%20%D1%81%D0%B5%D0%B4%D0%BC%D0%B8%D1%86%D0%B0.pdf
- */
-
-// Задача първа:
-// Да се напише функция която при подадени два параметъра m и n връща сумата на
-// числата в интервала [m, n].
-
-int rangeSum(int m, int n) {
- if (m > n) return 0;
-
- int sum = m;
- while(++m <= n) // can be optimized with progression sum formula
- sum += m;
-
- return sum;
-}
-
-void ex1() {
- int m, n;
- cin >> m >> n;
-
- cout << rangeSum(m, n) << endl;
-}
-
-// Задача втора:
-// Напишете функция която приема за аргументи х и n като n e цяло число и връща
-// х на степен n. Не можем да използваме функция pow.
-// Пример:
-// Вход: 3 2 Изход: 9
-
-int powered(int x, int n) {
- int poweredNum = 1;
- while(--n >= 0)
- poweredNum *= x;
-
- return poweredNum;
-}
-
-void ex2() {
- int x, n;
- cin >> x >> n;
-
- cout << powered(x, n) << endl;
-}
-
-// Задача трета:
-// Да се напише функция която приема число и връща абсолютната му стойност.
-
-int absNum(int n) {
- return (n < 0) ? -n : n;
-}
-
-void ex3() {
- int n;
- cin >> n;
-
- cout << absNum(n) << endl;
-}
-
-// Задача четвърта:
-// Напишете функция която намира разстоянието между две точки по подадени
-// координати в декартова координатна система.
-
-double pointDistance(int x1, int y1, int x2, int y2) {
- return sqrt(powered(absNum(x2 - x1), 2) + powered(absNum(y2 - y1), 2));
-}
-
-void ex4() {
- int x1, y1, x2, y2;
- cin >> x1 >> y1 >> x2 >> y2;
-
- cout << pointDistance(x1, y1, x2, y2) << endl;
-}
-
-// Задача пета:
-// Напишете функция която намира обиколката на триъгълник определен по
-// подадени три точки
-
-double trianglePerimeter(int x1, int y1, int x2, int y2, int x3, int y3) {
- return pointDistance(x1, y1, x2, y2) + pointDistance(x1, y1, x3, y3) + pointDistance(x2, y2, x3, y3);
-}
-
-void ex5() {
- int x1, y1, x2, y2, x3, y3;
- cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3;
-
- cout << trianglePerimeter(x1, y1, x2, y2, x3, y3) << endl;
-}
-
-// Задача шеста:
-// Напишете функция, която приема цяло число и връща факториела му.
-
-int fac(int n) {
- if (n <= 1) return 1; // doesn't support negatives
-
- int factoriel = 1;
- for(int i = 1; i <= n; i++)
- factoriel *= i;
-
- return factoriel;
-}
-
-void ex6() {
- int n;
- cin >> n;
-
- cout << fac(n) << endl;
-}
-
-// Бонус
-// Напишете функция която пресмята лицето на триъгълник определен по подадени
-// три точки.
-
-double triangleArea(int x1, int y1, int x2, int y2, int x3, int y3) {
- double a = pointDistance(x1, y1, x2, y2), b = pointDistance(x1, y1, x3, y3), c = pointDistance(x2, y2, x3, y3);
- double p = (a + b + c) / 2;
- return sqrt(p * (p - a) * (p - b) * (p - c)); // Heron's formula
-}
-
-void bonus() {
- int x1, y1, x2, y2, x3, y3;
- cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3;
-
- cout << triangleArea(x1, y1, x2, y2, x3, y3) << endl;
-}
-
-// Задача седма:
-// Напишете функция която приема символ и определя дали е число.
-
-bool charIsNum(char ch) {
- return ch >= '0' && ch <= '9';
-}
-
-void ex7() {
- char s;
- cin >> s;
-
- cout << ((charIsNum(s) ? "Is a number" : "Is NOT a number")) << endl;
-}
-
-// Задача осма**:
-// Напишете функция която приема два агрумента и връща цяло число. Числото
-// трябва да е различно за всеки две различни стойности на входа.
-// Тоест:
-// (f(a, b) == f(c, d)) ⇐⇒ (a == c & b == d)
-
-int f(int a, int b) {
- // This is some old code of mine: https://gitlab.com/Syndamia/algorithms/-/blob/master/C_C++/FindSpiralNumber.cpp
- int n, v = max(abs(a), abs(b)), g = 8 * (v * (v + 1) / 2);
-
- if (b == v || a == v) { // Top row or right column
- n = g - a + b - 6 * v;
- }
- else { // Left column or bottom row
- n = g + a - b - 2 * v;
- }
-
- return n;
-}
-
-void ex8() {
- int a, b, c, d;
- cin >> a >> b >> c >> d;
-
- cout << f(a, b) << " " << f(c, d) << endl;
-}
-
-// Задача девета:
-// Играем играта guess the number! Правилата са следните:
-// Компютърът си намисля число на случаен принцип (използваме функцията rand())
-// Потребителя въвежда число. Ако числото е правилно сме победители. В противен
-// случай получаваме съобщение дали въведеното от нас число е по - голямо или по -
-// малко от намисленото. Играта продължава докато не се познае числото.
-// Играта да се реализира във функция play().
-
-void play() {
- int n = rand();
-
- int input;
- while(true) {
- cin >> input;
-
- if(input == n) {
- cout << "You win!" << endl;
- return;
- }
- else
- cout << ((n > input) ? "Smaller than n" : "Bigger than n") << endl;
- }
-}
-
-void ex9() {
- play();
-}
-
-int main() {
- ex9();
-}