Author Archives: admin

La consolle di Rails

Guida alla programmazione con Ruby

La consolle di Rails  è caratterizzata in alto a sinistra da un quadratino con una I che ci consente di accedere al menu di InstantRails, da due bottoni che permettono di avviare/fermare/riavviare Apache e MySql ed infine da una area di testo nella parte centrale che ospita il log delle operazioni effettuate.

ruby

Cliccando sul bottone con la scritta I e seguendo il percorso  Rails Applications è Manage Rails Applications si potranno controllare le applicazioni già presenti nel framework e dopo averle selezionate si potranno avviare, potendo in questo modo lavorare sui file oppure aprirne la console di lavoro.

Sarà oltremodo possibile impostare le variabili d’ambiente, in maniera corretta, utilizzando il pannello di controllo di Rails, cliccando sul bottone individuato da una I e scegliendo in seguito Rails Applications quindi Open Ruby Console Window.

In questo modo in occasione di ogni accesso le variabili verranno impostate correttamente, e l’utente si troverà nella directory rails_apps  nella quale sarà possibile creare delle applicazioni web dopo aver consultato degli esempi.

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Come aggiungere un path alla variabile di ambiente

Guida alla programmazione con Ruby

Attraverso InstantRails, l’interprete Ruby non viene integrato nel sistema cioè non vengono modificate le variabili d’ambiente né il registro di configurazione. Questo vuole dire che, utilizzando InstantRails, per poter usare Ruby da riga di comando si dovranno aggiungere manualmente alcune funzioni aggiuntive, in particolare sarà necessario modificare la variabile d’ambiente path aggiungendo il percorso della directory contenente Ruby:

C:\InstantRails\ruby\bin

Ricordiamo che per impostare una variabile d’ambiente dovremo seguire la procedura seguente:

  • tasto destro su “Risorse del Computer”, cliccare su proprietà.
  • Selezionare il tab “avanzate” e cliccare su “variabili d’ambiente”.
  • Tra le “variabili di sistema” (o se preferite tra le “variabili utente”), selezionare la variabile PATH e cliccare su “modifica”.
  • Spostarsi nella casella “valore variabile” e portarsi con il cursore alla fine della riga. Se non c’è già, aggiungere un “;” (punto e virgola).
  • Infine aggiungere il percorso
  • Cliccare su OK e l’installazione è terminata.

ruby

A questo punto sarà opportuno creare una nuova variabile d’ambiente chiamata RUBYOPT con valore rubygems, la quale farà si che Ruby provveda sempre a caricare il supporto per i pacchetti installati da RubyGems.

Per fare questo aprire la finestra mostrata nelle Figura e cliccare sul bottone Nuova, quindi inserire nome e valore come indicato in precedenza.

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Come installare InstantRails

Guida alla programmazione con Ruby

In questa lezione vedremo come installare InstantRails sul nostro computer per poter essere operativi da subito nella programmazione in ambiente Ruby. InstantRails rappresenta un pacchetto autoinstallante, che contiene:

  • Ruby e RubyGems;
  • Rails;
  • Apache;
  • MySQL;
  • PhpMyAdmin.

Infine il pacchetto prevede una serie di applicazioni web dimostrative. Il pacchetto, che naturalmente è distribuito liberamente è scaricabile dal sito RubyForge che rappresenta la casa di tutti i progetti open sources realizzati con Ruby. Il sito è disponibile al seguente url:

http://instantrails.rubyforge.org/

nella pagina che si apre sarà possibile ricavare delle informazioni aggiuntive sull’intero pacchetto, scaricare la versione aggiornata del pacchetto e consultare numerose guide che ci aiuteranno nella procedura di installazione.

ruby

Una volta scaricato il pacchetto in versione compressa, sarà necessario estrarre il file eseguibile in una directory a scelta e lanciarlo (InstantRails.exe). È importante sottolineare che InstantRails non supporta cartelle il cui nome contenga degli spazi, quindi un percorso del tipo C:\Program Files\ non risulterebbe idoneo; si consiglia a tal proposito di installare il software nella cartella C:\InstantRails\.

Gli utilizzatori del OS Windows Vista dovranno preventivamente effettuare un click destro sul file e selezionare la voce esegui come amministratore per acquisire i permessi per l’installazione del software.

Alla fine della procedura di installazione verrà aperto il pannello di controllo di Rails dal quale sarà possibile verificare se il tutto è proseguito senza intoppi.

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Istruzioni OPEN nel Fortran


FORTRANL’istruzione OPEN nel Fortran associa un file ad un numero di unità di ingresso/uscita. Ha la seguente sintassi:

OPEN(UNIT=num,FILE=’nome ‘,STATUS=’stato’, ACTION= spec, FORM=’fm’, IOSTAT= var)

 Analizziamo nel dettaglio le specifiche contenute nel comando:

  1. UNIT= num – Indica il numero di unità i/o da associare al file, num è un numero intero non negativo.
  2. FILE= nome – Specifica il nome del file da aprire.
  3. STATUS= stato – Specifica lo stato del file da aprire, dove stato può essere: OLD , NEW , REPLACE , SCRATCH , UNKNOWN
  4. ACTION= spec – Specifica se il file deve essere aperto soltanto in lettura,in scrittura o in entrambe le modalità. Dove spec può essere: READ , WRITE , READWRITE
  5. FORM=’fm’ – Specifica che il file conterrà gli usuali caratteri (lettere, numeri, segni di punteggiatura, ecc.) in modo che il programmatore possa leggere il file
  6. IOSTAT= var – Specifica il nome di una variabile intera in cui può essere restituito lo stato dell’operazione OPEN. Dove var è un intero; se l’operazione OPEN ha successo var = 0  altrimenti var > 0.

Analizziamo allora un esempio:

OPEN(UNIT=1,FILE=’PRIMO.DAT’,STATUS=’OLD’,ACTION=’READ’,IOSTAT=’var’)

Tale operazione apre il file PRIMO.DAT e lo associa all’unità numero 1, STATUS=’OLD’ specifica che l’unità esiste già, ACTION=’READ’indica che il file può essere solo letto, IOSTAT=’var’ per il controllo degli errori.

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Istruzione READ nel Fortran


FORTRANL’istruzione READ nel Fortran ci consente di leggere uno o più dati dal buffer di input. L’unità nella quale andremo a leggere i dati è specificata dall’apposito numero presente nell’istruzione. Analizziamo nel dettaglio l’esempio che vi propongo:

READ(*,10) var 10 FORMAT (5X, I3)

esso indica di leggere da video (è presente l’asterisco), saltando le prime 5 colonne del buffer di input e utilizzando le seguenti 3 colonne per leggere un numero intero. Al posto dell’asterisco poteva trovarsi ad esempio il numero 1 allora si sarebbe eseguita l’operazione di lettura sull’unità 1.

Il formato dell’istruzione READ è il seguente:

READ(UNIT=u,FMT=f,ERR=e,END=d)lista di variabili

dove  u è un numero intero che assume ha la funzione di specificare l’indirizzamento della scrittura e cioè sul terminale (UNIT=6) oppure sul disco; mentre FMT=f, dove “f” è un numero intero, indica al computer di scrivere i dati con il formato specificato dall’istruzione FORMAT individuata dall’etichetta con il numero “f”;

Le specifiche ERR=e e END=d sono opzionali; in particolare la specifica ERR=e ha la funzione di far continuare l’esecuzione dalla riga etichettata con “e” se avviene un errore in lettura. Nella istruzione READ c’è anche un’ altra possibilità di errore, che capita quando, leggendo nel disco magnetico, si arriva alla fine del file di lettura; se si prova a leggere altri dati, il computer, non sapendo dove prenderli, sospenderà l’esecuzione.

Mentre la specifica END=d indica al computer di continuare l’esecuzione dalla riga etichettata con “d“. In questo modo si evita l’errore che capita quando, leggendo nel disco magnetico, si arriva alla fine del file di lettura; se si prova a leggere altri dati, il computer, non sapendo dove prenderli, sospenderà l’esecuzione.

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Istruzione PRINT nel Fortran


FORTRANL’istruzione PRINT nel Fortran è una versione semplificata dell’istruzione WRITE, ed il suo formato è il seguente:

      PRINT f,lista di variabili

dove “f” è un numero intero, indica al computer di scrivere i dati con il formato specificato dall’istruzione FORMAT individuata dall’etichetta con il numero “f”; se “f” viene posto uguale ad un “*” (asterisco), specificheremo di utilizzare un formato “libero”, cioè quello predefinito nel FORTRAN (in questo caso, i valori delle variabili verranno stampati in una sola riga, con 7 decimali se sono variabili R4, 15 se sono R8, ecc.).

Tale istruzione ci permette di scrivere ciò che viene specificato nella lista di variabili direttamente sullo schermo del computer su cui viene eseguito il programma.

Si noti che il comando “print *” è seguito da una virgola, e che le virgole compaiono tra gli elementi successivi da stampare. E’ opportuno osservare anche che le le stringhe devono essere racchiuse da virgolette doppie o singole. Il comando “print *” su una riga da solo e senza virgola  viene utilizzato come un avanzamento riga.

