Introduzione al Linguaggio di Programmazione

Похожие документы
Alessandro Pluchino. Dipartimento di Fisica e Astronomia and INFN sezione di Catania Università di Catania - Italy

Sistemi Multi-agente

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

Introduzione al DEV C++

Note sull utilizzo di ISAGRAF V. 3.31

Corso sul linguaggio Java

Introduzione all ambiente MATLAB. Richiami II. Calcolo Numerico - A.A. 2008/09

Strutture di controllo decisionali

D B M G Il linguaggio HTML

Corso di Informatica. Problemi ed algoritmi. Ing Pasquale Rota

STRUTTURE DI CONTROLLO DEL C++

Come ragiona il computer. Problemi e algoritmi

Metodi di Analisi dei Dati Sperimentali. AA 2009/2010 Pier Luca Maffettone. Elementi di Matlab

Esercitazione 1: Introduzione a MATLAB

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Le basi del linguaggio Java

Problema. Vettori e matrici. Vettori. Vettori

Modulo 2: Strutture fondamentali della programmazione Java

Algebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche

CORSO DI LABORATORIO DI INFORMATICA

Access. P a r t e t e r z a

Scilab. Introduzione a Scilab - Vettori. Corso di Informatica CdL: Chimica. Claudia d'amato.

ISTITUTO STATALE D ISTRUZIONE SUPERIORE FERRARIS - BRUNELLESCHI EMPOLI Anno scolastico 2015/2016

Informatica Generale Andrea Corradini I linguaggi di programmazione

BlueJ: un ambiente per imparare Java

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a

LEGA NAZIONALE PATTINAGGIO SETTORE FORMAZIONE

Linguaggi di programmazione

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale

Introduzione a Matlab

Sviluppare un programma in FORTRAN

Introduzione alla programmazione

Algoritmi. Pagina 1 di 5

Linguaggio C: introduzione

3.5.1 PREPARAZ1ONE I documenti che si possono creare con la stampa unione sono: lettere, messaggi di posta elettronica, o etichette.

Javascript. - Corso Web Design - Media Dream Academy. Stefano Gaborin

Matlab. Istruzioni condizionali, cicli for e cicli while.

Introduzione agli Algoritmi

Arch. Antonella Cafiero Studio di Architettura Lighting Design ss 275 km Miggiano -LEwww.cafieroarchitettura.it.

Sistemi Operativi. Sistemi I/O SISTEMI DI INPUT/OUTPUT. Hardware di I/O. Interfaccia di I/O per le applicazioni. Sottosistema per l I/O del kernel

1) Matlab e simulazione. 2) Esempi di utilizzo. Mauro De Sanctis corso di Informazione e Codifica Università di Roma Tor Vergata

RiPresA Rilevazione presenze e gestione del personale

Attività 12. Gli ordini di marcia I linguaggi di programmazione

Introduzione agli Algoritmi 4. Problemi. Dal Problema alla Soluzione

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

Evoluzione del FORTRAN 14/03/2016. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 15 IL LINGUAGGIO FORTRAN

STORIA E CARATTERISTICHE

3. Le routine evento in Access 2000/2003

Programmazione con il linguaggio LibreOffice Basic

Fondamenti d Informatica: linguaggi formali. Barbara Re, Phd

Processore Danilo Dessì. Architettura degli Elaboratori.

L ELABORATORE ELETTRONICO

SCADENZIARIO. Scadenziario

WEBGIS 1.0. Guida per l utente

Esercizi su Python. 14 maggio Scrivere una procedura che generi una stringa di 100 interi casuali tra 1 e 1000 e che:

La programmazione ad oggetti: chiamate di metodi. Overloading. This

Internetworking V a nno

Funzioni, Stack e Visibilità delle Variabili in C

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal

Introduzione a Processing. Roberto Ranon

Il programma OCTAVE per l insegnamento dell algebra lineare nella Scuola Secondaria p. 1

Esame Laboratorio di Sistemi Operativi Cognome Nome Mat.

LEZIONE 1. 10/05/16 1 Dott. Aniello Castiglione. INTRODUZIONE A SCRATCH Laboratorio di Informatica per l Educazione A. A.

Costrutti iterativi. Utilizzo dei costrutti iterativi

Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017

5 - Istruzioni condizionali

Lezione 6 Introduzione al C++ Mauro Piccolo

Array e Oggetti. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 12. A. Miola Dicembre 2006

Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio)

Транскрипт:

Introduzione al Linguaggio di Programmazione NetLogo ha un suo proprio linguaggio di programmazione di alto livello (un meta- linguaggio molto simile all inglese parlato), basato sul Java (un noto linguaggio di programmazione object oriented ) ma con una stru@ura più semplice fa@a da una sequenza di procedure contenend il codice del programma (case insensidve). Si può accedere al codice per mezzo dell apposita sezione Procedures... Procedures Tab

Le Variabili In NETLOGO si possono definire 3 Dpi di variabili: Le variabili globali esistono in esemplari unici e sono visibili da qualunque punto del codice. Vengono dichiarate di solito all inizio del codice, fuori da ogni altra procedura, oppure dire@amente dall interfaccia di sviluppo a@raverso gli Sliders, gli Switch o i Chooser, e vengono aggiornate con la riga di comando: set nome_var valore

