PPrrááccttiiccaass ddee CC++++
PPrraaccttiiccaa NNºº 66
IInnffoorrmmááttiiccaa IIII
FFuunnddaammeennttooss ddee PPrrooggrraammaacciióónn
Prof. Dr. Paul Bustamante
Practica Nº6 Programación en C++ Pág. 1
Informática II – Fundamentos de Programación - Tecnun
ÍÍNNDDIICCEE
ÍNDICE ........................................................................................................................................ 1
1. Introducción...................................................................................................................... 1
1.1 Ejercicio 1: Mi primera Función................................................................................ 1
1.2 Ejercicio 2: Función Calculo...................................................................................... 1
1.3 Ejercicio 3: complejos con Funciones........................................................................ 2
11.. IInnttrroodduucccciióónn..
Como ya lo hemos venido haciendo, el primer ejercicio de esta práctica debe realizarlo
solo, con el fin de que pueda ganar más experiencia en la programación en C++.
En algunos ejercicios se dará el código, lo que no significa que sólo tenga que
escribirlo en el ordenador, debe tratar de realizarlos por su cuenta.
Recuerde borrar los ficheros que estén en los subdirectorios debug y release del
proyecto, para que libere espacio en su disco G.
1.1 Ejercicio 1: Mi primera Función
Este ejercicio pretende introducirle en el uso de las funciones. Para ello vamos a hacer una
sencilla función que calcule el área de un triángulo. Como bien sabrá, para calcular el área de
un triángulo es necesario conocer la base y la altura. Estos datos debe pedirlos al usuario y
luego calcular el área por medio de la función.
Crear el proyecto Ejer1 y el fichero AreaTriangulo.cpp (con el sgte. código):
#include <iostream.h>
float AreaTriangulo( float , float ); //declaración
void main(void)
{
float base,alt;
cout << "Escribe la base: " ;
cin >> base;
cout << "Escribe la altura: " ;
cin >> alt;
cout << "El area del triangulo es: " << AreaTriangulo(base,alt);
}
float AreaTriangulo( float b, float h)
{
float tmp = b*h/2.0;
return tmp;
}
1.2 Ejercicio 2: Función Calculo
Vamos a introducirnos en el cálculo de la posición de un cuerpo en caída libre. La ecuación
que rige este movimiento es:
0.2
* 2
tg
hy −= h: altura inicial (mts.) g: 9.81m/s^2
El ejercicio consiste en ir sacando por la consola las posiciones del cuerpo para un
determinado diferencial de tiempo (dt), hasta que el cuerpo llegue a la superficie. Se debe ir
almacenando el tiempo para ver cúal es la duración de la caída.
Practica Nº6 Programación en C++ Pág. 2
Informática II – Fundamentos de Programación - Tecnun
Los datos que el usuario debe dar son dos:
1) Altura de la caída del cuerpo (en mts.).
2) Diferencial de tiempo para el cálculo (en milisegundos).
La estructura del programa podría ser la siguiente:
#include <iostream.h>
#include <math.h>
void Calcula(float alt, float dt);
void main(void)
{
float alt, dt, tot;
cout << "Escribe la altura de la caida: " ;
cin >> alt;
cout << "Escribe el dt(ms) para el calculo: " ;
cin >> dt;
tot = Calcula(alt,dt);
cout << "Tiempo total en caer(ms): " << tot << endl;
}
float Calcula(float alt, float dt)
{
//escribir el código de la función
return ??
}
Recuerde que el tiempo al inicio es cero, luego debe ir incrementándolo de acuerdo a
lo que el usuario ha especificado por medio de dt. La función calcula debe devolver el tiempo
total de la caída e imprimirlo al final de main.
Para hacer este programa crea el proyecto Ejer2 y el fichero CaidaLibre.cpp.
1.3 Ejercicio 3: complejos con Funciones
Este ejercicio consiste en hacer un programa que sume, reste, multiplique y divida 2
complejos, tal como en la práctica anterior, con la salvedad que ahora, como ya hemos
aprendido en clase cómo se declaran y usan las funciones, tenemos que hacerlo todo con
funciones, de tal forma que vamos dotar de modularidad a nuestro programa.
A continuación se muestra parte del código, el cual Ud. debe completar para hacer todo lo que
se pide:
#include <iostream.h>
struct complejo{
float r,i;
};
int Menu();
complejo GetComplejo();
PrtComplejo( complejo c);
complejo Suma( complejo c1, complejo c2);
void main()
{
complejo c1,c2,c3;
char *operador[]={" +"," -"," *"," /"};
Practica Nº6 Programación en C++ Pág. 3
Informática II – Fundamentos de Programación - Tecnun
while(true){
int opt=Menu();
if (opt==5) break;
c1=GetComplejo();
c2=GetComplejo();
switch(opt){
case 1: c3=Suma(c1,c2); break;
case 2: /*c3=Resta(c1,c2);*/ break;
case 3: /*c3=Multiplica(c1,c2);*/ break;
case 4: /*c3=Divide(c1,c2);*/ break;
}
PrtComplejo(c1);
cout << operador[opt-1];
PrtComplejo(c2);
cout << "n -------- ";
PrtComplejo(c3);
}
}
complejo Suma( complejo c1, complejo c2)
{
complejo c;
c.r=c1.r+c2.r;
c.i=c1.i+c2.i;
return c;
}
PrtComplejo( complejo c)
{
cout << "n(" << c.r << "," << c.i<<"i)";
}
complejo GetComplejo()
{
complejo c1;
char ch;
cout << "Dar r,i: ";
cin >> c1.r >> ch >> c1.i;
return c1;
}
int Menu()
{
int opt;
while(true){
cout << "nn**** Menu ****";
cout << "n1. Sumar";
cout << "n2. Restar";
cout << "n3. Multiplicar";
cout << "n4. Dividir";
cout << "n5. Salir";
cout << "ntOpcion: ";
cin >> opt;
if (opt > 0 && opt < 6) return opt;
}
}

