SlideShare a Scribd company logo
1 of 16
Lezione C++
Strutture Cicliche
a cura di prof. Giuseppe Sportelli
www.giuseppesportelli.it
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
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.
In C++si ha:
for (c=inizio;c<=fine;c=c+passo)
{
istruzione 1;
istruzione 2;
istruzione 3;
}
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.
Problema
• Scrivere una programma 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; }
}
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.
Algoritmo risolutivo
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;
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;
cout <<“inserisci k”<<endl;
cin >> k;
if (p<q) {
for c=p;c<=q;c++{
if (c%k=0)
cout <<c<<endl;}}
else
{cout << “Valori non validi !n”; return 0;}
system(“pause”};
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.
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.
Ciclo condizionato con
condizione iniziale
In C++ la ripetizione
mentre si codifica:
while (condizone) {
istruzione 1;
istruzione 2;
}
istruzione 3
Ciclo con condizione finale
In C++ la ripetizione
mentre si codifica:
do {
istruzione 1;
istruzione 2;
}
while (condizione)
istruzione 3
Ulteriore differenza fra cicli
condizionati
• Nel primo se la condizione è falsa il ciclo non viene
ripetuto;
• Nel secondo anche se la condizione non è 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.
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.
Fine Unità Didattica
Grazie per l’attenzione
prof. Giuseppe Sportelli
Revisione del 13.3.2018

More Related Content

Similar to Strutture Cicliche in C++

Similar to Strutture Cicliche in C++ (20)

I cicli in Python 3
I cicli in Python 3I cicli in Python 3
I cicli in Python 3
 
05 3 istruzioni-selezione-iterazione-condizioni
05 3 istruzioni-selezione-iterazione-condizioni05 3 istruzioni-selezione-iterazione-condizioni
05 3 istruzioni-selezione-iterazione-condizioni
 
Robotic Arm Simulation
Robotic Arm SimulationRobotic Arm Simulation
Robotic Arm Simulation
 
strutture iterative (WhileDoWhileFor).pptx
strutture iterative (WhileDoWhileFor).pptxstrutture iterative (WhileDoWhileFor).pptx
strutture iterative (WhileDoWhileFor).pptx
 
DHow2 - L1
DHow2 - L1DHow2 - L1
DHow2 - L1
 
Algorithmist guide II
Algorithmist guide IIAlgorithmist guide II
Algorithmist guide II
 
Video python3 n2
Video python3 n2Video python3 n2
Video python3 n2
 
1.01 Algoritmi
1.01 Algoritmi1.01 Algoritmi
1.01 Algoritmi
 
Algoritmi e Calcolo Parallelo 2012/2013 - Analisi degli Algoritmi
Algoritmi e Calcolo Parallelo 2012/2013 - Analisi degli AlgoritmiAlgoritmi e Calcolo Parallelo 2012/2013 - Analisi degli Algoritmi
Algoritmi e Calcolo Parallelo 2012/2013 - Analisi degli Algoritmi
 
E6 Concorre
E6 ConcorreE6 Concorre
E6 Concorre
 
regolazione Pid con robot lego
regolazione Pid  con robot legoregolazione Pid  con robot lego
regolazione Pid con robot lego
 
Pres talia tesi_pdf
Pres talia tesi_pdfPres talia tesi_pdf
Pres talia tesi_pdf
 
Informatica di base
Informatica di baseInformatica di base
Informatica di base
 
5 Strutture Iterative
5   Strutture Iterative5   Strutture Iterative
5 Strutture Iterative
 
Analisi bilancio termico di centrale a vapore
Analisi bilancio termico di centrale a vaporeAnalisi bilancio termico di centrale a vapore
Analisi bilancio termico di centrale a vapore
 
Supermercato
SupermercatoSupermercato
Supermercato
 
Invarianza di un politopo
Invarianza di un politopoInvarianza di un politopo
Invarianza di un politopo
 
Modellazione tramite geometria frattale
Modellazione tramite geometria frattaleModellazione tramite geometria frattale
Modellazione tramite geometria frattale
 
A brief intro to TDD for a JUG-TAA event
A brief intro to TDD for a JUG-TAA eventA brief intro to TDD for a JUG-TAA event
A brief intro to TDD for a JUG-TAA event
 
