Tut 01
Tut 01
Tutorato n. 1
Marco Liverani*
Esercizio n. 1
Letti due numeri interi positivi h e k (0 < h < k), stampare la somma h + (h + 1) + (h + 2) + . . . + k.
Diagramma di flusso
Start
Leggi h, k
s=0
i=h
No
i <= k
Sì
s = s+i
i = i+1
Scrivi s
Stop
* Università degli Studi Roma Tre, Corso di Laurea in Matematica, Corso di Algoritmi e Strutture Dati (IN110); e-mail
[email protected] – sito web del corso http://www.mat.uniroma3.it/users/liverani/IN110/
1
Pseudo-codifica dell’algoritmo
1: leggi h, k
2: s =0
3: i =h
4: fintanto che i ≤ k ripeti
5: s = s +i
6: i = i +1
7: fine-ciclo
8: scrivi s
9: stop
Codifica in linguaggio C
1 #include <stdlib.h>
2 #include <stdio.h>
3
4 int main(void) {
5 int i, s, h, k;
6 printf("Inserisci h e k: ");
7 scanf("%d %d", &h, &k);
8 s = 0;
9 for (i=h; i<=k; i++) {
10 s = s+i;
11 }
12 printf("La somma e’ %d.\n", s);
13 return(0);
14 }
2
Esercizio n. 2
Letto un numero intero positivo n stampare il fattoriale: n! = 1 · 2 · 3 · . . . · n.
Diagramma di flusso
Start
Leggi n
f=1
i=1
No
i <= n
Sì
f = f*i
i = i+1
Scrivi f
Stop
Pseudo-codifica dell’algoritmo
1: leggi n
2: f =1
3: i =1
4: fintanto che i ≤ n ripeti
5: f = f ·i
6: i = i +1
7: fine-ciclo
8: scrivi f
9: stop
3
Codifica in linguaggio C
1 #include <stdlib.h>
2 #include <stdio.h>
3
4 int main(void) {
5 int i, n, f;
6 printf("Inserisci il valore di n: ");
7 scanf("%d", &n);
8 f = 1;
9 for (i=1; i<=n; i++) {
10 f = f*i;
11 }
12 printf("%d! = %d\n", n, f);
13 return(0);
14 }
4
Esercizio n. 3
Letto n > 0 intero, stampa i primi n numeri della successione di Fibonacci: x 1 = 1, x 2 = 1, x k = x k−2 +
x k−1 per k > 2.
Diagramma di flusso
Start
Leggi n
a = 1, b = 1
Scrivi a, b
i=2
No
i<n
Sì Stop
c = a+b
Scrivi c
a=b
b=c
i = i+1
5
Pseudo-codifica dell’algoritmo
1: leggi n
2: a = 1, b = 1
3: scrivi a, b
4: per i = 2, 3, . . . , n − 1 ripeti
5: c = a +b
6: scrivi c
7: a = b, b = c
8: fine-ciclo
9: stop
Codifica in linguaggio C
1 #include <stdlib.h>
2 #include <stdio.h>
3
4 int main(void) {
5 int n, i;
6 long a, b, c;
7 printf("Inserisci un numero intero positivo: ");
8 scanf("%d", &n);
9 a = 1;
10 b = 1;
11 printf("%ld %ld ", a, b);
12 for (i=2; i<n; i++) {
13 c = a+b;
14 printf("%ld ", c);
15 a = b;
16 b = c;
17 }
18 return(0);
19 }