You are on page 1of 57

ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Редоследна структура,
променливи,
први С++ програми
Структурно дел
програмирање
1 (вовед)
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Содржина
◼ Редоследна структура
◼ Основни елементи на јазикот
◼ Прва С++ програма и печатење на
компјутерскиот екран
◼ Податоци и променливи
◼ Приказ на податоци на компјутерскиот екран
◼ Внесување податоци од тастатура
◼ Оператор за доделување и аритметички
операции

СТРУКТУРНО ПРОГРАМИРАЊЕ 2
Вовед
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Решете!
Замислете дека дома имате Обидете се да
интелигентен робот кој ги напишете упатство
изведува следните активности
(алгоритам) со кое роботот
(со соодветната команда):
ќе успее „ровко“ да Ви
„Земи тенџере“, свари 2 јајца на шпорет со
„Внимателно стави го земеното една рингла.
над ринглата од шпоретот“,
За да бидат ровко сварени
„Земеното, наполни го со вода“
јајцата, потребно е да се
„Земи јајце од фрижидерот“, варат 5 минути од
„Вклучи го шпоретот“, вклучувањето на ринглата.
„Исклучи го шпоретот“ и
„Почекај точно 1 минута“.

СТРУКТУРНО ПРОГРАМИРАЊЕ 3
Вовед
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Решение
„Земи тенџере“
„Земеното, наполни го со „Вклучи го шпоретот“
вода“ „Почекај точно 1 минута“
„Внимателно стави го „Почекај точно 1 минута“
земеното над ринглата од „Почекај точно 1 минута“
шпоретот“
„Почекај точно 1 минута“
„Земи јајце од фрижидерот“
„Почекај точно 1 минута“
„Внимателно стави го
„Исклучи го шпоретот“
земеното над ринглата од
шпоретот“
„Земи јајце од фрижидерот“
„Внимателно стави го
земеното над ринглата од
шпоретот“
СТРУКТУРНО ПРОГРАМИРАЊЕ 4
Вовед
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

За роботот и варењето јајца ☺


◼ Претходниот проблем успешно го решивме со 14 наредби
кон роботот.
◼ Колку наредби ќе ни требаа за варење на 3 јајца наместо 2?
◼ Забележете дека наредбите ги извршуваме во редослед!
◼ Секоја наредна наредба започнува дури откако
претходната ќе заврши.
◼ Забележете дека некои наредби моравме да ги запишеме
неколку пати една под друга, оти требаа да се повторат!
Дали можеби има начин како тоа да се направи без да
мора да ги запишуваме по повеќе пати?

5
Вовед
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Решение (да разгледаме и изброиме)


1. Земи тенџере
2. Земеното, наполни го со вода 8. Вклучи го шпоретот
3. Внимателно стави го земеното 9. Почекај точно 1 минута
над ринглата од шпоретот 10. Почекај точно 1 минута
4. Земи јајце од фрижидерот 11. Почекај точно 1 минута
5. Внимателно стави го земеното 12. Почекај точно 1 минута
над ринглата од шпоретот 13. Почекај точно 1 минута
6. Земи јајце од фрижидерот 14. Исклучи го шпоретот
7. Внимателно стави го земеното
над ринглата од шпоретот

СТРУКТУРНО ПРОГРАМИРАЊЕ 6
Вовед
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Алгоритамски управувачки
(контролни) структури
Со нив не се извршуваат никакви пресметки, туку се одредува
редоследот на извршување на алгоритамските чекори, т. е. се управува
со редоследот на извршување на чекорите.

Во теоријата на програмирањето е познато дека секој алгоритам може


да се изрази со користење на некоја комбинација од следниве
алгоритамски контролни структури:
• Редоследна или секвенца (англ. sequence)
• Избор или селекција (англ. selection)
• Повторување или итерација (англ. iteration)

Првата алгоритамска контролна структура е позната и под името


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

7
Вовед
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Редоследна структура
Оваа алгоритамска контролна структура се состои од
алгоритамски чекори кои се извршуваат по оној редослед
по кој се наведени

почеток
чекор А;
чекор Б;
...
чекор Т;
крај

За да може практично низ програма да ја покажеме


