Upload
others
View
4
Download
1
Embed Size (px)
Citation preview
Tema 2
INFORMATIKA2. razred
Tema 2Programiranje
Viši programski jezik C++
Viši programski jezik C++� C++ je programski jezik opšte namjene i
srednjeg nivoa, sa podrškom za objektno orijentirano programiranje
� Razvijen proširivanjem programskog jezika C sa mogućnostima programskog jezika Simulamogućnostima programskog jezika Simula
� Razvoj počeo 1979. godine� Standardiziran 1998. godine
Šta nam je potrebno� Program za pisanje izvorne datoteke – Editor
� Program za prevođenje izvorne datoteke u izvršnu datoteku – Kompajler
� Program za otkrivanje grešaka - Debugger
� Editor, kompajler i debugger su obično � Editor, kompajler i debugger su obično kombinovani u jedinstven paket – Integrisano razvojno okruženje (IDE)� Microsoft Visual Studio� Blodshed Dev-C++ (http://www.bloodshed.net)� CodeBlocks (http://www.codeblocks.org)
Proces kompajliranja (prevođenja)
CodeBlocks - instalacija� Pokrenuti instalacijsku datoteku� Potvrditi licencni ugovor� Odabrati način instalacije preporučeno: Full� Dalja podešavanja
potvrditi sa Nextpotvrditi sa Next� Potvrditi instalaciju
sa Install� Sačekati da se
instalacija dovrši
CodeBlocks razvojno okruženje
Započinjanje novog projekta� Create a new project� Console application
Započinjanje novog projekta� Naziv projekta� Folder u kojem će projekat biti smješten� Naziv datoteke projekta
Moja prva aplikacija
Moja prva aplikacija� Pokrenuti program
Šta smo dobili� Folder sa izvršnom datotekom
� Folder sa objektnom datotekom
� Datoteka sa izvornim kodom
� Datoteka sa opisom projekta
Šta smo dobili� Izvršna datoteka
� Objektna datoteka
Programski kod//zaglavlje
#include <iostream>
using namespace std;
//tijelo programa
int main()
Početak
int main()
{
cout << "Hello world!" << endl
return 0;
}Kraj
Hello word
Programski kod#include <iostrem>
� Predprocesorska direktiva� Naređuje kompajleru da učita biblioteku� <iostrem> sadrži definicije i deklaracije funkcija i
objekata za unos sa standardnog ulaza i ispis na objekata za unos sa standardnog ulaza i ispis na standardni izlaz
Programski kodusing namespace std;
� Definicija područja sa imenima objekata� Omogućuje kraće pisanje
Programski kodint main()
� Zaglavlje funkcije� Svaki program u C++ mora imati jednu funkciju
main – glavna funkcija� Funkcija je potprogram koja vraća neki rezultat� Funkcija je potprogram koja vraća neki rezultat� Tijelo funkcije počinje otvorenom vitičastom
zagradom {a završava zatvorenom vitičastom zagradom }
� Tijelo funkcije sačinjavaju naredbe� Svaka naredba završava tačka-zarezom ;
Programski kodcout << "Hello world!" << endl;
� Naredba - niz instrukcija koje govore računaru šta treba da radi
� cout - consol outobjekat izlaznog toka podataka (output stream) objekat izlaznog toka podataka (output stream) koji je povezan sa standardnim uređajima za ispis - tipično ekran
� '<<‘ - izlazni operator (usmjerivač toka)� "Hello world!" – tekst koji se šalje na ispis� endl – kod karaktera za završetak reda
Programski kodreturn 0;
� Završetak funkcije� Vrati rezultat cijeli broj 0
Riječi u C++ programskom jeziku� Imena označavaju različite cjeline programa
� Naredbe� Varijable� Funkcije� Tipovi� Tipovi� Makroi
� Imena još zovemo identifikatori
Pravila za pravilno kreiranje imena � Ime se sastoji od jednog ili više karaktera� Koriste se
� slova engleske abecede a-z i A-Z� cifre (0-9)� znak "_“
� Na prvom mjestu ne može biti cifra(1razred neispravno)
� Velika i mala slova se razlikuju(zarada i Zarada se razlikuju)
� Nema ograničenja na broj karaktera u imenu� Ne mogu se koristiti rezervisane riječi
Ključne (rezervisane) riječi u C++
Pravila za pravilno pisanje programa� Vitičaste zagrade { } grupišu skupinu naredbi u
jednu cjelinu� Svaka naredba završava tačka-zarezom ;� Koristiti komentare za opisivanje programa
� // komentar u jednoj liniji� // komentar u jednoj liniji� /* komentar
u više linija */
Varijable� Varijabla je simboličko ime za memorijsku lokaciju
u koju se mogu pohraniti podaci, koji se naknadno mogu pozvati
� Osobine varijabli:� Tip – određuje se kada se varijabla definiše � Tip – određuje se kada se varijabla definiše
(cijeli broj, realni broj, karakter, ...)ne može se mijenjati
� Vrijednost – sadržaj varijablemože se promijeniti davanjem nove vrijednosti
Varijable� Kada se varijabla definiše, njena vrijednost je
nedefinisana (null) sve dok joj se ne pridruži neka vrijednost
� Pridruživanje vrijednosti nekoj varijabli po prvi put naziva se inicijalizacija
� Neophodno je da se svaka varijabla inicijalizira prije � Neophodno je da se svaka varijabla inicijalizira prije nego se koristi.
� C++ podržava dvije vrste inicijalizacije: � inicijalizaciju kopiranjem (eng. copy-initialisation)
koristi znak jednakosti =� direktna inicijalizacija (eng. directinitialisation)
pomoću malih zagrada ()
Varijable� Primjer definisanja:
� int broj;� float drugi_broj;
� Primjer inicijalizacije prilikom definisanja:� int broj(10); // direktna inicijalizacija � int broj(10); // direktna inicijalizacija � float drugi_broj = 10; // inicijalizacija kopiranjem
� float drugi_broj;drugi_broj = 10;
Tipovi podataka u C++Brojevi:� Cijeli brojevi
� short (kratki integer)� int (integer – cijeli broj)� long (dugi integer)
� Realni brojevi� Realni brojevi� float – broj sa pokretnim zarezom� double – broj dvostruke preciznosti (naučno
označavanje)� Predznak broja
� signed – sa predznakom – podrazumijevano� unsigned – bez predznaka
Tipovi podataka u C++Logički tip� bool -� Mogu imati dvije vrijednosti:
� Tačno - true
� Netačno – false� Netačno – false
� Primjer:� bool jaSamUcenik = true; � bool autoLeti = false;
� Predstavljanje cjelobrojnim tipom:� true = 1� false = 0
Tipovi podataka u C++Karakteri (znakovi) � char - jedan znak između jednostrukih navoda ’� Jedan bajt koji sadrži kôd karaktera� Kôd je numerička vrijednost u ASCII sistemu
karakter A ima ASCII kôd 65� karakter A ima ASCII kôd 65� karakter a ima ASCII kôd 97
� char slovo =‘a’;
Tipovi podataka u C++� Karakteri koji imaju posebnu namjenu
(ne predstavljaju karaktere koji se ispisuju):� \n - novi red � \t - novi tabulator � \v - novi vertikalni tabulator � \v - novi vertikalni tabulator � \b - backspace � \’ - znak navoda (apostrof) � \" - dvostruki znak navoda � \\ - backslash (/) � \a - zvučni signal
Operatori u C++Aritmetički operatori
� Dozvoljeno je miješanje cijelih i realnih brojeva, osim kod ostatka pri dijeljenju (%)
� Ako su oba operanda cijeli brojevi, i rezultat je cijeli broj zaokružen na donju vrijednost 9/2 = 4, a ne 4.5! -9/2 daje -5, a ne -4.5!
� Ako je jedan od operanada realan, onda je i rezultat realan(implicitna konverzija)
Operatori u C++Relacijski operatori
� Operandi moraju biti brojevi� Mogu se koristiti i karakteri� Ne mogu se koristiti stringovi
Operatori u C++Logički operatori
Kombinovanje logičkih izraza� Kombinovanje logičkih izraza� Rezultat je 0 (false) ili 1 (true).
Operatori u C++Bitovni operatori� Koriste se za manipulisanje pojedinačnim
bitovima cjelobrojnih podataka
Operatori u C++Inkrementalni i dekrementalni operatori
auto inkrementalni (++) i auto dekrementalni (--)� auto inkrementalni (++) i auto dekrementalni (--)
Operatori u C++Operatori pridruživanja
Operatori u C++Operatori pridruživanja� pohranjivanje vrijednosti na neku memorijsku
lokaciju (varijabli)� može imati mnogo varijanti, koje se dobivaju
njegovim kombinovanjem sa aritmetičkim njegovim kombinovanjem sa aritmetičkim operatorima
Naredbe� Jednostavna naredba je svaka naredba koja
završava tačka-zarezom (;)� int i; // deklaraciona naredba
++i; // naredba sa popratnom pojavom double d = 10.5; // deklaraciona naredba double d = 10.5; // deklaraciona naredba d + 5; // beskorisna naredba; // prazna (null) naredba
Naredbe� Mnogostruke naredbe (složene naredbe) se
mogu kombinovati u složene naredbe kada se grupišu između velikih zagrada ({})� { int min, i = 10, j = 20;
min = (i < j ? i : j);cout << min << ’\n’; cout << min << ’\n’;
}� omogućuju da se mnogostruka naredba postavi
tamo gdje bi inače mogla da se postavi samo jedna,
� omogućuju da se u program uvede područje definisanosti varijable (eng. scope).
Primjer 1:� Napisati algoritam za računanje brzine: v=s/t
Početak
s, t
#include <iostream>
using namespace std;
int main()
{
//deklaracija promjenljivih
int s=0, t=0, v=0;
//Unos pređenog puta
cout << "Unesite predeni put: ";
v = s / t
v
t <= 0
greška
Kraj
DANEcout << "Unesite predeni put: ";
cin >> s;
//Unos vremena
cout << "Unesite vrijeme: ";
cin >> t;
//Prvjera t
if(t<=0)
cout <<"Vrijeme mora biti vece od 0" << endl;
else
{
v = s/t;
cout << "Brzina je: " << v;
}
//kraj programa
return 0;
}
Naredba if� Kada izvršavanje određene naredbe zavisi od
ispunjenja nekog uslova, koristimo razgranatu strukturu, odnosno naredbu if.� if (izraz) naredba;
� Prvo se izvršava izraz, i ako je rezultat različit od � Prvo se izvršava izraz, i ako je rezultat različit od nule izvršava se naredba. U suprotnom, ništa se ne dešava.
Naredba ifPrimjer:� Provjeriti da li je pri dijeljenju djelilac različit od
nule, pa izvršiti dijeljenje� if (djelilac != 0)
kolicnik=djelitelj/djelilac;kolicnik=djelitelj/djelilac;
blok naredbi
uslovDA
NE
Naredba if..else� Varijanta if naredbe koja omogućuje da se
specificiraju dvije alternativne naredbe, jedna koja se izvršava kada je uslov ispunjen i druga kada nije, naziva se if-else naredba � if (izraz) � if (izraz)
naredba1; else
naredba2; � Ovdje se najprije izvršava izraz, i ako je rezultat
različit od nule, izvršava se naredba1. U suprotnom, izvršava se naredba2
Naredba if..elsePrimjer:� Provjeriti da li je broj paran
� if (x % 2 == 0) cout << "Broj je paran" << endl;
else else cout << "Broj je neparan" << endl;
blok naredbi1
uslovDANE
blok naredbi2
Ugnježdene if naredbe� Ugniježdena if naredba omogućava izvršavanje više
od dvije alternative� Primjer: Izračunati cijenu telefonskog računa
� if (vrijemePoziva > 7 && vrijemePoziva < 19){
if (duzinaPoziva <= 60) if (duzinaPoziva <= 60) cijena = duzinaPoziva * tarifa1;
else cijena = 60 * tarifa + (duzinaPoziva - 60) * tarifa2;
} else
cijena = osnovnaCijena;
Primjer if naredbe� Unijeti cijeli broj različit od 0 pa provjeriti da li je
negativan ili pozitivan, te ispisati apsolutnu vrijednost broja.
Početak
aa
a < 0
negativan|a| = -a
Kraj
DANE
pozitivan|a| = a
Naredba goto� Naredba goto omogućava nastavak odvijanja
programa od odabrane naredbe� goto oznaka_naredbe;
� Upotreba� Upotreba� oznaka_naredbe: naredba;
…… …… goto oznaka_naredbe;
Primjer naredbe goto� Šta će se desiti u prethodnom primjeru ako se
unese broj 0?
Nredba if..else..if..else� Za višestruko uvjetno grananje koristi se naredba
� if – else if – else
� Broj pustavljenih uvjeta nije ograničenuslov
1DA
blok naredbi1
NE
blok naredbi2
uslov2
blok naredbi
DA
NE
Primjer� Unijeti cijeli broj pa provjeriti da li je negativan, pozitivan,
ili jednak nuli, te ispisati apsolutnu vrijednost broja
Početak
a
a < 0DA
negativan|a| = -a
Kraj
nula|0| = 0
a > 0
pozitivan|a| = a
DA
Primjer� Upisati prirodni broj pa provjeriti da li je veći ili manji
od 100, te da li je paran ili neparanPočetak
a
a <= 0
Greška
DA
DA
Kraj
Veći od 100
a < 100
Manji od 100
DA
a%2Ost=0
paran
neparan
a%2Ost=0
paran
neparan
Napisati program u C++, koji sa ulaza prima dva cijelabroja, a kao rezultat daje zbir, razliku, proizvod i kolicnik.
# include <iostream>
using namespace std;
int main()
{
int a,b;
cout << "Unesite dva cijela broja: " << endl;cout << "Unesite dva cijela broja: " << endl;
cin >> a >> b;
cout << "Zbir brojeva je:"<< a + b
<< ", razlika: “ << a - b
<< ", proizvod: “ << a * b
<< ", kolicnik: " << (double)a/b
<< endl;
return 0;
}
Napisati program u C++, koji nalazi rješenje jednačine ax + b = c. Koeficijenti a, b i c su cijeli brojevi, a rezultat x je realan broj.
# include <iostream>
using namespace std;
int main()
{ int a,b,c; float x;
cout << "Unesite koeficijente a, b i c: "
cin >> a >> b >> c;
if(a==0)if(a==0)
{ if(b==c)
cout << "Rezultat je skup R";
else
cout << "Jednačina nema rjesenja";
}
else
{ x = (c-b)/a;
cout << "x = " << x;
}
return 0;
}
Napisati program u C++, koji nalazi rješenje jednačine ax2 + bx + c = 0. Koeficijenti a, b, c i rezultati x1/2 su realani brojevi# include <iostream>
# include <math.h>
using namespace std;
int main()
{ float a,b,c,x1,x2,d;
cout << "Unesite koeficijente a, b i c: ";
cin >> a >> b >> c;
if(a==0)
{ if(b==0)
{ if(c==0)
cout << "Rezultat je skup R";
else
cout << "Jednačina nema rjesenja";
}}
else
{ x1 = -c/b;
cout << "Postoji samo jedno rjesenje x = " << x1;
}
}
else
{ d=b*b - 4*a*c;
if(d==0)
{ x1 = -b / 2 * a;
cout << "Postoji samo jedno rjesenje x = " << x1;
}
else if (d < 0)
cout << "Jednacina nema rjesenja (rjesenja su kompleksna)";
else
{ x1 = (-b - sqrt(d)) / 2 * a;
x2 = (-b + sqrt(d)) / 2 * a;
cout << "Jednacina ima dva rjesenja x1 = " << x1 << " i x2 = " << x2;
}
}
return 0;
}
Treba unijeti tri realna broja pa pronaći i ispisati najmanji. Upisi prvi broj :
Upisi drugi broj :
Upisi treci broj:
Ako se upisu brojevi: ..., ... i ...
najmanji od njih je ...
Tri realna broja ih ispisati od najmanjeg do najvećegUpisi prvi broj:
Upisi drugi broj:
Upisi treci broj:
Brojevi: ..., ... i ... poredani od najmanjeg ka najvecem:
..., ..., ...
Naredba switch� Omogućava jednostruko grananje koje ovisi o
vrijednosti postavljenog uvjeta� Poređenje if i switch:
� if -> uvjeti su logički izrazi� switch-case -> uvjet je cjelobrojan izraz ili � switch-case -> uvjet je cjelobrojan izraz ili
cjelobrojna varijabla
blok naredbi1
izraz
blok naredbi2
blok naredbi
konst1 konst1
Naredba switch
Naredba switch� switch (izraz)
{
case konstanta_1:
naredbe;
break; break;
...
case konstanta_n:
naredbe;
break;
default:
naredbe;
}
Naredba switch� Odrediti opseg osvojenih bodova na ispitu na osnovu dobijene
ocjene.
main() { int ocj; cout << "Unesite ocjenu: "; cin >> ocj; switch (ocj) {
case 5: switch (ocj) {
case 5: cout << "Imate 90 – 100 bodova" << endl; break;
case 4: cout << "Imate 80 – 89 bodova" << endl; break;
case 3: cout << "Imate 70 – 79 bodova" << endl; break;
case 2: cout << "Imate 60 – 69 bodova" << endl; break;
default: cout << "Imate ispod 60 bodova" << endl;
}return 0; }
Naredba switch� Izračunati ukupni otpor za otpore R1 i R2, ovisno
o tome da li su spojeni serijski ili paralelno. Za odabir serijskog spoja korisnik upisuje 1, a za paralelnog 2.
Za uneseni mjesec odrediti broj danaint m;cin>>m;switch(m){ case 1:
case 3:case 5:case 7:case 8:case 10:case 12:case 10:case 12:
cout<<“Mjesec ”<<m<<“ ima 31 dan”;break;case 4:case 6:case 9:case 11:
cout<<“Mjesec ”<<m<<“ ima 30 dana”;break;case 2:
cout<<“Mjesec ”<<m<<“ ima 28 ili 29 dana”;break;default:
cout<<“Pogrešan unos. Mjesec ne moće biti “<<m;}
Naredba for� for petlja se koristi ako se dijelovi programa
trebaju ponoviti unaprijed poznati broj puta. � for petlja ima svoju kontrolnu varijablu, čija se
vrijednost svakim prolaskom kroz petlju mijenja ovisno o vrijednosti prirasta. ovisno o vrijednosti prirasta.
� for (inicijalizacija; kontrola; akcija) naredba;
inicijalizacija; kontrola; akcija
Naredba
Naredba for� Izračunati zbir svih brojeva od 1 do n.� sum = 0;
for (int i = 1; i <= n; i++) sum += i;
Naredba for� Ispisati tablicu množenja brojeva do 10.� for (int i = 1; i <= 10; i++)
{ for (int j = 1; j <= 10; j++) cout << setw(5) << i*j;
cout << endl;cout << endl;}
� operator za manipulisanje setw() se koristi za formatirano ispisivanje. Brojka unutar zagrada predstavlja najmanji prostor predviđen za ispis podataka
� Ispiši prvih 20 prirodnih brojeva, svaki u svom redu
#include <iostream>using namespace std;int main(){{
int i;for(i=1; i<=20; i++)
cout << i << endl;cout << "Nakon petlji i je " << i << endl;return 0;
}
� Ispiši sve prirodne brojeve između 1 i N, koji su djeljivi sa 3.
#include <iostream>using namespace std;
int main(){
int i,n;cout << "Unesi bron n ";cout << "Unesi bron n ";cin >> n;cout << Brojevi izmedju 1 i " << n <<
" djeljivi sa 3 su"<< endl;for(i=1; i<=n; i++)
if(i%3==0)cout << i << endl;
return 0;}
Zadaci� Izračunati faktorijel broja n� Izračunati aritmetičku sredinu n unesenih brojeva� Ispisati faktore prirodnog broja n� Izračunati n-ti stepen broja a� Izračunati proizvod prirodnih brojeva u intervalu � Izračunati proizvod prirodnih brojeva u intervalu
od k do n� Izračunati sumu parnih prirodnih brojeva u
intervalu od K do N� Provjeriti dali je učitani broj n savršen broj
(jednak je zbroju svojih djelitelja) npr. 6=1+2+3 ili 28=1+2+4+7+14).
Naredba while� Naredba while omogućuje ponavljanje neke
naredbe sve dok je ispunjen neki uslov.
� while (izraz) naredba; USLOV
NEnaredba; USLOVNE
NAREDBA
DA
Naredba while� Primjer: izračunati zbir svih brojeva od 1 do n:
� i = 1; sum = 0; while (i <= n) { sum = sum + i;
i = i + 1;} //ili sum += i++; i = i + 1;} //ili sum += i++;
Za niz od 5 različitih brojeva ispiši zbir
#include <iostream>using namespace std;int main(){
int i=1;int suma=0;int broj;while (i<=5)while (i<=5){
cout<<"unesite "<<i<<". broj: ";cin>>broj;suma=suma+broj;i=i+1;
}cout<<endl<<"zbir unesenih brojeva je: "<<suma;return 0;
}
Naredba do� Naredba do je slična naredbi while, osim što se
prvo izvršava tijelo petlje, a zatim se provjerava uslov.
� do naredba; naredba;
while (izraz);
uslov
NE
naredba
DA
Naredba do� Primjer: računati kvadrat nekog broja sve dok se
ne unese 0� do
{ cin>>n; cin>>n; cout<<"Kvadrat broja "<<n<<" je"<<
n*n<<"\n";} while (n != 0);
Za niz prirodnih brojeva od 1-N ispiši sumu (zbir) neparnih
#include <iostream>using namespace std;
int main(){
int p=1,N,zbir=0;cout<<"unesite broj N ";cin>>N;
dodo{
zbir=zbir+p;p=p+2;
} while (p<=N;)
cout<<"Zbir neparnih brojeva od 1 do "<<N<<" iznosi "<<zbir<<endl;return 0;
}
Zadaci� Za dati broj n izračunati sumu prema sledećoj
formuli: suma=1-1/2+1/3-1/4+...+1/n
while ((i<n)&&(n>1)) { suma=suma+(1/i-1/(i+1));{ suma=suma+(1/i-1/(i+1));
i=i+2;}
Niz (Polje, Array)� Tipovi int, double, float, char ... služe za predstavljanje
samo pojedinačnih vrijednosti. � Polja su pogodna za predstavljanje podataka koji se
sastoje od mnogo sličnih, individualnih objekata.Primjeri: lista imena, tabela gradova, izmjerene temperature...
� Polje se sastoji od niza objekata (nazivaju se i elementi � Polje se sastoji od niza objekata (nazivaju se i elementi polja), koji su istog tipa i zauzimaju neprekidan memorijski prostor.
� Polje ima simboličko ime, a ne njegovi elementi. � Svaki element je identificiran njegovim indeksom, koji
pokazuje položaj elementa u polju.� Broj elemenata u polju naziva se dimenzija polja.� Dimenzija polja je unaprijed određena, i ne može se
promijeniti u toku izvršenja programa.
Nizovi� Skupine vrijednosti istog tipa predstavljamo pomoću
nizova.� Niz je struktura podataka koja omogućava pohranu
skupine vrijednosti u kontinuirani blok memorije.� Nizovi omogućavaju brz pristup elementima niza.� Deklaracija niza:� Deklaracija niza:
tip ime_niza [broj_elemenata];� tip može biti bilo koji validni tip podatka u C++ (npr.
int, float...)� ime_niza je bilo koji validan identifikator u C++� u uglatim zagradama [] se nalazi broj elemenata niza
tj. veličina niza (obavezno neka konstantna vrijednost).
Nizovi� Primjer deklaracije:
int rezultati [9];
� niz rezultati se sastoji od 9 elemenata tipa int
� Svaki element niza je varijabla, kojoj se pristupa navođenjem imena niza i indeksa u uglatim zagradama: rezultati [5]= 21; cout<<rezultati [5];
Nizovi� U uglatim zagradama može se nalaziti:
� konstantna vrijednost (obavezno pri deklaraciji)� proizvoljan cjelobrojni aritmetički izraz
prosjek [2*n-3] = 13.7;
� Nizovi su složeni tipovi podataka. � Isključivo pristupamo pojedinačnim elementima niza.
Nkada ne pristupamo nizu kao cjelini.(ne možemo jednom naredbom ispisati čitav niz na ekran, niti jednom naredbom unijeti cijeli niz sa tastature)
� Indeksi niza od n elemenata se kreću od 0 do n-1.
Nizovi� Unijeti niz od 10 elemenata, a zatim ispisati nizint niz[10]; //deklaracija niza od 10 cijelih brojeva
// unos elemenata niza
for(int i=0; i<10;i++)for(int i=0; i<10;i++)
cin>>niz[i];
//ispis elemenata niza
for(int j=0; i<10;i++)
cout<<niz[i];
Nizovi� Izračunati srednju vrijednost elemenata nekog
polja od tri cjelobrojna elementa:
const int velicina = 3;
int broj[velicina];int broj[velicina];
double srednja = 0;
for (int i = 0; i < velicina; i++)
srednja += broj[i];
cout << srednja/velicina;
� Unijeti niz, sortirati ga od najvećeg do najmanjeg elementa, te ispisati sortirani niz
#include <iostream>
using namespace std;
int main ()
{ int x[10]; //deklaracija
int i, j, n, p;
cout << "Unesite broj clanova niza (<10): ";
cin >> n;
for (i = 0; i < n; i++) //unos elemenata niza
{ cout << "Unesite clan br. " << i << ": ";
cin >> x[i];
}
for (i = 0; i < n-1; i++) //sortiranjefor (i = 0; i < n-1; i++) //sortiranje
{ for (j = i+1; j < n; j++)
{ if (x[i] < x[j])
{ p=x[i];
x[i]=x[j];
x[j]=x[i];
}
}
}
for (i = 0; i < n; i++) //ispis
cout << y[i] << endl;
}
Funkcije� Funkcija (podprogram) sadrži nekoliko naredbi i
izvodi konkretan zadatak� Služe da se instrukcije “upakuju” u imenovani
blok, koji se može pozvati neograničen broj puta na različitim mjestima u programu.na različitim mjestima u programu.
Funkcije� Opšti oblik funkcijetip ime(argumenti)
{
//naredbe
return vrijednost;
}}
� tip – tip podataka koje funkcija vraća� ime – jedinstveni identifikator funkcije� argumenti - prosljeđivanje vrijednosti u funkciju� naredbe – skup naredbi� vrijednost – vrijednost koju funkcija vraća
Funkcije� Napisati funkciju koja računa stepen nekog broja
int Stepen (int baza, unsigned int eksponent)
{
int rezultat = 1; int rezultat = 1;
for (int i = 0; i < eksponent; ++i)
rezultat *= baza;
return rezultat;
}
Pozivanje funkcijemain ()
{ int a,b;
cout<<"Unesi bazu:";
cin>>a;
cout<<"\nUnesi eksponent:"; cout<<"\nUnesi eksponent:";
cin>>b;
cout<<a<<"^"<<b<<“="<<Stepen(a,b);
return 0;
}
� Napisati funkciju koja računa zapreminu kutije
#include <iostream>
using namespace std;
int kutija(int s, int v, int d)
{ return s*v*d;
}
main () main ()
{ int a,b,c;
cout<<"Unesi dimenzije kutije:";
cin>>a>>b>>c;
cout<<“Zapremina kutije je:“<<
kutija(a,b,c);
return 0;
}
� Napisati funkciju koja računa faktorijel broja
#include <iostream> using namespace std;
double faktor(int n){ double fak=1;
for (int i=n;i>1;i--) fak=fak*i;
return fak;}
main () { int N;double F; cout<<“Unesi prirodan broj N: ";cin>>N;F=faktor(N);cout<<“Faktorijel od”<<N<<„ je: ”<<F;
return 0;}
� Napisati funkciju koja sabira dva niza� Isapisati elemente niza koji su manji od dvostruke
vrijednosti najmanjeg elementa niza� Napisati program koji u realno polje temp ucitava
10 realnih vrijednosti koje predstavljaju temperature u 10 razlicitih dnevnih termina. Program zatim poziva funkcije maxtemp() i prtemp() koje izracunavaju maksimalnu dnevnu prtemp() koje izracunavaju maksimalnu dnevnu temperaturu i prosjecnu dnevnu temperaturu i ispisuje na standardnom izlazu te vrijednosti.
Primjer:� Napisati program koji za dva broja a i b određuje
koji je veći #include <iostream>
using namespace std;
int main()
{
//deklaracija promjenljivih
int a,b;
//Unos brojeva a i b
Početak
a, b//Unos brojeva a i b
cout << "Unesite broj a: ";
cin >> a;
cout << "Unesite broj b: ";
cin >> b;
//poređenje
if(a<b)
cout <<“broj a je manji od broja b" << endl;
else if(a>b)
cout <<“broj a je veći od broja b" << endl;
else
cout <<“broj a je jednak broju b" << endl;
//kraj programa
return 0;
}
Broj a je manji od broja b
a, b
Broj a je veći od broja b
Kraj
a > ba < b
a = b
Broj a je jednak broju b
Primjer:� Sabrati brojeve od 1 do 100
#include <iostream>
using namespace std;
int main()
{
//deklaracija promjenljivih
int zbir=0;
Početak
zbir = 0
//iniicijalizacija petlje
for(int i=1;i<=100;i++)
zbir=zbir+i;
//ispis rezultata
cout <<“zbir brojeva od 1 do 100 je: “
<<zbir << endl;
//kraj programa
return 0;
}
Kraj
za i od 1 do 100
zbir = zbir + i
zbir
Primjer Izračunati prosječnu ocjenu razredaPočetak
za i od 1 do br_ocj
zbir_odj = 0
ocjena
br_ucbr_ocj
za j od 1 do br_uc
zbir = 0
#include <iostream>
using namespace std;
int main()
{ int br_uc,br_ocj,zbir,ocjena,pros_uc;
cout<<“Unesite broj učenika: “;
cin>>br_uc;
cout<<“Unesite broj ojena: “;
cin>>br_ocj;
Kraj
zbir = zbir + ocjena
pros_odj
ocjena
pros_odj = zbir_odj / br_uc
zbir_odj = zbir_odj + pros_uc
pros_uc = zbir / br_ocj
int zbir_odj=0;
for(int j=1;i<=br_uc;i++)
{ zbir=0;
for(int i=1;i<=br_ocj;i++)
[ cout<<“Unesite “<<i<“. ocjenu”;
cin>>ocjena;
zbir=zbir+ocjena;
}
pros_uc=zbir/br_uc;
cout<<“Prosjek <<j<<“. učenika je: “<<pros_uc;
zbir_odj=zbir_odj+pros_uc;
}
pros_odj=zbir_odj/br_uc;
cout<<“Prosjek odjeljenja je: “<<pros_odj;
return 0;
}
Standardne biblioteke� U C++ postoji skupina funkcija koje se isporučuju
uz IDE.� To je standardna biblioteka. � Funkcije standardne biblioteke se nalaze u raznim
bibliotekama označene dodatnim imenom std.bibliotekama označene dodatnim imenom std.