Programación C++: Introducción, ¡Razonemos un Poco!

introdución programación c++

Todos siempre se preguntan: ¿Cuál lenguaje de programación se debe estudiar primero, C o C++? Y desde mi experiencia, todos los autores coinciden en que C++ es mejor, ya que adquieres los conocimientos de C automáticamente. Ahora bien, lo difícil no está en aplicar un código; sino hacer que dicho código cumpla con las exigencias y expectativas de un posible usuario.

Las matemáticas, la contabilidad, estructuras discretas y otras materias, se hacen destacar acá puesto que aprender un código, ya está en muchos libros, pero el razonamiento que te lleva a asumir una perspectiva y a formarte una idea sobre los pasos que debes realizar para obtener un programa es lo que necesitamos y no está explícito en las explicaciones de programación. 

Empezaremos con unos ejercicios elementales, con el objetivo de ver cómo razonamos? cuáles son los errores comunes? qué necesitamos recordar de otras materias?. Tomaré los ejercicios de la Universidad Centroccidental Lisandro Alvarado, de la ing. informática:

ejercicios de programación en c++

El primer paso en cualquier ejercicio que se nos presente de programación será reconocer los términos o palabras que sugieren lo que debemos hacer, incluso las palabras que nos dicen quién debe hacerlas. Esto lo menciono, puesto que en el tema: programación orientada a objetos, debemos identificar las clases, y este es el método para saberlas con rapidez. Ubicamos palabras claves.

En el ejercicio nro 1. Las claves están en: costo, inicial, cuotas, 2 años. Sin duda alguna, necesitamos conocimientos básicos de contabilidad: cómo se calcula un porcentaje? a qué se refieren por cuotas mensuales?. 

Cómo saber el porcentaje dado un monto? utilizaremos la llamada regla de 3, sí el monto equivale al 100%, entonces el 20% equivale a? y así se obtiene el 20% de un monto. Por otra parte, en 2 años ¿cuántas cuotas mensuales existen? pues la cantidad de meses que hay en dos años, que son 24 meses, 24 cuotas mensuales.  Ya solo para terminar el ejercicio, debemos al monto restarle el porcentaje, y ese resultado dividirlo entre 24. El código en c++ queda así:

#include <iostream>
using namespace std;

int main() {
int cuota,inicial,costo;

cout << "Inserte el Costo del Curso en Bsf Aqui ";
cin >> costo;

inicial=costo*20/100;
cuota=(costo-inicial)/24;

cout << "La inicial a pagar es de Bsf " << inicial << endl;
cout << "El monto de las cuotas es de Bsf " << cuota << endl;

return 0;
}

Este código se realizó de forma similar al "Hello World" que viene por defecto en Eclipse, la única complejidad fue agregarle las fórmulas. 

Ahora, el segundo ejercicio se trata de determinar si un  número dado es par o impar! La mayoría asocia que un número es par porque al dividirlo entre 2 el resultado es exacto, es decir: 50/2=25 ¿cómo lo explico en términos de c++? Pues sencillo, debemos razonar en términos del residuo de la división, ya que si es cero el residuo de la operación, el número es par y de lo contrario, no lo será. Veamos el código:

#include <iostream>
using namespace std;

int main() {

int numero,resto;
cout << "Ingrese el numero: ";
cin >> numero;

resto=numero%2;

if (resto==0) cout << "el numero es par";
else cout << "el numero es impar";

return 0;
}

El ejercicio nro 3, se los dejo de práctica; en cambio el ejercicio nro 4, si me dió mucho que pensar! Puesto que cométi el error de pensar que los números enteros solo abarcaban del cero al nueve y miren como hice el ejercicio la primera vez:

#include <iostream>
using namespace std;

int main() {

char dia;
cout << "Introduzca un Numero del 0 al 9: ";
cin >> dia;

switch(dia)
{
case '0': cout << "Domingo";
break;
case '1': cout << "Lunes";
break;
case '2': cout << "martes";
break;
case '3': cout << "miercoles";
break;
case '4': cout << "jueves";
break;
case '5': cout << "viernes";
break;
case '6': cout << "sabado";
break;
case '7': cout << "domingo";
break;
case '8': cout << "Lunes";
break;
case '9': cout << "Martes";
break;
default: cout << "ingrese un numero del 0 al 9";
break;
}

return 0;
}

