PROGRAMIRANJE 1
Milena Vujošević Janičić, Jovana Kovačević, Danijela Simić, Anđelka Zečević PROGRAMIRANJE 1 Zbirka zadataka Beograd 2016.
Autori: dr Milena Vujošević Janičić, docent na Matematičkom fakultetu u Beogradu dr Jovana Kovačević, docent na Matematičkom fakultetu u Beogradu Danijela Simić, asistent na Matematičkom fakultetu u Beogradu Anđelka Zečević, asistent na Matematičkom fakultetu u Beogradu PROGRAMIRANJE 1 Zbirka zadataka
Sadržaj 1 Uvodni zadaci 1 1.1 Naredba izraza............................. 1 2 Kontrola toka 11 2.1 Naredbe grananja............................ 11 2.2 Petlje.................................. 22 2.3 Funkcije................................. 42 3 Predstavljanje podataka 57 3.1 Nizovi.................................. 57 3.2 Pokazivači................................ 74 3.3 Niske................................... 80 3.4 Strukture................................ 90 4 Ulaz i izlaz programa 99 4.1 Datoteke................................. 99 v
1 Uvodni zadaci 1.1 Naredba izraza Zadatak 1.1.1 Zdravo svima!. Napisati program koji na standardni izlaz ispisuje tekst Zdravo svima! Zadatak 1.1.2 Napisati program za uneti ceo broj ispisuje njegov kvadrat i njegov kub. Unesite ceo broj: 4 Kvadrat: 16 Kub: 64 Unesite ceo broj: -14 Kvadrat: 196 Kub: -2744 Zadatak 1.1.3 Napisati program koji za uneta dva cela broja ispisuje najpre unete vrednosti, a zatim i njihov zbir, razliku, proizvod, ceo deo pri deljenju prvog broja drugim brojem i ostatak pri deljenju prvog broja drugim brojem. Napomena: Pretpostaviti da je unos korektan, tj. da druga uneta vrednost nije 0. 1
1 Uvodni zadaci Unesi vrednost celobrojne promenljive x: 7 Unesi vrednost celobrojne promenljive y: 2 7 + 2 = 9 7-2 = 5 7 * 2 = 14 7 / 2 = 3 7 % 2 = 1 Unesi vrednost celobrojne promenljive x: -3 Unesi vrednost celobrojne promenljive y: 8-3 + 8 = 5-3 - 8 = -11-3 * 8 = -24-3 / 8 = 0-3 % 8 = -3 Zadatak 1.1.4 Napisati program koji pomaže kasirki da izračuna ukupan račun ako su poznate cene dva kupljena artikla. Napomena: Pretpostaviti da su cene artikala pozitivni celi brojevi i da je unos korektan. Unesi cenu prvog artikla: 173 Unesi cenu drugog artikla: 2024 Ukupna cena iznosi 2197 Unesi cenu prvog artikla: 384 Unesi cenu drugog artikla: 555 Ukupna cena iznosi 939 Zadatak 1.1.5 Napisati program koji za unetu količinu jabuka u kilogramima i unetu cenu po kilogramu ispisuje ukupnu vrednost date količine jabuka. Napomena: Pretpostaviti da je cena jabuka pozitivan ceo broj i da je unos korektan. Unesite kolicinu jabuka (u kg): 6 Unesite cenu (u dinarima): 82 Molimo platite 492 dinara. Unesite kolicinu jabuka (u kg): 10 Unesite cenu (u dinarima): 93 Molimo platite 930 dinara. Zadatak 1.1.6 Napisati program koji pomaže kasirki da obračuna kusur koji treba da vrati kupcu. Za unetu cenu artikla, količinu artikla i iznos koji je kupac dao, program treba da ispiše vrednost kusura. Napomena: Pretpostaviti da su cene svih artikala pozitivni celi brojevi, kao i da su unete vrednosti ispravne, tj. da se može vratiti kusur. Unesite cenu, kolicinu i iznos: 132 2 500 Kusur je 236 dinara. Unesite cenu, kolicinu i iznos: 59 6 2000 Kusur je 1646 dinara. 2
1.1 Naredba izraza Zadatak 1.1.7 Napisati program koji za uneta vremena poletanja i sletanja aviona ispisuje dužinu trajanja leta. Napomena: Pretpostaviti da su poletanje i sletanje u istom danu kao i da su sve vrednosti ispravno unete. Unesite vreme poletanja: 8 5 Unesite vreme sletanja: 12 41 Duzina trajanja leta je 4 h i 36 min Unesite vreme poletanja: 13 20 Unesite vreme sletanja: 18 45 Duzina trajanja leta je 5 h i 25 min Zadatak 1.1.8 Date su dve celobrojne promenljive. Napisati program koji razmenjuje njihove vrednosti. Unesi dve celobrojne vrednosti: 5 7 pre zamene: x=5, y=7 posle zamene: x=7, y=5 Unesi dve celobrojne vrednosti: 237-592 pre zamene: x=237, y=-592 posle zamene: x=-592, y=237 Zadatak 1.1.9 Date su dve celobrojene promenljive a i b. Napisati program koji promenljivoj a dodeljuje njihovu sumu, a promenljivoj b njihovu razliku. Napomena: Ne koristiti pomoćne promenljive. Unesi dve celobrojne vrednosti: 5 7 Nove vrednosti su: a=12, b=-2 Unesi dve celobrojne vrednosti: 237-592 Nove vrednosti su: a=-355, b=829 Zadatak 1.1.10 Napisati program koji za uneti pozitivan trocifreni broj na standardni izlaz ispisuje njegove cifre jedinica, desetica i stotina. Napomena: Pretpostaviti da je unos ispravan. Unesi trocifreni broj: 697 jedinica 7, desetica 9, stotina 6 Unesi trocifreni broj: 504 jedinica 4, desetica 0, stotina 5 Zadatak 1.1.11 Napisati program koji za unetu cenu proizvoda ispisuje najmanji broj novčanica koje je potrebno izdvojiti prilikom plaćanja proizvoda. Na raspolaganju su novčanice od 5000, 2000, 1000, 500, 200, 100, 50, 20, 10 i 1 dinar. Napomena: Pretpostaviti da je cena proizvoda pozitivan ceo broj. 3
1 Uvodni zadaci Unesite cenu proizvoda: 8367 8367=1*5000+ 1*2000 +1*1000 +0*500 +1*200 +1*100 +1*50 +0*20 +1*10 +7*1 Unesite cenu proizvoda: 934 934=0*5000+ 0*2000 +0*1000 +1*500 +2*200 +0*100 +0*50 +1*20 +1*10 +4*1 Zadatak 1.1.12 Napisati program koji učitava pozitivan trocifreni broj sa standardnog ulaza i ispisuje broj dobijen obrtanjem njegovih cifara. Napomena: Pretpostaviti da je unos ispravan. Unesi trocifreni broj: 892 Obrnuto: 298 Unesi trocifreni broj: 230 Obrnuto: 32 Zadatak 1.1.13 broj: Napisati program koji za uneti pozitivan četvorocifreni (a) izračunava proizvod cifara (b) izračunava razliku sume krajnjih i srednjih cifara (c) izračunava sumu kvadrata cifara (d) izračunava broj koji se dobija ispisom cifara u obrnutom poretku (e) izračunava broj koji se dobija zamenom cifre jedinice i cifre stotine Napomena: Pretpostaviti da je unos ispravan. 4
1.1 Naredba izraza Unesite cetvorocifreni broj: 2371 Proizvod cifara: 42 Razlika sume krajnjih i srednjih: -7 Suma kvadrata cifara: 63 Broj u obrnutom poretku: 1732 Broj sa zamenjenom cifrom jedinica i stotina: 2173 Unesite cetvorocifreni broj: 3570 Proizvod cifara: 0 Razlika sume krajnjih i srednjih: -9 Suma kvadrata cifara: 83 Broj u obrnutom poretku: 753 Broj sa zamenjenom cifrom jedinica i stotina: 3075 Zadatak 1.1.14 Napisati program koji ispisuje broj koji se dobija izbacivanjem cifre desetica u unetom prirodnom broju. Unesite broj: 1349 Rezultat je: 139 Unesite broj: 825 Rezultat je: 85 Zadatak 1.1.15 Sa standardnog unosa se unosi pozitivan prirodan broj n i pozitivan dvocifreni broj m. Napisati program ispisuje broj dobijen umetanjem broja m između cifre stotina i cifre hiljada broja n. Napomena: Za neke ulazne podatke može se dobiti neočekivan rezultat zbog prekoračenja, što ilustruje test primer broj 2. Unesite pozitivan prirodan broj: 12345 Unesite pozitivan dvocifreni broj: 67 Novi broj je 1267345 Unesite pozitivan prirodan broj: 50000000 Unesite pozitivan dvocifreni broj: 12 Novi broj je 705044704 Zadatak 1.1.16 Napisati program koji učitava realnu vrednost izraženu u inčima, konvertuje tu vrednost u centimetre i ispisuje je zaokruženu na dve decimale. Uputstvo: Jedan inč ima 2.54 centimetra. 5
1 Uvodni zadaci Unesi broj inca: 4.69 4.69 in = 11.91 cm Unesi broj inca: 71.426 71.43 in = 181.42 cm Zadatak 1.1.17 Napisati program koji učitava dužinu izraženu u miljama, konvertuje tu vrednost u kilometre i ispisuje je zaokruženu na dve decimale. Uputstvo: Jedna milja ima 1.609344 kilometara. Unesi broj milja: 50.42 50.42 mi = 81.14 km Unesi broj milja: 327.128 327.128 mi = 526.46 km Zadatak 1.1.18 Napisati program koji učitava težinu izraženu u funtama, konvertuje tu vrednost u kilograme i ispisuje je zaokruženu na dve decimale. Uputstvo: Jedna funta ima 0.45359237 kilograma. Unesi broj funti: 2.78 2.78 lb = 1.26 kg Unesi broj funti: 89.437 89.437 lb = 40.57 kg Zadatak 1.1.19 Napisati program koji učitava temperaturu izraženu u farenhajtima, konvertuje tu vrednost u celzijuse i ispisuje je zaokruženu na dve decimale. Uputstvo: Veza između farenhajta i celzijusa je zadata narednom formulom F = 9 C 5 + 32 Unesi temperaturu u F: 100.93 100.93 F = 38.29 C Unesi temperaturu u F: 25.562 25.562 F = -3.58 C Zadatak 1.1.20 Napisati program koji za unete realne vrednosti a 11, a 12, a 21, a 22 ispisuje vrednost determinante matrice: [ ] a11 a 12 a 21 a 22 Pri ispisu vrednost zaokružiti na 4 decimale. 6
1.1 Naredba izraza Unesite brojeve: 1 2 3 4-2.0000 Unesite brojeve: -1 0 0 1-1.0000 Unesite brojeve: 1.5-2 3 4.5 12.7500 Unesite brojeve: 0.01 0.01 0.5 7 0.0650 Zadatak 1.1.21 Napisati program koji za unete realne vrednosti dužina stranica pravougaonika ispisuje njegov obim i površinu. Ispisati tražene vrednosti zaokružene na dve decimale. Napomena: Pretpostaviti da je unos ispravan. Unesite duzine stranica: 4.3 9.4 Obim: 27.40 Povrsina: 40.42 Unesite duzine stranica: 10.756 36.2 Obim: 93.91 Povrsina: 389.37 Zadatak 1.1.22 Napisati program koji za unetu realnu vrednost dužine poluprečnika kruga ispisuje njegov obim i površinu zaokružene na dve decimale. Napomena: Pretpostaviti da je unos ispravan. Unesite duzinu poluprecnika kruga: 4.2 Obim: 26.39, povrsina: 55.42 Unesite duzinu poluprecnika kruga: 14.932 Obim: 93.82, povrsina: 700.46 Zadatak 1.1.23 Napisati program koji za unetu realnu vrednost dužine stranice jednakostraničnog trougla ispisuje njegov obim i površinu zaokružene na dve decimale. Napomena: Pretpostaviti da je unos ispravan. Unesite duzinu stranice trougla: 5 Obim: 15.00 Povrsina: 10.82 Unesite duzinu stranice trougla: 2 Obim: 6.00 Povrsina: 1.73 Zadatak 1.1.24 Napisati program koji za unete realne vrednosti dužina stranica trougla ispisuje njegov obim i površinu zaokružene na dve decimale. 7
1 Uvodni zadaci Napomena: Pretpostaviti da je unos ispravan. Unesite duzine stranica trougla: 3 4 5 Obim: 12.00 Povrsina: 6.00 Unesite duzine stranica trougla: 4.3 9.7 8.8 Obim: 22.80 Povrsina: 18.91 Zadatak 1.1.25 Pravougaonik čije su stranice paralelne koordinatnim osama zadat je svojim realnim koordinatama suprotnih temena (gornje levo i donje desno teme). Napisati program koji ispisuje njegov obim i površinu zaokružene na dve decimale. Unesite koordinate gornjeg levog temena: 4.3 5.8 Unesite koordinate donjeg desnog temena: 6.7 2.3 Obim: 11.80 Povrsina: 8.40 Unesite koordinate gornjeg levog temena: -3.7 8.23 Unesite koordinate donjeg desnog temena: -0.56 2 Obim: 18.74 Povrsina: 19.56 Zadatak 1.1.26 Napisati program koji za tri uneta cela broja ispisuje njihovu artimetičku sredinu zaokruženu na dve decimale. Unesite tri cela broja: 11 5 4 Aritmeticka sredina unetih brojeva je 6.67 Unesite tri cela broja: 3-8 13 Aritmeticka sredina unetih brojeva je 2.67 Zadatak 1.1.27 Napisati program koji pomaže moleru da izračuna površinu zidova prostorije koju treba da okreči. Za unete dimenzije sobe u metrima (dužinu, širinu i visinu), program treba da ispiše površinu zidova za krečenje pod pretpostavkom da na vrata i prozore otpada oko 20%. Omogućiti i da na osnovu unete cene usluge po kvadratnom metru program izračuna ukupnu cenu krečenja. Sve realne vrednosti ispisati zaokružene na dve decimale. 8
1.1 Naredba izraza Unesite dimenzije sobe: 4 4 3 Unesite cenu po m2: 500 Moler treba da okreci 51.20 m2 Cena krecenja je 25600.00 Unesite dimenzije sobe: 13 17 3 Unesite cenu po m2: 475 Moler treba da okreci 320.80 m2 Cena krecenja je 152380.00 Zadatak 1.1.28 Napisati program koji za unete pozitivne prirodne brojeve x, p i c ispisuje broj koji se dobija ubacivanjem cifre c u broj x na poziciju p. Napomena: Podrazumevati da je unos ispravan, tj. da je broj p manji od ukupnog broja cifara broja x. Numeracija cifara počinje od nule, odnosno cifra najmanje težine nalazi se na nultoj poziciji. Uputstvo: Koristiti funkciju pow iz math.h biblioteke. Unesite redom x, p i c: 140 1 2 Rezultat je: 1420 Unesite redom x, p i c: 12345 2 9 Rezultat je: 123945 Zadatak 1.1.29 Napisati program koji za uneta dva cela broja a i b dodeljuje promenljivoj rezultat vrednost 1 ako važi uslov: a) a i b su različiti brojevi b) a i b su parni brojevi c) a i b su pozitivni brojevi, ne veći od 100 U suprotnom, promenljivoj rezultat dodeliti vrednost 0. Ispisati vrednost promenljive rezultat. Unesite dva cela broja: 4 8 a) rezultat=1 b) rezultat=1 c) rezultat=1 Unesite dva cela broja: 3-11 a) rezultat=1 b) rezultat=0 c) rezultat=0 Zadatak 1.1.30 njihov maksimum. Napisati program koji za uneta dva cela broja ispisuje 9
1 Uvodni zadaci Unesite dva cela broja: 19 256 Maksimum je 256 Unesite dva cela broja: -39 57 Maksimum je 57 Zadatak 1.1.31 njihov minimum. Napisati program koji za uneta dva cela broja ispisuje Unesite dva cela broja: 4 8 Minimum je 4 Unesite dva cela broja: -3-110 Minimum je -110 Zadatak 1.1.32 Napisati program koji za unete realne vrednosti promenljivih x i y ispisuje vrednost sledećeg izraza: zaokruženu na dve decimale. rez = min(x, y) + 0.5 1 + max 2 (x, y) Unesite dva realna broja: 5.7 11.2 Rezultat je: 0.05 Unesite dva realna broja: -9.34 8.99 Rezultat je: -0.11 10
2 Kontrola toka 2.1 Naredbe grananja Zadatak 2.1.1 Napisati program koji za dva uneta cela broja ispisuje njihov minimum. Unesite dva cela broja: 5 18 Minimum je 5. Unesite dva cela broja: 43-16 Minimum je -16. Zadatak 2.1.2 Napisati program koji za dva uneta cela broja ispisuje njihov maksimum. Unesite dva cela broja: 141 67 Maksimum je 141. Unesite dva cela broja: -893-54 Maksimum je -54. Zadatak 2.1.3 Napisati program koji za uneti realan broj ispisuje njegovu apsolutnu vrednost zaokruženu na dve decimale. Unesite jedan realan broj: 7.42 Njegova apsolutna vrednost je: 7.42 Unesite jedan realan broj: -562.428 Njegova apsolutna vrednost je: 562.43 11
2 Kontrola toka Unesite jedan realan broj: 0 Njegova apsolutna vrednost je: 0.00 Unesite jedan realan broj: 52 Njegova apsolutna vrednost je: 52.00 Zadatak 2.1.4 Napisati program koji za uneti ceo broj ispisuje njegovu recipročnu vrednost zaokruženu na četiri decimale. Unesite jedan ceo broj: 22 Reciprocna vrednost unetog broja: 0.0455. Unesite jedan ceo broj: -9 Reciprocna vrednost unetog broja: -0.1111. Unesite jedan ceo broj: 0 Nedozvoljeno deljenje nulom. Unesite jedan ceo broj: 57298 Reciprocna vrednost unetog broja: 0.0000. Zadatak 2.1.5 Napisati program koji učitava tri cela broja i ispisuje zbir pozitivnih. Unesite tri cela broja: 1 3-6 Suma unetih pozitivnih brojeva: 4 Unesite tri cela broja: -15 81 0 Suma unetih pozitivnih brojeva: 81 Unesite tri cela broja: -719-48 -123 Suma unetih pozitivnih brojeva: 0 Unesite tri cela broja: 16 2 576 Suma unetih pozitivnih brojeva: 594 Zadatak 2.1.6 U prodavnici je organizovana akcija da svaki kupac dobije najjeftiniji od tri artikla za jedan dinar. Napisati program koji za unete cene tri artikla izračunava ukupnu cenu, kao i koliko dinara se uštedi zahvaljujući popustu. Napomena: Pretpostaviti da su cene artikala pozitivni celi brojevi. Unesite cene tri artikla: 35 125 97 Cena sa popustom: 223 Usteda: 34 Unesite cene tri artikla: 1034 15 25 Cena sa popustom: 1060 Usteda: 14 12
2.1 Naredbe grananja Unesite cene tri artikla: 500 500 500 Cena sa popustom: 1001 Usteda: 499 Unesite cene tri artikla: 247 133 126 Cena sa popustom: 381 Usteda: 125 Zadatak 2.1.7 Napisati program koji za uneti četvorocifreni broj ispisuje njegovu najveću cifru. Unesite broj: 6835 Najveca cifra je: 8 Unesite broj: 238 Greska: Niste uneli cetvorocifren broj! Unesite broj: 7777 Najveca cifra je: 7 Unesite broj: -2002 Najveca cifra je: 2 Zadatak 2.1.8 Napisati program koji za uneto vreme (broj sati iz intervala [0, 24) i broj minuta iz intervala [0, 60)) ispisuje koliko je sati i minuta ostalo do ponoći. Unesite vreme (broj sati u itervalu [0,24), broj minuta u intervalu [0,60)): 18 19 Do ponoci je ostalo 5 sati i 41 minuta. Unesite vreme (broj sati u itervalu [0,24), broj minuta u intervalu [0,60)): 23 7 Do ponoci je ostalo 0 sati i 53 minuta. Unesite vreme (broj sati u itervalu [0,24), broj minuta u intervalu [0,60)): 24 20 Neispravan unos. Unesite vreme (broj sati u itervalu [0,24), broj minuta u intervalu [0,60)): 14 0 Do ponoci je ostalo 10 sati i 0 minuta. Zadatak 2.1.9 Napisati program koji za učitani karakter ispisuje uneti karakter i njegov ASCII kod. Ukoliko je uneti karakter malo (veliko) slovo, ispisati i odgovarajuće veliko (malo) slovo i njegov ASCII kod. 13
2 Kontrola toka Unesite karakter: 0 Uneti karakter: 0, njegov ASCII kod: 48 Unesite karakter:? Uneti karakter:?, njegov ASCII kod: 63 Unesite karakter: A Uneti karakter: A, njegov ASCII kod: 65 odgovarajuce malo slovo: a, njegov ASCII kod: 97 Unesite karakter: v Uneti karakter: v, njegov ASCII kod: 118 odgovarajuce veliko slovo: V, njegov ASCII kod: 86 Zadatak 2.1.10 Napisati program koji za unetih pet karaktera ispisuje koliko je među njima malih slova. Unesite karaktere: A u E f h Broj malih slova: 3 Unesite karaktere: k L M 9 o Broj malih slova: 2 Zadatak 2.1.11 Program učitava pet karaktera. Napisati koliko se puta pojavilo veliko ili malo slovo a. Unesite karaktere: abcae 2 Unesite karaktere: aa4a_ 3 Unesite karaktere: aaaaa 5 Unesite karaktere: B6(vV 0 Zadatak 2.1.12 Program učitava pet karaktera. Ispisati koliko puta su se pojavile cifre. 14
2.1 Naredbe grananja Unesite karaktere: A1cA3 2 Unesite karaktere: 2a45_ 2 Unesite karaktere: 43986 5 Unesite karaktere: B6(vV 1 Zadatak 2.1.13 prestupna. Napisati program koji za unetu godinu ispisuje da li je Unesite godinu: 2016 Godina je prestupna. Unesite godinu: 1997 Godina nije prestupna. Unesite godinu: 2000 Godina je prestupna. Unesite godinu: 1900 Godina nije prestupna. Zadatak 2.1.14 Broj je Armstrongov ako je jednak zbiru kubova svojih cifara. Napisati program koji za dati trocifren broj proverava da li je Armstrongov. Unesite broj: 153 Broj je Amstrongov. Unesite broj: 111 Broj nije Amstrongov. Unesite broj: 84 Greska: Niste uneli trocifren broj! Unesite broj: 371 Broj je Amstrongov. Zadatak 2.1.15 Napisati program koji ispisuje proizvod parnih cifara unetog četvorocifrenog broja. 15
2 Kontrola toka Unesite cetvorocifreni broj: 8123 Proizvod parnih cifara: 16 Unesite cetvorocifreni broj: 3579 Nema parnih cifara. Unesite cetvorocifreni broj: -1234 Proizvod parnih cifara: 8 Unesite broj: 288 Broj nije cetvorocifren! Zadatak 2.1.16 Napisati program koji učitava četvorocifreni broj i ispisuje broj koji se dobija kada se unetom broju razmene najmanja i najveća cifra. Napomena: U slučaju da se najmanja ili najveća cifra pojavljuju na više pozicija, uzeti prvo pojavljivanje. Unesite broj: 2863 8263 Unesite broj: 247 Broj nije cetvorocifren! Unesite broj: 1192 9112 Unesite broj: -4239-4932 Zadatak 2.1.17 Napisati program koji ispituje da li se tačke A(x 1, y 1 ) i B(x 2, y 2 ) nalaze u istom kvadrantu i ispisuje odgovor DA ili NE. Zadatak 2.1.18 Napisati program koji ispituje da li se tačke A(x 1, y 1 ), B(x 2, y 2 ) i C(x 3, y 3 ) nalaze na istoj pravoj i ispisuje odgovor DA ili NE. Zadatak 2.1.19 Napisati program za rad sa intervalima. Za dva intervala realne prave [a1, b1] i [a2, b2], program treba da odredi: 16 a) dužinu zajedničkog dela ta dva intervala b) najveći interval sadržan u datim intervalima (presek), a ako on ne postoji dati odgovarajuću poruku. c) dužinu realne prave koju pokrivaju ta dva intervala d) najmanji interval koji sadrži date intervale.
2.1 Naredbe grananja Unesite redom a1, b1, a2 i b2: 2 9 4 11 Duzina zajednickog dela: 5 Presek intervala: [4,9] Zajednicka duzina intervala: 9 Najmanji interval: [2, 11] Unesite redom a1, b1, a2 i b2: 1 2 10 13 Duzina zajednickog dela: 0 Presek intervala: prazan Zajednicka duzina intervala: 4 Najmanji interval: [1, 13] Zadatak 2.1.20 Napisati program koji za uneti ceo broj x ispisuje njegov znak, tj da li je broj jednak nuli, manji od nule ili veći od nule. Unesite jedan ceo broj: 17 Broj je veci od nule. Unesite jedan ceo broj: 0 Broj je jednak nuli. Unesite jedan ceo broj: -586 Broj je manji od nule. Unesite jedan ceo broj: 62 Broj je veci od nule. Zadatak 2.1.21 Napisati program koji za unete koeficijente kvadratne jednačine ispisuje koliko realnih rešenja jednačina ima i ako ih ima, ispisuje ih zaokružene na dve decimale. Unesite koeficijente A, B i C: 1 3 2 Jednacina ima dva razlicita realna resenja: -1.00 i -2.00 Unesite koeficijente A, B i C: 1 1 1 Jednacina nema resenja. Zadatak 2.1.22 Napisati program koji za uneti četvorocifreni broj proverava da li su njegove cifre uređene rastuće, opadajuće ili nisu uređene i štampa odgovarajuću poruku. Unesite cetvorocifreni broj: 1389 Cifre su uredjene neopadajuce. Unesite cetvorocifreni broj: -9622 Cifre su uredjene nerastuce. 17
2 Kontrola toka Unesite cetvorocifreni broj: 6792 Cifre nisu uredjene. Unesite cetvorocifreni broj: 88 Uneti broj nije cetvorocifren. Zadatak 2.1.23 Napisati program koji učitava karakter i: a) ako je c malo slovo, ispisuje odgovarajuće veliko b) ako je c veliko slovo, ispisuje odgovarajuće malo c) ako je c cifra, ispisuje poruku cifra d) u ostalim slučajevima, ispisuje karakter c između dve zvezdice. Unesite karakter: K k Unesite karakter: 8 cifra Unesite karakter: > *>* Unesite karakter: o O Zadatak 2.1.24 U nizu 12345678910111213...9899 ispisani su redom brojevi od 1 do 99. Napisati program koji za uneti ceo broj k (1 k 189) ispisuje cifru koja se nalazi na k-toj poziciji datog niza. Unesite k: 13 Na 13-toj poziciji je broj 1. Unesite k: 105 Na 105-toj poziciji je broj 7. Zadatak 2.1.25 Data je funkcija f(x) = 2 cos(x) x 3. Napisati program koji za učitanu vrednost realne promenljive x i vrednost celobrojne promenljive k koje može biti 1, 2 ili 3 izračunava vrednost funkcije F (k, x) = f(f(f(...f(x))) gde je funkcija f primenjena k-puta i ispisuje je zaokruženu na dve decimale. U slučaju neispravnog ulaza, odštampati odgovarajuću poruku o grešci. 18
2.1 Naredbe grananja Unesite redom x i k: 2.31 2 F(2.31, 2)=2557.52 Unesite redom x i k: 12 1 F(12, 1)=-1726.31 Unesite redom x i k: 2.31 0 Greska: nedozvoljena vrednost za k Unesite redom x i k: 1 3 F(1, 3)=-8.74 Zadatak 2.1.26 Napisati program koji za uneti redni broj dana u nedelji ispisuje ime odgovarajućeg dana. U slučaju pogrešnog unosa ispisati odgovarajuću poruku. Unesite broj: 4 U pitanju je: cetvrtak Unesite broj: 7 U pitanju je: nedelja Unesite broj: 8 Greska: nedozvoljeni unos! Unesite broj: 2 U pitanju je: utorak Zadatak 2.1.27 samoglasnik. Napisati program koji za uneti karakter ispituje da li je Unesite jedan karakter: A Uneti karakter je samoglasnik. Unesite jedan karakter: i Uneti karakter je samoglasnik. Unesite jedan karakter: f Uneti karakter nije samoglasnik. Unesite jedan karakter: 4 Uneti karakter nije samoglasnik. Zadatak 2.1.28 Napisatiti program koji učitava dva cela broja i jedan od karaktera +, -, *, / ili % i ispisuje vrednost izraza dobijenog primenom date operacije na date argumente. U slučaju pogrešnog unosa ispisati odgovarajuću poruku. 19
2 Kontrola toka Unesite operator i dva cela broja: - 8 11 Rezultat je: -3 Unesite operator i dva cela broja: / 14 0 Greska: deljenje nulom nije dozvoljeno! Unesite operator i dva cela broja:? 5 7 Greska: nepoznat operator! Unesite operator i dva cela broja: / 19 5 Rezultat je: 3 Zadatak 2.1.29 Napisati program koji za uneti dan i mesec ispisuje godišnje doba kojem pripadaju. Napomena: Podrazumevati da je unos korektan. Unesite dan i mesec: 14 10 jesen Unesite dan i mesec: 2 8 leto Unesite dan i mesec: 27 2 zima Unesite dan i mesec: 19 5 prolece Zadatak 2.1.30 Napisati program koji za unetu godinu i mesec ispisuje naziv meseca kao i koliko dana ima u tom mesecu te godine. Zadatak 2.1.31 Napisati program koji za uneti datum u formatu dan.mesec.godina. proverava da li je korektan. Unesite datum: 25.11.1983. Datum je korektan! Unesite datum: 1.17.2004. Datum nije korektan! Zadatak 2.1.32 Napisati program koji za korektno unet datum u formatu dan.mesec.godina. ispisuje datum prethodnog dana. Unesite datum: 30.4.2008. Prethodni datum: 29.4.2008. Unesite datum: 1.12.2005. Prethodni datum: 30.11.2005. 20
2.1 Naredbe grananja Zadatak 2.1.33 Napisati program koji za korektno unet datum u formatu dan.mesec.godina. ispisuje datum narednog dana. Unesite datum: 30.4.2008. Naredni datum: 1.5.2008. Unesite datum: 1.12.2005. Naredni datum: 2.12.2005. Zadatak 2.1.34 Korisnik unosi tri cela broja: P, Q i R. Nakon toga unosi i dva karaktera, op1 i op2. Ovi karakteri predstavljaju operacije nad unetim brojevima i imaju naredno značenje: karakter k predstavlja logičku konjukciju karakter d predstavlja logičku disjunkciju karakter m predstavlja relaciju manje karakter v predstavlja relaciju veće Program treba da sračuna vrednost izraza P op1 Q op2 R i da ga ispiše. Unesite tri cela broja: 0 1 2 Unesite dva karaktera cela broja: 1 k m Unesite tri cela broja: -3-1 0 Unesite dva karaktera cela broja: 0 d k * Zadatak 2.1.35 Program učitava jedan karakter i osam realnih brojeva koji predstavljaju koordinate četiri tačke: A(x 1, y 1 ), B(x 2, y 2 ), C(x 3, y 3 ), D(x 4, y 4 ). Na osnovu unetog karaktera ispisuje se odgovarajuća poruka na standardni izlaz: ukoliko je uneti karakter k - proverava da li su date tačke temena pravougaonika čije su stranice paralelne koordinatnim osama i u slučaju da jesu, ispisuje vrednost obima datog pravougaonika. Možemo podrazumevati da će korisnik koordinate tačaka unosi redom A, B, C, D, pri čemu ABCD opisuje pravougaonik čije su stranice AB, BC, CD, DA, a dijagonale AC i BD. Na primer, tačke (1, 1), (2, 1), (2, 2), (1, 2) čine pravougaonik čije su stranice paralelne koordinatnim osama i čiji je obim 4 a tačke (1, 1), (2, 2), (3, 3), (4, 4) ne čine pravougaonik. ukoliko je uneti karakter h - proverava da li su unete tačke kolinearne i ukoliko jesu, ispisuje jednačinu prave kojoj pripadaju. Na primer, tačke (1, 2), (2, 3), (3, 4), (4, 5) su kolinearne i pripadaju pravoj y = x + 1, tačke 21
2 Kontrola toka (1, 1), (1, 2), (1, 3), (1, 4) su kolinearne i pripadaju pravoj x = 1, a tačke (1, 1), (2, 1), (2, 2), (1, 2) nisu kolinearne. ukoliko je uneti karakter j - Kramerovim pravilom proverava da li je sistem jednačina x 1 p+x 2 q = x 4 x 3, y 1 p+y 2 q = y 4 y 3 određen, neodređen ili nema rešenja, i u slučaju da je određen ispisuje rešenja. Zadatak 2.1.36 Polje šahovske table se definiše parom prirodnih brojeva ne većih od 8: prvi se odnosi na red, drugi na kolonu. Ako su dati takvi parovi, napisati program koji proverava: a) da li su polja (k, m) i (l, n) iste boje b) da li kraljica sa (k, l) ugrožava polje (m, n) c) da li konj sa (k, l) ugrožava polje (m, n) 2.2 Petlje Zadatak 2.2.1 Napisati program koji 5 puta ispisuje tekst Mi volimo da programiramo. Mi volimo da programiramo. Mi volimo da programiramo. Mi volimo da programiramo. Mi volimo da programiramo. Mi volimo da programiramo. Zadatak 2.2.2 Nikola želi da obraduje baku i da joj kupi jedan poklon u radnji. On na raspolaganju ima m novaca. U radnji se nalazi n artikala i zanima ga koliko ima artikala u radnji čija cena je manja ili jednaka m. Napisati program koji pomaže Nikoli da brzo odrediti broj atikala. Program učitava realan pozitivan broj m, ceo pozitivan broj n i n realnih pozitivnih brojeva različitih od 0. Ispisati koliko artikala ima manju ili jednaku cenu od m. U slučaju greške ispisati odgovarajuću poruku. 22
2.2 Petlje Unesite broj m: 12.37 Unesite broj n: 5 Unesite n brojeva: 11 54.13 6 13 8 3 Unesite broj m: 2 Unesite broj n: 4 Unesite n brojeva: 1 11 4.32 3 1 Unesite broj m: 2 Unesite broj n: -4 Broj artikala ne moze biti negativan. Unesite broj m: 30 Unesite broj n: 4 Unesite n brojeva: 67-100 23 98 Cena ne moze biti negativna. Zadatak 2.2.3 Napisati program koji učitava cele brojeve sve dok se ne unese nula. Nakon toga ispisati proizvod onih unetih brojeva koji su pozitivni. Unesite brojeve: -87 12-108 -13 56 0 Proizvod pozitivnih unetih brojeva je 672. Unesite brojeve: -5-200 -43 0 Nisu uneseni pozitivni brojevi. Unesite brojeve: 0 Nisu uneseni brojevi. Zadatak 2.2.4 Napisati program koji za pozitivan ceo broj proverava i ispisuje da li se cifra 5 nalazi u njegovom zapisu. Unesite broj: 1857 Cifra 5 se nalazi u zapisu! Unesite broj: 84 Cifra 5 se ne nalazi u zapisu! Unesite broj: -235515 Cifra 5 se nalazi u zapisu! Zadatak 2.2.5 Program učitava cele brojeve sve do unosa broja nula 0. Napisati program koji izračunava i ispisuje aritmetičku sredinu unetih brojeva na četiri decimale. Unesite brojeve: 8 5 6 3 0 Aritmeticka sredina: 5.5000 Unesite brojeve: 762-12 800 2010-356 899-101 0 Aritmeticka sredina: 571.7143 23
2 Kontrola toka Unesite brojeve: 0 Nisu uneseni brojevi. Zadatak 2.2.6 U prodavnici se nalaze artikala čije cene su realni pozitivni brojevi. Program unosi cene artikala sve do unosa broja nula 0. Napisati program koji izračunava i ispisuje prosečnu vrednost cena u radnji. Unesite cene: 8 5.2 6.11 3 0 Prosecna cena je: 5.5775 Unesite cene: 6.32-9 Cena ne moze biti negativana. Unesite cene: 0 Nisu unesene cene. Zadatak 2.2.7 Program učitava ceo pozitivan broj n, a potom n realnih brojeva. Odrediti koliko puta je prilikom unosa došlo do promene znaka. Ispisati dobijenu vrednost. Unesite broj n: 10 Unesite brojeve: 7.82 4.3-1.2 56.8-3.4-72.1 8.9 11.2-11.2-102.4 Broj promena je 5. Unesite broj n: 5 Unesite brojeve: -23.8-11.2 0 5.6 7.2 Broj promena je 1. Unesite broj n: -6 Neispravan unos. Unesite broj n: 0 Broj promena je 0. Zadatak 2.2.8 U prodavnici se nalazi n artikala čije cene su realni brojevi. Napisati program koji učitava n, a potom i cenu svakog od n artikala i određuje i ispisuje najmanju cenu. 24
2.2 Petlje Unesite broj artikla: 6 Unesite artikle: 12 3.4 90 100.53 53.2 12.8 Minimalna cena je: 3.400000 Unesite broj artikla: 3 Unesite artikle: 4-8 92 Cena ne moze biti negativna. Unesite broj artikla: -9 Neispravan unos. Zadatak 2.2.9 Program učitava ceo pozitivan broj n, a zatim i n celih brojeva. Napisati program koji ispisuje broj sa najvećom cifrom desetica. Ukoliko ima više takvih, ispisati prvi. Unesite broj n: 5 Unesite brojeve: 18 365 25 1 78 Broj sa najvecom cifrom desetica je 78. Unesite broj n: 8 Unesite brojeve: 14 1576-1267 -89 109 122 306 918 Broj sa najvecom cifrom desetica je -89. Unesite broj n: -12 Neispravan unos. Zadatak 2.2.10 Program učitava ceo pozitivan broj n, a zatim i n celih brojeva. Napisati program koji ispisuje broj sa najvećim brojem cifara. Ukoliko ima više takvih, ispisati prvi. Unesite broj n: 5 Unesite n brojeva: 18 365 25 1 78 Najvise cifara ima broj 365. Unesite broj n: 7 Unesite n brojeva: 3 892 18 21 639 742 85 Najvise cifara ima broj 892. Zadatak 2.2.11 Program učitava ceo pozitivan broj n, a zatim i n celih brojeva. Napisati program koji ispisuje broj sa najvećom vodećom cifrom. Vodeća cifra je cifra najveće težine u zapisu broja. Ukoliko ima više takvih, ispisati prvi. Unesite broj n: 5 Unesite n brojeva: 8 964 32 511 27 Broj sa najvecom vodecom cifrom je 964. Unesite broj n: 3 Unesite n brojeva: 41 669 8 Broj sa najvecom vodecom cifrom je 8. 25
2 Kontrola toka Zadatak 2.2.12 Vršna su merenja nadmorskih visina na određenom delu teritorije i naučnike zanima razlika između najveće i najmanje nadmorske visine. Napisati program koji učitava realne brojeve sve do unosa 0 koji označavaju nadmorske visine i ispisuje razliku najveće i najmanje nadmorske visine. Unesite brojeve: 8 6 5 2 11 7 0 Razlika: 9 Unesite brojeve: 8-1 8 6 0 Razlika: 9 Zadatak 2.2.13 Program učitava cele pozitivane brojeve n (n > 1) i d, a zatim i n celih brojeva. Napisati program koji izračunava koliko ima parova uzastopnih brojeva među unetim brojevima koji se nalaze na rastojanju d. Rastojanje između brojeva je definisano sa d(x, y) = y x. Ispisati rezultat. Unesite brojeve n i d: 5 2 Unesite n brojeva: 2 3 5 1-1 Broj parova: 2 Unesite brojeve n i d: 10 5 Unesite n brojeva: -3 6 11-20 -25-8 42 37 1 6 Broj parova: 4 Zadatak 2.2.14 Napisati program koji uneti prirodan broj transformiše tako što svaku parnu cifru u zapisu broja uveća za jedan. Ispisati novodobijeni broj. Unesite broj: 2417 3517 Unesite broj: 138 139 Unesite broj: 59 59 Zadatak 2.2.15 Napisati program koji formira i ispisuje broj koji se dobija izbacivanjem svake druge cifre polaznog celog broja, počevši od krajnje desne cifre. Unesite broj: 21854 284 Unesite broj: 18 8 26
2.2 Petlje Unesite broj: 1 1 Unesite broj: -67123-613 * Zadatak 2.2.16 Napisati program koji na osnovu unetog prirodnog broja formira i ispisuje broj koji se dobija izbacivanjem cifara koje su jednake zbiru svojih suseda. Unesite broj: 28631 2631 Unesite broj: 440 40 Unesite broj: -5 Neispravan unos. * Zadatak 2.2.17 Broj je palindrom ukoliko se isto čita i sa leve i sa desne strane. Napisati program koji učitava prirodan broj i proverava da li je učitani broj palindrom. Unesite broj: 25452 Broj je palindrom! Unesite broj: 895 Broj nije palindrom! Unesite broj: 5 Broj je palindrom! Zadatak 2.2.18 Fibonačijev niz počinje ciframa 1 i 1, a svaki član se dobija zbirom prethodna dva. Napisati program koji učitava ceo prirodan broj n i određuje i ispisuje n-ti član Fibonačijevog niza. Unesite ceo broj: 10 Trazeni broj je: 55 Unesite ceo broj: -100 Neispravan unos. Pozicija u Fibonacijevom nizu mora biti pozitivan broj koji nije 0! Unesite ceo broj: 78 Trazeni broj je: 375819880 Unesite ceo broj: 20 Trazeni broj je: 6765 27
2 Kontrola toka * Zadatak 2.2.19 Niz prirodnih brojeva formira se prema sledećem pravilu: { a n2 ako je a a n+1 = n parno 3 a n+1 2 ako je a n neparno Napisati program koji za uneti početni član niza a 0 (ceo pozitivan broj) štampa niz brojeva sve do onog člana niza koji je jednak 1. Unesite ceo broj: 56 56 28 14 7 11 17 26 13 20 10 5 8 4 2 1 Unesite ceo broj: -48 Nekorektan unos. Broj mora biti pozitivan. Unesite ceo broj: 67 67 101 152 76 38 19 29 44 22 11 17 26 13 20 10 5 8 4 2 1 Unesite ceo broj: 33 33 50 25 38 19 29 44 22 11 17 26 13 20 10 5 8 4 2 1 * Zadatak 2.2.20 Papir A 0 ima površinu 1m 2 i odnos stranica 1 : 2. Papir A 1 dobija se podelom papira A 0 po dužoj ivici. Papir A 2 dobija se podelom A 1 papira po dužoj ivici itd. Napisati program koji za uneti prirodan broj k ispisuje dimenzije papira A k u milimetrima. Rezultat ispisati kao celobrojne vrednosti. Unesite format papira: 4 210 297 Unesite format papira: 3 297 420 Unesite format papira: 7 74 105 Unesite format papira: 9 37 52 Zadatak 2.2.21 Napisati program koji učitava karaktere dok se ne unese karakter tačka, i ako je karakter malo slovo ispisuje odgovarajuće veliko, ako je karakter veliko slovo ispisuje odgovarajuće malo, a u suprotnom ispisuje isti karakter kao i uneti. Danas je Veoma Lep DAN. danas JE veoma lep dan PROGRAMIRANJE 1 je zanimljivo!. programiranje 1 JE ZANIMLJIVO! 28
2.2 Petlje Zadatak 2.2.22 Napisati program koji učitava karaktere sve do kraja ulaza, a potom ispisuje broj velikih slova, broj malih slova, broj cifara, broj belina i zbir unetih cifara. Tekst sa brojevima: 124, -8900, 23... velika: 1, mala: 15, cifre: 9, beline: 5 suma cifara: 29 NEMA cifara! velika: 4, mala: 6, cifre: 0, beline: 1 suma cifara: 0 Zadatak 2.2.23 Program učitava ceo pozitivan broj n, a potom i n karaktera. Za svaki od samoglasnika ispisati koliko puta se pojavio među unetim karakterima. Ne praviti razliku između malih i velikih slova. Unesite broj n: 5 Unesite n karaktera: uabao Samoglasnik a: 2 Samoglasnik e: 0 Samoglasnik i: 0 Samoglasnik o: 1 Samoglasnik u: 1 Unesite broj n: 7 Unesite n karaktera: jk+eeae Samoglasnik a: 1 Samoglasnik e: 3 Samoglasnik i: 0 Samoglasnik o: 0 Samoglasnik u: 0 Zadatak 2.2.24 Program učitava ceo broj n, a zatim i n karaktera. Napisati program koji proverava da li se od unetih karaktera može napisati reč Zima. Unesite broj n: 4 Unestite 1. karakter: + Unestite 2. karakter: o Unestite 3. karakter: Z Unestite 4. karakter: j Ne moze se napisati rec Zima. Unesite broj n: 10 Unestite 1. karakter: i Unestite 2. karakter: 9 Unestite 3. karakter: 0 Unestite 4. karakter: p Unestite 5. karakter: a Unestite 6. karakter: Z Unestite 7. karakter: o Unestite 8. karakter: m Unestite 9. karakter: M Unestite 10. karakter: - Moze se napisati rec Zima. Zadatak 2.2.25 Napisati program koji učitava ceo pozitivan broj n i ispisuje vrednost sume kubova brojeva od 1 do n, odnosno s = 1 + 2 3 + 3 3 +... + n 3. U slučaju greške pri unosu podataka ispisati odgovarajuću poruku. 29
2 Kontrola toka Unesite pozitivan ceo broj: 14 Suma kubova od 1 do 14: 11025 Unesite pozitivan ceo broj 25 Suma kubova od 1 do 25: 105625 Zadatak 2.2.26 Napisati program koji učitava ceo pozitivan broj n i ispisuje sumu kubova, s = 1 + 2 3 + 3 3 +... + k 3, za svaku vrednost k = 1,..., n.. U slučaju greške pri unosu podataka ispisati odgovarajuću poruku. Unesite pozitivan ceo broj: 5 i=1, s=1 i=2, s=9 i=3, s=36 i=4, s=100 i=5, s=225 Unesite pozitivan ceo broj 8 i=1, s=1 i=2, s=9 i=3, s=36 i=4, s=100 i=5, s=225 i=6, s=441 i=7, s=784 i=8, s=1296 Zadatak 2.2.27 Program učitava realan broj x i ceo pozitivan broj n. Napisati program koji izračunava i ispisuje sumu S = x+2 x 2 +3 x 3 +...+n x n. Unesite redom brojeve x i n: 2 3 S=34.000000 Unesite redom brojeve x i n: 1.5 5 S=74.343750 Zadatak 2.2.28 Program učitava realan broj x i ceo pozitivan broj n. Napisati program koji izračunava i ispisuje sumu S = 1 + 1 x + 1 x 2 +... 1 x n. Unesite redom brojeve x i n: 2 4 S=1.937500 Unesite redom brojeve x i n: 1.8 6 S=2.213249 * Zadatak 2.2.29 Napisati program koji učitava realane brojeve x i eps i sa zadatom tačnošću eps izračunava i ispisuje sumu S = 1 + x + x2 2! + x3 3! +.... Izračunati sumu u odnosu na tačnost eps znači uporediti poslednji član sume sa eps i ukoliko je taj poslednji član manji od eps prekinuti dalja izračunavanja. Uputstvo: Prilikom računanja sume koristiti prethodni izračunati član sume u 30
2.2 Petlje računanju sledećeg člana sume. Naime, ako je izračunat član sume xn n! na osnovu njega se lako može dobiti član xn+1 (n+1)!. Nikako ne računati stepen i faktorijel odvojeno zbog neefikasnosti takvog rešenja i zbog mogućnosti prekoračenja. Unesite x: 2 Unesite tacnost eps: 0.001 S=7.388713 Unesite x: 3 Unesite tacnost eps: 0.01 S=20.079666 * Zadatak 2.2.30 Napisati program koji učitava realane brojeve x i eps i sa zadatom tačnošću eps izračunava i ispisuje sumu S = 1 x+ x2 2! x3 3! + x4 4! x5 5!.... Napomena: Voditi računa o efikasnosti rešenja i o mogućnosti prekoračenja. Unesite x: 3 Unesite tacnost eps: 0.000001 S=0.049787 Unesite x: 3.14 Unesite tacnost eps: 0.01 S=0.049072 Zadatak 2.2.31 Napisati program koji učitava realan broj x i prirodan broj n izračunava sumu S = (1+cos(x)) (1+cos(x 2 ))... (1+cos(x n )). Napomena: Voditi računa o efikasnosti rešenja. Unesite redom brojeve x i n: 3.4 5 Proizvod = 0.026817 Unesite redom brojeve x i n: 12 8 Proizvod = 2.640565 * Zadatak 2.2.32 Napisati program koji učitava ceo prirodan broj n i ispisuje vrednost razlomka 1 1 + 1 2+ 1 3+ 1 4+ 1...+ 1 (n 1)+ 1 n. Unesite prirodan broj: 4 Razlomak = 0.697674 Unesite prirodan broj: 20 Razlomak = 0.697775 Unesite prirodan broj: 0 Neispravan unos. 31
2 Kontrola toka * Zadatak 2.2.33 Napisati program koji računa sumu 1 x2 2! + x4 x2n... + ( 1)n 4! (2n)!. za unete cele brojeve x i n. Napomena: Voditi računa o efikasnosti rešenja i o mogućnosti prekoračenja. Unesite x i n: 5.6 8 S=0.735084 Unesite x i n: 14.32 11 S=17273.136719 Unesite prirodan broj: -6 Neispravan unos. * Zadatak 2.2.34 Program učitava ceo pozitivan broj n veći od 0. Napisati program koji računa proizvod S = (1 + 1 2! )(1 + 1 3! )... (1 + 1 n! ). U slučaju greške pri unosu podataka ispisati odgovarajuću poruku. Napomena: Voditi računa o efikasnosti rešenja i o mogućnosti prekoračenja. Unesite broj n: 5 1.838108 Unesite broj n: 7 1.841026 Unesite broj n: 0 Neispravan unos. Unesite broj n: 10 1.841077 * Zadatak 2.2.35 Program učitava ceo pozitivan neparan broj n. Napisati program koji za uneto n izračunava: S = 1 3 5 1 3 5 7 + 1 3 5 7 9 1 3 5 7 9 11 +... ( 1) n 1 2 +1 1 3... n. U slučaju greške pri unosu podataka ispisati odgovarajuću poruku. Napomena: Voditi računa o efikasnosti rešenja i o mogućnosti prekoračenja. 32
2.2 Petlje Unesite broj n: 9 855 Unesite broj n: 11-9540 Unesite broj n: 20 Neispravan unos Unesite broj n: -3 Neispravan unos. Zadatak 2.2.36 Program učitava realne brojeve x i a i ceo pozitivan broj n veći od 0. Napisati program koji izračunava: ((... (((x + a) 2 + a) 2 + a) 2 +... a) 2. }{{} n U slučaju greške pri unosu podataka ispisati odgovarajuću poruku. Unesite dva relana broja x i a:: 3.2 0.2 Unesite prirodan broj: 5 Izraz = 135380494030332048.000000 Unesite dva relana broja x i a:: 2 1 Unesite prirodan broj: 3 Izraz = 10201.000000 Unesite dva relana broja x i a:: 2.6 0.3 Unesite prirodan broj: 3 Izraz = 5800.970129 Unesite dva relana broja x i a:: 5.4 7 Unesite prirodan broj: -2 Neispravan unos. Zadatak 2.2.37 Za unetu pozitivnu celobrojnu vrednost n napisati programe koji ispisuju odgovarajuće brojeve. Pretpostaviti da je unos korektan. (a) Napisati program koji za unetu pozitivnu celobrojnu vrednost n ispisuje tablicu množenja. Unesite broj n: 1 1 Unesite broj n: 2 1 2 2 4 33
2 Kontrola toka Unesite broj n: 3 1 2 3 2 4 6 3 6 9 Unesite broj n: 4 1 2 3 4 2 4 6 8 3 6 9 12 4 8 12 16 (b) Napisati program koji za uneto n ispisuje sve brojeve od 1 do n 2 pri čemu se ispisuje po n brojeva u jednoj vrsti. Unesite broj n: 3 1 2 3 4 5 6 7 8 9 Unesite broj n: 4 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 (c) Napisati program koji za uneto n ispisuje tablicu brojeva tako da su u prvoj vrsti svi brojevi od 1 do n, a svaka naredna vrsta dobija se rotiranjem prethodne vrste za jedno mesto u levo. Unesite broj n: 3 1 2 3 2 3 1 3 1 2 Unesite broj n: 4 1 2 3 4 2 3 4 1 3 4 1 2 4 1 2 3 (d) Napisati program koji za uneto n iscrtava pravougli trougao sačinjen od koordinata svojih tačaka. Koordinata tačke je oblika (i, j) pri čemu i, j = 0,..., n. Prav ugao se nalazi u gornjem levom uglu slike i njegova koordinata je (0, 0). Koordinata i se uvećava po vrsti, a koordinata j po koloni, pa je zato koordinata tačke koja je ispod tačke (0, 0) jednaka (1, 0), a koordinata tačke koja je desno od tačke (0, 0) jednaka (0, 1). Unesite broj n: 1 (0,0) Unesite broj n: 2 (0,0) (0,1) (1,0) 34
2.2 Petlje Unesite broj n: 3 (0,0) (0,1) (0,2) (1,0) (1,1) (2,0) Unesite broj n: 4 (0,0) (0,1) (0,2) (0,3) (1,0) (1,1) (1,2) (2,0) (2,1) (3,0) Zadatak 2.2.38 Napisati program koji za unet prirodan broj n zvezdicama iscrtava odgovarajuću sliku. Pretpostaviti da je unos korektan. (a) Slika sadrži kvadrat stranice n sastavljen od zvezdica. Unesite broj n: 3 *** *** *** Unesite broj n: 4 **** **** **** **** (b) Slika sadrži rub kvadrata dimenzije n. Unesite broj n: 5 ***** * * * * * * ***** Unesite broj n: 2 ** ** (c) Slika sadrži rub kvadrata dimenzije n koji i na glavnoj dijagonali ima zvezdice. Unesite broj n: 5 ***** ** * * * * * ** ***** Unesite broj n: 4 **** ** * * ** **** 35
2 Kontrola toka * Zadatak 2.2.39 Napisati program koji za uneti prirodan broj n zvezdicama iscrtava slovo X dimenzije n. Pretpostaviti da je unos korektan. Unesite broj n: 5 * * * * * * * * * Unesite broj n: 3 * * * * * * Zadatak 2.2.40 Napisati program koji za uneti prirodan neparan broj n korišćenjem znaka + iscrtava veliko + dimenzije n. Pretpostaviti da je unet prirodan broj. Unesite broj n: 5 + + +++++ + + Unesite broj n: 3 + +++ + Unesite broj n: 4 Pogresan unos. Zadatak 2.2.41 Napisati program koji učitava prirodan broj n, a potom iscrtava odgovarajuću sliku. Pretpostaviti da je unos korektan. (a) Slika sadrži pravougli trougao sastavljen od zvezdica. Kateta trougla je dužine n, a prav ugao se nalazi u gornjem levom uglu slike. Unesite broj n: 3 *** ** * Unesite broj n: 4 **** *** ** * (b) Slika sadrži pravougli trougao sastavljen od zvezdica. Kateta trougla je dužine n, a prav ugao se nalazi u donjem levom uglu slike. 36
2.2 Petlje Unesite broj n: 3 * ** *** Unesite broj n: 4 * ** *** **** (c) Slika sadrži pravougli trougao sastavljen od zvezdica. Kateta trougla je dužine n, a prav ugao se nalazi u gornjem desnom uglu slike. Unesite broj n: 3 *** ** * Unesite broj n: 4 **** *** ** * (d) Slika sadrži pravougli trougao sastavljen od zvezdica. Kateta trougla je dužine n, a prav ugao se nalazi u donjem desnom uglu slike. Unesite broj n: 3 * ** *** Unesite broj n: 4 * ** *** **** (e) Slika sadrži trougao sastavljen od zvezdica. Trougao se dobija spajanjem dva pravougla trougla čija kateta je dužine n, pri čemu je prav ugao prvog trougla u njegovom donjem levom uglu, dok je prav ugao drugog trougla u njegovom gornjem levom uglu, a spajanje se vrši po horiznotalnoj kateti. Unesite broj n: 3 * ** *** ** * Unesite broj n: 4 * ** *** **** *** ** * 37
2 Kontrola toka (f) Slika sadrži rub jednakokrakog pravouglog trougla čije su katete dužine n. Program učitava karakter c i taj karakter koristi za iscrtavanje ruba trougla. Unesite broj n: 4 Unesite karakter c: * * ** * * **** Unesite broj n: 5 Unesite karakter c: + + ++ + + + + +++++ Zadatak 2.2.42 Napisati program koji učitava ceo broj n, a potom iscrtava odgovarajuću sliku. (a) Slika sadrži jednakostranični trougao stranice n koji je sastavljen od zvezdica. Unesite broj n: 3 * *** ***** Unesite broj n: 4 * *** ***** ******* (b) Slika sadrži jednakostranični trougao stranice n koji je sastavljen od zvezdica pri čemu je vrh trougla na dnu slike. Unesite broj n: 3 ***** *** * Unesite broj n: 4 ******* ***** *** * 38 (c) Slika sadrži trougao koji se dobija spajanjem dva jednakostranična trougla stranice n koji su sastavljeni od zvezdica.
2.2 Petlje Unesite broj n: 3 * *** ***** *** * Unesite broj n: 5 * *** ***** ******* ********* ******* ***** *** * (d) Slika sadrži rub jednakostraničnog trougla čija stranica je dužine n. Unesite broj n: 3 * * * * * * Unesite broj n: 5 * * * * * * * * * * * * (e) Slika se dobija spajanjem dva jednakostranična trougla čija stranica je dužine n. Iscrtavati samo rub trouglova. Unesite broj n: 3 * * * * * * * * * Unesite broj n: 5 * * * * * * * * * * * * * * * * * * * * Zadatak 2.2.43 Napisati program koji za uneti prirodan broj n iscrtava strelice dimenzije n. Pretpostaviti da je unos korektan. 39
2 Kontrola toka Unesite broj n: 3 * * *** * * Unesite broj n: 5 * * * * ***** * * * * * Zadatak 2.2.44 Napisati program koji učitava ceo broj n, i iscrtava sliku koja se dobija na sledeći način: u prvom redu je jedna zvezdica, u drugom redu su dve zvezdice razdvojene razmakom, treći red je sastavljen od zvezdica i iste je dužine kao i drugi red, četvrti red se sastoji od tri zvezdice razdvojene razmakom, a peti red je sastavljen od zvezdica i iste je dužine kao i četvrti red itd. Ukupna visina slike je n. Pretpostaviti da je unos korektan. Unesite broj n: 7 * * * *** * * * ***** * * * * ******* * Zadatak 2.2.45 Program učitava prirodne brojeve m i n. Napisati program koji iscrtava jedan do drugog stranice n kvadrata čija je svaka strana sastavljena od m zvezdica razdvojenih prazninom. Podrazumevati da je unos korektan. Unesite broj n: 5 3 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Unesite broj n: 4 4 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Zadatak 2.2.46 Program učitava prirodan broj n. Napisati program koji 40
2.2 Petlje štampa romb sastavljen od minusa u pravougaoniku sastavljenom od zvezdica. Podrazumevati da je unos korektan. Unesite broj n: 6 ************ *****--***** ****----**** ***------*** **--------** *----------* **--------** ***------*** ****----**** *****--***** ************ Unesite broj n: 2 **** *--* **** Zadatak 2.2.47 Napisati program koji učitava ceo broj n (n 2) i koji iscrtava sliku kuće sa krovom: kuća je kocka stranice n, a krov jednakostranični trougao stranice n. Pretpostaviti da je unos korektan. Unesite broj n: 4 * * * * * * * * * * * * * * * * * Unesite broj n: 3 * * * * * * * * * * * * Zadatak 2.2.48 Program učitava ceo pozitivan broj n. Napisati program koji ispisuje brojeve od 1 do n, zatim od 2 do n 1, 3 do n 2, itd. Ispis se završava kada nije moguće ispisati ni jedan broj. Za neispravan unos, program ispisuje odgovarajuću poruku. Pretpostaviti da je unos korektan. Unesite broj n: 5 1 2 3 4 5 2 3 4 3 Unesite broj n: -4-1 Unesite broj n: 7 1 2 3 4 5 6 7 2 3 4 5 6 3 4 5 4 Unesite broj n: 3 1 2 3 2 41
2 Kontrola toka * Zadatak 2.2.49 Napisati program koji učitava ceo pozitivan broj n i ispisuje sve brojeve od 1 do n, zatim svaki drugi broj od 1 do n, zatim svaki treći broj od 1 do n itd., završavajući sa svakim n-tim (tj. samo sa 1). U slučaju greške pri unosu podataka odštampati ogovarajuću poruku. Unesite broj n: 3 1 2 3 1 3 1 Unesite broj n: 7 1 2 3 4 5 6 7 1 3 5 7 1 4 7 1 5 1 6 1 7 1 Unesite broj n: 1 1 Unesite broj n: -23 Neispravan unos. 2.3 Funkcije Zadatak 2.3.1 Napisati funkciju int kvadrat(int x) koja računa kvadrat datog broja. Napisati program koji učitava ceo broj i ispuje rezultat poziva funkcije. Unesite broj: 15 Kvadrat broja 15 je 225 Unesite broj: -89 kvadrat broja -89 je 7921 Zadatak 2.3.2 Napisati funkciju int kub(int x) koja računa kub datog broja. Napisati program koji učitava ceo broj i ispuje rezultat poziva funkcije. Unesite broj: 15 Kub broja 15 je 3375 Unesite broj: -89 Kub broja -89 je -704969 42
2.3 Funkcije Zadatak 2.3.3 Napisati funkciju unsigned int apsolutna_vrednost(int x) koja izračunava apsolutnu vrednost broja x. Napisati program koji učitava jedan ceo broj i ispisuje rezultat poziva funkcije. Unesite broj: -34 Apsolutna vrednost: 34 Unesite broj: 5 Apsolutna vrednost: 5 Zadatak 2.3.4 Napisati funkciju int min(int x, int y, int z) koja izračunava minimum tri broja. Napisati program koji učitava tri cela broja i ispisuje rezultat poziva funkcije. Unesite brojeve: 19 8 14 Minimum je: 8 Unesite brojeve: -6 11-12 Minimum je: -12 Zadatak 2.3.5 Napisati funkciju float razlomljeni_deo(float x) koja izračunava razlomljeni deo broja x. Napisati program koji učitava jedan realan broj i ispisuje rezultat poziva funkcije. Unesite broj: 8.235 Razlomljeni deo: 0.235000 Unesite broj: -5.11 Razlomljeni deo: 0.110000 Zadatak 2.3.6 Napisati funkciju float stepen(float x, int n) koja računa vrednost n-tog stepena realnog broja x. Napisati program koji učitava relan broj x i ceo broj n i ispisuje rezultat rada funkcije. Unesite jedan realan i jedan ceo broj: 4.5 3 4.5000003 =91.125000 Unesite jedan realan i jedan ceo broj: -33.2 5-33.2000015 =-40335776.000000 Zadatak 2.3.7 Napisati funkciju int je_stepen(unsigned x, unsigned n) koja za dva broja x i n utvrđuje da li je x neki stepen broja n. Ukoliko jeste, funkcija vraća izložilac stepena, a u suprotnom vraća 1. Napisati program koji učitava dva cela pozitivna broja i ispisuje rezultat poziva funkcije. Napomena: 43