редоследната структура, следно ќе се запознаеме со
елементи од јазикот С++
8
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Содржина
◼ Редоследна структура
◼ Основни елементи на јазикот
◼ Прва С++ програма и печатење на
компјутерскиот екран
◼ Податоци и променливи
◼ Приказ на податоци на компјутерскиот екран
◼ Внесување податоци од тастатура
◼ Оператор за доделување и аритметички
операции

СТРУКТУРНО ПРОГРАМИРАЊЕ 9
C programming language
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Eлементи на јазикот C
◼ Во 1972 година во лабораториите „АT&T Bell Labs“ е
дизајниран јазикот С од страна на Dennis Ritchie (Денис
Ричи) и Brian Kernighan (Брајан Кeрниген)
◼ Во него се вградени неколку особини кои ги немале
тогашните програмски јазици:
 Дозволува пристап до ресурси на многу ниско ниво.
 Погоден e за системско програмирање.
 Може да се извршува на различни машински платформи.
 Работи под опкружување на различни оперативни системи.

СТРУКТУРНО ПРОГРАМИРАЊЕ 10
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

С++ почетоци

 1983 – C++
➢ надградба на С со цел:
➢ да се направи јазик за сериозно програмирање, јазик за
општа намена кој ќе биде подобар од С
➢ да поддржува апстрактни типови на податоци
o да е објектно ориентиран

СТРУКТУРНО ПРОГРАМИРАЊЕ
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Подобрувања

 Голем дел од елементите на C се задржани и кај


C++
➢ некои сметаат дека е тоа нов јазик и дека е
подобро да се започне со изучување на C++
без претходно познавање на C

 C++ преведувач може да преведува и C


програми

СТРУКТУРНО ПРОГРАМИРАЊЕ
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Една С++ програма (изглед)

// Prva C++ programa Red 0


#include <iostream> // Red 1
using namespace std; // Red 2
// Red 3
int main() // Red 4
{ // Red 5
cout << "Zdravo, kako ste? "; // Red 6
return 0; // Red 7
} // Red 8
C programming language
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Синтакса
◼ Азбука на јазикот: мали и големи
букви од англиската азбука, цифри,
специјални знаци и интерпункциски
знаци
букви: a–z, A–Z, _
цифри: 0–9
Специјални знаци: ~ ! @ # % ^ & * (
) - + = : ; " ' < > , . ? | / \
{ } [ ]
СТРУКТУРНО ПРОГРАМИРАЊЕ 14
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Зборови

 Од азбуката на C++ се формираат


зборови кои може да бидат:
➢ клучни зборови
➢ бројни и симболички константи
➢ идентификатори
➢ стрингови
➢ оператори

СТРУКТУРНО ПРОГРАМИРАЊЕ
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Посебни симболи и коментари


 Посебен вид на симболи се
сепараторите со кои се одвојуваат
зборовите еден од друг
➢ бланко
➢ нов ред
➢ табулатор
 Два начина за коментар
➢ омеѓување со /* и */
➢ со // започнува коментар кој трае до
крајот на редот
СТРУКТУРНО ПРОГРАМИРАЊЕ
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Содржина
◼ Редоследна структура
◼ Основни елементи на јазикот
◼ Прва С++ програма и печатење на
компјутерскиот екран
◼ Податоци и променливи
◼ Приказ на податоци на компјутерскиот екран
◼ Внесување податоци од тастатура
◼ Оператор за доделување и аритметички
операции

СТРУКТУРНО ПРОГРАМИРАЊЕ 17
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Една С++ програма (елементи и структура)


// Prva C++ programa Red 0
#include <iostream> // Red 1
using namespace std; // Red 2
// Red 3
int main() // Red 4
{ // Red 5
cout << "Zdravo, kako ste? "; // Red 6
return 0; // Red 7
} // Red 8

 Да најдеме некои од елементите кои претходно


ги споменавме!
 Има ли коментари во програмата?
