prof. Nunzio Brugaletta
C++: programmazione e oggetti

EnneBi - Programmazione
Avanti - Indietro - Inizio

Cicli e costrutto while

Le strutture cicliche assumono nella scrittura dei programmi un ruolo fondamentale, non fosse altro per il fatto che, utilizzando tali strutture, si può istruire l’elaboratore affinché esegua azioni ripetitive su insiemi di dati diversi: il che è, tutto sommato, il ruolo fondamentale dei sistemi di elaborazione.

È in ragione delle suddette considerazioni che i linguaggi di programmazione mettono a disposizione del programmatore vari tipi di cicli in modo da adattarsi più facilmente alle varie esigenze di scrittura dei programmi. Il costrutto più generale è il ciclo while (ciclo iterativo con controllo in testa):

while(esp) 
  istruzione

Viene verificato che esp sia vera, nel qual caso viene eseguita istruzione. Il ciclo si ripete mentre esp risulta essere vera.

Naturalmente, per quanto osservato prima, istruzione può essere un blocco e, anche in questo caso, può essere utile racchiudere l’istruzione in un blocco anche se è una sola.

Come esempio delle istruzioni trattate fino a questo punto, viene proposto un programma che, data una sequenza di numeri interi positivi, fornisce la quantità di numeri pari della sequenza e la loro somma. Un qualsiasi numero negativo, o il valore nullo, ferma l'elaborazione.

#include <iostream>
using namespace std;

int main()
{
  int vn,conta,somma;

  // inizializzazione accumulatori

  cout << "Conteggio e somma dei numeri pari\n\n";
  conta = somma = 0;	/*1*/

  // esame dei numeri

  cout << "Inserire numero positivo ";
  cin >> vn;	/*2*/	
  while (vn>0){

    // verifica se, numero inserito, pari

    if(!(vn%2)){	/*3*/
      conta++;	/*4*/
      somma += vn;	/*4*/
    }

    // prossimo numero da elaborare

    cout << "Inserire numero positivo ";
    cin >> vn;
  }

  // risultati elaborazione

  cout << "Nella sequenza c\'erano " 
       << conta << " numeri pari" << endl;
  cout << "La loro somma e\' " << somma << endl;

  return 0;
}

Nella 1 si inizializzano al valore 0 il contatore e l'accumulatore dei pari.

Nella 2 si acquisisce il primo valore numerico da elaborare.

Il controllo della 3 permette di stabilire se il numero introdotto è pari. Viene usato l'operatore modulo % che fornisce il resto della divisione intera fra vn e 2 e, subito dopo, viene controllato se tale resto è nullo in modo che, nelle 4, si possano aggiornare il contatore e l'accumulatore.



Avanti - Indietro - Inizio

http://ennebi.solira.org
ennebi@solira.org