MORENO SARDELLA · CORSO BASE
← Tutte le lezioni
Lezione 3

PRIMI ESERCIZI

Hai visto selezione e iterazione: ora si mettono in pratica. Scarica gli esercizi, prova a risolverli da solo e solo dopo apri le soluzioni a scomparsa per confrontarti.

01
Selezione

Esercizi sugli if

Due gruppi di esercizi sulla selezione: il primo con condizioni semplici, il secondo con condizioni composte, if annidati e a cascata.

If — basescarica ↓
If — avanzatiscarica ↓
Soluzioni · If base
1 — Maggiorenne if (eta >= 18) cout << "Sei maggiorenne"; else cout << "Sei minorenne";
2 — Promosso o rimandato if (voto >= 6) cout << "Promosso"; else cout << "Rimandato";
3 — Pari o dispari if (n % 2 == 0) cout << "pari"; else cout << "dispari";
4 — Il piu' grande if (a > b) cout << a; else if (b > a) cout << b; else cout << "sono uguali";
5 — Segno del numero if (n > 0) cout << "positivo"; else if (n < 0) cout << "negativo"; else cout << "zero";
6 — Sconto cassa float totale = spesa; if (spesa > 50) totale = spesa * 0.9; cout << "Totale: " << totale;
7 — Accesso con PIN if (pin == 1234) cout << "Accesso consentito"; else cout << "Accesso negato";
8 — Triangolo valido if (a < b + c && b < a + c && c < a + b) cout << "Triangolo valido"; else cout << "Non valido";
9 — Anno bisestile if ((anno % 4 == 0 && anno % 100 != 0) || anno % 400 == 0) cout << "Bisestile"; else cout << "Non bisestile";
10 — Saluto in base all'ora if (ora < 12) cout << "Buongiorno"; else if (ora < 18) cout << "Buon pomeriggio"; else cout << "Buonasera";
Soluzioni · If avanzati
1 — Massimo tra tre int m = a; if (b > m) m = b; if (c > m) m = c; cout << m;
2 — Mini calcolatrice if (op == '+') cout << a + b; else if (op == '-') cout << a - b; else if (op == '*') cout << a * b; else if (op == '/') { if (b != 0) cout << a / b; else cout << "Divisione per zero!"; }
3 — Equazione di secondo grado float d = b*b - 4*a*c; if (d > 0) cout << "Due soluzioni"; else if (d == 0) cout << "Una soluzione"; else cout << "Nessuna soluzione reale";
4 — Indice di massa corporea float bmi = peso / (altezza * altezza); if (bmi < 18.5) cout << "Sottopeso"; else if (bmi < 25) cout << "Normopeso"; else if (bmi < 30) cout << "Sovrappeso"; else cout << "Obeso";
5 — Costo di spedizione float costo; if (peso <= 1) costo = 5; else if (peso <= 5) costo = 8; else costo = 12;
6 — Voto in lettere if (p >= 90) cout << "A"; else if (p >= 80) cout << "B"; else if (p >= 70) cout << "C"; else if (p >= 60) cout << "D"; else cout << "F";
7 — Carta, forbice, sasso // 1=carta 2=forbice 3=sasso if (g1 == g2) cout << "Pareggio"; else if ((g1==1 && g2==3) || (g1==2 && g2==1) || (g1==3 && g2==2)) cout << "Vince il giocatore 1"; else cout << "Vince il giocatore 2";
8 — Giorni del mese if (mese == 2) { bool bis = (anno%4==0 && anno%100!=0) || anno%400==0; cout << (bis ? 29 : 28); } else if (mese==4 || mese==6 || mese==9 || mese==11) cout << 30; else cout << 31;
9 — Tariffa parcheggio float costo = 0; if (minuti > 60) { int ore = (minuti - 60 + 59) / 60; // ogni ora iniziata costo = 2 * ore; }
10 — Medaglia della gara if (t < 10) cout << "Oro"; else if (t <= 12) cout << "Argento"; else if (t <= 15) cout << "Bronzo"; else cout << "Nessuna medaglia";
02
Iterazione

Esercizi sui cicli

Due gruppi di esercizi sui cicli for, while e do–while: dalla pratica di base agli algoritmi classici.

Cicli — basescarica ↓
Cicli — avanzatiscarica ↓
Soluzioni · Cicli base
1 — Somma dei primi N int somma = 0; for (int i = 1; i <= N; i++) somma += i; cout << somma;
2 — Conto alla rovescia int i = N; while (i >= 1) { cout << i << endl; i--; } cout << "Via!";
3 — Tabellina for (int i = 1; i <= 10; i++) cout << n << " x " << i << " = " << n*i << endl;
4 — Media di tre voti float media = (float)(a + b + c) / 3; cout << media;
5 — Numeri pari int somma = 0; for (int i = 2; i <= N; i += 2) { cout << i << " "; somma += i; } cout << endl << "Somma: " << somma;
6 — Somma fino allo zero float x, somma = 0; do { cin >> x; somma += x; } while (x != 0); cout << somma;
7 — Parte intera e decimale int intera = (int)x; float decimale = x - intera; cout << intera << " " << decimale;
8 — Positivi, negativi e zeri int p=0, n=0, z=0, x; for (int i = 0; i < N; i++) { cin >> x; if (x > 0) p++; else if (x < 0) n++; else z++; }
9 — Potenza con il ciclo int ris = 1; for (int i = 0; i < esponente; i++) ris *= base; cout << ris;
10 — Percentuale di promossi float perc = (float)promossi / totale * 100; cout << perc << "%";
Soluzioni · Cicli avanzati
1 — Fattoriale long f = 1; for (int i = 2; i <= N; i++) f *= i; cout << f;
2 — Fibonacci int a = 0, b = 1; for (int i = 0; i < N; i++) { cout << a << " "; int t = a + b; a = b; b = t; }
3 — E' primo? bool primo = (n >= 2); for (int i = 2; i < n; i++) if (n % i == 0) { primo = false; break; }
4 — Somma delle cifre int s = 0; while (n > 0) { s += n % 10; n /= 10; } cout << s;
5 — Numero al contrario while (n > 0) { cout << n % 10; n /= 10; }
6 — Tavola pitagorica for (int i = 1; i <= 10; i++) { for (int j = 1; j <= 10; j++) cout << i*j << "\t"; cout << endl; }
7 — MCD (Euclide) while (b != 0) { int r = a % b; a = b; b = r; } cout << a;
8 — Conta i divisori int c = 0; for (int i = 1; i <= n; i++) if (n % i == 0) c++;
9 — Triangolo di asterischi for (int i = 1; i <= N; i++) { for (int j = 1; j <= i; j++) cout << "*"; cout << endl; }
10 — Indovina il numero // srand(time(0)); + <cstdlib> <ctime> int segreto = rand() % 100 + 1, g; do { cin >> g; if (g > segreto) cout << "Troppo alto"; else if (g < segreto) cout << "Troppo basso"; } while (g != segreto); cout << "Indovinato!";