Programmazione per TWM: Esercitazione di laboratorio #1 (14/01)
Esercizio 1
Obiettivo: Familiarizzare con
l'ambiente Unix (Linux), che useremo per il resto del corso: login,
comandi di base Unix.
Attività:
- Siete nella "shell dei comandi". Ogni cosa che scrivete è
un comando impartito al sistema. Il comando viene "spedito" al sistema
quando si preme il ritorno carrello ("Return"). Il sistema capisce
solo certi comandi, ovviamente...
- Per prima cosa, modificate la password!!! (comando:
passwd). Vi vengono poi richieste la vecchia password, la
nuova e la conferma. Ricordatevi di cambiate la password
periodicamente, e di mantenerla segreta: se qualcuno usa il vostro
account in modo illecito (ad esempio per trasferire soldi da un conto
bancario a un altro), potreste essere perseguibili penalmente.
- Eseguite il comando pwd ("print working directory"),
che vi dice in quale directory (o cartella) vi trovate. Quello che
viene visualizzato è un pathname: un percorso che dice
in quale posizione del file system vi trovate. Il file system è
organizzato gerarchicamente.
- Eseguite i comandi ls (simile al comando
dir del Dos: mostra i file contenuti nella directory
corrente) e ls -a (l'opzione -a sta per
"all", "tutti" in inglese, e serve per far mostrare anche i file
"nascosti", il cui nome inizia con un punto). ls sta
per "list" (elenca).
- Create un file vuoto di nome "pippo": touch
pippo. Rieseguite ls per verificare che il file
c'è. Verificate con ls -l che il file è
vuoto: c'è una colonna che mostra la dimensione in byte del
file, e il valore sarà 0 (zero). -l è
l'opzione per un elenco in formato "long".
- Cancellate il file "pippo": rm pippo.
rm sta per "remove" (rimuovi). Verificate con
ls di averlo cancellato.
- Create una sottodirectory "a" (comando mkdir a) ("make
directory"). Una directory è un contenitore di file. Spostatevi
nella directory "a" appena creata, con il comando cd a
(cd sta per "change directory"; omonimo del comando
Dos). Verificate di esservi spostati in "a" con il comando
pwd. Ripetete creazione, visualizzazione e cancellazione del
file "pippo", ma questa volta nella directory "a".
- Il comando cd, come accennato in precedenza, permette
di spostarvi nel file system. cd va seguito da un
pathname, la destinazione in cui ci si vuole spostare. cd
.. sale di un livello nella gerarchia del file system. cd
. non fa nulla (perché il punto rappresenta la directory
corrente, la "working directory"). cd vi riporta nella
"home directory", la directory in cui vi trovate al login (diversa per
ognuno di voi). I pathname possono essere di due tipi:
assoluti, quando specificano il cammino dalla radice della
gerarchia, e relativi (quelli che si usano di solito) quando
il cammino è specificato a partire dalla directory
corrente.
- Create un file "pippo" non vuoto: echo bla bla >
pippo (echo ripete quello che segue, in questo caso
"bla bla"; ">" ridirige l'output sul file seguente).
Verificate con ls -l che il file non è
vuoto. Visualizzatene il contenuto con more pippo, oppure
con less pippo (si esce premendo il tasto
q). more e less sono simili al
type del Dos.
- Modificate il nome del file "pippo": mv pippo pluto
(mv sta per "move", muovi). Verificate che "pippo" non
c'è più e che invece c'è "pluto" (con
ls). Verificate anche (con more e
less) che nel file "pluto" c'è quello che c'era in
"pippo" (ossia "bla bla").
- Create una copia del file "pluto": cp pluto topolino
(cp sta per "copy", "copia" in inglese). Verificate con
ls, more e less che tutto
è come vi aspettate.
- Fate pulizia. Cancellate tutti i file nella directory corrente
("pluto", "topolino" ed eventualmente altri che avete
creato). Verificate con ls che la directory in cui siete
("a") è vuota. Spostatevi nella directory padre (con cd
.., in Dos è lo stesso) e cancellate la directory "a":
comando rmdir a ("remove directory").
Abbiamo visto alcuni fra i comandi Unix/Linux più usati:
mkdir, rmdir, cd, ls, pwd, cp, mv, rm, more, less e la
ridirezione >. Abbiamo accennato ai concetti di
pathname, directory corrente e home directory. Abbiamo visto anche
touch ed echo, meno comuni. Per programmare in
modo efficace bisogna conoscere almeno le basi dell'ambiente: abbiamo
fatto un primo passo.
Esercizio 2
Obiettivo: Preparare il file system per gli
esercizi successivi.
Attività:
- Create una sottodirectory "programmazione" (comando mkdir
programmazione).
- Spostatevi nella directory "programmazione" (comando cd
programmazione) e create lì un'altra directory "es1" che
conterrà tutti i file che creerete durante questa
esercitazione.
- Spostatevi nella directory "es1". Ci resterete per il resto di
questa esercitazione.
Esercizio 3
Obiettivo: Familiarizzare con XEmacs (spesso
chiamato, per brevità Emacs, anche se è un'abbreviazione
impropria...), l'editor di testi che useremo per il resto del corso.
Attività:
- Eseguite XEmacs: comando xemacs & (la
& non è indispensabile, ma è molto
comoda...).
- Il tasto più importante in XEmacs è il
C-g (premere insieme control e
g). Interrompe quello che state facendo e vi riporta
(eventualmente premendolo più volte) alla situazione
base.
- Create il vostro primo file con XEmacs. Cliccate sul pulsante
"Open" in alto a sinistra. Vi appare una finestra di dialogo in cui
scegliere il nome del file. Per cambiare, usate
"minni".
- Ora potete scrivere dentro al file "minni" quello che
volete. Scrivete "quello che volete". Poi salvate (pulsante
"Save"). Verificate dalla finestra dei comandi (andateci
cliccandoci sopra, oppure usando ALT-TAB, se funziona) che
"minni" contiene quello che vi aspettate.
- Tornate in XEmacs e sperimentate il copia e incolla. Selezionate
con il mouse la parola "volete", cliccate sul pulsante
"Copy" ("Copia") e poi cliccate più volte sul
pulsante "Paste" ("Incolla"). Otterrete qualcosa del tipo
"quello che voletevoletevoletevoletevoletevolete".
- Cancellate quello che avete aggiunto: selezionate i caratteri da
cancellare (trascinando il mouse) e poi cliccate sul pulsante
"Cut" che cancella il testo selezionato (e lo salva per un
eventuale "Paste" successivo).
- Disfate ("undo") le ultime modifiche fatte cliccando alcune volte
sul pulsante "Undo".
- XEmacs ha anche dei menu. In quello più a sinistra,
"File", c'è la voce "Exit XEmacs" per
uscire dall'editor. Selezionatela e vi ritrovate nella
shell. Approfittatene per fare pulizia e cancellare il file
"minni".
Esercizio 4
Obiettivo: Familiarizzare con Java e SDK (JDK) e
con il ciclo editing-compilazione-esecuzione.
Attività:
- Finalmente passiamo a Java. Lanciate XEmacs e create il file
"CiaoATutti.java". In questo file copiate il programma
"
CiaoATutti
". Potete copiarlo dal libro, pag. 21, o dal
lucido, o dal Web, l'importante è che lo inseriate da tastiera,
non con copia e incolla! Copiate con la massima attenzione e con
precisione: una differenza di un unico carattere, anche un segno di
punteggiatura, può rendere il programma scorretto e non
eseguibile. Ricordatevi di salvare il file
"CiaoATutti.java
". E occhio alle
maiuscole/minuscole!!
- Passate alla shell dei comandi per compilare ed eseguire il
programma. È un'operazione in due passi. Il primo passo
è: compilate con il comando javac
CiaoATutti.java. Se ci sono messaggi di errore, cercate di
comprenderli, e ricontrollate attentamente di aver copiato il
programma in modo esatto. Quando capite cosa non va, modificate il
file "
CiaoATutti.java
" (ricordandovi di salvarlo!) e
ricompilate. Se, dopo 10' ancora non riuscite a capire cosa c'è
di sbagliato, chiedete al docente.
Quando non ci sono errori di compilazione potete passare al secondo
passo ed eseguirlo, con il comando java CiaoATutti. Se il
programma visualizza "Ciao a tutti!
", congratulazioni,
avete scritto il vostro primo programma in Java.
Se siete curiosi, con il comando "ls" avrete notato che
c'è un nuovo file, "CiaoATutti.class
": non
visualizzatelo, è formato da caratteri non stampabili!
- Modificate "
CiaoATutti
" in modo che visualizzi
"Ciao agli altri!
". Per controllare che la modifica
è corretta, salvate, ricompilate e rieseguite. N.B. Ho detto:
(1) salvate; (2) ricompilate; (3) rieseguite. È necessario fare
questi 3 passi in questo ordine.
- Copiate il programma "
AreaTriangolo
" (pag. 22),
compilatelo ed eseguitelo. Modificatelo per poter calcolare l'area di
un triangolo con base 124 e altezza 32. Salvate, ricompilate, e
rieseguite. Come avrete notato, è un po' scomodo interagire con
un programma in questo modo: si può fare di meglio, vedremo
come.
- Cosa succede se i valori di
base
e
altezza
sono entrambi, ad esempio, 3? Perché?
Vedremo come modificare il programma opportunamente per farlo
funzionare anche in questo caso.
- Copiate il programma "
Max2
" (pagg. 23-24),
compilatelo ed eseguitelo... Se non succede nulla è
perché il programma aspetta alcuni dati in input su cui
lavorare: i due numeri fra cui calcolare il massimo. I due numeri di
cui calcolare il massimo devono essere di una cifra (fra 0 e 9), e
vanno inseriti senza spazi separatori (ad es., per calcolare il
massimo fra 2 e 3 bisogna inserire "23" e poi il ritorno
carrello). Eseguite il programma su alcuni dati di prova. Osservate
come il comportamento della System.in.read()
non sia
... ottimale: è un po' meglio di "AreaTriangolo
"
(non serve ricompilare), ma anche peggio (funziona solo con numeri di
1 cifra).
- Modificate il programma "
Max2
" per fare sì che
visualizzi il messaggio "Inserisci le due cifre di cui vuoi calcolare
il massimo" prima di fermarsi per l'input da utente. (Si usa
l'istruzione "System.out.println
").
- Copiate, compilate ed eseguite gli altri programmi visti a lezione
(cap. 1 del libro, eventualmente chiedete al docente una copia in
prestito o usate i lucidi dal sito Web).
Esercizio 5
Obiettivo: Studiare più a fondo l'ambiente
Unix (Linux).
Attività: Abbiamo visto alcuni fra i
comandi Unix/Linux più usati: mkdir, rmdir, cd, ls, pwd,
cp, mv, rm, more, less, >, touch, echo. Un altro comando
molto utile è il man (che sta per "manual",
manuale). Ad esempio, man ls illustra il comando
"ls". Si, è in inglese... Eseguite e leggete, in
parte, il man dei comandi visti: mkdir, rmdir, cd, ls,
pwd, cp, mv, rm, more, less, >, touch, echo e man
(sì, c'è anche il manuale del manuale... ). Non dovete
imparare vita morte e miracoli della shell (ci saranno altri corsi
negli anni successivi), ma almeno i rudimenti sono indispensabili per
programmare, e più ne sapete meno fatica fate...
Esercizio 6
Obiettivo: Studiare le potenzialità di
XEmacs.
Attività: Eseguite il tutorial di XEmacs,
con C-h t ("control-h" e poi t),
oppure da menu Help
, voce Tutorial
. Anche
qui, non dovete imparare tutto di XEmacs (forse nessuno al mondo ci
riesce...), ma almeno i rudimenti sono indispensabili per programmare,
e più ne sapete meno fatica fate...
Attività finale...
... RICORDATEVI DI USCIRE ("exit" + logout) E DI
NON SPEGNERE IL CALCOLATORE!!!!!
Stefano Mizzaro
Last modified: Sat Jul 10 11:31:54 ora legale Europa occidentale 2004