Guida di base alla programmazione e al linguaggio Pascal


Notice: wpdb::escape è deprecata dalla versione 3.6.0! Utilizzare al suo posto wpdb::prepare() or esc_sql(). in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-includes/functions.php on line 3851

Notice: wpdb::escape è deprecata dalla versione 3.6.0! Utilizzare al suo posto wpdb::prepare() or esc_sql(). in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-includes/functions.php on line 3851

Notice: wpdb::escape è deprecata dalla versione 3.6.0! Utilizzare al suo posto wpdb::prepare() or esc_sql(). in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-includes/functions.php on line 3851

Notice: wpdb::escape è deprecata dalla versione 3.6.0! Utilizzare al suo posto wpdb::prepare() or esc_sql(). in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-includes/functions.php on line 3851

Notice: wpdb::escape è deprecata dalla versione 3.6.0! Utilizzare al suo posto wpdb::prepare() or esc_sql(). in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-includes/functions.php on line 3851

Notice: wpdb::escape è deprecata dalla versione 3.6.0! Utilizzare al suo posto wpdb::prepare() or esc_sql(). in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-includes/functions.php on line 3851

Notice: wpdb::escape è deprecata dalla versione 3.6.0! Utilizzare al suo posto wpdb::prepare() or esc_sql(). in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-includes/functions.php on line 3851

Notice: wpdb::escape è deprecata dalla versione 3.6.0! Utilizzare al suo posto wpdb::prepare() or esc_sql(). in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-includes/functions.php on line 3851

Notice: wpdb::escape è deprecata dalla versione 3.6.0! Utilizzare al suo posto wpdb::prepare() or esc_sql(). in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-includes/functions.php on line 3851

Notice: wpdb::escape è deprecata dalla versione 3.6.0! Utilizzare al suo posto wpdb::prepare() or esc_sql(). in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-includes/functions.php on line 3851

Notice: wpdb::escape è deprecata dalla versione 3.6.0! Utilizzare al suo posto wpdb::prepare() or esc_sql(). in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-includes/functions.php on line 3851

Notice: wpdb::escape è deprecata dalla versione 3.6.0! Utilizzare al suo posto wpdb::prepare() or esc_sql(). in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-includes/functions.php on line 3851

La guida seguente è una introduzione alla teoria della programmazione imperativa e alle strutture con essa correlate.  La  guida si propone con un taglio molto pratico e orientato alla sperimentazione “sul campo” delle tecniche presentate: per questo motivo è stato scelto un linguaggio ormai obsoleto, ma molto adatto per la presentazione dei costrutti tipici di tutti i linguaggi moderni, il Pascal.

01. La programmazione

In questa prima lezione si analizza il termine programmazione e si spiega cosa sia la progettazione algoritmica, fino ad arrivare a parlare del linguaggio Pascal, della sua utilità e delle sue applicazioni. Viene introdotto il compilatore.

02. Basi sintattiche
In questo primo progetto vengono analizzate le basi del linguaggio Pascal, attraverso un progetto semplice ma efficace. Vengono mostrate la sintassi e la semantica del Pascal, oltre alle regole fondamentali per la scrittura di programmi.

03. L’assegnamento
Questo progetto introduce una struttura fondamentale della programmazione, ossia l’assegnazione di valori alle variabili.

04. Interi
In questo progetto, attraverso il lavoro di calcolo di quoziente e resto di una divisione, si parla diffusamente di variabili di tipo intero, operatori matematici e funzioni legate agli interi.

  • Documento: 04 Interi - 72.2 kB (Scaricato 616 volte)

05. Selezione
Si parla della struttura fondamentale della programmazione, ossia la selezione. Vengono quindi introdotti anche gli operatori relazionali.

06. Iterazione – parte 1
L’iterazione viene introdotta in questo progetto nelle sue due prime forme, ossia quella con condizione a priori e quella con condizioni a posteriori. Si tratta quindi della struttura repeat…until e quella while…do.

07. Scelta multipla
La scelta multipla non è una vera e propria struttura in Pascal, ma è comunque importante per eseguire determinati compiti utilizzando meno spazio. In questo progetto si vedrà come utilizzarla attraverso un problema pratico, ossia scrivere in lettere un numero.

08. Iterazione – parte 2
In questo progetto si torna a parlare di iterazione, intrucendo quella enumerativa, ossia la struttura for…to…do e for…downto…do. Viene fatto un piccolo appunto anche sull’importanza di questa struttura nella programmazione moderna.

09. Operatori logici – parte 1
In questa prima parte vengono introdotti gli operatori logici e la loro utilità. In particolare si analizza l’operatore NOT. Si parla di matematica parlando di logica bivalente e si analizza la tabella delle precedenze in Pascal.

10. Operatori logici – parte 2
Questo secondo progetto sugli operatori logici ha come tema centrale lo studio dell’operatore AND.

11. Operatori logici – parte 3
In questa ultima lezione sugli operatori logici si analizzano gli operatori XOR e OR, per concludere analizzando tautologie, contraddizioni ed origine della selezione.

