Lezioni 2021-2022

Site: IIC Calvino - Genova
Course: Informatica 3 - Fondamenti - a.s. 2022-23
Book: Lezioni 2021-2022
Printed by: Guest user
Date: Friday, 12 April 2024, 10:24 PM

Description

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;
}