Wednesday, February 1, 2023

Ejercicios Resueltos de c++ para Principiantes

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 debemos razonar antes de resolver un ejercicio de programación en c++? ¿cuáles son los errores más comunes en c++? ¿qué necesitamos aprender de otras materias para poder programar?. 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 rápidez. 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í:



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:



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:



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:



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.



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:



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 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.




Por otro lado, resolveremos un ejercicio en lenguaje c, utilizando la regla de 3. Al mismo ejercicio, le haré dos modificaciones, para irle aumentado su dificultad. 1: Una persona recibe un préstamo de Bs. 10000 de un banco y desea saber cuánto pagará de interés, si el banco le cobra una tasa del 27% anual.



Ejercicio 2: Una persona recibe un préstamo de Bs. ? de un banco y desea saber cuánto pagará de interés, si el banco le cobra una tasa del 27% anual.



Ejercicio 3: Una persona recibe un préstamo de Bs. ? de un banco y desea saber cuánto pagará de interés, si el banco le cobra una tasa del 27% anual. ¿Cuánto serían las cuotas mensuales en bs?.



programación en c boleto de viaje



Ejercicio 1. Calcula el precio de un boleto de viaje, tomando en cuenta el número de kilómetros que se van a recorrer, siendo el precio Bs/.10,50 por Km.



Ejercicio 2. Calcula el precio de un boleto de viaje, tomando en cuenta el número de kilómetros que se van a recorrer, siendo el precio Bs/. ? por Km.



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 programadoresde 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.

Ejercicios de Iniciación a la programación en lenguaje C. Academia Cartagena99.

He tomado esta guía para practicar con los ejercicios que no están resueltos. Les recomiendo descargar la guía porque tiene un excelente material educativo que sin duda los ayudará a profundizar en el aprendizaje sobre el lenguaje C. Sin embargo, he decidido agregar las respuestas haciendo uso del lenguaje c++. De este modo, estarán los ejercicios en ambos lenguajes y así se puede tener una mayor comprensión de las diferencias entre el lenguaje C y c++, así como sus similitudes.

Ejercicio Nro 1: leyendo números enteros.

En el primer ejercicio se nos pide escribir un programa donde el usuario ingrese un número entero y la respuesta del programa sea "Has introducido el número X, gracias". Desde el punto de vista del lenguaje C, lo primero que debemos hacer es declarar la variable donde se guardará la respuesta del usuario. Luego se imprime el mensaje para realizar la solicitud al usuario y se procede a escanear la respuesta. Para imprimir el número entero dentro de una oración se coloca el tipo de variable primero y al finalizar la respuesta, se coloca el nombre de la variable. Debemos recordar siempre:
  • Declarar las variables a utilizar
  • Solicitar al usuario el dato que necesitamos.
  • Escanear el dato solicitado, haciendo uso de la variable previamente declarada
  • Imprimir el resultado

El ejercicio en lenguaje C se vería así:



El código en lenguaje cpp queda así:


El próximo ejercicio se resuelve tomando en cuenta los pasos del anterior. Son idénticos los pasos pero varía el mensaje a imprimir. Consiste en escribir un programa que pregunte al usuario cuántos años tiene y conteste "ahora sé que tienes x años, gracias". El código en lenguaje C queda así:



El código en lenguaje cpp queda así:



Ejercicio Nro 2: leyendo letras.

Escribe un programa que pregunte al usuario sus iniciales y conteste diciendo "sus iniciales son xxx". En este ejercicio se declaró la variable de tipo char con 10 espacios para almacenar las iniciales. En realidad deberían ser 3 espacios porque en líneas generales, todos tenemos 4 iniciales. Es sólo para abarcar casos especiales. El ejercicio en lenguaje C quedaría de la siguiente manera:



En lenguaje c++, el código es el siguiente:




Ejercicio Nro 3: leyendo números con decimales

Escribe un programa que pregunte al usuario sus iniciales y su altura. Además, conteste diciendo "sus iniciales son xxx y su altura es: xxxx". Para la altura se utiliza una variable de tipo float porque la altura es un número con decimales. La altura no puede ser un número entero porque redondea el cálculo a 1 o 2 metros y no permite ser exactos. El código en lenguaje C quedaría asi:



