Due osservazioni sulle variabili

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Due osservazioni sulle variabili"

Transcript

1 Due osservazioni sulle variabili Dichiarazione: cosa succede se non dichiaro una variabile e la uso? provare... Le costanti: sono utilizzate nei linguaggi di programmazione rendere simbolici dei valori che non cambiano durante l esecuzione. Ad esempio π (pi pgreco) sono utili per non doverne modificare tutte le eventuali occorrenze della costante In JavaScript non sono supportate, però è consigliabile usare delle variabili che non vengono mai modificate. È utile usare una convenzione per distinguere le costanti, in genere si usano le lettere maiuscole. E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 1

2 La specifica (astratta) di un problema consiste nella descrizione di uno stato iniziale (che descrive i dati del problema) e di uno stato finale (che descrive i risultati attesi). È necessario individuare una rappresentazione degli oggetti coinvolti (e dunque dello stato) che sia direttamente manipolabile dall esecutore prescelto. Un algoritmo è una sequenza di passi elementari che, se intrapresi da un esecutore, comportano ripetute modifiche dello stato fino al raggiungimento dello stato finale desiderato. Le azioni di base che l esecutore è in grado di effettuare devono dunque prevedere, tra le altre, azioni che hanno come effetto cambiamenti dello stato. E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 2

3 Lo stato a cui ci riferiamo è lo stato della macchina (calcolatore), per i nostri scopi è molto semplice: Uno stato è un insieme di associazioni tra nomi simbolici (identificatori di variabili) e valori. In uno stato, ad ogni identificatore è associato al più un valore. Rappresentiamo una associazione tra l identificatore x ed il valore val con la notazione (x,val) Ad esempio Stati corretti {(base,12), (altezza,4), (area,48)} {(nome, Antonio ), (cognome,rossi), (eta,25)} {(a,25), (b,3), (c,undefined)} Invece uno stato non corretto {(b,45), (a,150), (b,10)} E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 3

4 Assegnamento è un comando denotato in JavaScript (ma in quasi tutti i linguaggi procedurali) dal simbolo = l effetto è di modificare il valore della variabile ad esempio base=12 il valore 12 viene associato ad area, a sinistra dell uguale deve comparire un identificatore, che deve essere il nome di una variabile a destra di = possono comparire espressioni ad esempio: area = base * altezza; il valore assegnato è quello dell espressione calcolata nello stato corrente una variabile all interno di una espressione sta per il valore ad essa associato in quel momento (nello stato corrente) E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 4

5 Esempio Scrivere un programma che fissate base ed altezza, calcola e stampa l area del rettangolo var base=12; var altezza=4; var area= base*altezza; print("area rettangolo"); print(area); Supponiamo ora di voler calcolare anche l area del triangolo con stessa base e stessa altezza. Possiamo aggiungere le seguenti istruzioni: area= base*altezza/2; print("area triangolo"); print(area); E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 5

6 Evoluzione dello stato nel programma calcolo dell area di un rettangolo e triangolo con stessa base e altezza var base=12; var altezza=4; var area= base*altezza; print("area rettangolo"); print(area); area= base*altezza/2; print("area triangolo"); print(area); E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 6

7 Un altro esempio: scambio del valore di due variabili: Evoluzione dello stato var x=8; var y=10; x=y; y=x; in questo caso? var x=8; var y=10; var temp=x; x=y; y=temp; E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 7

8 Esercizio Si calcoli lo stato durante l esecuzione del programma precedente e si verifichi la correttezza dello stato calcolato, stampando i valori di x e y. E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 8 Assegnamento: abbreviazioni var x=8; var y=0; x=x+1; x++; //equivalente a x=x+1; x--; y=y+x; y+=x; //equivalente y=y+x; y*=x; //equivalente a y=y*x; y/=x; //equivalente a y=y/x; y%=x; //equivalente a y=y%x;

9 Espressioni booleane Tutti i programmi che abbiamo visto fino ad ora prevedono istruzioni che vengono eseguite in sequenza. Ma come si fa ad esempio a leggere 2 interi e a stampare il valore massimo? Cioè come si fa ad eseguire un istruzione solo se si verifica una determinata condizione? la risposta sono le istruzioni condizionali (esistono praticamente identiche in quasi tutti i linguaggi di programmazione). Per poter definire le istruzioni condizionali è necessario poter esprimere le condizioni. Le condizioni si esprimono attraverso le espressioni booleane. N.B Nel seguito, quando parliamo di comandi (ed es. l assegnamento) intendiamo un qualunque costrutto sintattico che modifica lo stato, NON introduce un nome cioè NON è una dichiarazione, e non (dovrebbe) calcola(re) un valore. Quando parliamo di istruzioni intendiamo un comando o una dichiarazione. E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 9

