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

Slides:



Advertisements
Presentazioni simili
Introduzione al linguaggio C++
Advertisements

Microeconomia Corso D John Hey. Capitolo 11 e Capitoli 12 e 13 Facciamo lanalisi in due stadi… …nella Capitolo 11 abbiamo trovato le quantità ottime degli.
Programma: main() { istruzioni } ; assegnazione condizione ciclo istruzione: ;
Informatica 22/03/2012.
Lezione 8 Anno accademico Titolare corso: Prof. Costanza Torricelli
Sviluppo di programmi strutturati
MATLAB.
MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
Dipartimento di Matematica
Generazione di Codice Intermedio
Algoritmi e Programmazione
Sistemi Multi-agente. Agente Entità reale o virtuale che vive in un ambiente, lo percepisce, agisce in esso e che ha un comportamento autonomo conseguente.
1 Linguaggi di Programmazione Corso di Laurea in Informatica Introduzione ai linguaggi funzionali.
Algoritmi in C++ (1) da completare
Programmazione Procedurale in Linguaggio C++
Iterazione enumerativa (for)
Linguaggio MATLAB: costrutti tipici (IF,WHILE…)
Process synchronization
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 6 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
Informatica di base A.A. 2003/2004 Algoritmi e programmi
Algoritmi.
Informatica 2. Concetti fondamentali di programmazione Programmare vuol dire scrivere un algoritmo in un linguaggio che faccia funzionare un calcolatore.
Introduzione al linguaggio C++ 5 lezioni
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Introduzione a JAVA Anno Accademico 2009/2010.
1 Corso di Informatica (Programmazione) Lezione 10 (12 novembre 2008) Programmazione in Java: espressioni booleane e controllo del flusso (selezione)
MSW Logo Italiano per Windows
CORSO DI PROGRAMMAZIONE II
CORSO DI PROGRAMMAZIONE II Introduzione alla ricorsione
Uso dei cicli y t =c+ty t-1 +e Un uso dei cicli può essere quello di creare una serie storica per cui y t =c+ty t-1 +e dove poniamo c e t scalari ed e~N(0,1).
Il linguaggio Fortran 90: 4. Array: Vettori e Matrici
Fondamenti di Informatica I a.a Il linguaggio C Il controllo di flusso La selezione condizionale Listruzione switch I cicli Le istruzioni break,
E Pluribus Unum I comportamenti emergenti. La metafora in StarLogo Tartarughe vivono sui patches: mondo bidimensionale che è un automa cellulare. Lenfasi.
Docente : Grazia Cotroni
mosaic manipola oggetti primitivi (ruota e unisci) regole:
Istruzioni Iterative Nicola Fanizzi
Le percentuali Docente : Grazia Cotroni. La risposta più probabile sarà: Le percentuali servono a calcolare lo sconto… Cosa sono le percentuali?
Il Linguaggio C.
Le funzioni.
Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX Dettagli e comandi avanzati Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica.
AN FI Un denominatoe comune Lo stile funzionale Concetti fondamentali.
Programmazione in Java
ORDINE DI CHIAMATA a 1minuto e 2 minuti PRINCIPALI TEMPI DELLA COMPETIZIONE ORDINE DI CHIAMATA a 1minuto e 2 minuti PRINCIPALI TEMPI DELLA COMPETIZIONE.
I Vettori • Caratteristiche Operazioni Prof. A. Sala Uscita.
CODIFICA Da flow-chart a C++.
Cicli in Fortran I cicli consentono di eseguire una sequenza di istruzioni più di una volta due tipi: Cicli iterativi Cicli while.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 8 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
BIOINFO3 - Lezione 201 Come in ogni corso di introduzione ad un linguaggio di programmazione, proviamo a scrivere lormai celebre primo programma di prova.
BIOINFO3 - Lezione 11 installare moduli perl Mysql su windows: ppm install dbi ppm install dbd-mysql.
Fopndamenti di programmazione. 2 La classe String Una stringa è una sequenza di caratteri La classe String è utilizzata per memorizzare caratteri La classe.
Sviluppare un programma in C che, dato un array da 100 elementi interi caricato con numeri casuali compresi tra [10,100], sia in grado di cercare il valore.
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA FINALE DEL 21 MAGGIO 2007 NOME: COGNOME: ________________________________________________________________________________.
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
Curiosità su numeri naturali consecutivi come ottenere serie di quadrati, cubi, quarte potenze senza moltiplicazioni numeri figurati quadrati, triangolari,
Linguaggi e modelli computazionali LS Manni Tiziano
PROGRAMMAZIONE IN LOGO
Anno accademico Le istruzioni di controllo in C.
Intervalli di fiducia.
Divisori 15 : 3 = 5 QUOTO SEGNO DI OPERAZIONE DIVIDENDO DIVISORE
Sistemi e Tecnologie Informatiche Ricorsione Umberto Ferraro Petrillo.
Il linguaggio Fortran 90: 3. Procedure e Funzioni
JavaScript Generalità Cos'è JavaScript?
Lezione 3 Struttura lessicale del linguaggio
Qualche notizia indispensabile per cominciare Ogni oggetto ha una serie di variabili già al suo interno. All'inizio tutte le variabili sono = 0 SPEED :
Introduzione a Javascript
Allievi Elettrici - AA Le funzioni ricorsive in C
1 Tipi di Dato §descrittori, tipi, controllo e inferenza dei tipi §specifica (semantica) e implementazione di tipi di dato l implementazioni “sequenziali”
1 Il linguaggio C Precisazioni sull’esperienza in laboratorio.
StarLogo Le tartarughe in parallelo!!. CONTIAMO LE TARTA  to inizia  ca  crt 1  end   to genera  hatch [ ] fd 1  end.
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
Laboratorio di Linguaggi... altre D O M A N D E ! Marco Tarini Università dell’Insubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso.
Transcript della presentazione:

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

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

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

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

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

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

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

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

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

Assegnamento make “ x sum :y 3 ha due parametri. L’effetto 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

Assegnamento Indirizzamento indiretto Scoping 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

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.

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

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

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

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

Strutture di controllo OPERAZIONE [una lista di comandi] [vari dati] show map [? * ? ] [ 5 6 7 ] [25 36 49]

Esempio to vai ;sceglie un punto sullo schermo pu setxy -250 + random 500 -150 + random 300 pd rt random 360 ;sceglie l'inclinazione end

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 ]

Indici dei Colori 0 -> [ 0 0 0] 1 -> [ 0 0 255] 0 -> [ 0 0 0] 1 -> [ 0 0 255] 2 -> [ 0 255 0] 3 -> [ 0 255 255] 4 -> [255 0 0] 5 -> [255 0 255] 6 -> [255 255 0] 7 -> [255 255 255] 8 -> [155 96 59] 9 -> [197 136 18] 10 -> [100 162 64] 11 -> [120 187 187] 12 -> [255 149 119] 13 -> [144 113 208] 14 -> [255 163 0] 15 -> [183 183 183]

Altro esempio to segna_percorso setpc 4 setpensize [ 20 20 ] 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

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

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

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

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] 25 50 50 25 staticcreate "earth "bt bf time 25 5 50 25 end windowdelete "earth