Articoli della categoria ‘Programmazione di base’

12: I TIPI DI DATI E DI VARIABILI

marzo 20th, 2009

Quando si programma biogna, già in partenza, sapere con chi e con quali tipi di dati avremo a che fare.

Generalmente i dati sono di tipo semplice e di tipo composto. Un dato di tipo semplice è la famosa variabile o la costante. Anche un Array (vettore e matrice che vedremo nei prossimi capitoli) può essere considerato di tipo semplice poichè tutti gli elementi sono di uno stesso tipo. Esistono, tuttavia, particolari tipi composti , ovvero in uno stesso dato troviamo elementi di tipo diverso.

È il caso delle STRUTTURE RECORD, o semplicemente RECORD. Anche se non le tratteremo in questa guida, possiamo fornirvi un esempio. Immaginiamo la persona: essa ha un nome che è una stringa e un età che è un valore intero. Naturalmente non possiamo convivere con lo stesso nome di dati ma, grazie ai RECORD, questo è possibile. Per ora noi utilizzeremo sempre i dati semplici, ovvero le variabili e le costanti. Vediamo ora come possono essere quest’ultimi:

(continua…)

Condividi questo articolo:
  • email
  • Print
  • PDF
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Blogplay
  • Add to favorites
  • BarraPunto
  • blogmarks
  • Diggita
  • Live
  • MSN Reporter
  • MySpace
  • Reddit
  • RSS
  • Segnalo
  • Slashdot
  • Technorati
  • Twitter
  • Yahoo! Bookmarks
  • Yahoo! Buzz

10. LE STRUTTURE DI ITERAZIONE CONDIZIONATA

marzo 10th, 2009

Nel precedente capitolo ci siamo introdotti all’interno dei primi algoritmi di selezione. I cicli If e CASE sono molto utilizzati, ma ognuno ha un suo campo di applicazione. Non è raro che, ad esempio, gli if vengano utilizzati per far si che un programma non vadi in overflow oppure il blocco. L’esempio lo facemmo con le divisioni: se il denominatore è 0, non ha senso fare la divisione. Sarà sensato mandare un messaggio all’utente per dire che la divisione è impossibile oppure, nei casi di matematica avanzata, è possibile calcolare se il risultato sia +infinito o -infinito. Ma non siamo qui per parlare di matematica. Oggi proseguiremo il nostro cammino parlando delle strutture di iterazione condizionata.

10. Le strutture di iterazione condizionata

Nella maggiorparte dei linguaggi, per fare delle ripetizioni condizionate è presente una sola struttura: while. Tuttavia in linguaggi tipo visual basic, non è raro trovare anche la struttura until.

(continua…)

Condividi questo articolo:
  • email
  • Print
  • PDF
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Blogplay
  • Add to favorites
  • BarraPunto
  • blogmarks
  • Diggita
  • Live
  • MSN Reporter
  • MySpace
  • Reddit
  • RSS
  • Segnalo
  • Slashdot
  • Technorati
  • Twitter
  • Yahoo! Bookmarks
  • Yahoo! Buzz

9. STRUTTURE DI SELEZIONE

marzo 6th, 2009

Nel precedente capitolo abbiamo illustrato le operazioni, inoltrandoci negli algoritmi e nelle loro risoluzioni. Si è parlato di problemi di semplici risoluzione, quali le addizioni, sottrazioni, radici. In questo capitolo parleremo dei limiti che possono avere queste operazioni e della necessità di controllare che un evento si possa o meno verificare.

9. Strutture di Selezione

(continua…)

Condividi questo articolo:
  • email
  • Print
  • PDF
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Blogplay
  • Add to favorites
  • BarraPunto
  • blogmarks
  • Diggita
  • Live
  • MSN Reporter
  • MySpace
  • Reddit
  • RSS
  • Segnalo
  • Slashdot
  • Technorati
  • Twitter
  • Yahoo! Bookmarks
  • Yahoo! Buzz

8. LE OPERAZIONI

febbraio 18th, 2009

Nel corso del capitolo precedente si è parlato dell’importanza dell’algoritmo, illustrandovi le prime istruzioni: quelle di input/output. Tuttavia, nonostante siano essenziali, le istruzioni di input/output non sono tutto. Infatti, i dati, oltre ad essere presi vanno anche trattati idoneamente al nostro scopo. Tratteremo in maniera diversa dei numeri da delle stringhe. Nel corso di questo capitolo parleremo delle operazioni, differenziandole in due categorie: matematiche e trattamento di stringhe.

(continua…)