Scheduling In Linux
Scheduling In LinuxScheduling In Linux
Scheduling In Linux
 

More from I.S.I.S. "Antonio Serra" - Napoli

Le Applicazioni di Internet Web, FTP, Posta e App pr il Mobile
Le Applicazioni di Internet Web, FTP, Posta e App pr il MobileLe Applicazioni di Internet Web, FTP, Posta e App pr il Mobile
Le Applicazioni di Internet Web, FTP, Posta e App pr il MobileI.S.I.S. "Antonio Serra" - Napoli
 

More from I.S.I.S. "Antonio Serra" - Napoli (20)

La scomposizione in sotto programmi in C++.pptx
La scomposizione in sotto programmi in C++.pptxLa scomposizione in sotto programmi in C++.pptx
La scomposizione in sotto programmi in C++.pptx
 
Linguaggio Java - Classi e Oggetti
Linguaggio Java - Classi e OggettiLinguaggio Java - Classi e Oggetti
Linguaggio Java - Classi e Oggetti
 
Linguaggio C++ - Basi
Linguaggio C++ - BasiLinguaggio C++ - Basi
Linguaggio C++ - Basi
 
La metodologia Top - Down - applicazione al C++
La metodologia Top - Down - applicazione al C++La metodologia Top - Down - applicazione al C++
La metodologia Top - Down - applicazione al C++
 
I sotto programmi in Python 3
I sotto programmi in Python 3I sotto programmi in Python 3
I sotto programmi in Python 3
 
Le basi di Pytthon 3 - Fondamenti n.1
Le basi di Pytthon 3 - Fondamenti n.1Le basi di Pytthon 3 - Fondamenti n.1
Le basi di Pytthon 3 - Fondamenti n.1
 
Nuova ECLD - Modulo Online Collaboration n.2
Nuova ECLD - Modulo Online Collaboration n.2Nuova ECLD - Modulo Online Collaboration n.2
Nuova ECLD - Modulo Online Collaboration n.2
 
Nuova ECDL - Modulo Online Essentials n.2
Nuova ECDL - Modulo Online Essentials n.2Nuova ECDL - Modulo Online Essentials n.2
Nuova ECDL - Modulo Online Essentials n.2
 
Nuova ECDL - Modulo Online Essentials n.2
Nuova ECDL - Modulo Online Essentials n.2Nuova ECDL - Modulo Online Essentials n.2
Nuova ECDL - Modulo Online Essentials n.2
 
Nuova ECDL - Modulo Presentation n.3
Nuova ECDL - Modulo Presentation n.3Nuova ECDL - Modulo Presentation n.3
Nuova ECDL - Modulo Presentation n.3
 
Nuova ECDL - Modulo Presentation n.2
Nuova ECDL - Modulo Presentation n.2Nuova ECDL - Modulo Presentation n.2
Nuova ECDL - Modulo Presentation n.2
 
Nuova ECDL - Word Processing
Nuova ECDL - Word ProcessingNuova ECDL - Word Processing
Nuova ECDL - Word Processing
 
Nuova ECDL - Word Processing n.2
Nuova ECDL - Word Processing n.2 Nuova ECDL - Word Processing n.2
Nuova ECDL - Word Processing n.2
 
Nuova ECDL - Word Processing n.1
Nuova ECDL - Word Processing n.1Nuova ECDL - Word Processing n.1
Nuova ECDL - Word Processing n.1
 
Computer Essentials n.3 - Edizione 2020
Computer Essentials n.3 - Edizione 2020Computer Essentials n.3 - Edizione 2020
Computer Essentials n.3 - Edizione 2020
 
Java - Lezione 1
Java - Lezione 1 Java - Lezione 1
Java - Lezione 1
 
primi comandi SQL con Mysql
primi comandi SQL con Mysqlprimi comandi SQL con Mysql
primi comandi SQL con Mysql
 
Modello TCP/IP
Modello TCP/IPModello TCP/IP
Modello TCP/IP
 
Le Applicazioni di Internet Web, FTP, Posta e App pr il Mobile
Le Applicazioni di Internet Web, FTP, Posta e App pr il MobileLe Applicazioni di Internet Web, FTP, Posta e App pr il Mobile
Le Applicazioni di Internet Web, FTP, Posta e App pr il Mobile
 
