1 / 118

Vježbenica: Struktura grananja

Vježbenica: Struktura grananja. © S. Šutalo i D.Grundler, 2009. broj i tip podataka koji se predaju funkciji prilikom njenog poziva (argumenti). tip podatka kojeg funkcija vraća pozivatelju. Deklaracija funkcije. t ip _f unkcije naziv_f unkcije ( popis argumenata). Matematičke funkcije.

tory
Télécharger la présentation

Vježbenica: Struktura grananja

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Vježbenica:Struktura grananja © S. Šutalo i D.Grundler, 2009.

  2. broj i tip podatakakoji se predaju funkciji prilikom njenog poziva (argumenti) tip podatkakojeg funkcija vraća pozivatelju Deklaracija funkcije tip_funkcije naziv_funkcije(popis argumenata) (c) S.Šutalo i D.Grundler, 2009.

  3. 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. (c) S.Šutalo i D.Grundler, 2009.

  4. Matematičke funkcije (c) S.Šutalo i D.Grundler, 2009.

  5. Matematičke funkcije (c) S.Šutalo i D.Grundler, 2009.

  6. Primjer 30 • Treba unijeti realni broj pa provjeriti da li je >= 0. Ako je, računa se kvadratni korijen tog broja, a ako nije ispisuje se poruka: Broj je manji od 0, ponovi upis.i ponavlja se unos broja. Upisi broj: Kvadratni korijen od ... je .... (c) S.Šutalo i D.Grundler, 2009.

  7. Primjer 30 • Napomene: • Treba uključiti biblioteku cmath, da bi se moglo koristiti funkcijom sqrt. • Ponovljeni unos broja omogućit će naredba goto. (c) S.Šutalo i D.Grundler, 2009.

  8. ako je uneseni broj <0, upis valja ponoviti Primjer 30 (c) S.Šutalo i D.Grundler, 2009.

  9. #include<iostream> #include<cmath> using namespace std; int main() { float broj,rez; upis:cout<<"Upisi broj:"; cin>>broj; if (broj<0) { cout<<"Broj je manji od 0, ponoviupis"<<endl; goto upis; } else { rez=sqrt(broj); cout<<"Kvadratni korijen od "<<broj<<" je "<<rez<<endl; } return 0;}

  10. Primjer 30 • Provjera za broj >=0: za broj < 0: (c) S.Šutalo i D.Grundler, 2009.

  11. Primjer 31 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 ... (c) S.Šutalo i D.Grundler, 2009.

  12. Primjer 31 • Udaljenost točaka A(x1,y1) i B(x2,y2) u koordinatnom sustavu može se izračunati uz pomoć formule: (c) S.Šutalo i D.Grundler, 2009.

  13. uporaba matematičkih funkcija Primjer 31 (c) S.Šutalo i D.Grundler, 2009.

  14. #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;

  15. 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; }

  16. Primjer 31 • Provjera: (c) S.Šutalo i D.Grundler, 2009.

  17. Primjer 32 Treba unijeti cijeli broj pa provjeriti da li je >= 0. Ako nije, treba izračunati apsolutnu vrijednost unesenog broja. Potom, treba provjeriti da li je broj paran. Ako je paran treba izračunati i ispisati njegovu treću potenciju, a ako nije treba ispisati: Broj je neparan. Unesi broj: Broj ... je paran, a njegovatreca potencija iznosi... ili Broj … je neparan. (c) S.Šutalo i D.Grundler, 2009.

  18. Primjer 32 (c) S.Šutalo i D.Grundler, 2009.

  19. #include <iostream> #include <cmath> using namespace std; int main () { int i,rez; cout<<"Unesi broj:"; cin>>i; if (i<0) { i=abs(i); }

  20. if (i%2==0) { rez=pow(i,3); cout<<"Broj "<<i<<" je paran,a\njegova treca potencija iznosi"<<rez<<endl; } else { cout<<"Broj "<<i<<" je neparan.“<<endl; } return 0; }

  21. Primjer 32 • Provjera: (c) S.Šutalo i D.Grundler, 2009.

  22. Primjer 33 Treba unijeti koeficijente linearne jednadžbe: Ovisno o njihovim vrijednostima izračunati i ispisati rješenje. Ako je vrijednost nekog od koeficijenata 0, ispisati odgovarajuća upozorenja. (c) S.Šutalo i D.Grundler, 2009.

  23. Primjer 33 Upisi koeficijenta: Upisi koeficijent b: Ako je a=0, jednadzba 0*x+...=0 nema rjesenje. ili Ako je b=0 rjesenje jednadzbe..*x+0=0 je: x=0. ili Rjesenje jednadzbe..*x+..=0 je: x=... (c) S.Šutalo i D.Grundler, 2009.

  24. Primjer 33 • Napomene: • Zadatak će biti riješen uporabom višestrukog uvjetnog grananja. • Ako je a==0, to nije linearna jednadžba. • Ako je b==0, rješenje je uvijek 0. • Za ostale vrijednosti koeficijenata, x=-b/a. (c) S.Šutalo i D.Grundler, 2009.

  25. Primjer 33 (c) S.Šutalo i D.Grundler, 2009.

  26. #include<iostream> using namespace std; int main() { float a,b,x; cout<<"Upisi koeficijent a:"; cin>>a; cout<<"Upisi koeficijent b:"; cin>>b; if(a==0) { cout<<"Ako je a=0, jednadzba "<<a<<"*x+("<<b<<")=0 nema rjesenje."<<endl; }

  27. else if(b==0) { cout<<"Ako je b=0, rjesenje jednadzbe"<<a<<"*x+("<<b<<")=0 je:"<<endl; cout<<"x=0"<<endl; } else { x=-b/a; cout<<"Rjesenje jednadzbe "<<a<<"*x+(" <<b<<")=0 je:"<<endl; cout<<"x= "<<x<<endl; } return 0; }

  28. Primjer 33 • Provjera: za a == 0: za b == 0: za (a i b !=0) (c) S.Šutalo i D.Grundler, 2009.

  29. Primjer 34 Treba unijeti koeficijente kvadratne jednadžbe, pa ovisno o njihovim vrijednostima izračunati i ispisati rješenja. Važno je provjeriti vrijednost koeficijenta a. Ako je a=0, jednadžba nije kvadratna. (c) S.Šutalo i D.Grundler, 2009.

  30. Upisi koeficijenta: Upisi koeficijent b: Upisi koeficijent c: Rjesenja su realni brojevi: x1=... i x2=... ili Rjesenja su kompleksni brojevi: z1=...+...i, z2=...-...i ili Ako je koeficijent a=0, jednadzba nije kvadratna. Primjer 34 • Ispis neka bude oblika: (c) S.Šutalo i D.Grundler, 2009.

  31. Primjer 34 • Napomene: • Prvo se provjerava da li je a!=0. • Ako je, treba provjeriti predznak diskriminante jer on određuje hoće li rješenja kvadratne jednadžbe biti realni ili kompleksni brojevi. (c) S.Šutalo i D.Grundler, 2009.

  32. Primjer 34 • Ako je vrijednost diskriminante veća ili jednaka 0, rješenja su realni brojevi. • Ako je vrijednost diskriminante manja od 0, rješenja su kompleksni brojevi. (c) S.Šutalo i D.Grundler, 2009.

  33. Primjer 34 (c) S.Šutalo i D.Grundler, 2009.

  34. vrijednost diskriminante rješenja realni brojevi rješenja kompleksni brojevi (c) S.Šutalo i D.Grundler, 2009.

  35. #include<iostream> #include<cmath> using namespace std; int main() { float a,b,c,x1,x2,pom1,xR,xi; cout<<"Upisi koeficijent a:"; cin>>a; cout<<"Upisi koeficijent b:"; cin>>b; cout<<"Upisi koeficijent c:"; cin>>c;

  36. if (a!=0) { pom1=b*b-4*a*c; if (pom1>=0) { x1=(-b+sqrt(pom1))/(2*a); x2=(-b-sqrt(pom1))/(2*a); cout<<"Rjesenja su realni brojevi x1=" <<x1<<" i x2="<<x2<<endl; } else { xR=-b/(2*a); xi=sqrt(-pom1)/(2*a); cout<<"Rjesenja su kompleksni brojevi:"; cout<<endl<<"z1="<<xR<<"+"<<xi<<"i, z2=" <<xR<<"-"<<xi<<"i"<<endl; } }

  37. else { cout<<"Ako je koeficijent a=0,jednadzba\ nije kvadratna"<<endl; } return 0; }

  38. Primjer 34 diskriminanta>= 0, rješenja su realni brojevi diskriminanta< 0, rješenja su kompleksni brojevi jednadžba nije kvadratna (a=0) (c) S.Šutalo i D.Grundler, 2009.

  39. 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. Primjer 35 • U pravokutnom je trokutu poznat kut alfa(izražen u stupnjevima) i kateta a (u cm). • Treba izračunati vrijednost hipotenuze c. (c) S.Šutalo i D.Grundler, 2009.

  40. Primjer 35 • Za izračun hipotenuze, koristi se funkcija sin(x). • Funkcija sin(x) računasinus kuta zadanog u radijanima. • Stoga, vrijednost kuta treba iz stupnjeva pretvariti u radijane (kut*PI/180). (c) S.Šutalo i D.Grundler, 2009.

  41. Primjer 35 (c) S.Šutalo i D.Grundler, 2009.

  42. #include<iostream> #include<cmath> using namespace std; int main() { float kutalfa,a,c,kutalfa1; const float PI=3.14; cout<<"Unesi vrijednost kuta alfa u stupnjevima: "; cin>>kutalfa; cout<<"Unesi vrijednost katete a: "; cin>>a; 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."<<endl; return 0; }

  43. Primjer 35 • Provjera: (c) S.Šutalo i D.Grundler, 2009.

  44. Primjer 36 • Čamac vozi brzinom vcokomito 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? (c) S.Šutalo i D.Grundler, 2009.

  45. Primjer 36 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. (c) S.Šutalo i D.Grundler, 2009.

  46. Primjer 36 • 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 ga pomnožiti sa (180/PI). (c) S.Šutalo i D.Grundler, 2009.

  47. Primjer 36 (c) S.Šutalo i D.Grundler, 2009.

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

  49. 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; }

  50. Primjer 36 • Provjera: (c) S.Šutalo i D.Grundler, 2009.

More Related