Laboratorio di Informatica1 Parte 4 Laboratorio di Informatica Dott.ssa Elisa Tiezzi Dott.ssa Elisa Mori.

Slides:



Advertisements
Presentazioni simili
Fondamenti di Informatica
Advertisements

Introduzione al linguaggio C++
LINGUAGGIO DI PROGRAMMAZIONE C
INFORMATICA Strutture condizionali
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità F2 Selezione.
Iterazione while – do while - for.
Iterazione A. Ferrari.
Selezione A. Ferrari.
Selezione - approfondimento
PROGRAMMARE IN PASCAL (le basi)
3TC – 5/11/2010 Cicli while e do.. While Contatori e Totalizzatori.
Sviluppo di programmi strutturati
PHP.
Istruzioni condizionali e blocco
MATLAB.
MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
Algoritmi e Programmazione
Anno accademico Gli operatori e le espressioni in C.
Il linguaggio C Gli operatori e le espressioni C Language
INFORMATICA Strutture iterative
Tipi di dato e controllo del flusso Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dellInformazione Università di Siena Via Roma 56 – – SIENA.
Linguaggio MATLAB: costrutti tipici (IF,WHILE…)
Informatica 2. Concetti fondamentali di programmazione Programmare vuol dire scrivere un algoritmo in un linguaggio che faccia funzionare un calcolatore.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Introduzione a JAVA Anno Accademico 2009/2010.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Assegnamento di valore a una variabile Anno Accademico 2009/2010.
1 Corso di Informatica (Programmazione) Lezione 11 (19 novembre 2008) Programmazione in Java: controllo del flusso (iterazione)
1 Corso di Informatica (Programmazione) Lezione 10 (12 novembre 2008) Programmazione in Java: espressioni booleane e controllo del flusso (selezione)
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Le stringhe di caratteri in Java Anno Accademico 2009/2010.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
IFTS2002 Acq. Dati Remoti: INFORMATICA
Lezione 4: Costrutti Condizionali Prof. Raffaele Montella.
Fondamenti di Informatica I a.a Il linguaggio C Il controllo di flusso La selezione condizionale Listruzione switch I cicli Le istruzioni break,
Programmazione Corso di laurea in Informatica
Istruzioni di ripetizione in Java
Istruzioni di selezione in Java Programmazione Corso di laurea in Informatica.
Istruzioni Iterative Nicola Fanizzi
Microsoft Word Nozioni Avanzate Corso di Introduzione allInformatica Esercitatore: Agostino Forestiero.
Strutture di controllo nel C
Fondamenti di Informatica1 Ripetizioni di segmenti di codice Spesso è necessario ripetere più volte uno stesso segmento dell'algoritmo (e.g. I/O, elaborazioni.
Fondamenti di Informatica1 Linguaggi Classificati rispetto alle caratteristiche principali: –potere espressivo che influenza lo stile di programmazione.
Fondamenti di Informatica1 Realizzazione software Due fasi: 1. Specifica dell'algoritmo 1.a Definizione dei dati 1.b Definizione della modalità della loro.
Fondamenti di Informatica
Java base I: Sintassi e tipi di dati
Programmazione in Java Claudia Raibulet
Javascript 5 Selezione. Listruzione IF (in italiano SE) pone una scelta, ossia 'se vero' esegui in un modo oppure 'se falso' esegui in un altro modo.
CODIFICA Da flow-chart a C++.
Lezione 6 Strutture di controllo Il condizionale
Cicli in Fortran I cicli consentono di eseguire una sequenza di istruzioni più di una volta due tipi: Cicli iterativi Cicli while.
Parte 4 Elementi di Informatica di base
Parte 5 Laboratorio di Informatica Dott.ssa Elisa Tiezzi
Master in BIOINFORMATICA Corso propedeutico di Informatica
BIOINFO3 - Lezione 211 INPUT La lettura di un input dallo standard input (tastiera) si effettua utilizzando lespressione. Quando il programma incontra.
Fopndamenti di programmazione. 2 La classe String Una stringa è una sequenza di caratteri La classe String è utilizzata per memorizzare caratteri La classe.
11/10/2004Introduzione all'Informatica1 Che cose lInformatica Computer ScienceLInformatica (Computer Science) non è soltanto La scienza e la tecnologia.
Appunti di Java (J2SDK 1.4.2, JDK 1.6.0) prof. Antonella Schiavon settembre 2009.
Anno accademico Le istruzioni di controllo in C.
Ripetizione La vera potenza dei programmi per computer risiede nella capacità di ripetere lo stesso calcolo o sequenza di istruzioni più volte, ogni volta.
JavaScript Generalità Cos'è JavaScript?
Corso di Introduzione all’Informatica
Corso JAVA Lezione n° 03 Istituto Statale di Istruzione Superiore “F. Enriques”
Introduzione a Javascript
Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies.
Strutture di controllo Esercizi!. Utilizzare i metodi: I modi per poter richiamare un metodo, di una classe (ad esempio SavitchIn) sono due. 1) E’ sempre.
Informatica B Allievi Elettrici - AA Fondamenti della programmazione in linguaggio C (II) Istruzioni e strutture di controllo.
1 Fabio Scotti – Università degli Studi di Milano Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza Valentina Ciriani ( )
13 ottobre Decisioni F. Bombi 13 ottobre 2002.
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
Strutture di controllo
Basi di Java Strutture base di Java. Basi di java ▪Variabili ▪Operatori ▪Condizioni e Cicli ▪Array.
Transcript della presentazione:

Laboratorio di Informatica1 Parte 4 Laboratorio di Informatica Dott.ssa Elisa Tiezzi Dott.ssa Elisa Mori

Laboratorio di Informatica2 Controllo del flusso Flusso di esecuzione: ordine in cui le istruzioni di un programma sono eseguite Salvo contrordini, è in sequenza Due possibili alterazioni: –selezione: sceglie unazione da una lista di due o più azioni possibili –ripetizione: continua ad eseguire unazione fino a quando non si verifica una condizione di termine

Laboratorio di Informatica3 Strutture Java Sequenza –di default l Selezione »if »if-else »switch l Ripetizione »while »do-while »for

Laboratorio di Informatica4 Valori Booleani boolean: tipo di dato primitivo in Java che può assumere valore true oppure false Variabili (o espressioni) il cui valore è di tipo boolean sono chiamate variabili (o espressioni) Booleane –Il valore di una variabile (o espressione) Booleana è true oppure false

Laboratorio di Informatica5 Espressioni Booleane Esprimono una condizione che risulta essere vera o falsa Esempio (A e B sono due dati non necessariamente dello stesso tipo): –A è maggiore di B? –A è uguale a B? –A è minore di oppure uguale a B?

Laboratorio di Informatica6 Operatori di confronto

Laboratorio di Informatica7 Confronto tra caratteri e stringhe Si può confrontare caratteri: sono infatti basati su Unicode che definisce un ordinamento per tutti i possibili caratteri che possono essere usati. Dato che in Unicode, per esempio, il carattere a viene prima di b, si può dire che a è minore di b. Non si possono usare operatori di confronto e di uguaglianza tra stringhe.

Laboratorio di Informatica8 Confronto tra valori in virgola mobile Raramente si usa loperatore di uguaglianza tra due valori in virgola mobile. Per testare luguaglianza di due valori in virgola mobile si può calcolare il valore assoluto della loro differenza e confrontare il valore così ottenuto con un valore di tolleranza, ad esempio 0,00001.

Laboratorio di Informatica9 Operatori logici AND: && –congiunge due espressioni –valore di ritorno true se e solo se entrambi le espressioni sono vere OR: || –disgiunge due espressioni –valore di ritorno false se e solo se entrambi le espressioni sono false Valutazione della seconda espressione condizionata –per avere valutazione completa, usare & e |

Laboratorio di Informatica10 Altri operatori logici NOT: ! –nega unespressione –valore di ritorno true se e solo se lespressione è falsa XOR: ^ –disgiunge due espressioni in modo esclusivo –valore di ritorno true se e solo se le due espressioni hanno diversi valori di ritorno –esprimibile mediante AND, OR e NOT

Laboratorio di Informatica11 Precedenze e associatività Unario ! Unario assegnazione = += -= *= /= %= &= |= ^= OR || AND && OR | XOR ^ AND & Uguaglianza = = != Relazionale >= Additivo + - Moltiplicativo * / % Conversione (type) Operatori Associatività Tipo