12. Booleani
In questa lezione si analizzano le variabili di tipo booleano e le funzioni ad esse collegate.

  • Documento: 12 Booleani - 46.54 kB (Scaricato 565 volte)

Semplici esempi ASM x86


Notice: wpdb::escape è deprecata dalla versione 3.6.0! Utilizzare al suo posto wpdb::prepare() or esc_sql(). in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-includes/functions.php on line 3851

Notice: wpdb::escape è deprecata dalla versione 3.6.0! Utilizzare al suo posto wpdb::prepare() or esc_sql(). in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-includes/functions.php on line 3851

Notice: wpdb::escape è deprecata dalla versione 3.6.0! Utilizzare al suo posto wpdb::prepare() or esc_sql(). in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-includes/functions.php on line 3851

Notice: wpdb::escape è deprecata dalla versione 3.6.0! Utilizzare al suo posto wpdb::prepare() or esc_sql(). in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-includes/functions.php on line 3851

Notice: wpdb::escape è deprecata dalla versione 3.6.0! Utilizzare al suo posto wpdb::prepare() or esc_sql(). in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-includes/functions.php on line 3851

Questo articolo racchiude una serie di guide, programmazione ed esempi in Assembly x86 per semplici operazioni matematiche:

Progetto 1: Somma di due byte

Progetto per la realizzazione di un programma in grado di sommare due byte in memoria e depositare la somma come word in memoria.

Progetto 2: Somma di due word

Progetto per la realizzazione di un programma in grado di sommare due byte in memoria e depositare la somma come word in memoria.

Progetto 3: Riconoscere numeri pari

Dati due byte in memoria, determinare quanti di essi sono pari e scrivere il risultato in memoria.

  • Documento: Numeri pari - 151.64 kB (Scaricato 733 volte)

Progetto 4: Confronto di byte

Dati due byte in memoria, confrontarli e scrivere il maggiore dei due in una terza locazione.

Progetto 5: Prodotto di due byt

Dati due byte residenti in memoria, calcorarne il prodotto sia come somma ripetuta, sia con metodi combinatori.

Sistema di statistiche per la pallavolo con PIC 16F877, LCD, Tastiera, RS232, Portale Web


Notice: wpdb::escape è deprecata dalla versione 3.6.0! Utilizzare al suo posto wpdb::prepare() or esc_sql(). in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-includes/functions.php on line 3851

Scopo del progetto è la realizzazione di un sistema completo di rilevazioni statistiche relative ad una partita di pallavolo.

Il sistema si compone di:

  • Un dispositivo portatile per la rilevazione durante la partita
  • Un software per calcolatori elettronici (PC) che permetta il download dei dati dal dispositivo
  • Un software lato server che permetta l’archiviazione e la consultazione online di tutti i dati archiviati sulla base di dati

Sommario

  1. Descrizione completa PIC 16F877A
  2. Teoria della trasmissione seriale asincrona RS232
  3. Descrizione completa display LCD Hitachi HD44780
  4. Descrizione circuito ad alimentazione doppia
  5. Progettazione del database MySQL e interfaccia Web
  6. Sviluppo del progetto
  7. Conclusioni
  8. Parte in inglese

Documenti

  • Relazione completa e codice: SPA - 3.67 MB (Scaricato 4029 volte)

Pilotaggio di un motore passo passo con PIC16F84


Notice: wpdb::escape è deprecata dalla versione 3.6.0! Utilizzare al suo posto wpdb::prepare() or esc_sql(). in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-includes/functions.php on line 3851

Si desidera realizzare un controllo per un motore passo-passo a due fa- si più presa centrale per mezzo di un microcontrollore PIC 16F84A.
La console di comando prevede:

  • Un pulsante Start/Stop operante in modalità toggle
  • Un pulsante verso di rotazione (CW/CCW) operante in modalità toggle
  • Due interruttori switch, per mezzo dei quali è possibile selezionare quattro differenti velocità di rotazione
  • Due interruttori switch, per mezzo dei quali è possibile selezionare tre differenti modalità di rotazione del motore (Normal Drive, Full Step, Half Step)
  • Un led verde, indicante, quando acceso, la modalità Start
  • Un led rosso, indicante, quando acceso, il verso orario
  • Un Test Point per debug tramite oscilloscopio, generante un’onda quadra a 500Hz
  • Le uscite per i quattro poli del motore, collegate ad un buffer ULN2803A

Sommario

  1. Descrizione completa PIC 16F84 e suoi componenti
  2. Descrizione completa motori a passo
  3. Schema elettronico
  4. Programmazione

Documenti

Trasmissione seriale RS232 in C++


Notice: wpdb::escape è deprecata dalla versione 3.6.0! Utilizzare al suo posto wpdb::prepare() or esc_sql(). in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-includes/functions.php on line 3851

