STRUTTURE (O COSTRUTTI) DI CONTROLLO



Похожие документы
STRUTTURE DI CONTROLLO

Istruzioni per il controllo di ciclo - ciclo a condizione generica

DAL DIAGRAMMA AL CODICE

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

APPUNTI SUL LINGUAGGIO DI PROGRAMMAZIONE PASCAL

Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente.

Progetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012

Introduzione al MATLAB c Parte 2

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

INFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze della Comunicazione Università degli Studi di Salerno

Elementi di Informatica

Algebra Booleana ed Espressioni Booleane

Descrizione di un algoritmo

1 introdurre le monete per l importo necessario. 2 selezionare la quantità di zucchero. 3 selezionare la bevanda desiderata

Fondamenti dell Informatica Ricorsione e Iterazione Simona Ronchi Della Rocca (dal testo: Kfoury, Moll and Arbib, cap.5.2)

3. La sintassi di Java

La selezione binaria

regola(1,[e,f],b) regola(2,[m,f],e) regola(3,[m],f) regola(4,[b,f],g) regola(5,[b,g],c) regola(6,[g,q],a)

RAPPRESENTAZIONE BINARIA DEI NUMERI. Andrea Bobbio Anno Accademico

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1

Laboratorio di Informatica

Istruzioni condizionali. Istruzioni condizionali IF-THEN- ELSE IF-THEN-ELSE. Statistica computazionale Carla Rampichini a.a.

I costrutti forniti dal linguaggio si dividono in corrispondenti classi di istruzioni

Convertitori numerici in Excel

GUIDA BASE DI PASCAL

Esercizi di programmazione in C

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Appunti di Sistemi Elettronici

Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Richiesta pagina PHP (es: index.php)

Gli algoritmi: definizioni e proprietà

ALGORITMI 1. GLI ALGORITMI 2. IL LINGUAGGIO DI PROGETTO

GESTIONE INFORMATICA DEI DATI AZIENDALI

CALCOLO DEL MASSIMO COMUN DIVISORE

Laboratorio di Informatica Lezione 2

Informatica. Rappresentazione dei numeri Numerazione binaria

Preparati per il compito in classe Modulo 5

10 STRUTTURE DI CONTROLLO REPEAT E WHILE. Strutture di controllo e variabili strutturate

La programmazione. Sviluppo del software

La somma. Esempio: Il prodotto. Esempio:

Esercizio di Sincronizzazione tra Processi: Ponte a Senso Unico Alternato con Capacità Limitata

Esempi di algoritmi. Lezione III

DISPENSE DI PROGRAMMAZIONE. Modulo 1 Risolvere problemi con l elaboratore: dal problema all algoritmo (Parte III)

DAL PROBLEMA AL CODICE: ATTRAVERSO LO PSEUDOCODICE

Introduzione a Visual Basic Lezione 1 Concetti base e istruzioni condizionali

Matematica in laboratorio

Sistemi di Numerazione

1) Dati in ingresso 2 numeri, l algoritmo calcola e stampa a video la loro somma

SISTEMI DI NUMERAZIONE IL SISTEMA DECIMALE

Unità B3 Strutture di controllo

I sistemi di numerazione

Esercitazione Informatica I AA Nicola Paoletti

RICORSIVITA. Vediamo come si programma la soluzione ricorsiva al problema precedente: Poniamo S 1 =1 S 2 =1+2 S 3 =1+2+3

Matlab: Strutture di Controllo. Informatica B

Gli algoritmi. Gli algoritmi. Analisi e programmazione

Corso di Informatica

Semantica dei programmi. La semantica dei programmi è la caratterizzazione matematica dei possibili comportamenti di un programma.

10 - Programmare con gli Array

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Reti di Calcolatori

[MANUALE VISUAL BASIC SCUOLA24ORE PROF.SSA PATRIZIA TARANTINO] 14 dicembre 2008

3. Programmazione strutturata (testo di riferimento: Bellini-Guidi)

Introduzione ai Metodi Formali

Lezione 8. La macchina universale

void funzioneprova() { int x=2; cout<<"dentro la funzione x="<<x<<endl; }

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati

Appunti di informatica. Lezione 2 anno accademico Mario Verdicchio

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C

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

Nozione di algoritmo. Gabriella Trucco

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C

la scienza della rappresentazione e della elaborazione dell informazione

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

