Professional Documents
Culture Documents
Kontrola Toka
Kontrola Toka
IV Kontrola toka
if–else izraz
Uslovni if izraz ima sledeći oblik:
if(uslov)
naredba1;
else
naredba2;
uslov mora biti neki logički izraz.
u slučaju da je uslov tačan, izvršava se naredba1 a u suprotnom naredba2.
if izraz se može pojaviti i bez else izraza.
naredba može biti prosta naredba a može biti i složena naredba (blok) koja se dobije kada se više prostih
naredbi grupišu navođnjem vitičastih zagrada.
if(uslov)
{
naredba1_1;
naredba1_2;
...
}
else
{
naredba2_1;
naredba2_2;
...
}
Primer 1: Napisati program koji ako je uneti ceo broj negativan ispisuje odgovarajući komentar.
//Bez else.c
#include <stdio.h>
main()
{
int b;
printf("Unesite ceo broj: ");
scanf("%d",&b);
if (b < 0)
printf("Broj %d je negativan\n",b); //prosta naredba
}
Primer 2: Ako je uneti ceo broj paran onda ga pomnožiti sa 2, odštampati ga uz odgovarajući komentar, a ako nije
paran onda ga podeliti sa 5, odštampati ga uz odgovarajući komentar.
//Else blok.c
#include <stdio.h>
main()
{
int b; float novob;
printf("\tUnesite ceo broj: ");
scanf("%d",&b);
if (b%2==0)
{ // ako je paran ‐ blok naredba
printf("\tBroj %d je paran\n",b);
novob=b*2; // b=b*2
}
else // ako je neparan ‐ blok naredba
{
printf("\tBroj %d je neparan\n",b);
novob=(float)b/5; // kastovanje
}
printf("\tNova vrednost broja %d je %.2f \n",b,novob);
}
21
Praktikum iz programiranja ‐ pomoćni materijal
Else se odnosi na prvi neuparen if. Ako želimo drugačije moramo da navedemo vitičaste zagrade.
if (izraz) //prvo if if (izraz)
if (izraz1) naredba1 //drugo if {
else naredba2 if (izraz1) naredba1
}
Ovo else se odnosi na drugo if a ne na prvo if!
else naredba2
Tek sada se else odnosi na prvo if!!!
else-if izraz
if–else naredba ima samo dve grane – kada je uslov ispunjen i kada nije. Međutim nekada je potrebno ispitati više
uslova i u zavisnosti od njihovih vrednosti izvršavati određene naredbe. U tim slučajevima se koristi else-if izraz.
if (uslov1)
naredba1
else if (uslov2)
naredba 2
else if (uslov3)
naredba 3
else naredba
Primer 3: Napisati program koji ispituje da li je unešeni broj pozitivan, negativan ili je jednak nuli.
//Else if.c
#include <stdio.h>
main()
{
float x;
printf("\tUnesite realan broj: ");
scanf("%f",&x);
if(x > 0)
printf("\tBroj %.2f je pozitivan\n",x);
else if(x < 0)
printf("\tBroj %.2f je negativan\n",x);
else
printf("\tBroj %.2f je jednak nuli\n,x");
}
Primer 4: Analizirati sledeći program
//Analiza.c
#include <stdio.h>
main()
{
int b;
printf("Unesi ceo broj : "); Upozorenje!
Voditi računa o tome da je = operator dodele a == je
scanf("%d", &b); operator poređenja na jednakost.
if (b = 0) Ne mešati ta dva operatora!
printf("Broj je nula\n");
else if (b < 0)
printf("Broj je negativan\n");
else
printf("Broj je pozitivan\n");
}
Primer 6: Modifikovan prethodni primer. Predvideti slučaj da brojevi a i b mogu biti isti, štampati određeni
komentar.
//Uslovni3.c
#include <stdio.h>
int main()
{
float a,b;
printf("\tUnesite dva realna broja: ");
scanf("%f%f",&a,&b);
if(a>b)
printf("\tVeci je broj %.2f! \n",a);
else if(a<b)
printf("\tVeci je broj %.2f! \n",b);
else
printf("\tBrojevi %.2f i %.2f su jednaki!\n");
}
Switch
Naredba switch se naziva još i naredba višestrukog grananja. Ovom naredbom se proverava da li je neki izraz
jednak jednoj od više konstantnih celobrojnih vrednosti i u zavisnosti od toga, preduzima se odgovarajuća akcija.
Opšti oblik ove naredbe je:
switch (izraz)
{
case vrednost1:
naredbe1
break;
case vrednost2:
naredbe2
break;
...
default:
naredbeN
}
svaka vrednost predstavlja određeni slučaj.
ako neki slučaj odgovara vrednosti izraza, izvršavanje počinje od tog slučaja.
u slučaju da izraz ima vrednost vrednost1, tada se izvršavaju naredbe1, u slučaju da ima vrednost2 tada se
izvršavaju naredbe2, a u slučaju da nema nijednu od ponuđenih vrednosti (default) tada se izvršavaju
naredbeN.
slučaj označen sa default nije obavezan, ali ako se default ne navede i nijedan drugi slučaj ne odgovara
vrednosti izraza onda se neće izvršiti nikakva akcija
23
Praktikum iz programiranja ‐ pomoćni materijal
Kontrolni iskazi break, continue, goto
Instrukcija break se koristi da se izađe iz instrukcije case unutar instrukcije switch, ali može i da se
koristiti da se izađe iz bilo koje petlje.
Naredba continue se primenjuje sa ciljem da se preskoči jedna od iteracija u okviru petlje i najčešće je
kombinovana sa uslovnim izrazom if.
Kontrolni iskaz goto omogućava skakanje iz jednog dela programa u drugi na mesto označeno labelom.
Izbegavati korišćenje ove naredbe.
Primer 7: Napisati program koji proverava da li je unešeni karakter razmak, tačka, tačka zapeta, znak - ili neki
neki drugi znak.
//Switch karakter.c
#include <stdio.h>
main()
{
char x; // deklarisemo promenljivu x kao jedan karakter
printf("\tProgram za uneseni karakter . ; ‐ ili razmak ispisuje taj karakter recima\n");
printf("\n\tUnesite karakter ");
scanf("%c", &x); // c je konverzioni karakter (tip char)
switch(x)
{
case ' ':printf("\tUneseni karakter je razmak\n");break;
case '.':printf("\tUneseni karakter je tacka\n");break;
case ';':printf("\tUneseni karakter je tacka zapeta\n");break;
case '‐':printf("\tUneseni karakter je znak minus\n");break;
default:printf("\tUneseni karakter nije nista od predvidjenog\n");
}
}
Primer 8: Koristeći switch napisati program koji ispisuje da li broj n pri deljenju sa 7 daje ostatak 5 ili 3, a ako je
ostatak neki drugi broj ipisuje se odgovarajuća poruku. Isprobati verziju bez naredbe break.
//switch_break.c Bez break
#include <stdio.h>
main()
{
int n,ost;
printf("Unesite prirodan broj n: ");
scanf("%d",&n); Sa break
ost=n%7;
switch(ost){
case 3:
printf("Deljenjem broja %d sa 7 dobija se ostatak 3\n",n);
// break;
case 5:
printf("Deljenjem broja %d sa 7 dobija se ostatak 5\n",n);
// break;
default:
printf("Deljenjem broja %d sa 7 ne dobija se kao ostatak ni 3, ni 5\n",n);
}
}
24
Praktikum iz programiranja ‐ pomoćni materijal
Primer 9: Gradski prevoz je besplatan za sve osobe koje su mlađe od 12 ili starije od 56 godina. Napisati dve verzije
programa: koristeći IF i koristeći SWITCH. Predvideti unos godina ispod 0 i preko 120.
25
Praktikum iz programiranja ‐ pomoćni materijal
ZADACI – RAZGRANATA STRUKTURA
28
Praktikum iz programiranja ‐ pomoćni materijal
11. Napisati program kojim se izračunava i ispisuje kolika će biti plata radnika nakon plaćanja solidarnog poreza.
Solidarni porez od 15% računa se samo na platu veću od 60.000 dinara.
//Plata nakon poreza.c
#include<stdio.h>
main()
{
float plata, KP;
printf("\tUneti platu u dinarima: "); scanf("%f", &plata);
if(plata<=60000)
printf("\tNema solidarnog poreza, plata ostaje %.2f dinara\n", plata);
else {
KP=plata‐(plata‐60000)*0.15;
printf("\tIma solidarnog poreza od 15%%, umanjena plata je: %.2f dinara\n", KP); }
}
12. Na deklaraciji uređaja kupljenog u Americi piše da uređaj trpi maksimalnu temperaturu u Farenhajtima (MF).
Nacrtati algoritamsku šemu kojom se ispituje da li taj uređaj sme da se koristi u prostoriji sa maksimalnom
temperaturom u Celzijusima (TC), ako postoji ventilator koji smanjuje temperaturu u toj postoriji za N procenta.
//Deklaracija.c
#include<stdio.h>
main()
{
float MF, MC, N, MFC, TP;
printf("Uneti temperaturu u Farenhajtima: "); scanf("%f", &MF);
printf("Uneti temperaturu u Celzijusima: "); scanf("%f", &MC);
printf("Uneti procenat smanjenja temperature ventilatorom: "); scanf("%f", &N);
MFC = (MF‐32)*1.8; TP = MC ‐ MC*N/100;
if(TP>MFC)
printf("Uredjaj ne sme da se koristi.\n");
else
printf("Uredjaj sme da se koristi.\n");
}
13. Na tri benzinske pumpe kupujemo gorivo u galonima (G1, G2, G3). Benzin treba sipati u bure zapremine BL u
litrima. Napisati program pomoću kojeg se ispisuje sledeći izveštaj: ako kupljeni benzin može da stane u bure
ispisati poruku „Može“ i koliko još litara može stati u njega. Inače, ispisati poruku „Ne može“ i broj litara koji
ne može stati u bure.
//Pumpa1.c ‐ prvi nacin
#include<stdio.h>
main()
{
float G1, G2, G3, BL, GL, L, razlika;
printf("Uneti broj galona goriva kupljenog na prvoj pumpi:"); scanf("%f", &G1);
printf("\n Uneti broj galona goriva kupljenog na drugoj pumpi:"); scanf("%f", &G2);
printf("\n Uneti broj galona goriva kupljenog na trecoj pumpi:"); scanf("%f", &G3);
printf("\n Uneti litrazu bureta:"); scanf("%f", &BL);
GL=G1+G2+G3; L=GL*4.54;
if(BL>=L) {
printf("\n Moze.");
razlika=BL‐L;
printf("\n Moze stati jos %f litara.\n", razlika);}
else {
printf("\n Ne moze.");
razlika=L‐BL;
printf("\n Ne moze potreban je novi sud od %f litara.\n", razlika); }
}
29
Praktikum iz programiranja ‐ pomoćni materijal
//Pumpa2.c ‐ drugi nacin
#include<stdio.h>
#include<math.h>
main()
{
float G1, G2, G3, BL, L, razlika;
printf("Uneti broj galona goriva kupljenog na prvoj pumpi:"); scanf("%f", &G1);
printf("\n Uneti broj galona goriva kupljenog na drugoj pumpi:"); scanf("%f", &G2);
printf("\n Uneti broj galona goriva kupljenog na trecoj pumpi:"); scanf("%f", &G3);
printf("\n Uneti litrazu bureta:"); scanf("%f", &BL);
L=(G1+G2+G3)*4.54; razlika=BL‐L;
if(razlika>=0)
{
printf("\n Moze.");
printf("\n Moze stati jos %f litara.\n", razlika);
}
else
{
printf("\n Ne moze.");
printf("\n Ne moze potreban je novi sud od %f litara.\n", fabs(razlika));
}
}
14. Napisati program koji određuje da li se date prave seku. Dve prave se neće seći ako su podudarne ili su paralelne.
Prave zapisane u eksplicitnom obliku y=k1x+n1 i y= k2x+n2 paralelne su ako važi k1=k2, a podudarne ako važi
n1= n2.
// Presek pravi.c
#include<stdio.h>
main()
{
float k1,k2,n1,n2;
printf("Uneti koeficijente k i n prve prave: ");
scanf("%f%f", &k1,&n1);
printf("Uneti koeficijente k i n druge prave: ");
scanf("%f%f", &k2,&n2);
if(k1==k2)
if(n1==n2) printf("Prave su podudarne!");
else printf("Prave su paralelne!");
else printf("Prave se seku!");
}
15. Napisati program koji omogućava korisniku da tri puta pokuša da pogodi slučajno generisan broj iz intervala od
1 do 10. Ako korisnik pogreši broj, ispisuje se poruka da li je njegov broj bio veći ili manji od nepoznatog broja.
Nakon tri neuspešna pogađanja, ispisuje se pravi broj.
//Pogodi broj.c
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
main()
{
int slucajan,broj,pokusaj;
srand(time(0));/*postavlja pocetnu vrednost za generisanje slucajnih brojeva*/
slucajan=rand()%10+1; //generisanje slučajnog celog broja iz intervala [1,10]
//Prvi pokusaj
pokusaj=1;
printf("\nPokusaj da pogodis broj koji je racunar 'zamislio'!");
printf("\nTrazeni broj je u opsegu [1,10]. Imate tri pokusaja. Srecno!\n");
printf("\n\tPokusaj broj %d",pokusaj);
30
Praktikum iz programiranja ‐ pomoćni materijal
printf("\n\tUnesite broj: "); scanf("%d",&broj);
if(slucajan==broj) goto kraj;
else if(broj>slucajan) printf("\n\tZamisljen broj je manji od broja %d",broj);
else printf("\n\tZamisljen broj je veci od broja %d",broj);
//Drugi pokusaj
pokusaj++;
printf("\n\tPokusaj broj %d",pokusaj);
printf("\n\tUnesite broj: "); scanf("%d",&broj);
if(slucajan==broj) goto kraj;
else if(broj>slucajan) printf("\n\tZamisljen broj je manji od broja %d",broj);
else printf("\n\tZamisljen broj je veci od broja %d",broj);
//teci pokusaj
pokusaj++;
printf("\n\tPokusaj broj %d",pokusaj);
printf("\n\tUnesite broj: "); scanf("%d",&broj);
if(slucajan==broj) goto kraj;
else // Nazalost!
{
printf("\n\tNiste pogodili broj iz %d pokusaja.\n\t Trazeni broj je %d\n",pokusaj,slucajan);
return 0; // Kraj programa
}
kraj: //Bingo!
printf("\n\tBravo! Pogodili ste 'zamisljeni' broj %d iz %d. pokusaja\n",slucajan,pokusaj);
}
, .
16. Napisati program koji za zadate realne brojeve x i y izračunava z po formuli. 𝑧
,
//Min_max.c
#include<stdio.h>
#include<math.h>
main()
{
int x, y; float z;
printf("Uneti brojeve x i y: ");
scanf("%d%d", &x, &y);
if(x>y)
z=(x+0.5)/(1+pow(x,2));
else
z=(x+0.5)/(1+pow(y,2));
printf("z = %5.4f\n",z);
}
17. Napisati program koji za unete realne brojeve x i y izračunava i štampa frednost funkcije f i to na sledeći način:
- ako je x<y onda je f = x + y,
- a ako je x>=y onda je f = x - y,
//if_funkcija_x,y.c
#include <stdio.h>
main()
{
float x,y,f;
printf("\nUnesi realne brojeve x i y: ");
scanf("%f%f",&x,&y);
if(x<y)
f=x+y;
else
f=x‐y;
printf("Vrednost funkcije f=%.3f\n",f);
}
31
Praktikum iz programiranja ‐ pomoćni materijal
18. Napisati program koji na ulazu ima prirodan broj n i realan broj x, a na izlazu treba da izračuna i odštampa
vrednost funkcije y na sledeći način:
Za n > 100...................................................... 𝑦 𝑙𝑜𝑔 𝑒 𝑥
40 <= n <= 100 .............................................. 𝑦 𝑠𝑖𝑛 2√4𝑥 𝑒
N < 40 ............................................................ 𝑦 |𝑥 1| |𝑥 1|
//if_funkcija_n,x.c
#include<stdio.h>
#include<math.h>
main()
{
int n;
float x, y;
printf("\n Uneti broj n:");
scanf("%d", &n);
printf("Uneti broj x:");
scanf("%f", &x);
if(n>100)
y=sqrt(log(exp(2*cos(x))+pow(x,5)));
else if(n>=40)
y=sin(2*sqrt(4*x))+exp(sin(x));
else
y=fabs(x+1)+fabs(x‐1);
printf("y=%f", y);
}
2 x,........x 1
19. Za dato x izračunati y po formuli: y 3x 1,........x 5 . Predvideti slučaj za x=0.
1 / x,........za ostale slucajeve
//switch_za uneto x izračunati y.c
#include<stdio.h>
main()
{
int x; float y;
printf("\n\tUneti x: ");
scanf("%d", &x);
switch (x)
{
case 1:
y=2*x; printf("\n\t y = %.2f\n", y);
break;
case 5:
y=3*x‐1; printf("\n\t y = %.2f\n", y);
break;
default:
{
if (x!=0)
{
y=(float)1/x;
printf("\n\t y = %.2f\n", y);
}
else
printf("\n\tGreska! Deljenje sa nulom!\n");
}
}
}
32
Praktikum iz programiranja ‐ pomoćni materijal
20. Na ulazu su prirodan broj A i realan broj x. Izračunati vrednost funkcije y i to na sledeći način:
ako je A = 1 tada je y = 3x-2
ako je A = 2 tada je y = sin(2x)-3x+1
ako je A = 3 tada je y = x3-x+1
a ako je A bilo šta drugo onda je y = x.
//switch_a,x.c
#include <stdio.h>
#include <math.h>
main()
{
int a;float x,y;
printf("Unesi ceo broj a i realan broj x: "); scanf("%d%f",&a,&x);
switch(a)
{
case 1:
y=3*x‐2;
break;
case 2:
y=sin(2*x)‐3*x+1;
break;
case 3:
y=pow(x,3)‐x+1;
break;
default:
y=x;
}
printf("\nRezultat funkcije je: %.4f\n",y);
}
21. Napisati program koji kao ulaze učitava prirodan broj n i relan broj x>0. Program izračunava vrednost funkcije
y i to na sledeći način:
- ako je n=7 tada je y=sin(x)+cos(x/2)
- ako je n=5 tada je y=log(x)+5x+3
- ako je n=3 tada je y=tg(x/4)+e-x
- a ukoliko je n bilo šta drugo tada je y x 4 3 2x 1
//switch_n,x.c
#include <stdio.h>
#include <math.h>
main()
{
int n; double x,y;
printf("Unesite prirodan broj n: "); scanf("%d",&n);
printf("Unesite realan broj x veci od nule: "); scanf("%lf",&x);
switch(n){
case 7:
y=sin(x)+cos(x/2); break;
case 5:
y=log(x)+5*x+3; break;
case 3:
y=tan(x/4)+exp(‐x); break;
default:
y=pow(x,4)+3*sqrt(2*x)+1;
}
printf("Funcija y iznosi: %.3lf\n",y);
}
33
Praktikum iz programiranja ‐ pomoćni materijal
22. Napisati program koji za uneti ceo broj b i relani broj x izračunava i štampa vrednost funkcije y i to na sledeći
način:
-
ako je b=1 tada je y=sin(x+5)-e-x
- ako je b=2 tada je y najveći ceo broj koji nije veći od x umanjen za 3
- ako je b=3 tada je y=x+x-5
- ako je b=4 tada je y slučajno izabran broj umanjen za x
- i ako je b bilo šta drugo onda je y najmanji ceo broj ne manji od x uvećan 3 puta.
// switch_b,x,y.c
#include <stdio.h>
#include <math.h>
#include <stdlib.h> /*zbog funkcije rand() za slucajan broj */
#include <time.h>
main()
{
int b; double x,y;
printf("\n\tUnesite ceo broj b: ");
scanf("%d",&a);
printf("\n\tUnesite realan broj x: ");
scanf("%lf",&x);
srand(time(NULL)); /*postavlja pocetnu vrednost za generisanje slucajnih brojeva*/
switch(b)
{
case 1:
y=sin(x+5)‐exp(x);
break;
case 2:
y=floor(x)‐3; /*funkcija daje najveci ceo broj koji nije veci od x*/
break;
case 3:
y=fabs(x)+fabs(x‐5); /*apsolutna vrednost*/
break;
case 4:
y=rand()‐x; /*rand generise ceo broj*/
break;
default:
y=3*ceil(x); /*najmanji ceo broj koji nije manji od x*/
}
printf("\n\tFuncija y iznosi: %.3lf\n",y);
}
23. Unose se prirodni brojevi u opsegu od 1 do 5, koji predstavljaju radne dane u nedelji: 1 - ponedeljak, ...,
5 - petak. Napisati program koji u zavisnosti od unetog broja ispisuje dan. Predvideti i pogrešan unos.
//switch_dani.c
#include<stdio.h>
main()
{
int N;
printf("Uneti redni broj dana: "); scanf("%d", &N);
switch (N)
{
case 1: printf("Ponedeljak.\n"); break;
case 2: printf("Utorak.\n"); break;
case 3: printf("Sreda.\n"); break;
case 4: printf("Cetvrtak.\n"); break;
case 5: printf("Petak.\n"); break;
default: printf("GRESKA.\n");
}
}
34
Praktikum iz programiranja ‐ pomoćni materijal
24. Za uneti broj meseca (na primer, 1=Januar, 2=Februar, itd.) ispisati njegov broj dana. U slučaju unete vrednosti
2 (Februar) ispitati da li je godina prestupna.
//switch_Broj dana u mesecu.c
#include<stdio.h>
main()
{
int brMes, dani, god;
printf("\n\tUneti redni broj meseca: "); scanf("%d", &brMes);
switch(brMes)
{
case 1:case 3:case 5:case 7: case 8: case 10: case 12:
dani=31;
break;
case 4:case 6:case 9:case 11:
dani=30;
break;
case 2:
printf("\n\tUneti godinu: "); scanf("%d", &god);
/* Prestupne godine su sve godine deljive sa 400, kao i
godine deljive sa 4 ali ako nisu deljive sa 100 */
if(god%400==0 || (god%4==0 && god%100!=0))
{
printf("\n\tGodina %d je prestupna\n",god);
dani=29;
}
else
{
printf("\n\tGodina %d nije prestupna\n",god);
dani=28;
}
break;
default:
printf("\n\tUneli ste nepostojeci broj meseca \n");
goto kraj;
}
printf("\n\tBroj dana u mesecu je: %d\n", dani);
kraj:;
}
25. Napisati program kojim se za uneti simbol +, -, * ili / izvršava određena aritmetička operacija za unete brojeve
a i b.
//switch_operacija.c
#include<stdio.h>
main()
{
char oper;
float a, b;
printf("\n Uneti racunsku operaciju: "); scanf("%c", &oper);
printf(" Uneti brojeve a i b: "); scanf("%f%f", &a, &b);
switch (oper){
case '+': printf("%f + %f = %f\n", a, b, a+b); break;
case '‐': printf("%f ‐ %f = %f\n", a, b, a‐b); break;
case '*': printf("%f * %f = %f\n", a, b, a*b); break;
case '/': printf("%f / %f = %f\n", a, b, a/b); break;
default: printf("GRESKA!\n");
}
}
35
Praktikum iz programiranja ‐ pomoćni materijal
26. Izračunati otpor R koji daju otpornici R1 i R2 u zavisnosti od tipa veze u električnom kolu. Predvideti unošenje
indikatora veze u zavisnosti od tipa: R - redna veza, P - paralelna veza.
//switch_otpor.c
#include<stdio.h>
main()
{
char veza;
float R1, R2, otpor;
printf("Uneti tip veze (R‐redna, P‐paralelna) ");
scanf("%c",&veza);
switch(veza)
{
case'R':case'r':
printf("\n\tUneti vrednosti dva redno vezana otpornika: ");
scanf("%f%f",&R1, &R2);
otpor=R1+R2;
printf("\n\tEkvivalentni otpor redne veze je %.2f oma\n", otpor);
break;
case 'P': case'p':
printf("\n\tUneti vrednosti dva paralelno vezana otpornika: ");
scanf("%f%f",&R1, &R2);
otpor=(R1+R2)/(R1*R2);
printf("\n\tEkvivalentni otpor paralelne veze je %.2f oma\n", otpor);
break;
default:
printf("\n\tNiste uneli dobar tip veze\n");
}
}
36
Praktikum iz programiranja ‐ pomoćni materijal
ZADACI za vežbanje - razgranata struktura
1 max( x, y ) 3, за k 0
6. Naći z prema formuli: z
max 2 ( x, y ) min( x, y ) x, за k 0
7. Napisati program koji na ulazu ima prirodan broj n i realan broj x, a na izlazu treba da izračuna i odštampa
vrednost funkcije y na sledeći način:
𝑧𝑎 𝑛 120 → 𝑦 𝑥 log 𝑒 𝑥
60 𝑛 120 → 𝑦
cos 3√6𝑥 𝑒
𝑛 60 → 𝑦 |𝑥 5| |𝑥 5|
8. Napisati program kojim se unose prirodni brojevi n i k i realan broj x i izračunava vrednost z prema sledećim
uslovima:
5 𝑐𝑜𝑠2𝑥, 𝑧𝑎 𝑘 𝑛
⎧
⎪ 𝑥
, 𝑧𝑎 𝑘 𝑛 3
𝑧 7
⎨|5𝑥 1|, 𝑧𝑎 𝑘 𝑛 6
⎪
⎩√5𝑥, 𝑖𝑛𝑎č𝑒
9. Napisati program kojim se unose prirodni brojevi n i k i realan broj x i izračunava vrednost z prema sledećim
uslovima:
5𝑥 𝑥 0
𝑥 5 0 𝑥 1
𝑦
√𝑥 5 1 𝑥 7
15𝑥 1 𝑥 7
10. Na ulazu u program učitati dva broja: prirodan broj a i realan broj x>0. Napisati program koji treba na bazi
ulaza za a da izračunava vrednost za izlaz Z i da odštampa rezultate. Obavezno treba koristiti switch() i to:
- ako je a jednako 11: Z sin x cos( 2x 2 / 5)
- ako je a jednako 12: Z 1 log3x 2 x 5 cos x
- ako je a jednako 13: Z 3x 3 e ( 3x )
- a ako je a bilo šta drugo: Z Sin ( 2 x ) sin(12 x )
11. Napisati program koji za uneto izračunava y po formuli:
cos 𝑥 2.3 𝑥 2
⎧
𝑦 √𝑥 2 𝑥 5
⎨
⎩ 𝑥 𝑥 5
12. Napisati program koji za uneto izračunava y po formuli:
|𝑥 2| 𝑥 5
𝑥 5 𝑥 1
𝑦
3𝑥 𝑥 1 𝑥 5
𝑥 𝑥 5
13. Napisati program koji za uneto x i y izračunava z po formuli:
|𝑥 𝑦| 𝑥 0, 𝑦 0
𝑧 max 𝑥, 𝑦 0 𝑥 1, 1 𝑦 0
𝑥 𝑥 1, 𝑦 1
37
Praktikum iz programiranja ‐ pomoćni materijal
14. U kom se kvadrantu nalazi tačka sa koordinatama (X, Y)?
15. Napisati program koji proverava da li je prava y=kx+n tangenta elipse x2/a2 + y2/b2 =1. Uslov dodira prave i
elipse je: a2 k2 + b2 = n2
16. Da li je unešeni trocifreni broj Nivenov? Nivenov broj je broj koji je deljiv sumom svojih cifara.
17. Za uneti ugao N (N < 180) u stepenima ispisati da li je ugao N oštar, prav ili tup.
18. Uneti kubikažu automobila. Izračunati i ispisati porez (u procentima), koji se naplaćuje prilikom registracije
auta. Porez se računa u zavisnosti od kubikaže na sledeći način: za kubikažu do 1000 porez je 10%, za
kubikažu između 1000 i 2000 porez je 12,5%, a za kubikažu iznad 2000 porez je 15%.
19. Molekul vode H2O sastoji se iz dva atoma vodonika i jednog atoma kiseonika. Naći maksimalan broj
molekula vode koji se može formirati od datih A atoma vodonika i B atoma kiseonika.
20. Dva automobila startnih brojeva 1 i 2 kreću sa iste startne pozicije redom u trenucima T1 i T2 (T1 < T2),
kreću se konstantnim brzinama V1 i V2. Ispisati startni broj automobila koji je na vodećoj poziciji u trenutku
T (T > T2).
21. Ana, Boban, Vera, Goran, Dara, Đorđe, Ema i Žarko idu u isto odeljenje. Ana, Boban, Vera i Goran su dobri
matematičari a Ana, Boban, Dara i Đorđe su dobri sportisti. Jednog dana jedan od njih ne dođe u školu.
Napisati program kojim se prikazuje ime učenika koji nije u školi, tako što se odgovara na pitanja: Da li je
dečak?, Da li je matematičar? i Da li je sportista?
38