Strutture di Controllo

Documenti analoghi
Algoritmi e soluzione di problemi

PROGRAMMAZIONE: Le strutture di controllo

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

PROGRAMMAZIONE STRUTTURATA

Come ragiona il computer. Problemi e algoritmi

DAL DIAGRAMMA AL CODICE

Modulo 2: Strutture fondamentali della programmazione Java

Formalismi per la descrizione di algoritmi

Diagrammi di flusso. Un metodo per rappresentare graficamente gli algoritmi. sotto programma. Input/ Output. Start. predicato Elaborazione Stop

Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione

Sviluppo di programmi. E ora, finalmente. Si comincia! 1. Analizzare il problema. 2. Progettare una soluzione (1) E necessario capire:

Dall algoritmo al programma

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

Diagrammi a blocchi 1

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

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

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

Esercitazione 3. Espressioni booleane I comandi if-else e while

Corso di Informatica di Base

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

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt);

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Le strutture di controllo in C++

3. Indicare cosa sta a significare la figura geometrica del rombo in un diagramma a blocchi

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

unità didattica 3 Le strutture condizionali e le strutture iterative

Esercitazione 4. Comandi iterativi for, while, do-while

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

PROBLEMI ALGORITMI E PROGRAMMAZIONE

Prof. Giuseppe Chiumeo. Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto tre strutture di base:

Errori frequenti Cicli iterativi Array. Cicli e array. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A.

Cosa si intende con stato

Definizione di algoritmo

Informatica! Appunti dal laboratorio 1!

ALGORITMI. Obiettivo: risolvere problemi mediante l uso di un elaboratore elettronico. Elaboratore elettronico

Costrutti condizionali e iterativi

LIBRO DI TESTO: INFORMATICA MULTIMEDIALE METODI E FONDAMENTI AUTORI: MARISA ADDOMINE DANIELE PONS CASA EDITRICE: ZANICHELLI

COSA SONO I FLOW CHART

Istruzioni Condizionali

Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia

Compitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A

Mini-Corso di Informatica

in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico

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

Matlab : le basi. Vediamo ora un esercizio di calcolo: Il volume di una sfera è dato da V=4*π*r 3 /3 dove r è il raggio.

Rappresentazione con i diagrammi di flusso (Flow - chart)

Informatica/ Ing. Meccanica/ Prof. Verdicchio/ 14/02/2012 / Foglio delle domande / VERSIONE 1

IL PRIMO PROGRAMMA IN C

Appunti di informatica. Lezione 10 anno accademico Mario Verdicchio

RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO

Modulo 1 Concetti di base della Tecnologia dell Informazione

Appunti del corso di Informatica 1 (IN110 Fondamenti) 2 Algoritmi e diagrammi di flusso

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

Il linguaggio di programmazione Python

Corso di Fondamenti di Informatica Classi di istruzioni 2

Programmazione web lato client con JavaScript. Marco Camurri 1

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Termine algoritmo da:

Laboratorio di programmazione

Individuazione di sottoproblemi

CONCETTI FONDAMENTALI

Fondamenti di Programmazione. Strutture di controllo

Lezione 5. La macchina universale

Algoritmi e basi del C Struttura di un programma

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

Diagrammi a blocchi 1

UD 3.2b: Programmazione in Pascal (1)

Algoritmi e diagrammi di flusso

PROGRAMMAZIONE IN C E C++

Progetto e analisi di algoritmi

PROGRAMMAZIONE IN C E C++ Prof. Enrico Terrone A. S: 2014/15

LA METAFORA DELL UFFICIO

Fare calcoli e grafici con Excel

5 - Istruzioni condizionali

Introduzione a Visual Basic Lezione 2 Cicli e anomalie

Pr1: determinare il maggiore di n numeri interi n. Fondamenti di Informatica Prof. Vittoria de Nitto Personè

Laboratorio di Informatica. Esercitazione su algoritmi e diagrammi di flusso

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli

Sviluppo di programmi

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro

(A) CONOSCENZA TERMINOLOGICA (B) CONOSCENZA E COMPETENZA

Prof. Pagani Corrado ALGORITMI ESERCITAZIONI CICLI

Informatica, Algoritmi, Linguaggi

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

Corso di Fondamenti di Informatica

Esempio di Patto Formativo per la classe terza

Politecnico di Torino Sede di Alessandria Corso di informatica Programmazione in c: introduzione. e mail: sito: users.iol.

Esercizi C su array e matrici

Codi-Amo con Musica & Gioco

Matlab. Istruzioni condizionali, cicli for e cicli while.

PROGRAMMAZIONE DISCIPLINARE LICEO SCIENTIFICO OPZIONE SCIENZE APPLICATE INFORMATICA CLASSE QUINTA

Algoritmi. Pagina 1 di 5

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

= < < < < < Matematica 1

Gli statement. Gli statement. Gli statement. Gli statement. Gli statement

Introduzione alla programmazione Esercizi risolti

Anno 1. Teoria degli insiemi: definizioni principali

Università di Roma Tor Vergata L12-1

Programmazione in Java (I modulo)

Istruzioni iterative. Istruzioni iterative

Transcript:

