Linguaggio C++ 5. Strutture cicliche

Documenti analoghi
Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica

Esercizi di programmazione in C

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

Creare una funzione float square(float x). La funzione deve restituire il quadrato del parametro x.

PROGRAMMA DI SCIENZE E TECNOLOGIE APPLICATE 2015/2016 Classe 2ª Sez. C Tecnologico

DAL DIAGRAMMA AL CODICE

La selezione binaria

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

Sistemi Web per il turismo - lezione 3 -

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

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

Informatica Teorica. Macchine a registri

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

ESERCIZIO 1 (Definizione funzioni passaggio parametri per copia)

Unità B3 Strutture di controllo

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

Libreria standard Java possiede un enorme libreria di classi standard organizzata in vari package che raccolgono le classi secondo un organizzazione

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

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

Sistemi Operativi Anno Accademico 2011/2012. Segnali: Interrupt software per la gestione di eventi asincroni

Generalità sugli algoritmi

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

Corso sul linguaggio Java

Liceo Marie Curie (Meda) Scientifico Classico Linguistico PROGRAMMAZIONE DISCIPLINARE PER COMPETENZE

Prova Scritta del 19/07/10

ESERCIZI DI PROGRAMMAZIONE C/C++ per le classi terza

Descrizione di un algoritmo

Istruzioni per il controllo di ciclo - ciclo a condizione generica

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

Input/output in C e in C++

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

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

3. La sintassi di Java

Laboratorio di Informatica Lezione 2

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti

DAL PROBLEMA ALL'ALGORITMO AL PROGRAMMA SCRITTO IN Come. Scopo principale dell informatica è risolvere problemi con i calcolatori.

Introduzione al MATLAB c Parte 2

Gli algoritmi: definizioni e proprietà

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

SOMMARIO INTRODUZIONE...XV CAPITOLO 1: PRESENTAZIONE...1 CAPITOLO 2: FONDAMENTI DI JAVA...39

Linguaggio C++ Uso ambiente Dev C++ con creazione di progetto con scelta Basic --> Empty Project

SOLUZIONE ESERCIZIO 1

Nozione di algoritmo. Gabriella Trucco

Polinomio di secondo grado: Calcolo delle soluzioni di una equazione di secondo grado: import GraphicIO.*; public class Polinomio2 {

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

Arduino: Programmazione

Ricerca sequenziale di un elemento in un vettore

4 Le liste collegate 4.0. Le liste collegate. 4 Le liste collegate Rappresentazione di liste 4.1 Rappresentazione di liste

Algebra Booleana ed Espressioni Booleane

PARTE III MACCHINE A REGISTRI

10 - Programmare con gli Array

APPUNTI SUL LINGUAGGIO DI PROGRAMMAZIONE PASCAL

UD4 - MATLAB. M-file. Efficienza degli algoritmi. Formati d uscita

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

Ricerche, ordinamenti e fusioni. 5.1 Introduzione. 5.2 Ricerca completa

STRUTTURE (O COSTRUTTI) DI CONTROLLO

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

ALGORITMI 1. GLI ALGORITMI 2. IL LINGUAGGIO DI PROGETTO

Files in C++ Fondamenti di Informatica. R. Basili. a.a

Esercitazione Informatica I AA Nicola Paoletti

Un esempio di applicazione della programmazione lineare intera all ingegneria del software: stima del worst-case execution time di un programma

LICEO SCIENTIFICO "LEONARDO DA VINCI" - RC PROGRAMMA DI INFORMATICA A.S. 2014/15 - CLASSE: I Q - Indirizzo Scienze applicate Prof Miritello Rita

Laboratorio di Programmazione Lezione 1. Cristian Del Fabbro

LINGUAGGI DI PROGRAMMAZIONE

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

Processo di risoluzione di un problema ingegneristico. Processo di risoluzione di un problema ingegneristico

Matematica - SMID : Programmazione Febbraio 2009 FOGLIO RISPOSTE

2) FILE BINARI: è una sequenza di byte avente una corrispondenza uno a uno con la sequenza ricevuta dal dispositivo esterno.

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a prof.

Lab 04 Istruzioni, cicli e array"

Tipi elementari, costanti. Tipi di dati. VALORI: un insieme dei valori del tipo OPERAZIONI: per operare su tali valori. Tipi. intero reale carattere

