venerdì 29 novembre 2013

Algo Build


AlgoBuild è un software didattico per progettare programmi.
 
Presenta un ambiente visuale in cui disegnare dei flow-chart rispettando le regole della programmazione strutturata. 
Il programma prodotto viene visualizzato anche in forma di pseudo-codice.

Se le istruzioni vengono inserite rispettando una opportuna sintassi è possibile eseguire il programma passo-passo.
 
Lo stadio di sviluppo del software è, per ora, solo a livello di prototipo ed ha quindi possibilità ancora piuttosto limitate. 

Il metodo di utilizzo è particolarmente semplice:

Tra le ellissi Start e End si trova una freccia verso il basso.
Spostandovi il mouse sopra la freccia viene sostituita da un quadrato rosso.



 

Premendo il pulsante sinistro del mouse compare un menu da cui è possibile scegliere l'istruzione da inserire.

 

Nota: ogni freccia verso il basso è un punto in cui è possibile inserire una istruzione.

Per modificare le istruzioni è necessario spostare il puntatore del mouse sopra l'istruzione da modificare, premere il pulsante sinistro del mouse e scegliere Modifica dal menu.

Per copiare o tagliare un'istruzione, invece, premere il pulsante sinistro del mouse e scegliere Copia o Taglia dal menu.

Effetti:

  • Copia invia negli appunti una copia in formato testuale dell'istruzione scelta (è possibile inserirla in qualsiasi editor di testo...).
  • Taglia invia negli appunti una copia in formato testuale dell'istruzione scelta ed elimina l'istruzione stessa dal punto in cui si trovava.
Per incollare un'istruzione dagli appunti, spostare il puntatore del mouse sopra a un punto di inserimento (freccia verso il basso) premere il pulsante sinistro del mouse e scegliere Incolla dal menu.

E' inoltre possibile decidere se eseguire un programma passo-passo oppure in modalità temporizzata.

Per eseguire un programma in modalità passo passo, cioè una istruzione alla volta, è necessario che la casella "Passo passo" sia selezionata.
Premere il pulsante con la freccia verde sulla barra degli strumenti.
Ad ogni pressione l'esecuzione del programma avanza di una istrusione.
Alcune istruzioni (test e cicli) necessitano anche di più pressioni in quanto deve essere anche valutata la condizione o incrementate le variabili (for).
La casella di spunta "Traccia" riporta in output ogni messaggio e lo stato delle variabili a ogni istruzione.
Togliendo la spunta vengono visualizzati solo input e output.
Per interrompere l'esecuzione del programma prima di arrivare a END premere il pulsante con il quadrato rosso.
Se non si interrompe l'esecuzione non è possibile modificare il programma.
 
Note: se durante l'esecuzione vengono trovati degli errori (es. espressioni errate) il programma termina riportando un messaggio di errore.

Per eseguire un programma in modalità temporizzata, cioè un'istruzione dietro l'altra a intervalli di tempo regolari, invece, è necessario che la casella "Passo passo" sia deselezionata.

Premere il pulsante con la freccia verde sulla barra degli strumenti.
Il programma si avvia e avanza di una istrusione alla volta a intervalli regolari.
Alcune istruzioni (test e cicli) necessitano anche di più tempo in quanto deve essere anche valutata la condizione o incrementate le variabili (for).
Se durante l'esecuzione si preme il pulsante "Pausa Esecuzione" il programma viene fermato momentaneamente. Premendo "Esegui Istruzioni" riprende da dove era stato interrotto.
La modifica del tempo è recepita solo se il programma è in pausa o interrotto.
La casella di spunta "Traccia" riporta in output ogni messaggio e lo stato delle variabili a ogni istruzione.
Togliendo la spunta vengono visualizzati solo input e output.
Per interrompere l'esecuzione del programma prima di arrivare a END premere il pulsante con il quadrato rosso.
Se non si interrompe l'esecuzione non è possibile modificare il programma.

Note: se durante l'esecuzione vengono trovati degli errori (es. espressioni errate) il programma termina riportando un messaggio di errore.
Esempio di diagramma di flusso:




PROG pari o dispari
     OUT "Digitare un numero naturale:"
     IN numero
     ASSIGN resto = numero % 2
     IF resto == 0
          OUT "Il numero è pari!"
     ELSE //if resto == 0
          OUT "Il numero è dispari"
     END IF //resto == 0
END PROG //pari o dispari

 

venerdì 8 novembre 2013

Codice ASCII

Il codice ASCII (American Standard Code for Information Interchange) utilizza gruppi di 7 bit per codificare un gruppo di 128 tra caratteri numerici, alfanumerici, punteggiatura, simboli grafici e 32 codici per controllo periferiche e apparecchi di comunicazione.

A Maiuscola: 65

A Minuscola: 97

Numero 0: NUL

Caratteri non stampabili: 32

Numeri binari e trasformazioni

Il sistema binario è un sistema numerico posizionale in base 2, cioè che usa solamente due numeri (1 e 0) e la loro posizione cambia in funzione del loro valore. 
Noi generalmente usiamo il sistema numerico posizionale in base 10 o sistema numerico decimale (cioè usiamo 10 numeri).

Per trasformare numeri binari in numeri decimali e viceversa, bisogna applicare le seguenti regole schematizzate

Numeri Binari ---> Numeri Decimali         Numeri Decimali ---> Numeri Binari

1. Divisione                                            1.Potenza
2. Resto                                                  2.Prodotto
3. Inversione Resti                                  3.Somma

Qui di seguito vengono riportati degli esempi sotto forma di esercizio

  • Esercizio 1 : Trasformare da decimale in binario i seguenti valori mostrandone il procedimento ed il risultato finale
  1. 28
  2. 35
  3. 41

28 : 2 = 14   r.0
     14 : 2 = 7     r.0     
       7 : 2 = 3       r.1       
 3 : 2 = 1       r. 1
 1 : 2 = 0       r. 1

11100

35 : 2 = 17   r. 1
17 : 2 = 8     r. 1
8  : 2 = 4      r. 0
4  : 2 = 2      r. 0
2  : 2 = 1      r. 0
1  : 2 = 0      r. 1

100011
41 : 2 = 20  r.1
20 : 2 = 10  r.0
10 : 2 = 5    r.0
5 : 2 = 2      r.1
2 : 2 = 1      r.0
1 : 2 = 0      r.1

101001

  • Esercizio 2 : Trasformare i risultati ottenuti dalla risoluzione dei tre precedenti esercizi riportandoli ai corrispondenti valori decimali di partenza

11100=1 x 2^4 + 1 x 2^3 + 1 x 2^2 + 0 x 2^1 + 0 x 2^0=16 + 8 + 4 + 0 + 0=28
100011=1 x 2^5 + 0 x 2^4 + 0 x 2^3 + 0 x 2^2 + 1 x 2^1 + 1 x 2^0=32+0+0+0+2+1=35
101001=1 x 2^5 + 0 x 2^4 + 1 x 2^3 + 0 x 2^2 + 0 x 2^1 + 1 x 0^0=32+0+8+0+0+1=41