Top

Cargando cosas bonitas...

Recargar...

Mi primer programa en C++ para calcular el volumen del cono y cilindro


programar-en-c++Estoy actualmente cursando el primer año del grado de Ingeniería Informática. Llevo apenas dos semanas aproximadamente teniendo un primer contacto con todas las asignaturas. Una de ellas, probablemente la que más me está interesando, es Fundamentos de la Programación. El objetivo de la materia es enseñarnos a programar, que no es más que buscar soluciones a problemas. Programar, al contrario de lo que mucha gente piensa, no es conocer la sintaxis de muchos lenguajes de programación. Para poder crear y buscar soluciones en formas de algoritmos eficaces, hay que pensar de una determinada manera y conocer la lógica de las máquinas. Por ello en los estudios que estoy realizando también tengo que cursar materias como Matemática Discreta y Lógica Matemática, Métodos Matemáticos de la Ingeniería o Fundamentos de los Computadores.

Volviendo al tema de la programación, en mi universidad han decidido centrarse en el robusto y popular lenguaje de programación C++. Se trata de un lenguaje compilado y que desde el punto de vista de los lenguajes orientados a objetos, el C++ es un lenguaje híbrido. Ha influido a otros lenguajes como Perl, Java, PHP, C#, entre otros.

Obviamente el primer programa que realicé en C++ fue el mundialmente conocido “Hola Mundo!”, sin embargo me parecía muy aburrido publicarlo en mi página web. Además que estoy más orgulloso del siguiente que hice 😉 Se trata de un simple programa que pregunta al usuario por teclado el valor de un radio y una altura, para después calcular el volumen de un cilindro y un cono con los datos introducidos anteriormente. La cosa no acaba aquí, decidí incorporarle un control de datos, ya que, el usuario que lo utilice podría ser un poco despistado e introducir valores negativos o nulos. En caso de que el operario introduzca un valor erróneo, el programa te avisará y ofrecerá la posibilidad de volver a introducir los valores de radio y altura.

He utilizado las bibliotecas de <iostream>, <cmath><cstdlib>, la primera permite usar la impresión de datos por pantalla y la introducción de datos por teclado, la segunda la necesito para las fórmulas del volumen de los cuerpos geométricos porque en ellas hay una potencia y con <cmath> es muy sencillo calcularla, y por último <cstdlib> la utilizo para evitar que el ejecutable se cierre sin haber antes pulsado una tecla que lo finalice.

Aquí te dejo el código de fuente del programa (volumenes.cpp).

#include <iostream>
using namespace std;
#include <cmath>
#include <cstdlib>

int main()
{
	double altura, radio, vcono, vcilindro;
	char pregunta;
	const double pi = 3.1416;
	cout << "Introduzca el RADIO del cono y del cilindro: ";
	cin >> radio;
	cout << "Introduzca la ALTURA del cono y del cilindro: ";
	cin >> altura;
	
	if (radio > 0 && altura > 0)
	{
		vcono = (altura * pi * pow(radio, 2)) / 3; // Fórmula para calcular el volumen del cono
		vcilindro = altura * pi * pow(radio, 2); // Fórmula para calcular el volumen del cilindro
		cout << "\n\nEl volumen del CONO de radio " << radio << " y altura " << altura << " es: " << vcono << " u^3" << endl; // Imprime el resultado
		cout << "El volumen del CILINDRO de radio " << radio << " y altura " << altura << " es: " << vcilindro << " u^3" << endl; // Imprime el resultado
	}
	else
	{
		cout << endl << endl << "El valor introducido NO ES CORRECTO, debe introducir un numero positivo > 0.";
		while (radio <= 0 || altura <= 0) // Comprueba que el resultado sigue siendo incorrecto para preguntar si desea repetir el cálculo
		{
			cout << endl << "Quieres intentarlo de nuevo? S/N: ";
			cin >> pregunta;
			if (pregunta == 'S' || pregunta == 's') // Comprueba que el usuario desea repetir el cálculo
			{
				cout << endl << "Introduzca el RADIO del cono y del cilindro: ";
				cin >> radio;
				cout << "Introduzca la ALTURA del cono y del cilindro: ";
				cin >> altura;
				if (radio > 0 && altura > 0)
				{
					vcono = (altura * pi * pow(radio, 2)) / 3;
					vcilindro = altura * pi * pow(radio, 2);
					cout << endl << endl << "El volumen del CONO es: " << vcono << " u^3" << endl;
					cout << "El volumen del CILINDRO es: "<< vcilindro << " u^3" << endl;
				}
				else
				{
					cout << endl << endl << "El valor introducido NO ES CORRECTO, debe introducir un numero positivo > 0.";
				}
			}
			else
			{
				return 0; // Finaliza el programa porque el usuario no quiere continuar
			}
		}

	}
	system("PAUSE");
	return 0;
}