Introduzione Strutture di Controllo per strutture condizionali e cicliche Quando si affronta la programmazione si devono indicare al computer delle istruzioni da eseguire. Se il computer potesse comprendere il linguaggio naturale, sarebbe facile chiedere: di eseguire un'istruzione condizionale: se questo è vero, fai una cosa, altrimenti fai quest'altra cosa; di eseguire un'istruzione iterativa: ripeti questo per 100 volte; di eseguire una sequenza di istruzioni: fai prima questo, poi fai questo e poi quest'altro. Si tratta di istruzioni per noi molto semplici da comprendere, ma che devono essere espresse in modo da poter essere comprese dal computer. Ognuna delle precedenti istruzioni è un esempio di: una condizione, un'iterazione e una sequenza. Teorema Böhm-Jacopini Questo teorema afferma che qualsiasi algoritmo può essere descritto utilizzando solo tre tipi di strutture: la sequenziale, la condizionale e l'iterativa. Gli esempi appena visti erano proprio di queste strutture: I programmi che seguiranno sono privi di altre funzioni oltre al main() per metteree in evidenza solo queste tre strutture. Al loro fianco sarà presente un diagramma di flusso che usa gli stessi colori per mettere in evidenza le tre strutture. Le tre strutture possono anche essere combinate insieme tra di loro: si può inserire una struttura sequenziale all'interno di una condizionale(figura 1), oppure una struttura condizionale dentro una struttura iterativa (Figura 2).

In C++ l'inserimento di una struttura dentro un'altra si ottiene aumentando l'indentazione, cioè spostando un testo di quattro spazi più a destra, ad esempio: struttura-interna struttura-interna struttura-piu'-interna Traduzione Poiché queste tre strutture sono indispensabili per descrivere tutti gli algoritmi, ogni linguaggio di programmazione consente di tradurle come istruzioni. Nei prossimi esempi si vedrà che La struttura sequenziale si traduce in C++ scrivendo una sequenza di istruzioni, in fila e ben allineate verticalmente, con la stessa indentazione: istruz.1

istruz.5 La struttura condizionale si traduce in C++ usando un'istruzione if ed eventualmente else (attenzionee all'indentazione di alcune righe) if ( ) else Struttura sequenziale Un programma può eseguire una lista sequenziale di istruzioni Esempio che calcola l'area di un cerchio chiedere in input un valore per il raggio calcola l'area di un cerchio (formula) visualizzare in output l'area var. di input tipo var. di output tipo var. di lavoroo tipo raggio num. virgola area num. virgola area num. virgola La struttura sequenziale si traduce in C++ con una lista ben allineata, perché in C++ l'indentazione viene usata proprio per segnare la struttura della sequenza istruz.1

istruz.5 Struttura condizionale Un programma può eseguire istruzioni diverse in base al verificarsi di una condizione Esempio che visualizza la maggiore età chiedere in input il valore dell'anno di nascita calcolare l'età attuale se età < 18 allora visualizzare in output: sei minorenne altrimenti visualizzare in output: sei maggiorenne costanti valore var. di input tipo var. di output tipo var. di lavoro annoattuale 2012 annonascita intero - - - La struttura condizionale si traduce in C++ indicando la condizione dentro il rombo dentro un'istruzione if che contiene la condizione logica da verificare. Dopo si scrive l'istruzione (o le istruzioni) da eseguire nel caso vero. Poi, nell'eventualità che vi siano istruzioni nel caso falso, si scrive else e dopo le sue eventuali istruzioni. tipo - if (condizione) // se la condizione è vera fai quello che sta tra parentesi graffe { } else // altrimenti fai quello che sta tra le parentesi graffe dopo l else { }

Struttura condizionale nidificata Esempio che visualizza il minimo di tre numeri chiedere in input 3 valori numerici interi (primo,secondo,terzo) se primo < secondo allora: Se primo < terzo Inizio allora il minimo è primo altrimenti il minimo è terzo altrimenti: Se secondo < terzo num1,num2,num3 allora il minimo è secondo altrimenti il minimo è terzo visualizzare minimo Inserisci 3 numeri Leggi num1, num2, num3 No num1<num2 Si num1<num3 num2<num3 num1 num3 num2 num3 fine

Struttura iterativa (ciclica) La struttura iterativa può essere studiata come composta da diversi elementi (che possono anche coincidere tra loro): 1. un'eventuale variabile contatore (per numerare e contare quante sono le ripetizioni effettuate) 2. un'eventuale variabile totalizzatore (per accumulare l'eventuale risultato di tutte le operazioni ripetute) 3. la valutazione di un'espressione logica di uscita o condizione di uscita (per terminare in qualche modo la ripetizione) 4. un'eventuale istruzione che modifica la variabile contenuta nella condizione di uscita (ad esempio l'incremento del contatore) A seconda della posizione occupata dalla condizione di uscita all'interno della ripetizione, la struttura iterativa può essere di due tipi: precondizionale postcondizionale In pratica, nel tipo precondizionale, quando la condizione di uscita non è verificata, la ripetizione non viene mai eseguita, mentre nella postcondizionale la ripetizione viene eseguita sempre almeno una volta. In entrambi i casi si esce dal ciclo di ripetizione quando la condizione diventa falsa. Struttura iterativa postcondizionale Anche se in teoria esiste, si possono scrivere programmi senza usarla, quindi per ora viene omessa Struttura iterativa precondizionale Precondizionale significa che la condizione di uscita precede la ripetizione, quindi, in questo caso, potrebbe accadere che, se la condizione non è verificata, la ripetizione non sia mai eseguita La struttura iterativa precondizionale in C++ si può realizzare in due modi: per tradurre un diagramma di flusso si presta molto bene la struttura while, mentre si può usare for nel caso in cui la ripetizione riguardi una sequenza predefinita (come una sequenza di passi numerati o come una lista ordinata di elementi). while (controllo ) { istruzione 1; istruzione n; } //mentre il controllo è vero fai ciò che si trova tra le parentesi graffe La condizione di uscita del rombo deve essere indicata dentro il while. L'eventuale inizializzazione del contatore va indicata prima del while. Le istruzioni da ripetere, così come l'istruzione che modificano il valore del contatore, vanno indicate subito dopo il while indentate dentro le parentesi graffe.