Вовед
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Објаснување на програмата
◼ Ред 0: коментар кој почнува со //;
◼ Ред 1: директива за вклучување на библиотеката iostream;
◼ Ред 2: директива за „претпоставка на префикс std“;
◼ Ред 3: празна линија која се игнорира при извршувањето;
◼ Ред 4: почеток на главна функција наречена main();
◼ Ред 5: првиот дел од големите загради за почеток на телото на функцијата;
◼ Ред 6: наредба за печатење
cout - наредба за печатење
<< - „оператор за печатење“
"Zdravo, kako ste ? " - текст кој се печати
; ‒ знак за крај на наредбата
◼ Ред 7: наредба која враќа вредност 0 од функцијата main().
◼ Ред 8: вториот дел од големите загради за крај на телото на функцијата
main().

СТРУКТУРНО ПРОГРАМИРАЊЕ 19
Вовед
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

// Prva C++ programa Red 0


#include <iostream> // Red 1
using namespace std; // Red 2
// Red 3
int main() // Red 4
{ // Red 5
cout << "Zdravo, kako ste? "; // Red 6
return 0; // Red 7
} // Red 8

◼ Ред 1 и Ред 2 содржат (претпроцесорски) директиви и нив ќе ги


објасниме во понатамошните предавања
 Засега, треба да гледаме на нив како на неопходен дел од програмите кои ќе ги
пишуваме
◼ Ред 4, Ред 5, Ред 7 и Ред 8 содржат задолжителен дел од секоја
програма.
 Тоа се редови во кои се најавува, започнува и враќа вредност и завршува
главната функција (функцијата main()), која ја има во секоја програма С++
 Ред 4 и Ред 7 понекогаш може да се малку поразлични, но тоа ќе биде понатаму
објаснето. Засега, запаметете ги како неопходен дел од програмата

СТРУКТУРНО ПРОГРАМИРАЊЕ 20
Вовед
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Печатење на компјутерскиот екран (Ред 6)


// Prva C++ programa Red 0
#include <iostream> // Red 1
using namespace std; // Red 2
// Red 3
int main() // Red 4
{ // Red 5
cout << "Zdravo, kako ste? "; // Red 6
return 0; // Red 7
} // Red 8

...
cout << "Zdravo, kako ste? "; // Red 6
cout << “Dali e se vo red? "; // Red 6.2
...
...
cout << "Zdravo, kako ste? "; // Red 6
cout << endl; // Red 6.1
cout << “Dali e se vo red? "; // Red 6.2
...
СТРУКТУРНО ПРОГРАМИРАЊЕ 21
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Проширена С++ програма


// Prva C++ programa Red 0
#include <iostream> // Red 1
using namespace std; // Red 2
// Red 3
int main() // Red 4
{ // Red 5
cout << "Zdravo, kako ste? "; // Red 6
cout << endl; // Red 6.1
cout << “Dali e se vo red? "; // Red 6.2
return 0; // Red 7
} // Red 8

 Каде имаме редоследна структура?


 Во наредбата cout можеме да комбинираме повеќе делови, па
така, горните три наредби може да се спојат во една:
cout << "Zdravo, kako ste ? " << endl << "Dali e se vo red ? ";
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Следна С++ програма


// Nova C++ programa Red 0
#include <iostream> // Red 1
using namespace std; // Red 2
// Red 3
int main() // Red 4
{ // Red 5
cout << "Broj " << 532; // Red 6
cout << "Zbir " << 12 + 55; // Red 7
cout << "Razlika" << " " << 12 – 55; // Red 8
return 0; // Red 9
} // Red 10

 Како се постигнува празно место помеѓу различните делови од cout


кои се печатат?
 Што и каде треба да се додаде за излезот наместо во еден да биде
во три реда?
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Содржина
◼ Редоследна структура
◼ Основни елементи на јазикот
◼ Прва С++ програма и печатење на
компјутерскиот екран
◼ Податоци и променливи
◼ Приказ на податоци на компјутерскиот екран
◼ Внесување податоци од тастатура
◼ Оператор за доделување и аритметички
операции

СТРУКТУРНО ПРОГРАМИРАЊЕ 24
Вовед
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Величини, константи и променливи


◼ Величина е мерка за некоја карактеристика на даден предмет или појава
 должина, волумен, маса, боја, возраст, брзина
