P4 Flashcards
Sta je klasa
Novi tip koji se koristi u programiranju
Kako se procesira tekst u programy
Pomocu predproxesora
Kako kazemo procesoru sta da ukljuci
Pomocu predprocesorskih direktiva
Koja direktiva je najbitnija za nas
include
Zasto se direktiva include pise na pocetku programa
Jer ce se prvo ucitati ta direktiva u kojoj su definisane klase i var koje ce kompajler mogao to upotrebljavati dalje u kodu
Gdje predprocesor trazi fajlove koje ukljucuje
U foldery koji je definiran pri instalaciji predprocesora i ugl tamo gdje je i kompajler
Kako se moze ukljuciti include direktiva
<> ili “ “
Sta znace <> pri ukljucivanju include direktive
Fajl koji se ukljucuje se inace trazi tamo gdje se nalazi kompajler
U istom tom folderu
Sta znaci “ “ pri ukljucdnju direktjve
Fajl se trazi u trenutnom folderu, a ako se direktiva ne nalazi tu onda trazu tamo gdje se inace nalazi (u folderu sa kompajlerom)
Do kad radi predprocesor?
On procesira sve linije sve dok ne eliminise sve predprocesorske direktive
Za sta sluze predprocesorske direktive
Da ubacimo tudji kod u svoj
Sta je cout
Globalna varijabla definisana u std namespaceu
Sta zapravo cini nas program
Koriaci koji se nalaze u mainu jer se semo oni izvrsavaju na procesoru
«?
Left shift operator (binaran i lijevo asoxijativan)
Lijevi i desni operand kod «
Brij s lijeve strane se transformise u binarni bs a s desne strane se nesto kaze???
Sta se desava pri koristenju «
Svi biti se pomjeraju uljievo za broj sa desne strane
Ekvivalent «
Mnozenje broja s lijeve strane sa 2^(broj sa desne strane)
> > sta radi
Pomjera sve bite udesno
Ekvivalent»_space;
Dijeljenje broja sa lijeve strane sa 2^(broj sa desne strane)
Moze li se koristiti vrijednost tipa double uz operatore «_space;ili»_space;
Ne, samo cijeli broj sa cijelim brojem
Kako predprocesor radi sa programom
Kompajler mu posalje program prije nego ga prevede
Predprocesir eliminise sve direktive te ostaje samo cpp kod kog onda procesor izvrsava
Koji fajlovi dolaze uz kompajler
Standardna biblioteka
Kako se zove file u std u kom se nalazi cout
Iostream
Sta radi std::cout
Ispisivanje na ekran (komunikacija sa ekranom)
Zasto pravimo var
Da rezervisemo komad memorije da bi u nju mogli spremiti neke vrijednosti i poslije citati i koristiti te podatke
Sta ukljucujsmo da radimo sa stringivima
include<string></string>
Sta omogucava objekat tipa string
Da koristimo onoliko memorije koliko ce objekat zauzeti kada se izvrsi stejtment
include<iostream></iostream>
File iostream koji dolazi uz kompajler i nalazi se u standardnoj biblioteci u folderu gdje je i kompajler
U njemu postoji definicija ns std i postoji simbol cout u tom ns
I on je globalna var
Pravila default inicijalizacije stringa
Ako se definise var tipa string i ne inicijalizira se, default inicijalizacija stringa podrazumjeva da ona nema prozivoljnu vrijednost odnosno u njoj nema nista
Koliko teksta se moze ubaciti u varijablu tipa string
Koliko hocemo
Sta se pored definicije simbola cout u ns std nalazi pa nam omogucava da ga koristimo
Definisana pravila i uslovi na osnovu kojih se kod moze prevesti u masinac
«_space;je koristio ali mu je promijenio znacenje
Znacenje «_space;u iostream
Ako zelimo ispisati nesto na ekran sa lijeve strane «_space;se postavlja cout (ns std defiirana u zaglavlju iostream), a sa desne strane se mozs nalaziti bilo sta i ona ce biti ispisana na ekranu kada se izvrsi taj dio koda
Sta se desava kada koristimo cin
Program se ne terminira odmah vec ceka da se sa tastature unese znak i unosenjem znaka sa tastature ono biva ispisano na ekranu - EHO mod terminala
Proizvoljan broj slova dok se ne udati enter
Sta je string
TIP vrijednosti
\n i \t
Tretiraju se kao 1 karakter i znace enter ili tab
Kako importujemo cout ili cin tako da ne moramo pozivati svaki put iz biblioteke
using std::cout/cin
«_space;i»_space;
NISU KOMUTATIVNI (ne mogu se zamijeniti strane - bitan je redoslijed)!
Lijevo asocijativni
Cesta pojava pri rjesavanju problems
Potreba mogucnosti da se tokom egzekucije programa donese odluka sta ce se raditi u buducnosti u programu, jer je nemoguce u potpunosti znati sta radimo unaprijed
Sta omogucava kontrola toka programa
Da program odluci koji ce se stejtmenti koristiti u programu
Sintaksa if stejtmenta
if (izraz){
//
//sastavni dio stejtmenta if
//
}(;)
Objasnjenje izvrsenja if stejtmenta po koracima
- Izvrsavanje izraza -> vraca vrijednost nekog tipa
- Konverzija vracene vrijednosti u bool (ako nije moguca konverzija izraz se ne izvrsava i preskace se if stejtment) a ako je moguca vrsi se odluka da li ce se izvrsiti stejtmenti iz tijela/bloka if stejtmenta
- Ako je konvertovana vr true -> tok programa ide unutar bloka if stejtmenta i izvrsavaju se svi stejtmenti. Kada se dodje do zadnjeg stejtmenta izlazi iz if i nastavlja izvrsavati stejtmente iza ifa
3.1. Ako je bool false -> ne izvrsava se stejtmenti u bloku if i ide se na naredbu nakon if stejtmenta
Da li if moze biti free standing
Ne, sastavni dio bloka (npr main)
Ako fale {} u if stejtmentu (fali blok)
Kao blok se uzima SAMO 1 stejtment iza zagrade
U sta se kombinuje i kako izgelda kompleksniji if statement
I if else statement gdje se uvijek izvrsi jedan od dva bloka (dok se kod if stejtmenta mogao i ne izvrsiti blok)
U zavisnosti od vrijednosti izraza bira se da li se izvrsava if ili else blok
if (izraz){
//
//sastavni dio stejtmenta if
//
}else {
//
//
//
}
koliko puta se izvrsi while
nijednom ili vise puta
sintaksa while
while(izraz){
//
//
//
}
redoslijed izvrsavanja while
- izraz
- ako je izraz tacan ulazi se u tijelo petlje i izvrse se stejtmenti
3.izadje iz bloka pa sve lokalne var gube vr - ponovo se vraca na izraz i ponavlja isto dok se ne dobije false u izrazu
mogu li u while ili drugim petljama figurirati var prethono definisane
mogu, te ako im se unutar bloka promijeni vr oni ju zadrzavaju
specificno za do while
izvrsava se JEDNOM ili vise puta i mora imati; na kraju
redoslijed i sintaksa do while
do {
//
//
//} while (izraz);
ulazi se u blok i izvrsavaju stejtmenti i na KRAJU se provjerava da li je izraz tacacn
ako jest petlja se ponovo okida ako ne program nastavlja dalje
for stejtment sintaksa
for(inicijalizacija; uslov; izraz){
//
//
//
}(;)
ako imamo for(;;) – > beskonacna petlja
redoslijed izvrsavanja for
- izvrsava se stejtment inicijalizacija (ugl definicija var)
- izvrsavanje uslova odn izraza -> vrati se vrijednost koja se konvertuje u bool ako je moguce i ako je tavna ulazi se u blok
- prije napustanja bloka izvrsi se izraz
- napustanjem bloka ponovo se provjerava uslov i ponavlja petlja ako je uslov tacan, ako je false nastavlj na stejtmennt iza petlje
MATEMATICKI DOKAZ JEDAKOSTI FOR I WHILE
for(inicijalizacija; uslov; izraz){
//
//
//
}
==
{
inicijalizacija;
while(uslov){
//
//
//
izraz;
}
}