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

 
Lletra del NIF

En aquesta pràctica coneixerem, sense entrar en massa detalls, els vectors de caràcters o cadenes de caràcters. Veurem quin és el senzill algorisme per trobar la lletra del NIF a partir de les xifres del DNI.

 

Desenvolupament de la pràctica

Creeu un nou arxiu del tipus C anomenat m2p03.c. Escriviu el següent codi:

//m2p03.c - lletra del NIF  -

#include <stdio.h>

void main(){

   int num;
   char lletra[]="TRWAGMYFPDXBNJZSQVHLCKE";

   printf("Introduïu el número del DNI(8 car) ");
   scanf("%d",&num);
   printf("\n NIF %d - %c\n\n",num,lletra[num%23]);

}

Captura de l'execució del programa.

 

Explicació del programa

Amb aquesta pràctica volem donar a conèixer un exemple de vector o array. Un vector és una col·lecció de dades del mateix tipus que s'emmagatzemen amb el mateix nom. Una cadena de caràcters és un vector de caràcters. Un vector de caràcters que pugui contenir una cadena de caràcters es pot declarar de la següent forma:

char nom_variable[nombre_de_caràcters];

o bé:

char nom_variable[]="cadena_d'inicialització";

En aquest programa s'ha optat per la segona forma, s'ha declarat un vector del tipus char amb el nom lletra d'una mida de 24 octects, 23 per guardar els 23 caràcters que hi ha entre dobles cometes, més un caràcter addicional '\0' que indicarà el fi de la cadena.

Per tal de referir-se a un dels elements d'un vector o cadena de caràcters s'escriu el nom del vector o cadena amb un nombre des del 0 fins al màxim nombre d'elements menys 1. Aquest número estarà tancat entre claudàtors [].

Per exemple, si hem definit la variable lletra d'aquesta forma:

 
char lletra[]="TRWAGMYFPDXBNJZSQVHLCKE";

lletra[0] conté el caràcter 'T', lletra[1] conté el caràcter 'R',...lletra[22] conté el caràcter 'E' i lletra[23] conté el caràcter de fi de cadena '\0'.

Per tal de conèixer la lletra del NIF només s'ha de dividir el número del DNI entre 23 i quedar-se amb la resta d'aquesta divisió (num%23). Aquesta resta serà un número comprés entre 0 i 22 i cadascú d'aquestes possibles restes correspon amb una lletra amb l'ordre en què s'ha definit la variable lletra.