Informatica
<nome, valore>
ES:
- [ x, 5 ] - [ y, -5 ]
Comandi
- Assegnamentonome ← espressione
ES:
- x ← 5 + 2 ;
- x ← x + 1
- Variabili = i nomi il cui valore può essere modificato
- Sequenza[ 1, (2) ] diventa un unico comando. Esegue i comandi in sequenza da sinistra a destra e dall'alto verso il basso
ES:
- { x ← x + yy ← y - 3 }
- Condizionaleif condizionecomando 1elsecomando 2
ES:
- if (x > 0)x ← x - 1;elsex ← x + 1;
- { if x > 0x ← x - 1;else{ y ← y + 1;x ← x + y / 3 }x ← x + 2 }
Informatica
<nome, valore>
Esempi:
- [ x, 5 ] → [ y, 5 ]
Comandi
-
Assegnamento
nome ← espressione
Esempi:
- x ← 5 + 2 ; Cambio il valore di x in 7
- x ← x + 1
-
Variabili = i nomi il cui valore può essere modificato
-
Sequenza
[ 1, (2) ] diventa un unico comando, esegue i comandi in sequenza da SINISTRA a DESTRA e dall'ALTO verso il BASSO
Esempi:
- { x ← x + y }y ← y - 3,
-
Condizionale
if condizionecomando 1elsecomando 2
Esempi:
- if (x > 0)x ← x - 1;elsex ← x + 1;
- { if x > 0x ← x - 1,else{ y ← y + 1,x ← x + y,x ← x + 2}}
While (condizione) comando 1
Esercizio
Massimo comune divisore tra due interi
Formula di Euclide MCD (n,n) = n
MCD (n,m) = MCD (n-m,m) con n>m
{<n V1>, <m V2>}
while (n != m)
if (n>m) n = n-m;
else m = m-n;
{<m MCD (V1,V2)> <m MCD (V1,V2)>}
Funzione fattoriale
0! = 1
n! = n(n-1)(n-2)...1 n>0
n! = n.(n-1)!
E' una funzione ricorsiva
Es:
{<n,V2>, <fact,V2>}
{Fact = 1
while (n > 1)
{Fact = Fact * n;
n = n-1;
}
Per creare lo stato mi servono le dichiarazioni
Con esse do il valore iniziale alla variabile, stabilisco il tipo
Tipo nome = exp; ➔ do il valore (che può non esserci)
- Tipo dei valori che possono essere associati alla variabile
- Nome della variabile che voglio che non sia presente nello stato
- int
- float
- char
ES:
int n = 25;
int m = 25;
Procedure Predefinite
Le librerie sono insiemi di procedure (realizzano nuovi comandi) che si possono usare nei programmi
- studio ➔ Standard input/output
- Comandi predefiniti di scrittura/lettura
➔ scanf ( “ “ , )
- Sequenze di caratteri tra “ ” (sono stringhe)
- Le variabile che voglio sia letta in output
%d ➔ scanf legge un valore intero
ES:
int n;
scanf (“%d” &n);
La stringa "formato" deve essere stampata sostituendo
alle sequenze "%d" il valore delle espressioni.
è un carattere non un numero
ES
printf("Il MCD è %d", n)
→ \n vai a capo
ES
printf("Il MCD è \n%d", n)
Mi darà: Il MCD è
5
→ get c prende il prossimo carattere
ESERCIZIO
Calcolare il massimo di una sequenza di interi.
- Quanto è lunga la sequenza?
int max, val, quanti, n;
main ()
{scanf ("%d", &quanti);
scanf ("%d", &max);
n=2
while (n <= quanti)
{ scanf ("%d", &val);
if (val > max) max = val; }
{ printf ("Il valore max è %d", max);
Iterazioni determinate
for (...) incremento delle variabili del for
condizione di terminazione
inizializzazione delle variabili del for
Es:
int i;
int z = 0;
for (i = 0; i < n; i++)
z = z + 2 * i;
Esempio
Rivedo quello di prima
int max, val, quanti, n;
main ()
- scanf("%d", &quanti);
- scanf("%d", &max);
- for (n = 2; n <= quanti; n = n + 1)
- scanf("%d", &val);
- if (val > max) max = val;
INCLUSIONI
#include <nomefile
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.