SISTEMI DI NUMERAZIONE E CODICI

LABORATORIO DI PROGRAMMAZIONE EDIZIONE 1, TURNO B

PROPRIETA' ASSOCIATIVA La somma di tre o più addendi non cambia se al posto di alcuni di essi si sostituisce la loro somma.

4 3 4 = 4 x x x 10 0 aaa

I SISTEMI DI NUMERAZIONE (esercizi svolti)

Capitolo 6: Modelli di calcolo per linguaggi imperativi e funzionali

Il simbolo. è è = = = In simboli: Sia un numero naturale diverso da zero, il radicale. Il radicale. esiste. esiste 0 Il radicale

Laboratorio di architettura degli elaboratori Progetto finale AA 2005/2006

Aritmetica dei Calcolatori 2

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Una funzione è detta ricorsiva se chiama, direttamente o indirettamente, se stessa. In C tutte le funzioni possono essere usate ricorsivamente.

I diversi tipi di sistemi di numerazione

Dispense di Informatica per l ITG Valadier

Транскрипт:

Le strutture di controllo Le strutture di controllo STRUTTURE (O COSTRUTTI) DI CONTROLLO determinano l ordine con cui devono essere eseguite le istruzioni sono indipendenti dalla natura delle istruzioni sono strumenti logici universali utilizzabili in qualunque problema Classificazione delle strutture di controllo Classificazione delle strutture di controllo sequenza selezione iterazione o ripetizione Algoritmo per il cambio della ruota inizio Ruota di scorta bucata? Solleva l auto svita un bullone Tutti svitati? Chiama il Togli la ruota meccanico Metti la ruota di scorta Avvita un bullone Tutti avvitati? Abbassa l auto fine 1

Togli la ruota Metti la ruota di scorta Chiama il meccanico Ruota di scorta bucata? SEQUENZA DI ISTRUZIONI STRUTTURA DI SELEZIONE Sequenza di istruzioni Sequenza di istruzioni Avvita un bullone Istruzione 1 Tutti avvitati? LOWCHART Istruzione 2 Istruzione 3 STRUTTURA DI ITERAZIONE Istruzione 1 Istruzione 2 Istruzione 3 2

LOWCHART Struttura di selezione Struttura di selezione 1 condizione if (condizione) then 1 else 2 2 Esempio: algoritmo per il calcolo del massimo tra due numeri reali begin MASSIMO var: a, b, max : real read a,b if (a>b) then max:=a else max:=b print max end MASSIMO Esempio: algoritmo per il calcolo del valore assoluto di un numero reale begin ALASS var: a: real read a if (a<0) then a:= -a print a end ALASS Osservazione La struttura di selezione può anche essere del tipo: condizione LOWCHART if (condizione) then 3

Struttura di iterazione di tipo for Struttura di iterazione di tipo for LOWCHART N volte for i =1,N do istruzioni Esempio: algoritmo per il calcolo della somma di N numeri reali begin SOMMA var: i,n: integer var: numero,sum: real read N sum:=0. for i=1,n do read numero sum:=sum+numero print sum end SOMMA Esempio: algoritmo per il calcolo di n! con n>1 begin ATTORIALE var: n,i,fatt:integer read n fatt:=1 for i=2,n do fatt:=fatt*i print fatt end ATTORIALE Esempio: algoritmo per il calcolo di n! con n>1 (seconda versione) begin ATTORIALE var: n,i,fatt:integer read n incremento fatt:=n del contatore for i=n-1,2,-1 do fatt:=fatt*i print fatt end ATTORIALE 4

Esempio: algoritmo per il calcolo del prodotto di N numeri reali begin PRODOTTO var: i,n: integer var: numero,prod: real read N,numero prod:=numero for i=1,n-1 do read numero prod:=prod*numero print prod end PRODOTTO Osservazione Se un numero è nullo il prodotto è nullo Prevedere il caso in cui un numero sia nullo ed in tal caso arrestare il procedimento Arrestare il procedimento quando sono stati moltiplicati tutti i numeri oppure quando un dato è nullo Struttura di iterazione di tipo while Struttura di iterazione di tipo while LOWCHART condizione while (condizione) do istruzioni endwhile Esempio: algoritmo per il calcolo del prodotto di N numeri reali begin PRODOTTO var: i,n: integer var: numero,prod: real read N,numero i:=1 prod:=numero while (prod 0 and i<n) do read numero i:=i+1 prod:=prod*numero endwhile print prod end PRODOTTO 5