◼ Во многу случаи податокот, т.е. вредноста на величината не се менува
◼ Во програмските јазици, константите се податоци за кои се одделува
место во работната меморија на компјутерот, кои имаат сопствено име и
на кои вредностите не им се менуваат за време на извршување на
програмата
◼ Вредноста на некои величини се менува (возраста на некој човек,
температурата во текот на денот, брзината на некој автомобил...) и затоа
велиме дека нивните вредности се променливи
 Ваквите податоци кои може да имаат променливи вредности се нарекуваат
променливи
◼ Променливите се податоци за кои се одделува место во работната
меморија на компјутерот, кои имаат сопствено име и кои може да
примаат различни вредности во процесот на извршување на програмата

СТРУКТУРНО ПРОГРАМИРАЊЕ 25
Вовед
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Карактеристики на податоците
◼ Со програмските јазици може да се
обработуваат различни податоци
 цели броеви, реални броеви, знаци, текстови итн.

◼ Велиме дека тоа се податоци од различен тип


◼ Покрај типот, податоците имаат име и вредност
◼ Затоа велиме дека податоците ги имаат
следниве карактеристики:
 Име
 Тип
 Вредност

СТРУКТУРНО ПРОГРАМИРАЊЕ 26
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Податочни типови (1)


◼ Податочниот тип определува
 како вредностите за даден податок се сместуваат во
меморијата,
 множеството вредности за податокот, и
 операциите што може да се извршат со или над неговите
вредности.
◼ Поделба
 Стандардни и изведени (корисничко дефинирани, композитни)
◼ Стандардни: int, char, float, ...

◼ Изведени: набројувачки, низи, полиња, записи итн.

 Едноставни и сложени
◼ Операции:
 Аритметички, логички и релациски

СТРУКТУРНО ПРОГРАМИРАЊЕ 27
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Податочни типови (2)


◼ целобројни вредности
 int, long, short, unsigned, ...
 Вредности на податочниот вид
 Ограничување на множеството вредности
◼ реални вредности
 float, double, ...
 Вредности на податочниот вид
 Ограничување на множеството вредности
◼ Големина на броевите и точност на броевите.

◼ знакови вредности
 елементи на ASCII кодната шема
 во програмите се користат со ‘a’, ‘!’

СТРУКТУРНО ПРОГРАМИРАЊЕ 28
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Константи (1)
✓ Означуваат податоци што во текот на извршување на програмата
не ја менуваат вредноста
✓ За секоја константа во програмскиот јазик C++ се одредува
податочниот вид
✓ Нумерички константи
➢ целобројни константи
❑ децимални константи - 1, 0, 2, 123
• дозволени цифри, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
❑ октални константи – 012, 076
• дозволени цифри, 0, 1, 2, 3, 4, 5, 6, 7
❑ хексадекадни константи – 0x23, 0x7B3F
• дозволени цифри, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, А, B, C, D, E, F
❑ константи од видот long 890L.

СТРУКТУРНО ПРОГРАМИРАЊЕ 29
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Константи (2)
✓ Нумерички константи
➢ реални константи
децимална и експоненцијална нотација

❑ броевите што содржат (.) или (е) претставуваат константи од


видот double
❑ да се дефинира float константа потребно е да се додаде F на
крајот од бројот 3.5F, 1e-7F,
❑ ВНИМАНИЕ: 12.0L e long double, но 12L е long int

✓ Знакови константи
➢ ‘a’, ‘\n’, ‘%’
✓ Текстуални низи
➢ “ana”, “”, “\n”, “a”

СТРУКТУРНО ПРОГРАМИРАЊЕ 30
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Променливи (1)
◼ Имињата на променливите соодветствуваат на
локација во компјутерската меморија
◼ Секоја променлива има име (идентификатор),
тип, големина и вредност
◼ Секогаш кога нова вредност ќе биде сместена во
контејнерот (променливата), претходната
вредност се брише
◼ Читањето вредност од променливата не ја
менува нејзината вредност
25 godiniJana
◼ Визуелен приказ
СТРУКТУРНО ПРОГРАМИРАЊЕ 31
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Променливи (2)
✓ Декларирање
➢ го кажува на компјутерот името и типот на променливата
✓ Формат
tipPromenliva ImePromenliva;
tipPromenliva Ime1, Ime2, Ime3;
tipPromenliva Ime=Vrednost;
tipPromenliva Ime1=vrednost1, Ime2=vrednost2;
✓ Правила:
➢ добро е секогаш да се прави на почетокот на функција или
➢ на почеток на кој и да е блок од изрази или
➢ надвор од функција
➢ и тоа секогаш пред да биде употребена

