Unidad 6
1
Fundamentos de Programación 2008 UNIDAD 6 Introducción a la programación en C++ Prof. Gerardo Sas Respuestas a los ejercicios de la Guía Nº 6
Ejercicio 6.1 Determine la validez en C++ de los siguientes identificadores: X-da (error) 3Total (error)
float (error) var56x (ok)
const (error) x7 (ok)
x,7 (error) x/7 (error)
Ejercicio 6.2 Observe los siguientes números. a) Indique si su notación es correcta en C++. Si no lo es, mencione la causa de su invalidez. b) Si tiene notación correcta clasifique dicho número dentro de los tipos numéricos admitidos por C++, considerando la menor cantidad de bytes posible. a) d) g) j)
-123.89 (si) 16.345,89 (no) .234 (si) 5.6E-1 (si-salida)
b) e) h) k)
16.0 (si-salida) 12 (si) 7.33 (si) 29 (si)
c) 56890 (si) f) 1,99 (no) i) 12E+23 (si-salida) l) 0.12348976 (si)
Ejercicio 6.3 Declare y defina variables numéricas inicializándolas con los valores del ejercicio anterior. En los casos en que los números estén incorrectamente planteados escríbalos correctamente. Tipo char unsigned char short unsigned short int unsigned int long unsigned long
Enteros Rango --127 .. 128 0 .. 255 -32768 .. 32767 0.. 65535 -2.147.483.648 .. 2.147.483.647 0.. 4.294.967.295 -2.147.483.648 .. 2.147.483.647 0.. 4.294.967.295
Tamaño (bytes) 1 1 2 2 4 4 4 4
Reales (punto flotante) Tipo float double long double a) b) c) d) e) f) g)
Rango 3.4 x 10-38 .. 3.4 x 10 38 1.7 x 10 -308.. 1.7 x 10 308 3.4 x 10 -4932 .. 3.4 x 10 4932
float a=-123.89 float b= 16.0 unsigned short c= 56890 float c= 16345.89 unsigned short e= 12 float f= 1.99 float g= 0.234
Facultad de Ingeniería y Ciencias Hídricas de la UNL Ingeniería Informática – Fundamentos de Programación
Tamaño (bytes) 4 8 10
Unidad 6
2
h) i) j) k) l)
float h= 7.33 float i= 120000000000000000000 float j= 0.56 char k= 29 float l= 0.12348976
Ejercicio 6.4. Escriba un programa C++ que permita ingresar las edades de dos personas y obtenga las fechas (años) de nacimiento correspondientes. El formato de salida debe ser como el del recuadro siguiente: Ingrese la primer edad: 29 Ingrese la segunda edad: 31 Edad
Anio de nacimiento 29......................................1969 21......................................1977
//Encabezado: aquí se incluyen las librerías que necesito #include
#include using namespace std; //Profesor Gerardo SAS - Fundamentos de Programación //Cuerpo principal del programa, funcion main int main(void){ int edad1, edad2; //Declaracion de variablaes cout<<"Ingrese la primer edad: ";//Salida por pantalla cin>>edad1; //Ingreso por teclado de edad1 cout<<"\nIngrese la segunda edad: ";//Salida pantalla cin>>edad2; //Ingreso por teclado de edad2 cout<<"\nEdad Anio de nacimiento"; //Salida pantalla //defino ancho de campo con setw y relleno con setfill cout<<'\n'<<edad1<<setw(20)<<setfill('.')<<2007-edad1; cout<<'\n'<<edad2<<setw(20)<<setfill('.')<<2007-edad2; return 0; }
Ejercicio 6.5 Escriba un programa C++ que permita ingresar un número y lo muestre en base 8 (octal) y en base 16 (hexadecimal) . Proponga además mensajes alusivos que mejoren la interfaz de usuario. //Encabezado: aquí se incluyen las librerías que necesito #include #include using namespace std; //Profesor Gerardo SAS - Fundamentos de Programación //Cuerpo principal del programa, funcion main int main(void){ int num; cout<<"Ingrese un numero: "; cin>>num; cout<<'\n'<<"Octal "<<setw(10)<
Facultad de Ingeniería y Ciencias Hídricas de la UNL Ingeniería Informática – Fundamentos de Programación
Unidad 6
3
Ejercicio 6.6 Escriba un programa C++ que permita ingresar un valor numérico correspondiente a una medida en pies y devuelva la cantidad equivalente en metros. Nota: un pie = 0,3048 metros. Proponga una interfaz de usuario adecuada.
//Encabezado: aquí se incluyen las librerías que necesito #include #include using namespace std; //Profesor Gerardo SAS - Fundamentos de Programación //Cuerpo principal del programa, funcion main int main(void){ float pies; cout<<"Ingrese una medida en pies: "; cin>>pies; cout<<'\n'<<"Equivale a "<<setw(10)< #include #include <math.h> using namespace std; //Profesor Gerardo SAS - Fundamentos de Programación int main(void){ float radio,area,circunferencia; cout<<"Ingrese el radio: "; cin>>radio; area= M_PI * pow(radio,2); circunferencia= M_PI * 2 * radio; cout<<'\n'<<"Area= "<<area; cout<<'\n'<<"Circunferencia = "<< circunferencia; cout<<"\n\n\n\n\n\n\n\n\n\n\n\nPulse una tecla para continuar"; return 0; }
Ejercicio 6.8 Escriba un programa C++ que calcule las raíces o soluciones de una ecuación cuadrática del tipo ax2+ bx + c=0, siendo que el usuario del programa ingresa como datos los coeficientes a, b y c. Suponga que los datos corresponden a ecuaciones de raíces reales. //Encabezado: aquí se incluyen las librerías //Profesor Gerardo SAS - Fundamentos de Programación #include #include #include <math.h> using namespace std; int main(void){ //FUNCION MAIN, CUERPO DEL PROGRAMA float a,b,c,x1,x2,x,dis; Facultad de Ingeniería y Ciencias Hídricas de la UNL Ingeniería Informática – Fundamentos de Programación
Unidad 6
4
cout<<"Ingrese A= "; cin>>a; cout<<"Ingrese B= "; cin>>b; cout<<"Ingrese C= "; cin>>c; x= pow(b,2)+(4*a*c); dis=sqrt(x); x1= (-b+dis)/(2*a); x2= (-b-dis)/(2*a); cout<<"\nX1= "<<x1; cout<<"\nX2= "<<x2; cout<<"\n\nPulse una tecla para continuar"; return 0; }
Ejercicio 6.9 Un canal tiene sección trapezoidal como indica la figura. Se conocen como datos la base b, el nivel h y el h ángulo de inclinación de las paredes . α Si la velocidad media de la corriente es conocida y tiene un valor v, determine e informe el b caudal medio Q que pasa por dicho canal. (Nota: Q medio se calcula con el producto entre la velocidad media y el área de la sección). Codifique en C++ la solución de este problema. //Encabezado: aquí se incluyen las librerías //Profesor Gerardo SAS - Fundamentos de Programación #include #include #include <math.h> using namespace std; int main(void){ //FUNCION MAIN, CUERPO DEL PROGRAMA float b,alfa,h,x,Bmayor,AreaT; cout<<"Ingrese b (en cm): "; cin>> b; cout<<"\nIngrese h (en cm): "; cin>> h; cout<<"\nIngrese Alfa (en grados): "; cin>> alfa; //si x es la diferencia entre //la base mayor y b x= 2*(h/tan(alfa*M_PI/180)); Bmayor= b+x; // cálculo del área del trapecio AreaT=(Bmayor+b)*h/2; cout<< "\nArea trapecio= "<
Ejercicio 6.10 Escriba un programa C++ que permita a un usuario conocer cuánto debe pagar por el consumo de energía eléctrica realizado en el último período. Se conocen el costo del consumo en KW sin impuestos, la lectura actual del medidor y la lectura del período anterior. Además en concepto de impuestos los usuarios abonan un 22% sobre el total correspondiente al consumo. //Profesor Gerardo SAS - Fundamentos de Programación #include using namespace std; Facultad de Ingeniería y Ciencias Hídricas de la UNL Ingeniería Informática – Fundamentos de Programación
Unidad 6
5
int main(void){ float KW,Lactual,Lanterior,Imp,Total; cout<<"Ingrese KW: "; cin>> KW; cout<<"\nIngrese Lectura Actual: "; cin>> Lactual; cout<<"\nIngrese Lectura Anterior: "; cin>> Lanterior; cout<<"\nIngrese Porc. Impuestos: "; cin>> Imp; Total= (Lactual-Lanterior)*KW*(1+Imp/100); cout<< "\nTotal a pagar: "<
Facultad de Ingeniería y Ciencias Hídricas de la UNL Ingeniería Informática – Fundamentos de Programación