Programmazione Top Down in C++
Programmazione Top Down in C++Programmazione Top Down in C++
Programmazione Top Down in C++
 

Recently uploaded

CON OCCHI DIVERSI - catechesi per candidati alla Cresima
CON OCCHI DIVERSI - catechesi per candidati alla CresimaCON OCCHI DIVERSI - catechesi per candidati alla Cresima
CON OCCHI DIVERSI - catechesi per candidati alla CresimaRafael Figueredo
 
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia RomanaXI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia RomanaStefano Lariccia
 
San Giorgio e la leggenda del drago.pptx
San Giorgio e la leggenda del drago.pptxSan Giorgio e la leggenda del drago.pptx
San Giorgio e la leggenda del drago.pptxMartin M Flynn
 
Esperimenti_laboratorio di fisica per la scuola superiore
Esperimenti_laboratorio di fisica per la scuola superioreEsperimenti_laboratorio di fisica per la scuola superiore
Esperimenti_laboratorio di fisica per la scuola superiorevaleriodinoia35
 
IL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla Cresima
IL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla CresimaIL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla Cresima
IL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla CresimaRafael Figueredo
 
lezione di fisica_I moti nel piano_Amaldi
lezione di fisica_I moti nel piano_Amaldilezione di fisica_I moti nel piano_Amaldi
lezione di fisica_I moti nel piano_Amaldivaleriodinoia35
 
Corso di digitalizzazione e reti per segretario amministrativo
Corso di digitalizzazione e reti per segretario amministrativoCorso di digitalizzazione e reti per segretario amministrativo
Corso di digitalizzazione e reti per segretario amministrativovaleriodinoia35
 
RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.
RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.
RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.giuliofiorerm
 
XIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
XIII Lezione - Arabo G.Rammo @ Libera Accademia RomanaXIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
XIII Lezione - Arabo G.Rammo @ Libera Accademia RomanaStefano Lariccia
 

Recently uploaded (9)

CON OCCHI DIVERSI - catechesi per candidati alla Cresima
CON OCCHI DIVERSI - catechesi per candidati alla CresimaCON OCCHI DIVERSI - catechesi per candidati alla Cresima
CON OCCHI DIVERSI - catechesi per candidati alla Cresima
 
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia RomanaXI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
 
San Giorgio e la leggenda del drago.pptx
San Giorgio e la leggenda del drago.pptxSan Giorgio e la leggenda del drago.pptx
San Giorgio e la leggenda del drago.pptx
 
Esperimenti_laboratorio di fisica per la scuola superiore
Esperimenti_laboratorio di fisica per la scuola superioreEsperimenti_laboratorio di fisica per la scuola superiore
Esperimenti_laboratorio di fisica per la scuola superiore
 
IL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla Cresima
IL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla CresimaIL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla Cresima
IL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla Cresima
 
lezione di fisica_I moti nel piano_Amaldi
lezione di fisica_I moti nel piano_Amaldilezione di fisica_I moti nel piano_Amaldi
lezione di fisica_I moti nel piano_Amaldi
 
Corso di digitalizzazione e reti per segretario amministrativo
Corso di digitalizzazione e reti per segretario amministrativoCorso di digitalizzazione e reti per segretario amministrativo
Corso di digitalizzazione e reti per segretario amministrativo
 
RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.
RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.
RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.
 
XIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
XIII Lezione - Arabo G.Rammo @ Libera Accademia RomanaXIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
XIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
 

Strutture Cicliche in C++

  • 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. 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 programma 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.
  • 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; cout <<“inserisci k”<<endl; cin >> k; if (p<q) { for c=p;c<=q;c++{ if (c%k=0) cout <<c<<endl;}} else {cout << “Valori non validi !n”; return 0;} system(“pause”};
  • 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 In C++ la ripetizione mentre si codifica: while (condizone) { istruzione 1; istruzione 2; } istruzione 3
  • 13. Ciclo con condizione finale In C++ la ripetizione mentre si codifica: do { istruzione 1; istruzione 2; } while (condizione) 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 non è 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 13.3.2018

Editor's Notes

  1. Revisione 1.0 Ottobre 2013