UNIVERSITA’ DELLA CALABRIA UNIVERSITÀCALABRIA DELLA Facoltà di Scienze Matematiche Fisiche e Naturali Corso di Laurea in Biologia A.A. 2010/11 ESERCIZIO 1 (AREA RETTANGOLO) Scrivere un programma che legga da input la base e l’altezza di un rettangolo e ne calcoli l’area. Se la base o l’altezza lette sono minori di 0 stampare un messaggio di errore. Svolgimento: PASSO 1: Individuare le variabili che il programma dovrà leggere da input: “legga da input la base e l’altezza” Questo verrà tradotto con un Parallelogramma nel diagramma di flusso e con l’istruzione: base = InputBox("Inserisci la base") nel corrispondente programma Visual Basic. PASSO 2: Individuare l’output che dovrà restituire il programma: “e ne calcoli l’area” L’area è il risultato dell’operazione base*altezza che viene tradotta con un Rettangolo nel diagramma di flusso e con l’istruzione: area = base*altezza nel corrispondente programma Visual Basic. PASSO 3: Analizzare sotto quali condizioni non può essere effettuato il calcolo: “Se la base o l’altezza inserite sono minori di 0 stampare un messaggio di errore.” In questo caso dobbiamo fare un CONTROLLO sulla base: • se la base è <0 allora stampiamo un messaggio di errore altrimenti facciamo un CONTROLLO sull’ altezza: • se l’altezza è <0 allora stampiamo un messaggio di errore altrimenti calcoliamo l’area. Questi controlli si traducono con un Rombo nel diagramma di flusso e con il costrutto If (Se) Then (allora) Else (altrimenti) End If (fine del controllo) nel programmaVisual Basic. Quindi nel nostro caso diventa: if base<0 then Print “ERRORE: la base deve essere positiva” Else if altezza<0 then Print “ERRORE: la base deve essere positiva” else Annamaria Bria ([email protected]) area = base*altezza Print “AREA:”; area endif endif PASSO 4: Stampare l’output del programma, che nel diagramma di flusso viene rappresentato con un Parallelogramma mentre nel programma viene tradotto con l’istruzione: Print “AREA:”; area RICORDA CHE: 1. tutte le variabili che si usano in un programma Visual basic vanno dichiarate prima di essere usate in altre parti del programma. La sintassi per dichiarare una variabile è: Dim NomeVariabile as Tipo dove o NomeVariabile è un nome che deve essere unico per ogni variabile e deve essere una sola parola -- ES: base rettangolo non è nome di variabile valido mentre baseRettangolo è un nome di variabile valido. o Tipo può essere Integer, Double, Char. 2. Il costrutto If-Then-Else esprime in genere una biforcazione (infatti nel diagramma abbiamo due uscite per base>0 e altezza>0). Se è vera la condizione dell’If eseguo il corpo dell’If, altrimenti eseguo il corpo dell’Else. Non vengono eseguite entrambe! Annamaria Bria ([email protected]) DIAGRAMMA IAGRAMMA DI FLUSSO PROGRAMMA VISUAL BASIC Sub Area( ) Dim base, altezza, , area as Double base = InputBox("Inserisci la base") altezza = InputBox(“Inserisci l’altezza”) if base<0 then Print “ERRORE: la base deve essere positiva” Else if altezza<0 then Print “ERRORE: la base deve essere positiva” else area = base*altezza Print “AREA:”; area endif endif End Sub Annamaria Bria ([email protected]) ESERCIZIO 2 (AREA RETTANGOLO) Scrivere un programma che legga da input la base e l’altezza di un rettangolo e ne calcoli l’area. Se la base è minore di 0 continua a leggere un nuovo valore fino a quando non viene inserito un valore corretto per la base. Se l’altezza è minore di 0 continua a leggere un nuovo valore fino a quando non viene inserito un valore corretto per l’altezza. Svolgimento: PASSO 1: vedi PASSO 1 esempio precedente. PASSO 2: vedi PASSO 2 esempio precedente. PASSO 3: Analizzare sotto quali condizioni non può essere effettuato il calcolo: “Se la base è minore di 0 continua a leggere un nuovo valore fino a quando non viene inserito un valore corretto per la base” Poiché dobbiamo continuare a leggere fino a quando non viene inserito un valore corretto il programma dovrà: • fin tanto che la base è <0 leggere un nuovo valore per la base; trovato il valore per la base dovrà: • fin tanto che l’altezza è <0 leggere un nuovo valore per l’altezza; Questi controlli si traducono con un Rombo nel diagramma di flusso e con il costrutto While (fin tanto che) WEnd(fine del While)nel programmaVisual Basic, che nel nostro caso è: While base<0 base = InputBox("Inserisci la base") Wend While altezza<0 altezza = InputBox(“Inserisci l’altezza”) Wend PASSO 4: Stampare l’output del programma, che nel diagramma di flusso viene rappresentato con un Parallelogramma mentre nel programma viene tradotto con l’istruzione: Print “AREA:”; area Annamaria Bria ([email protected]) DIAGRAMMA DI FLUSSO PROGRAMMA VISUAL BASIC Sub Area() Dim base, altezza, area as Double base = InputBox("Inserisci la base") altezza = InputBox(“Inserisci l’altezza”) While base<0 base = InputBox("Inserisci la base") wend While altezza<0 altezza = InputBox(“Inserisci l’altezza”) wend area = base*altezza Print “AREA:”; area End Sub Annamaria Bria ([email protected])