Appunti di Sistemi Elettronici

Linguaggio C - Funzioni

Cenni su algoritmi, diagrammi di flusso, strutture di controllo

Lezione 8. La macchina universale

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

GUIDA BASE DI PASCAL

Informatica 3. Informatica 3. LEZIONE 6: Il controllo dell esecuzione. Lezione 6 - Modulo 1. Errori durante l esecuzione. Il controllo dell esecuzione

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

AREA RETTANGOLO LIRE IN EURO

Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo

Syllabus: argomenti di Matematica delle prove di valutazione

NUMERI COMPLESSI. Test di autovalutazione

Fondamenti di Informatica Ingegneria Clinica Lezione 19/10/2009. Prof. Raffaele Nicolussi

BOZZA. cin per la comunicazione dal dispositivo di input standard, la tastiera, al programma (stream di input standard)

Caricare un numero n float, calcolare e stampare il quadrato e il cubo di n. Diagramma di flusso

Costruzione di Siti Web con PHP e MySQL. Lezione 5: Cicli, Funzioni, Operazioni con Stringhe e Date

Le stringhe. Le stringhe

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica

Primi programmi in C

Corso Programmazione 1 Capitolo 01: Concetti Elementari

Concetti chiave. Struct. Variabili strutturate: il tipo struct Elementi di una struttura typedef e struct Array di strutture

RICORSIONE - schema ricorsivo (o induttivo) si esegue l'azione S, su un insieme di dati D, mediante eventuale esecuzione di

MAGAZZINO.CPP January 2, 2008 Page 1

Transcript:

2009-2010 Ingegneria Aerospaziale Prof. A. Palomba - Elementi di Informatica (E-Z) Linguaggio C++ 5 Strutture cicliche Linguaggio C++ 5 1

Strutture cicliche Utilizzate per ripetere un certo numero di volte un blocco di istruzioni. Si distinguono in: Ripetitive il il numero di di ripetizioni del del blocco è predefinito a priori Iterative il il numero di di ripetizioni del del blocco dipende dal dal verificarsi di di una una condizione Fai 10 giri intorno all isolato Fai 10 giri intorno all isolato for Gira intorno all isolato fino a che hai fiato Gira intorno all isolato fino a che hai fiato while do..while Linguaggio C++ 5 2

L istruzione while Ripete l esecuzione del blocco di istruzioni mentre è vera la relazione while (relazione) blocco istruzioni relazione vera Blocco istruzioni falsa int n = 100; while(n--) cout << n << ; stampa tutti tutti i i numeri da da 99 99 a 0 Il Il posizionamento del del test-relazione a monte può può comportare (relazione subito falsa) la la non non esecuzione del del blocco. Pertanto tale tale struttura dicesi a percorrenza minima 0. 0. Linguaggio C++ 5 3

Esercizio Assegnato il numero N, determinare la somma dei primi N numeri interi N=7 Somma =28 Linguaggio C++ 5 4

Una soluzione più semplice Linguaggio C++ 5 5

Linguaggio C++ 5 6

Assegnata una sequenza di numeri positivi si determini quanti ne sono e la loro somma La sequenza è terminata da un valore negativo 3 5 7 8 2 1-6 Numero valori positivi =6 Somma =26 Linguaggio C++ 5 7

Linguaggio C++ 5 8

Esercizio Scrivere un programma che ricevendo in ingresso un numero positivo N ne determini il massimo intero K tale che la somma dei primi K interi sia <=N N = 20 1 + 2 + 3 + 4 + 5 = 15 < 20 1 + 2 + 3 + 4 + 5 + 6 = 21 > 20 K =5 Metodo risolutivo Una variabile i, inizialmente posta ad 1, che incrementandosi scandisce i numeri (utilizzo di un ciclo) Una variabile somma tiene conto delle somme parziali all incrementarsi di i Fine ciclaggio quando somma parziale <= K Linguaggio C++ 5 9

Linguaggio C++ 5 10

In caso contrario indichi i suoi divisori Linguaggio C++ 5 11

Problema nell esercizio777 Il ciclo for va percorso per intero anche se è stata individuata la condizione di numero non primo (trovato=true) Soluzione: Utilizzo struttura while con blocco appena individuata condizione di numero non primo Linguaggio C++ 5 12

