Sveiki, nesenai pradejau mokintis programavima paskaliu, todel dar nelabai suprantu kaip kaikuriuos algoritmus rasyt. Uzdavinys toks:
Sviesoforas veikia pagal toki algoritma: kiekvienos valandos pirmasias tris minutes dega zalia sviesa, po to dvi minutes - raudona, po to vel tris minutes zalia ir t.t. Zinoma, kiek minuciu t ( t - sveikasis skaicius) praejo nuo valandos pradzios. Parasykite programa kuri nustatytu, kokia sviesa dega. Kai t = 12, turi buti spausdinama: Dega zalia sviesa. Kai t = 13, turi buti spausdinam: Dega zalia sviesa, tuoj uzsidegs raudona. Kai t = 5, turi buti spausdinama: Dega raudona sviesa, tuoj uzsidegs zalia.
Niekaip nesuprantu kaip ispresti, padekit ^^
pakeista prieš 12 m
almostlow (+3116)
su ifais patikrini: jeigu t dalus is 5 - Dega raudona sviesa, tuoj uzsidegs zalia, jeigu padalinus is 5 yra liekana 3 - Dega zalia sviesa, tuoj uzsidegs raudona, jeigu liekana mazesne uz 3 - dega zalia sviesa, jeigu netinka nei vienas atvejus - dega raudona.
Fexas (+4)
Dekui uz atsakyma, bet vienoje vietoje nemoku padaryt. Nezinau kaip parasyt kad degtu raudona sviesa? Bandziau visaip su 'else':
Write ('Iveskite t: '); Readln(t); if t div 5 < 3 then writeln('Dega zalia sviesa'); if t mod 5 = 3 then writeln('Dega zalia sviesa, tuoj uzsidegs raudona'); If t div 5 = 0 then writeln('Dega raudona sviesa, tuoj uzsidegs zalia'); else writeln('Dega raudona sviesa');
almostlow (+3116)
visur turi but mod. tu tikrini ar dalinasi, ty ar liekana lygi nuliui. be to teisingiau butu kad naudotum else ifa, nes siuo atveju jis tikrins visas salygas, o reikia tik kad viena butu teisinga. su raudona sviesa viskas gerai.
pakeista prieš 12 m
Fexas (+4)
Aciu, viskas veikia puikiai ^^
Fexas (+4)
Nedaug laiko praejo ir vel strigau :D. Paprastas labai 'for' ciklo uzdavinys, reikia surasti u vidurki:
var n, i: integer; u, uvid: real; begin Write('Kiek mokiniu '); Readln (n); uvid := 0; for i := 1 to n do begin write ('Iveskite mokiniu ugius '); Readln (u); uvid := ???? end; Writeln ('Vidutinis klases mokiniu ugis uvid: ', uvid:6:2); Readln; end.
Niekaip nesuprantu ka irastyti vietoje klaustuku? Ar cia visa programa bloga?
almostlow (+3116)
Write('Kiek mokiniu '); Readln (n); uvid := 0; Write('Ivesktie mokinio ugius'); Readln(u); for i:=1 to n do begin uvid := uvid + u/n; if(i<>n) Readln(u); end;
Neprisimenu as paskalio sintakses bet mazdaug turetu buti taip. C kalboje tai atrodytu: