{ File: pression.pas } { Scopo: esercizio sull'uso di cicli e di funzioni } program PressioneCocaCola; { In questo programma ci sono delle costanti relative alla specifica del particolare problema; se si trattasse di chinotto invece che di Coca Cola, i valori 0.00105 0.0042 1.325 e 3.2 potrebbero essere diversi; allora e' abbastanza ragionevole pensare di farne delle costanti simboliche. } const T_INIT = 12; P_CRITICA = 3.2; var temperatura : integer; { la temperatura: un valore che parte da 12 e aumenta di un grado per volta, quindi rappresentabile agevolmente con un intero } pressione : real; { la pressione nella bottiglia, in funzione della temperatura } function ValorePressione (t: integer): real; const C2 = 0.00105; C1 = 0.0042; C0 = 1.325; begin ValorePressione := C2 * sqr(t) + C1 * T + C0; end; { ValorePressione } begin { PressioneCocaCola } temperatura := T_INIT; { inizializzazione della temperatura } pressione := ValorePressione(temperatura); { ciclo di incrementi della temperatura e variazioni conseguenti della pressione; prima di ogni variazione, stampiamo i valori attuali } while (pressione < P_CRITICA) do begin writeln('Temperatura = ', temperatura :3, ' Pressione = ', pressione :5); temperatura := temperatura + 1; pressione := ValorePressione(temperatura); end; { fine ciclo } writeln('Alla temperatura di ', temperatura :3, ' gradi la bottiglia esplode. Pressione =', pressione); end. { PressioneCocaCola }