СТРУКТУРНО ПРОГРАМИРАЊЕ 32
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Задавање вредност на променлива

int Promenliva;
? Promenliva
Promenliva = 2; 2
Promenliva

◼ формат
Promenliva = vrednost;

СТРУКТУРНО ПРОГРАМИРАЊЕ 33
Вовед
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Именување на променливите
◼ Имињата на променливите може да содржат:
 Мали букви од a до z
 Големи букви од A до Z
 Цифри 0 до 9 (не смее да започнува со цифра)
 Знак за подвлекување _ кој се третира како буква (не
е препорачливо да започнува со _)

Треба да се ВНИМАВА!
- Имињата на променливите треба да имаат најмногу до 31
знак
- C++ ги разликува малите и големите букви!

СТРУКТУРНО ПРОГРАМИРАЊЕ 34
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Податочни типови – пример


Излез:
#include <iostream>
using namespace std; Vrednost na suma = 10
int main() Vrednost na pari = 2.21
{ Vrednost na bukva = A
int sum = 10; Vrednost na pi = 2.01e+06
float money = 2.21;
char letter = 'A';
double pi = 2.01E6;

cout << "Vrednost na suma = " << sum <<'\n';


cout << "Vrednost na pari = " << money <<'\n';
cout << "Vrednost na bukva = " << letter <<'\n';
cout << "Vrednost na pi = " << pi << endl;

return 0;
}

СТРУКТУРНО ПРОГРАМИРАЊЕ 35
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Содржина
◼ Редоследна структура
◼ Основни елементи на јазикот
◼ Прва С++ програма и печатење на
компјутерскиот екран
◼ Податоци и променливи
◼ Приказ на податоци на компјутерскиот екран
◼ Внесување податоци од тастатура
◼ Оператор за доделување и аритметички
операции

СТРУКТУРНО ПРОГРАМИРАЊЕ 36
Вовед
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Приказ на податоци на екран


◼ формат:
cout << izraz1 << izraz2

 cout – стандарден излезен тек


 “ << “ – оператор за вметнување
 izraz1, izraz2, ... се индивидуални вредности што треба
да се прикажат
cout << "Zdravo"; // прикажува Zdravo на екранот
cout << 120; // го прикажува бројот 120 на екранот
cout << x; // ја прикажува вредноста на променивата x на екранот

СТРУКТУРНО ПРОГРАМИРАЊЕ 37
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Пример
#include <iostream>
using namespace std;

int main() {
int term;
term = 3 * 5;
cout << "Two times " << term << "is" << 2* term <<'\n';
cout << "Three times " << term << "is" << 3* term;
return 0;
}

СТРУКТУРНО ПРОГРАМИРАЊЕ 38
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Содржина
◼ Редоследна структура
◼ Основни елементи на јазикот
◼ Прва С++ програма и печатење на
компјутерскиот екран
◼ Податоци и променливи
◼ Приказ на податоци на компјутерскиот екран
◼ Внесување податоци од тастатура
◼ Оператор за доделување и аритметички
операции

СТРУКТУРНО ПРОГРАМИРАЊЕ 39
Вовед
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Внесување податоци од тастатура

◼ формат:
cin >> ime

 cin – стандарден влезен тек


 " >> “ – оператор за извлекување
 ime име на промелива во која ќе се сочува вредноста
внесена од тастатура
cin >> a; - внеси вредност за а
cin >> b; - внеси вредност за b

EКВИВАЛЕНТНО СО

cin >> a >> b; - се внесуваат вредности за a и b , одделено со Enter


СТРУКТУРНО ПРОГРАМИРАЊЕ 40
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Внесување податоци од тастатура (2)


◼ пример
#include <iostream>
using namespace std;

int main() {
int a, b; /*kreira dve celobrojni promenlivi*/
cout << "Vnesi dva broja: ";
cin >> a >> b; /*smestuva celobrojni vrednosti vo
promenlivite a i b*/
cout << a << "-" << b << "=" << a-b;
return (0);
}