Le Variabili In NETLOGO si possono definire 3 Dpi di variabili: Le variabili globali esistono in esemplari unici e sono visibili da qualunque punto del codice. Vengono dichiarate di solito all inizio del codice, fuori da ogni altra procedura, oppure dire@amente dall interfaccia di sviluppo a@raverso gli Sliders, gli Switch o i Chooser, e vengono aggiornate con la riga di comando: set nome_var valore Le variabili locali esistono anch esse in esemplari unici, ma sono visibili solo all interno della procedura dove esse sono state dichiarate per mezzo della riga di comando: let nome_var value Le variabili proprietarie esistono invece in molte copie diverse (istanze), una per ogni turtle (turtles- own), per ogni patch (patches- own) o link (links- own), ovviamente con valori diversi. Importante: queste variabili devono essere udlizzate SOLO nel corre@o contesto (legato a turtles, patches o links)

Esempi di variabili proprietarie who xcor, ycor heading color shape size label turtles- own [var1 var2...] breed [boxes] breed [cars] pxcor, pycor pcolor plabel plabel- color patches- own [pvar1 pvar2...]

Definizione delle variabili La sezione Procedures di un Dpico modello di NetLogo si apre con alcuni blocchi, ovvero porzioni di codice delimitate da parentesi quadre [...], che perme@ono di definire le variabili globali (solo quelle che non sono già state definite tramite gli elemend dell interfaccia grafica), le breeds (specie) di turtles e le loro variabili proprietarie:

Le Procedure In NETLOGO il codice è racchiuso in una sequenza di procedure, ovvero di blocchi contenend una lista di comandi che dicono alle turtles come muoversi e/ o alle patches come comportarsi. Una volta definita una procedura, la si può richiamare ovunque all interno del programma (o dall interfaccia grafica) semplicemente scrivendone il nome. Esistono due Dpi principali di procedure: Sono procedure richiamate da altre subroudnes nel codice o dire@amente dall interfaccia grafica a@raverso la pressione dei bu@ons. Le SubrouDnes possono acce@are valori in input ma non resdtuiscono alcun output. Tu@e le subroudnes cominciano con la parola chiave to (seguita dal nome della subroudne) e terminano con end :

Le Procedure In NETLOGO il codice è racchiuso in una sequenza di procedure, ovvero di blocchi contenend una lista di comandi che dicono alle turtles come muoversi e/ o alle patches come comportarsi. Una volta definita una procedura, la si può richiamare ovunque all interno del programma (o dall interfaccia grafica) semplicemente scrivendone il nome. Esistono due Dpi principali di procedure: Sono procedure richiamate da altri reporters o subroudnes. Esse acce@ano valori in input e resdtuiscono sempre un singolo valore in output, per mezzo del comando report. Tu` i reporters iniziano con la parola chiave to- report (seguita dal nome del reporter) e terminano con la parola chiave end :

Le Procedure Abbiamo già visto che le principali subroudnes di NETLOGO sono due: E richiamata di solito dalla interfaccia grafica per mezzo del corrispondente bu@on e perme@e di inizializzare le variabili globali, i plots e il World. Ma consente anche di definire le condizioni iniziali della simulazione: - inizializzando le patches e le loro variabili proprietarie; - creando le turtles e/o i links e inizializzando le loro variabili proprietarie. E anch essa richiamata dalla interfaccia grafica per mezzo del corrispondente bu@on e di solito condene le istruzioni necessarie per controllare l evoluzione temporale delle turtles e delle patches. Si nod che il bu@on GO è del Dpo forever : ciò significa che la subroudne go condene le istruzioni che specificano l evoluzione di un singolo passo temporale di tu` gli agend, ma che verranno ripetute finchè il bu@on GO sarà ripremuto.

Comandi per la generazione di numeri (pseudo)casuali

1- Ask Agentset.nlogo Procedure e comandi: un semplice esempio... Il comando create (observer- context) crea n turtles sulla patch origine (al centro di una topologia box ). In alternadva, il comando sprout (patch- context) crea n turtles sulla patch corrente ed esegue i comandi del blocco successivo. ask agentset è uno dei principali comandi di NetLogo ed è usato per chiedere alle turtles, patches o links di eseguire certe istruzioni (in un ordine casuale...) Il comando fd (turtle- context) sposta le turtles di un certo numero di passi in avand (specificad dal numero successivo...)

Nota sulle coordinate di Turtles e Patches... Abbiamo già de@o che il centro delle turtles ha coordinate (xcor, ycor) espresse da numeri reali, mentre le coordinate delle patches (pxcor, pycor) sono sempre espresse da numeri interi. Ciò significa che il centro di una turtle non deve necessariamente trovarsi al centro delle patches ma può muoversi in qualunque posizione al loro interno: patch centro della patch centro della turtle turtle

2- Ask Agentset.nlogo 0 Una piccola variante dell esempio precedente... 270 90 heading E una variabile proprietaria delle turtles e indica la direzione verso la quale (towards) esse devono puntare, espressa in gradi con un numero maggiore o uguale a 0 e minore di 360. 180 La subroutine go è stata modificata per forzare le turtles a rimanere, ad ogni passo, al centro della patch successiva (patchahead), facendole spostare esattamente della distanza (distance) tra il centro di quest ultima e quello della pacth precedente. Questo tipo di codice è usato molto frequentemente in sociodinamica per simulare il movimento di pedoni in ambienti confinati.