Programmazione 1 (P-Z) a.a. 2007-08
Docente: R. Silvestri
Esercitatore: A. Carosi
Tutor: J. Stefa
Esercitazioni del 2 ottobre 2007
Esercizio 1
Scrivere un programma che prende in input tre caratteri e li stampa in ordine alfabetico.
L'ordine alfabetico si ottiene ordinando in modo crescente i codici ASCII dei caratteri.
Per l'input dei tre caratteri si può usare
scanf("%c%c%c", &a, &b, &c).
Esercizio 2
Scrivere un programma che prende in input un carattere c e un numero intero
n e stampa una matrice triangolare come dai seguenti esempi. Se il carattere c è 'A' e n = 3 allora deve stampare:
AAA
AA
A
Se n = 5 deve stampare:
AAAAA
AAAA
AAA
AA
A
Esercizio 3
Scrivere un programma che prende in input un carattere c e un numero
intero n e stampa un triangolo come nei seguenti esempi. Se il caratter
c è 'A' e n = 3 allora deve stampare:
A
AAA
AAAAA
Se n = 4 deve stampare:
A
AAA
AAAAA
AAAAAAA
Esercizio 4
Scrivere un programma che preso in input un numero intero n stampa la tabellina
della moltiplicazione per gli interi fino ad n. Ad esempio, se n = 5 allora deve stampare:
1 2 3 4 5
2 4 6 8 10
3 6 9 12 15
4 8 12 16 20
5 10 15 20 25
Si tenga conto che nella printf si può usare "%3d" per
stampare un numero in un campo di lunghezza 3 giustificato a destra.
Esercizio 5
Scrivere un programma che prende in input un intero n e poi prende in input
n numeri in virgola mobile e ne stampa il minimo, il massimo e la media. Ad esempio una possibile esecuzione del programma è la seguente:
inserire un numero: 3
1) inserire un numero decimale: 0.4
2) inserire un numero decimale: 7.08
3) inserire un numero decimale: 3.89
min = 0.400 max = 7.080 media = 3.790
Soluzioni
Soluzione Esercizio 1
#include <stdio.h>
int main()
{
char a, b, c;
printf("inserire tre caratteri: ");
scanf("%c%c%c", &a, &b, &c);
if (a < b)
if (b < c) printf("%c%c%c\n", a, b, c);
else if (a < c) printf("%c%c%c\n", a, c, b);
else printf("%c%c%c\n", c, a, b);
else if (a < c) printf("%c%c%c\n", b, a, c);
else if (b < c) printf("%c%c%c\n", b, c, a);
else printf("%c%c%c\n", c, b, a);
return 0;
}
Soluzione Esercizio 2
#include <stdio.h>
int main()
{
char car;
int r, c, n;
printf("inserire un carattere: ");
scanf("%c", &car);
printf("inserire la dimensione: ");
scanf("%d", &n);
for (r = 1 ; r <= n ; r++) {
for (c = 1 ; c <= n ; c++)
if (c < r) printf(" "); else printf("%c%", car);
printf("\n");
}
return 0;
}
Soluzione Esercizio 3
#include <stdio.h>
int main()
{
char car;
int r, c, n;
printf("inserire un carattere: ");
scanf("%c", &car);
printf("inserire la dimensione: ");
scanf("%d", &n);
for (r = 1 ; r <= n ; r++) {
for (c = 1 ; c <= n + r - 1 ; c++)
if (c <= n - r) printf(" "); else printf("%c%", car);
printf("\n");
}
return 0;
}
Soluzione Esercizio 4
#include <stdio.h>
int main()
{
int n, i, j;
printf("inserire la dimensione della tabellina: ");
scanf("%d", &n);
for (i = 1 ; i <= n ; i++) {
for (j = 1 ; j <= n ; j++) printf("%3d ", i*j);
printf("\n");
}
return 0;
}
Soluzione Esercizio 5
#include <stdio.h>
int main()
{
int n, i, primo = 1;
float min, max, sum = 0;
printf("inserire un numero: ");
scanf("%d", &n);
for (i = 1 ; i <= n ; i++) {
float f;
printf("%d) inserire un numero decimale: ", i);
scanf("%f", &f);
if (primo) {
min = max = f;
primo = 0;
} else if (f < min) min = f;
else if (f > max) max = f;
sum += f;
}
printf("min = %.3f max = %.3f media = %.3f\n", min, max, sum/n);
return 0;
}
--
RiccardoSilvestri - 04 Oct 2007
This topic: Programmazione1
> WebHome >
Prog1PZ >
DiarioPZ0708 > Eser021007
Topic revision: r2 - 2007-10-04 - RiccardoSilvestri