Lezione 2

// Esempio in C per lezione 2

#include <stdio.h>

void tipi_di_dati (void) {

// Un variabile è sempre di un specifico tipo. In C il
// variabile, insieme a suo tipo deve essere definito
// espicicamente, cosi usiamo C per questi esempi.

// Alcuni variabili di diversi tipi:
// (sintasso:'tipo di variabile' 'nome di variabile' = 'valore')

int numero_intero = 45322;
double numero_reale = 3245.533;
char carattere = 'e';
char riga_di_testo[] = "Un matrice di caratteri, stringa se vogliamo";

//Stampiamo i variabili su schermo

printf("Numero intero:%i, Numero reale:%f, Carattere:%c, Stringa di testo:%s \n", numero_intero, numero_reale, carattere, riga_di_testo);
}

void strutture (void) {
// Tipicamente un linguaggio di programmazione offre un modo per
// creare insiemi di dati. Questo permette il programmatore
// organizare i dati in un modo logico.

// C per esempio offre "array" (o forse tabella in italiano?)
// per creare insiemi di dati di stesso tipo e "struct"
// (struttura) per creare insiemi di dati di diversi tipi.

// Una tabella di 10 numeri interi:
int tabella_di_int_piccolo[10] = {12, 3, 34, 45, 223235, 6, 4, 2, 34222, 0};

// Una tabella di 1000 numeri interi (valori non predefiniti):
int tabella_di_int_grosso[1000];

// Una tabella di caratteri (dimensioni definiti dal valore):
char riga_di_testo[] = "Un matrice di caratteri, stringa se vogliamo";

// Una struttura di diversi dati:
// Predefinire i valori per un struttura non è triviale in C,
// cosi non lo spiego qui e lasco i variabili inizialmente
// indefiniti. é colpa di C stesso.

struct {
int numero;
char lettera;
double frazione;
} nostra_piccola_struttura;

// Per usarli:

tabella_di_int_grosso[42] = 234;
nostra_piccola_struttura.numero = tabella_di_int_piccolo[4];
nostra_piccola_struttura.lettera = riga_di_testo[8];
}

void espressioni_complessi (bool condizione) {
// Scrivere programmi solo con espressioni (commandi) semplici
// sarebbe estremamente fatigoso. Per quello linguaggi offrono
// espressioni per definire repetizione e esecuzione
// condizionale dei parti di programma

// Questo esempio accetta come parametro il condizione
// per usare nel verifiche di condizioni.

int i = 0; //per i conti in "for"

// Esecuzione condizionale semplice: commando "if":
// Un blocco di programma viene assegnato un condizione
// che viene verificato giusto prima di esecuzione di
// blocco. Il blocco viene esecuito solo se condizione
// risulta vero. Opzionalmente si puo anche definire parte
// "else" che viene esecuito se il blocco principale non
// viene esecuito.

if (condizione == true) {
printf("Condizione risulta vero\n");
}
else {
printf("Condizione non risulta vero\n");
}

// Repetizione semplice: ciclo "while"
// Un blocco di programma viene assegniato un condizione
// come con "if". Se il condizione risulta vero il blocco viene
// esecuito. Alla fine di blocco il condizione viene verificato
// di nuovo e il blocco viene riesecuito (e
// potenzialmente riesecuito di nuovo e di nuovo finche il
// condizione rimane vero.)

while (condizione == true) {
printf("While…\n");

//senza questo continuerebbe per sempre…
condizione = false;
}

// Repetizione semplice (solo non cosi semplice in C): "for"
// Il blocco definito viene esecuito un tot volte
// secondo un numero predefinito
// In C è possibile anche toccare i conti durante esecuzione
// e definire condizioni non-triviali, ma non bisogno provare
// se non veramente serve…

// Questo ripete 32 volte…
for (i = 0; i < 32; i++) {
printf("Siamo al iterazione %i di for\n", i);
}
}

int main (void) {

// Come esempio di uso di sottoprogrammi facciamo solo esecuire
// i sottoprogrammi definiti sopra qua…
// Quanto piu volete?
// Ricordate che tutti lavorano solo con i variabili definiti
// dentro il sottoprogramma stessa o variabili passati come
// parametri.
// Cosi per esempio la
// esistenza di due stringe di testo con il stesso nome
// "riga_di_testo" non crea problemi e tutti due stringe sono
// independenti.

tipi_di_dati ();
strutture ();
espressioni_complessi (true);

return 0;
}

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-Share Alike 2.5 License.