Cur04 05 pract06c++

  • 1.
    PPrrááccttiiccaass ddee CC++++ PPrraaccttiiccaaNNºº 66 IInnffoorrmmááttiiccaa IIII FFuunnddaammeennttooss ddee PPrrooggrraammaacciióónn Prof. Dr. Paul Bustamante
  • 2.
    Practica Nº6 Programaciónen C++ Pág. 1 Informática II – Fundamentos de Programación - Tecnun ÍÍNNDDIICCEE ÍNDICE ........................................................................................................................................ 1 1. Introducción...................................................................................................................... 1 1.1 Ejercicio 1: Mi primera Función................................................................................ 1 1.2 Ejercicio 2: Función Calculo...................................................................................... 1 1.3 Ejercicio 3: complejos con Funciones........................................................................ 2 11.. IInnttrroodduucccciióónn.. Como ya lo hemos venido haciendo, el primer ejercicio de esta práctica debe realizarlo solo, con el fin de que pueda ganar más experiencia en la programación en C++. En algunos ejercicios se dará el código, lo que no significa que sólo tenga que escribirlo en el ordenador, debe tratar de realizarlos por su cuenta. Recuerde borrar los ficheros que estén en los subdirectorios debug y release del proyecto, para que libere espacio en su disco G. 1.1 Ejercicio 1: Mi primera Función Este ejercicio pretende introducirle en el uso de las funciones. Para ello vamos a hacer una sencilla función que calcule el área de un triángulo. Como bien sabrá, para calcular el área de un triángulo es necesario conocer la base y la altura. Estos datos debe pedirlos al usuario y luego calcular el área por medio de la función. Crear el proyecto Ejer1 y el fichero AreaTriangulo.cpp (con el sgte. código): #include <iostream.h> float AreaTriangulo( float , float ); //declaración void main(void) { float base,alt; cout << "Escribe la base: " ; cin >> base; cout << "Escribe la altura: " ; cin >> alt; cout << "El area del triangulo es: " << AreaTriangulo(base,alt); } float AreaTriangulo( float b, float h) { float tmp = b*h/2.0; return tmp; } 1.2 Ejercicio 2: Función Calculo Vamos a introducirnos en el cálculo de la posición de un cuerpo en caída libre. La ecuación que rige este movimiento es: 0.2 * 2 tg hy −= h: altura inicial (mts.) g: 9.81m/s^2 El ejercicio consiste en ir sacando por la consola las posiciones del cuerpo para un determinado diferencial de tiempo (dt), hasta que el cuerpo llegue a la superficie. Se debe ir almacenando el tiempo para ver cúal es la duración de la caída.
  • 3.
    Practica Nº6 Programaciónen C++ Pág. 2 Informática II – Fundamentos de Programación - Tecnun Los datos que el usuario debe dar son dos: 1) Altura de la caída del cuerpo (en mts.). 2) Diferencial de tiempo para el cálculo (en milisegundos). La estructura del programa podría ser la siguiente: #include <iostream.h> #include <math.h> void Calcula(float alt, float dt); void main(void) { float alt, dt, tot; cout << "Escribe la altura de la caida: " ; cin >> alt; cout << "Escribe el dt(ms) para el calculo: " ; cin >> dt; tot = Calcula(alt,dt); cout << "Tiempo total en caer(ms): " << tot << endl; } float Calcula(float alt, float dt) { //escribir el código de la función return ?? } Recuerde que el tiempo al inicio es cero, luego debe ir incrementándolo de acuerdo a lo que el usuario ha especificado por medio de dt. La función calcula debe devolver el tiempo total de la caída e imprimirlo al final de main. Para hacer este programa crea el proyecto Ejer2 y el fichero CaidaLibre.cpp. 1.3 Ejercicio 3: complejos con Funciones Este ejercicio consiste en hacer un programa que sume, reste, multiplique y divida 2 complejos, tal como en la práctica anterior, con la salvedad que ahora, como ya hemos aprendido en clase cómo se declaran y usan las funciones, tenemos que hacerlo todo con funciones, de tal forma que vamos dotar de modularidad a nuestro programa. A continuación se muestra parte del código, el cual Ud. debe completar para hacer todo lo que se pide: #include <iostream.h> struct complejo{ float r,i; }; int Menu(); complejo GetComplejo(); PrtComplejo( complejo c); complejo Suma( complejo c1, complejo c2); void main() { complejo c1,c2,c3; char *operador[]={" +"," -"," *"," /"};
  • 4.
    Practica Nº6 Programaciónen C++ Pág. 3 Informática II – Fundamentos de Programación - Tecnun while(true){ int opt=Menu(); if (opt==5) break; c1=GetComplejo(); c2=GetComplejo(); switch(opt){ case 1: c3=Suma(c1,c2); break; case 2: /*c3=Resta(c1,c2);*/ break; case 3: /*c3=Multiplica(c1,c2);*/ break; case 4: /*c3=Divide(c1,c2);*/ break; } PrtComplejo(c1); cout << operador[opt-1]; PrtComplejo(c2); cout << "n -------- "; PrtComplejo(c3); } } complejo Suma( complejo c1, complejo c2) { complejo c; c.r=c1.r+c2.r; c.i=c1.i+c2.i; return c; } PrtComplejo( complejo c) { cout << "n(" << c.r << "," << c.i<<"i)"; } complejo GetComplejo() { complejo c1; char ch; cout << "Dar r,i: "; cin >> c1.r >> ch >> c1.i; return c1; } int Menu() { int opt; while(true){ cout << "nn**** Menu ****"; cout << "n1. Sumar"; cout << "n2. Restar"; cout << "n3. Multiplicar"; cout << "n4. Dividir"; cout << "n5. Salir"; cout << "ntOpcion: "; cin >> opt; if (opt > 0 && opt < 6) return opt; } }