Strutture iterative
Pag. 310 | es. 17 | es. 19 | es. 20 | es. 21 | es. 22 | es. 23 | es. 24 |
es. 25 | es. 26 | es. 27 | es. 28 | es. 29 |
PROGRAM POT; {es. 17 pag. 310} VAR X:INTEGER; {BASE} Y:INTEGER; {ESPONENTE} R:INTEGER; {RISULTATO} CONT:INTEGER; {CONTATORE DI PRODOTTO} BEGIN WRITELN('DAMMI LA BASE'); READLN(X); WRITELN('DAMMI L''ESPONENTE'); {3a istruzione} READLN(Y); R:=1; CONT:=0; {6a istruzione} REPEAT R:=X*R; CONT:=CONT+1; {9a istruzione} UNTIL CONT=Y; WRITELN('IL RISULTATO E'' ' ,R); READLN; END.
program limite; {es. 19} var n: integer; {numero di velocita} vr: integer; {velocita registrata} aslv: integer; {auto che hanno superato il limite di velocita} cont: integer; {contatore di auto} begin writeln('inserisci il numero di velocit… registrate' ); readln(n); {2a istruzione} aslv:=0; for cont:=1 to n do begin {5a istruzione} writeln ('dammi la velocit…'); readln(vr); if vr>120 then {8a istruzione} aslv:=aslv+1; end; {10a istruzione} writeln(aslv , ' auto hanno superato il limite di velocit…'); readln; end.
Program classe;{es. 20} var n:integer; {eta degli studenti} s_m:integer; {numero studenti minore eta} e:integer; {eta di uno studente} risp:char; {risposta: indicatore di fine ciclo} Begin s_m:=0; repeat writeln('inserisci et…'); readln(e); {2a istruzione} if e<18 then s_m:=s_m+1; writeln ('vuoi continuare?'); {5a istruzione} readln (risp) until (risp='n') or (risp = 'N'); writeln('il numero delle persone minorenni Š ', s_m); {8a istruzione} readln; end.
program problema; {es. 21} var r:char; {risposta} n,s,v:integer; {non sufficienze, sufficienze, voto} nome:string[10]; {nome studente} begin n:=0; {1a istruzione} s:=0; r:='s'; {3a istruzione} writeln('dammi il nome'); readln(nome); while r='s'do {6a istruzione} begin writeln('dammi un voto'); readln(v); {9a istruzione} if v>=6 then s:=s+1 else n:=n+1; {13a istruzione} writeln('vuoi continuare?'); readln(r); end; {16a istruzione} if (n>=1)and(n<=3) then writeln('promosso con debito') else {19a istruzione} if n>3 then writeln('respinto') else {22a istruzione} writeln('promosso'); readln; end.
program albergo; {es. 22} var r:char; na:string[15]; {nome albergo} c:shortint; {categoria dell'albergo} npd:integer; {numero posti disponibili} npa:integer; {numero posti alberganti} begin repeat writeln('dammi il nome dell''albergo'); readln(na); writeln('dammi la categoria dell''albergo'); {3a istruzione} readln(c); writeln('dammi il numero dei posti disponibili'); readln(npd); writeln('dammi il numero degli alberganti'); {7a istruzione} readln(npa); if npa>npd then writeln('la prenotazione non pu• essere effettuata, perchŠ mancano ', npa-npd,' posti ) {10a istruzione} else begin npd:=npd-npa; {13a istruzione} writeln('la prenotazione pu• essere effettuata'); writeln(' rimangono disponibili ancora ' , npd,' posti'); end; {16a istruzione} writeln('vuoi continuare?'); readln(r); until r='n'; {19a istruzione} readln; end.
Program Elezioni;{es. 23} var TNI:INTEGER; TNV:INTEGER; TSN:INTEGER; TSB:INTEGER; NI:integer; NV:integer; NSN:integer; NSB:integer; N:integer; CONT:integer; PERC:real; PERC_SB:real; PERC_SN:real; Begin writeln('Dammi il numero dei seggi elettorali'); READLN(N); TNI:=0; {3a istruzione} TNV:=0; TSN:=0; TSB:=0; {6a istruzione} FOR CONT:=1 TO N DO Begin writeln('Dammi il numero degli iscritti'); {9a istruzione} readln(NI); TNI:=TNI+NI; writeln('Dammi il numero dei votanti'); {12a istruzione} readln(NV); TNV:=TNV+NV; writeln('Dammi il numero delle schede nulle'); {15a istruzione} readln(NSN); TSN:=TSN+NSN; writeln('Dammi il numero delle schede bianche'); {18a istruzione} readln(NSB); TSB:=TSB+NSB; END; {21a istruzione} PERC:=(100*N)/TNI; PERC_SB:=(100*TSB)/TNV; PERC_SN:=(100*TSN)/TNV; {24a istruzione} writeln('Percentuale votanti su tutti i seggi ',PERC); writeln('Percentuale schede bianche ',PERC_SB); writeln('Percentuale schede nulle ',PERC_SN); {27a istruzione} readln; End.
program prodotto;{es. 24} var c:integer; d:string[15]; p:real; pmax:real; r:char; cmax:integer; dmax:string[15]; begin pmax:=0; repeat writeln('dammi il codice del prodotto'); {3a istruzione} readln(c); writeln('dammi la descrizione del prodotto'); readln(d); {6a istruzione} writeln('dammi il prezzo del prodotto'); readln(p); if p>pmax then {9a istruzione} begin pmax:=p; cmax:=c; {12a istruzione} dmax:=d; end; writeln('vuoi continuare?[s/n]'); {15a istruzione} readln(r); until (r='n') or (r='N'); writeln('il prodotto più costoso ha il codice ' ,cmax); {18a istruzione} writeln('e la descrizione ' ,dmax); readln; end. program dipendenti;{es. 25} var a:integer; {anno corrente} d:integer; {numero dipendenti} dip:integer; {indice del ciclo} N:string[10]; {nome} an:integer; {anno di nascita} st:real; {stipendio} e:shortint; {et…} p,m:integer; {pensionabili e minorenni} begin p:=0; m:=0; {2a istruzione} writeln('dammi l''anno corrente'); readln(a); writeln('dammi il numero dei dipendenti'); {5a istruzione} readln(d); for dip:=1 to d do begin {8a istruzione} writeln(' dammi il nome, l''anno di nascita e lo stipendio'); readln(N,an,st); e:=a-an; {11a istruzione} if e>=60 then p:=p+1 else {14a istruzione} if e<18 then m:=m+1 end; {17a istruzione} writeln('i pensionabili sono ',p); writeln('i minorenni sono ',m); {19a istruzione} readln; end.
program stipendio;{es. 26} const K = 22 var g:integer; nome:string; stip,som:real; begin stip:=5; som :=0; writeln('dammi il nome'); readln(nome); {3a istruzione} for g:=1 to k do begin stip:=stip*2; {6a istruzione} som:=som+stip; end; writeln('lo stipendio guadagnato in 22 gg Š ' ,som:5:2); readln; {10a istruzione} end.
program obesi; {es. 27} const k=0.33; var o:integer; {numero degli obesi} n:integer; {numero di persone} pers:integer; {indice del ciclo} p:real; {peso} h:real; {altezza} i:real; {indice di obesit…} begin writeln('dammi il numero di persone che inserirai'); readln(n); {1a istruzione} o:=0; for pers:=1 to n do begin {4a istruzione} writeln('dammi il peso'); readln(p); writeln('dammi l''altezza in cm'); {7a istruzione} readln(h); i:=p/h; if i>k then {10a istruzione} begin o:=o+1; writeln('il numero degli obesi é ',o); {13a istruzione} end; end; readln; {16a istruzione} end.
program copie;{es. 28} var gvm:shortint;{giorno corrispondente alla vendita massima} vm:integer; {vendita massima} ng:shortint;{numero di giorni complessivi} ncop:integer;{numero di copie vendute in tutto} g:integer;{numero del giorno del mese} cop:integer;{numero copie vendute in un giorno} ris:char;{risposta} m:real;{vendita media} begin vm:=0; ng:=0; ncop:=0; repeat writeln('dammi il giorno'); readln(g); ng:=ng+1; writeln('dammi il numero di copie vendute'); readln(cop); ncop:=ncop+cop; if cop>vm then begin vm:=cop; gvm:=g end; writeln('vuoi continuare?'); readln(ris); until (ris='n') or (ris='N'); m:=ncop/ng; writeln('la vendita massima Š stata giorno ' ,gvm ,' e la media Š di ' , m:5:2); readln; end.
program n29; var nab:longint; {numero abitanti} natt:longint; {numero degli attivi} iatt:real; {indice di attivit…} c:string[15]; {citt…} cmax:string[15]; {citt… con indice maggiore} cmin:string[15]; {citt… con indice minore} imax:real; {indice di attivit… massimo} imin:real; {indice di attivit… minimo} N:integer; {numero di citt…} i:integer; {indice del ciclo}
begin imax:=0; imin:= 1; writeln ('dammi il numero di citt…'); readln (n); for i := 1 to N do begin writeln('dammi il nome della citt…'); readln(c); writeln('dammi il numero degli abitanti'); readln(nab); writeln('dammi il numero degli attivi'); readln(natt); iatt:=natt/nab*100; if iatt>imax then begin imax:=iatt; cmax:=c; end else if iatt <= imin then begin imin:=iatt; cmin:=c end; end; writeln('La citt… con l''indice pi— alto Š ',cmax); writeln('e la citt… con l''indice pi— basso Š ',cmin); readln; end.
program n29; var nab:longint; {numero abitanti} natt:longint; {numero degli attivi} iatt:real; {indice di attivit…} c:string[15]; {citt…} cmax:string[15]; {citt… con indice maggiore} cmin:string[15]; {citt… con indice minore} imax:real; {indice di attivit… massimo} imin:real; {indice di attivit… minimo} N:integer; {numero di citt…} i:integer; {indice del ciclo} begin imax:=0; imin:= 1; writeln ('dammi il numero di citt…'); readln (n); for i := 1 to N do begin writeln('dammi il nome della citt…'); readln(c); writeln('dammi il numero degli abitanti'); readln(nab); writeln('dammi il numero degli attivi'); readln(natt); iatt:=natt/nab*100; if iatt>imax then begin imax:=iatt; cmax:=c; end else if iatt <= imin then begin imin:=iatt; cmin:=c end; end; writeln('La citt… con l''indice pi— alto Š ',cmax); writeln('e la citt… con l''indice pi— basso Š ',cmin); readln; end.