Condividi questo articolo:
  • email
  • Print
  • PDF
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Blogplay
  • Add to favorites
  • BarraPunto
  • blogmarks
  • Diggita
  • Live
  • MSN Reporter
  • MySpace
  • Reddit
  • RSS
  • Segnalo
  • Slashdot
  • Technorati
  • Twitter
  • Yahoo! Bookmarks
  • Yahoo! Buzz

7. LE ISTRUZIONI DI INPUT-OUTPUT

febbraio 17th, 2009
Nel precedente capitolo vi abbiamo introdotto all’algoritmo, parlandovi delle sue proprietà . A fine capitolo arrivammo persino a crearne uno. Gli algoritmi sono alla base della creazione di un programma. Diciamo che senza di esso non potremmo mai fare un programma. Come possiamo scrivere un programma se non abbiamo risolto prima il problema? Questo non deve avvenire per forza per iscritto: possiamo anche avere nella nostra mente la soluzione, ma dobbiamo averla chiara. Altrimenti arriveremo ad un punto di non ritorno con il programma stesso. Nel corso dei prossimi capitoli studieremo i modi per risolvere problemi più complessi.

7. Le istruzioni di Input/Output

Vi ricorderete senz’altro di quando parlammo del computer, come un “servo” che esegue i nostri ordini. Ebbene questi ordini sono le istruzioni, ovvero comandi semplici dati al computer. Possiamo darne la definizione:

Istruzione: Comando impartito ad un esecutore utilizzando il linguaggio dell’esecutore.

(continua…)

Condividi questo articolo:
  • email
  • Print
  • PDF
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Blogplay
  • Add to favorites
  • BarraPunto
  • blogmarks
  • Diggita
  • Live
  • MSN Reporter
  • MySpace
  • Reddit
  • RSS
  • Segnalo
  • Slashdot
  • Technorati
  • Twitter
  • Yahoo! Bookmarks
  • Yahoo! Buzz

6. L’ALGORITMO : DALLA DEFINIZIONE ALLA CREAZIONE

febbraio 3rd, 2009

Nel corso del capitolo precedente si è parlato del problema, e abbiamo accennato alla soluzione con il metodo algoritmico. Esistono infatti molti modi per risolvere un problema, ma nell’ambito informatico noi non creeremo mai un programma per risolvere un solo problema, ma una categoria di problemi. Di conseguenza parleremo sempre di casi generali, riferendoci ai casi tipo solamente per verificare la correttezza dell’algoritmo. Nel corso di questo capitolo, e nelle prossime lezioni, parleremo esclusivamente dell’algoritmo e vi porremo davanti la soluzione dei casi generali più semplice.

6. L’algoritmo: dalla definizione alla creazione

Argomento principale di questo capitolo sarà l’algoritmo. In questo capitolo gireremo un po’ intorno all’algoritmo, lo definiremo e ne elencheremo le proprietà . Le proprietà dell’algoritmo sono importantissime! Ricordatevi sempre che dall’algoritmo dipende la riuscita del programma. Se l’algoritmo sarà fatto male, il programma non funzionerà , perchè i compilatori di codice rispecchiano appieno le proprietà dell’algoritmo.

Detto questo iniziamo a vedere cosa è l’algoritmo:

Def: sequenza logica di istruzioni elementari (univocamente interpretabili) che, eseguite in un ordine stabilito, permettono la soluzione di un problema in un numero finito di passi.

Un algoritmo, infatti, avrà sempre un inizio ed una fine. Potranno essere anche miliardi di istruzioni, ma avrà sempre una fine. Molto semplicemente si può definire come un procedimento che consente di ottenere un risultato atteso eseguendo, in un determinato ordine, un insieme di passi semplici corrispondenti ad azioni scelte solitamente da un insieme finito.

L’algoritmo gode di alcune proprietà fondamentali, le quali stanno alla base della programmazione. Infatti la violazione di queste proprietà comporta la non riuscita del programma. Vediamo di seguito le proprietà principali:

  1. la sequenza di istruzioni deve essere finita;
  2. essa deve portare ad un risultato;
  3. le istruzioni devono essere eseguibili materialmente;
  4. le istruzioni devono essere espresse in modo non ambiguo.

Bisogna tenere a mente queste proprietà , che sono alla base per la creazione dei programmi.

Vediamo ora come fare un semplice algoritmo di un problema semplice: il calcolo dell’area di un rettangolo.

NB: ogni algoritmo ha un inizio ed una fine.

Prima di creare l’algoritmo è bene segnare in uno schema (o comunque ricordare) le cose di cui abbiamo bisogno. Nel nostro caso abbiamo bisogno della BASE del rettangolo e della sua ALTEZZA. Ricordiamoci poi, infine, che l’AREA è uguale al prodotto della base per l’altezza (indicheremo il prodotto con *)

