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à:

  1. 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...
  2. 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.
  3. 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.
  4. 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).
  5. 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".
  6. Cancellate il file "pippo": rm pippo. rm sta per "remove" (rimuovi). Verificate con ls di averlo cancellato.
  7. 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".
  8. 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.
  9. 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.
  10. 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").
  11. 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.
  12. 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à:

  1. Create una sottodirectory "programmazione" (comando mkdir programmazione).
  2. Spostatevi nella directory "programmazione" (comando cd programmazione) e create lì un'altra directory "es1" che conterrà tutti i file che creerete durante questa esercitazione.
  3. 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à:

  1. Eseguite XEmacs: comando xemacs & (la & non è indispensabile, ma è molto comoda...).
  2. 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.
  3. 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".
  4. 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.
  5. 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".
  6. 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).
  7. Disfate ("undo") le ultime modifiche fatte cliccando alcune volte sul pulsante "Undo".
  8. 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à:

  1. 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!!
  2. 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!
  3. 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.
  4. 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.
  5. 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.
  6. 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).
  7. 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").
  8. 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!!!!!


Valid XHTML 1.1! Stefano Mizzaro Last modified: Sat Jul 10 11:31:54 ora legale Europa occidentale 2004