Your SlideShare is downloading. ×
  • Like
Strutture fondamentali della programmaizone C++
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Strutture fondamentali della programmaizone C++

  • 154 views
Published

Strutture cicliche in C++

Strutture cicliche in C++

Published in Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
154
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
1
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Lezione C++ Strutture Cicliche a cura di prof. Giuseppe Sportelli www.giuseppesportelli.it
  • 2. Definizione di ciclo • Per gli algoritmi un ciclo è un blocco di istruzioni ripetuto un certo numero di volte • Quando il numero delle ripetizioni è prefissato o noto si parla di ciclo iterativo • Quando il numero delle ripetizioni è stabilito da una condizione si parla di ciclo condizionato
  • 3. Ciclo iterativo • Ogni ciclo iterativo è caratterizzato dal fatto che deve essere definito un indice detto contatore del ciclo. La struttura algoritmica di un ciclo iterativo è riportata sotto. Istruzione 1 Istruzione 2 Istruzione 3 c=inizio ..fine, passo In C++si ha: for (c=inizio;c<=fine;c=c+passo) { istruzione 1; istruzione 2; istruzione 3; }
  • 4. Alcune note sul ciclo for • Sono ammessi valori interi e reali del contatore; • I valori di partenza e di arrivo del contatore possono esseri in incremento o decremento. In C++ se voglio incrementare di uno posso abbreviare scrivendo c++. Mentre c-- decrementa di 1. • Possono essere di esempio: c=10;c<=20;c++ da 10 a 20 di passo 1; c=-100;c<=0;c++ da -100 a 0 di passo 1; c=0;c<=100;c=c+0.5 da 0 a 100 con passo 0.5.
  • 5. Problema • Scrivere una pagina di C++ che stampa i multipli di 2,3 e da 0 a 100. La codifica in C++ è: #include <iostream> using namespace std; int main () { for (c=0;c<=100;c=c+2) { cout << c<<endl; } for (c=0;c<=100;c=c+3) { cout <<c<<endl; } }
  • 6. Alcune note sul problema Nel codice sono svolti due cicli for uno per I multipli di 2 e una per quelli di 3 Modifichiamo l'esercizio inserendo da tastiera che stampi i multipli di k in un intervallo p,q con p<q.
  • 7. Algoritmo risolutivo inizio Leggi P Q e K P < Q C modulo K=0 Scrivi C F F F V V C=P .. Q Valori non validi Fine
  • 8. Commento dell'algoritmo • Devo verificare che sono inseriti P e Q, che P sia minore di Q (multipli positivi); • Stiamo cercando i multipli di K quindi utilizzando un ciclo con contatore C che inizia da P e termina a Q, devo verificare che il resto della divisione intera (modulo) fra C e K è zero; • In questo caso il numero C è multiplo di K e lo visualizzo;
  • 9. Codifica in C++ del problema#include <iostream> using namepsace std; int main (){ int c,p,q,k; cout << “inserisci p e q”<<endl; cin >> p; cin >>q; if (p<q) { cout <<“inserisci k”<<endl; cin >> k; for c=p;c<=q;c++{ if (c%k=0) cout <<c<<endl;}}}
  • 10. Annotazioni sul codice C++ • L’operatore % controlla se il resto della divisione è 0 o meno, se è zero il numero c compreso nell’intervallo (p,q) è divisibile per k • Viene controllato con un if se p è minore di q; • In caso affermativo comincia il ciclo e si controlla dentro il ciclo quando il contatore c è divisibile per k. Infatti solo in quel caso c sarà multiplo di k.
  • 11. Cicli condizionati • Come già detto in precedenza trattasi di cicli il cui numero delle ripetizioni è determinato da una condizione. • Ne esistono due varianti: un ciclo con condizione iniziale e uno con condizione finale. • Nel primo caso il ciclo continua se la condizione è verificata; mentre nel secondo caso se la condizione è falsa.
  • 12. Ciclo condizionato con condizione iniziale Condizione Istruzione 1 Istruzione 3 Istruzione 2 F V In C++ la ripetizione mentre si codifica: while (condizone) { istruzione 1; istruzione 2; } istruzione 3
  • 13. Ciclo con condizione finale Istruzione 1 Istruzione 3 Istruzione 2 Condizione F V In C++ la ripetizione mentre si codifica: do { istruzione 1; istruzione 2; } while (condizone) istruzione 3
  • 14. Ulteriore differenza fra cicli condizionati • Nel primo se la condizione è falsa il ciclo non viene ripetuto; • Nel secondo anche se la condizione è già verificata il corpo del ciclo viene eseguito almeno una volta; • Sono molto utili quando l'utente deve fornire indicazioni in merito al ciclo. Se ad esempio si devono inserire una serie di prodotti allora è l'utente a stabilire quando terminare.
  • 15. Problema In un negozio si vuole calcolare il valore della merce. Di ogni prodotto sono noti il codice, la quantità e il prezzo. Calcolare e visualizzare il totale del valore della merce. Traccia di soluzione: Questo è un tipico problema che può essere affrontato con i cicli condizionati. L'utente decide se terminare l'inserimento mediante una variabile risposta che vale S o N.
  • 16. Fine Unità Didattica Grazie per l’attenzione prof. Giuseppe Sportelli Revisione del 1.10.2013