Laboratorio di Informatica12 Esempio score 90 (score 90) ((score 90))

Laboratorio di Informatica13 Blocchi di istruzioni Insiemi di istruzioni racchiuse tra parentesi graffe –corrispondono ad unazione –parentesi non necessarie se include una sola istruzione Esempio: { //inizio del blocco calorieLess = 500; calorieAllotment = calorieAllotment-calorieLess; } //fine del blocco

Laboratorio di Informatica14 Istruzione if Selezione semplice: –esegue unazione se solo se una certa condizione è verificata Sintassi: if (Espressione_Booleana) Blocco_1 //esegui solo se vera Prossima_Istruzione; //sempre eseguita Espressione_Booleana true Blocco_1 false Prossima_Istruzione

Laboratorio di Informatica15 Esempio Se il peso è superiore a quello ideale allora diminuisci il numero totale di calorie che si possono assumere di 500. Successivamente, imposta il numero di calorie da assumere per colazione ad un terzo del numero totale di calorie if(weight > ideal) calorieAllotment = calorieAllotment-500; calorieBreakfast = calorieAllotment/3;

Laboratorio di Informatica16 Istruzione if-else Selezione doppia: –esegue unazione oppure unaltra in base al valore di una condizione Sintassi: if (Espressione_Booleana) Blocco_1 //esegui solo se vera else Blocco_2 //esegui solo se falsa Prossima_Istruzione; //sempre eseguita

Laboratorio di Informatica17 Diagramma di flusso Espressione_Booleana true Blocco_1 false Blocco_2 Prossima_Istruzione

Laboratorio di Informatica18 Esempi Esempio con una singola istruzione: if(balance >=0) balance=balance+(INTEREST_RATE*balance)/12; else balance=balance-OVERDRAWN_PENALTY; Esempio con unistruzione composta: if(balance >=0) { interest=(INTEREST_RATE*balance)/12; balance=balance+interest; } else { interst=OVERDRAWN_PENALTY; balance=balance-interest; }

Laboratorio di Informatica19 Istruzioni if-else annidate Annidamento di istruzioni if-else: –tratta situazioni con più di due possibilità –Attenzione : ogni else si riferisce allif più vicino Sintassi: if (Espressione_Booleana_1) Blocco_1 else if (Espressione_Booleana_2) Blocco_2. else if (Espressione_Booleana_ n) Blocco_n else Blocco_Default

Laboratorio di Informatica20 Esempio if (score >= 90) grade = A; else if (score >= 80) grade = B; else if (score >= 70) grade = C; else if (score >= 60) grade = D; else grade = E;

Laboratorio di Informatica21 Istruzione switch Selezione multipla Sintassi: switch(Espressione_Di_Controllo) { case Etichetta_Caso_1: Sequenza_Istruzioni_1 break; case Etichetta_Caso_2: Sequenza_Istruzioni_2 break;... default: Sequenza_Istruzioni_Default }

Laboratorio di Informatica22 Espressione_Di_Controllo deve essere char, int, short o byte Espressione_Di_Controllo e le varie Etichette_Caso_* devono essere dello stesso tipo Listruzione break, che può essere omessa, fa, passare il controllo alla prima istruzione dopo listruzione switch –se break non è inclusa, allora lesecuzione procede con le istruzioni del caso successivo

Laboratorio di Informatica23 Diagramma di flusso Espressione_Di_Controllo = Etichetta_Caso_1 true Sequenza_Istruzioni_1 break? true break? Espressione_Di_Controllo = Etichetta_Caso_2 false Sequenza_Istruzioni_2 false... true false... false true Sequenza_Istruzioni_Default default?

Laboratorio di Informatica24 Esempio switch (seatLocationCode) { case 1: type=O; price = 40.00; break; case 2: type=M; price = 30.00; break; case 3: case 4: type=B; price = 15.00; break; default: type=U; }

Laboratorio di Informatica25 Loperatore condizionale È lunico operatore ternario di Java Sintassi: –(Espressione Booleana)? Espressione_1:Espressione_2; Il valore di ritorno è quello di Espressione_1 se Espressione Booleana è vera, altrimenti è quello di Espressione_2

Laboratorio di Informatica26 Esempio max = (n1>n2)?n1:n2; Equivale a: if (n1>n2) max = n1; else max = n2;

Laboratorio di Informatica27 Ripetizione: i cicli Struttura: –corpo del ciclo –condizione di terminazione del ciclo Organizzazione logica –cicli controllati da condizioni –cicli controllati da contatori Istruzioni Java per realizzare cicli –while –do-while –for

Laboratorio di Informatica28 Ciclo while Sintassi: while (Espressione_Booleana) Blocco //corpo del ciclo Prossima_Istruzione Espressione_Booleana rappresenta la condizione di ripetizione del ciclo –si esce dal ciclo, quando è falsa Blocco rappresenta il corpo del ciclo Istruzioni di inizializzazione precedono generalmente il ciclo

Laboratorio di Informatica29 true Blocco Diagramma di flusso Espressione_Booleana false Prossima_Istruzione

Laboratorio di Informatica30 Esempio Ciclo che calcola la somma dei primi 10 numeri interi int total = 0; int count = 1; while (count <= 10) { total = total + count; count++; }

Laboratorio di Informatica31 Minimo numero di iterazioni Il numero minimo di iterazioni di un ciclo while è 0 dato che la condizione di ingresso può essere immediatamente falsa Esempio: int next; int total = 0; next = (int)(Math.random()*100)-50; while (next >= 0) { total = total + next; next = (int)(Math.random()*100)-50; }

Laboratorio di Informatica32 Ciclo do-while Sintassi: do Blocco //corpo del ciclo while (Espressione_Booleana); Prossima_Istruzione Il corpo del ciclo è eseguito almeno una volta dato che la condizione di ripetizione è posta dopo il corpo stesso

Laboratorio di Informatica33 Diagramma di flusso Espressione_Booleana false Prossima_Istruzione Blocco true

Laboratorio di Informatica34 Esempio int next; int total = 0; do { next = (int)(Math.random()*100)-50; total = total + next; } while (next >= 0);

Laboratorio di Informatica35 Cicli infiniti Cause principali: –errata espressione Booleana –errata (o assente) alterazione delle variabili coinvolte nellespressione Booleana Esempio: int total = 0; int count = 1; while (count != 10) { total = total + count; count += 2; }

Laboratorio di Informatica36 Ciclo for Struttura: –azione di inizializzazione –condizione di ripetizione –corpo del ciclo –azione di continuazione Sintassi: for (Inizializzazione; Espressione_Booleana; Continuazione) Blocco Prossima_Istruzione

Laboratorio di Informatica37 Diagramma di flusso Inizializzazione Continuazione Blocco true Espressione_Booleana false Prossima_Istruzione

Laboratorio di Informatica38 Esempio Sommare separatamente i numeri pari e quelli dispari compresi tra 1 e 100 int sumEven = 0, sumOdd = 0; for (int count = 1; count <= 99; count+=2) { sumOdd = sumOdd + count; sumEven = sumEven + count + 1; }

Laboratorio di Informatica39 Considerazioni pratiche Errori comuni: –cicli infiniti (non intenzionali) –cicli con contatore che non eseguono il numero di iterazioni desiderato (scarto di uno). Testare soprattutto la condizione di ripetizione di un ciclo per evitare possibili errori Mantenere traccia dei valori delle variabili (facendo uso di stampe su video)

Laboratorio di Informatica40 Questioni di stile Blocchi: { Sequenza_Istruzioni } –inserire le parentesi graffe anche se il blocco è costituito da una sola istruzione –indentare tutte le istruzioni incluse nella sequenza

Laboratorio di Informatica41 Istruzione if: if (Espressione_Booleana) Blocco Istruzione if-else: if (Espressione_Booleana) Blocco else Blocco

Laboratorio di Informatica42 Istruzione switch: switch (Espressione_Di_Controllo) { case Etichetta_1: Sequenza_Istruzioni_1 case Etichetta_2: Sequenza_Istruzioni_2... case Etichetta_n: Sequenza_Istruzioni_n default: Sequenza_Istruzioni_Default }

Laboratorio di Informatica43 Istruzione while: while (Espressione_Booleana) Blocco Istruzione do-while: do Blocco while (Espressione_Booleana); Istruzione for: for (Inizializzazione ; EB; Continuazione) Blocco