Una tabella scritta in linguaggio c.

Hai mai provato a incolonnare dei dati in C? Per farlo correttamente dobbiamo imparare a tabulare il testo. Usando la sequenza speciale \t all’interno delle nostre printf, possiamo creare tabelle ordinate in poche righe di codice. In questo articolo vedremo come passare da una semplice lista disordinata a una struttura chiara con colonne per articoli, quantità e prezzi.

 

#include <stdio.h>

int main() {
printf(“Articolo \t Quantita \t Prezzo\n”);
printf(“——————————————\n”);
printf(“Pane \t 2 \t3.50 \n”);
printf(“Acqua \t 6 \t1.20 \n”);
return 0;
}

 

 

La variante in C++

Dopo aver visto come si fa in C, passiamo al C++. Anche in questo linguaggio possiamo organizzare i dati in modo ordinato creando una tabella. Il concetto di base non cambia: usiamo più righe di testo e il carattere speciale \t per saltare da una colonna all’altra. In C++ però, invece di printf, useremo l’istruzione cout per mandare i messaggi a video. Vediamo come trasformare il nostro programma.

 

#include <iostream>
using namespace std;

int main() {
// Intestazione della tabella con le tabulazioni (\t)
cout << “Articolo \t Quantita \t Prezzo” << endl;

// Una linea decorativa per separare i titoli dai dati
cout << “——————————————” << endl;

// Righe della tabella: ogni \t sposta il testo nella colonna successiva
cout << “Pane \t\t 2 \t\t 3.50” << endl;
cout << “Acqua \t\t 6 \t\t 1.20” << endl;
cout << “Focaccia \t 1 \t\t 4.00” << endl;

return 0;
}

 

 

Dichiarare una variabile intera.

 

Struttura di un programma in C: Esempio Pratico

Per imparare a programmare, dobbiamo distinguere due fasi principali nel codice: la sezione dichiarativa (dove “prepariamo” gli ingredienti) e la sezione esecutiva (dove facciamo “accadere” le cose).

Spiegazione delle Sezioni .

  • Librerie di sistema: Con #include <stdio.h> carichiamo le istruzioni che servono per leggere e scrivere (come la funzione printf).

  • Sezione Dichiarativa: Qui è dove diciamo al computer: “Ehi, mi serve una scatola chiamata tempo capace di contenere numeri interi (int)”. Poi, con l’uguale (=), mettiamo il numero 10 dentro quella scatola.

  • Sezione Esecutiva: È il cuore del programma. Usiamo la printf per mostrare il testo a video. Nota il segnaposto %d: serve a dire al computer di andare a leggere cosa c’è dentro la scatola tempo e scriverlo proprio in quel punto.

  • Il comando \n: Si chiama “carattere di escape” e serve per dire al programma di saltare alla riga successiva. Senza di lui, tutto il testo verrebbe scritto su una sola riga lunghissima!

 

#include <stdio.h> // Librerie di sistema

int main() // Inizio funzione main
{
/* SEZIONE DICHIARATIVA */
int tempo; // Dichiaro la variabile (riservo lo spazio)
tempo = 10; // Assegno il valore 10 alla variabile

/* SEZIONE ESECUTIVA */
printf(“\n Studio il linguaggio C da “);
printf(“%d”, tempo); // Stampa il valore della variabile
printf(” minuti”);
printf(“\n ed ho gia’ scritto un programma!”);

printf(“\n\n”);
return 0;
}

 

 

La versione in C++ .

Ecco  come cambia in C++ (che spesso è più intuitivo per i ragazzi perché non usa i segnaposto come %d), ecco lo stesso programma:

#include <iostream>
using namespace std;

int main()
{
/* SEZIONE DICHIARATIVA */
int tempo = 10;

/* SEZIONE ESECUTIVA */
cout << “\n Studio il linguaggio C++ da “;
cout << tempo; // In C++ basta “mandare” la variabile al cout
cout << ” minuti”;
cout << “\n ed ho gia’ scritto un programma!” << endl;

system(“PAUSE”);
return 0;
}

 

 


Le Variabili: Le “Scatole” della Memoria

Per poter elaborare dati, il computer ha bisogno di conservarli in posti specifici chiamati variabili. Immagina una variabile come una scatola con un’etichetta sopra: per crearla dobbiamo dire al computer che tipo di oggetto vogliamo metterci dentro e che nome dare alla scatola.

Analizziamo gli esempi della tabella:

1. I Numeri Interi (int)

 

int variabile1;
int num1, num2;

La parola int (che sta per integer) serve a contenere numeri interi, cioè senza virgola (come 5, -10 o 1000).

  • Possiamo dichiarare una variabile alla volta o più variabili insieme separate da una virgola (come nel caso di num1, num2), risparmiando tempo se sono dello stesso tipo.

 

2. I Caratteri (char)

