Adibidez, jarraian erakusten den Menua1.pas programan eragiketa aritmetikoak egiten dira bi zenbakiekin eta programaren exekuzio bakoitzean cAukera aldagaiaren bitartez eragiketa hautatzen da. Aukera asko direnean azpimarratzekoa da CASE-OF baldintzazko aginduaren komengarritasuna. CASE-OF baldintzazko aginduaren ordez IF-THEN aginduak jari beharko lirateke, baina CASE-OF baldintzazko agindua oso trinkoa eta garbia delako programaren irakurgarritasuna handia izango da.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | program AukeraMenuBatezHautatzen_1; uses crt; var cAukera, cItxoin : char ; rEragigai1, rEragigai2 : real ; begin clrscr; write ( 'Zenbaki errealekin lan eginez, lehenengo eragigaiaren balioa eman: ' ); readln(rEragigai1); write ( 'Zenbaki errealekin lan eginez, bigarren eragigaiaren balioa eman: ' ); readln(rEragigai2); writeln ( '============Menua============' ); writeln ( ' + Batura lortzeko' ); writeln ( ' - Kendura lortzeko' ); writeln ( ' * Biderkadura lortzeko' ); writeln ( ' / Zatiketa burutzeko' ); writeln ( '=============================' ); write ( ' Zure aukera: ' ); readln(cAukera); case cAukera of '+' : writeln (rEragigai1: 0 : 2 , ' + ' , rEragigai2: 0 : 2 , ' = ' , rEragigai1+rEragigai2: 0 : 2 ); '-' : writeln (rEragigai1: 0 : 2 , ' - ' , rEragigai2: 0 : 2 , ' = ' , rEragigai1-rEragigai2: 0 : 2 ); '*' , 'x' , 'X' : writeln (rEragigai1: 0 : 2 , ' * ' , rEragigai2: 0 : 2 , ' = ' , rEragigai1*rEragigai2: 0 : 2 ); '/' : writeln (rEragigai1: 0 : 2 , ' / ' , rEragigai2: 0 : 2 , ' = ' , rEragigai1/rEragigai2: 0 : 2 ); else writeln ( 'Eragiketa gaizki aukeratuta!' ); end ; cItxoin := readkey; writeln (cItxoin); end . |
Menua1.pas programaren azalpenak:
- crt unitate bat da eta bere barnean dago readkey funtzioaren kodifikazioa eta clrscr prozeduraren kodifikazioa
- uses crt bitartez adierazten dugu linker programak nola lan egin behar duen
- clrscr prozedurak pantaila garbitzen du
- readkey funtzio bat da eta programan erabili ahal izateko crt unitatea beharrezkoa da, tekla bat sakatzean berari dagokion karakterea
- cItxoin:=readkey programa gelditzen da tekla bat sakatu arte, tekla bat sakatzean berari dagokion karakterea cItxoin aldagaian gordeko da
- readkey funtzioari esker cItxoin aldagaian karakteren bat gordetzen da, baina cItxoin aldagaiaren balioa ez da erabiltzen eta konpiladoreak horren abisua ematen du, "warning" hori kentzeko aski da writeln(cItxoin)bat egitea
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | program AukeraMenuBatezHautatzen_2; uses crt; var cAukera, cItxoin : char ; rEragigai1, rEragigai2 : real ; begin repeat clrscr; writeln ( '============Menua============' ); writeln ( ' + Batura lortzeko' ); writeln ( ' - Kendura lortzeko' ); writeln ( ' * Biderkadura lortzeko' ); writeln ( ' / Zatiketa burutzeko' ); writeln ( ' A Programa amaitu' ); writeln ( '=============================' ); repeat write ( ' Zure aukera: ' ); cAukera := readkey; cAukera := upcase(cAukera); writeln (cAukera); (* readkey funtzioak ez du irakurritako tekla erakusten *) until (cAukera = '+' ) or (cAukera = '-' ) or (cAukera = '*' ) or (cAukera = 'X' ) or (cAukera = '/' ) or (cAukera = 'A' ); writeln ; case cAukera of '+' : begin write ( 'Zenbaki errealekin lan eginez, lehenengo batugaiaren balioa eman: ' ); readln(rEragigai1); write ( 'Zenbaki errealekin lan eginez, bigarren batugigaiaren balioa eman: ' ); readln(rEragigai2); writeln (rEragigai1: 0 : 2 , ' + ' , rEragigai2: 0 : 2 , ' = ' , rEragigai1+rEragigai2: 0 : 2 ); end ; '-' : begin write ( 'Zenbaki errealekin lan eginez, kenkizunaaren balioa eman: ' ); readln(rEragigai1); write ( 'Zenbaki errealekin lan eginez, kentzailearen balioa eman: ' ); readln(rEragigai2); writeln (rEragigai1: 0 : 2 , ' - ' , rEragigai2: 0 : 2 , ' = ' , rEragigai1-rEragigai2: 0 : 2 ); end ; '*' , 'X' : begin write ( 'Zenbaki errealekin lan eginez, lehenengo biderkagaiaren balioa eman: ' ); readln(rEragigai1); write ( 'Zenbaki errealekin lan eginez, bigarren biderkagaiaren balioa eman: ' ); readln(rEragigai2); writeln (rEragigai1: 0 : 2 , ' * ' , rEragigai2: 0 : 2 , ' = ' , rEragigai1*rEragigai2: 0 : 2 ); end ; '/' : begin write ( 'Zenbaki errealekin lan eginez, zatikizunaren balioa eman: ' ); readln(rEragigai1); repeat write ( 'Zenbaki errealekin lan eginez, zatitzailearen balioa eman: ' ); readln(rEragigai2); until rEragigai2 <> 0.0 ; writeln (rEragigai1: 0 : 2 , ' / ' , rEragigai2: 0 : 2 , ' = ' , rEragigai1/rEragigai2: 0 : 2 ); end ; 'A' : begin writeln ( 'Programatik irtetera goaz!' ); end end ; cItxoin := readkey; (* emaitzak ikusi ahal izateko itxaron *) writeln (cItxoin); (* konpilazio abisua kentzeko *) until cAukera= 'A' ; end . |
iruzkinik ez:
Argitaratu iruzkina
Iruzkinen bat idazteko Google-ko kontu bat behar duzu. Iruzkin guztien moderazio-ardura blogeko administratzaileari dagokio.