Dal problema al programma - LE BASI DELLA PROGRAMMAZIONE PROF. PANTALEO GERMINARIO
←
→
Trascrizione del contenuto della pagina
Se il tuo browser non visualizza correttamente la pagina, ti preghiamo di leggere il contenuto della pagina quaggiù
Conoscere gli algoritmi e i linguaggi I problemi e la loro soluzione L’umanità, dai suoi albori, ha dovuto risolvere problemi di molteplice natura per sopravvivere. La soluzione del problema consiste nel cercare la soluzione che porta al raggiungimento dell’obiettivo da raggiungere. “Ogni problema ha tre soluzioni: la mia soluzione, la tua soluzione e la soluzione giusta.” (Platone) PROF. PANTALEO GERMINARIO 2
Conoscere gli algoritmi e i linguaggi Dal punto di vista matematico e informatico si identifica con la parola problema una questione (o quesito) che deve essere risolta, della quale viene data una situazione iniziale con dei dati noti e un obiettivo da raggiungere, che consiste nella soluzione desiderata. Un problema è un quesito che chiede di trovare uno o più elementi ignoti (la soluzione), partendo dagli elementi noti da esso forniti. PROF. PANTALEO GERMINARIO 3
Conoscere gli algoritmi e i linguaggi La soluzione di un problema consiste nella definizione della procedura ovvero le operazioni che devono essere eseguite per raggiungere lo scopo desiderato. Abbiamo quindi la necessità di identificare un metodo per la soluzione dei problemi. Questo modo di procedere si definisce: strategia risolutiva. PROF. PANTALEO GERMINARIO 4
La strategia risolutiva Una strategia risolutiva è un insieme di passi da compiere per giungere alla soluzione di un problema. La soluzione o risultato finale è l’obiettivo che vogliamo raggiungere. PROF. PANTALEO GERMINARIO 5
La strategia risolutiva Una strategia risolutiva è un insieme di passi da compiere per giungere alla soluzione di un problema. Analisi del L’identificazione dell’obiettivo da raggiungere e problema dello stato iniziale, ossia dell’insieme dei dati iniziali oggettivi e significativi dei quali si dispone Progettazione della La specificazione delle azioni da intraprendere per risolvere il problema, ossia per trasformare i dati strategia risolutiva iniziali in dati finali Verifica della Il raggiungimento dello stato finale della strategia risolutiva, consistente nel verificare che i risultati soluzione ottenuti siano rispondenti agli obiettivi iniziali PROF. PANTALEO GERMINARIO 6
Un esempio di problema Un famoso esempio di problema da risolvere è quello del "Contadino, la capra, il cavolo ed il lupo". Problema Sulla riva di un fiume ci sono un contadino, un lupo, una capra e un cavolo che lo devono attraversare con una piccola barca che consente di portare solo due “cose” alla volta. Come può il contadino attraversare il fiume salvando “capra e cavoli” sapendo che se vengono lasciati da soli il lupo con la capra, oppure la capra con il cavolo, i primi divorano i secondi? PROF. PANTALEO GERMINARIO 7
Un esempio di problema Analisi della situazione abbiamo un obiettivo (goal): traghettare un contadino e le “tre cose” che ha con sé da una riva del fiume all’altra; abbiamo un limite di cose che possiamo portare sulla barca (vincolo): due alla volta; dobbiamo stare attenti a cosa lasciamo incustodito sulla riva mentre il contadino sta remando (vincolo) in quanto: se rimane il lupo con la capra... quest’ultima viene mangiata; se rimane la capra con il cavolo... quest’ultimo viene mangiato PROF. PANTALEO GERMINARIO 8
Un esempio di problema La definizione della strategia risolutiva Il nostro compito è quello di trovare la soluzione di questo problema, che consiste nel “suggerire” al contadino “cosa deve fare”, cioè che tipo di operazione deve eseguire (chi portare sulla barca) e “come deve farla”, vale a dire in che ordine. In altre parole, dobbiamo dargli le “istruzioni risolutive” indicandogli la sequenza esatta. PROF. PANTALEO GERMINARIO 9
Algoritmo risolutivo La soluzione è la tecnica (o l’idea) che consente di risolvere il problema e nell’informatica prende il nome di algoritmo risolutivo PROF. PANTALEO GERMINARIO 11
Algoritmo risolutivo Possiamo dare la soluzione in due modi possibili: Sotto forma di istruzioni scritte in linguaggio naturale In formato grafico Scegliamo noi il formato più idoneo al nostro interlocutore: “chi deve eseguire” le istruzioni (esecutore) deve essere in grado di comprenderle. La soluzione viene descritta indicando l’insieme delle operazioni (passi) che devono essere effettuate indicandole nell’ordine in cui devono essere eseguite (sequenza di operazioni). PROF. PANTALEO GERMINARIO 12
Il concetto di Algoritmo Nel processo di soluzione di un problema, è necessario analizzare dettagliatamente la situazione e individuare la strategia risolutiva, cioè “trovare” l’idea che risolve la situazione. PROF. PANTALEO GERMINARIO 13
Il concetto di Algoritmo Quando la strategia risolutiva è stata definita, quindi quando si è “scoperto” il criterio risolutivo del problema, bisogna “scrivere” le singole istruzioni che l’esecutore deve compiere, in sequenza, una dopo l’altra. L’insieme delle operazioni che permettono di risolvere un problema prende il nome di algoritmo PROF. PANTALEO GERMINARIO 14
Caratteristiche di un algoritmo generalità, deve risolvere tutti i problemi di una certa classe: per esempio l’algoritmo che effettua la somma di due numeri deve portare al risultato corretto indipendentemente dal valore dei due numeri; finitezza: deve essere composto da un numero finito di istruzioni ordinate e deve terminare la sua elaborazione in un numero finito di passi in un tempo finito; realizzabilità: l’algoritmo deve essere comprensibile e realizzabile da chi lo deve eseguire, cioè deve essere molto dettagliato e composto di istruzioni molto elementari non ulteriormente scomponibili; PROF. PANTALEO GERMINARIO 15
Caratteristiche di un algoritmo non ambiguità: l’esecutore deve interpretare in modo univoco le istruzioni; completezza: devono essere previste tutte le possibilità che possono verificarsi durante l’esecuzione e per ognuna devono essere definite le azioni da svolgere; riproducibilità: ogni volta che viene eseguito l’algoritmo con gli stessi dati di partenza devono condurre agli stessi risultati (determinismo). PROF. PANTALEO GERMINARIO 16
Algoritmi ed esecutori I principali esecutori di algoritmi sono le macchine: una macchina “non è intelligente”, ed è capace solo di eseguire istruzioni molto elementari e senza alcuna capacità critica o di ragionamento autonomo, limitandosi a svolgere automaticamente dei compiti ripetitivi, sulla base delle istruzioni ricevute. Le macchine sono istruite attraverso un procedimento che prende il nome di programmazione: “trascrivere” l’algoritmo mediante un linguaggio particolare che la macchina “è in grado di capire” e di inserirlo al suo interno in modo che lo possa eseguire sotto forma di programma. PROF. PANTALEO GERMINARIO 17
Esecutori e sistemi di elaborazione Un problema è un quesito che chiede di trovare uno o più elementi ignoti (la soluzione), partendo dagli elementi noti da esso forniti. I dati forniti dall’utente alla macchina (gli elementi noti) per essere elaborati si chiamano dati in ingresso (o in input). La macchina esegue il programma, che effettua calcoli, e visualizza i risultati all’utente sul display, cioè “ritorna” un risultato in uscita, cioè in output. INPUT SISTEMA DI OUTPUT ELABORAZIONE PROF. PANTALEO GERMINARIO 18
Codificare gli algoritmi con i Flow Chart Punto di partenza: ALGORITMO: insieme delle operazioni che permettono di risolvere un problema (termine derivato dal nome del matematico Al-Khuwarizmi, vissuto nel IX secolo, ed è quindi un concetto che è stato sempre usato in matematica come sinonimo di metodo di soluzione di un problema generale). PROF. PANTALEO GERMINARIO 19
Codificare gli algoritmi con i Flow Chart Punto di partenza: Abbiamo la necessità di istruire le macchine (esecutore) attraverso un procedimento che prende il nome di programmazione: “trascrivere” l’algoritmo mediante un linguaggio particolare che la macchina “è in grado di capire” e di inserirlo al suo interno in modo che lo possa eseguire sotto forma di programma. PROF. PANTALEO GERMINARIO 20
Linguaggi per l’uomo In funzione della natura dell’esecutore è necessario individuare il linguaggio adeguato a descrivere l’algoritmo. Per gli esecutori umani abbiamo due alternative: il linguaggio naturale la rappresentazione grafica La descrizione di un algoritmo in linguaggio naturale prende il nome di pseudocodifica mentre la descrizione grafica di un algoritmo viene realizzata tramite i flow-chart. PROF. PANTALEO GERMINARIO 21
I diagrammi a blocchi o flow-chart Esistono diversi modi per scrivere un algoritmo: il più semplice, e anche il più diffuso, è quello che utilizza i diagrammi a blocchi (o flow-chart, in italiano “diagrammi di flusso”): si tratta di una rappresentazione grafica che consente all’esecutore umano di seguire il flusso della esecuzione delle istruzioni. PROF. PANTALEO GERMINARIO 22
I diagrammi a blocchi o flow chart I flow-chart sono formati da SIMBOLI di forma diversa, ciascuno con il proprio significato, e da un testo contenuto all’interno di ciascun simbolo. I simboli sono uniti da LINEE CON FRECCE che rappresentano il flusso delle operazioni. PROF. PANTALEO GERMINARIO 23
I simboli grafici Questi due simboli indicano INIZIO / BEGIN il punto di partenza e di terminazione dell’algoritmo. FINE / END Questo simbolo indica una operazione di Input o di Output PROF. PANTALEO GERMINARIO 24
I simboli grafici Questo simbolo indica l’elaborazione e contiene l’istruzione da eseguire Questo simbolo indica un blocco di decisione (detto F CONDIZI V istruzione condizionale) ed è ONE utilizzato per stabilire se una proposizione (condizione) è vera (V) o falsa (F) PROF. PANTALEO GERMINARIO 25
I simboli grafici I simboli sono uniti da frecce che indicano il verso di navigazione del flusso. Nel flusso è possibile inserire dei nodi di congiunzione, che indicano un punto in cui due percorsi alternativi si ricongiungono per poi proseguire insieme per il resto dell’algoritmo. Per questi deve essere osservata la seguente regola: PROF. PANTALEO GERMINARIO 26
Esempio di algoritmo Problema: calcolare l’area di un cerchio Algoritmo: 1. Inserisci il raggio 2. calcola l’area (= ∗ raggio2 ) 3. visualizza il risultato PROF. PANTALEO GERMINARIO 27
Esempio di algoritmo Problema: calcolare l’area di un cerchio Algoritmo: 1. Inserisci il raggio 2. se il raggio è = 0 2.1 allora l’area = 0 2.2 altrimenti calcola l’area (= ∗ raggio2 ) 3. visualizza il risultato PROF. PANTALEO GERMINARIO 28
Considerazioni sull’algoritmo Questo esempio ci consente di fare alcune riflessioni. L’algoritmo è generico, può essere utilizzato per il calcolo dell'area di qualsiasi cerchio. La sequenza delle istruzioni è ordinata, cioè esiste un ordine preciso in base al quale vengono eseguite le istruzioni, che non possono essere scambiate di posto tra loro. Il numero di operazioni è finito. Ogni operazione è chiara e non genera errori di comprensione. È presente un solo inizio e una fine. I risultati generati saranno gli stessi tutte le volte che l’algoritmo viene eseguito (determinismo), anche se dovesse essere utilizzato un elaboratore diverso PROF. PANTALEO GERMINARIO 29
La programmazione strutturata La programmazione strutturata è una metodologia di programmazione basata su codifica strutturata, progettazione top-down modularità PROF. PANTALEO GERMINARIO 30
La codifica strutturata Nei primi linguaggi di programmazione l'istruzione di salto incondizionato (GoTo) rendeva difficoltosa l'interpretazione del codice sorgente da parte dei programmatori PROF. PANTALEO GERMINARIO 31
La codifica strutturata Per risolvere il problema negli anni '60 i programmatori si accorsero che qualsiasi istruzione goto poteva essere sostituita con una struttura sequenziale, condizionale, iterativa. PROF. PANTALEO GERMINARIO 32
Il teorema di Böhm-Jacopini Nel 1966 due matematici italiani Corrado Böhm e Giuseppe Jacopini hanno formulato uno dei più importanti teoremi dell’informatica. Quesito: «Quali algoritmi sono codificabili con i tre costrutti sequenza, selezione e iterazione?». Risposta: «Con i tre costrutti fondamentali è possibile codificare tutti gli algoritmi». Questo teorema esclude dalla programmazione strutturata l’istruzione di salto (GOTO) considerandola la principale causa del codice-spaghetti, cioè codice scritto in modo tanto ingarbugliato da non poter essere compreso neanche dallo stesso programmatore che lo ha scritto!! PROF. PANTALEO GERMINARIO 33
Struttura di Iterazione La struttura di iterazione è utile quando si deve eseguire un blocco di istruzioni finché non si verifica una determinata condizione. Esempio: costruire un algoritmo che dati in input 5 numeri ne determini la somma PROF. PANTALEO GERMINARIO 34
Struttura di Iterazione INIZIO INIZIO Struttura a sequenza Struttura ad SOMMA Iterazione 0 LEGGI N1 CONT 0 LEGGI N2 LEGGI N3 LEGGI N SOMMA SOMMA + N LEGGI N4 LEGGI N5 CONT CONT+1 CALCOLA LA SOMMA V CONT = 5 MOSTRA IL F RISULTATO MOSTRA IL RISULTATO FINE FINE PROF. PANTALEO GERMINARIO 35
Struttura di Iterazione post-condizionale La condizione è un’espressione che rappresenta un valore Vero o Falso. Il ciclo viene ripetuto finché l’espressione non diventa vera. Le istruzioni sono eseguite almeno una volta. Nel gergo informatico questa iterazione prende il nome di repeat … until PROF. PANTALEO GERMINARIO 36
Struttura di Iterazione post-condizionale La condizione è un’espressione che rappresenta un valore Vero o Falso. Il ciclo viene ripetuto finché l’espressione non diventa falsa. Le istruzioni potrebbero non essere Nel gergo informatico questa iterazione prende il nome di While… . PROF. PANTALEO GERMINARIO 37
La programmazione strutturata La programmazione strutturata è una metodologia di programmazione basata su codifica strutturata, progettazione top-down modularità PROF. PANTALEO GERMINARIO 38
La progettazione top-down L'approccio Top-Down è un approccio progettuale che caratterizza la programmazione strutturata (e non solo) perché migliora ulteriormente la leggibilità degli algoritmi (e del codice sorgente). Consiste nel realizzare prima il progetto in via generale (Top) e completare i dettagli (Down) successivamente. Esiste anche l’approccio Bottom-Up che è praticamente inverso al Top-Down. In questo caso si progettano prima i processi di dettaglio e dopo i processi di livello superiore. PROF. PANTALEO GERMINARIO 39
La modularità La programmazione strutturata è caratterizzata anche dalla modularità del progetto. Cos'è un modulo? La progettazione modulare consente di suddividere il problema principale in tanti sotto problemi. In particolare un modulo è una processo che svolge un compito preciso. Ad esempio, l'ordinamento dei dati in ordine crescente o decrescente. Ogni modulo può essere utilizzato da un altro modulo del progetto. PROF. PANTALEO GERMINARIO 40
La modularità: punti cardine Suddivisione del programma in singoli moduli, indipendenza dei moduli tra loro, facile testabilità dei moduli come entità isolate, dichiarazione esplicita e semplificazione delle interfacce mediante le quali i moduli comunicano tra loro. I principali vantaggi della programmazione modulare sono: riutilizzabilità dei moduli, progettazione separata (importante nell’ambito di un team di lavoro). PROF. PANTALEO GERMINARIO 41
Le variabili e le costanti Le Variabili Negli algoritmi precedenti, ci sono blocchi per comunicare con l’utente, che LEGGI N1 rappresentano le istruzioni con le quali avviene lo scambio di dati (in questo caso di numeri) necessari per produrre i risultati. In tutti i linguaggi di programmazione, particolare attenzione è dedicata alle operazioni che permettono di MOSTRA IL RISULTATO memorizzare le informazioni, in quanto i dati sono “la linfa vitale” dell’algoritmo: senza dati non può esistere l’elaborazione. PROF. PANTALEO GERMINARIO 42
Le variabili e le costanti Vengono messe a disposizione del programmatore istruzioni necessarie per definire i “contenitori dei dati” e per effettuare operazioni su di essi: questi “contenitori”, chiamati variabili, sono delle aree (di memoria RAM) dove vengono “depositati” i dati durante le elaborazioni. Il programmatore definisce per ciascuna di esse un nome (identificatore), in modo da poterle distinguere e poterle utilizzare elle istruzioni di elaborazione. PROF. PANTALEO GERMINARIO 43
Regole per la definizione delle variabili Il nome della variabile, il suo identificatore, deve essere univoco. L’identificatore deve essere parlante: se devo memorizzare il peso di un alunno è preferibile utilizzare chiamare la variabile peso piuttosto che A o pippo in quanto in seguito non è facile da ricordare. Il nome delle variabili non può contenere spazi o lettere accentate: per esempio se devo definire una variabile che contenga l’età di una persona posso usare identificativi come eta_persona, oppure etaPersona. PROF. PANTALEO GERMINARIO 44
Le costanti Oltre alle necessità di memorizzare i dati che vengono elaborati nel corso dell’esecuzione del programma, esistono anche delle situazioni in cui alcune variabili contengono dati che “non devono essere variati” e si mantengono uguali per tutta l’esecuzione del programma: questi dati prendono il nome di costanti. Per evitare di confondere le costanti dalle variabili si utilizza l’accorgimento di utilizzare un identificatore con lettere maiuscole. Per esempio: NUMERO_DI_CICLI PROF. PANTALEO GERMINARIO 45
Rappresentazione di variabili e costanti Variabili e costanti, quindi, sono utilizzati per rappresentare dati, i quali all’interno dell’algoritmo sono classificati sulla base del loro aspetto funzionale: dati di input: sono quelli che vengono forniti dall’esterno e servono per la risoluzione del problema; dati di output: sono quelli che vengono comunicati all’esterno come soluzione del problema; dati di lavoro (o dati intermedi): sono quelli che vengono utilizzati durante l’esecuzione del processo risolutivo. PROF. PANTALEO GERMINARIO 46
Espressioni e loro valutazione Una espressione è un costrutto che combina uno o più valori (ad esempio variabili e/o costanti), utilizzando operatori. Le operazioni sono interpretate (valutate) secondo particolari regole di precedenza e di associazione, producendo un valore. L’ordine di precedenza tra operatori può normalmente essere modificato mediante l’utilizzo di parentesi. Ad esempio questa è una espressione: Area = Base * Altezza / 3 In questa espressione: Area, Base e Altezza 3 sono operandi; * e / sono operatori. PROF. PANTALEO GERMINARIO 47
Espressioni e loro valutazione Nel processo di valutazione si stabilisce dapprima l’ordine di esecuzione dei vari operatori, cioè in quale ordine gli operatori presenti devono essere applicati agli operandi dell’espressione, e poi si eseguono le operazioni. Si parla di precedenza degli operatori intendendo che ogni operatore ha la sua priorità e, quindi, può avere o meno precedenza rispetto a un altro operatore. PROF. PANTALEO GERMINARIO 48
La selezione multipla Per risolvere i problemi in cui si opera una scelta tra più di due alternative, in dipendenza del valore assunto da una variabile, è molto utile utilizzare il costrutto di selezione multipla. SELETTOR E Valore 1 Valore 2 Valore 3 Altro valore AZIONE VALORE 1 AZIONE VALORE 2 AZIONE VALORE 3 ALTRIMENTI è il nome della variabile il cui contenuto discrimina la scelta del percorso e sono i possibili valori della variabile o, se nessun valore è verificato, si segue il percorso altrimenti (opzionale). PROF. PANTALEO GERMINARIO 49
La selezione multipla Altra modalità di rappresentazione: PROF. PANTALEO GERMINARIO 50
La selezione multipla Esempio: PROF. PANTALEO GERMINARIO 51
L’algebra booleana nella progr. strutturata All’interno di un costrutto di selezione l’esecutore deve stabilire con esattezza se una condizione risulta vera o falsa e spesso si ritrova davanti a una condizione articolata con operatori logici il cui valore finale è determinato dalle regole dell’algebra di Boole. Per esempio: PROF. PANTALEO GERMINARIO 52
L’algebra booleana nella progr. strutturata Una proposizione è un costrutto linguistico autonomo di senso compiuto, composto per lo meno da un soggetto e da un predicato. Un enunciato è una particolare proposizione che può assumere solo due stati possibili (Vero/Falso, V/F). La verità o falsità di un enunciato sono i valori di verità dell’enunciato. Gli enunciati per i quali si può immediatamente affermare se sono veri o falsi prendono il nome di enunciati semplici (o atomici). PROF. PANTALEO GERMINARIO 53
L’algebra booleana nella progr. strutturata Per esempio, consideriamo le tre frasi seguenti: “Ora il sole splende” “Londra è la capitale d’Italia” “4 è un numero pari”. Queste tre frasi sono enunciati: il primo ha valore Vero se ora il sole effettivamente splende e valore Falso in caso contrario; il secondo ha valore Falso; il terzo ha valore Vero. È facile intuire che un enunciato può essere esclusivamente vero o falso, mai entrambi. PROF. PANTALEO GERMINARIO 54
L’algebra booleana nella progr. strutturata Una combinazione di enunciati legati dagli operatori, detti connettivi logici (AND, OR, NOT,…), prende il nome di enunciato composto (o molecolare). Valutare gli enunciati composti significa associare a ognuno il valore Vero o Falso, partendo dall’analisi degli enunciati semplici che li compongono e applicando le regole dell’algebra di Boole. PROF. PANTALEO GERMINARIO 55
L’algebra booleana nella progr. strutturata Nell’ambito della logica booleana è possibile usare gli operatori relazionali (=, ≠ , , ≤, ≥). PROF. PANTALEO GERMINARIO 56
Il costrutto iterativo definito Nei costrutti iterativi pre o post condizionali l’iterazione dipendeva da una condizione che cambiava nel ciclo. Queste iterazioni prendono il nome di iterazioni indefinite. I costrutti iterativi definiti sono iterazioni in cui il numero di cicli è definito a priori e prendono il nome di iterazioni definite. La struttura iterativa definita (chiamata anche iterativa enumerativa) è un costrutto iterativo derivato da quello precondizionale. PROF. PANTALEO GERMINARIO 57
Il costrutto iterativo definito Permette di ripetere un blocco di istruzioni non in base al valore di verità di una condizione, ma in base al numero di volte che si vuole ripetere il blocco. In questo particolare costrutto iterativo precondizionale la condizione di arresto è indicata dal valore massimo che può raggiungere una variabile, denominata indice, utilizzata come contatore. PROF. PANTALEO GERMINARIO 58
Il costrutto iterativo definito In questa struttura l’, che serve da controllo per la ripetizione, assume inizialmente il valore indicato nella operazione di assegnazione da . Una volta entrati nel ciclo si procede con l’esecuzione del blocco di istruzioni interne al ciclo. L’esecuzione di questo blocco viene ripetuta e a ogni iterazione viene incrementato il valore dell’. Il ciclo continua a essere eseguito fintantoché l’ si mantiene minore o uguale al valore indicato nella espressione condizionale. indice
Il costrutto iterativo definito Nella rappresentazione mediante pseudocodifica, l’iterazione definita è rappresentata da questa sequenza: PER indice
Considerazioni sull’Indice 1. La variabile indice del ciclo iterativo non necessita dell’inizializzazione. 2. La variabile indice può anche decrementare il valore anziché incrementarlo. 3. È possibile stabilire il valore dell’incremento o decremento dell’, in questo caso il cambio del valore dell’indice dipende dal valore del passo indicato. PROF. PANTALEO GERMINARIO 61
Esempio di algoritmo con ciclo iterativo Problema: dati in input 20 numeri, stabilire chi è il numero più grande e mostrarlo in output. Analisi: si devono acquisire 20 numeri dall’utente, utilizzando una variabile temporanea Max che si inizializza a 0, si legge un numero e si confronta con il Max. Se il numero è > Max, allora si aggiorna il valore di Max. Al termine del ciclo si mostra il valore di Max. PROF. PANTALEO GERMINARIO 62
Confronto tra tipologie di iterazioni Sfruttando un esempio di pseudocodifica si può osservare le differenze tra i due tipi di costrutti iterativi. PROF. PANTALEO GERMINARIO 63
Considerazioni sulla condizioni di ciclo La condizione nel ciclo determina il numero di volte in cui sarà eseguito il blocco di istruzioni all’interno. Come abbiamo già visto questa si esprime come segue ed indica il valore massimo che la variabile indice può assumere. indice
Considerazioni sulla condizioni di ciclo L’utilizzo di condizioni strutturate presuppone che si utilizzi una variabile all’interno del ciclo che contribuisca a determinare il numero di iterazioni. In questo caso la variabile assume il ruolo di variabile di escape, mentre la condizione in cui è testata si può chiamare condizione di escape. Esempio di cicli con condizione di escape strutturata: PER index=1; index
Considerazioni sulla condizioni di ciclo Come detto in precedenza, la condizione di escape può essere strutturata ed il suo valore dipende dalla combinazione della variabile indice e da un confronto logico più o meno strutturato. Per esempio: Acquisire 20 numeri e calcolare la somma e la media di questi ma ci si deve fermare se l’utente inserisce un valore negativo. In questo caso la condizione di fine ciclo è: Index=0; Index=0; index++; Dove numLetto è il numero letto in input nel ciclo iterativo. PROF. PANTALEO GERMINARIO 66
Puoi anche leggere