L’intento prefissato è l’ideazione, progettazione e realizzazione di un sistema di comunicazione tra sistemi a microprocessore, attraverso la porta seriale RS232. Il sistema è stato sviluppato sotto Windows in C++, mediante l’utilizzo di funzioni che richiamano gli interrupt software. Il protocollo di comunicazione sviluppato è di tipo Master/Slave con Eco.

Sommario

  1. Introduzione
  2. Progettazione generale del sistema
    1. Progettazione a strati
    2. Strato fisico
    3. Strato logico
    4. Strato di programmazione
  3. Analisi approfondita dello strato fisico
    1. Trasmissione in generale
    2. Trasmissione seriale asincrona
    3. Standard RS232/C
    4. Trasmissione null-modem
    5. Programmazione RS232/C
  4. Analisi approfondita dello strato logico
    1. Definizione del protocollo
    2. Studio del protocollo
    3. Limitazioni note
    4. Algoritmo “Master trasmette”
    5. Algoritmo “Master riceve”
    6. Unione algoritmi
  5. Programmazione
    1. Scelta del linguaggio
    2. Routine di base
    3. Traduzione degli algoritmi
    4. Software di supporto
    5. Codice completo del programma
  6. Conclusioni
  7. Appendici

Documenti

Puntatori a funzione


Notice: wpdb::escape è deprecata dalla versione 3.6.0! Utilizzare al suo posto wpdb::prepare() or esc_sql(). in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-includes/functions.php on line 3851

Una guida completa e ricca di esempi su una delle tecniche meno conosciute del C++.

Sommario

  1. Analisi approfondita dei puntatori a dato
  2. Puntatori a funzioni

Documenti

Overload degli operatori in C++


Notice: wpdb::escape è deprecata dalla versione 3.6.0! Utilizzare al suo posto wpdb::prepare() or esc_sql(). in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-includes/functions.php on line 3851

L’operator overloading rappresenta una delle tecniche più interessanti del linguaggio C++, ed è spesso stimolante per gli studenti la possibilità di dare agli operatori il significato da loro voluto. Tuttavia, l’overload degli operatori deve essere utilizzato con cautela: sovraccaricarli nel modo sbagliato può portare a codice ineseguibile, illeggibile o, ancora peggio, incomprensibile.
In questa guida, oltre alla mera sintassi, vengono spiegate le norme di buona programmazione per far sì che questa interessante funzionalità del linguaggio non si trasformi nel pretesto per rovinare i vostri programmi.

Sommario

  1. Introduzione all’overload degli operatori
  2. Principi di overload
  3. Overload di operatori binari
  4. Overload di operatori unari
  5. Overload di operatori di flusso
  6. Overload di operatori di casting
  7. Overload dell’operatore []
  8. Overload dell’operatore ()

Documenti

Lavorare con le date in C++


Notice: wpdb::escape è deprecata dalla versione 3.6.0! Utilizzare al suo posto wpdb::prepare() or esc_sql(). in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-includes/functions.php on line 3851

Notice: wpdb::escape è deprecata dalla versione 3.6.0! Utilizzare al suo posto wpdb::prepare() or esc_sql(). in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-includes/functions.php on line 3851

Questo programma, con presentazione allegata per le spiegazioni, manipola le date in modo numerico, per mostrare tutti gli algoritmi coinvolti. E’ inoltre presente una breve prefazione sull’origine dell’attuale calendario.

Sommario

  1. Storia del calendario
  2. Descrizione del codice

Funzioni realizzate

  • Lettura di una data
  • Verifica di una data
  • Verifica se un anno è bisestile o meno
  • Stampa di un calendario mensile

Documenti

Data e Ora di sistema in C++


Notice: wpdb::escape è deprecata dalla versione 3.6.0! Utilizzare al suo posto wpdb::prepare() or esc_sql(). in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-includes/functions.php on line 3851

Attraverso questo tutorial, vedremo come ottenere la data e l’ora di sistema, attraverso un metodo abbastanza semplice e che ha il vantaggio di essere compatibile con l’ANSI C e pertanto con la stragrande maggioranza dei compilatori.
Quello che vogliamo ottenere è un formato a noi, utile, che pertanto non sia una banale stringa, ma una serie di cifre intere che possano in seguito essere utilizzate anche per altri calcoli.
I tipi di dato che ci interessano sono contenuti in ctime, time.h per i vecchi compilatori.
In particolare questi sono il tipo time_t, atto a contenere il tempo trascorso dal 1 gennaio 1970 (in secondi, generalmente) e tm, una struttura formata da campi contenenti la data in un formato leggibile.

Documenti

Orologio digitale con l’utilizzo del TIC di sistema in ASM x86


Notice: wpdb::escape è deprecata dalla versione 3.6.0! Utilizzare al suo posto wpdb::prepare() or esc_sql(). in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-includes/functions.php on line 3851

L’articolo mostra il progetto e realizzazione di un semplice orologio digitale visualizzabile sullo schermo. Inizialmente l’orologio è sincronizzato con quello di sistema, dopodiché procede autonomamente grazie alla gestione del temporizzatore di sistema.

Documenti