|
Realizza l'intestazione commentata per un ipotetico sottoprogramma risolutivo per ognuno dei seguenti problemi
Procedure P_e_A(LATO: Real; Var PERIMETRO, AREA: Real); Un parametro in ingresso (LATO) reale, due parametri in uscita (PERIMETRO, AREA) reali.
Function D_ASCII(Ch1, Ch2: Char): Integer; Due caratteri IN, un risultato intero...
Procedure M_M_M(X1, X2, X3: Real; Var Min, Max, Med: Real); Tre reali IN, tre reali OUT...
Procedure CERCHIO(XC, YC, RAGGIO: Real); Le coordinate del centro e la misura del raggio IN...
Procedure ORDINA5(Var X1, X2, X3, X4, X5: Real); Cinque reali IN/OUT... Dato il seguente codice, commentalo riga per rigaFunction XXX(A, B: Longint): Longint; {Funzione intera con 2 parametri IN interi} Var R: Longint; {Variabile locale intera} Begin {Inizio codice sottoprogramma} Repeat {Istruzione di controllo di ciclo} R:=A Mod B; {Assegna a R il resto della divisione intera tra A e B} A:=B; {Assegna il valore di B a A} B:=R; {Assegna il valore di R a B} Until(R = 0); {Finisce se R è uguale a 0} XXX:=A; {La funzione assume il valore di A} End; {Fine codice sottoprogramma} e fai due esempi numerici significativi del suo funzionamento
Progetta e realizza un sottoprogramma in linguaggio TP6 che calcoli il prodotto tra due valori interi, immaginando di possedere solamente le operazioni di addizione e sottrazioneAnalisi, esempio, algoritmo: seguendo il metodo già studiato per la somma iterativa possiamo pensare di svolgere l'operazione nel modo seguente: siano A e B i parametri in ingresso, incrementiamo RISPOSTA con il valore di A e sottraiamo 1 al valore di B finché B non assume il valore 0 (RISPOSTA=A+A+...+A, B volte)
(Ipotesi: B>=0) Function PRODOTTO(A, B: Longint): Longint; Var RISPOSTA: Longint; Begin RISPOSTA:=0; while(B > 0) do Begin RISPOSTA:=RISPOSTA+A; B:=B-1; End; PRODOTTO:=RISPOSTA; End; |
|