Me gustó porque ensayé lo que es el uso del case en c++, sin embargo, los números enteros son todos los números positivos y negativos! Por lo que, mi ejercicio está mal, porque estoy omitiendo una infinita cantidad de números. Ahora, cómo dividir los números para cada día? hay muchas opciones, como por ejemplo asignar cada cierta cantidad de números a cada día: del 0 al 20 es lunes y así; ó verlo de la manera en que lo hice: los números positivos y pares menores que cien, los números positivos e impares mayores que cien, los números negativos y menores que -mil y así sucesivamente a cada día dicha asignación, observemos en cuestión de código:

#include <iostream>
using namespace std;

int main() {
int n;
cout << "Introduzca un Numero Entero: ";
cin >> n;
if (n==1) cout << "Lunes";
else
if (n%2==0 and n<100 and n>0) cout << "Martes";
else
if (n%2==1 and n<100 and n>0) cout << "Miercoles";
else
if (n==-1*-n and n<-1000) cout << "Jueves";
else
if (n>100 and n%2==1) cout << "Viernes";
else
if (n>100 and n%2==0) cout << "Sabado";
else
if (n==-1*-n and n>-1000) cout << "Domingo";
return 0;
}

Evidentemente, cada quién escoge la manera mas fácil de realizar la asignación, la manera en que entiende la visión de los números enteros. Sin duda, hablar del residuo de una división y hacer comparaciones mayor y menor qué no es la mas sencilla de ver, pero es una que no falla.

múltiplos de un numero
El quinto ejercicio fue otro, que tuve que analizar muchas veces; dado que no es explícito. Los primeros n números? quién escoge cuantos n números estamos calculando? ¿qué dato es de mayor importancia a pedirle a un usuario para que el programa sea realmente útil? En vista, que la redacción no me da respuesta, me puse algo creativa y decidí ciertos objetivos:

40 es el 8vo múltiplo de 5.
25 es el 5to múltiplo de 5. 
Por ende, el usuario debe insertar cuál múltiplo desea calcular. Objetivo 1.
Cuántos múltiplos de 5 desea calcular? Objetivo 2.

El código ha quedado de la siguiente manera:

#include <iostream>
using namespace std;

int main() {
int z,n,m,a,p;
int x;
a=0;
z=0;
x=1;

while (x==1)
{
cout << "Cual Multiplo de 5 desea generar: ";
cin >> n;
m=5*n;
a=a+m;
z++;
p=a/z;
cout << "Desea Otro Múltiplo de 5? 1=si 2=no";
cin >> x;
}

cout << "Los N múltiplos de 5 " << endl;
cout << "La sumatoria de los Múltiplos de 5 es: " << a << endl;
cout << "El promedio de los Múltiplos de 5 es: " << p << endl;
return 0;
}

Como ven, deje que el usuario decidiera cuál múltiplo de 5 deseaba calcular; otra opción sería que el usuario dijera cuántos múltiplos desea calcular ó cuántos son los primeros múltiplos de 5 el que desea calcular. Claramente dependerá de nosotros. El promedio depende de la cantidad de números insertados, que de ser diferente la pregunta al usuario, este dato sería un dato fijo. Y estamos usando la sentencia while, tal como se nos exige. 

Debo resaltar, el número que le estoy pidiendo al usuario es 1er múltiplo, 6to múltiplo, 10mo múltiplo; por ello de manera interna se calcula a m, que hace el papel del múltiplo generado. Acá el objetivo no es identificar cuál múltiplo de 5 es el número ingresado.  

Es importante resaltar, que al inicio tuve un gran problema: el eclipse me daba por error el cout y el cin puesto que no me reconocía el iostream. Primero, me percaté de que en mi computador no existían las siguientes .dll: libgcc_s_dw21.dll y libstdc++-6.dll las cuales las encontré en http://es.dll-files.com/ las descargue y pegue en windows/system 32. Sin embargo, esto no solucionó  dicho error. Acudí al fabuloso grupo de programadores de google, quienes con tanto interés y pasión me ayudaron con sus opiniones para poder solucionar el error con eclipse. Y saben cuál fue la solución? crear todos mis proyectos en la base del hello world! De esta manera si me reconoce el iostream; de no haber sido por la ayuda de mis amigos programadores, estos ejercicios no hubiesen sido realizados. Así que de todo corazón, cuando tenemos una duda, un problema, busquemos respuestas, integrémonos como equipo y busquemos una solución; no dejemos que la angustia, la ansiedad, el orgullo o el ego nos aleje de crear maravillas. La programación es un mundo fascinante, porque integra todas las ciencias en un solo lugar. Aprovechemos cada materia porque son piezas que le dan vida a nuestro código.

Muchos éxitos! y a programar!


Anuncio

Comentarios