El ejercicio en lenguaje c++ es el siguiente:



Ejercicio Nro 4: cálculo de precios con descuento

El ejercicio consiste en escribir un programa que dado el precio pueda calcular el descuento y le de al usuario el precio total con descuento incluído.

Este ejercicio se resuelve calculando el porcentaje del precio porque dicho porcentaje se refiere al descuento. Y como es el precio total, se debe restar el descuento al precio. Si pidieran el descuento se debería imprimir la variable luego del cálculo, pero como no es el caso, simplemente se mostrará el precio a pagar.



Ambos datos se han solicitado al usuario, pero puede existir que de antemano te den el descuento, en ese caso, se inicializa la variable con su respectivo valor. Y para ejercicios más avanzados, dan diferentes tipos de descuento, para ello, se utiliza el condicional if.

En lenguaje c++ es el siguiente:



Ejercicio Nro 5: cálculo de área y perímetro de un rectángulo

En este ejercicio se deben pedir al usuario los tamaños de los dos lados del rectángulo para calcular tanto el perímetro como el área. Cabe destacar que se puede inicializar cada variable al momento de declararlas, pero tan sólo para seguir un paso a paso, no lo hemos realizado. El ejercicio en lenguaje c, es el siguiente:



El ejercicio en c++ sería el siguiente:



Ejercicio Nro 6: cambio de dólares a euros

Para resolver el ejercicio deben realizar una regla de 3, pero, el valor del dólar debe estar pre-establecido al momento de inicializar la variable. En este caso, el valor del euro son 1.22350 dólares. El ejercicio en lenguaje c, estaría programado así:



El ejercicio en lenguaje c++ estaría programado así:



Ejercicio Nro 7: cálculo de perímetro de circunferencia, área del Circulo y volumen de la esfera

Para realizar este ejercicio deben tomar en cuenta que se puede hacer utilizando la librería math, pero puede ser que su profesor aún no la utilice. En ese caso, he dejado entre comentarios, la forma de realizarlo sin la librería math. Siempre la mejor opción es utilizar la librería math. El código en lenguaje c, es el siguiente:



La librería de matemática que se utiliza en c++ se llama cmath. En lenguaje c++ el código es el siguiente:



Ejercicio Nro 8: pasar de días, horas y minutos a segundos.

Para la ejecución de este ejercicio, es importante inicializar todas las variables en cero y llevar un orden del cálculo que se está realizando. En primer lugar se convierte de días a segundos, luego de horas a segundos y por último de minutos a segundos. Para terminar, se realiza la suma para dar el total de los segundos. El ejercicio en lenguaje c es este:



El código en lenguaje c++ es este:



Aciertos y calificaciones



Elabora un programa que calcule la regla de 3 de un valor de 25 aciertos que tenga como equivalencia 100% de calificación. Es importante, crear un ciclo do while para que se ejecute el cálculo únicamente 25 veces. De este modo, hay forma de limitar el funcionamiento del programa. Todas las acciones que estén dentro del ciclo se ejecutarán cuántas veces el ciclo esté activo. El código en lenguaje c++ se vería así:



vectores, listas o arrays

Los Vectores son listas que almacenan datos, o información sobre una clase en particular. Si tenemos un enunciado, podemos identificarlos de acuerdo al uso de los datos que nos dicen dentro del mismo; ejemplo: se necesita una lista de alumnos, clientes, pacientes; una lista con los números de cédula o pasaporte de los clientes de una aerolínea, quienes cancelaron mas del monto promedio, cuáles alumnos quedaron aplazados en una sección. En fin, tienen muchos usos y utilidad los vectores como parte de C++.

A continuación veremos unos métodos dado un ejercicio los cuáles nos guiarán sobre el uso de los vectores.



Cabe destacar, que la metodología que utilizaremos es la programación orientada a objetos. Hemos programado la clase MPaciente, MClinica, VClinica, Controlador y Principal. En la clase MPaciente, hemos programado los datos del paciente: motivo de la visita, turno, y monto cancelado; de la manera usual, para crear una clase, con los respectivos sets y gets. No hay cálculos en esta clase.



Debemos recordar, que los datos nombre y cédula se heredan de la clase MPersona.