Linguaggio C++ 5 13

Un cliente ad uno sportello bancario può compiere operazioni di versamento o prelievo bancario nei limiti di un certo fido. Il numero max di operazioni sia 5 Linguaggio C++ 5 14

L istruzione do... while Simile al while, con la differenza che la condizione è posta alla fine del blocco di istruzioni. La forma generale : do blocco istruzioni while (relazione); Blocco istruzioni relazione falsa vera Il Il posizionamento del del test-relazione a valle valle comporta necessariamente la la esecuzione, almeno una una volta, del del blocco. Pertanto tale tale struttura dicesi a percorrenza minima 1. 1. Linguaggio C++ 5 15

In entrambe le strutture deve esistere l istruzione di modifica della relazione che la porti al valore falso per l uscita dalla iterazione, altrimenti si entra un una fase di loop all infinito a = 10; while a > 0 cout >> a; Loop (ciclo) infinito a = 10; while a > 0 { cout >> a; a=a-1; } OK Linguaggio C++ 5 16

Esercizio Date le misure di tre possibili lati a,b, c verificare se possibile definire un triangolo e classificarlo: isoscele, equilatero, scaleno, scaleno, rettangolare Condizione necessaria: La somma di ogni coppia di lati > del terzo lato a+b > c and a+c< b and c+b <a L input L input dei dei dati dati sia sia iterativo iterativo finche finche non non inserita inserita una una triade triade lecita lecita Linguaggio C++ 5 17

Linguaggio C++ 5 18

Esercizio Data in ingresso una sequenza di valori reali positivi e #0, determinare il numero di valori e la media aritmetica Il valore 0 è utilizzato come terminatore della sequenza in ingresso 1 2 4 6 9 0 Numero valori =5 Media= 4.4 Ipotesi algoritmo Inizio Inizio Leggi Leggi numero Se Se numero >0 >0 poni poni nrovalori=1 esegui esegui blocco blocco do do aggiorna somma leggi leggi altro altro numero incrementa nro nrovalori fine fine blocco blocco mentre mentre (numero 0) 0) while while decrementa nro nrovalori Calcola media media Linguaggio C++ 5 19

Linguaggio C++ 5 20

Nell esercizio precedente, in considerazione del trattamento esclusivo di valori positivi e maggiori di 0, si era utilizzato il valore 0 quale terminatore della sequenza di valori in ingresso Nel caso di valori riferentesi a rilievi di temperature, laddove sono leciti anche valori negativi di temperatura, l impostazione del terminatore della sequenza si basa sull utilizzo di una coppia di informazioni: temperatura, cosa fare float char Prosegue la sequenza (+) Termina la sequenza (-) Linguaggio C++ 5 21

Richiesta da set precision() Linguaggio C++ 5 22

Definisce l output a 3 posizioni 12 + 25 + -7 + 5 + 24 + 11 - Temp. Media =11.7 Linguaggio C++ 5 23

Assegnato un numero intero positivo determinare il numero di cifre componenti il numero 12345 5 Linguaggio C++ 5 24

Linguaggio C++ 5 25

Intercambiabilità dei costrutti while cin>>n; cin>>m; while (N < M) N=N+1; cout<<n cin>>n; cin>>m; do N=N+1; while (N<M) cout<<n while (espressione) { blocco } N=5 M=7 N=7 N=10 M=7 N=10 N=5 M=7 N=7 N=10 M=7 N=11 e do while if (espressione) do { blocco; } while (espressione) cin>>n; cin>>m; if ( N <M) { do N=N+1; while (N<M) } cout<<n N=5 M=7 N=7 N=10 M=7 N=10 Linguaggio C++ 5 26

Intercambiabilità dei costrutti do while e while do { blocco; } while (espressione) blocco while (espressione) { blocco; } cin>>n; cin>>m; do N=N+1; while (N<M) cout<<n cin>>n; cin>>m; while (N < M) N=N+1; cout<<n N=5 M=7 N=7 N=10 M=7 N=11 N=5 M=7 N=7 N=10 M=7 N=10 cin>>n; cin>>m; N=N+1; while (N < M) N=N+1; cout<<n N=5 M=7 N=7 N=10 M=7 N=11 Linguaggio C++ 5 27

