Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 58

Основни податочни

типови и форматирање
на влез и излез во C++

Вежби – час II

1
Функцијата main
C++ програма е колекција на една или повеќе функции и мора
да ја има функцијата main.
main

int main() Заглавје (heading) на функцијата


{
Блок од наредби
Naredbi;
}
int main()
{
return 0;

Најкратка C++
}
програма која не 2
прави ништо
Структура на C++ програма
Предпроцесорска наредба за
#include <iostream> вклучување на библиотеката
(header file) iostream
using namespace std;
iostream своите идентифика-
int main() тори ги декларира да бидат во
просторот со имиња std
{
cout << "Zdravo"<<endl; main
функцијата
return 0;
}
Наредба од
библиотеката iostream

main функцијата враќа 0 доколку


Почеток и крај на програмата завршува без грешка
3
блок наредби
Неозадолжителни празни места
и нови редови во C++
#include <iostream>
using namespace std;int main(){ cout << "Zdravo"<<endl; return 0;}

#include <iostream>
using
namespace
std; И овие две програми се потполно исти за
int C++ компајлерот како и програмата од
main претходниот слајд, се додека не се
( разделуваат зборовите и стринговите.
)
{ Но сепак потребно е поради прегледност,
cout програмите да се испишуваат
<< структурирано.
"Zdravo"
<<
endl;
return 0; 4

}
Структура на C++ програма

#include <iostream>
using namespace std;
//deklaracija na globalni promenlivi
int main()
{
коментари
/*deklaracija na promenlivi*/
cout << "Zdravo"<<endl;
return 0;
}
5
Идентификатори
Идентификатор е симболичко име кое се придружува на
функција или податочен објект и служи како референца за таа
функција или тој податочен објект.
Идентификаторот е составен од букви, броеви и знакот за
подвлечено ( _ underscore), но не смее да започнува со број. Само
една буква или само знакот за подвлечено се исто така валидни
идентификатори. Идентификаторите се делат на резервирани
зборови и кориснички идентификатори. Резервираните зборови
имаат специјално значење во C++ и не смеат да се користат
како кориснички идентификатори.
Препорака
Бидејќи идентификаторите кои започнуваат со знакот за
подвлечено имаат специјално значење во некои C++ системи,
најдобро вашите идентификатори да започнуваат со буква. 6
Валидни кориснички
идентификатори
suma
suma_na_elementi
x
X1
x_11_x1
_x1
_
PrimerProizvod
brojac_1111111111

7
Невалидни кориснички
идентификатори
Невалидни
Објаснување
идентификатори
Идентификаторот не смее да започнува со
20Denovi
бројка
Proizvod elementi Не смее да има празно место во името
Не смее да има знаци кои означуваат
Proizvod-elementi
оператори во името
Proizvod@elementi Не смее да има специјални знаци во името
Идентификаторот не смее да биде
float
резервиран збор

8
C++ разликува големи и мали
букви

Следните имиња се различни идентификатори во C++:

Suma
suma
SUMA
SuMa
suMA
SuMA

9
Клучни зборови во C++

Клучните зборови во C++ може да се поделат во две групи:


1. Резервирани зборови
2. Предефинирани идентификатори

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


зборови не може да се декларираат кориснички идентификатори,
додека со предефинираните идентификатори може, но не е
препорачливо. Така на пример, може да се декларира променлива
main внатре во функцијата main (но само за експеримент), да ја
иницијализираш и отпечатиш нејзината вредност, но, истото не
можеш да го направиш со else.
else Причина за тоа е што main е
предефиниран идентификатор, додека else е резервиран збор.
10
Резервирани зборови во C++
Резервираните зборови во C++ може да се поделат во неколку
групи:
Првата група се 32 резервирани зборови наследени од C:

Втората група се 30 резервирани зборови кои ги има само во C++:

11
Резервирани зборови во C++

Дополнителни 11 резервирани зборови не се основни, но се


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

Доколку вашиот C++ компајлер е со постара дата, може некои од


претходните две групи да не се имплементирани.

12
Предефинирани
идентификатори во C++

Ова се само некои предефинирани идентификатори во C++:

13
Некои податочни типови
Декларирање и иницијализација
на променливи
Променлива е мемориска локација која содржи податочна вредност
која може да се менува. Мемориските локации се идентификуваат
преку името на променливата. Сите променливи кои се користат во
една програма мора прво да бидат декларирани. Со секое ново
доделување на вредност на дадена променлива, старата вредност се
брише.

