C – Le strutture
Una struttura è un insieme di variabili di uno o più tipi, raggruppate da un nome in comune. Anche i vettori sono collezioni di variabili come le strutture solo che un vettore può contenere solo variabili dello stesso tipo, mentre le variabili contenute in una struttura non devono essere necessariamente dello stesso tipo.
Le strutture del linguaggio C coincidono con quelli che in Informatica sono comunemente definiti record. Il raggruppamento sotto un nome comune permette di rappresentare, tramite le strutture, entità logiche in cui le variabili comprese nella struttura rappresentano gli attributi di tali entità. …l’articolo continua »
C – Un’applicazione del paradigma procedurale
Applicare un paradigma, in sostanza, vuol dire applicare una serie di regole ben determinate alla risoluzione di un problema. In definitiva significa vedere e affrontare la risoluzione del problema attraverso la lente delle regole del paradigma.
Applicare il paradigma procedurale alla programmazione vuol dire definire le procedure desiderate, concentrarsi sul processo, sull’algoritmo necessario per eseguire i calcoli. In questa parte si metterà in evidenza l’applicazione concreta del paradigma di programmazione procedurale a partire dalla ricerca dell’algoritmo risolutivo di un tipo di problemi. …l’articolo continua »
C – Due osservazioni. Il qualificatore const
Sono necessarie due osservazioni sulla codifica effettuata:
- La trasposizione in codifica delle singole fasi dell’elaborazione è stata effettuata con una combinazione di commenti e funzioni. Le funzioni avrebbero potuto essere di più: per esempio tante quante sono le parti in cui si è scomposto il programma. La scelta effettuata in questo caso ha tenuto conto del fatto di evitare una estrema polverizzazione in funzioni che avrebbe reso più difficoltosa la comprensione dell’algoritmo utilizzato per la risoluzione del problema. Quando si trattava di poche istruzioni, queste sono state inglobate nel programma principale. È bene ripetere che questa o altra scelta che è possibile effettuare, dipende dal modo come il programmatore intende organizzare le diverse fasi di lavoro. Bisogna in ogni caso ricordare che ogni parte del programma deve esprimere chiaramente quello che fa; organizzare il programma in modo che sia chiaro cosa si fa e dove ed inoltre ogni fase di lavoro deve quanto più possibile essere isolata.
- L’utilizzo della costante globale RILEVAZ rende dipendenti le funzioni da tale costante rendendo più problematico il riutilizzo delle funzioni stesse e il rintracciamento di eventuali errori.
È possibile dichiarare le costanti anche all’interno di una funzione utilizzando la parola chiave const. Es: …l’articolo continua »
C++ – Interfaccia e implementazione dei metodi di una classe
Negli esempi riportati tutta la definizione della classe è stata inserita in un unico file. In generale, però, il codice di una classe, una volta che questa è definita e testata, varia raramente. Cambiano invece molto spesso i programmi che utilizzano la classe. In progetti di grosse dimensioni ricompilare, ogni volta che si modifica qualcosa, anche parti di codice testate solo per il fatto di essere incluse, produce tempi lunghi di attesa. È per questo motivo che può essere conveniente scindere l’interfaccia della classe (quello che l’utilizzatore ha necessità di conoscere) dall’implementazione dei metodi della classe. …l’articolo continua »
C++ – Comunicazioni fra sottoprogrammi
Seguendo il procedimento per scomposizioni successive si arriva alla fine ad un programma principale e ad una serie di sottoprogrammi. Il programma principale chiama in un certo ordine i sottoprogrammi; ogni sottoprogramma oltre che chiamato può anche essere il chiamante di un ulteriore sottoprogramma, come nell’esempio proposto delle temperature, il sottoprogramma delle elaborazioni. Terminato il sottoprogramma l’esecuzione riprende, nel chiamante, dall’istruzione successiva alla chiamata. …l’articolo continua »
C++ – Un esempio di sviluppo top-down
In una località geografica sono state rilevate ogni 2 ore le temperature di una giornata. Si vuole conoscere la temperatura media, l’escursione termica e lo scostamento medio dalla media.
Si tratta di scrivere un programma che richiede alcune elaborazioni statistiche su una serie di valori. Si ricorda che la media aritmetica di una serie n di valori è data dal rapporto fra la somma dei valori della serie e il numero n stesso. L’escursione termica è in pratica il campo di variazione cioè la differenza fra il valore massimo e il valore minimo della serie di valori. Lo scostamento medio è la media dei valori assoluti degli scostamenti dalla media aritmetica, dove lo scostamento è la differenza fra il valore considerato della serie e la media aritmetica.
Innanzi tutto si può osservare che, qualunque sia il problema da risolvere, il processo di sviluppo di un programma avanza attraversando tre stadi: input dati da elaborare, elaborazione, output dei risultati ottenuti. …l’articolo continua »
C++ – Cenni sui linguaggi di programmazione
I linguaggi di programmazione permettono di scrivere algoritmi eseguibili da un sistema di elaborazione. Un algoritmo scritto in un linguaggio di programmazione viene chiamato programma e il processo di scrittura del programma, a partire dall’algoritmo, viene chiamato codifica. I linguaggi di programmazione sono costituiti da un insieme di parole chiavi (le parole che hanno un senso in quel linguaggio), un insieme di simboli speciali (caratteri con particolari significati come separatori, simboli di fine istruzione, ecc) e da un insieme di regole (la sintassi del linguaggio) che devono essere rispettate per scrivere programmi sintatticamente corretti.
Il linguaggio macchina costituito da zero ed uno è l’unico che può controllare direttamente le unità fisiche dell’elaboratore in quanto è l’unico comprensibile dall’elaboratore stesso. È però estremamente complicato scrivere programmi in tale linguaggio, naturale per la macchina, ma completamente innaturale per l’uomo. Per poter permettere un dialogo più semplice con la macchina sono nati i linguaggi di programmazione.
Il più vecchio linguaggio di programmazione è il linguaggio assembly. Il linguaggio assembly è una rappresentazione simbolica del linguaggio macchina. La scrittura di programmi è enormemente semplificata: il linguaggio assembly utilizza simboli facili da ricordare e non incomprensibili sequenze binarie. Per essere eseguito dall’elaboratore un programma in linguaggio assembly deve essere tradotto in linguaggio macchina; tale lavoro è a carico di un programma detto assemblatore. Questi due tipi di linguaggi, detti anche linguaggi di basso livello sono propri di ogni macchina. …l’articolo continua »
C++ – Cicli a contatore
Una applicazione diffusa dei contatori è quella di controllo delle elaborazioni iterative. Ci sono delle elaborazioni cicliche in cui è noto a-priori il numero degli elementi da elaborare e, in questi casi, un contatore, che si aggiorna ad ogni elaborazione effettuata (si pensi ad esempio ad un contachilometri di una automobile che si aggiorna in automatico ad ogni chilometro percorso), conteggia gli elementi che vengono trattati mano a mano. Appena il contatore raggiunge la quantità prestabilita, l’elaborazione ha termine.
In questi casi lo schema generale dell’elaborazione ciclica può assumere questo aspetto:
Ricevi Quantità elementi da elaborare Per contatore da 1 a quantità elementi da elaborare Ricevi elemento elabora elemento Fine-Per
C++ – Accumulatori e contatori
L’elaborazione ciclica è spesso utilizzata per l’aggiornamento di totalizzatori o contatori. Per chiarire meglio il concetto di totalizzatore, si pensi alle azioni eseguite dal cassiere di un supermercato quando si presenta un cliente con il proprio carrello pieno di merce. Il cassiere effettua una elaborazione ciclica sulla merce acquistata: ogni oggetto viene esaminato per acquisirne il prezzo. Lo scopo della elaborazione è quello di cumulare i prezzi dei prodotti acquistati per stabilire il totale che il cliente dovrà corrispondere.
Dal punto di vista informatico si tratta di utilizzare una variabile (nell’esempio potrebbe essere rappresentata dal totalizzatore di cassa) in cui il valore contenuto viene aggiornato per ogni prezzo acquisito: ogni nuovo prezzo acquisito non deve sostituire il precedente ma aggiungersi ai prezzi già acquisiti precedentemente. Tale variabile:
- dovrà essere azzerata quando si passa ad un nuovo cliente (ogni cliente dovrà corrispondere solamente il totale dei prezzi dei prodotti che lui acquista)
- si aggiornerà per ogni prodotto esaminato (ogni nuovo prezzo acquisito verrà cumulato ai precedenti)
- finito l’esame dei prodotti acquistati la variabile conterrà il valore totale da corrispondere.
La variabile di cui si parla nell’esempio è quella che, nel linguaggio della programmazione, viene definita un totalizzatore o accumulatore: cioè una variabile nella quale ogni nuovo valore non sostituisce ma si aggiunge a quelli già presenti in precedenza. Se la variabile si aggiorna sempre di una quantità costante (per esempio viene sempre aggiunta l’unità) viene chiamata contatore. …l’articolo continua »
Recuperare numeri dalle caselle di testo
In questa lezione vedremo come recuperare i numeri dalle caselle di testo per poi elaborarli all’ interno del nostro codice.
Creiamo un nuovo progetto: File > New Project dalla barra principale di visual C#.
Aggiungiamo una casella di testo ed un bottone, che dovranno avere le seguenti proprietà.
Casella di testo:
Name: tbFirstNumber
Size: 50, 20
Location: 40, 35
Text: 10
Bottone:
Name: btnAnswer
Size: 75, 25
Location: 90, 90
Text: Answer

