Esercitazione E1
0) Effettuare il Login su uno dei PC
1) La Console Comandi di Windows XP
Come visto a lezione, la Console Comandi di Windows XP consente di navigare e interagire con il file system e lanciare direttamente programmi.
I comandi principali visti a lezione che dovrete essere in grado di usare e saranno oggetto di verifica in sede d'esame sono
cd, dir, mkdir, rmdir, del, ren, move, copy.
Di seguito si riporta il testo dell'esecitazione.
- Aprire la console comandi
- Spostarsi alla directory radice C:\ che identifica l'hard disk locale
- Se non presente, create la directory Temporanea
- Create una nuova directory Lab all'interno di Temporanea
- Tasto destro su Prova.java, selezionare Salva oggetto con nome... e scegliere C:\Temporanea come destinazione
- Rinominare il file Prova.java in Hello.java
- Visualizzare il contenuto della cartella Temporanea
- Creare una nuova cartella Esercizi all'interno di Temporanea
- Copiare il file Hello.java nella cartella Lab
- Copiare il file Hello.java nella cartella Esercizi
- Eliminare il file Hello.java all'interno di Temporanea
- Eliminare la cartella Lab e il suo contenuto utilizzando un solo comando
- Rinominare la directory Esercizi in Laboratorio
- Tasto destro su Hello2.java, selezionare Salva oggetto con nome... e scegliere C:\Temporanea\Laboratorio come destinazione
- Visualizzare il contenuto della cartella Laboratorio
- Spostare tutto il contenuto di Laboratorio in Temporanea
- Eliminare la directory Temporanea e tutto il suo contenuto usando un unico comando
Ripetere i punti precedenti utilizzando l'applicazione Esplora risorse di Windows XP.
2) Valutazione e typing delle espressioni
Framework da utilizzare: F-V
Fase 1) Verifica della corretta installazione e funzionamento
del framework
- Fare doppio click sull'icona del Framework di Fondamenti di
Informatica L-A, presente nel Desktop
- Clickare sul framework F-V e attendere la comparsa della
pagina col pulsante di Valutazione
- Provare la valutazione della semplice espressione: 1+2
- Può accadere che la valutazione giunga solo dopo
15-20 secondi di attesa, dipendentemente dalla velocità del
PC (Si noti che dietro ogni valutazione c'è la creazione di
un intero programma Java, la sua compilazione e la sua esecuzione.)
- Per qualunque problema sugli aspetti di cui sopra chiedere
immediatamente al docente e/o al tutor.
- Nel caso dopo un po' il sistema smetta di funzionare si
consiglia di chiudere l'applicazione e farla ripartire
Fase 2) Concetti di valutazione, errore sintattico, ed errore
semantico
- Provare, con semplici esempi di espressione così
come suggeriti a lezione, il funzionamento degli operatori logici su
booleani e aritmetici su interi, con espressioni del tipo
- true && false, true & false, !
false, !(true & false)
- 1+2, 10/3, 10%3,
- 5.0/2, 1e4/1e-4
- "a"+1, "a"+"b"
- Verificare le situazioni di errore sintattico, notando la
difficoltà del framework a produrre segnalazioni adeguate
della
loro causa. Questo aspetto è correlato al funzionamento
intrinseco del framework, ma è anche una
difficoltà
propria dei parser... Provare con:
- Formulare altri esempi di errori sintattici, inserendo
valori e operatori scorretti sintatticamente (operatori non esistenti), parentesi non bilanciate,
etc..
- Verificare le situazioni di errore semantico, ossia quando
si usano gli operatori in modo inconsistente coi tipi dei valori da
manipolare
- 1+false, new int[]{true}, (new int[]{1})["a"],...
- Verificare le situazioni di errore di valutazione dovuto a
divisione per zero, accesso ad un array fuori dai suoi limiti.
Fase 3) Esercizi su operatori numerici e loro conversione
- Sperimentare i concetti di tipi di dato numerici interi ed
in virgola mobile, e l'applicazione di operatori aritmetici su valori
di tipi diversi, prevedere a priori risultato e tipo del risultato.
Interrogarsi su eventuali risultati inattesi.
- Esempi:
- 10/3, 10/3.0, 10f/3, 10d/3
- 4d+10/3, (4d+10)/3
- Problemi di precisione. Notare i risultati delle seguenti
espressioni:
- (4+1e-15)/4*4, (4+1e-20)/4*4, 1e20+1e-20
Fase 4) Operatori bit-a-bit
- Semplici manipolazioni di bit
- 1 << 0, 1<<1,
1<<2, 1<<8
- (1 << 2) << 3
- 1 | 2, 1 | 4, 2 | 4 ("or" come sovrapposizione di bit)
- 1<<7 | 1<<10 (sequenza con
un 1 in posizione 7 e uno in posizione 10, perchè?)
- 0xf << 1 == 0xf0
- 0xf << 4 == 0xf0
- 0xf0 >>> 4 == 0xf
- 0xabcd << 8 == 0xabcd00
- 100 >>> 1 == 50
- -100 >>> 1 == -50
- -100 >>> 1
- Creazione di sequenze di bit
- 0x00001000 == 1<<12
- 0x00001010 == (1<<12 | 1 <<
4)
- 0x0000f0f0 == (0xf<<12 | 0xf
<< 4)
- 0x0000f000 == (1<<12 | 2
<< 12 | 4 <<12 | 8<<12)
- Accesso all'i-esimo bit di un intero, in questo caso, al
12-esimo e 11-esimo bit di 0x00001000
- 0x00001000 & (1<<12)
- 0x00001000 &
(1<<11)
- (0x00001000 & (1<<12)) != 0
- (0x00001000 & (1<<11)) != 0
- Nota: dato un numero intero n, per sapere quanto vale
il suo bit i-esimo si usa l'espressione: (n &
(1<<i)) != 0
Fase 5) Esercizi sulla priorità degli operatori e
sulla loro associatività
- prevedere e controllare l'esito delle seguenti valutazioni,
considerando le priorità e associatività definite
a lezione per Java-V
- 20/10/2, (20/10)/2, 20/(10/2)
- 3+2*5,2*5+3
- Costruire l'AST delle seguenti espressioni, e prevedere il
risultato:
- 1+2+3+"a"+4+5+6, 1+(2+(3+"a"))+4+5+6
Fase 6) Uscire dal framework