Esempio di utilizzo dell’istruzione print nel Fortran:

program somma
implicit none
integer :: somma, a

print*, "Questo programma esegue una somma. Inserire 0 per terminare la somma."
open(unit=10, file="Somma.DAT")

somma = 0

do
 print*, "Inserisci il numero da sommare:"
 read*, a
 if (a == 0) then
  exit
 else
  somma = somma + a
 end if
 write(10,*) a
end do

print*, "Somma =", somma
write(10,*) "Somma =", somma
close(10)

end

 LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Istruzione WRITE nel Fortran


FORTRANL’istruzione WRITE nel Fortran permette di scrivere il contenuto di una variabile secondo un preventivato formato. La sintassi dell’istruzione WRITE è la seguente:

 WRITE(UNIT=u,FMT=f,ERR=e) lista di variabili

  •  dove  u è un numero intero che assume ha la funzione di specificare l’indirizzamento della scrittura e cioè sul terminale (UNIT=6) oppure sul disco;
  • FMT=f, dove “f” è un numero intero, indica al computer di scrivere i dati con il formato specificato dall’istruzione FORMAT individuata dall’etichetta con il numero “f”;
  • la specifica (ERR=e) è opzionale e serve per controllare che il processo di scrittura abbia avuto successo.

Le parole chiave “UNIT=” e “FMT=” possono essere omesse, quindi possiamo sintetizzare il comando in  WRITE(u,f,…), assicurandoci però che il numero che si riferisce all’unità di uscita preceda l’etichetta del formato. Se “f” viene posto uguale ad un “*” (asterisco), specificheremo di utilizzare un formato “libero”, cioè quello predefinito nel FORTRAN (in questo caso, i valori delle variabili verranno stampati in una sola riga, con 7 decimali se sono variabili R4, 15 se sono R8, ecc.).

 Se la specifica ERR non è presente e si verifica una condizione di errore  il computer fermerà l’esecuzione. Se invece si è specificato ERR=e, dove “e” è un altro numero di etichetta, quando si verifica una condizione di errore durante la scrittura il computer continuerà l’esecuzione del programma dalla riga etichettata con “e”.

Un esempio dell’utilizzo dell’istruzione WRITE nel Fortran è il seguente:

WRITE (*,10) j,var 10 FORMAT (“L’iterazione”,I3,”ha fornito il seguente risultato”,F7.3)

La parentesi (*,10) indica di scrivere a video (*) con formato 10 (10 è l’etichetta del formato), è importante che tale etichetta non sia stata già utilizzata. Il formato scelto prevede del testo per indicare il significato dei valori e dei descrittori di formato che indicano in che modo devono essere espressi i valori delle variabili.

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Cicli a condizione finale nel Fortran


FORTRANIl ciclo a condizione finale nel Fortran, che comunemente viene identificato dal termine repeat-until, esegue il controllo della condizione dopo che le istruzioni presenti nel blocco vengano eseguite, subito prima dell’istruzione END DO. Così le istruzioni del corpo del ciclo verranno sempre eseguite almeno una volta.

La forma generale del costrutto è la seguente:

[nome :] DO
istruzione 1
istruzione 2
........
IF (espressione logica ) EXIT
END DO [nome ]

Riporto di seguito un semplice programma d’esempio che ci permette di capire il funzionamento di un ciclo di questo genere. Si tratta di un programma che dopo aver richiesto di digitare un numero, stampa a video tutti i numeri a parire da 1 fino al numero inserito.

program stampanumeri
implicit none
integer :: i, n
!
! Utilizzo istruzione exit
!
write(*,*)’Digita un intero positivo’
read(*,*)n
i=1
do
      write(*,*)i
      if(i==n)exit
      i=i+1
end do
end program stampanumeri

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Cicli a condizione iniziale nel Fortran


FORTRANIl ciclo a condizione iniziale nel Fortran, che comunemente viene identificato dal termine to ciclo while, esegue il controllo della condizione prima che le istruzioni presenti nel blocco sia eseguite. Allora le dichiarazioni presenti nel corpo verranno ripetute fino a quando la condizione specificata risulterà vera.

La forma generale del costrutto è la seguente:

do while (espressione logica)
     istruzione1
     istruzione2
     ………….
end do

