Strutture iterative. Strutture iterative. I cicli in C. Strutture iterative. con i che assume i valori da 0 a 1000
|
|
- Silvano Boni
- 7 anni fa
- Visualizzazioni
Transcript
1 Strutture iterative 2 Strutture iterative Ver. 2.4 Problema: Visualizzare i numeri interi da 0 a 1000 Soluzione printf("0\n"); printf("1\n"); printf("2\n"); printf("3\n"); printf("4\n");... Non è davvero una buona idea ma con le conoscenze attuali non c è alternativa Claudio Fornaro - Corso di programmazione in C Strutture iterative 3 I cicli in C 4 Vorremmo scrivere: Esegui l istruzione: printf("%d\n", i); con i che assume i valori da 0 a 1000 percorso chiuso, detto anello, loop o ciclo V i=0 stampa i i=i+1 i<=1000 F Per tornare indietro si potrebbe utilizzare un istruzione apposita, ma per questioni di chiarezza si utilizzano strutture sintattiche che fanno tornare indietro solo se la condizione di ripetizione è vera Le strutture iterative sono comunemente dette cicli o loop In C i cicli sono controllati da una condizione di permanenza nel ciclo: fintantoché la condizione è vera, si esegue il corpo del ciclo (il di codice da eseguire più volte)
2 Ciclo WHILE Fa eseguire un di codice fintantoché una certa condizione è vera Valuta la condizione prima di eseguire il condizione Se la condizione è inizialmente falsa, il non viene eseguito neppure una volta V F 5 Ciclo WHILE while (condizione) senza il ; Viene valutata la condizione: se è vera esegue il torna su a valutare nuovamente la condizione se è falsa passa ad eseguire le istruzioni successive al La condizione può essere un espressione qualsiasi (come nel costrutto if) 6 Ciclo WHILE Il seguente codice somma i valori introdotti finché non viene dato il valore 0 somma = 0; while (v!= 0) printf("somma: %d", somma); 7 Ciclo FOR Come il ciclo WHILE fa eseguire il fintantoché la condizione è vera for (espr1;condizione;espr2) senza il ; Viene calcolata espr1 (soltanto la prima volta) Viene valutata la condizione: se è vera: esegue il esegue epr2 torna su a valutare nuovamente la condizione altrimenti (se è falsa): passa ad eseguire le istruzioni successive a 8
3 Ciclo FOR Il flow-chart corrispondente è il seguente: epr1 condizione V epr2 F 9 Ciclo FOR La condizione può essere un espressione qualsiasi, se manca viene considerata pari a 1 epr1 e/o epr2 possono mancare (ma i separatori ; devono esserci ugualmente) Stampa i numeri interi da 0 a 1000 for (i=0; i<=1000; i++) printf("%d", i); Una variabile come i nell esempio precedente che tiene conto del numero di iterazioni viene detta variabile di conteggio o indice Notare che, nell esempio, dopo che il ciclo è stato eseguito completamente, i vale Ciclo FOR Il ciclo FOR è un ciclo WHILE riscritto in modo tale da raggruppare tra le parentesi tutto ciò che gestisce l indice: inizializzazione (espr1), controllo (condizione) e aggiornamento (espr2) for (espr1;condizione;espr2) Il ciclo FOR precedente equivale a: epr1; fuori dal corpo del ciclo! while (condizione) epr2; 11 Ciclo FOR Questo ciclo WHILE: i=0; while (i<=1000) printf("%d", i); i++; e questo ciclo FOR: for (i=0; i<=1000; i++) printf("%d", i); sono equivalenti, ma il secondo è più compatto 12
4 La variabile di conteggio Talvolta è conveniente che il nome della variabile di conteggio sia corto per questioni di leggibilità del codice for (i=0; scanf("%d",&v[i])!=eof; i++) tot += v[i]*v[i-1]*v[i+1]; totvaloriletti = i; Qui v[i] viene usata nel corpo del ciclo più volte, quindi è conveniente usare come indice i e non la variabile totvaloriletti che invece viene assegnata alla fine del ciclo La modifica della variabile di conteggio dentro il ciclo for viene considerata pratica da evitare in quanto può rendere il codice complesso 13 Scelta tra ciclo FOR e WHILE Quando il numero di iterazioni è noto a priori (e quindi il ciclo è controllato da un indice), è preferibile (per chiarezza e stilisticamente) utilizzare un ciclo FOR che raggruppa in un punto solo l inizializzazione, il controllo e l aggiornamento dell indice 14 Ciclo DO-WHILE Fa eseguire un di codice fintantoché una certa condizione è vera Valuta la condizione dopo aver eseguito il V condizione Anche se la condizione è inizialmente falsa, il viene eseguito almeno una volta F 15 Ciclo DO-WHILE Nella letteratura questo ciclo viene detto ciclo Repeat-Until (dove però se la condizione è vera si esce dal ciclo: non è di permanenza) do while (condizione); con il ; La condizione può essere un espressione qualsiasi che produce un valore Le graffe sono opzionali, ma consigliabili (proprio con la graffa di chiusura subito prima della keyword while) per distinguere facilmente il ciclo WHILE dal ciclo DO-WHILE 16
5 Ciclo DO-WHILE Somma i valori dati finché non viene introdotto il valore particolare 0 somma = 0; do while (v!= 0); Notare che il valore v viene comunque addizionato a somma (ma in questo esempio non causa problemi: somma uno 0) 17 Scelta tra ciclo WHILE e DO Si può sempre passare da un tipo di ciclo ad un altro modificando (poco) il programma La scelta tra ciclo WHILE e ciclo DO-WHILE è spesso ovvia e questione di preferenze personali 18 Programmazione strutturata 19 Programmazione strutturata 20 Nasce dalla necessità di regolamentare e standardizzare le metodologie di programmazione Un linguaggio strutturato deve avere almeno i seguenti 3 tipi di strutture: La sequenza: ossia la possibilità di definire un di istruzioni (le graffe in C, ma anche il semplice elenco di istruzioni) L alternativa: costrutti di selezione (if e switch) L iterazione: costrutti per ripetere uno stesso di istruzioni (for, while, do-while) Le strutture di un linguaggio strutturato devono avere le seguenti caratteristiche: ogni struttura (compresi i blocchi controllati) deve avere un unico punto di ingresso e un unico punto di uscita (così da non avere altre interazioni con l esterno e poter essere considerata come un unica macro-istruzione) ogni struttura può avere nel controllato altre strutture (di ogni tipo) Un programma è strutturato se usa solo le strutture indicate nei modi indicati sopra Il linguaggio C è strutturato, ma permette anche di scrivere codice non strutturato
6 Programmazione strutturata 21 Break 22 In Linguaggio C si ha programmazione non strutturata quando si usano le istruzioni: goto break continue return multipli in una funzione Quando si richiede una programmazione strutturata le istruzioni precedenti sono tutte vietate Dette istruzioni possono talvolta dare vantaggi anche non marginali per chiarezza e velocità di esecuzione, ma non se ne abusi Per uscire da un ciclo immediatamente, senza aspettare la valutazione della condizione, si può utilizzare l istruz. non strutturata break Dopo il break, l esecuzione continua dalla prima riga successiva al while (condizione) istruzioni... if (condizione_particolare) break; istruzioni... Il break può essere usato per gestire condizioni particolari e infrequenti (non deve essere il metodo normale di terminazione del ciclo) Break Somma fino a 10 valori dati in input. Per introdurre meno valori, introdurre 0 somma = 0; for (i=0; i<10; i++) if (v == 0) break; printf("somma = %d\n",somma); 23 Break La formulazione equivalente strutturata è: esci = NO; somma = 0; for (i=0; i<10 && esci==no; i++) if (v == 0) esci=si; else printf("somma = %d\n",somma); i++ 24
7 Continue 25 Continue 26 Per passare immediatamente all iterazione successiva, si può utilizzare l istruzione non strutturata continue Per effetto dell istruzione continue: vengono saltate tutte le istruzioni dalla continue fino alla parentesi di terminazione del corpo del ciclo se si tratta di un ciclo for, viene eseguita epr2 l esecuzione riprende dalla valutazione della condizione Schema con ciclo while while (condizione) istruzioni... if (condizione_particolare) continue; istruzioni saltate se eseguito continue Continue Schema con ciclo do-while do istruzioni... if (condizione_particolare) continue; istruzioni saltate se eseguito continue while (condizione); 27 Continue Somma i valori dati finché non viene introdotto il valore 0, ignorando i negativi. somma = 0; do if (v < 0) continue; while(v!= 0); 28
8 Continue 29 Lettura di valori 30 La formulazione equivalente strutturata è in questo caso più chiara: somma = 0; do if (v >= 0) while(v!= 0); Quando non si può sapere a priori il numero di valori che verranno introdotti dall utente si deve trovare un modo per stabilire la fine dell input: Si chiede all utente quanti valori verranno introdotti Si prevede un valore particolare che quando introdotto indica la fine dell input, tale valore è detto sentinella (es. lo 0 degli esempi precedenti) Si chiede all utente di segnalare la fine dell input mediante l immissione di un codice di controllo detto End Of File (EOF) che viene riconosciuto e segnalato dalle stesse funzioni di input (mentre la sentinella viene riconosciuta dopo l input) Lettura di valori 31 Lettura di valori 32 La costante EOF è un valore intero definito in stdio.h (in genere vale 1) Viene prodotto dall utente premendo: Windows Control-Z e poi INVIO Linu/Uni Control-D Le funzioni scanf e getchar restituiscono EOF quando l utente indica la fine dell input In modo analogo gets restituisce NULL N.B. Le combinazioni di tasti Control-Z e Control-D spesso vengono scritte ^Z e ^D, ma NON si ottengono con il carattere ^ : si deve invece premere il tasto Control e poi la lettera di lettura di sequenza di lunghezza ignota di valori dalla tastiera, la lettura termina con l introduzione di un EOF printf("terminare con EOF\n"); while (scanf("%d", &a)!= EOF) somma += a; printf("somma=%d\n", somma); di input: ^Z Somma=68
9 Cicli annidati Un ciclo può essere collocato (completamente) nel corpo di un altro ciclo In genere, nel caso di cicli FOR ogni ciclo deve avere una variabile di conteggio diversa Il ciclo esterno controlla quello interno Il ciclo interno ricomincia sempre da capo (ad esempio l inizializzazione dell indice di un ciclo FOR interno ad un altro ciclo viene eseguita ogni volta) 33 Cicli annidati for (i=1; i<=7; i+=3) for (j=2; j<5; j++) printf("%d,%d ", i, j); printf("\n"); printf("%d,%d ", i, j); produce il seguente output: Ciclo esterno 1,2 1,3 1,4 Blocco ciclo 4,2 4,3 4,4 esterno 7,2 7,3 7,4 10,5 notare i valori di uscita 34 Ciclo interno Blocco ciclo interno Uscita da cicli annidati Nel caso di cicli annidati, break fa uscire solo da un livello; per uscire contemporaneamente da tutti i cicli annidati si può usare una goto for (i=0; i<10; i++) for (j=0; j<10; j++) if (v == 0) goto fuori; fuori: printf("somma = %d\n",somma); 35 Uscita da cicli annidati Per evitare di avere codice non strutturato e a scapito di un po di efficienza si può scrivere: esci = NO; for (i=0; i<10 && esci==no; i++) for (j=0; j<10 && esci==no; j++) if (v == 0) esci = SI; else printf("somma = %d\n",somma); 36
10 Etichette 37 Salti 38 Una label (etichetta) viene usata per dare un nome ad una riga, viene in genere posizionata all inizio della riga stessa senza indentazione ed è terminata da un carattere :, esempio: fuori: Tutte le label devono avere nomi diversi (stesse regole sintattiche degli identificatori) Una label è visibile in ogni punto della funzione dove è definita, ma non al di fuori di essa Un salto fa continuare l esecuzione di un programma da un altro punto del codice Il salto incondizionato goto ha sintassi: goto label; label senza il carattere : Quando viene eseguita, il programma salta alla riga con quella label e continua da lì Una label può essere collocata in una riga precedente o successiva quella con il goto (salto indietro o avanti), ma nell uso accettato sarà sempre avanti e in posizioni ben precise Una label può essere usata da più goto, ma nell uso accettato non si presenta mai il caso Salti 39 Salti 40 L utilizzo di goto produce sempre codice non strutturato e quindi potenzialmente più difficile da comprendere e da manutenere I vecchi linguaggi di programmazione non disponevano di costrutti strutturati e l uso del goto era indispensabile, i frequentissimi rimandi da una parte all altra del codice lo rendevano molto intricato ( spaghetti code ) Se il linguaggio dispone di adeguati costrutti strutturati si può sempre evitare di usare i goto. Il linguaggio C ha questi costrutti. In alcuni (pochi) casi il goto può essere utile per questioni di efficienza e chiarezza La liceità di utilizzo del goto è oggetto di diatribe, con ferventi e autorevoli sostenitori in entrambe le parti (Dijkstra vs. Knuth) Con il goto sono condannati anche break, continue e return multipli
11 Salti E utile l uso del goto per uscire da due o più cicli annidati, in questo caso l etichetta DEVE essere collocata subito sotto il corpo del ciclo più esterno (senza istruzioni intermedie) ed è preferibile che sia allineata verticalmente con la keyword del ciclo più esterno da cui uscire for ( Allineati verticalmente for ( if (condizione speciale) goto fuori; fuori: Etichetta subito sotto il corpo del ciclo più esterno 41 Salti Si eviti il goto in tutti gli altri casi Alcuni linguaggi moderni (es. Java) non hanno goto, ma dispongono di costrutti aggiuntivi (es. break con etichetta) proprio per uscire da cicli annidati 42 Esercizi 1. Scrivere un programma che calcoli la media (con parte frazionaria) di 100 valori introdotti dalla tastiera. 2. Scrivere un programma che chieda quanti siano i valori che verranno introdotti dalla tastiera, li chieda tutti e ne stampi la somma e la media. 3. Scrivere un programma che calcoli la media di tutti i valori introdotti dalla tastiera finché non ne viene introdotto uno non compreso tra 18 e 30, ad esempio 9999 (provare proprio questo valore!). La visualizzazione della media deve avvenire solo alla fine (ossia non ogni volta che un valore viene introdotto). 43 Esercizi 4. Scrivere un programma che richieda N numeri da tastiera e ne calcoli il valore massimo. 5. Scrivere un programma che richieda N numeri da tastiera e ne calcoli il valore massimo, il valore minimo, la somma e la media. 6. Si scriva un programma che calcoli il fattoriale di un numero intero N dato dalla tastiera. Si ricordi che il fattoriale di un numero n (simbolo n!) viene calcolato con la seguente formula: n! = n (n 1) (n 2)
12 Esercizi 7. Scrivere un programma che calcola i primi N numeri di Fibonacci, con N introdotto dalla tastiera. I numeri di Fibonacci sono una sequenza di valori interi che inizia con i due valori fissi 1 e 1 e ogni successivo valore è la somma dei due precedenti. Ad esempio i primi 10 numeri di Fibonacci sono: Scrivere un programma che calcoli i primi numeri di Fibonacci minori o uguali a N, con N introdotto dalla tastiera. Ad esempio i primi numeri di Fibonacci minori o uguali a 10 sono: Esercizi 9. Si scriva un programma per calcolare e mediante il suo sviluppo in serie: e 1 1! 2 2! ! Ogni frazione aggiunge precisione al risultato, per cui conviene usare valori di n adeguatamente elevati, ad esempio compresi tra 30 e 40. Si verifichi che i risultati calcolati in questo modo siano coerenti con quelli forniti dalla funzione intrinseca ep calcolando la differenza dei valori. 46 Esercizi 10. Si scriva un programma dove il calcolatore determini casualmente un numero intero compreso tra 0 e 99 e chieda all utente di trovare il numero stesso. Ad ogni input dell utente il calcolatore risponde con troppo alto o troppo basso, finché non viene trovato il valore corretto. Per generare valori casuali si utilizza la funzione rand. 11. Si scriva un programma per calcolare la radice quadrata mediante la formula iterativa di Newton: i1 1 2 i A i 47 Esercizi (Continuazione) Dato il valore A, se ne vuole calcolare la radice quadrata. La formula data calcola valori di sempre più precisi. Inizialmente si considera i=0 = A, ricavando un valore 1 che approssima molto grossolanamente il valore della radice quadrata. Si riinserisce 1 nella formula (al posto di i ) ottenendo un 2 che è un approssimazione migliore della precedente. Si continua in questo modo finché il risultato non varia più (cioè i = i +1 ). 48
PROGRAMMAZIONE STRUTTURATA
PROGRAMMAZIONE STRUTTURATA Programmazione strutturata 2 La programmazione strutturata nasce come proposta per regolamentare e standardizzare le metodologie di programmazione (Dijkstra, 1965) Obiettivo:
DettagliErrori frequenti Cicli iterativi Array. Cicli e array. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A.
Cicli e array Laboratorio di Programmazione I Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7 Lez. 8 - Introduzione all ambiente
DettagliLinguaggio 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
Dettagli6 - 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
DettagliUn esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt);
Un esempio per iniziare Il controllo del programma in C DD Cap.3 pp.91-130 /* calcolo di 8!*/ #include #define C 8 int main() int i=1; int fatt=1; while (i
DettagliIstruzioni 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
DettagliLinguaggio C - le strutture di controllo: sequenza, selezione, iterazione
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione
DettagliLe strutture di controllo in C++
Le strutture di controllo in C++ Docente: Ing. Edoardo Fusella Dipartimento di Ingegneria Elettrica e Tecnologie dell Informazione Via Claudio 21, 4 piano laboratorio SECLAB Università degli Studi di Napoli
DettagliLe Strutture di controllo Del Linguaggio C. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni
Le Strutture di controllo Del Linguaggio C Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni STRUTTURE DI CONTROLLO PRIMITIVE SEQUENZA SELEZIONE (o scelta logica) ITERAZIONE NON PRIMITIVE
DettagliUnità 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
Dettagliprint((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
DettagliIstruzioni di ripetizione in Java 1
in Java Corso di laurea in Informatica Le istruzioni di ripetizione consentono di eseguire molte volte la stessa Si chiamano anche cicli Come le istruzioni condizionali, i cicli sono controllati da espressioni
DettagliLaboratorio di Programmazione Lezione 2. Cristian Del Fabbro
Laboratorio di Programmazione Lezione 2 Cristian Del Fabbro Prossima lezione GIOVEDÌ 29 OTTOBRE 14:00 Input da tastiera package input; import java.io.*; public class Input { public static void main(string[]
DettagliProblema. Vettori e matrici. Vettori. Vettori
e matrici Ver. 2.4 2010 - Claudio Fornaro - Corso di programmazione in C Problema Si vuole un programma che chieda 10 numeri dalla tastiera e li visualizzi dall ultimo al primo Soluzione attuale (con le
DettagliIstruzioni di ciclo. Unità 4. Corso di Laboratorio di Informatica Ingegneria Clinica BCLR. Domenico Daniele Bloisi
Corso di Ingegneria Clinica BCLR Domenico Daniele Bloisi Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento di Ingegneria Informatica, Automatica e Gestionale Antonio Ruberti Via Ariosto
DettagliPROGRAMMAZIONE: Le strutture di controllo
PROGRAMMAZIONE: Le strutture di controllo Prof. Enrico Terrone A. S: 2008/09 Le tre modalità La modalità basilare di esecuzione di un programma è la sequenza: le istruzioni vengono eseguite una dopo l
DettagliIstruzioni iterative. Istruzioni iterative
Istruzioni iterative Esempio: Leggere 5 interi, calcolarne la somma e stamparli. Variante non accettabile: 5 variabili, 5 istruzioni di lettura, 5... int i1, i2, i3, i4, i5; scanf("%d", &i1):... scanf("%d",
DettagliIL PRIMO PROGRAMMA IN C
IL PRIMO PROGRAMMA IN C LO SCOPO Si vuole scrivere un programma in linguaggio C che chieda all utente di introdurre da tastiera due numeri interi e visualizzi il valore della loro somma sul video SOLUZIONE
DettagliJavaScript Core Language. Prof. Francesco Accarino IIS Atiero Spinelli Sesto San Giovanni via leopardi 132
JavaScript Core Language Prof. Francesco Accarino IIS Atiero Spinelli Sesto San Giovanni via leopardi 132 Condizioni L utilizzo di operatori relazionali e logici consente di formulare delle condizioni
DettagliCorso di Fondamenti di Informatica
Corso di Fondamenti di Informatica Le classi di istruzioni in C++ 1 Le classi di istruzioni in C++ SEQUENZIALI Statement semplice Statement composto CONDIZIONALI if < expr.> else switch case
Dettagli1 Esercizi in pseudocodice
Questa dispensa propone esercizi sulla scrittura di algoritmi in un linguaggio semiformale, utile all acquisizione delle abilità essenziali per implementare algoritmi in qualsiasi linguaggio di programmazione.
DettagliIntroduzione alla programmazione Esercizi risolti
Esercizi risolti 1 Esercizio Si determini se il diagramma di flusso rappresentato in Figura 1 è strutturato. A B C D F E Figura 1: Diagramma di flusso strutturato? Soluzione Per determinare se il diagramma
DettagliStrutture di controllo iterative
Capitolo 4 Strutture di controllo iterative ANDREA GINI Le strutture di controllo iterative permettono di impostare la ripetizione di un insieme di istruzioni per un determinato numero di volte. In Java
DettagliLezione 7: La Formalizzazione degli Algoritmi - Strutture di Controllo e Selettive La Programmazione Strutturata (3 p) Giovedì 21 Ottobre 2010
Università di Salerno Corso di FONDAMENTI DI INFORMATICA Corso di Laurea Ingegneria Corso B Docente : Ing. Anno Accademico 2010-2011 Lezione 7: La Formalizzazione degli Algoritmi - Strutture di Controllo
DettagliLinguaggio C: le funzioni. Introduzione e sintassi
ISIS "Guido Tassinari" di Pozzuoli Indirizzo Informatico - Articolazione Informatica Informatica Prof. A.S. 2012/2013 Linguaggio C: le funzioni. Introduzione e sintassi 21/10/2012 Introduzione Spesso alcuni
DettagliStrutture di Controllo
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
DettagliSviluppo di programmi. E ora, finalmente. Si comincia! 1. Analizzare il problema. 2. Progettare una soluzione (1) E necessario capire:
Sviluppo di programmi Per scrivere un programma C corretto bisogna: E ora, finalmente Si comincia! DD Cap. pp.4974 Analizzare il problema (input, output, casi estremali) 2. Progettare una soluzione (algoritmo)
DettagliEsercizi di programmazione in linguaggio C - Costrutto iterazione
Esercizi di programmazione in linguaggio C - Costrutto iterazione prof. Roberto uligni 1. [potenze1] Scrivere un programma che visualizzi il valore di tutte le prime n potenze di 2 con n richiesto all'utente
Dettagliwhile Istruzione while Cicli ed iterazioni Istruzioni di ripetizione in C Comportamento del while
icli ed iterazioni Sintassi dell istruzione Esercizio Media aritmetica Esecuzione del programma icli while annidati Esercizio Quadrato 2 Istruzioni di ripetizione in Nel linguaggio esistono tre distinte
DettagliAlgoritmi e soluzione di problemi
Algoritmi e soluzione di problemi Dato un problema devo trovare una soluzione. Esempi: effettuare una telefonata calcolare l area di un trapezio L algoritmo è la sequenza di operazioni (istruzioni, azioni)
DettagliISTRUZIONI 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
DettagliInformatica! Appunti dal laboratorio 1!
Informatica! Appunti dal laboratorio 1! Sistema Operativo! Windows 7, Windows 8, Mac OS X, Linux, Debian, Red Hat, etc etc! Il sistema operativo è un programma che serve a gestire TUTTE le risorse presenti
DettagliUn 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
DettagliFondamenti di Programmazione. Strutture di controllo
Fondamenti di Programmazione Strutture di controllo 1! Controllo del flusso! n Flusso di esecuzione: ordine in cui le istruzioni di un programma sono eseguite! n Salvo contrordini, è in sequenza! n Due
DettagliEsercitazione 4. Comandi iterativi for, while, do-while
Esercitazione 4 Comandi iterativi for, while, do-while Comando for for (istr1; cond; istr2) istr3; Le istruzioni vengono eseguite nel seguente ordine: 1) esegui istr1 2) se cond è vera vai al passo 3 altrimenti
DettagliFunzioni, Stack e Visibilità delle Variabili in C
Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7
DettagliElementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I
Lezione 4 Elementi lessicali e espressioni logiche Matricole 2-3 Elementi lessicali il linguaggio C ha un suo vocabolario di base i cui elementi sono detti token esistono 6 tipi di token: parole chiave
DettagliCostrutti condizionali e iterativi
Costrutti condizionali e iterativi Introduction to Fortran 90 Paolo Ramieri, CINECA Aprile 2014 Strutture di controllo Le strutture di controllo permettono di alterare la sequenza di esecuzione delle istruzioni
DettagliCorso di Fondamenti di Informatica Classi di istruzioni 2
Corso di Informatica Classi di istruzioni 2 Anno Accademico 2010/2011 Francesco Tortorella Strutture di controllo Caratteristica essenziale degli algoritmi è la possibilità di decidere le operazioni da
DettagliProgrammazione strutturata
Corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Gestionale (L-Z) 3. (testo di riferimento: Bellini-Guidi) Ing. Michele Ruta 1di 29 Linguaggi di programmazione Un programma è un algoritmo
DettagliEsercitazione 6. Array
Esercitazione 6 Array Arrays Array (o tabella o vettore): è una variabile strutturata in cui è possibile memorizzare un numero fissato di valori tutti dello stesso tipo. Esempio int a[6]; /* dichiarazione
DettagliESERCIZI DI PROGRAMMAZIONE DA SVOLGERE INDIVIDUALMENTE - parte 1 -
ESERCIZI DI PROGRAMMAZIONE DA SVOLGERE INDIVIDUALMENTE - parte 1 - Elementi di Informatica e Programmazione Università di Brescia 1 1: ESERCIZI DI BASE - di livello di difficoltà inferiore rispetto all
DettagliUNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Matlab: esempi ed esercizi
UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA Matlab: esempi ed esercizi Sommario e obiettivi Sommario Esempi di implementazioni Matlab di semplici algoritmi Analisi di codici Matlab Obiettivi
DettagliCos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia
Programmazione Un programma descrive al computer, in estremo dettaglio, la sequenza di passi necessari a svolgere un particolare compito L attività di progettare e realizzare un programma è detta programmazione
DettagliLe etichette nei programmi. Istruzioni di branch: beq. Istruzioni di branch: bne. Istruzioni di jump: j
L insieme delle istruzioni (2) Architetture dei Calcolatori (lettere A-I) Istruzioni per operazioni logiche: shift Shift (traslazione) dei bit di una parola a destra o sinistra sll (shift left logical):
DettagliDiagrammi a blocchi 1
Diagrammi a blocchi 1 Sommario Diagrammi di flusso, o a blocchi. Analisi strutturata. Esercizi. 2 Diagrammi a blocchi È un linguaggio formale di tipo grafico per rappresentare gli algoritmi. Attraverso
DettagliFondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011
Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Istruzioni di controllo Iterative Condizionali Algoritmi e Diagrammi di flusso Esercizi 28/03/2011 2 Istruzioni iterative while do
DettagliAlgoritmi 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 17 Marzo 2015 Compitini Compitini di INFO: 24 Aprile 2015 4.15pm @ C.G.1 (Ed. 9) 21
DettagliIterazione 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
DettagliUniversità di Roma Tor Vergata L6-1. iterazione: struttura di controllo per ripetere più volte uno stesso comando
Università di Roma Tor Vergata L6-1 iterazione: struttura di controllo per ripetere più volte uno stesso comando comandi iterativi C++: while, do-while, for while: sintassi while (espressione) comando;
DettagliDiagrammi a blocchi 1
Diagrammi a blocchi 1 Sommario Diagrammi di flusso, o a blocchi." Analisi strutturata." Esercizi. 2 Diagrammi a blocchi È un linguaggio formale di tipo grafico per rappresentare gli algoritmi." Attraverso
DettagliUn tipico esempio è la definizione del fattoriale n! di un numero n, la cui definizione è la seguente:
Pag 29 4) La ricorsione 4.1 Funzioni matematiche ricorsive Partiamo da un concetto ben noto, quello delle funzioni matematiche ricorsive. Una funzione matematica è detta ricorsiva quando la sua definizione
DettagliSistemi Web per il turismo - lezione 3 -
Sistemi Web per il turismo - lezione 3 - Software Si definisce software il complesso di comandi che fanno eseguire al computer delle operazioni. Il termine si contrappone ad hardware, che invece designa
DettagliUNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Introduzione alla programmazione
UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA Introduzione alla programmazione Riferimenti Emanuele Goldoni Laboratorio Reti (MN) Tel. 0376-286234 E-mail: emanuele.goldoni@unipv.it Slide sul sito
DettagliRAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO
RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO Rappresentazione degli algoritmi Problema Algoritmo Algoritmo descritto con una qualche notazione Programma Defne del procedimento
DettagliIntroduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software
Introduzione alla programmazione Algoritmi e diagrammi di flusso F. Corno, A. Lioy, M. Rebaudengo Sviluppo del software problema idea (soluzione) algoritmo (soluzione formale) programma (traduzione dell
DettagliIndice. Prefazione. 3 Oggetti e Java 53
Prefazione xv 1 Architettura dei calcolatori 1 1.1 Calcolatori e applicazioni 1 1.1.1 Alcuni esempi di applicazioni 3 1.1.2 Applicazioni e interfacce 4 1.2 Architettura dei calcolatori 7 1.2.1 Hardware
DettagliMatlab. Istruzioni condizionali, cicli for e cicli while.
Matlab. Istruzioni condizionali, cicli for e cicli while. Alvise Sommariva Università degli Studi di Padova Dipartimento di Matematica 17 marzo 2016 Alvise Sommariva Introduzione 1/ 18 Introduzione Il
DettagliStrutture di controllo e cicli
Appendice B Strutture di controllo e cicli Le condizioni I cicli Le interruzioni A p p e n d i c e B Il microcontrollore della scheda Arduino, opportunamente programmato, è in grado di prendere decisioni
DettagliLinguaggio C: le funzioni. Introduzione e sintassi
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C: le funzioni. Introduzione e sintassi La presente dispensa
DettagliEsercitazione 3. Espressioni booleane I comandi if-else e while
Esercitazione 3 Espressioni booleane I comandi if-else e while Esercizio Si consideri la seguente istruzione: if (C1) if (C2) S1; else S2; A quali delle seguenti interpretazioni corrisponde? if (C1) if
DettagliCaratteri e stringhe
Caratteri e stringhe Caratteri Dato che un computer può memorizzare esclusivamente sequenze di bit, per memorizzare un carattere (e quindi testi) è necessario stabilire una convenzione che associa a un
DettagliFormalismi per la descrizione di algoritmi
Formalismi per la descrizione di algoritmi Per descrivere in passi di un algoritmo bisogna essere precisi e non ambigui Il linguaggio naturale degli esseri umani si presta a interpret non univoche Si usano
Dettagliunità didattica 3 Le strutture condizionali e le strutture iterative
unità didattica 3 Le strutture condizionali e le strutture iterative 1. La struttura condizionale Il Pascal prevede la codifica della struttura condizionale (indicata anche con il nome di struttura dell
DettagliVariabili. Unità 2. 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
DettagliSommario PREFAZIONE...XI CAPITOLO 1: INTRODUZIONE AI COMPUTER, A INTERNET E AL WEB... 1 CAPITOLO 2: INTRODUZIONE ALLA PROGRAMMAZIONE IN C...
Sommario PREFAZIONE...XI Aggiornamenti e novità... xi Lo scopo di questo libro... xii Diagramma delle dipendenze... xii La metodologia di insegnamento... xiii Panoramica sul libro... xvi Ringraziamenti...
DettagliESERCIZI DI PROGRAMMAZIONE. - condizionali e cicli -
ESERCIZI DI PROGRAMMAZIONE - condizionali e cicli - Elementi di Informatica e Programmazione Università di Brescia 1 Esercizio 1: dal tema d esame ING-INF del 28 gennaio 2009 Si sviluppi un programma in
Dettagli$QDOLVLGHOSURJUDPPDTXDGUDWR
$QDOLVLGHOSURJUDPPDTXDGUDWR /* */ calcolare l area del quadrato #include main(){ int lato, area; printf("lato "); scanf("%d", &lato); if(lato < 0) printf("errore nei dati \n"); else { area =
DettagliSequenze di controllo C:
Sequenze di controllo C:! sequenza! if-else! while! do-while! for!break!switch 1 Sequenza Una sequenza di istruzioni è racchiusa sempre tra parentesi graffe. Per esempio: leggere e sommare due numeri scanf(a);
DettagliLinguaggio C Struttura dei programmi
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C Struttura dei programmi 2001 Pier Luca Montessoro - Davide
DettagliDebug di un programma
Debug di un programma Col termine Debug si intende una fase di sviluppo del software, nella quale si cerca di eliminare gli errori dal programma Due tipi di errori: Errori sintattici, rilevati sempre dal
DettagliProgrammare in C. Esempio: Algoritmo del Risveglio
MASTER Information Technology Excellence Road (I.T.E.R.) Programmare in C (strutture di controllo) Maurizio Palesi Salvatore Serrano Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 1
DettagliAlgoritmi e dintorni: La radice quadrata Prof. Ettore Limoli. Formule iterative
Algoritmi e dintorni: La radice quadrata Prof. Ettore Limoli Formule iterative L algoritmo che, comunemente, viene presentato a scuola per l estrazione della radice quadrata è alquanto laborioso e di scarsa
DettagliRealizzare un programma che legga da input tre numeri interi e stampi a video la loro somma e la media.
Esercizio 1 Realizzare un programma che legga da input tre numeri interi e stampi a video la loro somma e la media. #include Esercizio 1 - Soluzione int main() int num1, num2, num3, somma; float
Dettagli5 - Istruzioni condizionali
5 - Istruzioni condizionali Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it
DettagliIntroduzione al C. Introduzione. Linguaggio ad alto livello. Struttura di un programma C
Introduzione 2 Introduzione al C Linguaggio di programmazione ad alto livello (HLL) Sviluppato negli anni 70 (C standard ANSI) Molto diffuso e adatto ad un ampio spettro di applicazioni: Scientifiche Gestionali
Dettagliin termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico
Click to edit Algoritmo Master title style algoritmo: un insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce un risultato e si arresta in un tempo finito
DettagliAlgebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche
Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono
Dettaglilinguaggio di programmazione e programma
I/O bus CPU memoria elementi di Sistemi Informatici il segnale digitale: conversione analogico-numerica esempi di supporti di memorizzazione dell informazione computer: definizione e struttura (modello
DettagliProblemi, algoritmi e oggetti
Fondamenti di informatica Oggetti e Java Luca Cabibbo Capitolo 5 Marzo 2007 1 Fondamenti di informatica: Oggetti e Jav Contenuti... Problemi e algoritmi comprensione del problema identificazione di un
DettagliLezione 6. Visibilità degli identificatori e tempo di vita degli oggetti
Lezione 6 Visibilità degli identificatori e tempo di vita degli oggetti Programmazione I Paolo Valente - 2009/2010 Ripasso dichiarazioni oggetti Finora abbiamo scritto le dichiarazioni di variabili e costanti
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Sintassi e Semantica: Convenzioni di Stile versione 1.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi
DettagliLe basi del linguaggio Java
Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 10 Le basi del linguaggio Java Aprile 2010 Le basi del linguaggio Java 1 Prerequisiti Nozioni generali sulla sintassi e semantica del
DettagliInput/Output di numeri
Input/Output di numeri I/O di numeri Per utilizzare le funzioni di I/O occorre include il file di intestazione (o file header) stdio.h utilizzando all inizio del sorgente la direttiva #include
DettagliProgrammare è un arte
Programmare è un arte Si tratta di mettere insieme tanti piccoli elementi nel migliore dei modi possibile per ottenere un risultato che soddisfi le specifiche Dato un problema, ci sono virtualmente infiniti
Dettagli7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari
7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa
DettagliSviluppare un programma in FORTRAN
Sviluppare un programma in FORTRAN Scrivere il file sorgente Editor di testo (emacs, vi, notepad, etc) Compilare Compilatore (ifort, gfortran, etc) Eseguire il programma Riga di comando, doppio click,
DettagliERRATA CORRIGE. void SvuotaBuffer(void); void SvuotaBuffer(void) { if(getchar()!=10) {svuotabuffer();} }
ERRATA CORRIGE Pulizia del buffer di input: come fare? (1) Dopo aver richiamato getchar() per prelevare un carattere dal buffer di input, inseriamo una seconda chiamata a getchar(), senza assegnare il
DettagliArray Tipi di dato semplici e strutturati strutturati array elementi omogenei numero d ordine indice lunghezza dimensione
Array Tipi di dato semplici e strutturati i tipi di dato visti finora erano tutti semplici: int, char, float,... i dati manipolati sono spesso complessi (o strutturati) con componenti elementari o strutturate
DettagliIl linguaggio C. Il controllo di flusso. La selezione condizionale L istruzione switch I cicli Le istruzioni break, continue, goto
Il linguaggio C Il controllo di flusso La selezione condizionale L istruzione switch I cicli Le istruzioni break, continue, goto 1 Il controllo di flusso 2 Il controllo di flusso Le istruzioni di controllo
DettagliIl generatore di numeri casuali
Il generatore di numeri casuali file di libreria: stdlib.h int rand(void) La funzione restituisce un numero casuale di tipo intero compreso tra 0 e RAND_MAX (estremi compresi) Esempio: scriviamo un programma
DettagliEsercizi Programmazione I
Esercizi Programmazione I 9 Novembre 201 Esercizio 1 Valutare e dare il tipo delle seguenti espressioni condizionali. 1 char a= a, b= b ; // a ha v a l o r e decimale 97 2 i n t i= 1, j= 2 ; 3 double x=
DettagliEspressioni semplici e condizionali
LIA - DEIS - Facoltà di Ingegneria - Università di Bologna Elementi di informatica L Corso di laurea in Ingegneria Chimica - Anno Accademico 2007-2008 Espressioni semplici e condizionali Esercizio 1 Progettare
DettagliProgramma 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
DettagliStatements: blocchi di istruzioni
Statements: blocchi di istruzioni Andrea Passerini passerini@disi.unitn.it Informatica Statements Descrizione Uno statement è un blocco di istruzioni semplici consistono di una singola riga. I tipi visti
DettagliSommario. Note alla traduzione... xix
Sommario Prefazione... xv L utilizzo del linguaggio C per insegnare a sviluppare programmi...xv Puntatori e organizzazione del testo...xvi Concetti di ingegneria del software...xvi Aspetti pedagogici...xvii
DettagliDefinizione di metodi in Java
Definizione di metodi in Java Un metodo in Java definisce un operazione ad alto livello (sottoprogramma) che consente di manipolare dati e oggetti. Durante la computazione effettuata da un programma, un
DettagliVARIABILI, ASSEGNAZIONE, DECISIONI
LEZIONE-TSQL-03 PROGRAMMAZIONE (VER02) PAG. 1 / 6 LEZIONE-TSQL-03 PROGRAMMAZIONE (VER02) T-SQL PROGRAMMAZIONE PARTE TERZA VARIABILI, ASSEGNAZIONE, DECISIONI Tratto da Gregory A. Larsen, http://www.databasejournal.com/features/mssql/article.php/3087431/t-sql-programming-part-1---defining-variables-and-if-logic.htm
DettagliIndovina la lettera...
Indovina la lettera... La lezione di oggi consiste nel preparare un programma che chiede all'utente di indovinare quale sia il carattere generato dal programma stesso in modo casuale. Il numero totale
DettagliESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2008/2009. formalizzazione degli algoritmi in linguaggio C
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