Структурно програмирање

Аудиториска вежба 2


1. Вовед во C++

2. Структура на програма

Потсетување: Изворниот код на програмскиот јазик C++ е организиран во функции

#include<iostream>
using namespace std;

int main() {
  deklaracija na promenlivi;
  programski_naredbi;
}

3. Основна програма во C++

#include <iostream>
using namespace std;
// glavna funkcija
int main() {
  /*
  pechatenje poraka na ekran
  */
  cout << "Dobredojdovte na FINKI!" << endl;
  return 0;
}

4. Влез/Излез текови во C++ <iostream>

Во С++ за работа со влезно/излезните текови ги користиме операторите: - << од објектот cout (cout <<) - >> од објектот cin (cin >>)

Овие објекти се дел од стандардната библиотека iostream, која се вклучува во програмата со наредбата #include <iostream> на почетокот на кодот.

Пример:

#include<iostream>
using namespace std;

int main() {
   int vred;
   cout << "Vnesi vrednost za promenlivata vred: ";
   cin >> vred;
   cout << "Vnesenata vrednost e: " << vred << '\n';
}

5. Променливи (variables)

5.1. Начин на декларација на променливи

Во програмскиот јазик C++, променливите се декларираат со следната синтакса:

тип_на_променлива име_на_променлива = почетна_вредност;

Пример декларации на променливи од различни типови:

    int broj = 5;
    float cena = 7.99;     
    char znak = 'а';      
    bool vistina = true; 

5.2. Типови на променливи во C++

Цели броеви Знаковни Реални броеви Булови
int char float bool
short double
long long double

6. Коментари

За дополнително до објаснување или документирање на изворниот код се користат коментари. Постојат два вида коментари: - коментари во еден ред

    // komentar vo eden red
    /*
        komentar vo
        povekje redovi
    */

7. Оператори

Се применуваат на броеви (цели или децимални):

Оператор Операција
+ Собирање
- Одземање
* Множење
/ Делење
% Делење по модул (остаток при делењето)

8. Задачи

8.1. Задача 1

Да се напише програма која ќе ја пресметува вредноста на математичкиот израз: x = 3/2 + (5 – 46*5/12)

Решение:

    #include <iostream>
    using namespace std;
    
    int main(){
        float x = 3.0 / 2 + (5 - 46 * 5.0 / 12);
        cout << "x = " << x << endl;
        return 0;
    }

8.2. Задача 2

Да се напише програма која за зададена вредност на х (при декларација на променливата) ќе го пресмета и отпечати на екран х2.

Решение:

    #include <iostream>
    using namespace std;
    
    int main() {
        int x = 7;
        cout << "Brojot " << x << " na kvadrat e " << x * x << endl;
        return 0;
    }

8.3. Задача 3

Да се напише програма која за дадени страни на еден разностран триаголник ќе ги отпечати на екран периметарот и квадратот од плоштината (нека се работи со a = 5, b = 7.5, c = 10.2).

Решение:

    #include <iostream>
    using namespace std;
    
    int main() {
        float a = 5.0;
        float b = 7.5;
        float c = 10.2;
        float L = a + b + c;
        float s = L / 2;
        float P = s * (s - a) * (s - b) * (s - c);
        cout << "Perimetarot e: " << L << endl;
        cout << "Kvadratot na ploshtinata e: " << P << endl;
        return 0;
    }

8.4. Задача 4

Да се напише програма за пресметување на аритметичката средина на броевите 3, 5 и 12.

Решение:

    #include <iostream>
    using namespace std;
    
    int main() {
        int a = 3;
        int b = 5;
        int c = 12;
        float as = (a + b + c) / 3.0;
        cout << "Aritmetichkata sredina e: " << as << endl;
        return 0;
    }

8.5. Задача 5

Да се напише програма која ќе ги отпечати на екран остатоците при делењето на бројот 19 со 2, 3, 5 и 8.

Решение:

    #include <iostream>
    using namespace std;
    
    int main() {
        int a = 19;
        cout << "Ostatokot pri delenje na 19 so 2 e: " << a % 2 << endl;
        cout << "Ostatokot pri delenje na 19 so 3 e: " << a % 3 << endl;
        cout << "Ostatokot pri delenje na 19 so 5 e: " << a % 5 << endl;
        cout << "Ostatokot pri delenje na 19 so 8 e: " << a % 8 << endl;
        return 0;
    }

