prof. Nunzio Brugaletta
C++: programmazione e oggetti

EnneBi - Programmazione
Avanti - Indietro - Inizio

Dall'algoritmo al codice: procedimento step-by-step

Per sintetizzare quanto esposto in questa parte si propone la codifica dell'algoritmo, già sviluppato, per il calcolo del totale di una fattura conoscendo quantità oggetti venduti e prezzo unitario di ogni oggetto presente in ogni riga che la compone.

INIZIO
  Inizializza TOTF con il valore 0
  Ricevi QVEN e PZUN
  Mentre QVEN > 0
    Calcola TOTR come prodotto tra QVEN e PZUN
    Aggiorna TOTF sommando TOTR
    Ricevi QVEN e PZUN
  fine mentre
  Comunica TOTF
FINE

Come primo passo si può codificare la struttura generale del programma con la dichiarazione delle variabili:

#include <iostream>
using namespace std;

int main()
{
  int qven, pzun;
  int totf;
  int totr;
 
  return 0;
}

Per la dichiarazione delle variabili sono state utilizzate 3 righe: si è voluto distinguere, visivamente, le variabili in input, output e temporanee.

È opportuno precisare che lo stile di scrittura è una cosa che riguarda chi scrive il programma e se è vero, come dice un padre della programmazione, che “i programmi si scrivono innanzi tutto per il programmatore e, secondariamente, per essere eseguiti da un computer” è altrettanto vero che bisogna tenere presente le esigenze dell'utente che esegue il programma. Chi esegue il programma vede solo l'output previsto ed è quindi necessario, affinché il programma diventi semplice da utilizzare, prevedere degli output esplicativi, per esempio, degli input richiesti, degli output forniti o che spieghino le funzionalità del programma. Non si tratta di spiegare in maniera estesa (la lettura da uno schermo di un computer è difficoltosa e fa perdere tempo) ma di inserire frasi non ridondanti che siano il più brevi possibili, eliminando parole che non aggiungono niente alla comprensibilità (per esempio eliminare gli articoli), ma anche che siano quanto più possibile chiarificatrici.

Per esempio si potrebbe aggiungere una descrizione del programma:

#include <iostream>
using namespace std;

int main()
{
  int qven, pzun;
  int totf;
  int totr;

  cout << “Calcolo totale fattura dai dati righe” << endl;
 
  return 0;
}

la codifica dell'algoritmo prevede righe di commento che evidenziano le varie fasi dell'elaborazione e spiegano in cosa consiste l'elaborazione, laddove il codice spiega come devono essere trattati i dati per ottenere quella elaborazione.

#include <iostream>
using namespace std;

int main()
{
  int qven, pzun;
  int totf;
  int totr;

  cout << “Calcolo totale fattura dai dati righe” << endl;

  // inizializzazione totale fattura

  // prima riga fattura

  // elaborazione righe

    // calcolo totale riga

    // aggiornamento totale fattura

    // altra riga

  // output totale 

  return 0;
}

A questo punto possono essere dettagliate le varie fasi: viene stabilito il come si effettua l'elaborazione:

#include <iostream>
using namespace std;

int main()
{
  int qven, pzun;
  int totf;
  int totr;

  cout << “Calcolo totale fattura dai dati righe” << endl;

  // inizializzazione totale fattura

  totf = 0;

  // prima riga fattura

  cout << “Dati riga” << endl;
       << “quant. venduta e prezzo unitario separati da spazio” << endl;
       << “(<=0 per finire) “;
  cin  >> qven >> pzun;

  // elaborazione righe

  while(qven > 0)[

    // calcolo totale riga

    totr = qven*pzun;

    // aggiornamento totale fattura

    totf += totr;

    // altra riga

    cout << “Dati riga” << endl;
         << “quant. venduta e prezzo unitario separati da spazio” << endl;
         << “(<=0 per finire) “;
    cin  >> qven >> pzun;
  }

  // output totale 

  cout << “Totale fattura “ << totf << endl;
 
  return 0;
}

Forse l'uso dei commenti potrebbe sembrare eccessivo ma ciò dipende solo dalla banalità, dal punto di vista della quantità di codice, dell'algoritmo codificato.

Leggendo solo le righe di commento si capisce immediatamente cosa fa il programma e dove. Ciò risulta indispensabile per individuare dove intervenire nella manutenzione.



Avanti - Indietro - Inizio

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