Teniendo en cuenta que después de muchos años no he podido aprender a programar en C++ y que estoy ahora nuevamente intentándolo estoy escribiendo programas muy simples y elementales, y a partir de ahora publicare el código que escriba en el blog.
En general intentare que el código funcione y que la publicación sirva para que cualquier persona pueda si quiere indicarme mejoras o errores que este cometiendo.
Siempre agradeceré cualquier comentario o sugerencia y espero vuestra benevolencia ante este pequeño saltamontes del c ++.
Y para ir al grano este es el primer problema.
Enunciado
Una empresa maneja códigos numéricos con las siguientes características:
- Cada código consta de cuatro dígitos:
- El primero representa a una provincia.
- El segundo el tipo de operación.
- Los dos últimos el número de la operación.
Escriba un programa que lea de teclado un número de cuatro dígitos, almacenándolo
en una variable de tipo int, y posteriormente imprima en pantalla la siguiente
información.
PROVINCIA &
TIPO DE OPERACION &
NUMERO DE OPERACION &&
En caso de que el número no tenga exactamente cuatro dígitos, en lugar del mensaje
anterior, habrá que imprimir en pantalla el siguiente mensaje de error:
ERROR: CODIGO INVALIDO.
Código
// Incluir E/S y Librerías Standard
#include <iostream>
using namespace std;
// Zona de Declaración de Constantes
int divisor=10, digitos=4;
// Zona de Declaración de Tipos
// Zona de Cabeceras de Procedimientos y Funciones
// Programa Principal
int main()
{
// Zona de Declaración de Variables del Programa principal
int codigo, contador, mod, dividendo, provincia, t_operacion, n_operacion, var_temp;
// Codigo
cout << “Escriba el código” << endl;
cin >> codigo;
dividendo=codigo;
for (contador=1;contador<=(digitos-1);contador++)
{
mod=(dividendo%divisor);
dividendo=(dividendo/divisor);
if ( contador == 1) // Si es la primera division asigno el modulo a la variable temporal
{
var_temp = mod;
}
else if ( contador == 2) //Si es la segunda division sumo la variable temporal mas el produnto del modulo por 10 para optener los dos ultimos digitos
{
n_operacion = ((mod * 10) + var_temp);
}
else
{
t_operacion = mod; // En este punto se asignan la provincia y el t_operacion
provincia = dividendo;
}
}
if (dividendo > 9 || dividendo == 0)
{
cout << “ERROR: CODIGO INVALIDO.” << endl;
}
else
{
cout << “Provincia: ” << provincia << endl;
cout << “Tipo de operacion: ” << t_operacion << endl;
cout << “Numero de operacion: ” << n_operacion << endl;
}
return 0; // Valor de retorno al S.O.
}
// Implementación de Procedimientos y Funciones