8.6. Задача 6

Да се напише програма за пресметување и печатење на плоштината и периметарот на круг. Радиусот на кругот се чита од стандарден влез (тастатура) како децимален број.

Решение:

    #include <iostream>
    using namespace std;

    int main() {
        float radius;
        cin>>radius;

        float perimetar = 2 * radius * 3.14;
        float ploshtina = radius * radius * 3.14;
    
        cout << "L = " << perimetar << endl;
        cout << "P = " << ploshtina << endl;
        return 0;
    }

8.7. Задача 7

Да се напише програма која од СВ ќе прочита два цели броеви и ќе ја испечати на компјутерскиот екран нивната сума, разлика, производ и остатокот при делењето.

Решение:

    #include <iostream>
    using namespace std;

    int main() {
        int x, y;
        cin >> x >> y;

        cout << x << " + " << y << " = " << x + y << endl;
        cout << x << " - " << y << " = " << x - y << endl;
        cout << x << " * " << y << " = " << x * y << endl;
        cout << x << " % " << y << " = " << x % y << endl;
        return 0;
    }

8.8. Задача 8

Да се напише програма која чита голема буква од стандарден влез и ја печати истата како мала буква. - Напомена: Секој знак се претставува со ASCII број.

Решение:

    #include <iostream>
    using namespace std;

    int main() {
        char c;
        cout << "Vnesete golema bukva: " << endl;
        cin >> c;
        cout << c << "malo se pishuva " << char (c + ('a' - 'A')) << endl;
        return 0;
    }

8.9. Задача 9

Да се напише програма каде од тастатура ќе се внесе цена на производ, а потоа ќе ја испечати неговата цена со пресметан ддв.

ПОМОШ: ДДВ е 18% од почетната цена

Решение:

#include <iostream>
using namespace std;

int main()
{
    float cena;
    cout << "Vnesete ja cenata na proizvodot: ";
    cin >> cena;
    cout << "Vkupnata cena na proizvodot e " << cena*1.18;
    return 0;
}

8.10 Задача 10

Да се напише програма каде од тастатура ќе се внесе цена на производ, број на рати на кои се исплаќа и камата (каматата е број изразен во проценти од 0 до 100). Програмата треба да го испечати износот на ратата и вкупната сума што ќе се исплати за производот

ПОМОШ: Пресметајте ја целата сума, па потоа ратата.

Решение:

#include <iostream>
using namespace std;

int main()
{
    float cena, kamata, rata, vkupno;
    int brRati;
    cout << "Vnesete ja cenata na proizvodot: \n";
    cin >> cena;
    cout << "Vnesete go brojot na rati: ";
    cin >> brRati;
    cout << "Vnesete ja kamatata: ";
    cin >> kamata;
    vkupno = cena * (1 + kamata/100);
    rata = vkupno / brRati;
    cout << "Edna rata ke iznesuva: " << rata << endl;
    cout << "Vkupnata isplatena suma ke bide: " << vkupno;
    return 0;
}

8.11. Задача 11

Да се напише програма каде од тастатура ќе се внесе трицифрен цел број. Програмата ќе ја испечати најзначајната и најмалку значајната цифра од бројот

ПОМОШ: Искористете целобројно делење и остаток од делење.

Решение:

#include <iostream>
using namespace std;

int main()
{
    int broj;
    cout << "Vnesete go brojot: ";
    cin >> broj;
    cout << "Najznachajna cifra e " << (broj / 100);
    cout << ", a najmalku znachajna e " << (broj % 10);
    return 0;
}

8.12. Задача 12

Да се напише програма каде од тастатура ќе се внесе датумот на раѓање во формат (ddmmgggg). Програмата на компјутерскиот екран ќе го испечати денот и месецот на раѓање.

ПОМОШ: Искористете целобројно делење и остаток од делење.

Решение:

#include <iostream>
using namespace std;

int main()
{
    long int datum;
    int den, mesec;
    cout << "Vnesete datum na ragjanje: ";
    cin >> datum;
    den = datum / 1000000;
    mesec = (datum / 10000) % 100;
    cout << "Vashata data na ragjanje e " << den << "." <<mesec;
    return 0;
}