—————————————————————————————————————————-

1# INIZIO Programma AreaRett

2# Chiedi (BASE)

3# Leggi (BASE)

4# Chiedi (ALTEZZA)

5# Leggi (ALTEZZA)

6# AREA=BASE * ALTEZZA

7# Scrivi (AREA)

8# FINE

—————————————————————————————————————————-

In molti linguaggi di programmazione l’operazione di lettura e scrittura è fatta da una sola istruzione. Tuttavia è bene sapere che il computer eseguirà il chiedi-leggi in due momenti separati. I numeri infatti ci indicano la sequenza delle istruzioni.

Le parole chiavi incontrate in questo programma sono tre: Chiedi, Leggi e Scrivi, e rappresentano le tre operazioni fondamentali per un computer.

Chiude qui anche questo sesto capitolo della guida. Per ogni chiarimento, dubbio o altro commentate pure l’articolo.

Lezione precedente Lezione Successiva

(continua…)

Condividi questo articolo:
  • email
  • Print
  • PDF
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Blogplay
  • Add to favorites
  • BarraPunto
  • blogmarks
  • Diggita
  • Live
  • MSN Reporter
  • MySpace
  • Reddit
  • RSS
  • Segnalo
  • Slashdot
  • Technorati
  • Twitter
  • Yahoo! Bookmarks
  • Yahoo! Buzz

5. LA CONCEZIONE ALGORITMI DEL PROBLEMA

gennaio 22nd, 2009

Nel corso del precedente capitolo si è parlato del computer come macchina programmabile, ovvero una macchina che esegue istruzioni dettategli da noi. Ma per dare al computer l’istruzione si devono rispettare alcuni requisiti, tra cui la sintassi e l’imperatività della stessa. Infatti al computer non chiederemo mai un piacere, ma gli comanderemo di fare ciò che noi gli diciamo. Ora ci occuperemo, invece, di schematizzare questo processo. Parleremo infatti dell’utilizzo della programmazione orientata al problema, alla soluzione del problema fino ad arrivare all’algoritmo.

5. La concezione algoritmica del problema

La programmazione di cui ci occuperemo in questa guida è un tipo di programmazione orientato al problema. Questo tipo è molto utilizzato, sopratutto perchè un software viene progettato perchè possa aiutarci a compiere determinate operazioni.

La prima fase nella creazione di un programma è senza dubbio la progettazione. Non creeremo mai un programma “tanto per”, ma lo creeremo perchè possa risolverci un problema. Penso non serva definire il problema: in questo caso parliamo di problema classico, che può essere quello delle scuole elementari. L’unica differenza non sarà tanto nel problema quanto nella soluzione. Infatti il nostro problema da risolvere non sarà : “Fare la somma di 5 e 4“, ma piuttosto il nostro problema tipo sarà : “Fare la somma di due numeri scelti dall’utente“.

Nel creare un programma, quindi, dobbiamo tenere presente la soluzione del problema. L’insieme dei passaggi che ci porteranno alla soluzione si chiama Algoritmo. L’algoritmo ha delle proprietà fondamentali le quali verranno trattate meglio nei prossimi capitoli. Dobbiamo solamente tenere presente che i nostri problemi saranno generici. Infatti non creeremo un programma che risolverà solo un problema: creeremo un programma atto a risolvere una categoria di problemi.

Ad esempio immaginiamo il caso della somma. Il problema tipo può essere fare la somma di due numeri interi. Noi faremo scegliere all’utente quali saranno i numeri da sommare. Quindi avremo un programma che non risolverà semplicemente “4+7″, ma un problema del tipo “A+B”, con A e B scelte in ingresso.

Chiudiamo qui questo capitolo. Per ogni problema non esitate a contattarci con un commento o con una mail dalla voce contatti. Nel prossimo capitolo parleremo meglio dell’algoritmo, approfondendone le proprietà e le caratteristiche di cui gode.

Lezione precedente Lezione Successiva

(continua…)

Condividi questo articolo:
  • email
  • Print
  • PDF
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Blogplay
  • Add to favorites
  • BarraPunto
  • blogmarks
  • Diggita
  • Live
  • MSN Reporter
  • MySpace
  • Reddit
  • RSS
  • Segnalo
  • Slashdot
  • Technorati
  • Twitter
  • Yahoo! Bookmarks
  • Yahoo! Buzz

2. PARADIGMI DI PROGRAMMAZIONE

