Una Pillola per chi fosse interessato allo sviuppo di applicazioni Android:
Guida Android
Questo link vi porterà ad un altro Blog (che ho appena scoperto curiosando in rete) che vi porterà passo-passo alla creazione di app per Android. Nell'esempio dellguida si parla di Android 2.3 ma non necessariamente si discosta da ciò che si può fare con sdk più avanzati!!! Stay Tuned!
Visual School
martedì 24 settembre 2013
INSTALLIAMO ARDUINO & PROCESSING
Buongiorno a tutti! Dopo circa 8 mesi di Stop, ecco un nuovo articolo che può interessare tutti i neofiti del campo desiderosi di una guida rapida e precisa per avere
interfacciato sui propri pc, per addentrarsi in quello che sarà il futuro della Domotica di basso costo (ma non di scarsa qualità) accessibile a tutti!
Bando alle ciance!
Le immagini che seguono sono i passi necessari e "obbligatori" per insallare il software sul proprio pc:
Leggete la licenza (può sempre essere utile per tutti):
Selezionate i componenti (io li ho inseriti tutti):
Scegliete la cartella di installazione (se non avete particolri esigenze, quella indicata va più che bene):
Installate quindi i driver per quando collegherete Arduino al vostro pc:
Una volta completata l'installazione, cliccando su "Dettagli" dovreste vedere questa conferma:
Bene, completata l'installazione, vediamo subito un paio di esempi di software.
Il primo, non fa altro che leggere lo stato di pressione di un bottone, e
se è cliccato, accende un led, se non lo è, lo spegne.
Ma vediamo l'immagine e commentiamo il codice:
Come potete vedere il software è molto simile al C. Ma non è il C, non confondetelo! Il linguaggio di Arduino, si chiama Processing, e nonostante sia molto simile al C, ha alcune differenze.
Ma non annoiamoci con queste uguaglianze da nerd, addentriamoci nel codice dell'esempio piuttosto:
per prima cosa impostiamo due costanti:
#define LED 13
#define BUTTON 7
queste costanti non fanno altro che dare un nome a due pin di ARDUINO, il 13 e il 7, al quale abbiamo assegnato un dispositivo led e un bottone.
successivamente, diamo una variabile che viene definita "globale", essendo dichiarata al di fuori delle funzioni principali. Questa variabile si chiama 'val' ed è di tipo intero e la impostiamo di default a zero:
int val=0;
Proseguiamo quindi con la prima delle due funzioni principali di Arduino, il setup, che altro non è che un'inizializzazione delle periferiche che avranno a che fare con il codice da noi sviluppato.
Impostiamo l'inizializzazione in questo modo:
pinMode(LED, OUTPUT);
pinMode(BUTTON, INPUT);
che dicono alla macchina di impostare il LED come uscita, quindi avrà delle funzioni dedicate alle uscite, e il BUTTON come entrata, ovvero colui che invierà un segnale che darà il via al cambiamento di stato.
Il codice compreso nella funzione loop() non fa altro che:
1) leggere lo stato del BUTTON
2) verificare una condizione: se il bottone è cliccato, accendi il LED
3) se il bottone non è cliccato, spegni il LED.
Conclusione
Come potete vedere il codice è molto semplice, in gergo, si dice che è di ALTO LIVELLO, il che significa che è più vicino all'uomo che alla macchina.
Per funzionare, questo codice dev'esere poi compilato e importato sulla flash rom del nostro Arduino che eseguirà questo loop all'infinito, fino a quando gli daremo la tensione per fare ciò. Questi passaggi verranno tratti su un'altra guida che verrà presentata più avanti. Per il momento è QUASI tutto. Vi lascio ora ad un secondo esempio.. secondo voi, cosa farà il codice qui rappresentato?
Attendo i vostri commenti fino alla prossima guida!!!
ARDUINO
interfacciato sui propri pc, per addentrarsi in quello che sarà il futuro della Domotica di basso costo (ma non di scarsa qualità) accessibile a tutti!
Bando alle ciance!
Le immagini che seguono sono i passi necessari e "obbligatori" per insallare il software sul proprio pc:
Leggete la licenza (può sempre essere utile per tutti):
Scegliete la cartella di installazione (se non avete particolri esigenze, quella indicata va più che bene):
Installate quindi i driver per quando collegherete Arduino al vostro pc:
Una volta completata l'installazione, cliccando su "Dettagli" dovreste vedere questa conferma:
Il primo, non fa altro che leggere lo stato di pressione di un bottone, e
se è cliccato, accende un led, se non lo è, lo spegne.
Ma vediamo l'immagine e commentiamo il codice:
Come potete vedere il software è molto simile al C. Ma non è il C, non confondetelo! Il linguaggio di Arduino, si chiama Processing, e nonostante sia molto simile al C, ha alcune differenze.
Ma non annoiamoci con queste uguaglianze da nerd, addentriamoci nel codice dell'esempio piuttosto:
per prima cosa impostiamo due costanti:
#define LED 13
#define BUTTON 7
queste costanti non fanno altro che dare un nome a due pin di ARDUINO, il 13 e il 7, al quale abbiamo assegnato un dispositivo led e un bottone.
successivamente, diamo una variabile che viene definita "globale", essendo dichiarata al di fuori delle funzioni principali. Questa variabile si chiama 'val' ed è di tipo intero e la impostiamo di default a zero:
int val=0;
Proseguiamo quindi con la prima delle due funzioni principali di Arduino, il setup, che altro non è che un'inizializzazione delle periferiche che avranno a che fare con il codice da noi sviluppato.
Impostiamo l'inizializzazione in questo modo:
pinMode(LED, OUTPUT);
pinMode(BUTTON, INPUT);
che dicono alla macchina di impostare il LED come uscita, quindi avrà delle funzioni dedicate alle uscite, e il BUTTON come entrata, ovvero colui che invierà un segnale che darà il via al cambiamento di stato.
Il codice compreso nella funzione loop() non fa altro che:
1) leggere lo stato del BUTTON
2) verificare una condizione: se il bottone è cliccato, accendi il LED
3) se il bottone non è cliccato, spegni il LED.
Conclusione
Come potete vedere il codice è molto semplice, in gergo, si dice che è di ALTO LIVELLO, il che significa che è più vicino all'uomo che alla macchina.
Per funzionare, questo codice dev'esere poi compilato e importato sulla flash rom del nostro Arduino che eseguirà questo loop all'infinito, fino a quando gli daremo la tensione per fare ciò. Questi passaggi verranno tratti su un'altra guida che verrà presentata più avanti. Per il momento è QUASI tutto. Vi lascio ora ad un secondo esempio.. secondo voi, cosa farà il codice qui rappresentato?
Attendo i vostri commenti fino alla prossima guida!!!
martedì 15 gennaio 2013
Assembler, Debug Su Win 7 Pro 64bit
Allora, amici miei, facciamo un post riguardante la materia di Sistemi. La prima vera difficoltà che ho trovato, con questa materia, è quella di avere, mio malgrado, un Sistema Operativo molto bello, e molto avanti ma "stupidamente stupido"!
Com'è possibile che Windows 7 non riesca a far girare alcosa che è più vecchio di lui???
Ma iniziamo con ordine, perchè se no ci complichiamo le idee inutilmente!
Il problema: usare il debug nella shell di windows ( o prompt dei comandi, come dir si voglia ), in un sistema operativo Windows 7 o successivi, che siano a 64bit.
Cominciamo, analizzando la difficoltà:
Normalmente con un pc con WinXp (come quelli che usiamo a scuola), andremmo su Start->Esegui e digiteremmo cmd.com, per aprire il prompt dei comandi (d'ora in poi shell per brevità).
Una volta aperta la shell, avremmo la possibilità di utilizzare il comando debug, per far partire il nostro strumento di programmazione assembler.
Se facciamo la stessa cosa con Windows 7 a 64bit, dovremmo semplicemente andare su Start->Cerca e digitare cmd, una volta apparsa l'icona della shell cliccarci sopra ed aprirla. Ma attenzione, ora che scriviamo debug, troveremo questo errore:
Il problema si pone perchè essendo un programma che funziona a 16 bit, con sistemi a 16 e 32 bit funzionava ed era supportato, a 64 bit no. Grazie Microsoft per il tuo splendido prodotto! =_='
Ma allora come facciamo? Io non voglio comprare anche una copia di Windows Xp, e nemmeno avere 2 sistemi operativi con un dual boot! Un'altra soluzione, un pò più macchinosa e brutta ( e soprattutto non verificata) sarebbe installare Ubuntu (o un'altra distro Linux ) e tramite Wine (Wine Is Not an Emulator!) provare i nostri programmi previa installazione!!!
Ma Windows ci viene incontro, se e solo se, abbiamo pagato qualcosina di più per avere Windows 7 Profesional, Enterprise o Ultimate, quando abbiamo comprato il pc. Grazie a uno di questi sistemi operativi abbiamo la possibiltà di fare gratuitamente e senza bisogno di altri cd di installazione, una macchina virtuale che farà girare un sistema ospitato sul nostro Win 7 Pro (quindi niente riavvio, ne dual boot) un bel windows xp a 32bit, che magicamente avrà il nostro "amato" debug con assembler funzionante!! Incrediiiibileee!!!! Ma vero, e funziona!
Potete trovare il link per scaricarlo da qui: MICROSOFT WINDOWS VIRTUAL PC.
Ma non finisce qui ragazzi...
Per chi di voi non ha la "fortuna" di avere questi sistemi operativi c'è un'altra soluzione, meno elegante, un tantino più laboriosa (ma poco eh!) ma sicuramente efficace allo stesso modo.
Mi riferisco alla possibilità di installare Virtual Box e Windows XP.
Prima che continuate a leggere questo punto, vi metto subito davanti al primo problema: avere una ISO di Windows XP (qualsiasi versione, purchè non a 64bit). Se avete solo il cd, potete andare avanti a leggere lo stesso, perchè potremo usare Virtual Box sia con una Iso, sia con un CD.
Quello che conta è che abbiate una copia (originale!!!) di Windows Xp che potrete usare in un modo o nell'altro per l'installazione della macchina virtuale.
Per creare una Iso di Windows Xp (o qualsiasi altro cd/dvd di cui volete copiare TUTTI i dati al suo interno in un unico file .ISO), potete scaricare questo piccolo programma che si chiama ImgBurn, molto semplice ed efficace. Il link rimanda al download diretto, dovete semplicemente scegliere da quale mirror (un computer "server" che contiene il file da scaricare) eseguire il download.
Già, Microsoft, come dicevamo prima, ci da la possibilità di mettere Virtual Pc se e solo se abbiamo quei tre sistemi operativi elencati prima, ma con Virtual Box potrete installare la vostra nuova macchina virtuale su un qualsiasi pc che abbia Windows, Linux, ecc... quindi iniziamo dall'installazione di questo programma indispensabile: HOME PAGE VIRTUAL BOX.
I passaggi sono semplici e in rete si trovano davvero molti video e tutorial utili per l'installazione. Fate questa operazione se non volete fare un upgrade del vostro sistema operativo.
Bene, spero di esservi/ci stato d'aiuto.
In questo modo abbiamo diverse soluzioni per chi come me ha la fortuna/sfortuna di avere un sistema a 64bit e di andare in una scuola dove si lavora ancora a 16bit!! Mannaggia a Microsoft! ;-)
Com'è possibile che Windows 7 non riesca a far girare alcosa che è più vecchio di lui???
Ma iniziamo con ordine, perchè se no ci complichiamo le idee inutilmente!
Il problema: usare il debug nella shell di windows ( o prompt dei comandi, come dir si voglia ), in un sistema operativo Windows 7 o successivi, che siano a 64bit.
Cominciamo, analizzando la difficoltà:
Normalmente con un pc con WinXp (come quelli che usiamo a scuola), andremmo su Start->Esegui e digiteremmo cmd.com, per aprire il prompt dei comandi (d'ora in poi shell per brevità).
Una volta aperta la shell, avremmo la possibilità di utilizzare il comando debug, per far partire il nostro strumento di programmazione assembler.
Se facciamo la stessa cosa con Windows 7 a 64bit, dovremmo semplicemente andare su Start->Cerca e digitare cmd, una volta apparsa l'icona della shell cliccarci sopra ed aprirla. Ma attenzione, ora che scriviamo debug, troveremo questo errore:
Il problema si pone perchè essendo un programma che funziona a 16 bit, con sistemi a 16 e 32 bit funzionava ed era supportato, a 64 bit no. Grazie Microsoft per il tuo splendido prodotto! =_='
Ma allora come facciamo? Io non voglio comprare anche una copia di Windows Xp, e nemmeno avere 2 sistemi operativi con un dual boot! Un'altra soluzione, un pò più macchinosa e brutta ( e soprattutto non verificata) sarebbe installare Ubuntu (o un'altra distro Linux ) e tramite Wine (Wine Is Not an Emulator!) provare i nostri programmi previa installazione!!!
Ma Windows ci viene incontro, se e solo se, abbiamo pagato qualcosina di più per avere Windows 7 Profesional, Enterprise o Ultimate, quando abbiamo comprato il pc. Grazie a uno di questi sistemi operativi abbiamo la possibiltà di fare gratuitamente e senza bisogno di altri cd di installazione, una macchina virtuale che farà girare un sistema ospitato sul nostro Win 7 Pro (quindi niente riavvio, ne dual boot) un bel windows xp a 32bit, che magicamente avrà il nostro "amato" debug con assembler funzionante!! Incrediiiibileee!!!! Ma vero, e funziona!
Potete trovare il link per scaricarlo da qui: MICROSOFT WINDOWS VIRTUAL PC.
Ma non finisce qui ragazzi...
Per chi di voi non ha la "fortuna" di avere questi sistemi operativi c'è un'altra soluzione, meno elegante, un tantino più laboriosa (ma poco eh!) ma sicuramente efficace allo stesso modo.
Mi riferisco alla possibilità di installare Virtual Box e Windows XP.
Prima che continuate a leggere questo punto, vi metto subito davanti al primo problema: avere una ISO di Windows XP (qualsiasi versione, purchè non a 64bit). Se avete solo il cd, potete andare avanti a leggere lo stesso, perchè potremo usare Virtual Box sia con una Iso, sia con un CD.
Quello che conta è che abbiate una copia (originale!!!) di Windows Xp che potrete usare in un modo o nell'altro per l'installazione della macchina virtuale.
Per creare una Iso di Windows Xp (o qualsiasi altro cd/dvd di cui volete copiare TUTTI i dati al suo interno in un unico file .ISO), potete scaricare questo piccolo programma che si chiama ImgBurn, molto semplice ed efficace. Il link rimanda al download diretto, dovete semplicemente scegliere da quale mirror (un computer "server" che contiene il file da scaricare) eseguire il download.
Già, Microsoft, come dicevamo prima, ci da la possibilità di mettere Virtual Pc se e solo se abbiamo quei tre sistemi operativi elencati prima, ma con Virtual Box potrete installare la vostra nuova macchina virtuale su un qualsiasi pc che abbia Windows, Linux, ecc... quindi iniziamo dall'installazione di questo programma indispensabile: HOME PAGE VIRTUAL BOX.
I passaggi sono semplici e in rete si trovano davvero molti video e tutorial utili per l'installazione. Fate questa operazione se non volete fare un upgrade del vostro sistema operativo.
Bene, spero di esservi/ci stato d'aiuto.
In questo modo abbiamo diverse soluzioni per chi come me ha la fortuna/sfortuna di avere un sistema a 64bit e di andare in una scuola dove si lavora ancora a 16bit!! Mannaggia a Microsoft! ;-)
mercoledì 19 dicembre 2012
Espressioni regolari (RegExp)
Espressioni regolari
La sintassi delle
espressioni regolari è considerata superata dallo standard POSIX,
ma è comunque molto usata per la sua larga diffusione. La maggior parte dei programmi
che utilizzano le regexp, utilizzano queste regole dando anche il supporto
per le nuove regole che sono più estese.
Questi sono i
"metacaratteri" che ci permetteranno di
effettuare le espressioni di ricerca:
.
|
Trova un
singolo carattere (se è nella modalità linea singola altrimenti se è
in multiriga prende tutti i caratteri diversi da \n, ovvero un ritorno
a capo).
|
[ ]
|
Trova un
singolo carattere contenuto nelle parentesi. Ad esempio, [abc] trova o una
"a", "b", o "c". [a-z] è un intervallo e trova
ogni lettera minuscola dell'alfabeto. Possono esserci casi misti: [abcq-z]
trova a, b, c, q, r, s, t, u, v, w, x, y, z, esattamente come [a-cq-z].
Il
carattere '-' è letterale solo se è primo o ultimo carattere nelle parentesi:
[abc-] o [-abc]. Per trovare un carattere '[' o ']', il modo più semplice è
metterli primi all'interno delle parentesi: [][ab] trova ']', '[', 'a' o 'b'.
|
[^ ]
|
Trova ogni
singolo carattere non incluso nelle parentesi. Ad esempio, [^abc] trova ogni
carattere diverso da "a", "b", o "c". [^a-z]
trova ogni singolo carattere che non sia una lettera minuscola. Come sopra,
questi due metodi possono essere usati insieme.
|
^
|
Corrisponde
all'inizio della stringa (o di ogni riga della stringa, quando usato in
modalità multilinea)
|
$
|
Corrisponde
alla fine della stringa o alla posizione immediatamente precedente un
carattere di nuova linea (o alla fine di ogni riga della stringa, quando
usato in modalità multilinea)
|
( )
|
Definisce
una "sottoespressione marcata". Il risultato di ciò che è incluso
nell'espressione, può essere richiamato in seguito. Vedi sotto, \n.
|
\n
|
Dove n
è una cifra da 1 a 9; trova ciò che la nesima sottoespressione ha
trovato. Tale costrutto, detto backreference, estende le potenzialità
delle regexp oltre i linguaggi regolari e non è stato adottato nella sintassi
estesa delle regexp.
|
*
|
|
{x,y}
|
Trova
l'ultimo "blocco" almeno x volte e non più di y
volte. Ad esempio, "a{3,5}" trova "aaa", "aaaa"
o "aaaaa".
|
Vecchie
versioni di grep non supportano il separatore alternativo "|".
Esempi:
".atto" trova ogni stringa
di cinque caratteri come gatto, matto o patto
"[gm]atto" trova gatto
e matto
"[^p]atto" trova tutte le
combinazioni dell'espressione ".atto" tranne patto
"^[gm]atto" trova gatto
e matto ma solo all'inizio di una riga
"[gm]atto$" trova gatto
e matto ma solo alla fine di una riga
Dal momento
che molte serie di caratteri variano a seconda della configurazione locale (in
alcuni casi le lettere sono organizzate in abc..xyzABC...XYZ, in altri
aAbB..yYzZ), lo standard POSIX ha definito alcune classi o categorie di
caratteri come mostrato nella seguente tabella:
classe POSIX
|
sintassi normale
|
significato
|
[:upper:]
|
[A-Z]
|
lettere maiuscole
|
[:lower:]
|
[a-z]
|
lettere minuscole
|
[:alpha:]
|
[A-Za-z]
|
lettera sia maiuscole che minuscole
|
[:alnum:]
|
[A-Za-z0-9]
|
numeri e lettere maiuscole e minuscole
|
[:digit:]
|
[0-9]
|
numeri
|
[:xdigit:]
|
[0-9A-Fa-f]
|
numeri in formato esadecimale
|
[:punct:]
|
[.,!?:...]
|
segni di interpunzione
|
[:blank:]
|
[ \t]
|
spazio o TAB
|
[:space:]
|
[ \t\n\r\f\v]
|
caratteri vuoti
|
[:cntrl:]
|
caratteri control
|
|
[:graph:]
|
[^ \t\n\r\f\v]
|
caratteri non vuoti
|
[:print:]
|
[^\t\n\r\f\v]
|
caratteri non vuoti e spazi
|
Le parentesi quadrate fanno parte della sintassi per indicare la classe di caratteri. Ad esempio [[:upper:][:digit:]ab] trova corrispondenza in una qualsiasi lettera maiuscola, in una qualsiasi cifra, nella lettera 'a' minuscola e nella lettera 'b' minuscola.
Esempi di quantificatori
- * Cerca l'occorrenza (zero o più volte) del carattere o insieme di caratteri cui segue:
abc* identifica ab seguito da zero o più c
come in ab, abc, abcc, abccc
- + Cerca l'occorrenza (una o più volte) del carattere o insieme di caratteri cui segue:
ab[ce]+ identifica ab seguito da
una o più c oppure una o più e
come in abc, abec, abccc, abcceeecccccce
- ? Cerca l'occorrenza (zero o una volta) del carattere o insieme di caratteri cui segue:
abc? identifica ab seguito o meno da una c
come in abc e ab
- {m, n} Cerca l'occorrenza (da m a n volte; m lasciato vuoto è zero, n lasciato vuoto infinito) del carattere, insieme di caratteri o sotto-regex cui segue:
(ab){1,2} identifica le sequenze di uno o due ab
come in ab e abab
mercoledì 12 dicembre 2012
Codice catastale di un comune Italiano
Qui potete visualizzare uno script in php per la ricerca del codice del comune, e il risultato che vi apparirà sarà il nome del comune, il suo codice, e la sigla della provincia:
Per l'elenco dei comuni ho creato un normale file di testo che incorporo con il codice:
<?php
$pattern="/".$_POST[comune]."/i";
//apre il file:
$comuni=fopen("../inc/codici_catastali_comuni.txt","r");
$i=0;
if($_POST[comune]!=""){
while (!feof($comuni)) {
//ottiene riga per riga il file e lo asegna a buffer:
$buffer = fgets($comuni, 4096);
//se incontra i parametri di ricerca, inserisci un
// nuovo valore al contenuto dell'array "stringa":
if(preg_match($pattern,$buffer)){
$stringa[$i]=$buffer;
$i++;
}
}
#chiude il file:
fclose ($comuni);
}
?>
Questa versione del programma è solo dimostrativa, in quanto questo codice non è perfetto, infatti, se mettiamo il nome di un comune che è simile ad un altro (es. Como e Zibido San Giacomo) il sistema prenderà l'ultimo in elenco corrispondente alla ricerca. Va quindi perfezionato, ma per lo scopo dimostrativo che ha per il momento è sufficiente per capire come ciclare il contenuto di un file riga per riga senza caricarlo tutto in memoria, a prescindere dalla sua dimensione. questa funzione, denominata fgets(), sarà utile quando su web, dove le risorse sono sempre "risicate", dovremo controllare file di grandi dimensioni.
Update: 17/12/2012
Effettuata la modifica del programmino, per avere un elenco ordinato in base alle occorrenze trovate. Inserire questo codice nel programma diventa così un lavoro piuttosto semplice dando la possibilità di inserire i dati corretti suggerendoli direttamente all'utente.
Questo è il codice per il risultato ciclato secondo il suo ordine alfabetico
(n.b.: è ordinato alfabeticamente il file, e quindi anche il suo risultato. Il file viene ciclato riga per riga, restituendo per ultimo l'ultima riga del file, a prescindere se esiste un ordine o meno. er ordinare comunque un array in php ci sono delle funzioni per le quali rimando al manuale. v. Man. Php Ita - Array Sort)
<?php
$y=1;
for($x=0;$x<count($stringa);$x++){
$array=explode(" ",$stringa[$x],2);
$codiceComune=$array[0];
$nomeComune=substr($array[1],0,-6);
$siglaProvincia=substr($stringa[$x], -4, 2); // Es MI
print "<br>Risultato $y di $i:<br>Codice Comune: $codiceComune<br>Comune: $nomeComune<br>Provincia: $siglaProvincia<br>";
$y++;
}
?>
Per l'elenco dei comuni ho creato un normale file di testo che incorporo con il codice:
<?php
$pattern="/".$_POST[comune]."/i";
//apre il file:
$comuni=fopen("../inc/codici_catastali_comuni.txt","r");
$i=0;
if($_POST[comune]!=""){
while (!feof($comuni)) {
//ottiene riga per riga il file e lo asegna a buffer:
$buffer = fgets($comuni, 4096);
//se incontra i parametri di ricerca, inserisci un
// nuovo valore al contenuto dell'array "stringa":
if(preg_match($pattern,$buffer)){
$stringa[$i]=$buffer;
$i++;
}
}
#chiude il file:
fclose ($comuni);
}
?>
UN PICCOLO APPUNTO:
Update: 17/12/2012
Effettuata la modifica del programmino, per avere un elenco ordinato in base alle occorrenze trovate. Inserire questo codice nel programma diventa così un lavoro piuttosto semplice dando la possibilità di inserire i dati corretti suggerendoli direttamente all'utente.
Questo è il codice per il risultato ciclato secondo il suo ordine alfabetico
(n.b.: è ordinato alfabeticamente il file, e quindi anche il suo risultato. Il file viene ciclato riga per riga, restituendo per ultimo l'ultima riga del file, a prescindere se esiste un ordine o meno. er ordinare comunque un array in php ci sono delle funzioni per le quali rimando al manuale. v. Man. Php Ita - Array Sort)
<?php
$y=1;
for($x=0;$x<count($stringa);$x++){
$array=explode(" ",$stringa[$x],2);
$codiceComune=$array[0];
$nomeComune=substr($array[1],0,-6);
$siglaProvincia=substr($stringa[$x], -4, 2); // Es MI
print "<br>Risultato $y di $i:<br>Codice Comune: $codiceComune<br>Comune: $nomeComune<br>Provincia: $siglaProvincia<br>";
$y++;
}
?>
Sviluppo di un programma passo-passo - Parte 1
CALCOLO DEL CODICE FISCALE E BASI DELLA PROGRAMMAZIONE
Ciao a tutti! Dopo la pausa decisionale per scegliere il progetto da fare, siamo giunti ad una nuova idea, che esiste certamente, in tutte le salse: il calcolo del codice fiscale. Cliccando su questo link, troverete una pagina molto ben spiegata nel quale troverete le regole per creare l'algoritmo che genera il famoso codice che ci rende tutti univoci al dipartimento dell'agenzia delle entrate!
Resta però da definire in quale linguaggio scrivere l'applicazione che calcolerà il codice fiscale, e il perchè. Vogliamo rendere un servizio al'utente, o vogliamo fare un supercontrollo all'invio di un form? Oppure ancora, vogliamo fare un controllo incrociato dei dati di un db, e segnalare quali incongruenze ci sono e inviare statistiche sulla clientela controllata, o magari, un semplice esercizio scolastico?
Le possibilità sono diverse, e in base allo scopo si dovrebbe scegliere cosa fare. In un libro sul C++ acquistato nel lontano 1999, edito da Apogeo "C++ Tutto & Oltre" di Jesse Liberty, c'è una fondamentale quanto semplice mappa concettuale sul ciclo di progettazione-realizzazione di un programma:
- Concettualizzazione
- Analisi
- Progettazione
- Implementazione
- Test
- Produzione
CONCETTUALIZZAZIONE
L'intuizione è quella fase in cui si determina lo scopo del nostro programma (nel libro si riferisce alla programmazione a oggetti, ma io sono convinto che questi passi possono essere seguiti per qualsiasi tipo di programmazione, anche futura), un momento brevissimo che getterà le fondamenta su ciò che verrà fatto. Potrà certamente essere aggiornata mano a mano che sviluppa il nostro software, in base a determinate esigenze e nuove idee. In un team di sviluppo potrebbe esserci anche una persona designata allo scopo di proteggere e aggiornare l'idea e controllare che tutto ciò che ne segue venga fatto seguendo l'intuizione originale. Può essere una frase, un paragrafo, o un'idea che descrive brevemente ma in modo dettagliato cosa dovrà fare il nostro progetto e perchè. Il rispondere ad una delle domande che scrivevo poco sopra ad esempio potrebbe essere un buon inizio per questa fase d'intuizione.Bene, ma allora cosa vogliamo fare con questo algoritmo che già esiste? Semplice. L'idea di sviluppo di questo algoritmo sarà "creare un programma che sarà disponibile alla consultazione online, registrerà un log di utilizzo, memorizzerà i dati ricercati in un db, invierà il risultato via mail o sarà pronto per essere stampato". La ricerca consisterà nel calcolo del codice fornendo i dati della persona, tenendo presente che comunque ci sono alcune variazioni che solo il ministero può decidere e che non sono conosciute a noi comuni mortali! L'esempio più calzante, è che in caso di forte omonimia prevista dal decreto legge, si faccia ciò che viene descritto nell'articolo 6 del D.M. n° 345 del 23/12/1976, che non possiamo fare dall'esterno, ma solo emularlo, in quanto non possiamo avere a disposizione l'intero archivio del C.F. registrato in Italia.
CONCLUSIONE
Bene, ci siamo!Con questo primo passo abbiamo dato il via al nostro programma. Non abbiamo ancora scritto una riga di codice e alcune ricerche dovranno esser fatte, ma questa sarà la parte di Analisi che non è altro che il secondo passo relativo alla programmazione. Effettivamente, quando si parla di scrivere un programma, la scrittura del codice che poi eseguirà il programma è solo uno dei 6 passi descritti sopra. Questa è l'informatica, ovvero la gestione automatica delle informazioni che senza un preciso scopo, un'analisi e molti test anche prima di scrivere il codice di un programma, non avrebbe molto senso chiamarla così.
martedì 20 novembre 2012
C# - Installare Visual Studio Express 2012
Una descrizione di questo linguaggio di programmazione su piattaforma .NET di Microsoft direttamente da Wikipedia:
"La sintassi del C# prende spunto sia da quella di Delphi (hanno il medesimo autore, ovvero Anders Hejlsberg), di C++, di Java e di Visual Basic per gli strumenti di programmazione visuale e per la sua semplicità. Il risultato è un linguaggio con meno simbolismo rispetto a C++, meno elementi decorativi rispetto a Java, ma comunque orientato agli oggetti in modo nativo."
Per scaricare quindi l'ambiente di sviluppo adatto, la prima cosa è senz'altro trovare il sito Microsoft, da dove scaricarlo. Andare quindi a questo indirizzo e scegliere tra:
Windows 7:
e cliccare su "Installa subito" se si sta utilizzando già il pc sul quale verrà installato Visual Studio o su "Scarica ora", per scaricare la Iso di 690Mb circa che andrà masterizzata su CD per poterla eseguire su un pc con Windows Installato.
Windows 8:
C'è una versione anche per Windows 8. Rimando ad un altro post questa guida perchè ancora non ho a disposizione il nuovo sistema operativo MS.Anche in questa comunque sono presenti i due link:
"Installa subito" e "Scarica ora".
Una volta installato Visual Studio chiederà una registrazione, altrimenti la versione scaricata durerà solo 30 giorni. La procedura però è semplice basta inserire i vostri dati aziendali per poter avere il codice Product Key che permetterà l'utilizzo del programma.
Ad una prima occhiata, Visual Studio si presenta graficamente appagante, semplice e comodo da utilizzare, un pò come tutte le applicazioni a Interfaccia Grafica (graphic interface) solite dei programmi Microsoft. L'ambiente è molto user friendly, ma non mancano certamente gli strumenti per poter metter mano al codice e sviluppare in modo testuale.
Presto le prime applicazioni create in C# utilizzando Visual Studio Express 2012.
Stay Tuned!
Iscriviti a:
Post (Atom)