Programiranje - 12.09.2012 1. Sirina polja Zadavanje sirine polja postize se funkcijom setw(n), gde n oznacava broj karaktera. Pr.1 ============================================================================================== #include #include using namespace std; int main() { const int width = 6; int a, b o, p; cin >> a >> b ; o = 2 * a + 2 * b; p = a * b; cout << " obim povr." < #include using namespace std; int main() { const int width = 12; int x = 150; cout << setiosflags(ios::left) << setw(width); cout << x << "."; cout << endl; cout << resetiosflags(ios::left) << setw(width); cout << x << "."; cout << endl; system("Pause"); return 0; } ============================================================================================== 3. Odredjivanje preciznosti Ovim definisemo broj decimalnih mesta u floating point varijablama. #include #include using namespace std; int main() { double x = 800000.0/81.0; cout << setiosflags(ios::fixed) << setprecision (2) << x; system("Pause"); return 0; } ============================================================================================== Zadaci: ============================================================================================== 1. Napisati program kojim se unosi temperatura u celzijusima, a prikazuje u farenhajtima! F^ to C^ Oduzmi 32, pomnozi sa 5, podeli sa 9; C^ to F^ Pomnozi sa 9, podeli sa 5, dodaj 32. #include #include using namespace std; int main() { float a, b, c; cout << "Za celzijuse u farenhajt pritisnite 1. Za farenhajte u celzijuse pritisnite 2." << endl; cin >> c; if (c == 1) { cout << " Unesite broj stepeni: "; cin >> a; if (a == 0) { b = a - 32; } else { b = a * 9 / 5.0 + 32; } } if (c == 2) { cout << " Unesite broj stepeni: "; cin >> a; if (a == 0) { b = a + 32; } else { b = a / 9.0 * 5.0 - 32; } } cout << "Rezultat je: " << b; system("PAUSE"); return 0; } ============================================================================================== 2. Uz odgovarajuce poruke uneti broj radnih sati, cenu rada po satu, jedinstveni procenat doprinosa i procenat poreza. Izracunati i tabalarno prikazati: neto platu, iznos doprinosa, iznos poreza i bruto platu. (fiksna sirina polja 10, preciznost 2, levo poravnanje) #include #include using namespace std; int main() { float brojradnihsati, cenaposatu, jedprocdopr, jedprocpor, neto, bruto, izndop, iznpor; cout << " Unesite broj radnih sati u mjesecu: "; cin >> brojradnihsati; cout << " Unesite cenu rada po satu: "; cin >> cenaposatu; cout << " Unesite jedinstveni procenat doprinosa: "; cin >> jedprocdopr; cout << " Unesite jedinstveni procenat poreza: "; cin >> jedprocpor; neto = brojradnihsati * cenaposatu; izndop = (neto * jedprocdopr) / 100.0; iznpor = (neto * jedprocpor) / 100.0; bruto = neto + izndop + iznpor; //Izlaz cout << "Neto " << "Bruto " << " Iznos doprinosa "<< "Iznos poreza" < #include using namespace std; int main() { // deklaracija varijabli float x1 , y1 , x2 , y2 , x3 , y3 ; float obim = 0; // ulaz cout << "Prva tacka : " ; cin >> x1 >> y1 ; cout << endl << "Druga tacka : " ; cin >> x2 >> y2 ; cout << endl << "Treca tacka : " ; cin >> x3 >> y3 ; // racun obim += sqrt(pow(x1-x2,2)+pow(y1-y2,2)); obim += sqrt(pow(x2-x3,2)+pow(y2-y3,2)); obim += sqrt(pow(x3-x1,2)+pow(y3-y1,2)); // izlaz cout << endl << "Obim je : " << obim << endl ; system("Pause"); return 0; } ============================================================================================== 4. Cifre Uneti dvocifrenu celobrojnu vrednost, a zatim ispisatu drugu pa prvu cifru. #include using namespace std; int main() { int broj , c1 , c2; cin >> broj ; c2 = broj % 10 ; c1 = (int) broj / 10 ; cout << c2 << c1 << endl ; system("Pause"); return 0; } ============================================================================================== 5. Uneti cetvorocifreni broj sastavljen od nula i jedinica, tretirati ga kao binarni i pretvoriti ga u dekadnu vrednost. Ogranicenje: prva cifra je jedinica (1xxx). Npr. 1001 = 1 * 2^3 + 1 * 2^0 = 8 + 1 = 9 #include #include using namespace std; int main() { const int baza = 10 ; int broj , vrednost ; cin >> broj ; vrednost += (broj % baza) * pow(2.0,0) ; broj /= baza ; vrednost += (broj % baza) * pow(2.0,1) ; broj /= baza ; vrednost += (broj % baza) * pow(2.0,2) ; broj /= baza ; vrednost += broj * pow(2.0,3) ; cout << vrednost << endl ; system("Pause"); return 0; } ============================================================================================== 6. Nappisati program kojim se unosi ugao u stepenima, a zatim se tabelarno prikazuje (preciznosti 2, sirine polja 8). #include #include #include #define PI 3.14159265 using namespace std; int main() { double a , rd , sn , cs , tg ; // ulaz cout << "Ugao alfa je : " ; cin >> a ; // racun rd = a * 3.1415 / 180 ; sn = sin(rd); cs = cos(rd); tg = tan(rd); // izlaz cout << endl ; cout << "a[rad] sin(a) cos(a) tan(a) " << endl ; cout << "-------------------------------" << endl ; cout << setiosflags(ios::fixed) << setprecision(2) << setiosflags(ios::left) ; cout << setw(8) << rd ; cout << setw(8) << sn ; cout << setw(8) << cs ; cout << setw(8) << tg ; cout << endl ; system("Pause"); return 0; } ============================================================================================== 7. Satna kazaljka casovnika sa pravom koja prolazi kroz centar sata i oznaku za 12 sati, zatvara ugao beta(0 <= beta <= 2pi)/ Na osnovu njenog polozaja (uneti vrednost u stepenima), odrediti koji ugao zaklapa minutna kazaljka, i odrediti koje vreme pokazuje casovnik. #include using namespace std; int main() { int sati, minuta; float ugao, ostatak_ugla_sati, ugao_minutne; cout << "Ugao satne kazaljke: "; cin >> ugao; // svaki sat nosi 360/12 = 30 stepeni sati = (int) ugao / 30; ostatak_ugla_sati = ugao - sati * 30; // ugao koji satna kazaljka predje za 1 sat a to je 30 // stepeni odgovara punom krugu minutne kazaljke tj, // jednom stepenu satne odgovara 360/30 = 12 stepeni // minutne ugao_minutne = ostatak_ugla_sati * 12; // ako je ugao minutne 180 stepeni to znaci da minutna // kazaljka stoji na oznaci 6 tj 180/30 = 6 // ako tu vrednost podelimo sa 2 i pomnozimo sa 10 // dobijamo 30 minuta minuta = (int) (ugao_minutne / 30) / 2 * 10; cout << endl << "Ugao minutne kazaljke je: " << ugao_minutne; cout << endl << "Sati je: " << sati; cout << endl << "Minuta je: " << minuta << endl; system("Pause"); return 0; } ============================================================================================== 19.9.2012. Zadaci: =============================================================================================== 1. Napisati program koji tri unijeta cijela broja reda u rastucem poretku. #include #include using namespace std; int main() { int a,b,c,max,min; const int width=5; cin>>a>>b>>c; max = a; if (b>max) max=b; if (c>max) max=c; min=a; if (b, <=, >=, jednako ==, razlicito != =================================================================================================== 26.09.2012 1. Uneti broj i ispitati da li je veci od ili manji od nule i kolika je njegova apsolutna vrednost. #include #include using namespace std; int main() { int a; cin>>a; if (a>0) cout<<"Uneseni broj je veci od nule i njegova apsolutna vrednost je:"< #include using namespace std; int main() { int a,b,f,s; cin>>a>>b; s=a%2; if (s==0) f=a+b; else f=a*b; cout< #include using namespace std; int main() { float x,y,z; cin>>x>>y; if (x>y) z=(y+0.5)/(1+(x*x)); else z=(x+0.5)/(1+(y*y)); cout< #include using namespace std; int main() { int a,b,c,N; cin>>N; a=N%10; b=N / 10%10; c=N / 100; if (N==a*a*a+b*b*b+c*c*c) cout<<"Ovo je Armstrongov broj:"< using namespace std; int main() { float a,b; cout<<"Unesite a i b: "<>a>>b; if (a==0 && b!=0) cout<<"Nema resenja:"< using namespace std; int main() { int p,x,a,b,c,d,e; cout<<"Unesite petocifreni broj: "<>x; cout<<"Unesite poziciju: "<>p; a=(x/10000); b=((x%10000)/1000); c=((x%1000)/100); d=((x%100)/10); e=(x%10); if(p==1) cout<<(a); else if(p==2) cout<<(b); else if(p==3) cout<<(c); else if(p==4) cout<<(d); else if(p==5) cout<<(e); else cout<<"unijeli ste broj veci od 5"< #include using namespace std; int main() { int a,b,c,d,N,P; cin>>N; a=N / 1000; b=N % 1000 / 100; c=N % 100 / 10; d=N % 10; P=a*a+b*b+c*c+d*d; cout< #include using namespace std; int main() { int a,b,c; cout<<"Ako ste musko pritisnite 1, ako ste zensko pritisnite 2"<>c; if(c==1) { cout<<"Unesite vasu visinu u cm"<>a; cout<<"Vasa idealna tezina je:"<<(a-100); } if (c==2) { cout<<"Unesite vasu visinu u cm"<>b; cout<<"Vasa idealna tezina je:"<<(b-110); } system("pause"); return 0; } 4. Za datu tacku x i y napisati u kom se kvadrantu nalazi. #include #include using namespace std; int main() { int a,b; cin>>a>>b; if(a>0 and b>0) cout<<"1"<0) cout<<"2"<0 and b<0) cout<<"4"< #include using namespace std; int main() { int a,b,c,max; cin>>a>>b>>c; max=a; if(b>a) max=b; if(c>b) max=c; cout<<(abs(max)); system("pause"); return 0; } =================================================================================================== GRANJANJE U PROGRAMU 10.10.2012 1. Napisati program koji za uneti redni broj meseca odredjuje godisnje doba kome pripada. Mesec u kome dolazi do promene godisnjih doba smatra sa da pripada onom godisnjem dobu u kome ima vise dana. #include #include using namespace std; int main() { int m; cout<<"Unesi mesec"; cin>>m; switch (m) { case 1: case 2: case 3: cout<<"Zima"; break; case 4: case 5: case 6: cout<<"Prolece"; break; case 7: case 8: case 9: cout<<"Leto"; break; case 10: case 11: case 12: cout<<"Jesen"; break; } system("Pause"); return 0; } 2. Napisati program koji za uneti broj meseca (npr 1=jan. 2=feb, itd.) ispisuje njegov broj dana. U slucaju unete vrednosti 2 pitati korisnika da li je godina prestupna. #include #include using namespace std; int main() { int m,a; cout<<"Unesite mesec"; cin>>m; switch (m) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: cout<<"31 dan"; break; case 4: case 6: case 9: case 11: cout<<"30 dana"; break; case 2: cout<<"Ako je godina prestupna pritisnite 1, ako nije 2"; cin>>a; if (a==1) cout<<"29 dana"; if (a==2) cout<<"28 dana"; } system("Pause"); return 0; } WHILE NAREDBA CIKLUSI Sintaksa naredbe je: while (uslov) { } i=1; s=0; while (i using namespace std; int main() { int n,i,s; cout<<"unesite broj n"<>n; i=1; s=1; while (i<=n){ s=s*i; i=i+1; } cout< using namespace std; int main() { int s,i,n; cout<<"Unesite vrednost n : "<>n; i=1; s=0; while(i<=n) { s=s+i; i=i+2; } cout< #include using namespace std; int main() { int n,p; cout<<"Unesite broj n:"; cin>>n; p=1; while (p<=n) { cout< #include using namespace std; int main() { int x,a,b,n,i=3; cin>>n; a=1; b=1; while (i++<=n) { x=a+b; b=a; a=x; cout< #include using namespace std; int main() { float S,V1,V2,V3,T1,T2,T,V,X,Va,Vb,Vc; cout<<"Unesite duzinu oblasti:"; cin>>S; cout<<"Unesite brzinu kojom se kretao u prvoj deonici:"; cin>>V1; Va=(S/V1); cout<<"Unesite brzinu kojom se kretao u drugoj deonici:"; cin>>V2; Vb=(S/V2); cout<<"Unesite brzinu kojom se kretao u trecoj deonici:"; cin>>V3; Vc=(S/V3); cout<<"Unesite vreme odmora posle prve deonice:"; cin>>T1; cout<<"Unesite vreme odmora posle druge deonice:"; cin>>T2; T=(T1+T2); cout<<"Ukupno vrijeme odmaranja:"< #include using namespace std; int main() { int n,i,x,s ; cout<<"Unesite broj ocjena:"; cin>>n; s=0; i=1; while (n>=i) { cin>>x; s=s+x; i=i+1; } cout<<"Srednja vrijednost je:"< #include using namespace std; int main() { int n,i; float s,x,p; cout<<"Unesite vrednost n:"; cin>>n; cout<<"Unesite vrednost x:"; cin>>x; s=0; p=1; for (i=1; i<=n; i++) { p*=x; s+=p; } cout< #include using namespace std; int main() { int n,i,x; float s; cout<<"Unesite broj ocjena:"; cin>>n; s=0; i=1; while (n>=i) { cin>>x; s=s+x; i=i+1; } cout<<"Srednja vrijednost je:"< #include using namespace std; int main() { int i,n,m,p; cout<<"Unesite vrednost n:"; cin>>n; cout<<"Unesite vrednost m:"; cin>>m; p=1; for (int i=0; i<=m; i++) p=p*(n+i*m); cout<<"Proizvod je:"< #include using namespace std; int main() { int i,n; float p,x; cout<<"Unesite vrednost n:"; cin>>n; cout<<"Unesite vrednost x:"; cin>>x; p=1; for (int i=1; i<=n; i++) p=p*(1+cos(i*x)); cout<<"Proizvod je:"< #include using namespace std; int main() { int n,i; float S; cout<<"Unesite broj n"<>n; S=0; for (int i=1; i<=n; i++) S=sqrt(3+S); cout<<"Rezultat je:"< #include using namespace std; int main() { int n,pp,p,q; cout<<"Unesite broj n"<>n; p=n%10; do { pp=(n/10)%10; cout<p) q=1; else q=0; p=pp+p; cout<=10); if (q==1) cout<<"Ovo je dobar broj"; system("Pause"); return 0; } ========================================================================================================================================= 31.10.2012 FUNKCIJE tip podatka ime funkcije (parametri) { telo funkicje } Ukoliko funkcija ne vraca vrednost za tip podatka stavljamo void. Ako funkcija vraca vrednost kao poslednja narebda u telu funkcije mora stojati return main. Parametri se navode tako sto se stavi tip podatka i onda naziv promjenljive. Ne moze se staviti int a,b nego mora (int a, int b). Poziv funkcije vrsi se u okviru neke druge funkcije a najcesce je to main i to tako sto se navede ime funkcije i u zagradi se stave (u ovom slucaju stvarni parametri). Ako funkcija vraca vrednost onda nekoj promjenljivoj c dodeljujemo rezultat izvrsenja funkcije. Primjer: Napisati program koji ispisuje zbir cifara svih trocifrenih brojeva koristeci funkciju koja se zove zbir cifara. #include #include #include using namespace std; int zbircifara (int n) { int a=n/100; int b=n/10%10; int c=n%10; return a+b+c; } int main () { for (int i=100; i<=200; i++) { cout< #include using namespace std; void dobar(int n) { int pp,p,q; p=n%10; do { pp=(n/10)%10; if (pp>p) q=1; else q=0; p=pp+p; n=n/10; } while (q==1 && n>=10); if (q==1) cout<<"Ovo je dobar broj"; } int main () { for (int i = 800; i<=900; i++) { cout< #include #include using namespace std; int rastojanje (int x1, int x2, int y1, int y2) { return sqrt(pow(x1-x2,2)+pow(yi-y2,2)); } int trougao (int x1, int x2, int x3, int y1, int y2, int y3) { int a,b,c; a=rastojanje(x1, y1, x2, y2); b=rastojanje(x2, y2, x3, y3); c=rastojanje(x3, y3, x1, y1); return a>x1>>y1>>x2>>y2>>x3>>y3; cout<<"Unesite temena drugog trougla:"; cin>>xx1>>yy1>>xx2>>yy2>xx3>>yy3 ============================================================================================================================================ 14.11.2012 Za dati broj x ispisi sumu brojeva x i obrnuto broja x. #include #include using namespace std; int main() { int x,i,a,s,o; cin>>x; a=x; s=0; o=0; while (x!=0) { s+=x%10; o=(o+x%10)*10; x=x/10; } cout<<"Suma je :"<<(a+(o/10))<<" Okrenut je: "< naziv niza[duzina niza]; int P[5]; for (int i=0; i=5; i++) cin>>P[i]; Uneti niz od 10 elemenata, ispisati ga u obrnutom poredku od unetog. #include using namespace std; int main () { int P[10]; for (int i=0; i<=10; i++) cin>>P[i]; for (int j=9; j>=0; j--) cout< #include #include using namespace std; int main () { for (int i=1; i<=10; i++) { if (i==7) continue; cout< #include using namespace std; int main() { float S=0; float a[100]; for (int i=1; i<=10; i++) { cin>>a[i]; if (a[i]==0) break; S+=a[i++]; cout< #include #include using namespace std; int main() { float a[100]; for (int i=1; i<=10; i++){ cin>>a[i];} for (int i=1; i <=9; i++) { if (a[i]<=a[i+1]) cout<<"Jeste"<