10 Istruzioni condizionali Istruzione if-else Sintassi: if else (espressione) istruzione1 istruzione2 espressione è un espressione booleana istruzione1 rappresenta il ramo then (deve essere un unica istruzione) istruzione2 rappresenta il ramo else (deve essere un unica istruzione) Semantica: 1. viene prima valutata espressione 2. se espressione è vera viene eseguita istruzione1 altrimenti (ovvero se espressione è falsa) viene eseguita istruzione2 E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 10

11 Istruzioni condizionali Esempio: Un programma che data la temperatura dell ambiente stampa un messaggio Fa caldo o Si sta bene a seconda della temperatura. var temperatura=24; if (temperatura >= 25) print("fa caldo\n"); else print("si sta bene\n"); print("ci sono "+temperatura+" gradi"); E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 11

12 Istruzioni condizionali Istruzione if È un istruzione if-else in cui manca la parte else. Sintassi: if (espressione) istruzione Semantica: 1. viene prima valutata espressione 2. se espressione è vera viene eseguita istruzione altrimenti non si fa alcunché Esempio: var temperatura=30; if (temperatura >= 25) print("fa caldo\n"); print("ci sono "+temperatura+" gradi"); E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 12

13 Istruzioni condizionali Blocco La sintassi di if-else consente di avere un unica istruzione nel ramo then (o nel ramo else). Se in un ramo vogliamo eseguire più istruzioni dobbiamo usare un blocco. Sintassi: { } istruzione-1... istruzione-n Un blocco può contenere anche dichiarazioni. E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 13

14 Istruzioni condizionali Esempio: successivo. Dati mese ed anno, calcolare mese ed anno del mese var mese=2, anno=2011, mesesucc, annosucc; if (mese == 12) { mesesucc = 1; annosucc = anno + 1; } else { mesesucc = mese + 1; annosucc = anno; } E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 14

15 Istruzioni condizionali If annidati (in cascata) Si hanno quando l istruzione del ramo then o else è un istruzione if o if-else. Esempio: Data una temperatura, stampare un messaggio secondo la seguente tabella: if (temperatura > 30) print("molto caldo\n"); else if (temperatura > 20) print("caldo"); else if (temperatura > 10) print("gradevole"); else if (temperatura > 0) print("freddo"); else print("molto freddo"); temperatura t messaggio 30 < t Molto caldo 20 < t 30 Caldo 10 < t 20 Gradevole 0 < t 10 Freddo t 0 Molto freddo E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 15

La programmazione nel linguaggio JavaScript. Il programma

La programmazione nel linguaggio JavaScript. Il programma Il programma Nei linguaggi di programmazione il programma è una funzione che ha come argomento i dati digitati in input e opportunamente convertiti. la descrizione della funzione (ovvero il programma)

Dettagli

Fondamenti Teorici e Programmazione

Fondamenti Teorici e Programmazione Fondamenti Teorici e Programmazione Modulo A Elementi di Programmazione Claudio Gallicchio, Ph.D. Variabili e Assegnamento Seconda Parte 2 Variabili Una variabile è un identificatore a cui è associato

Dettagli

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

