Home News Corso base di programmazione lezione 2

[Impariamo a programmare] Corso base di programmazione lezione 2

424
3

Buongiorno amici, e benvenuti alla seconda lezione del corso base di programmazione, ci tengo a precisare che, come voi, anche io sto imparando seguendo le mie stesse lezioni, sembra strano ma e così, oggi riepilogheremo il concetto di problema di algoritmo e di come esso possa essere rappresentato dal linguaggio naturale o pseudocodifica, ma andiamo per gradi, ricordiamo cosa è la soluzione di un problema? La soluzione di un problema la si ottiene dopo aver progettato un metodo risolutivo , è per tutte le istanze del problema, e l’istanza di un problema è un caso particolare di un dato problema detto problema generale, è necessario dunque sempre ricondursi al caso generale e mai fornire un metodo risolutivo per un caso particolare, si adatterebbe solo a quel caso e non sarebbe pertanto valida come soluzione.

Un semplice esempio lo possiamo vedere sotto:

devo risolvere 2 problemi, li chiameremo prob1 e prob2, sia nel primo problema che nel secondo problema devo calcolare il valore massimo di una serie di numeri, ma andiamo con ordine:

Prob1

  • Consideriamo appunto i seguenti numeri interi
  • 15 157 325 8 23
  • Qual’è il valore massimo trà i 5 numeri interi?

Prob2

  • Consideriamo altri numeri interi
  • 87 34 56
  • Qual’è il valore massimo trà i 3 numeri interi?

I 2 problemi prob1 e prob2 sono uguali o sono diversi? Possiamo dire che i 2 problemi sono uguali e ciascun problema rappresenta un istanza di un problema generale, ovvero quello di trovare il valore massimo frà una lista di interi, ma cosa varia allora frà i 2 problemi? Soltanto il numero degli elementi che appunto in prob1 sono 5 e prob2 sono 3 e che tra i quali troveremo il nostro numero massimo.

Nella specifica un algoritmo si può esprimere dunque in:

  • Linguaggio naturale (pseudocodifica)
  • diagrammi di flusso (descrizione grafica)
  • linguaggio di programmazione (codifica)

 e dunque possiamo dire che un algoritmo è descritto da frasi di un linguaggio naturale che può essere Italiano, Inglese, e le operazioni elementari sono definite tramite nomi, verbi ed espressioni, i nomi denotano i dati.

Selezione binaria:

Un altro esempio che voglio portare a conoscenza e quello della selezione binaria, dati 2 numeri interi, determiniamo il valore massimo, quindi, prima individiamo i dati di input che denotiamo con x e y ed il dato di output con z, per ciascun dato definiamo il dominio di definizione (  l’insieme dei valori che possono variare di input e output e dato appunto da numeri interi )

  • i nostri 2 numeri interi dati per x e y sono i nostri dati di input
  • z è il valore massimo corrisponde a output

input x, y e la coppia di numeri interi

output z è un numero intero

Bene, ora possiamo scrivere il nostro algoritmo:

  • Se x e minore di y

                 allora z e uguale a y

                 altrimenti z è uguale a x

             Fine

… volendo possiamo scriverlo anche cosi:

  • Se x < y

               allora z = y

               altrimenti z = x

           Fine

possiamo utilizzare o dei simboli matematici o anche la nostra lingua italiana.

Nel nostro algoritmo risulta molto importante che le istruzioni debbano essere eseguite sotto una condizione e devono essere scritte spostandosi verso destra rispetto alla posizione della riga in cui c’è il controllo, ciò viene definito identazione, il suo obbiettivo è solo quello di migliorare la leggibilità dell’algoritmo.

Quello che abbiamo visto oggi è sì un algoritmo ma lo abbiamo elaborato in un linguaggio naturale che risulta utile nella analisi del problema e nel progetto dell’algoritmo.

Per oggi è tutto, ciò che ho scritto finora altri non è che un riassunto di alcuni manuali presi in giro per la rete, spero tanto di aver fatto cosa gradita e, chi voglia, può commentare la news, alla prossima.

Articolo precedente[Scena WiiU] Annunciato SNEEK + ID
Articolo successivo[Homebrew PS3] IrisManager v1.25 rilasciato: ora compatibile con CFW 4.xx
Sono Nato nel 1980 e da diversi anni coltivo la passione per tutto ciò che riguarda il mondo dei videogiochi, ho vissuto l'era degli home computer con il Commodore 64 e l'Amiga 500, da sempre appassionato di giochi di ruolo e di titoli di avventura.