Documente Academic
Documente Profesional
Documente Cultură
Grupo C
EJERCICIOS GUIADOS
Ejercicio 1: Entrada/Salida básica(I).
En este ejercicio se va a probar el flujo cout , que permite mostrar cadenas por pantalla. Para ello se debe
crear una aplicación de consola, de forma que el nombre del proyecto será Ejer00.bpr y el del programa será
Ejer00.cpp. A continuación se debe copiar el siguiente programa en el editor de código y realizar su
ejecución.
#include <iostream.h>
void main (void){
cout << "Hola futuro(a) programador de C++" << endl;
cout << "Como estas?" << endl;
}
Para completar el ejercicio se va introducir el flujo cin, el cual permite leer tanto números como cadenas de
caracteres, pero cuando encuentra blancos, tabuladores o espacios, termina de leer. Se debe crear una
aplicación de consola, de forma que el nombre del proyecto será Ejer01.bpr y el del programa será
Ejer01.cpp. A continuación se debe copiar el siguiente programa en el editor de código y realizar su
ejecución.
#include <iostream.h>
void main (void){
char nombre[30];
int edad;
cout << "Hola! Como te llamas?";
cin >> nombre;
cout << "Cuantos anyos tienes?";
cin >> edad;
cout << "Hola " << nombre ;
cout << ",tienes " << edad << " anyos" << endl;
}
Ejercicio 2:Entrada/Salida(II)
En este ejercicio se va a encriptar un texto dado por el usuario usando el operador XOR y la función getline
del flujo cin, la cual toma todo lo escrito por el usuario, incluidos los espacios. Se debe crear una aplicación
de consola, de forma que el nombre del proyecto será Ejer02.bpr y el del programa será Ejer02.cpp. A
continuación se debe copiar el siguiente programa en el editor de código y realizar su ejecución.Observar el
uso de la función strlen().
#include <iostream.h>
#include <string.h> //para strlen()
void main()
{
int len;
const int NUM=120; //num. maximo de caracteres.
char texto[NUM],key;
cout << "Escriba un texto:";
cin.getline(texto,120);
cout << "Introduzca la clave para codificar (un digito):";
cin >> key;
len=strlen(texto);
cout << "\n\t*** texto Codificado ***\n";
for (int i=0;i<len;i++){
1
Laboratorio de Programación II. Grupo C
Después de realizar su ejecución se debe modificar el programa sustituyendo 1760 por 1760.0 en la línea que
calcula el número de kilómetros, y volver a ejecutar. Reflexionar sobre el resultado que se obtiene ahora con
la modificación.
#include <iostream.h>
void main(int num, char *cadena[])
{
cout << "Numero de argumentos: " << num;
}
Como la variable num de la función main() almacena el número de argumentos, se pueden obtener los datos
del argumento (char *cadena[]). En particular se va obtener la sqrt() del número pasado como argumento.
Para ello se va utilizar la función atof(), definida en el fichero math.h, para realizar la conversión de
caracteres a una variable numérica tipo double. Modifique el código anterior con:
#include <iostream.h>
2
Laboratorio de Programación II. Grupo C
Se debe crear una aplicación de consola, de forma que el nombre del proyecto será Ejer05.bpr y el del
programa será Ejer05.cpp. A continuación se debe copiar el siguiente programa en el editor de código y
realizar su ejecución.
#include <iostream.h>
void main(void)
{
int i=1, suma=0;
for( ; i<=5; ) { // forma 1
suma += i;
++i;
}
cout << "suma 1 = " << suma << endl;
suma=0;
for(i=1; i<=5; ++i) // forma 2
suma += i;
cout << "suma 2 = " << suma << endl;
for(i=1, suma=0; i<=5; ++i, suma+=i) // forma 3
;
cout << "suma 3 = " << suma << endl;
for(i=1, suma=0; i<=5; suma+=i, ++i) // forma 4
;
cout << "suma 4 = " << suma << endl;
}
Después de crear el proyecto, de compilar y de ejecutar este programa, observará que la forma 3 da un
resultado diferente de las demás. ¿Sabrías explicar por qué? ¿Puedes corregirla?
3
Laboratorio de Programación II. Grupo C
Se debe crear una aplicación de consola, de forma que el nombre del proyecto será Ejer06.bpr y el del
programa será Ejer06.cpp. A continuación se debe copiar el siguiente programa en el editor de código y
realizar su ejecución.
#include <iostream.h>
#include <stdlib.h> //para system() y exit;
void main(void)
{
int opcion;
system("cls"); //borra la pantalla al inicio
for(;;){
cout << "\tMi Menu" << endl;
cout << "\t-------" << endl;
cout << "1. Opcion 1" << endl;
cout << "2. Opcion 2" << endl;
cout << "3. Opcion 3" << endl;
cout << "4. Opcion 4" << endl;
cout << "5. Salir" << endl;
//pedimos al usuario que escoja.
cin >> opcion;
//evaluamos la opcion escogida
if (opcion==1) {
cout << "\tHa elegido la opcion 1." << endl;
}else if (opcion==2){
cout << "\tHa elegido la opcion 2." << endl;
}else if (opcion==3){
cout << "\tHa elegido la opcion 3." << endl;
}else if (opcion==4){
cout << "\tHa elegido la opcion 4." << endl;
}else if (opcion==5){
cout << "Adios.." << endl;
exit(0); //termina
}else {
cout << "Elija Bien..." << endl;
}
}
}
#include <iostream.h>
#include <math.h> //para sqrt()
void main(void)
{
double a, b, c;
double discr, x1, x2, xr, xi;
cout << "Escribe los valores de los coeficientes A, B y C: ";
cin >> a >> b >> c;
discr = ... ;
if (discr > 0.0) {
x1= . . .;
x2= . . .;
4
Laboratorio de Programación II. Grupo C
EJERCICIOS PROPUESTOS
Ejercicio 1
En este ejercicio se va a generar una serie de números aleatorios entre 0 y 1. La cantidad de números a
generar tiene que se pasada como argumento al programa desde la consola como por ejemplo ejer2 10, para lo
cual se utilizará la variable entera Num. La función rand() genera un número entero aleatorio entre 0 y 32767
y se encuentra en math.h y la función atoi(char *) convierte una cadena de caracteres en un número entero y
se encuentra en stdlib.h . Usar la directiva #include para incluir tanto math.h como stdlib.h.
Se debe crear una aplicación de consola, de forma que el nombre del proyecto será Ejer08.bpr y el del
programa será Ejer08.cpp. A continuación se debe copiar el siguiente programa en el editor de código,
completar el código que aparece con puntos suspensivos y realizar su ejecución.
...
int Num = atoi(cadena[1]);
for (int i=0;i<Num;i++){
double val = rand()/32767.0;
cout << "Numero: " << i+1 << " Valor:"<< val << endl;
}
...
Ejercicio 2
En este programa se va a calcular el mayor elemento entre un conjunto de números enteros que son pasados
como argumentos al programa. Para el cálculo se utiliza el siguiente algoritmo: se crea una variable llamada
Max, a la que se da inicialmente el valor del primer elemento pasado como argumento, previamente
convertido a entero por medio de la función atoi(). Luego se recorren paso a paso todos los otros valores, por
medio de un bucle for. Usamos una variable temporal tmp para obtener el siguiente valor, convertido a entero,
y lo comparamos con el valor de la variable Max. Si el nuevo valor es mayor que Max (o Max menor que
tmp) entonces se copia este valor en la variable Max. De esta forma, una vez que hayamos recorrido todos los
valores, la variable Max contendrá el máximo valor del conjunto, pues cada vez que se ha encontrado un
valor mayor que Max, esta variable se ha cambiado a dicho valor. La variable iMax indica la posición del
último valor copiado a Max. Al final, iMax indicará en qué posición estaba el mayor elemento.
Se debe crear una aplicación de consola, de forma que el nombre del proyecto será Ejer09.bpr y el del
programa será Ejer09.cpp. A continuación se debe copiar el siguiente programa en el editor de código, y
realizar su ejecución pasándole varios números por ejemplo ejer6 10 15 4 22 18 34.
5
Laboratorio de Programación II. Grupo C
#include <iostream.h>
#include <stdlib.h> //para atoi
void main(int Num, char *cadena[])
{
int iMax, Max;
if (Num == 1) {
cout << "Dar los numeros para hallar el mayor" << endl;
exit(0);
}
iMax = 1;
Max = atoi( cadena[1] );
for (int i=2; i<Num; i++){
int tmp = atoi( cadena[i] );
if ( Max < tmp ){
Max = tmp; //guarda el valor
iMax = i;
}
}
cout << "El mayor es: " << Max;
cout << " En la Posicion:" << iMax << endl;
}
Basándose en el anterior programa se pide:
a) Escribir un programa que permita calcular el menor de varios números reales pasados como argumentos.
Llamar al proyecto Ejer09a.bpr y al programa Ejer09a.cpp
b) Escribir un programa que permita dados un conjunto de números enteros, positivos y negativos, calcular el
mayor en valor absoluto. Usar la función abs(int) que está definida en el fichero math.h. Esta función
trabaja de la siguiente manera:
int x1=-5, x2;
x2 = abs(x1);
cout <<”Valor absoluto de “ << x1 << “ es “ << x2;
Llamar al proyecto Ejer09b.bpr y al programa Ejer09b.cpp. Probar a realizar la llamada ejer8 12 –25 4 16
10 , de forma que el resultado obtenido sea el número -25 o la posición 2.
Ejercicio 3
Realizar una aplicación de consola que imprima por la consola todos los argumentos que se le pasan desde la
línea de comandos de la forma:
Argumento 1: Valor: 10
Argumento 2: Valor: 13.5
Argumento 3: Valor: Mensaje
Crear un nuevo proyecto Ejer10.bpr y el fichero Ejer10.cpp para realizar este ejercicio.
Ejercicio 4
Realizar una aplicación de consola que calcule el factorial de un número entero. El programa tiene que ver si
el número al que se le va a calcular el factorial viene como argumento de main(), entonces hace el cálculo. Si
no viene como argumento, el programa debe pedirle al usuario que ingrese el número por teclado y realizar
el cálculo.
Ejercicio 5
Realizar una aplicación de consola que permita la conversión de euros, de forma que pregunte los euros que
desea convertir y como salida devuelva cuantas pesetas y dólares son. Recordar que 1€ son 166.386 pesetas y
6
Laboratorio de Programación II. Grupo C
aproximadamente 1.078 dólares. El nombre del proyecto debe ser Ejer12.bpr y al nombre del fichero fuente
debe ser Ejer12.cpp.
Ejercicio 6
Realizar una aplicación de consola que permita realizar la conversión entre temperaturas de ºC ƺF y ºFƺC,
según la siguiente fórmula: ºF = (9.0/5.0)* (ºC)+32.El programa debe pedir al usuario qué tipo de conversión
debe hacer y luego el dato de la temperatura a convertir. Para este ejercicio debe crear un proyecto
Ejer13.bpr y el nombre del programa será Ejer13.cpp.
Ejercicio 7
Realizar una aplicación de consola que muestre por pantalla el siguiente triángulo:
1
232
34543
4567654
567898765
67890109876
7890123210987
890123454321098
90123456765432109
0123456789876543210
El nombre del proyecto debe ser Ejer14.bpr y al nombre del fichero fuente debe ser Ejer14.cpp.
Como aún la mayoría de los alumnos no están registrados, tenéis de plazo para registraros y subir la
correspondiente práctica 1 hasta este viernes día 29 de Octubre. Acabado el plazo no se podrán subir las
prácticas, y se considerará como práctica no entregada. Si tienes alguna duda o problema sobre el
procedimiento de entrega no dudes en preguntar.