Digitale Libero

Oltre il solito Blog!



EnglishFrenchGermanItalianJapanesePortugueseRussianSpanish

Natale 2011

23 dicembre, 2011 (22:15) | Autore: neutrino | Argomento: News su Digitale Libero



In questo periodo di crisi e di scelte politiche atte a mantenere in piedi l’Italia, DigitaleLibero.com desidera augurare a tutti gli internauti Buon Natale e che il nostro paese si risollevi dalla crisi.

EnglishFrenchGermanItalianJapanesePortugueseRussianSpanish

Corso Base Programmazione – Le strutture di dati

21 dicembre, 2011 (08:26) | Autore: neutrino | Argomento: Informatica, Programmazione



Creando programmi, prima o poi, ci si troverà a dove gestire dei dati strutturati in un certo modo, per esempio invece di avere 12 varibili diverse per ogni mese dell’anno è conveniente usarne una unica per tutto. Quando molti anni fa ho iniziato a programmare usavo  parecchie variabili per cose simili, non avevo capito l’importanza di avere un’unica variabile per gestire dati simili. In questo caso ci vengono in contro gli array (vettori) che sono paragonabili a delle scatole a scomparti dove ogni spazio contiene un valore. In quasi tutti i linguaggi di programmazione un array viene definito dal nome della variabile e il numero di valori che può contenere. Per esempio in Perl:

my @vettore = (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20);

my @mesi = (“Gennaio”,”Febbraio”,”Marzo”,”Aprile”,”Maggio”,”Giugno”,”Luglio”,”Agosto”,”Settembre”,”Ottobre”,”Novembre”,”Dicembre”);

L’array, nel linguaggio Perl, si definisce inserendo il carattere @ all’inizio del nome e non c’è obbligo come in altri linguaggi di programmazione di definirne il numero di elementi basta inizializzarlo con alcuni elementi, bisogna però poi ricordarsi di non richiamare un elemento in un indice che non esiste, altrimenti riceveremo un errore. Per richiamare un elemento occorre indicarne la posizione come visibile nell’esempio successivo, in questo caso occorre ricordarsi che la numerazione parte da 0 (zero) e quindi se voglio richiamare il secondo elemento devo indicare l’indice 1. Questo lo vedremo quando passeremo alla vera e propria programmazione, ecco l’esempio:

print $vettore [1];

A schermo verrà stampato 2.

Gli array possono essere usati come delle vere e proprie tabelle infatti è possibile creare array di più dimensioni con righe e colonne poterli stampare a schermo come dovrebbero essere strutturati in una tabella. E’ possibile addirittura, in certi linguaggi di programmazione, scambiare gli elementi in modo tale da invertire l’array utilizzando un’unica istruzione oppure stamparne a schermo solo un certo range.

Un altro tipo di struttura di dati è quella legata ai Data Base che usano tabelle di dati create su file appositi dove immagazzinare grandi quantità di dati, generalmente i Data Base sono supportati da veri e propri server appositi, come SQL, e permettono una gestione dei dati molto flessibile e rapida. In questo caso i software devono interfacciarsi col sistema di gestione dei dati inviando delle richieste specifiche in modo da ricevere come risposta i dati richiesti. Queste richieste si chiamano QUERY e servono per interrogare il data base e incrociare i dati tra le varie tabelle che lo compongono. Anche questo argomento sarà trattato quando affronteremo la programmazione a livello pratico.

Per il momento è  tutto, a presto!

EnglishFrenchGermanItalianJapanesePortugueseRussianSpanish

Corso Base Programmazione – Le istruzioni cicliche

28 novembre, 2011 (22:42) | Autore: neutrino | Argomento: Informatica, Programmazione



Generalmente un programma compie delle azioni ripetitive e quindi molto spesso si ha la necessità di ripetere parti di programma un numero di volte ben definito oppure fino a quando ne si ha la necessità. Sarebbe illogico e da pazzi riscrivere 100 volte lo stesso pezzo di programma perchè quelle istruzioni devono essere ripetute 100 volte, la manutenzione del codice e la ricerca di errori diventerebbe estenuante. Così sono stati implementati i cicli, parti di programma racchiusi tra alcune parole chiave che vengono ripetuti un numero definito di volte oppure finchè non si verifica una certa condizione. Per esempio un ciclo definito è:

Partendo da 1 fino ad arrivare a 20 scrivi a monitor “Prova”

Tradotto in uno dei tanti linguaggi di programmazione esistenti, in questo caso il python, il gruppo di istruzioni è il seguente:

for variabile1 in range(1,21):

      print variabile1

e l’output sarà:

1

2

..  tutti gli altri numeri in mezzo

20

