Enrere Mòdul 2
Fonaments de Programació. Llenguatge C/C++---
Pràctica  Resum teòric Exercicis
Pràctica d'ampliació

 
Taula ASCII

La relació entre caràcters i nombres enters es fa a partir de la taula ASCII. En aquesta pràctica farem un programa per obtenir la taula ASCII completa.

 

Desenvolupament de la pràctica

Definiu un projecte nou anomenat m2p04 i afegiu-li un arxiu de font C/C++ anomenat m2p04.cpp. Escriviu el següent codi:

//m2p04.cpp taula ASCII

#include <stdio.h>
#include <stdlib.h>
#include
<conio.h>

void main(){

    unsigned char c;

    system("cls");
    printf("\nCodi ASCII estàndard\n\n");

    for(c=33;c<128;c++){
        printf("%c=%d\t",c,c);
    }

    printf("\npremeu una tecla per continuar");
   
getch();

    system("cls");
    printf("\nCodi ASCII ampliada\n\n");

    for(c=128;c<255;c++){
       printf("%c=%d\t",c,c);
    }

    printf("\n");

}

Explicació del programa

Encara que aquest programa conté una estructura de programació que encara no s'ha tractat: el bucle for, pot ser útil proposar-lo en aquest mòdul, on s'ha tractat l'equivalència entre els valors numèrics i els caràcters ASCII. En el següent mòdul s'estudiarà amb profunditat els bucles.

En primer lloc, aquest programa crida tres arxius capçalera:  stdio.hstdlib.h i conio.h. El primer és necessari per tal de fer servir les funcions ja estudiades: printf() i scanf(), el segon és necessari per a la funció system("cls") ja comentada al mòdul anterior. L'arxiu conio.h conté la declaració de la funció getch().

En primer lloc, es defineix una variable del tipus unsigned char. És necessari el modificador unsigned per tal de poder escriure nombres més grans que 127.

En la següent part de codi s'escriu el número i el caràcter dels codis des del 33 fins al 127 (els codis des del 0 fins al 32 no són imprimibles). Aquest codi correspon a un bucle de C/C++. El codi d'escapament \t és el codi del tabulador horitzontal ja tractat al mòdul 1.

 
for(c=33;c<128;c++){
    printf("%c=%d\t",c,c);
}

La següent part del codi fa que s'imprimeixi el missatge: "premeu una tecla per continuar" i el programa es deté fins que es prem una tecla

 
printf("\npremeu una tecla per continuar");
getch();

La funció getch() espera a que es premi un caràcter. Normalment aquesta funció forma part d'una sentència d'assignació per tal d'emmagatzemar en una variable el caràcter entrat des del teclat, però, en aquest programa ignorem el caràcter introduït, només es fa servir per tal d'aturar l'execució del programa fins que es premi la tecla.

A continuació s'esborra la pantalla i s'escriu el número i el caràcter dels codis des del 128 al 254.