L’esecuzione del blocco di istruzioni presente all’interno del ciclo avviene secondo la sequenza di seguito indicata:

  1. viene dapprima valutato il valore dell’espressione logica riportata tra parentesi;
  2. se il corrispondente valore risulta .FALSE., nessuna istruzione del blocco viene eseguita e il controllo passa alla prima istruzione che compare dopo l’istruzione END DO;
  3. se invece tale valore risulta .TRUE., allora viene eseguito il blocco di istruzioni a partire dalla prima istruzione che segue l’istruzione DO WHILE;
  4. nel momento in cui viene raggiunta l’istruzione finale del ciclo, il controllo ritorna all’istruzione DO WHILE; quindi l’espressione logica è valutata nuovamente e il ciclo viene ripetuto.

Di seguito riporto un semplice esempio che effettua un ciclo while per eseguire una valutazione di una certa funzione e ripete tale calcolo fintantoche lo scarto risulta maggiore o uguale della tolleranza. Quando tale valore risulta minore il ciclo si arresta.

do while (scarto.ge.toll)
iter = iter +1
fval=g(fk)
scarto = abs(fval - fk)
fk = fval
end do

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Istruzione Select Case nel Fortran


FORTRANL’istruzione Select Case nel Fortran può essere usata per eseguire un insieme di criteri di selezione di multi-alternativa, in questo modo consente al programmatore di selezionare un
particolare blocco di istruzioni da eseguire in funzione del valore assunto da una variabile di
controllo di tipo intero o carattere, o da un’espressione logica. La sintassi del costrutto è la seguente:

nome : SELECT CASE (espressione di CASE)
CASE (selettore 1) nome
istruzione 1
istruzione 2
.......
CASE (selettore 2) nome
istruzione 1
istruzione 2
.......
.....
CASE DEFAULT nome
(selettore 2) nome
istruzione 1
istruzione 2
.......
END SELECT nome

Come già anticipato il selettore può essere un numero intero, un carattere, o un’espressione logica. Così come i blocchi dell’istruzione IF_ELSE, i costrutti CASE possono anche essere etichettati con un nome.

Se il valore della espressione di CASE è compreso nell’intervallo dei valori inseriti nel selettore 1 verranno eseguite le istruzioni del blocco istruzione 1; mentre se il valore della espressione di CASE è compreso nell’intervallo dei valori di selettore 2 verranno eseguite le istruzioni del blocco istruzione 2 , e in modo simile per le altre alternative inserite nel costrutto.

La clausola CASE DEFAULT è opzionale e copre tutti gli altri possibili valori della espressione di CASE non previsti dalle altre istruzioni CASE. Se il blocco DEFAULT viene omesso e il valore di espressione non è compreso in un intervallo dei selettori, non sarà eseguita alcuna istruzione.

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Istruzione if nel Fortran


FORTRANL’istruzione if nel Fortran rappresenta una struttura per il controllo del flusso di informazioni che ci permette di valutare un’espressione logica e di eseguire un blocco di programma nell’ipotesi tale espressione risulti vera, mentre l’opzione else ci consente di eseguire un altro blocco di programma  nel caso la condizione imposta da if non si avveri.

La forma più generale del costrutto IF-THEN-ELSE-END IF è la seguente:

IF (espressione-logica) THEN
      blocco1
ELSE
     blocco2
END IF

dove le blocco1 e blocco2 sono sequenze di istruzioni eseguibili, e espressione-logica è ovviamente un’espressione logica. L’esecuzione di questo costrutto va come segue:

  • l’espressione logica viene valutata, ottenendo un valore logico
  • se il risultato è. TRUE., le dichiarazioni contenute nella blocco1 vengono eseguite
  • se il risultato è. FALSE., le dichiarazioni contenute nella blocco 2 sono eseguiti
  • dopo il termine dell’esecuzione di istruzioni in blocco 1 o blocco 2, la seguente dichiarazione END IF viene eseguita.

Esempio di codice fortran
Il seguente codice prima legge un intero e lo deposita in una variabile intera. Poi, se il numero può essere diviso per 2 (cioè, se il numero è un multiplo di 2),  l’istruzione WRITE (*,*) contenuta tra IF e ELSE viene eseguita e dimostra che il numero è pari, altrimenti, l’istruzione WRITE (*, * ) contenuta tra ELSE END IF viene eseguita e mostra che il numero è dispari.

function MOD(x, y)
!calcola il resto di x diviso y.
INTEGER :: Number

READ(*,*) Number
IF (MOD(Number, 2) == 0) THEN
    WRITE(*,*) Number, ‘ pari’
ELSE
    WRITE(*,*) Number, ‘ dispari’
END IF
end function

LINK DI APPROFONDIMENTO PER L’ARGOMENTO: