Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Práctica 1
Notas importantes:
• Si no os da tiempo de terminar todos los ejercicios durante la sesión de prácticas es muy
importante que los terminéis después por vuestra cuenta.
Ejercicio 1: Cread un proyecto C++ vacío en Visual Studio. Generad e incluid en el proyecto
los siguientes ficheros:
que retorna true si el valor de num está entre min y max, en otro caso retorna false.
Nota: Recordad que si un año es bisiesto el mes de febrero tiene 29 días. Un año es
bisiesto si es múltiplo de 4, pero no es múltiplo de 100 ni de 400.
Para llevar a cabo este ejercicio implementad en el fichero Session1.cpp las siguientes
funciones auxiliares:
˗ bool checkDate(int d, int m, int a) //retorna true si la fecha es correcta
˗ void showDate(int d, int m, int a) //muestra la fecha en formato(DD/MM/AAAA)
los parámetros de entrada a las funciones son los valores del día (d), mes (m) y año (a).
Una vez se han implementado las funciones anteriores, el flujo principal en la función main(),
que está en el fichero Principal.cpp, es:
void main()
{
::::::::
cout << "Fecha de Nacimiento, DD: ";
cin >> dia;
cout << " , MM: ";
cin >> mes;
cout << " , anyo: ";
cin >> anyo;
Modificad el código anterior de forma que el usuario tenga un máximo de 3 intentos para
introducir una fecha correcta. Finalmente, generad una función del tipo: void Fecha(),
que contenga el flujo principal del ejercicio, de tal forma que la función main() llame a ésta
función.
Informática Avanzada
Práctica 1
Nota: Recordad que los DNI/NIE llevan una letra al final que sirve para comprobar si hay
algún error en el número asociado. El número asociado es el número del DNI o el valor del
número del NIE sustituyendo la primera X, Y o Z por 0, 1 o 2, respectivamente. La letra de
control es la que se asocia a la tabla inferior según el valor del modulo del número asociado
por 23:
% 0 1 2 3 4 5 6 7 8 9 10 11
LETRA T R W A G M Y F P D X B
% 12 13 14 15 16 17 18 19 20 21 22
LETRA N J Z S Q V H L C K E
Por ejemplo: si el número del DNI es 12345678, el módulo por 23 es 14, y, por tanto, la letra
sería la Z: 12345678Z.
Para llevar a cabo este ejercicio implementad en el fichero Session1.cpp las siguientes
funciones auxiliares:
˗ bool checkDNI(string dniC) //retorna true si el DNI/NIE es correcto
˗ char checkNIE(char letter) //letter= 'X'/'Y'/'Z' retorna '0'/'1'/'2'
˗ string stringToUpper(string strToConvert) //convierte todos los caracteres
// del string en mayúscula y retorna el nuevo string
Los parámetros de entrada a las funciones son: dniC es el DNI/NIE, letter es la primera letra
del NIE, strToConvert es el DNI/NIE.
Una vez se han implementado las funciones anteriores, el flujo principal en la función main(),
que está en el fichero Principal.cpp, es:
void main()
{
:::::::
cout << "DNI: " ;
cin >> auxDNI;
if (checkDNI(auxDNI))
{
DNI = stringToUpper(auxDNI);
cout << DNI << endl;
}
:::
system("pause");
}
Modificad el código anterior de forma que el usuario tenga un máximo de 3 intentos para
introducir un NIE/DNI correcto.
Informática Avanzada
Práctica 1
Funciones útiles:
x % y Retorna el modulo de x respecto a y
length() Retorna la longitud de un string. Es una función del tipo de dato string.
Ejm:
string s;
longitud = s.length();
c_str() Devuelve un puntero a un array que contiene una secuencia de
terminación nula de caracteres. Es una función del tipo de dato string.
Ejm:
string s;
const char *numPtr = s. c_str();
int atoi(const char *numPtr); Convierte la porción inicial de la cadena apuntada por numPtr a una
representación de int. Retorna el valor convertido.
isdigit(ch) Comprueba sin un carácter es un dígito decimal. El valor de retorno será
no nulo si ch es un dígito decimal.
Toupper(ch) Convierte un carácter a mayúscula. Devuelve el valor convertido.