15
Декларирање и иницијализација
на променливи
int x;
int x=1;
int x=1, y=2, z=3;

char bukva, brojka;


char bukva='A';
char bukva1, bukva2, cifra='7', znak='@';

float pi=3.14;

16
Форматирање на влез и излез
За да се користат наредбите за стандарден влез и излез, потребни се
следните две наредби на почетокот на програмата
#include <iostream> endl манипулатор означува
крај на линија и е опционен
using namespace std;

cout << Израз endl ;

insertion operator

cout (output stream) го печати Izraz на стандарниот


излез, а тоа вообичаено е екранот 17
Форматирање на влез и излез

Наредби Излез

cout << “Zdravo. “;


Zdravo. Kako si?
cout << “Kako si?”<<endl;
cout << “Zdravo. “<<endl; Zdravo.
cout << “Kako si?”<<endl; Kako si?
cout << “Zdravo. “<<endl; Zdravo.
cout << endl;
cout << “Kako si?”<<endl; Kako si?
Zdravo.
cout << “Zdravo. “<<endl<<endl;
cout << “Kako si?”<<endl;
Kako si?
18
Форматирање на влез и излез

cin >> Променлива ;

extraction
operator

cin (input stream) го доделува она што се добива од стандардниот


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

19
Character променливи
За претставување на единечен карактер се користи бајт(byte).
Char(карактер) е индивидуален симбол кој може да биде:
• мала буква: a, b, c, d, e, f, g, h, I, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y,
and z
• голема буква: A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U,
V, W, X, Y, and Z
• број: 0, 1, 2, 3, 4, 5, 6, 7, 8, and 9;
• специјален знак: ` ~ # $ ! @ % ^ & * ( { [ ) } ] | \ : ; “ ‘ + - < _ ? > , / =.

char Gender; //deklariranje na char promenliva


VariableName = Value; //inicijaliziranje(davanje pocetna vrednost) na
promenlivata VariableName

20
Character променливи
Бидејќи char променлива претставува еден симбол, за да се
иницијализира, иницијалната вредност се поставува меѓу
единечни наводници.
char Answer = ‘y’;
Char променлива може да се иницијализира и на следниот начин:
char Answer(‘y’);

#include <iostream>
using namespace std;
int main()
{
char category = 'H';
cout << "Kategorija: " << category;
cout << endl;
return 0;
21
}
Character променливи
Ако карактерот е од signed категорија, може да се декларира како
signed character.
Овој тип на променлива ќе биде 8-bit integer со вредности од
–128 до +127.

#include <iostream>
using namespace std;
int main()
{
signed char category = 'D';
cout << "Category: " << category;
cout << endl;
return 0;
}
22
Character променливи
#include <iostream>
using namespace std;
int main()
{
char answer;
signed char AgeCategory, size;
cout << "Age category(t=teen/a=Adult/s=Senior): ";
cin >> AgeCategory;
cout << “Do you smoke(y=Yes/n=No)? ";
cin >> answer;
cout << "Enter your size(s=Small/m=Medium/l=Large): ";
cin >> size;
cout<<endl;
cout << "Age category: " << AgeCategory<<endl;
cout << "Your answer: " << answer<<endl;
cout << "Your size: " << size<<endl;
system("pause");
return 0; 23

}
Escape Sequences
AS
Escape
CII
Sequen Name Description
valu
ce
e
\a Bell (alert) 007 Makes a sound from the computer
#include <iostream> \b Backspace 008 Takes the cursor back
using namespace std; Horizontal
\t 009 Takes the cursor to the next tab stop
int main() Tab
{ \n New line 010 Takes the cursor to the beginning of the next line
\v Vertical Tab 011 Performs a vertical tab
cout << "Sydney\nAustralia\n";
\f Form feed 012  
return 0; Carriage
} \r 013 Causes a carriage return
return
Double
\" 034 Displays a quotation mark (")
Quote
\' Apostrophe 039 Displays an apostrophe (')
Question
\? 063 Displays a question mark
mark
\\ Backslash 092 Displays a backslash (\)
\0 Null 000 Displays a null character

24
Short Integers
Збор, кој е група од 16 бита или 2 бајта, се користи за
претставување на природен број.

Максималната нумеричка вредност која може да ја содржи


еден збор е 65535.

Бидејќи бајт(Byte) се користи само за претставување на


character, ако планираме да употребиме број во нашата
програма, минимум што треба да употребиме е word.

Бидејќи short integer е signed по подразбирање(by default), тој


може во себе да содржи вредности од –32768 до 32767.

25
Short Integers
#include <iostream>
using namespace std;
int main()
{
short number1, number2;
cout << "Vnesi broj pomegu -32768 i 32767: ";
cin >> number1;
cout << "Vnesi drug broj: ";
cin >> number2;
cout << endl;
cout << "Broevite koi gi vnesovte se: "<<endl;
cout << "Broj 1: " << number1 << endl;
cout << "Broj 2: " << number2 << endl;
return 0;
}
По подразбирање, short integer е signed. Исто така експлицитно може да ја
декларираме како signed short.
signed short XCoord;
Ако integer мора да биде позитивен, треба да го декларираме како
26
unsigned short. unsigned short се користи за ретставување на 16-bit
позитивен integer чии вредности се од 0 до 65535. 
#include <iostream>
using namespace std;
int main()
{
unsigned short shirts;
unsigned short pants;
unsigned short dresses;
unsigned short ties;

cout << "Vnesete broj na kosuli: ";


cin >> shirts;
cout << "Vnesete broj na pantaloni: ";
cin >> pants;
cout << "Vnesete broj na fustani: ";
cin >> dresses;
cout << "Vnesete broj na vratovrski: ";
cin >> ties;
cout<<endl;
cout<< "Naracka: "<<endl;
cout<<"Kosuli: "<< shirts<<endl;
cout<<"Pantaloni: "<< pants<<endl;
cout<<"Fustani: "<< dresses<<endl;
cout<<"Vratovrski: "<< ties<<endl;
system("pause");
return 0;
27
}
Using Integers
#include <iostream>
using namespace std;

int main()
{
int coordX, coordY, coordZ;
cout << "Vnesete gi koordinatite na tockata A:"<<endl;
cout << "X = ";
cin >> coordX;
cout << "Y = ";
cin >> coordY;
cout << "Z = ";
cin >> coordZ;
cout<<endl;
cout << "Koordinati na tockata A se: "<<endl;
cout << "X = " << coordX<<endl;
cout << "Y = " << coordY<<endl;
cout << "Z = " << coordZ<<endl;
system("pause");
28
return 0;
}
Using Integers
signed се користи за integer променлива чија вредност може да биде позитивна или
негативна.

signed distanceRange;
signed int velocity;

Кога декларираме int, integer се подразбира за signed. Можеме и експлицитно да го


декларираме како signed int.
signed int pagePosition;

Ако променливата мора да биде позитивна, може да ја декларираме како


unsigned int.

unsigned int - од 0 до 2,147,484,647.


unsigned int pageCount;

29
Using Integers
An unsigned integer can also be declared simply with the unsigned keyword.
#include <iostream>
using namespace std;
int main()
{
unsigned dayOfBirth, monthOfBirth, yearOfBirth;

cout << "Datum na raganje: ";


cin >> dayOfBirth;
cout << "Mesec na raganje: ";
cin >> monthOfBirth;
cout << "Godina na raganje: ";
cin >> yearOfBirth;
cout << "Data na raganje na student: "
<< dayOfBirth << "/" << monthOfBirth << "/" << yearOfBirth<<endl;
system("pause");
return 0;
30
}
Long Integers

Една integer променлива чија вредност треба да биде


позитивна може да се декларира и со клучниот збор long.

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


32-bit integer чии вредности се од 0 до 4,294,967,295.

На пример:
long countryArea;

Ако е потребно long integer да биде позитивен, можеме да


ја декларираме променливата како unsigned long.

31
Long Integers
#include <iostream>
using namespace std;
int main()
{
long USPopulation;
unsigned long USArea;
cout << "What is the area of the US? ";
cin >> USArea;
cout << "What is the population of the US? ";
cin >> USPopulation;
cout<<endl;
cout << "Characteristics of the US"<<endl;
cout << "Area = " << USArea<<endl;
cout << "Population = " << USPopulation<<endl;
system("pause");
return 0; 32

}
Floating-Point Numbers
Floating-Point Numbers With Single-Precision

float side;
float length;

За да иницијализираме floating променлива, по нејзиното


декларирање, и доделуваме вредност користејќи го операторот
за доделување “=”:

float priceSoda;
priceSoda = 0.85;

Може да ја иницијализираме променливата користејќи загради:


float priceOrangeJuice(2.25);

33
Floating-Point Numbers
Floating-Point Numbers With Single-Precision

#include <iostream>
using namespace std;
int main()
{
float side, perimeter, area;
cout << "Vnesete ja stranata na kvadratot: ";
cin >> side;

perimeter = side * 4;
area = side * side;
cout << "Side: " << side<<endl;
cout << "Perimeter: " << perimeter<<endl;
cout << "Area: " << area<<endl;
system("pause"); //cin.get()
return 0; 34

}
Floating-Point Numbers
Floating-Point Numbers With Double-Precision

For an even larger variable, use the 10 Byte real data type identified as a long double data type that ranges
from 3.4 x 10-4932 to 1.1 x 104932.

#include <iostream>
using namespace std;
int main()
{
long double radius = 15.625, Radius = 18.125;
long double area, Area, TotalArea;

Area = Radius * Radius * 3.14159;


area = radius * radius * 3.14159;
TotalArea = Area - area;

cout << "Properties of the plate"<<endl;


cout << "External Radius: " << Radius<<endl;
cout << "Internal Radius: " << radius<<endl;
cout << "Area: " << TotalArea<<endl;
system("pause");
return 0;
35
}
Strings
String е податочен тип кој #include <iostream>
претставува низа од знаци затворени #include <string>
во наводници ". Крајот на овој тип using namespace std;
податоци се означува со NULL
знакот (знак со код 0). Овој int main()
податочен тип не е стандарден во C+ {
+, и за да се користи мора да се string FirstName, LastName;
повика соодветната библиотека со cout << "Vnesi ime: ";
наредбата
cin >> FirstName;
#include <string> cout << "Vnesi prezime: ";
Валидни стрингови се: cin >> LastName;
cout<<endl;
"Osnovi na programiranje" "C++"
"x" "123456789" " “ cout << "Ime i prezime: " <<
FirstName << " " << LastName << endl;
system("pause");
string zbor, recenica; return 0;
string ime_predmet = "Osnovi na }
programiranje"
string Continent; 36
string Company;
Strings
string UN = "United Nations";
cout << "The " << UN << " is an organization headed by a Secretary
General";
Друг начин на иницијализиране на стринг променлива:
string BookTitle("Drugs, Sociology, and Human Behavior.");
cout << "For our class next week, please read \"" << BookTitle;
cout << "\"";

За внес на стринг преку тастатура ја користме функцијата getline.


getline(cin, StringName);
cin го информира компајлерот дека барањето ќе дојде од
надворешен извор, најчесто од тастатура.
StringName е име на стринг променлива
getline() function очекува дека корисникот ќе притисне Enter за
крај на реченицата;
карактер за крај на линија е ‘\n’. 37
Strings
#include <iostream>
#include <string>
using namespace std;
int main()
{
string MusicAlbum;
string TrackTitle;

cout << "Vnesete ime na album: ";


getline(cin, MusicAlbum);
cout << "Vnesete naslov na pesna: ";
getline(cin, TrackTitle);
cout<<endl;
cout << "Ke ja cuete pesnata: " << TrackTitle<<endl;
cout << "od albumot " << MusicAlbum <<endl;
system("pause");
return 0; 38

}
Strings
Ако сакаме корисникот да ја заврши
#include <iostream>
реченицата со друг карактер како * #include <string>
или !, ја користиме функцијата using namespace std;
getline(cin, StringName, Delimiter); int main()
Следниот пример го користи симболот {
= како краен симбол на реченицата:
string FirstName, LastName;
cout << "Vnesete ja slednata
string Address;
informacija: "<<endl;
cout << "Enter your address.
cout << "Ime: ";
To end, type = ";
cin >> FirstName;
getline(cin, Address, '=');
cout << "Prezime: ";
cout << "\nSo, you live at: " << Address;
cin >> LastName;
cout<<endl<<endl;
cout << "Faktura # 1202"<<endl;
cout << "Ime i prezime na kupuvac:
" << FirstName << " " << LastName
<< endl;
system("pause");
39
return 0;
}
Strings
Стринговите мора да се внесат во една линија.
Доколку во стрингот мора да се појави и знакот наводници
" , тогаш пред него залепено се става знакот \ (backslash)

string ime_predmet = " \"Osnovi na programiranje\""

Променливата ime_predmet ќе го содржи стрингот


"Osnovi na programiranje"
Постои и т.н. null string кој претставува празна низа и
го содржи само NULL знакот, а се дефинира со споени
наводници.

40
string изрази
Постои специјална операција со стрингови која се
нарекува конкатанација и се претставува со
операторот +. Резултат на конкатанација на два
стринга е нов стринг кој се состои од спојување на
двата стринга. Во конкатанацијата може да
учествуваат и променливи од тип char, се додека
барем еден од операндите е од тип string.
Ime1 = "Osnovi " ;
Ime2 = "na " ;
Ime3 = "programiranje" ;
Naslov_Predmet=Ime1 + Ime2 + Ime3;
Naslov_Predmet=Ime1 + 'n' + 'a' + Ime3;
И во двата случаеви променливата Naslov_Predmet ќе
го содржи стрингот
41
Osnovi na programiranje
Декларирање и иницијализација
на константи
Константа е мемориска локација која содржи податочна вредност
која не може да се менува. Кога се користи вредноста на
константата во програмата, се вели дека се користи литерална
вредност (literal).

const

Препорака
Името на константите да се испишува со големи букви, а доколку
името се состои од повеќе зборови, тие да се одделуваат со знакот
на подвлечено.

42
Декларирање и иницијализација
на константи

const int MAX_DOLZINA=100;

const char AT='@';

const char PRAZNO_MESTO=' ';

const float PI=3.14159265;

const string NASLOV= "Programming and Problem Solving with C++";

43
Декларирање и иницијализација
на константи
Доколку типот на константите не е експлицитно дефинира, C+
+ компајлерот го одредува типот на следниот начин:

Броевите кои содржат „.“ или „е“ се double: 3.5, 1е-7, -1.29е15
За наместо double да се користат float константи на крајот
се додава „F“: 3.5F, 1e-7F

За long double константи се додава „L“: 1.29е15L, 1e-7L

Броевите без „.“, „е“ или „F“ се int: 1000, -35

За long int константи се додава „L“: 9000000L

44
Доделување на вредности на
променливи
Кога променливите еднаш се декларирани, може да им се
доделуваат вредности. Оператор за доделување вредност е
=.

Променлива = Израз

Predmet = "Osnovi na programiranje" ;


a = 25;
b = 4*5;
c = (20+5)*5;
ednakvo = '=';
a = b = c = 10;

45
C++ предпроцесор
Предпроцесирањето се изведува пред компајлирањето. C++
предпроцесорот е посебна програма која во изворната програма
врши вклучување на библиотеки и кориснички датотеки,
дефинирање на симболички константи и макроа, и слично.
Наредбите за предпроцесорот започнуваат со # и се нарекуваат
предпроцесорски директиви.

Изворна
Проширена
Предпроцесор изворна Компајлер
програма
програма

46
C++ предпроцесор
Предпроцесорска директива #include
ја копира наведената датотека на местото на директивата
#include <ime_datoteka>
• датотеката ime_datoteka ја бара меѓу стандардните библиотеки

#include “ime_datoteka”
• се користи за додавање на кориснички датотеки и притоа
датотеката ime_datoteka ја бара прво во тековниот директориум,
а потоа и меѓу стандардните библиотеки

47
C++ предпроцесор
Предпроцесорска директива #define
се дефинираат симболички константи и макроа и притоа
предпроцесорот ги заменува сите појави на симболичката
константа со дефинираниот текст
#define identifikator text_za_zamena

Оваа директива се користи за дефинирање на константи кои се


користат на повеќе места во програмата, со што при потреба за
промена на константата, тоа се прави само на едно место - во
#define директивата.

48
Start->Programs->Bloodshed Dev C++

49
File->New->Source File

50
пишување на програмата

51
на првото компајлирање се отвара
прозорецот Save File
52
53
Извршување на програмата - Run
54
Стартување на Microsoft Visual Studio
File->New->Project 55
Име на програмата Конзолна апликација 56
57
58

You might also like