Ridefinizione del problema e individuazione degli input e degli output
Il programma dovrà effettuare una serie di calcoli per ottenere l'area totale occupata dalle aiuole (che indicheremo con AO) e l'area libera del giardino (che indicheremo con AL).
L'area totale occupata dalle aiuole si ottiene con:
AO = AQ + AR
dove
AQ è l'area dell'aiuola quadrata (calcolabile come AQ=L x L)
AR è l'area dell'aiuola rotonda (calcolabile come AR=R x R x 3.14)
L'area libera del giardino (AL) la otteniamo per sottrazione calcolando:
AL = AG – AO
dove
AG è l'area del giardino (calcolabile come AG = N x M)
Abbiamo, evidentemente, i seguenti
Dati Input | Dati output |
Dimensione del giardino (N ed M) Raggio dell'aiuola rotonda (R) Lato dell'aiuola quadrata (L) |
Area libera del giardino (AL) Area occupata dalle aiuole (AO) |
Descrizione delle variabili
Nome |
Descrizione |
Tipo |
Uso |
N |
Dimensione del lato del giardino |
reale |
input |
M |
Dimensione del lato del giardino |
reale |
input |
R |
Raggio dell'aiuola rotonda |
reale |
input |
L |
Lato dell'aiuola quadrata |
reale |
input |
AG |
Area totale del giardino |
reale |
lavoro |
AO |
Area occupata dalle aiuole |
reale |
out |
AR |
Area dell'aiuola rotonda |
reale |
lavoro |
AQ |
Area dell'aiuola quadrata |
reale |
lavoro |
AL |
Area libera del giardino |
reale |
out |
Descrizione dell'algoritmo
Codifica dell'algoritmo
#include <stdio.h> #include <stdlib.h> int main() { // Definizione delle costanti #define _PG 3.14 // Definizione delle variabili float N, M, L, R, AR, AQ, AO, AG, AL; // Acquisizione dei dati printf("Lato corto del giardino: "); scanf("%f",&N); printf("Lato lungo del giardino: "); scanf("%f",&M); printf("Raggio dell'aiuola rotonda: "); scanf("%f",&R); printf("Lato dell'aiuola quadrata: "); scanf("%f",&L); // Calcolo dei risultati AR = R*R* _PG; AQ = L*L; AO = AQ + AR; AG = N*M; AL = AG - AO; // Visualizzazione dei risultati printf("Area del giardino libera dalle aiuole: %f \n\n",AL); printf("\nArea occupata dalle aiuole: %f \n",AO); // Attesa e uscita dal programma system("PAUSE"); return 0; }