La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Il LOGO la programmazione è un gioco! nessuna pretesa da ingegneria del sw.

Presentazioni simili


Presentazione sul tema: "Il LOGO la programmazione è un gioco! nessuna pretesa da ingegneria del sw."— Transcript della presentazione:

1 Il LOGO la programmazione è un gioco! nessuna pretesa da ingegneria del sw

2 Caratteristiche generali Linguaggio interpretato Scritto su linee. Ogni linea è una chiamata di funzione di tipo –Comando (con effetti ma senza valore) print,.. –Operazione (con valore come output) sum, list,.. –Un sottoinsieme di operazioni è costituito dai predicati che assumono il valore true false

3 CiaoMondo!! label ciaomondo!! Scegliere la grandezza, il colore della penna e scrivere repeat 36 [label "ciaomondo!! rt 10 setpencolor repcount]

4 Introduzione concetti: procedura TO BOX REPEAT 4 [FD 100 RT 90] END E se vogliamo 2 quadrati? TO BOXES REPEAT 4 [FD 100 RT 90] RT 90 PU FD 120 PD LT 90 REPEAT 4 [FD 100 RT 90] END

5 Introduzione variabili E se devono essere tanti? E di grandezza qualunque? Studio delle figure poligonali e geometria della tartaruga. Vediamo qualche cammino.

6 Qualche cammino repeat 4 [fd 50 rt 90] repeat 5 [fd 50 rt 72] repeat 6 [fd 50 rt 60] repeat 5 [fd 50 rt 144] repeat 3 [fd 50 rt 120] Può la tartaruga decidere che il cammino si chiude?

7 Generalità Le espressioni possono essere primitive o definite dallutente. Possono avere 0, 1, più parametri Si usa la notazione infissa –Sum :x :y –….

8 I dati Possono essere –Parole –Liste –Vettori –I numeri sono casi particolari di parole. –Non cè il sistema forte dei tipi: linterprete lo decide dal contesto.

9 I dati due simboli particolari –: per indicare il contenuto di.. Si tratta di un uso molto utile per ricordare allo studente il concetto di variabile. –Quotazione o Si tratta di un simbolo che indica nessuna valutazione. Il numero è un caso speciale di autovalutazione 2 2

10 Assegnamento make x sum :y 3 –ha due parametri. Leffetto sta nel porre nel primo parametro la valutazione del secondo –Sum :y 3 –dove si indica di effettuare la somma tra il contenuto di y e il numero 3 Il secondo parametro è passato per valore, il primo per indirizzo

11 Assegnamento Indirizzamento indiretto –make " x 45 –make : x 3 –print :45 Scoping –Le variabili non devono essere dichiarate e sono globali. Possono essere dichiarate locali a una procedura e vale lo scoping dinamico. –I parametri delle procedure creano variabili locali

12 Liste Rispetto ai vettori sono espandibili –first, last, butfirst, butlast, member, item. –sentence fput, lput Coda con le operazioni queue, dequeue, Stack con le operazioni push and pop La ricorsione è il modo naturale di trattare con le liste.

13 Strutture di controllo ifelse test [ do if true list ] [do if false list] repeat number [instruction list] Altre istruzioni iterative ma si raccomanda luso ricorsivo

14 Esempi make "stati [italia francia spagna] label :stati Oppure label thing stati label first :stati pr first [italia francia spagna] pr last [italia francia spagna] pr butfirst [italia francia spagna] show butfirst [italia francia spagna] ct

15 Esempi make first [gatto cane] first [Meo Lilli] pr :gatto ?? make "Meo "gatto pr :meo ?? make :meo "graffia pr :gatto ( o pr thing :meo) ??

16 Esempi for [red 0 255] [for [green 0 255] [setpixel (list :red :green 0) fd 1] bk 256 rt 90 fd 1 lt 90]

17 Strutture di controllo OPERAZIONE [una lista di comandi] [vari dati] show map [? * ? ] [ ] [ ]

18 Esempio to vai ;sceglie un punto sullo schermo pu setxy random random 300 pd rt random 360 ;sceglie l'inclinazione end

19 Esempio to galassia :num ;traccia :num stelle repeat :num [ vai star random 50 ] ;di ampiezza arbitraria end to star :size repeat 5 [fd :size rt 144 ] end

20 Indici dei Colori 0 -> [ 0 0 0] 1 -> [ ] 2 -> [ ] 3 -> [ ] 4 -> [ ] 5 -> [ ] 6 -> [ ] 7 -> [ ] 8 -> [ ] 9 -> [ ] 10 -> [ ] 11 -> [ ] 12 -> [ ] 13 -> [ ] 14 -> [ ] 15 -> [ ]

21 Altro esempio to segna_percorso setpc 4 setpensize [ ] rt 60 fd 60 rt 40 fd 120 rt 100 fd 150 rt 90 fd 120 rt 65 fd 80 end Una " strada " su un burrone! Costringiamo dentro la tartaruga

22 Metodologie interessanti to cambia_direzione bk 1 rt 30 end to controlla pu fd 1 output pixel end to cammina bk 1 pd fd 1 end

23 Funziona? to segui_traccia setpc 0 setpensize [ 1 1 ] repeat [ ifelse or ( 4 = controlla ) ( 0 = controlla ) [cammina] [ wait 5 cambia_direzione ] ] end

24 Lezione appresa Scrivere bene i controlli Anche la correzione non è soddisfacente. Un po di fantasia non guasta!! windowcreate "uno "finestra "titolo [] windowcreate "finestra "finestramia "titolo [] staticcreate "finestramia "static1 [Heading=0] repeat 72 [rt 5 staticupdate "static1 se [Heading=] heading wait 60] windowdelete finestra

25 Esempio to usofinestre local "wnx make "wnx 100 local "wny make "wny 90 local "marx make "marx 5 local "mary make "mary 20 local "sizx make "sizx 10 local "sizy make "sizy 10 windowcreate "main "earth [Saluto] 0 0 :wnx :wny [] buttoncreate "earth "bm "* :marx+:sizx*4 :mary+:sizy*1 :sizx :sizy [galassia 50] staticcreate "earth "bw [Hello World] staticcreate "earth "bt bf time end windowdelete "earth


Scaricare ppt "Il LOGO la programmazione è un gioco! nessuna pretesa da ingegneria del sw."

Presentazioni simili


Annunci Google