360 likes | 477 Views
IF stavek - odločitveni stavek v programskem jeziku Turbo Pascal (teorija in primer uporabe). ŠC PTUJ, POKLICNA IN TEHNIŠKA ELEKTRO ŠOLA Volkmerjeva 19, 2250 Ptuj Predmet: Algoritmi in programski jeziki. Franc.Vrbancic@guest.arnes.si, 2002.
E N D
IF stavek - odločitveni stavek v programskem jeziku Turbo Pascal (teorija in primer uporabe) ŠC PTUJ,POKLICNA IN TEHNIŠKA ELEKTRO ŠOLAVolkmerjeva 19, 2250 PtujPredmet: Algoritmi in programski jeziki Franc.Vrbancic@guest.arnes.si, 2002
Odločitveni stavek IF nam omogoča, da z uporabo pogojev določimo, katera opravila, ukaze, prireditve bomo izvajali. To zaporedje stavkov se izvrši, če je pogoj pravilen (true). To zaporedje stavkov sledi then, ki se izvrši, če je pogoj pravilen (true). To zaporedje stavkov sledi else, ki se izvrši, če je pogoj nepravilen (false). Osnovna verzija IF stavka: IF pogoj THEN BEGIN zaporedje stavkov, opravil; END; Razširjena verzija IF stavka: IF pogoj THEN BEGIN zaporedje stavkov 1, opravil1; END ELSE BEGIN zaporedje stavkov 2, opravil2; END;
Izgled razširjenega IF stavka: Diagram poteka: Pogoj IF stavka pogoj zaporedje stavkov 1. zaporedjestavkov 2 Zapis v Turbo Pascalu: nadaljevanje programa pogoj nepravilen pogoj pravilen IF pogoj THEN BEGIN zaporedje stavkov 1; END ELSE BEGIN zaporedje stavkov 2; END; lahko nastopa ali ne
Pri IF stavku moramo upoštevati : • če je pogoj TRUE (pravilen) se izvršijo stavki za THEN, • če je pogoj FALSE (nepravilen) se izvršijo stavki za ELSE, • BEGIN in END sta obvezna, če za then (ali else) sledi več stavkov, drugače ju lahko izpustimo, • ELSE je opcija - lahko nastopa ali ne.
Naloga: Napiši program, ki bo čital par števil in izpisal katero je večje. Program ifstavek; (* ime programa*) Begin (*glavni start*) End. (*konec glavni*) Navodila: Najprej napišimo ogrodje programa. Z rdečo barvo so označene spremembe programa.
Naloga: Napiši program, ki bo čital par števil in izpisal katero je večje. Program ifstavek; (* ime programa*) Begin (*glavni start*) End. (*konec glavni*) Var stev1 :Integer; (*prvo število*) Write('Podaj prvo število: '); (*navodila uporabniku *) Readln(stev1); (*prečitam prvo število*) Navodila: Dodajmo navodila uporabniku in čitajmo prvo število.
Naloga: Napiši program, ki bo čital par števil in izpisal katero je večje. , stev2 Write('Podaj drugo število: '); Readln(stev2); Program ifstavek; (* ime programa*) Var stev1 : Integer; (*par števil*) Begin (*glavni start*) Write('Podaj prvo število: '); (*navodila uporabniku *) Readln(stev1); (*prečitam prvo število*) End. (*konec glavni*) Navodila: Čitajmo drugo število.
Naloga: Napiši program, ki bo čital par števil in izpisal katero je večje. Program ifstavek; (* ime programa*) Var stev1, stev2: Integer; (*par števil*) Begin (*glavni start*) Write('Podaj prvo število: '); (*navodila uporabniku *) Readln(stev1); (*prečitam prvo število*) Write('Podaj drugo število: '); Readln(stev2); End. (*konec glavni*) If stev1 > stev2 Then Begin (*prvo število je večje*) Writeln(’Večje je prvo število: ’, stev1 ); (* izpis*) Write(’Manjše je drugo število: ’, stev2); End; Readln; (* da si ogledam izpis na monitorju*) Navodila: Preverimo ali je prvo število večje in ugotovitev izpišemo.
Naloga: Napiši program, ki bo čital par števil in izpisal katero je večje. Program ifstavek; (* ime programa*) Var stev1, stev2: Integer; (*par števil*) Begin (*glavni start*) Write('Podaj prvo število: '); (*navodila uporabniku *) Readln(stev1); (*prečitam prvo število*) Write('Podaj drugo število: '); Readln(stev2); If stev1 > stev2 Then Begin (*prvo število je večje*) Writeln(’Večje je prvo število: ’, stev1 ); (* izpisi*) Write(’Manjše je drugo število: ’, stev2); End Readln; (* da si ogledam izpis na monitorju*) End. (*konec glavni*) Else (*konec if then*) Begin (*drugo število je večje*) Writeln(’Večje je drugo število: ’, stev2); Write(’Manjše je prvo število: ’, stev1); End; (*konec if else*) Navodila: Dodajmo možnost, da je drugo število večje..
Naloga: Napiši program, ki bo čital par števil in izpisal katero je večje. Program ifstavek; (* ime programa*) Var stev1, stev2: Integer; (*par števil*) Begin (*glavni start*) Write('Podaj prvo število: '); (*navodila uporabniku *) Readln(stev1); (*prečitam prvo število*) Write('Podaj drugo število: '); Readln(stev2); If stev1 > stev2 Then Begin (*prvo število je večje*) Writeln(’Večje je prvo število: ’, stev1 ); (* izpisi*) Write(’Manjše je drugo število: ’, stev2); End Else Begin (*drugo število je večje*) Writeln(’Večje je drugo število: ’, stev2); Write(’Manjše je prvo število: ’, stev1); End; Readln; (* da si ogledam izpis na monitorju*) End. (*konec glavni*) Navodila: Program je končan. Oglejmo si njegovo delovanje.
Delovanja programa: Standardna izhodna enota Program ifstavek; Var stev1, stev2: Integer; Begin Write('Podaj prvo število: '); Readln(stev1); Write('Podaj drugo število: '); Readln(stev2); If stev1 > stev2 Then Begin Writeln(’Večje je prvo število: ’, stev1 ); Write(’Manjše je drugo število: ’, stev2); End Else Begin Writeln(’Večje je drugo število: ’, stev2); Write(’Manjše je prvo število: ’, stev1); End; Readln; End. Tipkovnica: Pomnilnik: Rezerviramo prostor velikosti 16 bitov za spremenljivko “stev1”in 16 bitov za “stev2”. stev1=naključna vrednost stev2=naključna vrednost
Delovanja programa: Standardna izhodna enota Program ifstavek; Var stev1, stev2: Integer; Begin Write('Podaj prvo število: '); Readln(stev1); Write('Podaj drugo število: '); Readln(stev2); If stev1 > stev2 Then Begin Writeln(’Večje je prvo število: ’, stev1 ); Write(’Manjše je drugo število: ’, stev2); End Else Begin Writeln(’Večje je drugo število: ’, stev2); Write(’Manjše je prvo število: ’, stev1); End; Readln; End. Tipkovnica: Pomnilnik: stev1=0 stev2=0
Delovanja programa: Standardna izhodna enota Podaj prvo število: Program ifstavek; Var stev1, stev2: Integer; Begin Write('Podaj prvo število: '); Readln(stev1); Write('Podaj drugo število: '); Readln(stev2); If stev1 > stev2 Then Begin Writeln(’Večje je prvo število: ’, stev1 ); Write(’Manjše je drugo število: ’, stev2); End Else Begin Writeln(’Večje je drugo število: ’, stev2); Write(’Manjše je prvo število: ’, stev1); End; Readln; End. Tipkovnica: Pomnilnik: stev1=0 stev2=0
Delovanja programa: Standardna izhodna enota Podaj prvo število: 456 Program ifstavek; Var stev1, stev2: Integer; Begin Write('Podaj prvo število: '); Readln(stev1); Write('Podaj drugo število: '); Readln(stev2); If stev1 > stev2 Then Begin Writeln(’Večje je prvo število: ’, stev1 ); Write(’Manjše je drugo število: ’, stev2); End Else Begin Writeln(’Večje je drugo število: ’, stev2); Write(’Manjše je prvo število: ’, stev1); End; Readln; End. Tipkovnica: Vtipkam število 456. Pomnilnik: stev1=456 stev2=0
Delovanja programa: Standardna izhodna enota Podaj prvo število: 456 Podaj drugo število: Program ifstavek; Var stev1, stev2: Integer; Begin Write('Podaj prvo število: '); Readln(stev1); Write('Podaj drugo število: '); Readln(stev2); If stev1 > stev2 Then Begin Writeln(’Večje je prvo število: ’, stev1 ); Write(’Manjše je drugo število: ’, stev2); End Else Begin Writeln(’Večje je drugo število: ’, stev2); Write(’Manjše je prvo število: ’, stev1); End; Readln; End. Tipkovnica: Pomnilnik: stev1=456 stev2=0
Delovanja programa: Standardna izhodna enota Podaj prvo število: 456 Podaj drugo število: 123 Program ifstavek; Var stev1, stev2: Integer; Begin Write('Podaj prvo število: '); Readln(stev1); Write('Podaj drugo število: '); Readln(stev2); If stev1 > stev2 Then Begin Writeln(’Večje je prvo število: ’, stev1 ); Write(’Manjše je drugo število: ’, stev2); End Else Begin Writeln(’Večje je drugo število: ’, stev2); Write(’Manjše je prvo število: ’, stev1); End; Readln; End. Tipkovnica: Vtipkam število 123. Pomnilnik: stev1=456 stev2=123
Delovanja programa: Standardna izhodna enota Podaj prvo število: 456 Podaj drugo število: 123 Program ifstavek; Var stev1, stev2: Integer; Begin Write('Podaj prvo število: '); Readln(stev1); Write('Podaj drugo število: '); Readln(stev2); If stev1 > stev2 Then Begin Writeln(’Večje je prvo število: ’, stev1 ); Write(’Manjše je drugo število: ’, stev2); End Else Begin Writeln(’Večje je drugo število: ’, stev2); Write(’Manjše je prvo število: ’, stev1); End; Readln; End. Tipkovnica: Pomnilnik: Pogoj: stev1=456 stev2=123 456 > 123: pravilen (true)
Delovanja programa: Standardna izhodna enota Podaj prvo število: 456 Podaj drugo število: 123 Večje je prvo število: 456 Program ifstavek; Var stev1, stev2: Integer; Begin Write('Podaj prvo število: '); Readln(stev1); Write('Podaj drugo število: '); Readln(stev2); If stev1 > stev2 Then Begin Writeln(’Večje je prvo število: ’, stev1 ); Write(’Manjše je drugo število: ’, stev2); End Else Begin Writeln(’Večje je drugo število: ’, stev2); Write(’Manjše je prvo število: ’, stev1); End; Readln; End. Tipkovnica: Pomnilnik: Pogoj: stev1=456 stev2=123 456 > 123 : true
Delovanja programa: Standardna izhodna enota Podaj prvo število: 456 Podaj drugo število: 123 Večje je prvo število: 456 Manjše je drugo število: 123 Program ifstavek; Var stev1, stev2: Integer; Begin Write('Podaj prvo število: '); Readln(stev1); Write('Podaj drugo število: '); Readln(stev2); If stev1 > stev2 Then Begin Writeln(’Večje je prvo število: ’, stev1 ); Write(’Manjše je drugo število: ’, stev2); End Else Begin Writeln(’Večje je drugo število: ’, stev2); Write(’Manjše je prvo število: ’, stev1); End; Readln; End. Tipkovnica: Pomnilnik: Pogoj: stev1=456 stev2=123 456 > 123 : true
Delovanja programa: Standardna izhodna enota Podaj prvo število: 456 Podaj drugo število: 123 Večje je prvo število: 456 Manjše je drugo število: 123 Program ifstavek; Var stev1, stev2: Integer; Begin Write('Podaj prvo število: '); Readln(stev1); Write('Podaj drugo število: '); Readln(stev2); If stev1 > stev2 Then Begin Writeln(’Večje je prvo število: ’, stev1 ); Write(’Manjše je drugo število: ’, stev2); End Else Begin Writeln(’Večje je drugo število: ’, stev2); Write(’Manjše je prvo število: ’, stev1); End; Readln; End. Tipkovnica: Vtipkam katerikoli znak na tipkovnici Pomnilnik: Pogoj: stev1=456 stev2=123 456 > 123 : true
Delovanja programa: Program se konča, vrnemo se v okolje kjer smo program zagnali. Standardna izhodna enota Program ifstavek; Var stev1, stev2: Integer; Begin Write('Podaj prvo število: '); Readln(stev1); Write('Podaj drugo število: '); Readln(stev2); If stev1 > stev2 Then Begin Writeln(’Večje je prvo število: ’, stev1 ); Write(’Manjše je drugo število: ’, stev2); End Else Begin Writeln(’Večje je drugo število: ’, stev2); Write(’Manjše je prvo število: ’, stev1); End; Readln; End. Tipkovnica: Pomnilnik: Rezerviran prostor za spremenljivke se sprosti in je na razpolago drugim programom.
Delovanja programa: drugo število je večje od prvega. Standardna izhodna enota Program ifstavek; Var stev1, stev2: Integer; Begin Write('Podaj prvo število: '); Readln(stev1); Write('Podaj drugo število: '); Readln(stev2); If stev1 > stev2 Then Begin Writeln(’Večje je prvo število: ’, stev1 ); Write(’Manjše je drugo število: ’, stev2); End Else Begin Writeln(’Večje je drugo število: ’, stev2); Write(’Manjše je prvo število: ’, stev1); End; Readln; End. Tipkovnica: Pomnilnik: Rezerviramo prostor velikosti 16 bitov za spremenljivko “stev1”in 16 bitov za “stev2”. stev1=naključna vrednost stev2=naključna vrednost
Delovanja programa: drugo število je večje od prvega. Standardna izhodna enota Program ifstavek; Var stev1, stev2: Integer; Begin Write('Podaj prvo število: '); Readln(stev1); Write('Podaj drugo število: '); Readln(stev2); If stev1 > stev2 Then Begin Writeln(’Večje je prvo število: ’, stev1 ); Write(’Manjše je drugo število: ’, stev2); End Else Begin Writeln(’Večje je drugo število: ’, stev2); Write(’Manjše je prvo število: ’, stev1); End; Readln; End. Tipkovnica: Pomnilnik: stev1=0 stev2=0
Delovanja programa: drugo število je večje od prvega. Standardna izhodna enota Podaj prvo število: Program ifstavek; Var stev1, stev2: Integer; Begin Write('Podaj prvo število: '); Readln(stev1); Write('Podaj drugo število: '); Readln(stev2); If stev1 > stev2 Then Begin Writeln(’Večje je prvo število: ’, stev1 ); Write(’Manjše je drugo število: ’, stev2); End Else Begin Writeln(’Večje je drugo število: ’, stev2); Write(’Manjše je prvo število: ’, stev1); End; Readln; End. Tipkovnica: Pomnilnik: stev1=0 stev2=0
Delovanja programa: drugo število je večje od prvega. Standardna izhodna enota Podaj prvo število: 234 Program ifstavek; Var stev1, stev2: Integer; Begin Write('Podaj prvo število: '); Readln(stev1); Write('Podaj drugo število: '); Readln(stev2); If stev1 > stev2 Then Begin Writeln(’Večje je prvo število: ’, stev1 ); Write(’Manjše je drugo število: ’, stev2); End Else Begin Writeln(’Večje je drugo število: ’, stev2); Write(’Manjše je prvo število: ’, stev1); End; Readln; End. Tipkovnica: Vtipkam število 234. Pomnilnik: stev1=234 stev2=0
Delovanja programa: drugo število je večje od prvega. Standardna izhodna enota Podaj prvo število: 234 Podaj drugo število: Program ifstavek; Var stev1, stev2: Integer; Begin Write('Podaj prvo število: '); Readln(stev1); Write('Podaj drugo število: '); Readln(stev2); If stev1 > stev2 Then Begin Writeln(’Večje je prvo število: ’, stev1 ); Write(’Manjše je drugo število: ’, stev2); End Else Begin Writeln(’Večje je drugo število: ’, stev2); Write(’Manjše je prvo število: ’, stev1); End; Readln; End. Tipkovnica: Pomnilnik: stev1=234 stev2=0
Delovanja programa: drugo število je večje od prvega. Standardna izhodna enota Podaj prvo število: 234 Podaj drugo število: 8123 Program ifstavek; Var stev1, stev2: Integer; Begin Write('Podaj prvo število: '); Readln(stev1); Write('Podaj drugo število: '); Readln(stev2); If stev1 > stev2 Then Begin Writeln(’Večje je prvo število: ’, stev1 ); Write(’Manjše je drugo število: ’, stev2); End Else Begin Writeln(’Večje je drugo število: ’, stev2); Write(’Manjše je prvo število: ’, stev1); End; Readln; End. Tipkovnica: Vtipkam število 8123. Pomnilnik: stev1=234 stev2=8123
Delovanja programa: drugo število je večje od prvega. Standardna izhodna enota Podaj prvo število: 234 Podaj drugo število: 8123 Program ifstavek; Var stev1, stev2: Integer; Begin Write('Podaj prvo število: '); Readln(stev1); Write('Podaj drugo število: '); Readln(stev2); If stev1 > stev2 Then Begin Writeln(’Večje je prvo število: ’, stev1 ); Write(’Manjše je drugo število: ’, stev2); End Else Begin Writeln(’Večje je drugo število: ’, stev2); Write(’Manjše je prvo število: ’, stev1); End; Readln; End. Tipkovnica: Pomnilnik: Pogoj: stev1=234 stev2=8123 234 > 8123: false (nepravilen)
Delovanja programa: drugo število je večje od prvega. Standardna izhodna enota Podaj prvo število: 234 Podaj drugo število: 8123 Večje je drugo število: 8123 Program ifstavek; Var stev1, stev2: Integer; Begin Write('Podaj prvo število: '); Readln(stev1); Write('Podaj drugo število: '); Readln(stev2); If stev1 > stev2 Then Begin Writeln(’Večje je prvo število: ’, stev1 ); Write(’Manjše je drugo število: ’, stev2); End Else Begin Writeln(’Večje je drugo število: ’, stev2); Write(’Manjše je prvo število: ’, stev1); End; Readln; End. Tipkovnica: Pomnilnik: Pogoj: stev1=234 stev2=8123 234 > 8123 : false
Delovanja programa: drugo število je večje od prvega. Standardna izhodna enota Podaj prvo število: 234 Podaj drugo število: 8123 Večje je drugo število: 8123 Manjše je prvo število: 234 Program ifstavek; Var stev1, stev2: Integer; Begin Write('Podaj prvo število: '); Readln(stev1); Write('Podaj drugo število: '); Readln(stev2); If stev1 > stev2 Then Begin Writeln(’Večje je prvo število: ’, stev1 ); Write(’Manjše je drugo število: ’, stev2); End Else Begin Writeln(’Večje je drugo število: ’, stev2); Write(’Manjše je prvo število: ’, stev1); End; Readln; End. Tipkovnica: Pomnilnik: Pogoj: stev1=234 stev2=8123 234 > 8123 : false
Delovanja programa: drugo število je večje od prvega. Standardna izhodna enota Podaj prvo število: 234 Podaj drugo število: 8123 Večje je drugo število: 8123 Manjše je prvo število: 234 Program ifstavek; Var stev1, stev2: Integer; Begin Write('Podaj prvo število: '); Readln(stev1); Write('Podaj drugo število: '); Readln(stev2); If stev1 > stev2 Then Begin Writeln(’Večje je prvo število: ’, stev1 ); Write(’Manjše je drugo število: ’, stev2); End Else Begin Writeln(’Večje je drugo število: ’, stev2); Write(’Manjše je prvo število: ’, stev1); End; Readln; End. Tipkovnica: Vtipkam katerikoli znak na tipkovnici Pomnilnik: Pogoj: stev1=234 stev2=8123 234 > 8123 : false
Delovanja programa: Program se konča, vrnemo se v okolje kjer smo program zagnali. Standardna izhodna enota Program ifstavek; Var stev1, stev2: Integer; Begin Write('Podaj prvo število: '); Readln(stev1); Write('Podaj drugo število: '); Readln(stev2); If stev1 > stev2 Then Begin Writeln(’Večje je prvo število: ’, stev1 ); Write(’Manjše je drugo število: ’, stev2); End Else Begin Writeln(’Večje je drugo število: ’, stev2); Write(’Manjše je prvo število: ’, stev1); End; Readln; End. Tipkovnica: Pomnilnik: Rezerviran prostor za spremenljivke se sprosti in je na razpolago drugim programom.
Dodatno delo: Dodaj,da uporabnik določi, koliko parov števil bomo primerjali. Program ifstavek; (* ime programa*) Var stev1, stev2: Integer; (*par števil*) st_parov: ShortInt; (* število parov(8bitov) *) I : integer; (*stevec for zanke (16 bitov)*) Begin (*glavni start*) Write(’Vpisi stevilo parov za primerjavo: ’); Readln (st_parov); For I:=1 to st_parov do begin (*start for*) Writeln(i,'. par števil.'); (*kateri par primerjam*) Write('Podaj prvo število: '); (*navodila uporabniku *) Readln(stev1); (*prečitam prvo število*) Write('Podaj drugo število: '); Readln(stev2); If stev1 > stev2 Then Begin (*prvo število je večje*) Writeln(’Večje je prvo število: ’, stev1 ); (* izpisi*) Writeln(’Manjše je drugo število: ’, stev2); End Else Begin (*drugo število je večje*) Writeln(’Večje je drugo število: ’, stev2); Writeln(’Manjše je prvo število: ’, stev1); End; end; (*konec for*) Readln; (* da si ogledam izpis na monitorju*) End. (*konec glavni*)
Končni izgled programa s komentarji Program ifstavek; (* ime programa*) Var stev1, stev2: Integer; (*par števil*) st_parov: ShortInt; (* število parov(8bitov) *) I : integer; (*stevec for zanke (16 bitov)*) Begin (*glavni start*) Write(’Vpisi stevilo parov za primerjavo: ’); Readln (st_parov); For I:=1 to st_parov do begin (*start for*) Writeln(i,'. par števil.'); (*kateri par primerjam*) Write('Podaj prvo število: '); (*navodila uporabniku *) Readln(stev1); (*prečitam prvo število*) Write('Podaj drugo število: '); Readln(stev2); If stev1 > stev2 Then Begin (*prvo število je večje*) Writeln(’Večje je prvo število: ’, stev1 ); (* izpisi*) Writeln(’Manjše je drugo število: ’, stev2); End Else Begin (*drugo število je večje*) Writeln(’Večje je drugo število: ’, stev2); Writeln(’Manjše je prvo število: ’, stev1); End; end; (*konec for*) Readln; (* da si ogledam izpis na monitorju*) End. (*konec glavni*)
Varianta z dvema IF stavkoma. Program ifstavek; (* ime programa*) Var stev1, stev2: Integer; (*par števil*) st_parov: ShortInt; (* število parov(8bitov) *) I : integer; (*stevec for zanke (16 bitov)*) Begin (*glavni start*) Write(’Vpisi stevilo parov za primerjavo: ’); Readln (st_parov); For I:=1 to st_parov do begin (*start for*) Writeln(i,'. par števil.'); (*kateri par primerjam*) Write('Podaj prvo število: '); (*navodila uporabniku *) Readln(stev1); (*prečitam prvo število*) Write('Podaj drugo število: '); Readln(stev2); If stev1 > stev2 Then Begin (*prvo število je večje*) Writeln(’Večje je prvo število: ’, stev1 ); (* izpisi*) Writeln(’Manjše je drugo število: ’, stev2); End; (* konec prvi IF stavek*) If stev2 > stev1 Then Begin (*drugo število je večje*) Writeln(’Večje je drugo število: ’, stev2); Writeln(’Manjše je prvo število: ’, stev1); End; (*konec drugi IF stavek*) end; (*konec for*) Readln; (* da si ogledam izpis na monitorju*) End. (*konec glavni*)
Opombe na naslov: Franc.Vrbancic@guest.arnes.si Hvala za sodelovanje!