char inizialeDelCognome;
char rosso, verde;

La parola char (character) serve per memorizzare un singolo carattere alfanumerico (una lettera come ‘A’, un simbolo come ‘!’ o un numero visto come testo).

  • Nota come i nomi delle variabili (es. inizialeDelCognome) seguano la regola del “Camel Case”: la prima lettera minuscola e le altre iniziali maiuscole per renderle leggibili.

3. I Valori Vero/Falso (bool)

bool avanti, finito;

Le variabili bool (boolean) sono le più semplici: possono contenere solo due stati: vero (true) o falso (false). In informatica sono fondamentali per prendere decisioni (ad esempio: “La gara è finita? Sì o No”).

4. I Numeri con la Virgola (float)

float reale;

Se dobbiamo memorizzare un prezzo, una temperatura o una media scolastica, usiamo float (floating point). Questo tipo di dato permette di gestire i numeri reali, ovvero quelli con la virgola.


Regole d’oro :

Due piccoli suggerimenti:

  1. Il Punto e Virgola:  in C e C++ ogni dichiarazione deve finire con ;. È come il punto fermo alla fine di una frase: dice al compilatore che l’istruzione è conclusa.

  2. Nomi Significativi: Evita di chiamare le variabili a, b, c. È molto meglio usare nomi come prezzoTotale o votoInformatica. Il codice sarà molto più facile da capire quando lo rileggerai dopo una settimana!

 


 

Per ogni variabile seguiremo i tre passaggi fondamentali: Dichiarazione, Assegnazione e Stampa.

C

#include <stdio.h>
#include <stdbool.h> // Necessaria per usare il tipo bool in C

int main() {
    /* 1. DICHIARAZIONE DELLE VARIABILI */
    int numeroIntero;
    float numeroDecimale;
    char carattere;
    bool valoreLogico;

    /* 2. ASSEGNAZIONE DEI VALORI */
    numeroIntero = 42;
    numeroDecimale = 15.50;
    carattere = 'G';     // I caratteri vanno tra apici singoli ' '
    valoreLogico = true; // Può essere true (1) o false (0)

    /* 3. SEZIONE ESECUTIVA (STAMPA A SCHERMO) */
    printf("--- ESEMPI DI VARIABILI IN C ---\n\n");

    // %d per gli interi
    printf("Intero (int): %d\n", numeroIntero);

    // %.2f per i decimali (limita a 2 cifre dopo la virgola)
    printf("Decimale (float): %.2f\n", numeroDecimale);

    // %c per i singoli caratteri
    printf("Carattere (char): %c\n", carattere);

    // %d per i booleani (il C stampa 1 per vero e 0 per falso)
    printf("Booleano (bool): %d\n", valoreLogico);

    printf("\n--------------------------------\n");

    return 0;
}


 





I punti chiave

  1. I Segnaposto (%): In C, la printf ha bisogno di sapere che tipo di “scatola” sta aprendo.

    • %d = Decimal (per gli interi).

    • %f = Float (per i numeri con la virgola).

    • %c = Char (per i caratteri).

  2. La libreria <stdbool.h>: È importante sapere che il linguaggio C originale non aveva il tipo bool. Per usarlo, bisogna aggiungere quella riga di #include all’inizio, altrimenti il compilatore darà errore.

  3. Apici per i caratteri: Molti studenti sbagliano usando le virgolette doppie " " per i caratteri. Spiega bene che:

    • 'A' (apici singoli) = Un solo carattere.

    • "Ciao" (virgolette doppie) = Una frase (stringa).

Esercizio: Prova a cambiare i valori assegnati (ad esempio metti il tuo numero preferito o l’iniziale del tuo nome) e riesegui il programma per vedere come cambia l’output!


 

 

Variante in C++

#include <iostream>
using namespace std;

int main() {
/* 1. DICHIARAZIONE DELLE VARIABILI */
int numeroIntero;
float numeroDecimale;
char carattere;
bool valoreLogico;

/* 2. ASSEGNAZIONE DEI VALORI */
numeroIntero = 42;
numeroDecimale = 15.5; // Senza iomanip, verrà stampato come 15.5
carattere = ‘G’;
valoreLogico = true;

/* 3. SEZIONE ESECUTIVA (STAMPA A SCHERMO) */
cout << “— ESEMPI DI VARIABILI IN C++ (SOLO IOSTREAM) —” << endl << endl;

// Stampiamo ogni tipo di dato usando le “frecce” <<
cout << “Intero (int): ” << numeroIntero << endl;
cout << “Decimale (float): ” << numeroDecimale << endl;
cout << “Carattere (char): ” << carattere << endl;

// Il booleano di default stampa 1 per true e 0 per false
cout << “Booleano (bool): ” << valoreLogico << endl;

cout << “\n————————————————-” << endl;

return 0;
}