esercitazioni di fondamenti informatica - modulo a · esercitazioni di fondamenti informatica -...
TRANSCRIPT
Esercitazioni di Fondamenti Informatica - Modulo A 1
Da MSDN:
The while statement executes a statement
or a block of statements until a specified
expression evaluates to false
while ( expression ) statement
Il costrutto while esegue statement finché
expression risulta vera. Esce dal blocco appena
expression risulta falsa.Esercitazioni di Fondamenti Informatica - Modulo A 2
Da MSDN:
The do-while statement lets you repeat a
statement or compound statement until a
specified expression becomes false.
do statement while ( expression )
Il costrutto do-while esegue statement finché
expression risulta vera. Esce dal blocco appena
expression risulta falsa.
NB: diversamente dal ciclo while, usando il do-while
almeno una iterazione del ciclo viene sempre eseguita!
Esercitazioni di Fondamenti Informatica - Modulo A 3
Da MSDN:
The for statement lets you repeat a statement or compound
statement a specified number of times. The body of
a for statement is executed zero or more times until an
optional condition becomes false. You can use optional
expressions within the for statement to initialize and change
values during the for statement's execution.
for ( init-expression opt ; cond-expressionopt ; loop-
expression opt ) statement
Il ciclo for:
1. esegue init-expression,
2. controlla il valore di verità di cond-expression:
se vera esegue nell’ordine statement, loop-expression,
torna al punto (2)
se falsa esce dal ciclo
Esercitazioni di Fondamenti Informatica - Modulo A 4
Scrivere un programma C che calcoli la somma di N
numeri interi inseriti da tastiera.
L’inserimento e il calcolo deve essere eseguito
finché il numero digitato è maggiore di -1.
Nel caso il numero inserito sia <= -1 il programma
deve stampare a video la somma di tutti i numeri
inseriti.
Quale ciclo mi conviene usare? Provare a
implementare l’algoritmo usando tutte le tre
tipologie di ciclo.
Esercitazioni di Fondamenti Informatica - Modulo A 5
Algoritmo (pseudo codice)
somma = 0;
x = 0;
finché (x > -1) {
scanf("%d", &x);
somma = somma + x;
}
Risultato = somma;
Come si comporta il programma all’inserimento di -1?
Forse cambiando ordine ad alcune istruzioni…
Esercitazioni di Fondamenti Informatica - Modulo A 6
Algoritmo (pseudo codice)
somma = 0;
esegui {
scanf("%d", &x);
somma = somma + x;
}
finché (x > -1)
Risultato = somma;
In questa versione troviamo gli stessi problemi del precedente?
Esercitazioni di Fondamenti Informatica - Modulo A 7
Algoritmo (pseudo codice)
somma = 0;
per (x = ?; 1?; 2?) {
3?
}
Risultato = somma;
1. Cosa metto come condizione?
2. Cosa metto come loop-expression?
3. Serve il corpo?
Esercitazioni di Fondamenti Informatica - Modulo A 8
Scrivere un programma C che calcoli la radice
quadrata (intera) di un naturale N.
Considera un intero x dopo l’altro a partire da 0 e
calcolane il quadrato x*x: fermati appena tale
quadrato supera N. Il precedente numero
considerato (x-1) è il risultato.
Esercitazioni di Fondamenti Informatica - Modulo A 9
Scrivere un programma C che calcoli la somma di
una sequenza di numeri interi inseriti da tastiera.
L’inserimento e il calcolo devono essere eseguiti
finché il numero digitato è maggiore di -1.
Nel caso il numero inserito sia <= -1 il programma
deve stampare a video la somma di tutti i numeri
inseriti.
Esercitazioni di Fondamenti Informatica - Modulo A 10
Scrivere un programma C che prende in ingresso un
numero intero N compreso tra 0 e 30.
Il programma deve stampare a video:
tutti i numeri pari maggiori di 0 e minori di N
tutti i numeri dispari maggiori di N e minori di 30
Esercitazioni di Fondamenti Informatica - Modulo A 11
Scrivere un programma C che prende in ingresso da
tastiera un intero N.
Il programma deve poi calcolare la somma di una
sequenza di interi presa in ingresso da tastiera.
L’inserimento deve fermarsi quando la somma è
maggiore o uguale al valore N.
Il programma deve infine stampare a video la
somma calcolata e la differenza tra la somma e il
numero N.
Esercitazioni di Fondamenti Informatica - Modulo A 12
Scrivere un programma C che calcoli la radice
quadrata (intera) di un naturale N.
Considerare un intero x dopo l’altro a partire da 0 e
calcolarne il quadrato x*x: fermarsi appena tale
quadrato supera N. Il precedente numero
considerato (x-1) è il risultato.
Si facciano tre versioni del programma, usando in
ciascuna un tipo di ciclo diverso
Esercitazioni di Fondamenti Informatica - Modulo A 13
Scrivere un programma che prende in ingresso una
sequenza di numeri positivi e negativi interrotta da
0.
Quando viene inserito 0 il programma deve
calcolare la media di tutti i numeri positivi inseriti.
Quale ciclo conviene usare? Provare con tutti i tipi
di ciclo conosciuti (while, do-while, for).
Esercitazioni di Fondamenti Informatica - Modulo A 14
Progettare e Codificare in C un programma che:
Chieda in ingresso un intero N
Stampi a video la tavola pitagorica per i fattori fino
a N compreso.
Si utilizzi il tipo di ciclo ritenuto più adeguato.
Esempio:
Per N=4 stampa:
Esercitazioni di Fondamenti Informatica - Modulo A 15
NB: Per i futuri esercizi si usi il tipo di ciclo ritenuto più adeguato.
Esercizio 8
Dato un numero reale N e uno intero M, calcolare la potenza di N^M con M>=0 (senza utilizzare l’istruzione pow). Si usi il tipo di ciclo
ritenuto più adeguato.
Variante: supporre che M possa assumere valori negativi.
Esercizio 9
Scrivere un programma C che calcoli la somma di due numeri tramite
i cicli iterativi utilizzando solo l’operazione di incremento (operatore
++), supponendo quindi di non avere a disposizione l’operatore di
somma. Si usi il tipo di ciclo ritenuto più adeguato.
Esercitazioni di Fondamenti Informatica - Modulo A 16
NB: Per i futuri esercizi si usi il tipo di ciclo ritenuto più adeguato.
Esercizio 10
Dato un numero di righe N, disegnare sullo schermo la seguente
figura (esempio per N=5):
Esercitazioni di Fondamenti Informatica - Modulo A 17
NB: Per i futuri esercizi si usi il tipo di ciclo ritenuto più adeguato.
Esercizio 11
Calcolare iterativamente
Il numero di addendi (corrispondenti alla precisione del calcolo)
dovrà essere dato in input prima dell’esecuzione del calcolo.
Ad ogni iterazione stampare il valore corrente di 𝜋.
Ad esempio:
1. pi = 4
2. pi = 2.666...
3. pi = 3.466...
4. ....
Esercitazioni di Fondamenti Informatica - Modulo A 18
NB: Per i futuri esercizi si usi il tipo di ciclo ritenuto più adeguato.
Esercizio 12
Progettare e codificare il programma in C che legga da terminale una
sequenza di interi positivi e negativi terminati dal valore 0 e stampi
per ognuno di essi l’opposto, il reciproco e il modulo.
Esercizio 13
Scrivere un programma C che, dato un numero intero N, calcoli il
fattoriale di tutti i numeri interi minori o uguali a N. Si usi il tipo di
ciclo ritenuto più adeguato.
NOTA: il fattoriale di N è il risultato della moltiplicazione di tutti i
numeri minori e uguali a n.
Es.:
3! (3 fattoriale) = 1 * 2 * 3 = 6
Esercitazioni di Fondamenti Informatica - Modulo A 19
NB: Per i futuri esercizi si usi il tipo di ciclo ritenuto più adeguato.
Esercizio 14
Realizzare un programma C che, chiesto all’utente un numero
intero pari a N, ricavi e stampi a video tutte le terne pitagoriche
con i cateti minori o uguali ad N.
Una terna pitagorica è formata da tre numeri naturali (a, b, c)
tali che a2 + b2 = c2. Esempio 3,4,5 -> (9+16=25).
N.B. : Calcolare solo le terne in cui a<b.
Esercitazioni di Fondamenti Informatica - Modulo A 20