Summary Files Commits Branches @commit @diff @stats
path: root / Year 1 / Programming introduction / Practice-08.10.21.cpp
blob: bb64a5b17bac0f6fd54840bd70d14e6e993adf5f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
#include <iostream>

using namespace std;

/* Exercises:
 * 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;
    cout << "Square: " << a * a << " " << a * 4 << endl;
    cout << "Circle: " << 3.14 * a * 2 << endl;
    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;
    A = a, B = b;

    a += b;
    b = a - b;
    a -= b;
    cout << a << " " << b << endl;
    a = A, b = B;

    a *= b;
    b = a / b;
    a /= b;
    cout << a << " " << b << endl;
    a = A, b = B;

    temp = a;
    a = b;
    b = temp;
    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;

    cout << "Apples: ";
    cin >> currQuantity >> currPrice;
    aPrice = currQuantity * currPrice;

    cout << "Oranges: ";
    cin >> currQuantity >> currPrice;
    oPrice = currQuantity * currPrice;

    cout << "Bananas: ";
    cin >> currQuantity >> currPrice;
    bPrice = currQuantity * currPrice;

    cout << "Your order is: apples for " << aPrice << ", oranges for " << oPrice << " and bananas for " << bPrice << endl;
    cout << "Total: " << aPrice + oPrice + bPrice;
}

int main() {
    ex7();
}