-
Aprire la shell o terminale. Ricordiamo che la shell non è altro che un interprete di comandi, in particolare dei vostri e che quindi
-
stampa un prompt >
-
legge un comando scritto dall'utente e terminato con enter/return/invio
-
esegue il comando o segnala un errore se non è in grado di completarlo
-
Creare una cartella o directory
Laboratorio
con il comando UNIX
mkdir Laboratorio (mkdir sta per make directory)
- Entrare nella nuova cartella con il comando
cd Laboratorio (cd sta per change directory)
-
Creare una cartella o directory
Esercitazione_i
con il comando UNIX
mkdir Esercitazione_i per l'i-esima esercitazione
- Entrare nella nuova cartella con il comando
cd Esercitazione_i
-
Si
utilizzerà preferibilmente l'editor
geany per
scrivere tali
programmi, lanciandolo dalla linea di comando della shell o terminale:
geany
<nomefile>.c &
N.B. L'utilizzo del simbolo &
consente di tenere aperta la shell, anche dopo aver lanciato l'editor geany.
-
Per compilarli (ovvero per tradurre il file <nomefile>.c dal C al linguaggio macchina, creando il file eseguibile <nometarget>)
si useranno i comandi, sempre dalla shell o terminale:
-
gcc -o
<nometarget> <nomefile>.c
perché il file compilato venga messo nel
file
<nometarget>
.
Con questo sistema avremo un file eseguibile per ogni file sorgente.
-
gcc
<nomefile>.c perché il file compilato
venga messo nel file
a.out.
Con questo sistema tutti i file eseguibili risultati dalla compilazione vengono trascritti sullo stesso file a.out.
-
Infine, per eseguire il file eseguibile < nometarget>, ottenuto dalla compilazione, usare il comando
./<nometarget>.
Per ulteriori approfondimenti su UNIX, vedi la seguente
sintesi.
ESERCIZI
Istruzioni condizionali e
iterative
-
Scrivere un programma che calcoli e stampi il prodotto degli interi
dispari da 1 a 15.
-
Scrivere un programma che legge una sequenza di 10 numeri interi
arbitrari e stampa il valore minimo. Ripetere l'esercizio
utilizzando il comando for
al posto del comando while
(o viceversa).
-
Scrivere un programma che calcola e stampa la Tavola Pitagorica.
-
Scrivere un programma che legge una sequenza di interi non negativi
terminata da un numero negativo
e stampa il corrispondente istogramma.
Esempi di esecuzione (input utente in blu):
Inserire gli interi non negativi:
8 2 0 5 3 9 4 -1
8 |********
2 |**
0 |
5 |*****
3 |***
9 |*********
4 |****
|
-
Scrivere un programma che genera un numero intero casuale tra 1 e
100, e chiede all'utente di indovinarlo ripetendo l'inserimento di un
numero.
Il programma riferisce ad ogni inserimento se il numero inserito
è quello giusto, se è maggiore o minore.
Il programma termina quando l'utente indovina il numero generato.
Nota: per generare il numero casuale utilizzare il
seguente codice (la variabile numero conterrà un numero casuale tra
1 e 100):
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
main() {
int numero;
srand(time(NULL));
numero=(rand()%100)+1;
}
Esempio di interazione col programma:
Supponiamo che il numero casuale generato sia 26.
Indovina il numero:
10
Il numero inserito è minore del numero da indovinare.
Indovina il numero:
40
Il numero inserito è maggiore del numero da indovinare.
Indovina il numero:
30
Il numero inserito è maggiore del numero da indovinare.
Indovina il numero:
26
Hai indovinato!!!
-
Scrivere un programma che:
- simula una successione di lanci di moneta (Testa o Croce);
- continua a generare lanci di moneta fino a che la condizione di
terminazione è verificata;
- la condizione di terminazione è la seguente: la sequenza
generata contiene almeno 5 esiti uguali consecutivi (es: 5 volte
Testa, oppure 5 volte Croce);
- il programma deve restituire il numero di lanci di moneta che
sono stati necessari per verificare la condizione di terminazione
- Scrivere un programma che legge un valore di tipo
double, uno di tipo
char e poi ancora uno di
tipo
double e infine
fa
in modo che:
- se il carattere letto è '+' allora stampa la somma
dei due valori numerici;
- se il carattere è '*' allora stampa il prodotto
dei due valori numerici;
- se è un altro carattere allora stampa il
primo valore.
-
Scrivere un programma che, utilizzando il comando if, assegni un giudizio ad un voto.
Voto |
Giudizio |
inferiore a 18 |
i |
tra 18 e 24 |
s |
tra 24 e 27 |
b |
tra 27 e 30 |
o |
-
Scrivere un programma che chiede all'utente un numero più
piccolo di 50 e che determina se è primo oppure no.
-
Scrivere un programma che chieda all'utente
un intero n, e stampi
un triangolo isoscele di
asterischi, di altezza lunga n e base lunga 2n-1. (Se il valore letto è
negativo si consideri il suo valore assoluto).
Esempio di interazione con il programma (in blu
l'input dell'utente):
Dammi un numero intero: 6
*
***
*****
*******
*********
*********** |
- (*)
Un numero (o una parola) è detto palindromo quando si
può leggere allo stesso modo indipendentemente dalla direzione
della lettura (da sinistra verso destra oppure da destra verso
sinistra). Un esempio di numero palindromo è 47374, mentre una
parola palindroma è ad esempio osso.
Scrivere un programma che legga un valore intero di esattamente 5
cifre e determini se si tratta di un numero palindromo oppure no.
- (*)
Scrivere un programma che accetta due date in input e che calcola la
differenza in giorni tra le date.
- (*)
Considerando lo standard segno, mantissa e esponente, con 1 bit per il segno, 3 bit per la mantissa e 2 bit per l'esponente,
calcolare il numero più grande rappresentabile e quello con segno positivo più piccolo.
- (*)
Considerando lo standard segno, mantissa e esponente, con 1 bit per il segno, x bit per la mantissa e y bit per l'esponente,
calcolare il numero più grande rappresentabile e quello con segno positivo più piccolo.
- (**)
Considerando lo standard segno, mantissa e esponente, con 1 bit per il segno, 3 bit per la mantissa e 2 bit per l'esponente,
sommare i valori +0.001*20 e +0.100*24.