Kas galetu paaiskinti kaip spresti tokius uzdavinius? As pirma karta juos matau taigi nesuprantu...
PROGRAMOS SAMPRATA
Spręsdami uždavinius paprastumo dėlei laikykime, kad algoritmams pateikiami tik korektiški pradiniai duomenys bei gaunami korektiški rezultatai, t. y., ir pradiniai duomenys, ir rezultatai, gauti su šiais duomenimis atlikus algoritmą, neviršija maxint. Atkreipkite dėmesį, kad galimi keli teisingi atsakymai (ar sprendimai).
Pratimai
1. Vietoj daugtaškių įrašykite tinkamą skaičių arba sveikųjų skaičių dalybos ženklą:
a) 1 ... 6 = 0; e) 13 ... 3 = 1;
b) ... div 2 = 0; f) 15 mod ... = 0;
c) 7 ... 9 = 0; g) –7 ... 4 = -3;
d) 6 mod 2 = ...; h) 75 ... 17 ... 5 = 4.
2. Kiekviename reiškinyje praleisti vieni skliaustai. Įrašykite juos, kad būtų tenkinama lygybė:
a) 36 mod 7 + 8 - 6 div 4 = 5;
b) 36 mod 7 + 8 – 6 div 4 = 1;
c) 48 div 7 – 4 + 12 mod 5 = 5.
3. Kurie kintamųjų vardai netaisyklingi? Trumpai paaiškinkite, kodėl.
a) k; b) ab3; c) Rimas;
d) mano_arklys; e) jKlmn; f) 3ab;
g) x(5); h) mano nr; i) c;t;
j) program; k) pi; l) tu-pirmas.
4. Nustatykite, kokios bus kintamųjų x, y, z reikšmės atlikus šią sakinių seką:
x := 5 + 2 mod 5;
y := (x * x) mod x;
z := y div 15 + x mod 15 mod 11;
z := x+y+z;
5. Kurie kintamųjų aprašai neteisingi?
a) var a; b : integer;
b) var a, do : integer;
c) var a: intager;
d) var a, var_b : integer;
e) var a,
b : integer;
6. Kuriais atvejais, atlikus veiksmus, rezultatai bus spausdinami į dvi gretimas eilutes?
a) writeln ('Paspauskite įvedimo klavišą: ');
readln ();
writeln ('Įvedimo klavišas. ');
b) write ('Paspauskite įvedimo klavišą: ');
read ();
writeln ('Įvedimo klavišas. ');
c) write ('Paspauskite įvedimo klavišą: ');
readln ();
write ('Įvedimo klavišas. ');
d) writeln ('Paspauskite įvedimo klavišą: ');
read ();
write ('Įvedimo klavišas. ');
e) writeln ('Paspauskite įvedimo klavišą: ');
read ();
writeln ('Įvedimo klavišas.').
7. Ar yra neteisingų priskyrimo sakinių? Jei taip, nurodykite kurie ir trumpai paaiškinkite kodėl.
a) x := 1 -3;
b) 5 := 4 + 1;
c) x := x := 2;
d) x := (7 mod 5);
e) x := x;
8. Kompiuteriui buvo pateikti tokie pradiniai duomenys:
1.8 -12
Kas bus išspausdinta, atlikus šiuos sakinius:
read (x, y);
x := x + x;
y := x + y;
writeln (x : 9 : 5,' ', y : 0 : 0);
Tarpus pažymėkite pabraukimo brūkšniais.
Uždaviniai
9. Duotos dvi programos:
1) program sumavimas;
var tr, { pradinis duomuo – sveikas skaičius nuo 0 iki 999 }
suma, { rezultatas }
s1, s2, s3 : integer;
begin
read (tr);
s1 := tr div 100;
s2 := tr div 10 mod 10;
s3 := tr mod 10;
suma := s1 + s2 + s3;
write (suma)
end.
2) program sumavimas;
var tr, { pradinis duomuo – sveikas skaičius nuo 0 iki 999 }
suma : integer; { rezultatas }
begin
read (tr);
suma := tr div 100 + tr div 10 + tr mod 10;
write (suma)
end.
Ar abi programos visada spausdins tą patį rezultatą? Bet kuriuo atveju paaiškinkite, kada ir kodėl rezultatai sutampa.
10. Duotas algoritmas:
program pavyzdys;
var sk, { natūralusis triženklis skaičius }
rez, { rezultatas }
s1, s2, s3: integer;
begin
readln (sk); s2 := sk div 10 mod 10; s3 := sk mod 10;
s1 := sk div 100;
rez := sk; rez := (s1+s3)*100+s2*s2*10+s1+s3; write (rez)
end.
Paaiškinkite, ką daro ši programa. Sutvarkykite algoritmo tekstą. Kur reikia, parašykite tinkamus komentarus.
11. Kiek valandų, minučių ir sekundžių sudaro duotas laiko tarpas sekundėmis (pvz., 25000 sekundžių yra 6 valandos, 56 minutės ir 40 sekundžių). Pradėta rašyti programa:
program laikas;
var laikas, { pradinis duomuo }
minutes, valandos, sekundes: integer;
begin
writeln('Laikas ');read (laikas); valandos := ...; minutes := ...; sekundes := ...; writeln (valandos,' ',minutes,' ',sekundes)
end.
A. Perrašykite programą jos tekstą išdėstydami taip, kad programa taptų aiškesnė ir vaizdesnė.
B. Vietoj daugtaškių įrašykite trūkstamus reiškinius.
12. Nuo šaulio iki taikinio yra j1 jardų (1 jardas lygus 3 pėdoms), p1 pėdų (1 pėda lygi 12 colių) ir c1 colių. Šaulys paėjo link taikinio j2 jardus, p2 pėdas ir c2 colius. Parašykite programą naujam atstumui, išreikštam jardais (j), pėdom (p) ir coliais (c), tarp šaulio ir taikinio rasti.
13. D. Britanijoje skysčiai buvo matuojami galonais ir bušeliais; 8 galonai sudarė bušelį, 4,55 litrai sudarė galoną. Parašykite programą dviems skysčio kiekiams sudėti: pirmas pateiktas angliškais vienetais, o antrą sudaro 13,65 kartus daugiau litrų, nei galonų pirmame. Rezultatas išreiškiamas tiek angliškais vienetais, tiek litrais. Pavyzdžiui, turime 5 bušelius ir 3 galonus, tai sudedame su 586,95 litrų ir suma bus lygi 21 bušeliui ir 4 galonui, arba 782,6 litrų. Pradiniai duomenys – du sveikieji skaičiai.
Pastaba. Programoje leistina naudoti tik sveikojo tipo kintamuosius.
14. Tegu k – sveikasis skaičius nuo 1 iki 365. Parašykite programą, kuri priskirtų sveikajam kintamajam n reikšmę 1, 2, ..., 6 arba 7 priklausomai nuo to, kuri savaitės diena (pirmadienis, antradienis, ..., šeštadienis ar sekmadienis) yra k-toji paprastų (nekeliamųjų) metų, kurių sausio 1-oji yra pirmadienis, diena.
15. Krepšelyje buvo n obuolių. Atėjo vienas brolis, padalijo obuolius į tris dalis, likutį ir dvi dalis paliko krepšelyje (obuolių skaičius galėjo ir nesidalyti iš trijų), o trečiąją dalį obuolių suvalgė. Po kurio laiko atėjo antrasis brolis, dar vėliau – trečiasis brolis. Kiekvienas jų irgi padarė tą patį.
Parašykite programą (be ciklų!), kuri skaičiuotų, kiek obuolių liko krepšelyje apsilankius visiems trims broliams.
Kas galetu paaiskinti kaip spresti tokius uzdavinius?
G.Grigas El. knyga "Programavimas Paskaliu"
http://www.ipc.lt/21z/mokymas/mokymopr/el/ek/knyga1.htm
http://www.ipc.lt/21z/mokymas/mokymopr/el/ek/knyga1.htm
Never argue with an idiot. They bring you down to their level and beat you with experience.
Dabar prisijungę
Vartotojai naršantys šį forumą: 4 ir 0 svečių