L istruzione for Ripete un blocco di istruzioni per un predefinito numero di volte. for (inizializzazione; espressione test; aggiornamento) { blocco istruzioni } for for (int (intnumero=1;numero<=15;numero++) cout cout << << numero; Inizializzazione : assegna il valore iniziale alla variabile che controlla l iterazione. Viene eseguita una volta sola prima che abbia inizio il ciclo. espressione test : verificata all inizio di ogni esecuzione del blocco di istruzioni determina il proseguimento o la definitiva interruzione dell iterazione, secondo se essa è vera oppure falsa aggiornamento : al termine di ciascuna esecuzione del blocco di istruzioni viene modifica la variabile che controlla il ciclo. Linguaggio C++ 5 28

n1=n1+n2 Linguaggio C++ 5 29

Esercizio Assegnati due interi positivi, calcolarne il prodotto mediante la sola operazione di somma 3 * 5 3+3+3+3+3 Prodotto=0 Se ((1 fattore # 0) e (2 fattore # 0)) per indice da 1 a 2 fattore prodotto=prodotto*1 fattore Stampa prodotto 5 Linguaggio C++ 5 30

Linguaggio C++ 5 31

Esercizio Generazione tabella quadrati,cubi e radice quadrata Per Per funzioni matematiche di di libreria: libreria: pow(a,b) Per Per funzioni posizionamento: setw(a) setw(a) Linguaggio C++ 5 32

Esercizio Linguaggio C++ 5 33

Assegnato un valore intero positivo verificare se è un numero primo. In caso contrario individuare il suo primo divisore Linguaggio C++ 5 34

l istruzione for ammette la presenza di più variabili di controllo. Ad esempio: int a, b; for (a = 0, b = 2; a*2 <= b; a++, b++) cout << a = << a <<, b = << b << endl; inizializzazione: a = 0, b = 2 test: 0*2 <= 2 cioè 0 <= 2? sì istruzione: stampa a = 0, b = 2 aggiornamento: a = 1; b = 3; test: 1*2 <= 3 cioè 2 <= 3? sì istruzione: stampa a = 1, b = 3 aggiornamento: a = 2, b = 4 test: 2*2 <= 4 cioè 4 <= 4? sì istruzione: stampa a = 2, b = 4 aggiornamento: a = 3, b = 5 test: 3*2 <= 5 cioè 6 <= 5? no, esce Linguaggio C++ 5 35

l istruzione for può essere utilizzata nella forma for ( ; test ;) for ( ; n<=10 ;) Nel significato: La variabile cointeressata nel testo inizializzata con l ultimo valore assegnatole Valore di aggiornamento 0 int numero = 20; for (; numero <= 15; numero++) cout << numero; Nessun numero viene stampato Linguaggio C++ 5 36

Esercizio 24 Linguaggio C++ 5 37

Indentazione Modalità di disposizione del testo del programma in modo da evidenziare la struttura delle istruzioni composte. ----------------- min = x[0]; for (i=1; i < n; i++) if (x[i] < min) min = x[i]; cout << min: ----------------- indentata ----------------- min = x[0]; for (i=1; i < n; i++) if (x[i] < min) min = x[i]; cout << min: ----------------- Non indentata Linguaggio C++ 5 38

Indentazione ----------------- min = x[0]; max =x[0]; somma =x[0]; for (i=1; i < n; i++) { somma=somma+x[i]; if (x[i] < min) min = x[i]; else if (x[i] > max) max = x[i]; } cout << min; cout << max ----------------- Linguaggio C++ 5 39

Istruzione break Consente di uscire in anticipo dal loop attivato dal for Se valore è uguale a zero, si esegue l istruzione break uscendo dal ciclo, altrimenti si continua a chiedere un numero Linguaggio C++ 5 40

Istruzione continue consente di interrompere una iterazione senza completarla per passare direttamente alla successiva. Linguaggio C++ 5 41

Istruzione goto Salto guidato goto etichetta; etichetta una sorta di segnaposto che individua un punto specifico del programma cui andare forzatamente Nella specifica l etichetta deve essere seguita da : Linguaggio C++ 5 42

Linguaggio C++ 5 43