СТРУКТУРНО ПРОГРАМИРАЊЕ 41
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Содржина
◼ Редоследна структура
◼ Основни елементи на јазикот
◼ Прва С++ програма и печатење на
компјутерскиот екран
◼ Податоци и променливи
◼ Приказ на податоци на компјутерскиот екран
◼ Внесување податоци од тастатура
◼ Оператор за доделување и аритметички
операции

СТРУКТУРНО ПРОГРАМИРАЊЕ 42
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Аритметички операции
◼ Аритметички оператори
◼ Изрази

C++ операции Оператор Аритметички Израз во C++


◼ Правила Израз

 int op int собирање + f+7 f + 7

 float op float одземање - p–c p - c


 int op float множење * bm b * m
 char op char делење / x/y x / y
модул % r mod s r % s

◼ Правила за приоритет

СТРУКТУРНО ПРОГРАМИРАЊЕ 43
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Аритметички операции

Оператор(и) Операции Приоритет

() загради Се пресметува на почеток. Ако заградите се вгнездени, изразот во


највнатрешните загради се пресметува прв. Ако постојат повеќе загради на
исто ниво во изразот тие се пресметуваат одлево надесно.

*, /, или множење, Се пресметува втора. Ако во изразот има повеќе операции од овој вид тие
% делење, се пресметуваат одлево надесно.
модул
+ или - собирање Се пресметува последен. Ако во изразот има повеќе операции од овој вид
одземање тие се пресметуваат одлево надесно.

СТРУКТУРНО ПРОГРАМИРАЊЕ 44
Операции
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Оператор за доделување
◼ Стандарден оператор за доделување вредност е =
◼ Примери:
int prvbroj, vtorbroj;
short int cifra;
...
prvbroj = (1 + 2 * 7) % (5 ‒ 6);
prvbroj = prvbroj + cifra;
vtorbroj = vtorbroj / cifra;

◼ С++ го дозволува и следниов начин на доделување


вредности:
 x = (y = 10) * (z = 5) при што се добива x = 50
 x = y = z = 20 при што се добива x = 20, y = 20, z = 20

СТРУКТУРНО ПРОГРАМИРАЊЕ 45
Операции
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Аритметички операции –
Пример за операции со цели и реални броеви
int main() {
int celo; /* cel broj */
float realno; /* realna vrednost */
realno = 1.0 / 2.0; /* zadadi realno (float) 0.5 */
celo = 1 / 3; /* zadadi int 0 */
realno = (1 / 2) + (1 / 2); /* zadadi float 0.0 */
realno = 3.0 / 2.0; /* zadadi float 1.5 */
celo = realno; /* zadadi int 1 */
celo = celo +1; /* celo = 2 */
return 0;
}

СТРУКТУРНО ПРОГРАМИРАЊЕ 46
Операции
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Решете сега !
Да се напише програма за конверзија на Целзиусови во
Фаренхајтови степени. Целзиусовите степени се
внесуваат од тастатура, а формулата за претворање
гласи:
f = 1.8C + 32
#include <iostream>
using namespace std;
int main ( ) {
float fahrenheit, celsius;
cin >> celsius;
fahrenhеit = 1.8*celsius + 32.0;
cout << "fahrenheit = “ << fahrenheit;

return 0;
} /* end-main() */
СТРУКТУРНО ПРОГРАМИРАЊЕ 47
Операции
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Компресија на оператори (1)


◼ c = c+3;
може да биде скратена со собирачкиот оператор за
доделување на следниот начин: c += 3;
◼ Операторот += ја додава вредноста на изразот кој се
наоѓа од десно на операторот на вредноста на
променливата која се наоѓа на левата страна, а
резултатот се сместува во истата променлива која се
наоѓа од левата страна на операторот.
◼ Оттука доделувањето c += 3; му додава 3 на с.

СТРУКТУРНО ПРОГРАМИРАЊЕ 48
Операции
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Компресија на оператори (2)


◼ Општо, било која наредба од облик:
promelniva = promelniva op izraz;
каде op е еден од бинарните
оператори +, -, *, / или % може да се запише
како:
promelniva op= izraz

СТРУКТУРНО ПРОГРАМИРАЊЕ 49
Операции
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Компресија на оператори (3)


◼ Примери со други оператори