Actualización (21/10/2015). También programé una aplicación que calculaba el área de triángulo pidiendo al usuario por teclado los valores de dos lados y el ángulo comprendido entre ellos. Consta de un control de datos y también pregunta al usuario si desea repetir la introducción de datos hasta que estos sean válidos.

Aquí te dejo el código de fuente del programa (areatriangulo.cpp).

#include <iostream>
using namespace std;
#include <cmath>
#include <cstdlib>

int main()
{
	double lado1, lado2, angulo, radianes, area;
	char pregunta;
	const double pi = 3.1416;
	
	cout << "-----------------------------------------------------------------------" << endl;
	cout << "Bienvenido a esta calculadora de areas de triangulos." << endl;
	cout << "-----------------------------------------------------------------------" << endl << endl;
	cout << "- Introduzca uno de los lados del triangulo: ";
	cin >> lado1;
	cout << endl <<"- Introduzca el otro lado del triangulo: ";
	cin >> lado2;
	cout << endl << "- Introduzca el angulo existente entre ambos lados: ";
	cin >> angulo;
	
	if (lado1 > 0 && lado2 > 0 && angulo > 0)
	{
		radianes = angulo * pi / 180;
		area = 0.5 * lado1 * lado2 * sin (radianes);
		cout << endl <<"-----------------------------------------------------------------------" << endl;
		cout << "EL AREA DEL TRIANGULO INDICADO ES: " << area << " u^2" << endl;
		cout << "-----------------------------------------------------------------------" << endl << endl;
	}
	else
	{
		cout << endl << "-----------------------------------------------------------------------" << endl;
		cout << "Alguno/s de los valores introducidos no son correctos, debe introducir numeros > 0.";
		while (lado1 <= 0 || lado2 <= 0 || angulo <= 0) // Comprueba que el resultado sigue siendo incorrecto para preguntar si desea repetir el cálculo
		{
			cout << endl << "Quieres intentarlo de nuevo? S/N: ";
			cin >> pregunta;
			if (pregunta == 'S' || pregunta == 's') // Comprueba que el usuario desea repetir el cálculo
			{
					cout << "-----------------------------------------------------------------------" << endl << endl;
					cout << "- Introduzca uno de los lados del triangulo: ";
					cin >> lado1;
					cout << endl << "- Introduzca el otro lado del triangulo: ";
					cin >> lado2;
					cout << endl << "- Introduzca el angulo existente entre ambos lados: ";
					cin >> angulo;
				if (lado1 > 0 && lado2 > 0 && angulo > 0)
				{
					radianes = angulo * pi / 180;
					area = 0.5 * lado1 * lado2 * sin (radianes);
					cout << endl << "-----------------------------------------------------------------------" << endl;
					cout << "EL AREA DEL TRIANGULO INDICADO ES: " << area << " u^2" << endl;
					cout << "-----------------------------------------------------------------------" << endl << endl;
				}
				else
				{
					cout << endl << "-----------------------------------------------------------------------" << endl;
					cout << "Alguno/s de los valores introducidos no son correctos, debe introducir numeros > 0.";
				}
			}
			else
			{
				return 0; // Finaliza el programa porque el usuario no quiere continuar
			}
		}

	}
	system("PAUSE");
	return 0;
}

1 Comentario

  • buenos dias a todos necesito AYUDA veran me pide que diseñe un septucodigo que le permita implementar el area y el volumen de una esfera y del cilindro en un solo devc+ pero con menus para poder ingresar ya sea a la esfera o cilindron,eligo una opcion por ejemplo el cilindro le pongo los dtos y ya dado los resultado me tiene q regresar al menu para elegir la otra opcion ,porfavor me pueden ayudar

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.