Presentation is loading. Please wait.

Presentation is loading. Please wait.

Vježbenica 1b: Pravocrtna programska struktura

Similar presentations


Presentation on theme: "Vježbenica 1b: Pravocrtna programska struktura"— Presentation transcript:

1 Vježbenica 1b: Pravocrtna programska struktura

2 Matematičke funkcije Korisniku na raspolaganju stoji mnoštvo funkcija razvrstanih u odgovarajuće biblioteke. Većina matematičkih funkcija deklarirana je u biblioteci cmath. Biblioteka cmath se u program uključuje pretprocesorskom naredbom #include. Sanda, 2019.

3 abs(x) ceil(x) floor(x) trunc(x) round(x) sqrt(x) Deklaracija funkcije
Opis abs(x) Vraća apsolutnu vrijednost realnog broja x ceil(x) Zaokružuje realni broj x na najbliži veći cijeli broj. floor(x) Zaokružuje realni broj x na najbliži manji cijeli broj. trunc(x) Odbacuje decimalni dio realnog broja x. round(x) Zaokružuje realni broj x po matematičko pravilu. sqrt(x) Računa drugi korijen realnog broja x Sanda, 2019.

4 fmod(djeljenik,djelitelj)
Deklaracija funkcije Opis sin(x) Računa sinus argumenta x (x je kut zadan u radijanima) atan(x) Računa kut u radijanima. pow(baza, eksponent) Bazu potencira na zadani eksponent. fmod(djeljenik,djelitelj) Računa ostatak dijeljenja dvaju realnih brojeva Sanda, 2019.

5 Primjer 14 Treba unijeti koordinate točaka A i B, pa izračunati njihovu udaljenost u koordinatnom sustavu. Koordinate tocke A : x1= y1= Koordinate tocke B : x2= y2= Udaljenost tocaka A(...,...) i B(...,...) je … Sanda, 2019.

6 Primjer 14 Udaljenost točaka A(x1,y1) i B(x2,y2) u koordinatnom sustavu može se izračunati s pomoću formule: Sanda, 2019.

7 uporaba matematičkih funkcija
Sanda, 2019.

8 #include<iostream> #include<cmath> using namespace std;
Sanda, 2019. #include<iostream> #include<cmath> using namespace std; int main() { float x1,y1,x2,y2,pom,d; cout<<"Koordinate tocke A:"<<endl; cout<<"x1= "; cin>>x1; cout<<"y1= "; cin>>y1; cout<<"Koordinate tocke B:"<<endl; cout<<"x2= "; cin>>x2; cout<<"y2= "; cin>>y2;

9 pom=pow((x2-x1),2)+pow((y2-y1),2); d=sqrt(pom);
Sanda, 2019. pom=pow((x2-x1),2)+pow((y2-y1),2); d=sqrt(pom); cout<<"Udaljenost tocaka A("<<x1<<","<<y1<<") i B(" <<x2<<","<<y2<<") je "<<d<<endl; return 0; }

10 Primjer 14 Provjera programa: Sanda, 2019.

11 Primjer 15 U pravokutnom je trokutu poznat kut alfa (izražen u stupnjevima) i kateta a (u cm). Treba izračunati vrijednost hipotenuze c. Unesi vrijednost kuta alfa u stupnjevima: Unesi vrijednost katete a: Ako je vrijednost kuta alfa ... stupnjeva, a vrijednost katete a= ... cm, hipotenuza ima vrijednost c= ... cm. Sanda, 2019.

12 kut u radijanima= (kut u stupnjevima*PI/180).
Primjer 15 Za izračun hipotenuze koristi se funkcija sin(x). Vrijednost kuta treba biti zadana u radijanima. Stoga, vrijednost kuta treba iz stupnjeva pretvoriti u radijane: kut u radijanima= (kut u stupnjevima*PI/180). Sanda, 2019.

13 Sanda, 2019.

14 #include<iostream> #include<cmath> using namespace std;
Sanda, 2019. #include<iostream> #include<cmath> using namespace std; int main() { float kutalfa,a,c,kutalfa1; const double PI=3.14; cout<<"Unesi vrijednost kuta alfa u stupnjevima: "; cin>>kutalfa; cout<<"Unesi vrijednost katete a: "; cin>>a;

15 kutalfa1=kutalfa*PI/180; c=a/sin(kutalfa1);
Sanda, 2019. kutalfa1=kutalfa*PI/180; c=a/sin(kutalfa1); cout<<endl<<"Ako je vrijednost kuta alfa " <<kutalfa <<" stupnjeva, a vrijednost katete a="<<a <<" cm, hipotenuza ima vrijednost c="<<c<<" cm. "; return 0; }

16 Primjer 15 Provjera programa: Sanda, 2019.

17 Primjer 16 Čamac vozi brzinom vc okomito na tok rijeke koja teče brzinom vr. Kojom brzinom se giba čamac u odnosu na obalu? Za koji kut će čamac skrenuti sa svoje putanje? Unesi brzinu camca u m/s: Unesi brzinu rijeke u m/s: Ako je brzina rijeke ... m/s a brzina camca ... m/s, camac se u odnosu na obalu giba brzinom ... m/s. Camac je skrenuo sa svoje putanje za ... stupnjeva. Sanda, 2019.