оператор израз еквивалентен израз

+= x+=2; x=x+2;
-= x-=2; x=x-2;
*= x*=2; x=x*2;
x*=a+b; x=x*(a+b);
/= x/=2; x=x/2;
x/=j+2; x=x/(j+2);
%= x%=2; x=x%2;

СТРУКТУРНО ПРОГРАМИРАЊЕ 50
Операции
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Пример 1
◼ Да претпоставиме дека во почетокот ни е
дадено: int c = 3, d = 5, e = 4, f = 6, g = 12;
Оператор за Израз Објаснување Доделува
доделување за изразот

+= c += 7 c=c+7 10 на с

-= d -= 4 d=d-4 1 на d

*= e *= 5 e=e*5 20 на е

/= f /= 3 f=f/3 2 на f

%= g %= 9 g=g%9 3 на g

СТРУКТУРНО ПРОГРАМИРАЊЕ 51
Операции
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Пример 2
#include <iostream>
using namespace std;
int main( ) {
int a,b,c,d;
cout << "Vnesi gi vrednostite za a,b,c,d" << endl;
cin >> a >> b >> c >> d;
a += b*c+d;
cout << "a = " << a;
}

Која операција прва се изведува?

За променливите
a = 5, b= 5, c = 7, d = 8, кој ќе биде излезот?

СТРУКТУРНО ПРОГРАМИРАЊЕ 52
Операции
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

#include <iostream>
using namespace std;
int main( ) {
int a,b,c,d;
cout << "Vnesi gi vrednostite za a,b,c,d" << endl;
cin >> a >> b >> c >> d;
a += b*c+d;
cout << "a = " << a;
}
За променливите
a = 5, b= 5, c = 7, d = 8,
излезот од програмата
ќе гласи:
Vnesi gi vrednostite za a,b,c,d
5
5
КОЛКУ Е а? 7
8
a = 48

СТРУКТУРНО ПРОГРАМИРАЊЕ 53
Операции
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Оператори ++ и --
◼ i=i+1 може да се напише и како o пример:
++i или i++ o Нека i=1
◼ i=i-1 може да се напише и како o за следниот програмски
--i или i— сегмент

◼ пример: cout<< " i = “ << i << endl;


За i=1 за следниот програмски cout<< " i = “ << i++ << endl;
сегмент cout<< " i = “ << i << endl;
cout<< " i = " << i << endl;
cout<< " i = " << ++i << endl;
o излезот е:
i = 1
cout<< " i = " << i << endl;
i = 1
i = 2
излезот е :
i = 1
i = 2
i = 2
СТРУКТУРНО ПРОГРАМИРАЊЕ 54
Операции
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Оператори за инкрементирање
и декрементирање ++ и --
Префикс и постфикс верзии и значење

Оператор Израз Објаснување


++ ++а Зголеми го а за 1, па потоа додај за вредноста
на новото а на изразот во кој се употребува

++ а++ Користи ја тековната вредност на а за да го


пресметаш изразот, па дури потоа зголеми го а

-- --b Намали го b за 1, па потоа додај за вредноста на


новото b на изразот во кој се употребува

-- b-- Користи ја тековната вредност на b за да го


пресметаш изразот, па дури потоа намали го b

СТРУКТУРНО ПРОГРАМИРАЊЕ 55
Операции
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Префикс и постфикс верзии на ++


(пример)
#include <iostream>
using namespace std;
int main() {
int i, j=5;
i = ++j; // ova e isto so j++; i=j;
cout << "i=" << i << ", j="<<j <<endl;
j=5;
i=j++; // ova e isto so i=j; j++;
cout << "i=" << i << ", j="<<j <<endl;
return 0; Ќе се отпечати:

} i=6 j=6
i=5 j=6
СТРУКТУРНО ПРОГРАМИРАЊЕ 56
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

За носење дома
◼ Редоследна структура
◼ Основни елементи на јазикот
◼ Прва С++ програма и печатење на
компјутерскиот екран
◼ Податоци и променливи
◼ Приказ на податоци на компјутерскиот екран
◼ Внесување податоци од тастатура
◼ Оператор за доделување и аритметички
операции

СТРУКТУРНО ПРОГРАМИРАЊЕ 57

You might also like