Programa bakar batek eginkizun desberdinak bildu behar dituenean menu bat erabil daiteke. Adibide honetan hiru aukerako menu bat erakusten da, non hirugarren aukerari esker programa bukaraziko 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 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 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 | { Menuaren aukerak hautatzeko funtzio bat. Aukera bakoitzaren eginkizuna burutzeko prozedura bana. } program MenuaAzpiprogramaz; uses crt; { Menuaren aukera erakutsi eta hautapena aukeratu } function fncMenua: char ; var cHautapena: char ; begin writeln ( '===============MENUA================' ); writeln ( ' A) alfabeto zatia diagonalean' ); writeln ( ' B) biderkatzeko taula pantailaratu' ); writeln ; writeln ( ' I) irten' ); writeln ( '====================================' ); repeat write ( ' Zure aukera: ' ); cHautapena := readkey; writeln (cHautapena); cHautapena := upcase(cHautapena); until (cHautapena = 'A' ) or (cHautapena = 'B' ) or (cHautapena = 'I' ); fncMenua := cHautapena; end ; { A-tik hasita alfabetoa diagonalki pantailaratu } procedure DiagonalaPantailanIdatzi(cLetra: char ); var cKont: char ; iNon: integer ; begin writeln ; iNon := 5 ; for cKont:= 'A' to cLetra do begin writeln (cKont:iNon); iNon := iNon + 2 ; end ; end ; procedure TaulaPantailaratu(iZbk: integer ); var k: integer ; begin writeln (iZbk, ' zenbakiaren biderkatzeko taula:' ); for k:= 1 to 10 do begin writeln (k: 10 , ' x ' , iZbk: 2 , ' = ' , k*iZbk: 3 ); end ; writeln ; end ; { ----------------------PROGRAMA NAGUSIA---------------------- } var cAukera, cLetra, cItxoin: char ; iZbk: integer ; begin repeat clrscr; cAukera := fncMenua; writeln ; case cAukera of 'A' : begin repeat write ( 'Azken letra eman: ' ); cLetra := readkey; writeln (cLetra); cLetra := upcase(cLetra); until (cLetra >= 'A' ) and (cLetra <= 'Z' ); DiagonalaPantailanIdatzi(cLetra); end ; 'B' : begin repeat write ( '1 eta 10 arteko zenbaki osoa eman: ' ); readln(iZbk); until (iZbk >= 1 ) and (iZbk <= 10 ); TaulaPantailaratu(iZbk); end ; 'I' : begin writeln ( 'Programa amaitzera doa.' ); end ; end ; (* case-rena *) writeln ; write ( 'Edozein tekla sakatu aurrera egiteko...' ); cItxoin := readkey; (* emaitzak ikusi ahal izateko itxaron *) writeln (cItxoin); (* konpilazio abisua kentzeko *) until cAukera= 'I' ; end . |
iruzkinik ez:
Argitaratu iruzkina