Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
Se fuori piove, restiamo a casa. Altrimenti, andiamo al cinema.
#include <stdio.h>
int main() {
int pioggia = 1; // 1 = piove, 0 = non piove
if (pioggia) {
printf("Piove. Guardiamo un film a casa.\n");
} else {
printf("Non piove. Andiamo al cinema!\n");
}
return 0;
} if...else if...else
6. Struttura
Si usa quando abbiamo più condizioni da verificare e vogliamo eseguire azioni diverse.
Esempio della vita reale: Pianificare un viaggio in base al budget
Se abbiamo pochi soldi, viaggiamo in autobus. Con un budget medio, usiamo il treno. Con
un budget alto, prenotiamo un aereo.
#include <stdio.h>
int main() {
int budget = 100;
if (budget < 50) {
printf("Viaggeremo in autobus.\n");
} else if (budget < 150) {
printf("Viaggeremo in treno.\n");
} else {
printf("Viaggeremo in aereo.\n");
}
return 0;
}
7. Stampa dei numeri da 1 a 10 for
Descrizione: Scrivi un programma che utilizza un ciclo per stampare i numeri interi da 1
a 10 in ordine crescente.
Svolgimento:
#include <stdio.h>
int main() {
// Ciclo per stampare i numeri da 1 a 10
for (int i = 1; i <= 10; i++) {
printf("%d\n", i); // Stampa il numero corrente
}
return 0;
}
Output:
1
2
3
4
5
6
7
8
9
10
8. Somma dei numeri da 1 a 100 while.
Descrizione: Calcola la somma dei numeri interi da 1 a 100 utilizzando un ciclo
Svolgimento:
#include <stdio.h>
int main() {
int somma = 0; // Variabile per accumulare la somma
int i = 1; // Contatore inizializzato a 1
// Ciclo che continua finché i <= 100
while (i <= 100) {
somma += i; // Aggiungi il valore di i alla somma
i++; // Incrementa il contatore
}
// Stampa la somma calcolata
printf("La somma dei numeri da 1 a 100 è: %d\n", somma);
return 0;
}
Output:
La somma dei numeri da 1 a 100 è: 5050
9. Tabellina di un numero for
Descrizione: Chiedi all'utente un numero e utilizza un ciclo per stampare la tabellina
del numero scelto (da 1 a 10).
Svolgimento:
#include <stdio.h>
int main() {
int numero;
// Chiedi all'utente di inserire un numero
printf("Inserisci un numero per calcolare la sua tabellina: ");
scanf("%d", &numero);
// Ciclo per calcolare e stampare la tabellina
for (int i = 1; i <= 10; i++) {
printf("%d x %d = %d\n", numero, i, numero * i); // Stampa il risultato
}
return 0;
} 5):
Esempio di Output (con input
Inserisci un numero per calcolare la sua tabellina: 5
5x1=5
5 x 2 = 10
5 x 3 = 15
5 x 4 = 20
5 x 5 = 25
5 x 6 = 30
5 x 7 = 35
5 x 8 = 40
5 x 9 = 45
5 x 10 = 50
10. Contare quanti numeri pari ci sono tra 1 e 20
Descrizione: Usa un ciclo per contare e stampare tutti i numeri pari tra 1 e 20.
Svolgimento:
#include <stdio.h>
int main() {
int conteggio = 0; // Variabile per contare i numeri pari
// Ciclo per verificare i numeri da 1 a 20
for (int i = 1; i <= 20; i++) {
if (i % 2 == 0) { // Controlla se il numero è pari
printf("%d è pari\n", i); // Stampa il numero pari
conteggio++; // Incrementa il conteggio
}
}
// Stampa il conteggio totale di numeri pari
printf("Ci sono %d numeri pari tra 1 e 20.\n", conteggio);
return 0;
}
Output:
2 è pari
4 è pari
6 è pari
8 è pari
10 è pari
12 è pari
14 è pari
16 è pari
18 è pari
20 è pari
Ci sono 10 numeri pari tra 1 e 20.
11. Indovina un numero (gioco semplice)
Descrizione: Scrivi un programma che chiede all'utente di indovinare un numero segreto tra
do while
1 e 10. Usa un ciclo per continuare a chiedere finché l'utente non indovina.
Svolgimento:
#include <stdio.h>
int main() {
int numero_segreto = 7; // Numero da indovinare
int tentativo;
// Ciclo per chiedere tentativi finché non viene indovinato
do {
printf("Indovina il numero (tra 1 e 10): ");
scanf("%d", &tentativo);
if (tentativo < numero_segreto) {
printf("Troppo basso! Riprova.\n");
} else if (tentativo > numero_segreto) {
printf("Troppo alto! Riprova.\n");
}
} while (tentativo != numero_segreto);
// Quando il numero è corretto
printf("Complimenti! Hai indovinato il numero.\n");
return 0;
}
Output:
Indovina il numero (tra 1 e 10): 5
Troppo basso! Riprova.
Indovina il numero (tra 1 e 10): 9
Troppo alto! Riprova.
Indovina il numero (tra 1 e 10): 7
Complimenti! Hai indovinato il numero.
12. Stampa della piramide di numeri n
Descrizione: Scrivi un programma che stampa una piramide di numeri con righe. Ogni
riga contiene numeri consecutivi a partire da 1. Chiedi all’utente il numero di righe.
n = 4):
Esempio (con
1
12
123
1234
Svolgimento:
#include <stdio.h>
int main() {
int n;
// Chiedi all'utente il numero di righe
printf("Inserisci il numero di righe per la piramide: ");
scanf("%d", &n);
// Ciclo per ogni riga
for (int i = 1; i <= n; i++) {
// Stampa i numeri da 1 fino a i
for (int j = 1; j <= i; j++) {
printf("%d ", j);
}
printf("\n"); // Vai alla riga successiva
}
return 0;
}
13. Somma delle cifre di un numero
Descrizione: Scrivi un programma che calcola la somma delle cifre di un numero intero
positivo fornito dall'utente.
Esempio: 1234
● Input: La somma delle cifre è: 10
● Output:
Svolgimento:
#include <stdio.h>
int main() {
int numero, somma = 0;
// Chiedi all'utente un numero intero positivo
printf("Inserisci un numero intero positivo: ");
scanf("%d", &numero);
// Ciclo per sommare le cifre
while (numero > 0) {
somma += numero % 10; // Aggiungi l'ultima cifra
numero /= 10; // Rimuovi l'ultima cifra
}
// Stampa la somma delle cifre
printf("La somma delle cifre è: %d\n", somma);
return 0;
}
14. Trova il numero massimo in una sequenza
Descrizione: Chiedi all’utente di inserire una sequenza di numeri. La sequenza termina
0.
quando l’utente inserisce il numero Trova e stampa il numero massimo.
Esempio: 5 12 8 3 0
● Input: Il numero massimo è: 12
● Output:
Svolgimento:
#include <stdio.h>
int main() {
int numero, massimo = -1; // Inizializza il massimo con un valore basso
// Chiedi numeri finché non viene inserito 0
do {
printf("Inserisci un numero (0 per terminare): ");
scanf("%d", &numero);
if (numero > massimo) { // Aggiorna il massimo se il numero è maggiore
massimo = numero;
}
} while (numero != 0);
// Stampa il numero massimo
if (massimo != -1) {
printf("Il numero massimo è: %d\n", massimo);
} else {
printf("Non hai inserito numeri validi.\n");
}
return 0;
}
15. Verifica se un numero è primo
Descrizione: Scrivi un programma che verifica se un numero intero positivo fornito
dall’utente è un numero primo.
Esempio: 7
● Input: 7 è un numero primo.
● Output:
8
● Input: 8 non è un numero primo.
● Output:
Svolgimento:
#include <stdio.h>
int main() {
int numero, is_primo = 1;
// Chiedi all'utente un numero positivo
printf("Inserisci un numero intero positivo: ");
scanf("%d", &numero);
if (numero <= 1) {
is_primo = 0; // I numeri <= 1 non sono primi
} else {
// Controlla se il numero è divisibile per un valore tra 2 e sqrt(numero)
for (int i = 2; i <= numero / 2; i++) {
if (numero % i == 0) {
is_primo = 0; // Il numero non è primo
break;
}
}
}
// Stampa il risultato
if (is_primo) {
printf("%d è un numero primo.\n", numero);
} else {
printf("%d non è un numero primo.\n", numero);
}
return 0;
}
16. Generazione della sequenza di Fibonacci
n
Descrizione: Scrivi un programma che genera i primi numeri della sequenza di Fibonacci.
Chiedi all’utente quanti numeri calcolare.
Esempio: 5
● Input: 0 1 1 2 3
● Output:
Svolgimento:
#include <stdio.h>
int main() {
int n, t1 = 0, t2 = 1, prossimo;
// Chiedi all'utente quanti numeri calcolare
printf("Inserisci il numero di termini della sequenza di Fibonacci: ");
scanf("%d", &n);
printf("Sequenza di Fibonacci: ");
for (int i = 1; i <= n; i++) {
printf("%d ", t1); // Stampa il termine corrente
prossimo = t1 + t2; // Calcola il termine successivo
t1 = t2; // Aggiorna t1
t2 = prossimo; // Aggiorna t2
}
printf("\n");
return 0;
}
Ecco 3 esercizi di livello avanzato, svolti e commentati, con spiegazioni dettagliate.
17. Stampare un rombo di asterischi
Descrizione: Scrivi un programma che stampa un rombo formato da asterischi (*). L'utente
deve fornire l'altezza della metà superiore del rombo.
3):
Esempio (con altezza
*
***
*****
***
*
Svolgimento:
#include <stdio.h>
int main() {
int altezza;
// Chiedi l'altezza del rombo
printf("Inserisci l'altezza della metà superiore del rombo: ");
scanf("%d", &altezza);
// Parte superiore del rombo
for (int i = 1; i <= altezza; i++) {
// Stampa spazi
for (int j = 1; j <= altezza - i; j++) {
printf(" ");
}
// Stampa asterischi
for (int j = 1; j <= 2 * i - 1; j++) {
printf("*");
}
printf("\n"); // Vai alla riga successiva
}
// Parte inferiore del rombo
for (int i = altezza - 1; i >= 1; i--) {
// Stampa spazi
for (int j = 1; j <= altezza - i; j++) {
printf(" ");
}
// Stampa asterischi
for (int j = 1; j <= 2 * i - 1; j++) {
printf("*");
}
printf("\n"); // Vai alla riga successiva
}
return 0;
}
18. Convertire un numero decimale in binario
Descrizione: Scrivi un programma che converte un numero decimale inserito dall'utente in
un numero binario. Usa cicli per costruire il binario in ordine inverso.
Esempio: 13
● Input: Il numero binario è: 1101
● Output:
Svolgimento:
#include <stdio.h>
int main() {
int numero