Espressioni booleane. Esempio: temperatura <= 0 velocita > velocita max Espressioni booleane Espressioni booleane il linguaggio deve consentire di descrivere espressioni booleane cioé espressioni che ritornino come risultato valori di verit : vero o falso (guardie di condizionali

Dettagli

Come va usato il codice dei caratteri

Come va usato il codice dei caratteri Espressioni booleane Come va usato il codice dei caratteri Convertiamo una lettera minuscola in maiuscolo: char lower = k ; char upper = (char) (lower - a + A ); printf("%c", upper); Convertiamo un carattere

Dettagli

Cosa si intende con stato

Cosa si intende con stato Il concetto di stato Cosa si intende con stato I una particolare configurazione delle informazioni di una macchina, che in qualche modo memorizza le condizioni in cui si trova, e che cambia nel tempo passando

Dettagli

Struttura dei programmi C Nel semplice programma che abbiamo appena analizzato possiamo già vedere la struttura generale di un programma C.

Struttura dei programmi C Nel semplice programma che abbiamo appena analizzato possiamo già vedere la struttura generale di un programma C. Struttura programmi C Struttura dei programmi C Nel semplice programma che abbiamo appena analizzato possiamo già vedere la struttura generale di un programma C. /* DIRETTIVE DI COMPILAZIONE */ #include

Dettagli

Iterazione determinata e indeterminata

Iterazione determinata e indeterminata Iterazione determinata e indeterminata Le istruzioni iterative permettono di ripetere determinate azioni più volte: un numero di volte fissato = iterazione determinata, Esempio: fai un giro del parco di

Dettagli

Il linguaggio C. Prof. E. Occhiuto INFORMATICA 242AA a.a. 2010/11 pag. 1

Il linguaggio C. Prof. E. Occhiuto INFORMATICA 242AA a.a. 2010/11 pag. 1 Il linguaggio C I linguaggi di programmazione ad alto livello sono linguaggi formali ( sintassi e semantica formalmente definite) però sono compatti e comprensibili. Le tipologie di linguaggi sono: procedurali

Dettagli

Operatori di confronto (o relazionali)

Operatori di confronto (o relazionali) Operatori di confronto (o relazionali) Gli operatori di confronto permettono di confrontare 2 valori di un dominio sul quale è definito un ordinamento. I due valori devono essere dello stesso tipo (?)

Dettagli

Scelte. Costrutto condizionale. Il costrutto if. Il costrutto if. Rappresentazione con diagramma a blocchi. Il costrutto if

Scelte. Costrutto condizionale. Il costrutto if. Il costrutto if. Rappresentazione con diagramma a blocchi. Il costrutto if Scelte Costrutto condizionale Scelte, blocchi Fino ad ora il corpo dei metodi che abbiamo scritto aveva solo un modo di essere eseguito: in sequenza dalla prima istruzione all ultima In applicazioni non

Dettagli

osservazione: 1 MCD(m,n) min(m,n) = si provano i numeri compresi tra 1 e min(m,n) conviene iniziare da min(m,n) e scendere verso 1

osservazione: 1 MCD(m,n) min(m,n) = si provano i numeri compresi tra 1 e min(m,n) conviene iniziare da min(m,n) e scendere verso 1 Esempio: Leggere due interi positivi e calcolarne il massimo comun divisore. MCD(12, 8) = 4 MCD(12, 6) = 6 MCD(12, 7) = 1 Sfruttando direttamente la definizione di MCD osservazione: 1 MCD(m,n) min(m,n)

Dettagli

Risoluzione di un problema

Risoluzione di un problema Algoritmi Risoluzione di un problema Descrizione di un problema! Individuazione di un ALGORITMO! Metodo risolutivo (progetto) Introduzione 2 Algoritmo Sequenza finita di mosse che risolve in un tempo finito

Dettagli

Introduzione alla programmazione C++ Argomenti. Macchina astratta C

Introduzione alla programmazione C++ Argomenti. Macchina astratta C Introduzione alla programmazione C++ Ingegneria Biomedica aa 2003/04 II sem 1999/2000 Argomenti Macchina astratta C Variabili, istruzioni, assegnamento Istruzioni di ingresso/uscita Programma Istruzione

Dettagli

Istruzioni di controllo: SEQUENZA

Istruzioni di controllo: SEQUENZA Istruzioni di controllo: SEQUENZA Negli esempi visti in precedenza gli algoritmi sono stati descritti come sequenze di passi elementari del tipo Passo 1. azione 1 Passo 2. azione 2... Abbiamo utilizzato

Dettagli

non serve che la seconda condizione sia composta

non serve che la seconda condizione sia composta istruzioni condizionali Osservazioni: si tratta di un unica istruzione if-else if (temperatura > 30) printf("molto caldo\n"); else... non serve che la seconda condizione sia composta if (temperatura >

Dettagli

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

Paolo Bison. Fondamenti di Informatica Ingegneria Meccanica Università di Padova A.A. 2008/09 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

Dettagli

osservazione: 1 MCD(m,n) min(m,n) = si provano i numeri compresi tra 1 e min(m,n) conviene iniziare da min(m,n) e scendere verso 1

osservazione: 1 MCD(m,n) min(m,n) = si provano i numeri compresi tra 1 e min(m,n) conviene iniziare da min(m,n) e scendere verso 1 Esempio: Leggere due interi positivi e calcolarne il massimo comun divisore. MCD(12, 8) = 4 MCD(12, 6) = 6 MCD(12, 7) = 1 Sfruttando direttamente la definizione di MCD osservazione: 1 MCD(m,n) min(m,n)

Dettagli

Completiamo le istruzioni condizionali: Istruzione switch Può essere usata per realizzare una selezione a più vie. Sintassi:

Completiamo le istruzioni condizionali: Istruzione switch Può essere usata per realizzare una selezione a più vie. Sintassi: Completiamo le istruzioni condizionali: Istruzione switch Può essere usata per realizzare una selezione a più vie. Sintassi: switch (espressione) { case espressione-1: istruzioni-1... case espressione-n:

Dettagli

Il linguaggio JavaScript

Il linguaggio JavaScript Il linguaggio JavaScript JavaScript è un linguaggio di programmazione ad alto livello compatto e comprensibile. sintassi e semantica sono formalmente definite, compatto e comprensibile. appartiene alla

Dettagli

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

print((math.floor(1345/10)%10); print (Math.floor(1345/100)%10); Le funzioni in JavaScript Funzioni Funzioni predefinite della libreria matematica Funzioni disponibili: Math.sqrt(x) radice quadrata Math.log(x) logaritmo naturale in base e di x Math.abs(x) valore assoluto di x Math.ceil(x) arrotonda

Dettagli

Esercitazione 2. Espressioni booleane Il comando if-else

Esercitazione 2. Espressioni booleane Il comando if-else Esercitazione 2 Espressioni booleane Il comando if- Espressioni booleane L espressione (i==100) è un espressione booleana. La sua valutazione può restituire solo uno dei due valori booleani true = 1 (in

Dettagli

Rappresentazione degli algoritmi

Rappresentazione degli algoritmi Rappresentazione degli algoritmi Universitá di Ferrara Ultima Modifica: 21 ottobre 2014 1 1 Diagramma di flusso Utilizzare il diagramma di flusso per rappresentare gli algoritmi che risolvono i seguenti

Dettagli

Rappresentazione degli algoritmi

Rappresentazione degli algoritmi Rappresentazione degli algoritmi Universitá di Ferrara Ultima Modifica: 21 ottobre 2014 1 1 Diagramma di flusso Utilizzare il diagramma di flusso per rappresentare gli algoritmi che risolvono i seguenti

Dettagli

Istruzioni Condizionali

Istruzioni Condizionali Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa 10 Istruzioni Condizionali Carla Limongelli Novembre 2011 http://www.dia.uniroma3.it/~java/fondinf/ Istruzioni condizionali 1 Contenuti

Dettagli

INFORMATICA 1 Corso di Laurea in Fisica a.a. 2007/08

INFORMATICA 1 Corso di Laurea in Fisica a.a. 2007/08 INFORMATICA 1 Corso di Laurea in Fisica a.a. 2007/08 prof. Paolo Mancarella 1 Dipartimento di Informatica email: paolo.mancarella@unipi.it prof. P. Mancarella Dip.to Informatica INFORMATICA 1 a.a. 07/08

Dettagli

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

Istruzioni. Istruzioni semplici Istruzioni di controllo. Fondamenti di Informatica e laboratorio Istruzioni e Controllo del flusso Istruzioni Istruzioni Le istruzioni esprimono azioni che, una volta eseguite, comportano una modifica permanente dello stato interno del programma o del mondo circostante Le strutture di controllo permettono

Dettagli

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

Unità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso Unità Didattica 2 Linguaggio C Espressioni, Operatori e Strutture linguistiche per il controllo del flusso 1 Espressioni e assegnazioni Le espressioni sono definite dalla grammatica: espressione = variabile

Dettagli

Linguaggi, Traduttori e le Basi della Programmazione

Linguaggi, Traduttori e le Basi della Programmazione Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia Fondamenti di Informatica Anno Accademico 2011/2012 docente: Prof. Ing. Michele Salvemini Sommario Il Linguaggio I Linguaggi di Linguaggi

Dettagli

Laboratorio di Algoritmi e Strutture Dati

Laboratorio di Algoritmi e Strutture Dati Laboratorio di Algoritmi e Strutture Dati 1 Note di carratere generale Docente: Camillo Fiorentini 9 ottobre 2007 L obiettivo è quello di scrivere delle semplici funzioni per risolvere problemi di tipo

Dettagli

STRUTTURE DI CONTROLLO DEL C++

STRUTTURE DI CONTROLLO DEL C++ STRUTTURE DI CONTROLLO DEL C++ Le istruzioni if e else Le istruzioni condizionali ci consentono di far eseguire in modo selettivo una singola riga di codice o una serie di righe di codice (che viene detto

Dettagli

Linguaggio C Informatica Grafica

Linguaggio C Informatica Grafica Linguaggio C Informatica Grafica Corsi di Informatica Grafica Prof. Manuel Roveri Dipartimento di Elettronica e Informazione roveri@elet.polimi.it Linguaggio C Breve storia Struttura di un programma Variabili

Dettagli

Introduzione alla programmazione

Introduzione alla programmazione Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste

Dettagli

Sviluppo di programmi

Sviluppo di programmi Sviluppo di programmi FASE 1: Dare un nome al problema partendo dall analisi del problema FASE 2: Scrivere la specifica funzionale FASE 3: Scrittura dell algoritmo FASE 3.1: Introduzione delle variabili

Dettagli

Dall algoritmo al programma

Dall algoritmo al programma Dall algoritmo al programma Il concetto di algoritmo Un algoritmo è una sequenza di passi necessari per risolvere un problema o eseguire una computazione In alcuni casi, lo stesso problema/computazione

Dettagli

Istruzioni di Controllo

Istruzioni di Controllo Istruzioni di Controllo Programmazione strutturata Ricordiamo i concetti chiave: concatenazione o composizione BLOCCO istruzione condizionale SELEZIONE ramifica il flusso di controllo in base al valore

Dettagli

Istruzioni Condizionali

Istruzioni Condizionali Istruzioni Condizionali Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it

Dettagli

Il concetto di calcolatore e di algoritmo

Il concetto di calcolatore e di algoritmo Il concetto di calcolatore e di algoritmo Elementi di Informatica e Programmazione Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Informatica

Dettagli

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

Pseudo codice. Paolo Bison. Fondamenti di Informatica 1 A.A. 2003/04 Università di Padova. Pseudo codice, Paolo Bison, A.A , p. Pseudo codice Paolo Bison Fondamenti di Informatica 1 A.A. 2003/04 Università di Padova Pseudo codice, Paolo Bison, A.A. 2003-04, 2003-09-30 p.1/38 Pseudo codice linguaggio testuale mix di linguaggio naturale

Dettagli

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

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza

Dettagli

ISTRUZIONI ISTRUZIONI SEMPLICI

ISTRUZIONI ISTRUZIONI SEMPLICI ISTRUZIONI istruzioni azioni modifica permanente dello stato interno strutture di controllo ::= ::= ::=

Dettagli

Istruzioni. Una istruzione semplice è qualsiasi espressione seguita da un punto e virgola. Esempio x = 0; y = 1;/* due istruzioni */

Istruzioni. Una istruzione semplice è qualsiasi espressione seguita da un punto e virgola. Esempio x = 0; y = 1;/* due istruzioni */ Istruzioni Le istruzioni esprimono azioni che, una volta eseguite, comportano una modifica permanente dello stato interno del programma o del mondo circostante Le strutture di controllo permettono di aggregare

Dettagli

Tipi di dato strutturati: Array

Tipi di dato strutturati: Array Tipi di dato strutturati: Array I dati visti finora sono: numeri (interi o razionali), booleani le stringhe (sequenze di caratteri) ma i dati manipolati nelle applicazioni reali sono spesso complessi (o

Dettagli

Istruzioni Condizionali

Istruzioni Condizionali Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 6 Istruzioni Condizionali Carla Limongelli Settembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Istruzioni condizionali

Dettagli

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

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 6 - Blocchi e cicli Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it

Dettagli

Introduzione agli Algoritmi

Introduzione agli Algoritmi Introduzione agli Algoritmi Informatica Sara Zuppiroli A.A. 2012-2013 Informatica () Introduzione agli Algoritmi A.A. 2012-2013 1 / 25 Risoluzione dei problemi Dalla descrizione del problema all individuazione

Dettagli

COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI

COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI Fondamenti di Informatica a.a.200.2005/06 Prof. V.L. Plantamura Dott.ssa A. Angelini Confronto di algoritmi Uno stesso problema può essere risolto in modi diversi,

Dettagli

Sviluppo di programmi

Sviluppo di programmi Sviluppo di programmi Per la costruzione di un programma conviene: 1. condurre un analisi del problema da risolvere 2. elaborare un algoritmo della soluzione rappresentato in un linguaggio adatto alla

Dettagli

Introduzione alla Programmazione Funzionale

Introduzione alla Programmazione Funzionale Introduzione alla Programmazione Funzionale April 27, 2017 Paradigmi di Programmazione Programmi sviluppabili usando diversi paradigmi Imperativo: computazione come modifica di stato Funzionale: computazione

Dettagli

Diagrammi di flusso - Flowcharts. E un formalismo che consente di rappresentare graficamente gli algoritmi

Diagrammi di flusso - Flowcharts. E un formalismo che consente di rappresentare graficamente gli algoritmi Diagrammi di flusso - Flowcharts E un formalismo che consente di rappresentare graficamente gli algoritmi Un diagramma di flusso descrive le azioni da eseguire ed il loro ordine di esecuzione Ogni azione

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Strutture di Controllo Parte 2 Istruzioni Condizionali G. Mecca M. Samela Università della Basilicata Istruzioni Condizionali >> Sommario Sommario Introduzione

Dettagli

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

Linguaggi di programmazione - Principi e paradigmi 2/ed Maurizio Gabbrielli, Simone Martini Copyright The McGraw-Hill Companies srl Approfondimento 2.1 Non è questo il testo dove trattare esaurientemente queste tecniche semantiche. Ci accontenteremo di dare un semplice esempio delle tecniche basate sui sistemi di transizione per dare

Dettagli

del Linguaggio C Istruzioni di iterazione

del Linguaggio C Istruzioni di iterazione Istruzioni i Iterative ti del Linguaggio C Istruzioni di iterazione Le istruzioni di iterazione forniscono strutture di controllo che esprimono la necessità di ripetere una certa istruzione durante il

Dettagli

Laboratorio di Programmazione

Laboratorio di Programmazione Laboratorio di Programmazione (Laurea triennale in matematica) Lezione 3 Analisi dettagliata di un programma /* commento */ Possono estendersi su più linee apparire in qualsiasi parte del programma. Alternativamente

Dettagli

IL COSTRUTTO SELEZIONE

IL COSTRUTTO SELEZIONE IL COSTRUTTO SELEZIONE Il costrutto selezione Permette di effettuare una scelta tra due possibili opzioni. Tale scelta verrà effettuata valutando il valore di verità di una condizione espressa da una proposizione

Dettagli

Diagrammi di flusso: forme

Diagrammi di flusso: forme Il linguaggio C in breve Diagrammi di flusso: forme Inizio/ Fine Istruzione Input/ Output Cond C. Bodei Dip.to Informatica FONDAMENTI DI PROGRAMMAZIONE a.a. 18/19 pag. 57 Il linguaggio C in breve if cond

Dettagli

Logica per la Programmazione

Logica per la Programmazione Logica per la Programmazione Lezione 12 Linguaggio di Programmazione Imperativo: Sintassi e Semantica Concetto di Tripla di Hoare Soddisfatta pag. 1 Introduzione Dall inizio del corso ad ora abbiamo introdotto,

Dettagli

Semantica operazionale dei linguaggi di Programmazione1

Semantica operazionale dei linguaggi di Programmazione1 Semantica operazionale dei linguaggi di Programmazione1 Semantica operazionale del nucleo di Java Rosario Culmone, Luca Tesei 21/1/2007 UNICAM - p. 1/82 Costrutti che alterano lo stato La valutazione di

Dettagli

ASTRAZIONE ASTRAZIONE

ASTRAZIONE ASTRAZIONE ASTRAZIONE Esistono linguaggi a vari livelli di astrazione Linguaggio Macchina: implica la conoscenza dei metodi utilizzati per la rappresentazione delle informazioni Linguaggio Macchina e Assembler: implica

Dettagli

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

STRUTTURE DI CONTROLLO IN C. Docente: Giorgio Giacinto AA 2009/2010 Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria per l Ambiente ed il Territorio Corso di Laurea Specialistica in Ingegneria Civile - Strutture FONDAMENTI DI INFORMATICA 2

Dettagli

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

Linguaggio Testuale. E un formalismo che consente di rappresentare gli algoritmi mediante semplici istruzioni in linguaggio «parlato» Linguaggio Testuale E un formalismo che consente di rappresentare gli algoritmi mediante semplici istruzioni in linguaggio «parlato» Delle volte viene chiamato metalinguaggio, e l algoritmo scritto tramite

Dettagli

Istruzioni Condizionali

Istruzioni Condizionali Istruzioni Condizionali Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it

Dettagli

Le funzioni in JavaScript. Modularizzazione

Le funzioni in JavaScript. Modularizzazione Modularizzazione Quando abbiamo a che fare con un problema complesso spesso lo suddividiamo in problemi più semplici che risolviamo separatamente, per poi combinare insieme le soluzioni dei sottoproblemi

Dettagli

Studio degli algoritmi

Studio degli algoritmi COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI Fondamenti di Informatica a.a.2006/07 Prof. V.L. Plantamura Dott.ssa A. Angelini Studio degli algoritmi Dato un problema P, le problematiche riguardano: Sintesi

Dettagli

Linguaggio C Strutture di controllo

Linguaggio C Strutture di controllo FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C Strutture di controllo 2001 Pier Luca Montessoro - Davide

Dettagli

Switch. Unità 3. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

Switch. Unità 3. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione prof. Domenico

Dettagli

Iterazione indeterminata

Iterazione indeterminata Iterazione indeterminata In alcuni casi il numero di iterazioni da effettuare non è noto prima di iniziare il ciclo, perché dipende dal verificarsi di una condizione. Esempio: Leggere una sequenza di interi

Dettagli

ISTRUZIONI. Le strutture di controllo permettono di aggregare istruzioni semplici in istruzioni più complesse.

ISTRUZIONI. Le strutture di controllo permettono di aggregare istruzioni semplici in istruzioni più complesse. ISTRUZIONI Le istruzioni esprimono azioni che, una volta eseguite, comportano una modifica permanente dello stato interno del programma o del mondo circostante. Le strutture di controllo permettono di

Dettagli

Esercizio. Esercizi. semplici. memoria. y 12. Determinare il valore di x e y. #include <stdio.h> main() { int x,y; x=2; y=4; y=3*y; x=y+x;

Esercizio. Esercizi. semplici. memoria. y 12. Determinare il valore di x e y. #include <stdio.h> main() { int x,y; x=2; y=4; y=3*y; x=y+x; Esercizi semplici 31 Esercizio Determinare il valore di x e y #include int x,y; x=2; y=4; y=3*y; x=y+x; printf("%d\n", x); printf("%d\n", y); memoria x 14 y 12 32 1 Esercizio Determinare i valori

Dettagli

o Introduzione agli algoritmi o Rappresentazione delle Informazioni o Architettura del calcolatore o Reti di Calcolatori

o Introduzione agli algoritmi o Rappresentazione delle Informazioni o Architettura del calcolatore o Reti di Calcolatori Programma del corso o Introduzione agli algoritmi o Rappresentazione delle Informazioni o Architettura del calcolatore o Reti di Calcolatori o Elementi di Programmazione Algoritmi e programmi o Algoritmo

Dettagli

Laboratorio di informatica Ingegneria Clinica. Esercitazione 2 10 Ottobre 2011

Laboratorio di informatica Ingegneria Clinica. Esercitazione 2 10 Ottobre 2011 Laboratorio di informatica Ingegneria Clinica Esercitazione 2 10 Ottobre 2011 Istruzioni Istruzioni di Input/Output Istruzioni di assegnamento Istruzioni di controllo Permettono di modificare il flusso

Dettagli

Problemi, algoritmi, calcolatore

Problemi, algoritmi, calcolatore Problemi, algoritmi, calcolatore Informatica e Programmazione Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin Problemi, algoritmi, calcolatori Introduzione

Dettagli

Concetti di base dell informatica Cosa è?

Concetti di base dell informatica Cosa è? Cosa è? Informatica Informatica significa Informazione automatica. Per fornire informazione è necessario: comprendere la richiesta. Es. Tra quanto passa l espresso per Torino? avere i dati necessari a

Dettagli

Javascript: il browser

Javascript: il browser Javascript: il browser Un browser è un programma Un browser interpreta il linguaggio HTML e visualizza le pagine sullo schermo Per la visualizzazione delle pagine un browser si appoggia al software di

Dettagli

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

Università di Salerno Corso di FONDAMENTI DI INFORMATICA Corso di Laurea Ingegneria. Docente : Ing. Secondulfo Giovanni Anno Accademico Università di Salerno Corso di FONDAMENTI DI INFORMATICA Corso di Laurea Ingegneria Docente : Ing. Secondulfo Giovanni Anno Accademico 2010-2011 Lezione 3: La Formalizzazione degli Algoritmi Dati e Variabili

Dettagli

LINGUAGGI DI PROGRAMMAZIONE

LINGUAGGI DI PROGRAMMAZIONE LINGUAGGI DI PROGRAMMAZIONE Il potere espressivo di un linguaggio è caratterizzato da: quali tipi di dati consente di rappresentare (direttamente o tramite definizione dell utente) quali istruzioni di

Dettagli

Istruzioni iterative (o cicliche)

Istruzioni iterative (o cicliche) Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Istruzioni iterative (o cicliche) Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale di Ingegneria

Dettagli

Istruzioni Condizionali

Istruzioni Condizionali Istruzioni Condizionali Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione

Dettagli

<istruzione> ::= <istruzione-semplice> <istruzione> ::= <istruzione-di-controllo> <istruzione-semplice> ::= <espressione> ;

<istruzione> ::= <istruzione-semplice> <istruzione> ::= <istruzione-di-controllo> <istruzione-semplice> ::= <espressione> ; ISTRUZIONI Le istruzioni esprimono azioni che, una volta eseguite, comportano una modifica permanente dello stato interno del programma o del mondo circostante. Le strutture di controllo permettono di

Dettagli

Linguaggi di programmazione

Linguaggi di programmazione Linguaggi di programmazione Il potere espressivo di un linguaggio è caratterizzato da: quali tipi di dati consente di rappresentare (direttamente o tramite definizione dell utente) quali istruzioni di

Dettagli

<istruzione> ::= <istruzione-semplice> <istruzione> ::= <istruzione-di-controllo> <istruzione-semplice> ::= <espressione> ;

<istruzione> ::= <istruzione-semplice> <istruzione> ::= <istruzione-di-controllo> <istruzione-semplice> ::= <espressione> ; ISTRUZIONI Le istruzioni esprimono azioni che, una volta eseguite, comportano una modifica permanente dello stato interno del programma o del mondo circostante. Le strutture di controllo permettono di

Dettagli

Capitolo IV. La struttura dei Programmi

Capitolo IV. La struttura dei Programmi Capitolo IV La struttura dei Programmi Frasi del linguaggio Tutti i linguaggi di alto livello prevedono quattro tipologie di frasi diverse: le dichiarazioni con le quali il programmatore da ordini al traduttore

Dettagli

Fondamenti di Informatica A. A. 2018/19

Fondamenti di Informatica A. A. 2018/19 Fondamenti di Informatica Prof. Marco Lombardi A. A. 2018/19 AlgoBuild: Strutture Iterative e Selettive OUTLINE Blocco condizionale (Struttura selettiva IF - IF/ELSE) Esempi Cicli a condizione iniziale

Dettagli

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

Paolo Bison. Fondamenti di Informatica A.A. 2006/07 Università di Padova Pseudo codice Paolo Bison Fondamenti di Informatica A.A. 2006/07 Università di Padova Pseudo codice, Paolo Bison, FI06, 2007-01-10 p.1 Pseudo codice linguaggio testuale mix di linguaggio naturale ed elementi

Dettagli

Algoritmi e basi del C

Algoritmi e basi del C Algoritmi e basi del C Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 24 Agosto 2015 Benvenuti nel fantastico mondo del C 2 Il primo programma: ciao mondo 3 Ciao Mondo: stdio.h Come

Dettagli

Logica per la Programmazione

Logica per la Programmazione Logica per la Programmazione Lezione 11 Linguaggio di Programmazione Imperativo: Sintassi e Semantica Concetto di Tripla di Hoare Soddisfatta pag. 1 Introduzione Dall inizio del corso ad ora abbiamo introdotto,

Dettagli

Algoritmi e basi del C Struttura di un programma

Algoritmi e basi del C Struttura di un programma Algoritmi e basi del C Struttura di un programma Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 11 Marzo 2014 Informazione: dato + significato Che giorno è oggi? 14 Marzo o anche

Dettagli

Un esempio di if annidati

Un esempio di if annidati Programmazione A.A. 2002-03 I Costrutti di base ( Lezione XIV, parte I ) Costrutto di selezione switch Prof. Giovanni Gallo Dr. Gianluca Cincotti Dipartimento di Matematica e Informatica Università di

Dettagli

Nuovi tipi di dato e. Alessandra Giordani Lunedì 26 marzo

Nuovi tipi di dato e. Alessandra Giordani Lunedì 26 marzo Nuovi tipi di dato e costrutto condizionale Alessandra Giordani agiordani@disi.unitn.it Lunedì 26 marzo 2012 http://disi.unitn.it/~agiordani/ Tipi di dato fondamentali int e il tipo di dato che consente

Dettagli

Istruzioni Condizionali

Istruzioni Condizionali Istruzioni Condizionali Corso di Ingegneria Clinica BCLR Domenico Daniele Bloisi Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento di Ingegneria Informatica, Automatica e Gestionale Antonio

Dettagli

Come scrivere bene codice? (1 di 1)

Come scrivere bene codice? (1 di 1) DIAGRMMI DI FLUSSO Come scrivere bene codice? (1 di 1) Prima di iniziare a scrivere un programma: Acquisire profonda comprensione del problema; Progettare un approccio per la risoluzione del problema.

Dettagli

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

Lezione 5 e 6. Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza. Valentina Ciriani ( ) Laboratorio di programmazione Lezione 5 e 6 - Concetto di blocco - Controllo del flusso di un programma - Costrutti per la scelta if e switch - Costrutti while e for - Operatori in C Fabio Scotti (2004-2009) Laboratorio di programmazione

Dettagli

Istruzioni condizionali di diramazione in Fortran 90

Istruzioni condizionali di diramazione in Fortran 90 Istruzioni condizionali di diramazione in Fortran 90 Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2006/2007 Fortran 90: Istruzioni di diramazione DIS - Dipartimento

Dettagli

Linguaggio C. strutture di controllo: strutture iterative. Università degli Studi di Brescia. Docente: Massimiliano Giacomin

Linguaggio C. strutture di controllo: strutture iterative. Università degli Studi di Brescia. Docente: Massimiliano Giacomin Linguaggio C strutture di controllo: strutture iterative Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Strutture iterative

Dettagli

Le fasi della programmazione

Le fasi della programmazione Ad un primo livello di astrazione l attività della programmazione può essere suddivisa in quattro (macro) fasi principali. 1. Definizione del problema (specifica): quale funzione si vuole calcolare e quali

Dettagli

Costrutti di Programmazione Strutturata. Informatica 1 / 22

Costrutti di Programmazione Strutturata. Informatica 1 / 22 Costrutti di Programmazione Strutturata Informatica 1 / 22 Costrutti di Base Ricordi? Un algoritmo è detto strutturato se usa solo Sequenze di istruzioni Selezioni (se predicato allora fai istruzioni altrimenti

Dettagli