Esercizio 5.1 Raffaele Di Leo Gerarchia dei Task: Disegnare Ellisse Disegnare forma ellisse Colorare Selezionare forma Definire lunghezza Scegliere colore Scegliere tipo di colorazione Definire posizione Csm(i) Csm(i) Riempimento uniforme Point(x,y) Psm(x,y) Riempimento a macchie Csm(i) Csm(i) Csm(i) (pannello) Interno Ellisse Csm(i) (pannello) 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)* } P:{ <discegnare 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)* }
Alternativa: disegnare forma triangolo, decomposto in task elementari Gerarchia dei Task: Disegnare Triangolo Disegnare linea Colorare Selezionare tipo linea Definire lunghezza Scegliere colore Scegliere tipo di colorazione Definire posizione Csm(i) Csm(i) Riempimento uniforme Point(x,y) Psm(x,y) 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) Csm(i) Csm(i) (pannello) Interno Ellisse Csm(i) (pannello) 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
Esercizio 5.7 RP: Invio Considero il Software Microsoft Outlook Express Invio CSM(Invio) RP: Scrivo Messaggio Invio E-MAIL CSM(new Mail) RP: Scrivo destinatario Digito lettera ? Finestra di composizione messaggio CSM (interno a textArea) CSM(Input Text destinatario) Indirizzo E-Mail Compongo il testo Destinatario Digito lettera ? Digito lettera discutere…
Scrivo messaggio Scrivo destinatario Invio 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 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? Invio end
Da discutere Esercizio 5.8 Taglia :Attivazione condizionata; Begin Cond(P0) Oggetto selezionato CSM (Pulsante Taglia ) Elemento Tagliato Da discutere End
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 Disconnetti) CSM(pulsante Ok) Da discutere End
Esercizio 5.10 Disegno un rettangolo colorato Begin Rettangolo 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 : Fra i due Task disegna rettangolo e disegna ellisse vi è una perfetta consistenza funzionale, perché le loro reti di Petri sono identiche. CSM( point_basso Dx ) CSM (ellisse) Ellisse disegnata end