18 kut u stupnjevima= (kut u radijanima*180/PI).
Primjer 16 Brzinu kojom se giba čamac u odnosu na obalu lako je izračunati po Pitagorinom teoremu. Za izračun kuta za koji će čamac skrenuti sa svoje putanje koristi se funkcija atan (x). Funkcija vraća vrijednost u radijanima. Ako se želi rezultat prikazati u stupnjevima, treba: kut u stupnjevima= (kut u radijanima*180/PI). Sanda, 2019.

19 Sanda, 2019.

20 #include<iostream> #include<cmath> using namespace std;
Sanda, 2019. #include<iostream> #include<cmath> using namespace std; int main() { float vc,vr,v,kut; const double PI= ; cout<<"Unesi brzinu camca u m/s: "; cin>>vc; cout<<"Unesi brzinu rijeke u m/s: "; cin>>vr;

21 v=sqrt(pow(vc,2)+pow(vr,2)); kut=atan(vr/vc); kut=kut*180/PI;
Sanda, 2019. v=sqrt(pow(vc,2)+pow(vr,2)); kut=atan(vr/vc); kut=kut*180/PI; cout<<endl<<"Ako je brzina rijeke "<<vr<<" m/s, a\ brzina camca "<<vc<<" m/s camac se u odnosu na\ obalu giba brzinom "<<v<<" m/s."<<endl; cout<<endl<<"Camac je skrenuo sa svoje putanje za " <<kut<<" stupnjeva."<<endl; return 0; }

22 Primjer 16 Provjera programa: Sanda, 2019.

23 Primjer 17 Treba unijeti vrijeme u sekundama a zatim izračunati koliko je to sati, minuta i sekundi. Ispis neka bude oblika: Upisi vrijeme u sekundama: ...sekundi je ...sati, ....minuta i ....sekundi. Sanda, 2019.

24 Primjer 17 Koristiti operatore cjelobrojnog i modularnog dijeljenja. Npr.: 3666 / 3600 = 1 cijeli 3666 % 3600 = 66 ostatka 66 / 60 = 1 cijeli 66 % 60 = 6 ostatka Sanda, 2019.

25 Primjer 17 Sanda, 2019.

26 #include<iostream> using namespace std; int main() {
Sanda, 2019. #include<iostream> using namespace std; int main() { int s, sek, min, sat, ostatak; cout<<"Upisi vrijeme u sekundama:"; cin>>s; sat=s/3600; ostatak=s%3600; min=ostatak/60; sek=ostatak%60; cout<<s<<" sekundi je "<<sat<<" sati, "<<min <<" minuta i "<<sek<<" sekundi."<<endl; return 0; }

27 Primjer 17 Provjera programa s podacima za koje je unaprijed poznat krajnji rezultat. Sanda, 2019.

28 Primjer 18 Treba unijeti troznamenkasti broj. Program stvara novi troznamenkasti broj u kome je znamenka desetice prvog broja na mjestu stotice drugog broja, znamenka jedinice prvog broja na mjestu desetice drugog broja, a znamenka stotice prvog broja na mjestu jedinice drugog broja (npr. 123 će postati 231). Brojeve treba zbrojiti. Upisi troznamenkasti broj: Novi troznamenkasti broj je: Zbroj broja … i broja … iznosi … . Sanda, 2019.

29 Primjer 18 Sanda, 2019.

30 #include<iostream> using namespace std; int main () {
Sanda, 2019. #include<iostream> using namespace std; int main () { int b1,j1,d1,s1,b2,j2,d2,s2,z; cout<<"Upisi troznamenkasti broj: "; cin>>b1; j1=b1%10; d1=(b1/10)%10; s1=b1/100; b2=d1*100+j1*10+s1; z=b1+b2; cout<<endl<<"Novi troznamenkasti broj je: " <<b2<<endl <<"Zbroj broja "<<b1<<" i broja "<<b2 <<" iznosi "<<z<<endl; return 0; }

31 Primjer 18 Provjera programa s podacima za koje je unaprijed poznat krajnji rezultat. Sanda, 2019.

32 Primjer 19 Treba izračunati koliko bi vremena bilo potrebno zvuku da prevali razmak između dva mjesta ako taj isti razmak svjetlost prevali za t sekundi. Ispis neka bude oblika: Upisi vrijeme u sekundama: Svjetlost prevali razmak izmedju dva mjesta za ...s, a zvuk je sporiji pa mu za isti razmak treba...s. Sanda, 2019.

33 Primjer 19 Brzina svjetlosti c=3e+8 m/s Brzinu zvuka v=340 m/s.
Put je isti! Gibanje je jednoliko! Sanda, 2019.

34 Primjer 19 Sanda, 2019.

35 #include<iostream> using namespace std; int main() {
Sanda, 2019. #include<iostream> using namespace std; int main() { float t,s,tz; const double c=3e+8; const double v=340; cout<<"Upisi vrijeme (u sek):"; cin>>t; s=c*t; tz=s/v; cout<<"Svjetlost prevali razmak izmedju dva\ mjesta za "<<t<<" s, a zvuk je sporiji\ pa mu za isti razmak treba "<<tz <<" sekundi."<<endl; return 0; }

36 Primjer 19 Provjera programa s podacima za koje je unaprijed poznat krajnji rezultat. Sanda, 2019.


Download ppt "Vježbenica 1b: Pravocrtna programska struktura"

Similar presentations


Ads by Google