Lezioni 2021-2022
Sito: | IIC Calvino - Genova |
Corso: | Informatica 3 - Fondamenti - a.s. 2022-23 |
Libro: | Lezioni 2021-2022 |
Stampato da: | Utente ospite |
Data: | venerdì, 22 novembre 2024, 00:54 |
Descrizione
Le spiegazioni raccolte via via durante le lezioni _ NON COMPLETO!
Meglio vedere il documento Google:
1. Il piastrellista
IL PIASTRELLISTA
Ci hanno richiesto un programma in grado di fare in maniera automatica dei preventivi per la piastrellatura di una stanza.
Le piastrelle, per semplicità, sono sempre quadrate e vengono vendute in confezioni che ne contengono un certo numero, ad esempio 12.
Ogni scatola ha un costo.
La stanza ha dimensioni che cambiano di volta in volta, supponiamo che sia sempre un rettangolo, se non lo fosse consideriamo il rettangolo che ne contiene l’area, così siamo sicuri che avremo al limite delle piastrelle in più.
Inoltre ci serve sapere la misura del lato della singola piastrella.
Il costo della manodopera varia a seconda delle dimensioni della stanza e è un costo orario.
Esempio di preventivo che si vorrebbe ottenere
DITTA MASSACAN Via Borzoli 21 1153 Genova Sestri Ponente Preventivo sig.ra Voltolini Piastrellatura aula VAP1010 Piastrelle linoleum 50x50cm n. 18 scatole, prezzo 25 Euro / scatola Totale piastrelle 450 Euro Manodopera (maggiore di 20 mq e inferiore a 50 mq) 300 Euro ---------- Totale 750 Euro i.e. |
Dall’esempio possiamo cercare quali sono i dati in ingresso e i dati in uscita, cercando i numeri presenti.
Dati di ingresso |
Dati di uscita |
dimensionePiastrella (50 cm) |
numeroScatole (18) |
prezzoScatola (25 Euro) |
CostoPiastrelle (450) = numeroScatole * prezzoScatola |
costoOrarioManodopera (xx Euro) |
numeroOreManodopera ??? |
larghezzaStanza |
costoTotale = costoPiastrelle + costoManodopera |
lunghezzaStanza |
Creiamo un caso di prova. Se il programma funziona bene, i dati di uscita devono essere congruenti con questi valori.
Dati in ingresso
Nome |
valore |
Unità di misura |
dimensionePiastrella |
60 |
cm |
prezzoScatola |
25 |
Euro |
costoOrarioManodopera |
30 |
Euro |
larghezzaStanza |
7,2 |
metri |
lunghezzaStanza |
7,0 |
metri |
numeroPiastrellexScatola |
12 |
Analisi e disegno dell’algoritmo
AreaPiastrella = dimensionePiastrella * dimensionePiastrella = 60 * 60 = 3600 cmq
AreaStanza =larghezzaStanza * lunghezzaStanza = 7,2 * 7 = 50,4 mq
AreaPiastrella = areaPiastrella / 10000 = 0,36 mq
NumeroPiastrelle = AreaStanza / AreaPiastrella = 50,4 / 0,36 =140 piastrelle
NumeroScatole = NumeroPiastrelle / numeroPiastrellexScatola = 140 /12 = 11,7 che diventa 12 arrotondando per eccesso.
In realtà servirebbe aumentare un po’ il numero per gli eventuali scarti.
costoPiastrelle = numeroScatole * prezzoScatola = 12 * 25 = 300 Euro
2. Variabili
Concetto di variabile, indirizzo
2.1. Tipi di dato
Le variabili in C sono dei contenitori per i dati posizionati nella memoria RAM (Random Access Memory) .
La RAM è un insieme di celle di dimensione fissa (una volta l’unità minima era di 1 byte, ora sono 64 byte). Il contenuto di queste celle sono dei bit che possono essere solo 1 oppure 0.
Quando devo memorizzare un dato nella RAM deve specificare la sua posizione nella memoria RAM e il suo tipo. Il tipo serve a determinare la dimensione e come interpretare i bit al suo interno.
Posizione: è un numero che parte da 0 e arriva a un valore che dipende dalla RAM installata (ad esempio se ho 4 GigaByte di RAM gli indirizzi vanno da 0 a 4.000.000.000 circa). La posizione prende anche il nome di “indirizzo” della variabile.
Tipo: i tipi che sono stati definiti sono int, float, char. Ad essi si sono aggiunti dei sottotipi per adeguarsi all’evoluzione tecnologica. Esempi:
unsigned int (interi senza segno, cioè solo positivi)
short int (quando i calcolatori sono passati a 16 bit gli int erano a 16 bit e i short int a 8 bit)
long int (raddoppiano la dimensione)
long long int (ulteriore raddoppio)
double (float in doppia precisione)
2.2. Input e output
Esempi pratici
#include <stdio.h>
int main(void) {
// dichiarazione delle variabili
int a, b, c;
float f,g,h;
char m,n,p;
// lettura di una variabile
printf("Inserire il valore del primo intero: ");
scanf("%d", &a);
printf("Il valore di a è: %d\n", a); // allineato a sinistra
printf("Il valore di a è: %11d\n", a);
printf("Il valore di b è: %011d\n", b);
printf("Il valore di c è: %11d\n", c);
// numeri reali
printf("Inserire il valore del primo numero reale: ");
scanf("%f", &f); // esempio 3.14159192 per vedere diversi comportamenti
printf("Il valore di f è: %f\n", f); // dei decimali
printf("Il valore di f è: %10.2f\n", f); // 10 spazi, di cui due decimali
printf("Il valore di f è: %.3f\n", f); // tre decimali
printf("Il valore di f è: %4.3f\n", f); // tre decimali senza spazio sufficiente
return 0;
}