Paolo Bison. Fondamenti di Informatica Ingegneria Meccanica Università di Padova A.A. 2008/09

Documenti analoghi
Paolo Bison. Fondamenti di Informatica A.A. 2006/07 Università di Padova

Pseudo codice. Pseudo codice, Paolo Bison, FI07, p.1 / Pseudo codice, Paolo Bison, FI07, p.3

Pseudo codice. Paolo Bison. Fondamenti di Informatica 1 A.A. 2003/04 Università di Padova. Pseudo codice, Paolo Bison, A.A , p.

+ / operatori di confronto (espressioni logiche/predicati) / = > < Pseudo codice. Pseudo codice

Analisi strutturata 1

Programmazione A.A Fondamenti di programmazione. ( Lezione IX ) Notazione Lineare Strutturata. Prof. Giovanni Gallo Dr.

Istruzioni di Ciclo. Unità 4. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

PROGRAMMAZIONE STRUTTURATA

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

Espressioni e Comandi

print((math.floor(1345/10)%10); print (Math.floor(1345/100)%10); Le funzioni in JavaScript

Caratteristiche di un calcolatore elettronico

Linguaggio C Strutture di controllo

Algoritmi. Andrea Passerini Informatica. Algoritmi

Algoritmi. Andrea Passerini Conoscenze informatiche e relazionali Corso di laurea in Scienze dell Ingegneria Edile

Assegnazione di una variabile

Lezione 5 e 6. Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza. Valentina Ciriani ( ) Laboratorio di programmazione

Istruzioni Condizionali

Le Strutture di controllo Del Linguaggio C. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Valori Alfanumerici. Informatica di Base -- R.Gaeta 1

del Linguaggio C Istruzioni di iterazione

Dal Problema all Algoritmo. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Laboratorio di Programmazione

PROBLEMI E ALGORITMI VESPIA CATERINA LICEO CLASSICO AGLI ANGELI

Corso di Informatica

Istruzioni Condizionali

Linguaggio Testuale. E un formalismo che consente di rappresentare gli algoritmi mediante semplici istruzioni in linguaggio «parlato»

Istruzioni iterative (o cicliche)

= < < < < < Matematica 1

Iterazione determinata e indeterminata

Prof. Pagani Corrado LINGUAGGIO C: SELEZIONE E CICLI

Unità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso

Introduzione alla programmazione

Cominciamo ad analizzare la rappresentazione delle informazioni... di Cassino. C. De Stefano Corso di Fondamenti di Informatica Università degli Studi

Cast implicito. Il cast è fatto automaticamente quando un tipo più basso viene assegnato ad un tipo più alto. byte short int long float double

Capitolo IV. La struttura dei Programmi

Costrutti condizionali e iterativi

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Istruzioni di Controllo

Strutture di Controllo

Il primo programma C++

Costrutti condizionali e iterativi

Costrutti di Programmazione Strutturata. Informatica 1 / 22

unità didattica 3 Le strutture condizionali e le strutture iterative

Università degli Studi di Ferrara

Algoritmi e soluzione di problemi

Descrizione delle operazioni di calcolo. Espressioni costanti semplici

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

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Programmazione Strutturata

Descrizione di un algoritmo

Lezione 7: La Formalizzazione degli Algoritmi - Strutture di Controllo e Selettive La Programmazione Strutturata (3 p) Giovedì 21 Ottobre 2010

Linguaggi, Traduttori e le Basi della Programmazione

Due osservazioni sulle variabili

Università di Salerno Corso di FONDAMENTI DI INFORMATICA Corso di Laurea Ingegneria. Docente : Ing. Secondulfo Giovanni Anno Accademico

Programmazione C Massimo Callisto De Donato

Altrimenti, il M.C.D. di a e b è anche divisore di r (e.g. a=15,b=6,r=3 che è il M.C.D.)

Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto

Programmazione strutturata

Introduzione alla programmazione strutturata

Dott. R. Gori, Dott. A. Rama INFORMATICA 242AA a.a. 2011/12 pag. 1. Le istruzioni iterative permettono di ripetere determinate azioni più volte:

Diagrammi di flusso: forme

Diagrammi a blocchi 1

Fondamenti di Informatica

JavaScript Core Language. Prof. Francesco Accarino IIS Atiero Spinelli Sesto San Giovanni via leopardi 132

Fondamenti di Informatica

Introduzione alla logica matematica. Logica matematica. Paolo Bison

Dal problema a un programma comprensibile dal calcolatore. Il Progetto degli Algoritmi. Dall analisi del problema all esecuzione

Istruzioni di Ciclo. Unità 4. Domenico Daniele Bloisi

Istruzioni. Istruzioni semplici Istruzioni di controllo. Fondamenti di Informatica e laboratorio Istruzioni e Controllo del flusso

Informatica AA 2005/06. Programmazione M.A. Alberti. Operatori in Java 1. Operatori in Java. Espressioni aritmetiche. Espressioni booleane

INFORMATICA. Strutture iterative

CAPITOLO 3 - ALGORITMI E CODIFICA

Istruzioni condizionali di diramazione in Fortran 90

Linguaggi algoritmici A. Ferrari

Università degli Studi di Ferrara

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio

STRUTTURE DI CONTROLLO IN C. Docente: Giorgio Giacinto AA 2009/2010

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Lezione 5. La macchina universale

Programmazione II. Lezione 11. Daniele Sgandurra 23/11/2010.

Sviluppo di programmi

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Fondamenti di Informatica.

Cosa si intende con stato

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Prima introduzione al linguaggio C

Programmazione Procedurale in Linguaggio C++

Espressioni booleane. Esempio: temperatura <= 0 velocita > velocita max

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

Introduzione agli Algoritmi

liceo B. Russell PROGRAMMAZIONE INDIRIZZO: SCIENTIFICO SCIENZE APPLICATE BIENNIO: SECONDA DISCIPLINA: INFORMATICA

MODULO 1. CONCETTI DI BASE DELL ICT

Introduzione agli Algoritmi 4. Problemi. Dal Problema alla Soluzione

Caratteristiche generali del linguaggio Visual Basic

Linguaggi di programmazione - Principi e paradigmi 2/ed Maurizio Gabbrielli, Simone Martini Copyright The McGraw-Hill Companies srl

Corso di Fondamenti di Informatica Università degli Studi di Cassino

Transcript:

Linguaggi procedurali Paolo Bison Fondamenti di Informatica Ingegneria Meccanica Università di Padova A.A. 2008/09 Linguaggi procedurali, Paolo Bison, FI08, 2008-09-29 p.1 Linguaggi procedurali classe di linguaggi di programmazione basati sull istruzione di assegnazione: C, Pascal, Fortran elementi dati variabili azioni espressioni istruzioni di controllo istr. di assegnazione Linguaggi procedurali, Paolo Bison, FI08, 2008-09-29 p.2

Espressioni elementi del linguaggio la cui valutazione fornisce un determinato valore costituite da operandi, operatori e funzioni espressioni matematiche consideriamo operandi a valore intero operatori aritmetici (espressioni numeriche) + / operatori di confronto (espressioni logiche/predicati) = > < Linguaggi procedurali, Paolo Bison, FI08, 2008-09-29 p.3 Come si scrivono le espressioni? sintassi descrizione di come si scrivono espressioni corrette combinando simboli base (cifre, operatori, parentesi) notazioni infissa op1 oper op2 5 + 3 / 9 postfissa op1 op2 oper 5 3 + 9 / prefissa oper op1 op2 / + 5 3 9 Linguaggi procedurali, Paolo Bison, FI08, 2008-09-29 p.4

Come si valutano le espressioni? - I TEST: Qual è il valore di 1. 6 2. 6.5 3. 4 4. dipende 5 + 3 / 2 Linguaggi procedurali, Paolo Bison, FI08, 2008-09-29 p.5 Come si valutano le espressioni? - II semantica regole per valutare una espressione significato degli operatori ordine di valutazione Linguaggi procedurali, Paolo Bison, FI08, 2008-09-29 p.6

Significato degli operatori operazione matematica associata ai simboli di operatore + addizione sottrazione moltiplicazione / divisione - intera - decimale Linguaggi procedurali, Paolo Bison, FI08, 2008-09-29 p.7 Ordine di valutazione la sequenza in cui vengono applicati gli operatori agli operandi ordine di scrittura da sx a dx 5 + 3 / 2 = 4 da dx a sx 5 + 3 / 2 = 6 priorità predefinite,/ valutati prima di +, ordine esplicito parentesi ( ) Linguaggi procedurali, Paolo Bison, FI08, 2008-09-29 p.8

Espressioni logiche espressioni che ritornano un valore di verità (vero,falso) predicati operatori di confronto = > < esempi lato quadrato 0 primo numero secondo numero Linguaggi procedurali, Paolo Bison, FI08, 2008-09-29 p.9 Istruzioni elementi del linguaggio che definiscono le azioni da svolgere modifica dati istruzione di assegnazione flusso di esecuzione istruzioni di controllo struttura sequenziale struttura condizionale struttura iterativa Linguaggi procedurali, Paolo Bison, FI08, 2008-09-29 p.10

Struttura sequenziale sequenza di istruzioni da eseguirsi una di seguito all altra sintassi sequenza di scrittura semantica istuzioni eseguite uno alla volta ciascuna istruzione è eseguita una sola volta e nessuna è omessa o ripetuta l ordine di esecuzione è quello di scrittura algoritmo termina con il termine dell ultima istruzione struttura rigida esecuzione non può essere modificata Linguaggi procedurali, Paolo Bison, FI08, 2008-09-29 p.11 Es. struttura sequenziale somma delle radici quadrate di tre numeri J,K,L calcola J calcola K calcola L somma le tre radici quadrate Linguaggi procedurali, Paolo Bison, FI08, 2008-09-29 p.12

Struttura di selezione permette di eseguire istruzioni differenti al verificarsi o meno di una condizione (espressione logica) sintassi if predicato istr_1 else istr_2 semantica se il predicato è vero si esegue istr_1, altrimenti istr_2 variante ad una sola via if predicato istr_1 Linguaggi procedurali, Paolo Bison, FI08, 2008-09-29 p.13 Es. struttura di selezione dati due numeri,sommare al primo il valore assoluto del secondo if il secondo numero < 0 sottrai il secondo dal primo else somma il primo con il secondo Linguaggi procedurali, Paolo Bison, FI08, 2008-09-29 p.14

Istruzioni di clausola quali istruzioni sono sotto il controllo di una clausola if o else? elementi sintattici { } begin end identazione rientranza a dx nella scrittura delle istruzioni if A > B somma A con B moltiplica C con D if A > B somma A con B moltiplica C con D Linguaggi procedurali, Paolo Bison, FI08, 2008-09-29 p.15 Gerarchie di selezione sequenze in cascata di costrutti di selezione: if annidati (nested) scelta del massimo tra tre numeri X,Y e Z if X > Y if X > Z X è max else Z è max else if Y > Z Y è max else Z è max numero di vie selezionabili arbitrario ma finito Linguaggi procedurali, Paolo Bison, FI08, 2008-09-29 p.16

Es. ricerca ricerca di un indirizzo in un archivio dato il nome leggi nome della prima scheda if è il nome cercato estrai indirizzo else leggi nome della seconda scheda if è il nome cercato estrai indirizzo else if... non è possibile esprimere algoritmi la cui lunghezza dipenda da fattori esterni Linguaggi procedurali, Paolo Bison, FI08, 2008-09-29 p.17 Strutture iterativa ripetizione di un dato numero di istruzioni per un numero arbitrario, ma finito di volte ciclo (loop) permette di descrivere una elaborazione di durata indeterminata con un numero finito di istruzioni Linguaggi procedurali, Paolo Bison, FI08, 2008-09-29 p.18

Tipi di iterazione definita durata determinata e conosciuta prima dell esecuzione termine garantito indefinita durata indeterminata termine dipende dal verificarsi o meno della condizione di terminazione Linguaggi procedurali, Paolo Bison, FI08, 2008-09-29 p.19 Ciclo while sintassi while predicato istr semantica - si valuta il predicato - se vero - si esegue istr - e si torna a valutare il predicato altrimenti termina l esecuzione iterazione indefinita Linguaggi procedurali, Paolo Bison, FI08, 2008-09-29 p.20

Es. while ricerca in un archivio di schede leggi nome da prima scheda while nome non è quello cercato e vi sono ancora schede leggi nome da scheda successiva if hai trovato il nome leggi indirizzo da scheda ciclo errato se archivio vuoto Linguaggi procedurali, Paolo Bison, FI08, 2008-09-29 p.21 Ciclo repeat sintassi repeat espressione istr semantica - si valuta l espressione che deve ritornare un valore intero positivo - si esegue istr per un numero di volte pari a tale valore iterazione definita Linguaggi procedurali, Paolo Bison, FI08, 2008-09-29 p.22

Es. repeat stampa di 100 asterischi * repeat 100 stampa * Linguaggi procedurali, Paolo Bison, FI08, 2008-09-29 p.23 Variabile elemento che può assumere un qualunque valore ma che in ogni momento dell esecuzione è associato ad uno ed uno solo valore nome (identificatore) sequenza di caratteri alfanumerici ris x0 st etichetta di un contenitore ris -150 x0 3.67 st hello operandi in espressioni condivisione di dati tra istruzioni Linguaggi procedurali, Paolo Bison, FI08, 2008-09-29 p.24

Operazioni su variabile accesso al valore attuale x0+ris-7 ris 34 x0-10 valore dell espressione: 17 modifica del valore associato istruzione di assegnazione Linguaggi procedurali, Paolo Bison, FI08, 2008-09-29 p.25 Istruzione di assegnazione sintassi id espressione a a altri simboli := = semantica al termine dell esecuzione alla variabile id è associato il valore ottenuto valutando l espressione esempio ris 34 prima: ris -150 dopo: ris 34 Linguaggi procedurali, Paolo Bison, FI08, 2008-09-29 p.26

Significato identificatori nell assegnazione cnt cnt + 1 lato destro accesso al valore corrente cnt 17 lato sinistro riferimento al contenitore risultato cnt 17 cnt 18 Linguaggi procedurali, Paolo Bison, FI08, 2008-09-29 p.27 Ordine di esecuzione n m m r m r n m dati m 17 n 23 r 31 n m m r m r n m m 31 n 17 r 31 m 31 n 31 r 31 Linguaggi procedurali, Paolo Bison, FI08, 2008-09-29 p.28

Scambio tra due variabili scambio di valori tra m e n ERRATO scambio diretto m n n m CORRETTO uso di una terza variabile per salvare il valore di una delle due da scambiare t m m n n t Linguaggi procedurali, Paolo Bison, FI08, 2008-09-29 p.29 Programmazione strutturata teorema di Jacopini-Böhm ogni algoritmo può essere espresso utilizzando solo tre strutture di controllo struttura sequenziale struttura di selezione un ciclo indefinito (while) Linguaggi procedurali, Paolo Bison, FI08, 2008-09-29 p.30

Programma equivalente per repeat uso di una variabile come contatore repeat n istr _i 1 while _i n istr _i _i + 1 Linguaggi procedurali, Paolo Bison, FI08, 2008-09-29 p.31