Struttura di iterazione di tipo repeat-until Struttura di iterazione di tipo repeat-until LOWCHART condizione Esercizio: riscrivere l algoritmo per il calcolo del prodotto di N numeri reali utilizzando la struttura iterativa repeat-until repeat istruzioni until (condizione) Algoritmo per il calcolo del prodotto di N numeri reali (versione con il repeat-until) begin PRODOTTO var: i,n: integer var: numero,prod: real read N,numero i:=1 prod:=numero repeat read numero i:=i+1 prod:=prod*numero until (prod=0 or i n) print prod end PRODOTTO Differenze tra le strutture iterative Differenze tra le strutture iterative Il for richiede che sia noto a priori il numero di iterazioni da effettuare Il while ed il repeat non richiedono tale informazione Nel while se la condizione è falsa non si esegue alcuna istruzione del ciclo Nel repeat le istruzioni del ciclo sono eseguite almeno una volta Nel while la condizione determina l entrata nel ciclo Nel repeat-until la condizione determina l uscita dal ciclo 6

Esempio: algoritmo per il calcolo del MCD tra due numeri interi Come si calcolano il quoziente ed il resto della divisione tra due numeri interi? Esempio: MCD (24,15) 24 : 15 = 9 1 9 : 6 = 3 1 15 : 9 = 6 1 6 : 3 = 0 2 MCD x : y = r q q=x/y r=x-y*q Algoritmo per il calcolo del MCD tra due numeri interi begin MCD var:x,y,r,q,t:integer read x,y if (x <y) then t =x scambio dei valori x =y delle variabili y =t repeat q:=x/y r:=x-q*y x:=y y:=r until (r=0) print x end MCD Le strutture di controllo possono essere innestate l una nell altra while (condizione) do for i = m, n, k do if (condizione)then endwhile 7

Esempio: algoritmo per il calcolo del massimo tra N numeri reali begin MASSIMO var: num, max : real var: i, N: integer read N,num max:=num for i=2, N do read num if (num>max) then max:=num print max end MASSIMO Esempio: algoritmo per la ricerca di un dato elemento in un insieme di N numeri interi datidiinput :N, numeri, elemento da cercare datidioutput:variabile logica che indica se l elemento è stato trovato, posizione Esempio: dati di input: 4, 2, 1, 10, 5 10 dati di output: vero, 3 begin RICERCA_SEQ var:n, num,elem, i, pos: integer var: trov: logical read N,elem trov=.false. i=0 pos=0 while (i<n and.not.trov) do read num i:=i+1 if (elem=num) then trov:=.true. pos:=i endwhile print trov,pos end RICERCA_SEQ Esercizio: riscrivere l algoritmo per la ricerca di un dato elemento in un insieme di N numeri interi utilizzando la struttura iterativa repeat-until 8

begin RICERCA_SEQ var:n, num,elem, i, pos: integer var: trov: logical read N,elem trov=.false. i=0 pos=0 repeat read num i:=i+1 if (elem=num) then trov:=.true. pos:=i until (i N or trov) print trov,pos end RICERCA_SEQ Esercizio: algoritmo per il calcolo della divisione intera tra due numeri naturali con il metodo delle sottrazioni successive datidiinput: due numeri naturali x e y datidioutput:parte intera di x/y Esempio: x=26, y=7 parte intera di x/y = 3 Strategia Si sottrae y da x e si assegna a x il valore della differenza fino al verificarsi della condizione x<y Il numero delle sottrazioni eseguite èla parte intera di x/y Esempio: x=26, y=7 26-7 = 19 1 19-7 = 12 2 12-7 = 5 3 risultato 5<7 il procedimento termina Algoritmo begin DIISIONE var: x,y,cont,diff: integer read x,y cont:=0 diff:=x while (diff y) do diff:=diff-y cont:=cont+1 endwhile print cont end DIISIONE 9

Algoritmo Esercizio: scrivere l algoritmo per la conversione di un intero dalla base decimale a quella binaria begin CONERSIONE var: n, q, r: integer var: bin, stringa: character read n bin:= repeat q:= n/2 r:= n-2*q stringa:= r bin:= stringa//bin n:= q until (q=0) print bin end CONERSIONE 10