Informatica B
2025-26
Laboratorio 1: Basi di C e Array
Fabrizio Pittorino ([Link]@[Link])
Andrea Menta ([Link]@[Link])
Pipeline
Problema No
Definizione Scrittura
Compilazione Si Esecuzione Si
Algoritmo Codice
No
Compilazione
File File
Sorgente Compilatore Eseguibile
.c .exe
Ambiente di Sviluppo (IDE)
Esistono diversi IDEs: In questo corso, per semplicità, useremo
● CLion (JetBrains) Compiler Explorer , un “IDE” online
● Visual Studio Code (Microsoft) sufficiente a sviluppare progetti semplici
● Code::Blocks (Code::Blocks Team)
Esercizio 0a
Scrivere un programma che riceva in input 3 numeri interi e ne stampi a video la
somma e il prodotto .
Esercizio 0a - Soluzione
Esercizio 0b
Scrivere un programma che ripetutamente riceva in input un numero intero inserito
dall’utente e lo stampi a video.
Il programma termina quando l’utente inserisce 0.
Al termine, il programma stampa a video la stringa “Programma Terminato!” .
Esercizio 0b - Soluzione
Esercizio 0c
Scrivere un programma che riceva in input una sequenza di numeri interi .
Per ogni numero, il programma stampa “pari” o “dispari” in base alla parità del
numero.
Quando l’utente inserisce 0, il programma termina.
Esercizio 0c - Soluzione
Esercizio 0d
Scrivere un programma che riceva in input una sequenza di numeri interi e ne stampi a
video:
● Somma
● Prodotto
● Massimo
● Minimo
Il programma deve chiedere all’utente quanti numeri vuole inserire.
Condizione:
Calcolare i valori progressivamente senza salvare l’intera sequenza in input.
Esercizio 0d - Soluzione
Esercizio 0e
Scrivere un programma che, ricevuto in input un numero n, controlli che sia maggiore di
1 e dica se questo è un numero primo oppure no.
Esercizio 0e - Soluzione
Esercizio 1
Contesto:
Ad un designer è stato commissionato di disegnare e produrre dei tavoli di forma
triangolare .
Il designer ha il problema di determinare la superficie di materiale necessaria per
costruire il tavolo.
Lungo il bordo del tavolo è richiesto che venga incollato una
striscia di materiale protettivo, la cui lunghezza deve essere anch’essa calcolata.
Problema:
Sapendo che le misure per i lati del tavolo vengono date in input dall’utente, stampare:
● la superficie di materiale necessario
● la lunghezza della striscia di materiale protettivo.
Esercizio 1 (Hint)
Formula di Erone:
Dati a, b, c, lati di un triangolo, s il semi-perimetro, l’area si può calcolare come:
Esercizio 1 - Soluzione
Esercizio 2
Scrivere un programma che riceva in input 2 numeri interi e calcoli il Massimo
Comune Divisore (MCD) utilizzando l’algoritmo di Euclide .
Algoritmo di Euclide:
Dati due numeri a e b (a>b):
1. Se b = 0, allora MCD = a
2. Se b != 0 , si calcola il resto r di a / b (mediante operatore %)
3. Se r = 0, allora MCD = b
4. Se r != 0 , si effettuano le sostituzioni a <= b e b <= r e si ripete lo Step 2 fino a che
b=0
Esercizio 2 - Soluzione
Esercizio 3
Scrivere un programma che chieda all’utente di inserire 10 caratteri e memorizzarli su
un apposito array .
Stamparli poi in ordine opposto a quello di inserimento.
Esercizio 3 - Soluzione
Esercizio 4
Scrivere un programma che chieda all’utente di inserire 10 numeri interi ,
memorizzandoli in un apposito array , per poi calcolare:
● Massimo
● Minimo
● Media
Esercizio 4 - Soluzione
Esercizio 5
Scrivere un programma che chieda all’utente di inserire 10 numeri interi ,
memorizzandoli in un apposito array , estraendo poi da esso tutti i numeri pari .
I numeri estratti devono essere memorizzati in un secondo array e quindi stampati.
Esercizio 5 - Soluzione
Esercizio 6
Scrivere un programma che legga in input 10 numeri interi , memorizzandoli in un
array .
Successivamente il programma, per ogni numero dell’array, stampa i suoi divisori
presenti nell’array.
Esercizio 6 - Soluzione
Esercizio 7
Scrivere un programma che legga in input 10 numeri float , memorizzandoli in un array .
Successivamente vengono calcolati e stampati a schermo:
● Numero di Massimi Locali
● Numero di Minimi Locali
● Massimo Globale
● Minimo Globale
Definizione:
Un numero x è un Massimo/Minimo Locale se il numero che lo precede e lo segue
sono entrambi minori/maggiori di x.
Edge Cases:
Per gestire i numeri agli estremi , l’array è considerato circolare .
Esercizio 7 - Soluzione
Esercizio 8
Scrivere un programma che riceva in input 5 numeri interi , memorizzandoli in un array .
Stampare poi un istogramma (usando * per costruire le barre) della sequenza di
numeri.
Successivamente, stampare minimo e massimo dell’array.
Esercizio 8 - Soluzione