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 3893

Notice: Trying to access array offset on value of type bool in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-content/plugins/download-monitor/classes/downloadable_file.class.php on line 113

Notice: Trying to access array offset on value of type bool in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-content/plugins/download-monitor/classes/downloadable_file.class.php on line 114

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 3893

Notice: Trying to access array offset on value of type bool in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-content/plugins/download-monitor/classes/downloadable_file.class.php on line 113

Notice: Trying to access array offset on value of type bool in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-content/plugins/download-monitor/classes/downloadable_file.class.php on line 114

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 3893

Notice: Trying to access array offset on value of type bool in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-content/plugins/download-monitor/classes/downloadable_file.class.php on line 113

Notice: Trying to access array offset on value of type bool in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-content/plugins/download-monitor/classes/downloadable_file.class.php on line 114

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 3893

Notice: Trying to access array offset on value of type bool in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-content/plugins/download-monitor/classes/downloadable_file.class.php on line 113

Notice: Trying to access array offset on value of type bool in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-content/plugins/download-monitor/classes/downloadable_file.class.php on line 114

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 3893

Notice: Trying to access array offset on value of type bool in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-content/plugins/download-monitor/classes/downloadable_file.class.php on line 113

Notice: Trying to access array offset on value of type bool in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-content/plugins/download-monitor/classes/downloadable_file.class.php on line 114

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 3893

Notice: Trying to access array offset on value of type bool in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-content/plugins/download-monitor/classes/downloadable_file.class.php on line 113

Notice: Trying to access array offset on value of type bool in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-content/plugins/download-monitor/classes/downloadable_file.class.php on line 114

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

Alberi binari


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 3893

Notice: Trying to access array offset on value of type bool in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-content/plugins/download-monitor/classes/downloadable_file.class.php on line 113

Notice: Trying to access array offset on value of type bool in /web/htdocs/www.andrea-asta.com/home/portfolio2/wp-content/plugins/download-monitor/classes/downloadable_file.class.php on line 114

Una delle strutture fondamentali di tutta la programmazione è l’albero. Esiste un particolare tipo di albero, detto binario, che per le sue particolari proprietà si presta molto bene ad alcuni tipi di operazioni, quali l’analisi di espressioni matematiche o la ricerca dicotomica.
Particolari tipi di alberi binari sono utilizzati come nuovi tipi di strutture dati, particolarmente ottimizzati per operazioni di ricerca o ordinamento: è il caso degli heap, degli alberi di ricerca e così via.
In questo fascicolo analizzeremo tutti gli algoritmi basilari per la gestione di un albero binario, partendo dalle definizioni e ragionando su ogni algoritmo.
Il linguaggio scelto per la stesura dei programmi è il C++, anche se in realtà saranno utilizzati concetti del tutto compatibili con il C. E’ da sottolineare, tuttavia, che il codice è compilabile in ANSI C++, per la compilazione in C saranno necessarie alcune modifiche. Quindi quando vedete scritto [C/C++] non significa che il codice è compilabile in C, ma solo che la sintassi utilizzata non prevede elementi proprietari del C++, quali classi, template, reference e così via.
Naturalmente questo fascicolo è dedicato esclusivamente alla parte relativa all’albero binario come struttura dati, quindi tutti i discorsi relativi alla sintassi del linguaggio adottato sono dati per scontati. In particolare, è bene avere buona padronanza delle strutture, dei puntatori e delle funzioni ricorsive, anche se quest’ultimo punto è presente una piccola digressione.

Sommario

  1. Teoria degli alberi binari
  2. Implementazione di un albero binario
  3. Teoria della ricorsione
  4. Algoritmi di base

Documenti