Corso C su Raspberry PI partendo da zero: cicli e condizioni

Dopo aver preso confidenza con il piccolo/grande Raspberry Pi e, soprattutto, con il suo compilatore, questa volta approfondiremo alcuni aspetti fondamentali della programmazione. Con le istruzioni che daremo in questa puntata sarete in grado di realizzare programmi iterativi e algoritmi capaci di prendere delle decisioni. Si tratta di concetti presenti anche in altri linguaggi di programmazione. Il materiale studiato è propedeutico alla programmazione definitiva di sistemi che possono interagire anche con la porta di I/O, al fine di poter pilotare dispositivi elettrici ed elettronici di qualsiasi tipologia.

Introduzione

Nella scorsa puntata si è visto come realizzare un semplice programma che potesse "comunicare" con l'operatore. Abbiamo appreso le tecniche per visualizzare messaggi e risultati e studiato anche i metodi per consentire l'immissione di dati numerici da tastiera, dietro richiesta da parte del PC.

Questa volta faremo molto di più. Impareremo a creare un software più "usabile" e più dinamico, che sappia districarsi tra varie evenienze e condizioni. La funzione del programmatore, infatti, è quella di far prevedere alla propria creatura qualsiasi tipologia di fatto, in modo da essere sempre pronto con la giusta sequenza di codice operativo. Gli esempi, di difficoltà sempre crescente, consentiranno di muovere i primi passi con disinvoltura e cognizione di causa. Inoltre essi avranno un carattere "tendente" all'elettronica, proprio in vista di futuri sviluppi del settore.

Ripetere comodamente un algoritmo

Abbiamo già visto il significato e la funzione di una variabile. Si supponga, adesso, di voler visualizzare a video, una tabella (tabella 1), riportante i valori di tensione, corrente e potenza circolanti in un circuito. Tale tabella deve essere, ovviamente, generata dal computer.

Tensione (Volt) Corrente (Ampere) Potenza (Watt)
5 3  15
10 6  60
15 9  135
20 12  240
25 15  375
30 18  540
35 21  735
40 24  960
45 27  1215
50 30  1500

Tabella 1: Tensione, corrente e corrispondente potenza

I valori dei Volt e degli Ampere sono già noti a priori e, come si vede, incrementano di 5 in 5 e di 3 in 3 (per una nostra libera scelta). Il valore della potenza, invece, è calcolato sulla base degli altri due, secondo la nota formula della legge di Ohm:

W=V*I

Senza un opportuna gestione del problema, un programmatore sprovveduto scriverebbe un codice molto lungo, magari funzionante ma non funzionale ed ottimizzato. Si limiterebbe, infatti, a scrivere e determinare i calcoli, riga per riga, e visualizzarli. Ecco di seguito un esempio sbagliato di programma, assolutamente da non seguire.

 

#include <stdio.h>
int main() {
   /*------Dichiarazione variabili-----*/ 
   int volt,ampere,watt;
   /*-----Primo calcolo------*/
   volt=5;
   ampere=3;
   watt=volt*ampere;
   printf("%2dV  %2dA  =  %2dW\n",volt,ampere,watt);
   /*-----Secondo calcolo------*/
   volt=10;
   ampere=6;
   watt=volt*ampere;
   printf("%2dV  %2dA  =  %2dW\n",volt,ampere,watt);
   /*-----Terzo calcolo------*/
   volt=15;
   ampere=9;
   watt=volt*ampere;
   printf("%2dV  %2dA  =  %2dW\n",volt,ampere,watt);
   /*-----Quarto calcolo------*/
   volt=20;
   ampere=12;
   watt=volt*ampere;
   printf("%2dV  %2dA  =  %2dW\n",volt,ampere,watt);
   /*-----Quinto calcolo------*/
   volt=25;
   ampere=15;
   watt=volt*ampere;
   printf("%2dV  %2dA  =  %2dW\n",volt,ampere,watt);
   /*-----Sesto calcolo------*/
   volt=30;
   ampere=18;
   watt=volt*ampere;
   printf("%2dV  %2dA  =  %2dW\n",volt,ampere,watt);
   /*-----Settimo calcolo------*/
   volt=35;
   ampere=21;
   watt=volt*ampere;
   printf("%2dV  %2dA  =  %2dW\n",volt,ampere,watt);
   /*-----Ottavo calcolo------*/
   volt=40;
   ampere=24;
   watt=volt*ampere;
   printf("%2dV  %2dA  =  %2dW\n",volt,ampere,watt);
   /*-----Nono calcolo------*/
   volt=45;
   ampere=27;
   watt=volt*ampere;
   printf("%2dV  %2dA  =  %2dW\n",volt,ampere,watt);
   /*-----Decimo calcolo------*/
   volt=50;
   ampere=30;
   watt=volt*ampere;
   printf("%2dV  %2dA  =  %2dW\n",volt,ampere,watt);
   return 0;
}

Come si vede, si tratta di uno stupidissimo programma che, di volta in volta, assegna alle rispettive variabili i corretti valori di tensione e di corrente, calcola la relativa potenza e stampa i risultati. Funziona perfettamente, ma è scritto [...]

ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 3292 parole ed è riservato agli abbonati PLATINUM. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici PREMIUM e PLATINUM e potrai fare il download (PDF) di tutti gli EOS-Book, Firmware e degli speciali MONOTEMATICI. ABBONATI ORA con PAYPAL è semplice e sicuro.

Abbonati alle riviste di elettronica

9 Commenti

  1. Maurizio Di Paolo Emilio Maurizio 1 marzo 2016
  2. Tony21 13 maggio 2016
  3. Tony21 16 maggio 2016
  4. rodolfok rodolfok 24 gennaio 2017
  5. Giovanni Di Maria Giovanni Di Maria 29 maggio 2017

Scrivi un commento

ESPertino è la nuova scheda per IoT compatibile ARDUINO.
Scopri come averla GRATIS!