gennaio 20th, 2009

Nel capitolo precedente abbiamo parlato della programmazione in generale, parlando della storia e della sua evoluzione. Abbiamo poi notato l’evoluzione che i linguaggi di programmazione hanno avuto nel tempo. Se in passato per scrivere un applicativo servivano centinaia di righe di codice, oggi vengono scritti programmi migliori e più versatili con minori righe di codice. Ad esempio se volessimo fare un confronto tra Pascal e Visual Basic, potremo notare subito la differenza che c’è stata con gli anni.

Ma solo la programmazione non basta. Ogni linguaggio di programmazione viene inventato secondo una logica, e non tatnto per essere presente. Anche se a volte questa logica ci sembra occulta. Le logiche di programmazione sono tante e ancora oggi cominciao a nascere. Comunemente le logiche di programmazione sono note come Paradigma. Vediamo insieme cosa è nello specifico un paradigma, quali sono quelli più diffusi e quali utilizzeremo nel corso di questa guida.

2.1: I paradigmi di Programmazione

Un paradigma, come suddetto, è l’insieme delle logiche di programmazione che caratterizza un determinato linguaggio. Nell’insieme diciamo che tutti i linguaggi di programmazione riescono a scrivere codice orientato a tutti i tipi di paradigmi. Ma allora può sorgere una domanda: a che serve distinguere paradigmi e linguaggi se poi alla fine ogni linguaggio può scrivere in tutti i paradigmi? La risposta è semplice: la distinzione non avviene per le capacità ma per gli scopi per cui è stato creato. Pascal, ad esempio, è un linguaggio di programmazione a paradigma imperativo, ma nonostante ciò può scrivere codice funzionale ed orientato agli oggetti. C++, invece, è nato proprio come estensione del linguaggio C per un migliore supporto alla programmazione ad oggetti. Nello specifico possiamo dire che:

Un paradigma di programmazione è l’insieme degli strumenti concettuali forniti da un determinato linguaggio per la stesura di un’applicazione, e definisce il modo con cui il programmatore concepisce il programma.

Esistono tantissimi paradigmi di programmazione. Nel corso di questa guida, e di questo capitolo in modo particolare, ne vedremo solamente quattro, di cui uno in particolare che lo portemo nel corso di tutti i capitoli. Questo perchè il nostro obbiettivo è quello di guidare alla programmazione, non ai paradigmi.

Distiguiamo i paradigmi di programmazione in due grandi categorie. La prima è quella contenente i Paradigmi Dichiarativi, l’altra è quella che contiene i Paradigmi Relazionali. Noi ci occuperemo della prima categoria, ovvero dei Paradigmi dichiarativi, che a sua volta contiene i due paradigmi più utilizzati nella programmazione: il paradigma imperativo e il paradigma ad oggetti. Di questi due la nostra attenzione si sposterà sul primo, e solo successivamente parleremo della programmazione ad oggetti, conosciuta anche come OOP.

2.2: Il paradigma imperativo

Per capire questo paradigma è sufficiente guardare l’origine della parola. Imperare significa comandare. Nella programmazione imperativa noi diamo dei comandi specifici alla macchina che stiamo programmando (nel nostro caso il computer). Infatti credere che il computer sia una macchina intelligente è utopia. Il computer è definita da molti la macchina stupida per eccellenza. Questo perchè se non siamo noi a dire al computer ciò che deve fare esso non lo saprà mai. Infatti al computer daremo istruzioni come questa:

Fai la somma di A e B

e non:

Ti va di fare la somma di A e B?

Questa è la differenza sostanziale che rende questo paradigma imperativo. Infatti il computer obbedirà ai nostri ordini. Non può fare altrimenti, anche perchè non è dotato di un cervello per cui non può prendere delle scelte. E caso mai le prenderà (come vedremo più avanti nei costrutti di selezione) avrà bisogno di determinate condizioni impostategli da noi.

Chiudiamo qui con questa seconda lezione e con la descrizione dei paradigmi. Dal prossimo capitolo vedremo i livelli dei linguaggi di programmazione, cioè come sono suddivisi in base alla loro lontananza della macchina. Se avete domande commentate pure.

Lezione precedente Lezione Successiva

(continua…)

Condividi questo articolo:
  • email
  • Print
  • PDF
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Blogplay
  • Add to favorites
  • BarraPunto
  • blogmarks
  • Diggita
  • Live
  • MSN Reporter
  • MySpace
  • Reddit
  • RSS
  • Segnalo
  • Slashdot
  • Technorati
  • Twitter
  • Yahoo! Bookmarks
  • Yahoo! Buzz