Your SlideShare is downloading. ×
0
Strutture Cicliche in C++
Strutture Cicliche in C++
Strutture Cicliche in C++
Strutture Cicliche in C++
Strutture Cicliche in C++
Strutture Cicliche in C++
Strutture Cicliche in C++
Strutture Cicliche in C++
Strutture Cicliche in C++
Strutture Cicliche in C++
Strutture Cicliche in C++
Strutture Cicliche in C++
Strutture Cicliche in C++
Strutture Cicliche in C++
Strutture Cicliche in C++
Strutture Cicliche in C++
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Strutture Cicliche in C++

1,759

Published on

Strutture Cicliche in C++

Strutture Cicliche in C++

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,759
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
0
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 un form 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

×