Esercizio 5.1
Raffaele Di Leo
Gerarchia dei Task:
Disegnare Ellisse
Disegnare forma ellisse
Colorare
Definire lunghezza
Selezionare forma
Scegliere colore
Definire posizione
Csm(i)
Point(x,y)
Psm(x,y)
Csm(i)
Scegliere tipo di colorazione
Riempimento uniforme
Riempimento a macchie
Csm(i)
(pannello)
Csm(i)
Interno Ellisse
Csm(i)
(pannello)
Csm(i)
Interno Ellisse
Grammatica:
Σ: { csm(i) , point(x,y) , psm(x,y) }
V:{ <disegnare ellisse> , <disegnare forma ellisse> , <colorare> , <scegliere forma> ,
<definire posizione> , <definire dimensione> , <scegliere colore> , <scegliere tipo
colorazione> , <riempimento uniforme> , <riempimento a macchia> }
P:{ <disegnare ellisse >  <disegnare forma ellisse>+<colorare>
<disegnare forma ellisse>  <scegliere forma> + <definire posizione> + <definire dimensione>
<colorare>  <scegliere colore> + <scegliere tipo di colorazione>
<scegliere tipo di colorazione>  <riempimento uniforme> + <riempimento a macchie>
<scegliere forma>  csm(ellisse)
<definire posizione>  point(vertice superiore sinistro)
<definire dimensione>  psm(vertice basso a destra)
<scegliere colore>  csm(rosso) | csm(verde) | …
<riempimento uniforme>  csm(pannello) + csm(interno ellisse)
<riempimento a macchie>  csm(pannello) + csm(interno ellisse)* }
Gerarchia dei Task:
Disegnare Triangolo
Disegnare linea
Colorare
Definire lunghezza
Selezionare tipo linea
Scegliere colore
Definire posizione
Csm(i)
Point(x,y)
Psm(x,y)
Csm(i)
Scegliere tipo di colorazione
Riempimento uniforme
Riempimento a macchie
Notare che, non potendo
rappresentare l’iterazione, le
due gerarchie di task
sembrano simili.
Alternativa: disegnare forma
triangolo, decomposto in task
elementari
Csm(i)
(pannello)
Csm(i)
Interno Ellisse
Csm(i)
(pannello)
Csm(i)
Interno Ellisse
Grammatica:
Σ: { csm(i) , point(x,y) , psm(x,y) }
V:{
<disegnale
ellisse>,<disegnare
forma
ellisse>,<colorare>,<scegliere
forma>,<definire posizione>,<definire dimensione>,<scegliere colore>,<scegliere tipo
colorazione>,<riempimento uniforme>,<riempimento a macchia> }
P:{ <discegnare triangolo >  <disegnare forma linea>+ <disegnare forma linea >+ <disegnare
forma linea >+<colorare>
<disegnare forma linea>  <scegliere tipo linea> + <definire posizione> + <definire dimensione>
<colorare>  <scegliere colore> + <scegliere tipo di colorazione>
<scegliere tipo di colorazione>  <riempimento uniforme> + <riempimento a macchie>
<scegliere forma>  csm(linea)
<definire posizione>  point(vertice superiore sinistro)
<definire dimensione>  psm(vertice basso a destra)
<scegliere colore>  csm(rosso) | csm(verde) | …
<riempimento uniforme>  csm(pannello) + csm(interno figura triangolo)
<riempimento a macchie>  csm(pannello) + csm(interno figura triangolo)* }
Si, ma le cose sono più semplici se si rappresenta la
continuità nel disegno della forma
Esercizio 5.2
1 cancellare un carattere per volta di una stringa di lunghezza 5 = ‘ Corso ’
2 isolando la parola col mouse e poi usando il tasto cancella
1)
Tm :pensare al metodo da applicare = 1.4 sec +
Th: portare la mano sul mouse= 0.4 sec +
Tp: puntare con mouse dopo la parola ‘ corso ’ = 1.1 sec +
Tc: clicco sul tasto sinistro del mouse per posizionare il cursore = 0.2
sec +
Tk: battere 5 volte il tast |back| = 40 sec about
=______43.1 sec ;
N.B. Siccome il tasto premuto è sempre lo stesso, ho calcolato solo il
tempo per ritrovare il tasto di Back.
2)
Tm :pensare al metodo da applicare = 1.4 sec +
Th: portare la mano sul mouse= 0.4 sec +
Tp: puntare con mouse dolo la parola ‘ corso ’ = 1.1 sec +
Tc: clicco sul tasto sinistro del mouse per posizionare il cursore = 0.2 sec +
Ts: seleziono la parola per cancellare = 3 sec +
Tk: battere il tasto |Canc| = 40 sec
=______46.1 sec ;
Conclusione : E’ più conveniente il primo metodo!
Nota: è sempre più conveniente, indipendentemente dalla
lunghezza della stringa da cancellare?
Esercizio 5.5
Ecco la corrispondente in UAN: ( A ( C || D ) ) | ( B E ).
Begin
Esercizio 5.6
…oppure
Expert(User)
End
RP: Invio
Esercizio 5.7
Considero il Software Microsoft
Outlook Express
Invio
CSM(Invio)
RP: Scrivo Messaggio
Invio E-MAIL
CSM(new Mail)
Digito lettera ?
RP: Scrivo destinatario
Finestra di composizione messaggio
CSM (interno a textArea)
CSM(Input Text destinatario)
Indirizzo E-Mail
Destinatario
Compongo il testo
Digito lettera ?
Digito lettera
discutere…
Descrizione: Nel momento in cui clicco sul pulsante ‘Nuovo’, si apre una finestra di
messaggio in cui posso inserire un testo oppure un indirizzo a cui inviare l’E-mail. I due
task possono essere eseguiti secondo una indipendenza d’ordine.
Begin
Scrivo messaggio Scrivo destinatario
Invio
end
Nota: secondo questa RP,
bisogna aver terminato uno dei
due task per poter eseguire
l’altro: è così in Outlook? Se
così non è, come si può
modificare la rete?
Esercizio 5.8
Taglia :Attivazione condizionata;
Begin
Cond(P0) Oggetto selezionato
CSM (Pulsante Taglia )
Elemento Tagliato
End
Da discutere
Divieto di Accesso alla rete, con messaggio di errore, in caso di connessione
interrotta;
Begin
Connesso alla rete
Finestra di connessione
CSM(connetti)
Connesso
Connessione interrotta
CSM(pulsante Ok)
CSM(pulsante Disconnetti)
Da discutere
End
Disegno un rettangolo colorato
Esercizio 5.10
Rettangolo
Begin
Colore
Pannello
CSM(figura rettangolo)
CSM (colore scelto)
Colore scelto
CSM( point _alto Sx )
CSM(Pannello)
CSM( point_basso Dx )
CSM (rettangolo)
Rettangolo disegnato
end
Begin
Ellisse
Colore
Pannello
CSM(figura ellisse)
CSM (colore scelto)
Colore scelto
CSM( point _alto Sx )
CSM(Pannello)
Conclusione :
CSM( point_basso Dx )
CSM (ellisse)
Ellisse disegnata
end
Fra i due Task
disegna rettangolo
e disegna ellisse vi
è una perfetta
consistenza
funzionale, perché
le loro reti di Petri
sono identiche.
Scarica

esercizi svolti dagli studenti