Precvičenie používania vetvenia v programoch
Riešenia úloh
1. Program, ktorý načíta koľko banánov zje opičia rodina za jeden deň a počet banánov, ktoré
chovateľ priviezol a vypíše, či bude stačiť toľko banánov na jeden týždeň.
var b,pb:integer;
begin
write('Zadaj spotrebu bananov na jeden den: ');
readln(b);
write('Zadaj pocet privezenych bananov: ');
readln(pb);
if pb>=7*b then write('Bananov je dost.')
else write('Bananov je malo!');
readln;
end.
2. Program, ktorý načíta priemer kruhovej fontány v metroch a dĺžku kvádra na obrubník v cm
a vypíše počet kvádrov, ktoré treba kúpiť na celý obrubník. (Je veľká pravdepodobnosť, že
z posledného kvádra budeme rezať.)
var k,poc:integer;
d,o:real;
begin
write('Zadaj priemer fontany v m: ');
readln(d);
write('Zadaj dlzku kvadra v cm: ');
readln(k);
o:=pi*d*100;
poc:=round(o) div k;
if (round(o) mod k) <> 0 then poc:=poc+1;
writeln('Pocet kvadrov na obrubnik fontany: ',poc);
readln;
end.
3. Program, ktorý prečíta najhoršiu známku žiaka na vysvedčení a priemer jeho známok a vypíše
jeho celkový prospech. Mal/a by si vedieť, že žiak môže prospieť s vyznamenaním, ak má
priemer známok menší a zároveň rovný 1,5 a jeho najhoršou známkou je dvojka. Žiak prospieva
veľmi dobre, ak má priemer známok menší a zároveň rovný 2 a jeho najhoršou známkou je
trojka. Žiak prospieva, ak jeho najhoršia známka na vysvedčení je štvorka a neprospieva vtedy,
ak jeho najhoršou známkou na vysvedčení je pätorka.
var nz:integer;
p:real;
begin
write('Zadaj priemer znamok: ');
readln(p);
write('Zadaj najhorsiu znamku: ');
readln(nz);
case nz of
1: writeln('Prospel s vyznamenaním.');
2: if p<=1.5 then writeln('Prospel s vyznamenaním.')
else writeln('Prospel veľmi dobre.');
3: if p<=2.0 then writeln('Prospel veľmi dobre.' )
else writeln('Prospel.');
4: writeln('Prospel.');
5: writeln('Neprospel.');
end;
readln;
end.
4. Potrebujeme oplotiť záhradu obdĺžnikového tvaru. Program, ktorý načíta rozmery záhrady
a dĺžku pletiva, ktoré máme kúpené a vypíše, či treba ešte pletivo dokúpiť alebo nie.
var a,b,dp:integer;
begin
write('Zadaj dlzku zahrady: ');
readln(a);
write('Zadaj sirku zahrady: ');
readln(b);
write('Zadaj dlzku kupeneho pletiva: ');
readln(dp);
if 2*(a+b) > dp then writeln('Pletivo musis dokupit!')
else writeln('Pletivo mas dost, mozes robit plot.');
readln;
end.
5. Ideme upiecť piškótové cesto, do ktorého treba toľko múky, koľko vážia vajíčka. Jedno vajíčko
váži 40 g. Program, ktorý načíta počet vajíčok, z koľkých chceme cesto upiecť a množstvo múky
v gramoch, ktoré doma máme a vypíše, či sa môžeme pustiť do pečenia alebo nie.
var v,m:integer;
begin
write('Zadaj pocet vajicok: ');
readln(v);
write('Zadaj mnozstvo muky: ');
readln(m);
if v*40 > m then writeln('Oddychni si!')
else writeln('Mozes sa pustit do pecenia.');
readln;
end.
6. Program, ktorý načíta reálne číslo z intervalu <0, 100), zaokrúhli ho na desiatky a výsledok
vypíše slovne, napr. načíta číslo 25,8. Toto číslo zaokrúhlené na desiatky je 30. Program teda
vypíše slovo „tridsať“.
var ac:integer;
a:real;
begin
write('Zadaj realne cislo z intervalu <0, 100): ');
readln(a);
ac:=round(a/10);
case ac of
0: writeln('Po zaokruhleni nula.');
1: writeln('Po zaokruhleni desat.');
2: writeln('Po zaokruhleni dvadsat.');
3: writeln('Po zaokruhleni tridsat.');
4: writeln('Po zaokruhleni styridsat.');
5: writeln('Po zaokruhleni patdesiat.');
6: writeln('Po zaokruhleni sestdesat.');
7: writeln('Po zaokruhleni sedemdesiat.');
8: writeln('Po zaokruhleni osemdesiat.');
9: writeln('Po zaokruhleni devatdesiat.');
10: writeln('Po zaokruhleni sto.');
end;
readln;
end.
7. Program, ktorý načíta teplotu vody a teplotu, od ktorej považuješ vodu za teplú a vypíše, či je
táto voda teplá alebo nie.
var t1,t2:real;
begin
write('Zadaj teplotu vody: ');
readln(t1);
write('Zadaj teplotu teplej vody: ');
readln(t2);
if t1>=t2 then write('Voda je tepla.')
else write('Voda je studena.');
readln;
end.
8. Program, ktorý načíta dĺžku trasy nákladného vlaku, jeho priemernú rýchlosť a predpokladanú
dobu prechodu traťou a vypíše, či ju vlak bude meškať alebo nie.
var s,v,t:real;
begin
write('Zadaj dlzku trasy nakladneho vlaku: ');
readln(s);
write('Zadaj priemernu rychlost vlaku: ');
readln(v);
write('Zadaj predpokladanu dobu prechodu vlaku tratou: ');
readln(t);
if s/v > t then writeln('Vlak bude meskat!')
else writeln('Vlak pride nacas.');
readln;
end.
9. Program, ktorý načíta reálne číslo a zistí a vypíše celou vetou, či toto číslo je kladné alebo nie
je.
var a:real;
begin
write('Zadaj realne cislo: ');
readln(a);
if a>=0 then write('Cislo je kladne.')
else write('Cislo je zaporne.');
readln;
end.
10. Program, ktorý načíta celé číslo a k párnemu číslu pripočíta číslo 1.
var a:integer;
begin
write('Zadaj cele cislo: ');
readln(a);
if a mod 2 = 0 then a:=a+1;
write('Cislo po uprave: ',a);
readln;
end.
11. V sade rastie 40 broskyňových stromov. Program, ktorý načíta priemerné množstvo broskýň,
ktoré oberieme z jedného stromu a počet broskýň, ktoré uložíme do jednej škatule a vypíše,
koľko škatúľ treba na oberačku pripraviť.
var bn,bs,poc:integer;
begin
write('Zadaj priemerne mnozstvo broskyn z jedneho stromu: ');
readln(bn);
write('Zadaj pocet broskyn do jednej skatule: ');
readln(bs);
poc:=bn*40 div bs;
if bn*40 mod bs > 0 then poc:=poc+1;
writeln('Na oberacku priprav ',poc, ' skatul.');
readln;
end.
12. Program, ktorý načíta celé číslo a vypíše celou vetou, či je z intervalu (-∞,50> a otestuj ju pre
tieto hodnoty: -7, 0, 50 a 90.
var a:integer;
begin
write('Zadaj cele cislo: ');
readln(a);
if a<=50 then write('Cislo patri do zadaneho intervalu.')
else write(Cislo nepatri do zadaneho intervalu.');
readln;
end.
13. Program, ktorý načíta tri reálne čísla a vypíše najväčšie z načítaných čísel.
var a,b,c:real;
begin
write('Zadaj 1. realne cislo: ');
readln(a);
write('Zadaj 2. realne cislo: ');
readln(b);
write('Zadaj 3. realne cislo: ');
readln(c);
if (a>b) and (a>c) then writeln(Najvacsie cislo je ',a:0:2);
if (b>a) and (b>c) then writeln(Najvacsie cislo je ',b:0:2);
if (c>b) and (c>a) then writeln(Najvacsie cislo je ',c:0:2);
readln;
end.
14. Program, ktorý načíta mesiac a vypíše počet dní v tomto mesiaci. Predpokladáme, že február
má 28 dní.
var m:integer;
begin
write('Zadaj poradove cislo mesiaca v roku: ');
readln(m);
case m of
1: writeln('Januar ma 31 dni.');
2: writeln('Februar ma 28 dni.');
3: writeln('Marec ma 31 dni.');
4: writeln('April ma 30 dni.');
5: writeln('Maj ma 31 dni.');
6: writeln('Jun ma 30 dni.');
7: writeln('Jul ma 31 dni.');
8: writeln('August ma 31 dni.');
9: writeln('September ma 30 dni.');
10: writeln('Oktober ma 31 dni.');
11: writeln('November ma 30 dni.');
12: writeln('December ma 31 dni.');
else writeln('Takyto mesiac v roku neexistuje!');
end;
readln;
end.
15. Program, ktorý načíta tri reálne čísla a vypíše najmenšie z načítaných čísel.
var a,b,c:integer;
begin
write('Zadaj 1. realne cislo: ');
readln(a);
write('Zadaj 2. realne cislo: ');
readln(b);
write('Zadaj 3. realne cislo: ');
readln(c);
if (a<b) and (a<c) then writeln(Najmensie cislo je ',a:0:2);
if (b<a) and (b<c) then writeln(Najmensie cislo je ',b:0:2);
if (c<b) and (c<a) then writeln(Najmensie cislo je ',c:0:2);
readln;
end.
16. Program, ktorý načíta celé číslo a vypíše, či je z intervalu (-23,∞) a otestuj ju pre tieto hodnoty:
-50, -23, 0 a 100.
var a:integer;
begin
write('Zadaj cele cislo: ');
readln(a);
if a>-23 then write('Cislo patri do zadaneho intervalu.')
else write('Cislo nepatri do zadaneho intervalu.');
readln;
end.
17. Program, ktorý načíta celé číslo a vypíše jeho absolútnu hodnotu.
var a:integer;
begin
write('Zadaj cele cislo: ');
readln(a);
if a<0 then a:=a*(-1);
write('Absolutna hodnota cisla je ',a);
readln;
end.
18. Program, ktorý načíta počet dievčat a počet chlapcov, ktorí prišli na diskotéku a vypíše, či každé
dievča bude mať partnera.
var d,ch:integer;
begin
write('Zadaj pocet dievcat na diskoteke: ');
readln(d);
write('Zadaj pocet chlapcov na diskoteke: ');
readln(ch);
if d>ch then write('Kazde dievca nebude mat partnera.')
else write(' Kazde dievca bude mat partnera.');
readln;
end.
19. Program, ktorý načíta počet deti a počet cukríkov v jednom dezerte a vypíše, koľko dezertov
treba kúpiť, aby sa ušlo každému dieťaťu.
var d,c,poc:integer;
begin
write('Zadaj pocet deti: ');
readln(d);
write('Zadaj pocet cukrikov v jednom dezerte: ');
readln(c);
poc:=d div c;
if d mod c > 0 then poc:=poc+1;
writeln('Kup ',poc, ' dezertov. ');
readln;
end.
20. Program, ktorý načíta priemer vajíčka a zaradí ho do veľkostnej skupiny takto: skupina A – nad
5 cm, skupina B – nad 4 cm, skupina C – nad 3 cm a napokon skupina D 3cm a pod 3 cm.
var p:integer;
begin
write('Zadaj priemer vajicka: ');
readln(p);
if p>5 then writeln('Skupina A');
if (p<=5) and (p>4) then writeln('Skupina B');
if (p<=4) and (p>3) then writeln('Skupina C');
if p<=3 then writeln('Skupina D');
readln;
end.
Download

Riešenia úloh