Nella gestione di operazioni cicliche potrebbe anche essere necessario attendere che si verifichi una certa condizione, e di solito si usano istruzioni di loop come il while  dove viene costantemente controllato il verificarsi della condizione che mette fine al ciclo. Un esempio di un ciclo di questo tipo, scritta per esempio in python, è la seguente:

while temperatura > 40:

         print (“La temperatura è salita troppo!”)

Il programma uscirà dal ciclo solo nel caso che la variabile temperatura superi il valore di 40, se questo valore proviene da un termometro esterno, in inverno, la condizione potrebbe non verificarsi mai e questo darebbe vita ad un ciclo infinito. Questo tipo di cicli, a pare mio, sono i più utili perchè flessibili e perchè è possibile effettuare dei controlli e dovrebbero essere preferibili anche per cicli di durata ben definita.

Quando affronteremo il discorso programmazione con un linguaggio vero e proprio avremo modo di vedere diversi esempi sull’uso dei loop.

A presto!

EnglishFrenchGermanItalianJapanesePortugueseRussianSpanish

Aggiornamento Fotogallery

21 novembre, 2011 (18:34) | Autore: neutrino | Argomento: News su Digitale Libero



Digitale Libero annuncia l’aggiornamento della fotogallery con l’aggiunta di una sezione slide show sui fuochi d’artificio.

Buona Visione!

EnglishFrenchGermanItalianJapanesePortugueseRussianSpanish

Corso Base Programmazione – Le strutture decisionali

13 novembre, 2011 (15:31) | Autore: neutrino | Argomento: Informatica, Programmazione



Come ho scritto negli articoli precedenti un programma nel suo svolgimento deve dare delle risposte, dei risultati finali che l’utilizzatore richiede. I primi esempi che ho fatto per spiegare in breve la struttura di un software erano abbastanza lineari, infatti gli esempi, molto semplici, non facevano altro che fare delle banali operazioni matematiche ma i software devono prendere delle decisioni in base ai dati che ricevono, che stanno elaborando e azioni che l’utilizzatore nel contempo chiede.

Per i motivi elencati nelle righe precedenti sono nate le strutture decisionali, che non sono altro che parti di software racchiuse tra determinate parole chiave, che si occupano appunto di prendere delle decisioni e di far eseguire determinate parti di programma in base a eventi che possono verificarsi durante l’esecuzione dello stesso.

Se volessi eseguire una parte di software solo se si verifica un evento particolare potrei avere un programma simile al prossimo esempio:

Programma Prova

inizio

variabile1, variabile2, variabile3

assegna alla variabile1 il valore 8

assegna alla variabile2 il valore 2

assegna alla variabile3 il risultato della moltiplicazione tra la variabile1 e la variabile2

se il valore della variabile3 è uguale a 16 allora scrivi a monitor Bravo!

altrimenti scrivi a monitor Asino!

fine

Il programmino di esempio è molto semplice, va a caricare due valori in due variabili, le moltiplica e se il risultato è uguale al valore 16 il software fa una determinata cosa, se è diverso da 16 ne fa un altra. Nel nostro linguaggio la parola se è molto utilizzata quando non si hanno delle certezze e di devono prendere delle decisioni, per esempio: se cado da questa altezza mi faccio male.

Nel caso dei linguaggi di programmazione è la stessa cosa, il se è proprio indicativo di decisione in caso di dubbio, o di bivio decisionale. Molti linguaggi di programmazione implementano il se – allora – altrimenti con la struttura decisionale if – then – else.

Esistono però anche altre strutture decisionali che permettono di valutare più possibilità e farci evitare di usare if – then – else nidificati che porterebbero a molta confusione e possibili bug nel software, si tratta del costrutto select – case, che esiste in diversi linguaggi di programmazione. Questa struttura permette di controllare una variabile diverse volte e prendere una decisione a seconda del valore che questa contiene. Un esempio di struttura select – case è:

Select Case  variabile1

Case 1

    Scrivi a schermo “Primo valore”

Case 2 

   Scrivi a schermo “Secondo Valore”

Case 3 

   Scrivi a schermo “Terzo Valore”

Case Else 

   Scrivi a schermo “Valore diverso”

End Select

L’esempio riportato sopra è scritto in Visual Basic e non fa altro che andare a controllare il contenuto di variabile1 e decidere in base al valore letto che cosa fare. E’ un costrutto molto comodo per controllare molti possibili valori della variabile senza immischiarsi in strutture if- then – else nidificate. Nel  linguaggio C la struttura select – case è costituita da switch – case.

Detto questo posso considerare concluso questo argomento, vedremo meglio come usare le strutture decisionali quando inizieremo ad usare un linguaggio di programmazione vero e proprio.

A presto!