Page 528 - Informatica dalla A a Z
P. 528

Problemi Elementari di Programmazione


           La risoluzione di un problema (analisi) prevede innanzitutto la comprensione dei dati ini-

           ziali a disposizione (input) e di ciò che si vuole ottenere (output).

           La procedura da seguire per risolvere un dato problema viene indicata con il termine di
           algoritmo.


           Un algoritmo è caratterizzato da un insieme di regole (istruzioni) aventi 5 caratteristiche:

              -   deve essere finito e concludersi dopo un numero finito di operazioni;

              -   non deve essere ambiguo, definito e preciso;

              -   se ci sono dati in ingresso (input), il campo di applicazione deve essere precisato;


              -   deve fornire almeno un risultato (output);

              -   deve essere eseguibile in tempo finito.

           Non sempre individuare l’algoritmo adatto a risolvere un dato problema è cosa semplice.

           Oltre ad essere efficace, l’algoritmo deve essere anche “efficiente”.

           Una volta che viene ben definito il problema, e identificato l’algoritmo risolutivo, si passa
           alla fase di “codifica” vera e propria in un linguaggio di programmazione. Per facilitare que-

           sto compito, cioè per rendere schematico e semplice l’interpretazione dell’algoritmo, si
           effettuata una “rappresentazione simbolica” denominata “flow chart” o “diagramma di
           flusso” o ancora “diagramma a blocchi”. Questa tecnica andrebbe utilizzata anche per i

           programmi più semplici, per prendere dimestichezza con il modo corretto di lavorare.

           Somma tra due numeri positivi:


              #include <stdio.h>
              int somma (int x, int y)
              {
                  int z = x;
                  int i;

                  for (i = 1; i <= y; i++)
                  {
                          z++;
                  };
                  return z;
              }
              /* Inizio del programma. */
              int main (int argc, char *argv[])
              {

                                                            524
   523   524   525   526   527   528   529   530   531   532   533