Ahora en MClinica incluimos a la clase paciente como un vector, pues en las salidas nos piden un listado de paciente por consulta, dónde utilizaremos los métodos de incluir, buscar y size: acá veamos cómo queda:



Ahora para dar respuesta a la cantidad de pacientes atendidos por turnos, haremos los siguientes métodos:



Para saber cuál fue el monto recolectado por consulta o por hospitalización sólo debemos acumular el monto sólo si el motivo fue consulta o hospitalización respectivamente:



Como necesitamos saber cuál fue el mayor monto cobrado en las consultas y que nos muestre un listado de las cédulas que pagaron dicho monto, haremos dos métodos: el primero que calcule el mayor monto cobrado y el segundo que haga una comparación y guarde las cédulas que cancelaron dicho monto.



Ahora bien, hasta este momento estamos listos con respecto a los requerimientos de la práctica, pero ¿cómo haríamos si nos piden el monto promedio cobrado en relación a todos los pacientes atendidos? Debemos crear un acumulador que guarde todos los montos cobrados y los divida entre el size del vector de los pacientes, ya que el size nos da la cantidad de pacientes atendidos en total. Recordar que se debe validar que no exista la división entre cero puesto que nos daría un error.



Y si nos pidieran: ¿cual es el porcentaje de pacientes que cancelaron un monto mayor al promedio? Puesto que estamos trabajando en base a porcentaje, utilizaremos el método anterior para apoyarnos en la resolución de éste. Siempre verificando que la división no sea entre cero. Utilizaremos un contador de pacientes que cancelaron mas del monto promedio y lo multiplicamos por cien dado que es un porcentaje, para luego dividirlo entre la cantidad de pacientes atendidos, por medio del uso del size.



Si quisiéramos comparar cuál fue el motivo (consulta o hospitalización) con mayor monto recaudado, debemos crear un método que guarde los montos de hospitalización (puesto que ya está hecho el método de consulta) y luego otro método que compare ambos montos y retorne un string con la respuesta; tomando en cuenta que puede ser iguales los montos obtenidos.



Si quieren ver cómo funcionan todos los métodos ensamblados aquí les dejo:

El programa con los requerimientos netos de la práctica: Clinica
El programa con las sugerencias adicionales: Clinica con Requerimientos

Libros Recomendados:

1 comment:

Rosmaris Rondón said...

Hola, podrían ayudarme con este programa
A Pedro Luis le encanta ir a jugar Bingo, al Bingo Charaima, al cual va todos los viernes a
jugar un rato, Pedro, utiliza únicamente un solo cartón para jugar. Por lo tanto, se sabe que un
bingo tiene 75 números, partiendo del 01 al 75, los cuales van saliendo de manera aleatoria cada
turno y el cartón que juega Pedro tiene una capacidad de 25 números repartidos en 5 filas con 5
columnas, entonces, con los datos anteriormente estipulados realice un programa que se ejecute y
compile en C donde se requiere:
1. Realizar un recorrido, el cual verifique que los números que van saliendo por turno, se
encuentran en la fila y columna del cartón de Pedro, si, el número que sale coincide
con uno del cartón, se necesita mostrar en pantalla y tacharlo.
2. Realizar las comprobaciones para que los números que salgan cada turno, no se repitan,
y estos sigan saliendo hasta que el jugador haya completado el cartón o la misma esfera
se quede sin números que mostrar.
3. Se requiere verificar cuando el jugador complete una sola columna para que cante y
muestre en pantalla que el jugador completo la línea.
4. Finalmente, se requiere verificar cuando el jugador haya completado el cartón de bingo
en su totalidad, para que cante bingo y se muestre en pantalla que ha ganado.

Note: I earn a commission on qualifying purchases as an Amazon Associate, at no additional cost to you.

Disclaimer: The coloring pages available on this blog are created as fan art and are intended for personal and non-commercial use only. The characters and images depicted in these coloring pages are the property of their respective copyright holders. We do not claim ownership of the characters or images used in these coloring pages. The availability of these coloring pages on this blog is not intended to infringe upon any copyright laws. If you are the rightful owner of any content used and wish for it to be removed, please contact us directly, and we will promptly address your concerns. Thank you for understanding.
Violeta León. Powered by Blogger.