28
VARIABLES Y TIPOS DE DATOS 1.1 VARIABLES Las variables se utilizan para almacenar datos asociados a nombres. Cada variable tiene un nombre que sirve de referencia para introducir datos o acceder a los mismos. Un ejemplo de utilización de variable es: Edad = 23; en este caso, introducimos el valor numérico 23 en la variable Edad. A partir de ahora podemos utilizar la variable a través de su nombre (Edad) para referirnos a su valor (23). Los nombre de las variables, en C++, pueden tener cualquier longitud y deben comenzar con una letra, el símbolo de subrayado “_” o el dólar “$”. El resto de los caracteres del nombre pueden ser cualquiera, salvo los que puden dar lugar a confusión. Los nombre de variables no deben tener espacios en blanco, puesto que el compilador identifacaría más de una variable; por ejemplo, NumeroDeAciertos es un nombre de variable correcto, sin embargo Numero De Aciertos no lo es, porque el compilador identificaría tres variables diferentes: Numero, De y Aciertos. Los nombre de variables no deben coincidir con palabras reservadas (tales como public, static, class, final, main, etc.). Existe una serie de palabras reservadas las cuales tienen un significado especial para C++ y por lo tanto no se pueden utilizar como nombres de variables. Dichas palabras son: PALABRAS CLAVE DE C++ Palabras clave comunes para los lenguajes de programación C y C++ auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while Palabras clave sólo de C++ and and_eq asm bitand bitor bool catch class compl const_cast delete dynamic_cast explicit Export false friend inline mutable namespace new not not_eq operator or or_eq private protected public reinterpret_c ast static_cast template this throw true try typeid typename using virtual wchart_t xor xor_eq En C++, los identificadores de variables suelen definirse empezando por un carácter en minúscula, por ejemplo contador. Si en el identificador existen más de una palabrea, los comienzos del resto de las palabras se ponen con mayúsculas, ejemplo: contadorDeAciertos.

Manual Programación I New

Embed Size (px)

Citation preview

VARIABLES Y TIPOS DE DATOS

1.1 VARIABLES

Las variables se utilizan para almacenar datos asociados a nombres. Cada variable tiene un nombre que sirve de referencia para introducir datos o acceder a los mismos. Un ejemplo de utilización de variable es: Edad = 23; en este caso, introducimos el valor numérico 23 en la variable Edad. A partir de ahora podemos utilizar la variable a través de su nombre (Edad) para referirnos a su valor (23). Los nombre de las variables, en C++, pueden tener cualquier longitud y deben comenzar con una letra, el símbolo de subrayado “_” o el dólar “$”. El resto de los caracteres del nombre pueden ser cualquiera, salvo los que puden dar lugar a confusión.

Los nombre de variables no deben tener espacios en blanco, puesto que el compilador identifacaría más de una variable; por ejemplo, NumeroDeAciertos es un nombre de variable correcto, sin embargo Numero De Aciertos no lo es, porque el compilador identificaría tres variables diferentes: Numero, De y Aciertos.

Los nombre de variables no deben coincidir con palabras reservadas (tales como public, static, class, final, main, etc.). Existe una serie de palabras reservadas las cuales tienen un significado especial para C++ y por lo tanto no se pueden utilizar como nombres de variables. Dichas palabras son:

PALABRAS CLAVE DE C++Palabras clave comunes para los lenguajes de programación C y C++auto break case char constcontinue default do double elseenum extern float for gotoif int long register returnshort signed sizeof static structswitch typedef union unsigned voidvolatile whilePalabras clave sólo de C++and and_eq asm bitand bitorbool catch class compl const_castdelete dynamic_cast explicit Export falsefriend inline mutable namespace newnot not_eq operator or or_eqprivate protected public reinterpret_cast static_casttemplate this throw true trytypeid typename using virtual wchart_txor xor_eq

En C++, los identificadores de variables suelen definirse empezando por un carácter en minúscula, por ejemplo contador. Si en el identificador existen más de una palabrea, los comienzos del resto de las palabras se ponen con mayúsculas, ejemplo: contadorDeAciertos.

Los identificadores deben ser representativos de los datos que almacenan, de esta manera valorAcumulado, numeroAlumnos, cantidadEuros, edad, potencia son variables que determinan de forma adecuada el significado de sus contenidos, mientras que los nombres de variable: valor V1, V2, X, Y, Z no son representativos de sus contenidos.

La longitud de los identificadores no debe ser excesivamente larga, para no dificultar la legibilidad de las instrucciones.

Los identificadores en mayúscula se suelen reservar para nombres (normalmente cortos) de constantes, de esta manera las instrucciones son más legibles, al utilizarse minúsculas. Ejemplo: PI, STOCK, PRECIOHORA, IVA, etc.

1.2 Tipos de datosLas variables almacenan datos de diferentes tipos (numérico decimal, numérico entero, caracteres,

etc.). Para indicar el tipo de dato que contendrá las variables debemos “declarar” las mismas, indicando sus

tipos. Este mecanismo permite que el traductor (compilador) realice las comprobaciones estáticas de validez, como por ejemplo que no empleamos en el programa una variable que no ha sido declarada, que no asignemos un carácter a una variable de tipo numérico, que no sumemos un carácter a un valor numérico, etc.

A continuación se establece una relación de los tipos de datos primitivos (los que proporciona el lenguaje):

Tipos integrales Tipos de punto flotantebool floatchar doublesigned char long doubleunsigned charshort intunsigned short intintunsigned intlong intunsigned long intwchar_t

Para declara una variable se emplea la sintaxis:tipo identificador; //declara una variabletipo identificador [= valor]; //declara e inicializa una variabletipo identificador1, identificador2, identificador3, etc.; //declara varias variables del mismo tipotipo identificador1=valor1, identificador2=valor2, etc.; // declara e inicializa varias variables del mismo tipo

Por ejemplo:int edad = 60;short int sueldoMensual;float PrecioEuros, cateto1, cateto2, hipotenusa;bool adquirido=false, finalizado=true;

1. OPERADORES

2.1 Introducción

Los operadores nos permiten realizar operaciones sobre los operandos. Existen operandos unuarios y binarios; un ejemplo de operador unuario es la negación lógica (!).

Los operadores tienen unas reglas de precedencia que resulta importante tener en cuenta.

1.1. Operadores AritméticosEsta tabla resume todas las operaciones aritméticas binarias en C++:Operador Uso Descripción+ op1 + op2 Suma op1 y op2- op1 - op2 Resta op2 de op1* op1 * op2 Multiplica op1 y op2/ op1 / op2 Divide op1 por op2% op1 % op2 Obtiene el resto de dividir op1 por op2Nota: El lenguaje C++ extiende la definición del operador + para incluir la concatenación de cadenas.Además, existen dos operadores de atajos aritméticos, ++ que incrementa en uno su operando, y -- que decrementa en uno el valor de su operando.

Operador

Uso Descripción

++ op ++ Incrementa op en 1; evalúa el valor antes de incrementar++ ++op Incrementa op en 1; evalúa el valor después de incrementar

-- op -- Decrementa op en 1; evalúa el valor antes de decrementar-- -- op Decrementa op en 1; evalúa el valor después de decrementar

1.2. Operadores Relacionales y CondicionalesLos valores relacionales comparan dos valores y determinan la relación entre ellos. Por ejemplo, != devuelve true si los dos operandos son distintos.Esta tabla resume los operadores relacionales de C++:

1.3. Operadores Relacionales And y OrOperador

Uso Devuelve true si

&& op1 && op2 op1 y op2 son verdaderos|| op1 || op2 uno de los dos es verdadero! ! op op es falsoEl operador & se puede utilizar como un sinónimo de && si ambos operadores son booleanos. Similarmente, | es un sinónimo de || si ambos operandos son booleanos.

1.4. Operadores de AsignaciónPuedes utilizar el operador de asignación =, para asignar un valor a otro. Además del operador de asignación básico, C++ proporciona varios operadores de asignación que permiten realizar operaciones aritméticas, lógicas o de bits y una operación de asignación al mismo tiempo. Específicamente, suponga que quieres añadir un número a una variable y asignar el resultado dentro de la misma variable, como esto:i = i + 2;Puedes ordenar esta sentencia utilizando el operador +=.i += 2;Las dos líneas de código anteriores son equivalentes.

Esta tabla lista los operadores de asignación y sus equivalentes:Operador Uso Equivale a+= op1 += op2 op1 = op1 + op2-= op1 -= op2 op1 = op1 - op2*= op1 *= op2 op1 = op1 * op2/= op1 /= op2 op1 = op1 / op2%= op1 %= op2 op1 = op1 % op2

1.5. Precedencia de Operadores en C++operadores sufijo [] . (params) expr++ expr--operadores unarios ++expr --expr +expr -expr ~ !creación o tipo new (type)exprmultiplicadores * / %suma/resta + -relacionales < > <= >= instanceofigualdad == !=AND lógico &&OR lógico ||condicional ? :

Operador Uso Devuelve true si> op1 > op2 op1 es mayor que op2>= op1 >= op2 op1 es mayor o igual que op2< op1 < op2 op1 es menor que op2<= op1 <= op2 op1 es menor o igual que op2== op1 == op2 op1 y op2 son iguales!= op1 != op2 op1 y op2 son distintos

asignación = += -= *= /= %= ^= &= |= <<=

2. SENTENCIAS DE CONTROL DE FLUJOLas sentencias de control de flujo determinan el orden en que se ejecutarán las otras sentencias dentro del programa. El lenguaje C++ soporta varias sentencias de control de flujo, incluyendo:Sentencias Palabra claveToma de decisiones if-else, switch-caseBucles ó ciclos for, while, do-whileExcepciones try-catch-finally, throwMisceláneas break, continue, return

2.1. Toma de decisiones2.1.1. Instrucción de selección if Los programas utilizan instrucciones de selección para elegir entre los cursos alternativos de acción. Por ejemplo, suponga que la calificación para aprobar un examen es de 60. La instrucción en C++ puede escribir de la siguiente manera:

if ( calificacionesEstudiante >= 60 )cout<<”Aprobado”;

2.1.2. Instrucción de selección doble if…elseLa instrucción if de selección simple realiza una acción indicada solamente cuando la condición es verdadera (true); de no ser así, se evita dicha acción. La instrucción if…else de selección doble permite al programador especificar una acción a realizar cuando la condición es verdadera, y otra distinta cuando la condición es falsa (false). Por ejemplo la siguiente instrucción en C++ imprime “Aprobado” si la calificación del estudiante es mayor a 60, e imprime “Reprobado” si la calificación del estudiante es menor a 60.

if ( calificacionEstudiante >= 60 )cout<<"Aprobado";

elsecout<<"Reprobado";

2.1.3. Operador condicional (?:)C++ cuenta con el operador condicional (?:), que está estrechamente relacionado con la instrucción if…else. Este es el único operador ternario de C++, es decir, que recibe tres operadores. En conjunto, los operandos y el operador condicional forman una expresión condicional. El primer operando es una condición, el segundo es el valor de la expresión condicional si la condición es true, y el tercer operando es el valor de toda la expresión condicional si la condición es false. Por ejemplo, la instrucción de salida

cout << ( calificacionEstudiante >= 60 ? cout << "Aprobado" : cout << "Reprobado") ;

contiene una expresión condicional, calificacionEstudiante >= 60 ? ”Aprobado” : ”Reprobado”, que se evalúa como la cadena “Aprobado”, si la condición calificacionEstudiante >= 60 es true, pero se evalúa “Reprobado”, si la condición es false. Por lo tanto, la instrucción con el operador condicional realiza en esencia la misma función que la instrucción if…else anterior. La precedencia del operador condicional es baja, por lo cual los paréntesis en la expresión anterior son obligatorios.

2.1.4. Instrucción if…else anidadasLas instrucciones if…else anidadas pueden evaluar varios casos, al colocar instrucciones if…else dentro de otras instrucciones if…else. Por ejemplo, la siguiente instrucción if…else en C++ imprime A para las calificaciones de exámenes mayores o iguales a 90, B para calificaciones en el rango 80 a 89, C para las

calificaciones en el rango 70 a 79, D para las calificaciones en el rango 60 a 69 y F para todas las demás calificaciones. if ( calificacionEstudiante >= 90)

cout << "A"; else if ( calificacionEstudiante >= 80)

cout << "B"; else if ( calificacionEstudiante >= 70)

cout << "A"; else if ( calificacionEstudiante >= 60)

cout << "A"; else

cout << "D";Situación errónea Comentario

Omisión de los paréntesis en las condiciones Los paréntesis son sintácticamente obligatorios en las condiciones de todas las instrucciones

Confundir el operador relacional == con el operador de asignación =

Este es un error muy típico difícil de detectar, recordar que en las asignaciones se utiliza un símbolo de igual y en las comparaciones dos signos de igual

No tener en cuenta el orden de precedencia de los operadores en las condiciones.

Ante cualquier duda utilizar paréntesis

Olvidar el símbolo para comparaciones diferentes

¡=

2.2. Bucles o ciclos2.2.1. Instrucción de repetición forLa instrucción de repetición for específica los detalles de la repetición controlada por contador en una sola línea de código.

Componentes del encabezado de la instrucción forLa siguiente figura muestra un análisis más detallado del encabezado de la instrucción for. Observe que el encabezado de la instrucción for “se encarga de todo”: específica cada uno de los elementos necesarios para la repetición controlada por contador con una variable de control. Si hay más de una instrucción en el cuerpo del for, se requieren llaves para encerrar el cuerpo del ciclo.

Palabraclave for

Nombre devariablede control

Separador depunto y coma requerido

Valor final de la variable para la cual la condición es verdadera

Separador depunto y coma requerido

for ( int contador = 1 ; contador <= 10; contador++ )

Valor inicial de la variable de control

Condición de continuación de ciclo

Incremento de la variable control

Ejemplo:#include <iostream>using std::cout;using std::endl;

int main()

{//El encabezado de la instrucción for incluye la inicialización,//la condición de continuación del ciclo y el incremento.

for(int contador=1 ; contador<= 10 ; contador++)cout << contador <<" ";

cout << endl; //Imprime una nueva líneareturn 0; //Indica que terminó correctamente

}

2.2.2. Instrucción de repetición whileEl bucle while nos permite repetir la ejecución de una serie de instrucciones mientras que se cumpla una condición de continuidad. Su uso resulta recomendable cuando no conocemos a priori el número de iteraciones que debemos realizar.El bucle while tiene dos posibles sintaxis:

while (condición de continuidad){Instrucciones a ejecutar en forma repetitiva

}

Ejemplos:En el siguiente ejemplo se muestra una implementación muy sencilla del bucle while en la que

se pretende imprimir los números 1, 2, 3, y 4. Puesto que conocemos a priori el número de iteraciones sería más adecuado utilizar un bucle for, pero se ha escogido este ejemplo sencillo para mostrar una primera implementación del bucle while.

En el ejemplo se declara una variable de tipo int en la línea 6 y se inicializa a 1; esta variable actuará como contador de iteraciones en el bucle. En la línea 7 se establece la condición de continuidad del bucle (se itera mientras que i<=4). La línea 9 se encarga de imprimir el valor de í y la línea 10 de incrementarlo.

Un error muy frecuente cuando se codifica un bucle while es olvidar incrementar al contador (línea 10), generando un bucle infinito. En nuestro ejemplo también crearíamos un bucle infinito si olvidáramos las llaves delimitadoras del ámbito del bucle.

A continuación se muestra la forma alternativa de utilizar un bucle while : do{}while(condición); la semántica en este ejemplo es la misma que en el anterior (se imprimen los valores de 1 a 4). El detalle de la ejecución varía respecto a que la condición de continuidad se evalúa al final en lugar al comienzo del bucle.

1.1.1. SwitchCuando en una condición existen diversas posibilidades, nos vemos obligados a programar usando if anidados, lo que complica la realización y depuración de código. Para facilitar la programación en estas situaciones, se proporciona la instrucción condicional switch, que permite definir un número ilimitado de ramos basadas en la misma condición.

SintaxisSwitch(expresión){case valor1:

Instrucciones;break;

case valor2:instrucciones;

break;………………

default:instrucciones;

break;}

Cuando el flujo de control del programa llega a la instrucción switch, lo primero que se hace es evaluar la expresión, después se va comparando el valor de cada clausula case con el resultado de la evaluación de la expresión. Cuando en una instrucción case coinciden los valores, se ejecutan las instrucciones asociadas hasta alcanzar la sentencia break. Si no se incluyen break en un case, se ejecutan todas las instrucciones siguientes (correspondientes a los siguientes grupos case) hasta que se encuentra un break o se termina la instrucción switch.

Es importante tener en cuenta que la expresión asociada a la instrucción asociada a la instrucción switch solo debe generar valores de tipo: char, byte, short o int.

2. PRIMER PROYECTO MICROSOFT VISUAL C++ 2010PASOS

Abra el programa Microsoft Visual C++ 2010 Elija en el menú Archivo la opción Nuevo Proyecto..

Elija la lista de Plantillas instaladas de Visual C++, de la lista de tipos de Proyectos elija Proyecto vació. Especifique un nombre para el proyecto: appHolaMundoC++.

Elija el nombre y la ruta donde desea guardar el proyecto. Recuerde que si lo desea lo puede guardar en su llave maya, dando clic en el botón Examinar…, para buscar la ruta o dirección. Ponga el nombre HolaMundoC++. Presione el botón Aceptar.

Terminado el paso anterior, ha construido un proyecto vacío, con carpetas determinadas para cada un tipo de archivo definido.

El proyecto se habrá creado y se abrirá el IDE. Deberías de ver los siguientes componentes: La ventana del Explorador de Soluciones, la cual contiene una vista de árbol de los componentes del

proyecto, incluyendo los archivos fuente, las librerías de las que depende tú código, recurso, etc.

CREACIÓN DE LA FUNCIÓN PRINCIPAL MAIN Posteriormente crear un ARCHIVO NUEVO CON EXTENSIÓN CPP que sirva como FUNCIÓN PRINCIPAL

del proyecto. Presiona el botón derecho sobre la carpeta Archivos de código fuente. Elije la opción Agregar y posteriormente la opción Nuevo elemento…

Aparecerá la siguiente ventana donde le solicita el TIPO de archivo, elige Archivo C++ (.cpp). También se solicita el nombre del archivo, el cuál será Main.Presiona el botón Agregar.

El programa guarda el archivo en forma automática dentro del proyecto, en la carpeta seleccionada.

Aparecerá una ventana en blanco con el nombre Main. Escriba en esta ventana el código fuente de su programa.

btnProcesar

txtNombre

EJECUTAR “CORRER” EL PROGRAMA De la barra de Menú elija el menú Depurar elija la opción: iniciar depuración

La salida será la siguiente

3. EJERCICIOS EN Microsoft Visual C++ 2010 EN ESPAÑOL

OBJETIVO:Elaborar diferentes programas básicos en C++.

3.1. Creación del proyecto: appCalcularPulsaciones Abra el programa Microsoft Visual C++ 2010 EN ESPAÑOL.

Elija en el menú Archivo la opción Nuevo Proyecto.. Elija la lista de Plantillas instaladas de Visual C++, de la lista de tipos de Proyectos elija Proyecto vació.

Especifique la ruta de almacenamiento del proyecto y un nombre para el proyecto: appCalcularPulsaciones.

Posteriormente crear un ARCHIVO NUEVO CON EXTENSIÓN CPP que sirva como FUNCIÓN PRINCIPAL del proyecto. Presiona el botón derecho sobre la carpeta Archivos de código fuente. Elije la opción Agregar y posteriormente la opción Nuevo elemento…

Aparecerá una nueva ventana donde le solicita el TIPO de archivo, elige Archivo C++ (.cpp). También se solicita el nombre del archivo, el cuál será Main. Presiona el botón Agregar.

Cree un programa que calcule el número de pulsaciones que una persona debe tener por cada 10 segundos de ejercicio, si la fórmula es: Num_Pulsaciones = (220 – edad) / 10.#include<iostream> //permite al programa realizar operaciones de entrada y salidausing std::cout; // el programa usa coutusing std::endl; // el programa usa endlusing std::cin; // el programa usa cin

//la funcion main comienza la ejecucion del programaint main(){

double edad=0; //Declaración e inicialización de la variable edad

double pulsaciones=0; //Declaración e inicialización de la variable pulsaciones

cout << "Digite por favor su edad: "; //Muestra un mensaje solicitando la edad

cin >> edad; //Guarda la edad digitada por el usuario en la variable edad

pulsaciones = (220 - edad) / 10; // Calcular el número de pulsaciones según la fórmula

cout << "El numero de pulsaciones es: " << pulsaciones ; // Imprime el resultado

cout << endl; //Imprime una línea en blanco

system("pause"); // Permite una pausa

return 0;// indica que el programa término con éxito

}//fin de la función main

3.2. Creación del proyecto: appCalcularSalarioCree un programa que permita calcular el nuevo salario de un obrero si obtuvo un incremento del 25% sobre su salario anterior.#include<iostream> //permite al programa realizar operaciones de entrada y salidausing std::cout; // el programa usa coutusing std::endl; // el programa usa endlusing std::cin; // el programa usa cin

//la funcion main comienza la ejecucion del programaint main(){

//Declaración e inicialización de variables.double salarioActual = 0; //Variable para almacenar el salario actualdouble aumento = 0; //variable para almacenar el aumentodouble salarioNuevo = 0; //Variable para guardar el salario nuevo calculado

//Solicitud de datos de Entrada...cout << "Digite su salario actual: ";

//Entrada de datos...cin >> salarioActual;

//Proceso de datos...aumento = salarioActual * 0.25;salarioNuevo = salarioActual + aumento;

//Salida de datos...cout << "El incremento es de:" << aumento <<endl;cout << "Su nuevo salario es de: "<<salarioNuevo <<endl;

system("pause");}//fin de la función main

3.3. Creación del proyecto: appPresupuestoHospital En un hospital existen tres áreas. Ginecología, Pediatría, Traumatología. El presupuesto anual del hospital se reparte conforme a la siguiente tabla:

ÁREA PORCENTAJE DE PRESUPUESTO

Ginecología 40%

Traumatología 35%

Pediatría 25%

Cree un programa que permita obtener la cantidad de dinero que recibirá cada área, para cualquier monto presupuestal.#include<iostream> //permite al programa realizar operaciones de entrada y salidausing std::cout; // el programa usa coutusing std::endl; // el programa usa endlusing std::cin; // el programa usa cin

#include<iomanip> //manipuladores de flujo parametrizadousing std::setw; //permite al programa establecer una anchura de campo

//la funcion main comienza la ejecucion del programaint main(){

//Declaración e inicialización de variables

double presupuesto=0; //Variable para guardar el presupuesto totaldouble ginecologia=0, pediatria=0, traumatologia=0; // guarda el monto de c/ área.

//Entrada de datoscout << "Digite el PRESUPUESTO asignado al hospital: ";cin >> presupuesto;

//Procesos ginecologia=presupuesto*0.40; pediatria=presupuesto*0.25; traumatologia=presupuesto*0.35;

//Salida de datoscout << endl << "MONTOS ASIGNADOS A LAS DIFERENTES AREAS"<<endl << endl;cout << setw( 7 ) << "PEDIATRIA: " << setw( 7 ) << pediatria << endl << endl;cout << setw( 7 ) << "GINECOLOGIA: " << setw( 7 ) << ginecologia << endl << endl;cout << setw( 7 ) << "TRAUMATOLOGIA:" << setw( 7 ) << traumatologia << endl << endl;system("pause");

}//fin de la función main

3.4. Creación del proyecto: appGananciaArticulo. El dueño de una tienda compra un artículo a un precio determinado. Obtener el precio en que lo debe vender para obtener una ganancia del 30%.#include<iostream> //permite al programa realizar operaciones de entrada y salidausing std::cout; // el programa usa coutusing std::endl; // el programa usa endlusing std::cin; // el programa usa cin

//la funcion main comienza la ejecucion del programaint main(){

//Declaración e inicialización de variableschar nombreArticulo[25]; //variable para guardar el nombre del articulodouble precioCosto=0; //Variable para guardar el precio de costo del articulodouble ganancia=0; //variable para almacenar la ganancia obtenidadouble precioVenta;//variable para guardar el precio de venta del articulo

//Entrada de datoscout << "Digite el NOMBRE del articulo: ";cin.getline(nombreArticulo,24);cout << "Digite el PRECIO DE COSTO del articulo: ";cin >> precioCosto;

//Procesos ganancia = precioCosto * 0.30;

precioVenta = precioCosto + ganancia;

//Salida de datoscout << "El precio en que debe vender el articulo "

<<nombreArticulo << " es de " << precioVenta << endl;

system("pause");}

3.5. Creación del proyecto: appInversionDineroTres personas deciden invertir su dinero para fundar una empresa. Cada una de ellas invierte una cantidad distinta. Obtener el porcentaje que cada quien invierte con respecto a la cantidad total invertida.#include<iostream> //permite al programa realizar operaciones de entrada y salidausing std::cout; // el programa usa coutusing std::endl; // el programa usa endlusing std::cin; // el programa usa cin

//la funcion main comienza la ejecucion del programaint main(){

//Declaración e inicialización de variablesdouble montoTotal=0;//Variable para guardar el monto total de la empresa double monto1=0; // monto dado por la persona 1double monto2=0; // monto dado por la persona 2double monto3=0; // monto dado por la persona 3double porc1=0; // porcentaje a calcular de la persona 1double porc2=0; // porcentaje a calcular de la persona 2double porc3=0; // porcentaje a calcular de la persona 3

//Entrada de datoscout << "Digite el MONTO de la primer persona: ";cin >> monto1;cout << "Digite el MONTO de la segunda persona: ";cin >> monto2;cout << "Digite el MONTO de la tercera persona: ";cin >> monto3;

//Procesos montoTotal = monto1 + monto2 + monto3;

porc1 = (monto1 * 100) / montoTotal; porc2 = (monto2 * 100) / montoTotal;

porc3 = (monto3 * 100) / montoTotal;

//Salida de datoscout << "LOS PORCENTAJES DE CADA INVERSIONISTA SON " << endl;cout << "Persona 1: " << porc1 << endl;cout << "Persona 2: " << porc2 << endl;cout << "Persona 3: " << porc3 << endl;

system("pause");}//fin de la función main

3.6. Creación del proyecto: appCompararNumerosLeer 2 números, si son iguales que los multiplique, sí el primero es mayor que el segundo que los reste y si no que los sume.#include<iostream> //permite al programa realizar operaciones de entrada y salidausing std::cout; // el programa usa coutusing std::endl; // el programa usa endlusing std::cin; // el programa usa cin

//la funcion main comienza la ejecucion del programaint main(){

//Declaración e inicialización de variablesint numero1=0, numero2=0; //Variables para guardar los dos númerosint resultado=0; //Variable para guardar el resultado de las operaciones//Entrada de datoscout << "Digite el NUMERO 1: ";cin >> numero1;cout << "Digite el NUMERO 2: ";cin >> numero2;

//Procesos if ( numero1 == numero2)

resultado = numero1 * numero2; else if ( numero1 > numero2)

resultado = numero1 - numero2; else

resultado = numero1 + numero2;

//Salida de datos cout << "EL RESULTADO ES " <<resultado << endl;

system("pause");}//fin de la función main

3.7. Creación del proyecto: appLlanteraEn una llantera se ha establecido una promoción de las llantas marca "Ponchadas", dicha promoción consiste en lo siguiente Si se compran menos de cinco llantas el precio es de ¢ 3 000 cada una, ¢ 2 500 si se compran de cinco a 10 y de ¢ 2 000 si se compran más de 10Obtener la cantidad de dinero por cada una de las llantas que compra y el total de la compra.#include<iostream> //permite al programa realizar operaciones de entrada y salidausing std::cout; // el programa usa coutusing std::endl; // el programa usa endlusing std::cin; // el programa usa cin

//la funcion main comienza la ejecucion del programaint main(){

//Declaración e inicialización de variablesint cantidad=0, total=0; //Variables para guardar los dos datos

//Imprime informacióncout <<"*********** LLANTERA LAS PONCHADAS ***********"<<endl

<<"*** De 1 a menos de 5 llantas valor ¢ 3.000,00" <<endl <<"*** De 5 a menos de 10 llantas valor ¢ 2.500,00" <<endl <<"*** Mas de 10 llantas valor ¢ 2.000,00" <<endl;

//Entrada de datoscout << "Digite la cantidad de llantas a comprar: ";cin >> cantidad;

//Procesos if ( cantidad < 5)

total = cantidad * 3000; else if ( cantidad >= 5 && cantidad < 10)

total = cantidad * 2500; else

total = cantidad * 2000;

//Salida de datos cout << "EL TOTAL A PAGAR ES: " <<total << endl;

system("pause");}//fin de la función main

3.8. Creación del proyecto: appManzanasUna frutería ofrece las manzanas con descuento según la siguiente tabla:

NÚM. DE KILOS COMPRADOS % DESCUENTO0 – 2 0%3 – 5 10%6 -10 15%11 en adelante 20%

Determinar cuánto pagará una persona que compre manzanas es esa frutería.

#include<iostream> //permite al programa realizar operaciones de entrada y salidausing std::cout; // el programa usa coutusing std::endl; // el programa usa endlusing std::cin; // el programa usa cin

//la funcion main comienza la ejecucion del programaint main(){

//Declaración e inicialización de variablesdouble precio = 0, cantidad = 0, total = 0; //Variables para guardar los dos datosdouble descuento = 0;

//Imprime informacióncout <<"*********** VENTA DE MANZANAS ***********"<<endl

<<"*** KILOS % Descuento" <<endl <<"*** 0 - 2 %0" <<endl <<"*** 3 - 5 %10" <<endl <<"*** 6 - 10 %15" <<endl <<"*** 11 en adelante %20" <<endl;

//Entrada de datoscout << "Digite el precio por Kilo de las manzanas: ";cin >> precio;cout << "Digite la cantidad de kilos a comprar: ";cin >> cantidad;

//Procesostotal = cantidad * precio;

if ( cantidad >= 3 && cantidad <= 5) descuento = total * 0.10;

else if ( cantidad >= 6 && cantidad <= 10) descuento = total * 0.15;

else if ( cantidad >= 10) descuento = total * 0.20;

total = total - descuento;

//Salida de datos cout << "EL TOTAL A PAGAR ES: " <<total << endl;

system("pause");}//fin de la función main

3.9. Creación del proyecto: appColorBolitaEn una tienda de descuento se efectúa una promoción en la cual se hace un descuento sobre el valor de la compra total según el color de la bolita que el cliente saque al pagar en caja. Si la bolita es de color blanco no se le hará descuento alguno, si es verde se le hará un 10% de descuento, si es amarilla un 25%, si es azul un 50% y si es roja un 100%. Determinar la cantidad final que el cliente deberá pagar por su compra. se sabe que solo hay bolitas de los colores mencionados. Realice un D-F que resuelva el problema anterior.#include <iostream>using std::cout;using std::endl;using std::cin;

#include <cstdlib> // contiene los prototipos para las funciones srand y randusing std::rand;using std::srand;

int generarNumero(); // genera un número al azar

int main(){ // randomiza el generador de números aleatorios, usando la hora actual

int numeroAlAzar= 1 + rand() % 5;//Representa el color de la bolita double descuento=0,compra=0; //Datos de entrada... cout << "Digite la cantidad de su compra: "; cin >> compra; switch(numeroAlAzar) { case 1:

descuento = compra * 0.0; break;case 2: descuento = compra * 0.10; break;case 3: descuento = compra * 0.25; break;case 4: descuento = compra * 0.50; break;case 5: descuento = compra * 1; break;}

compra = compra - descuento; cout << endl << "El total a pagar es " << compra << endl;

system("pause");} // fin de main

3.10. Creación del proyecto: appFabricaComputadorasEn una fábrica de computadoras se planea ofrecer a los clientes un descuento que dependerá de la cantidad de computadoras que compre, si las computadoras son menos de cinco se les dará un 10% de descuento sobre el total de la compra, si la cantidad de compra es mayor o igual a cinco pero menos de diez se le otorga un 20% de descuento; y si son 10 o más se les da un 40% de descuento. El precio de cada computadora es de ¢ 230,000. Determine cuánto es el descuento y el total que deberá pagar un cliente por su compra.#include<iostream> //permite al programa realizar operaciones de entrada y salidausing std::cout; // el programa usa coutusing std::endl; // el programa usa endlusing std::cin; // el programa usa cin

//la funcion main comienza la ejecucion del programaint main(){

//Declaración e inicialización de variablesdouble precio = 230000, cantidad = 0, total = 0; //Variables para guardar los

dos datosdouble descuento = 0;

//Imprime informacióncout <<"*********** VENTA DE COMPUTADORAS ***********"<<endl

<<"*** CANTIDAD % DESCUENTO" <<endl <<"*** 5 - 9 %20" <<endl <<"*** 10 en adelante %40" <<endl <<"*********************************************"<<endl<<endl;

//Entrada de datoscout << "Digite la CANTIDAD de computadoras: ";cin >> cantidad;

//Procesostotal = cantidad * precio;

if ( cantidad >= 5 && cantidad < 10) descuento = total * 0.20;

else if ( cantidad >= 10) descuento = total * 0.40;

total = total - descuento;

//Salida de datos cout << "EL DESCUENTO APLICADO ES: " <<descuento << endl;

cout << "EL TOTAL A PAGAR ES: " <<total << endl;

system("pause");}//fin de

3.11. Creación del proyecto: appAlmacenEn un almacén se utilizan los siguientes códigos

CÓDIGO = 1 para un automóvil nuevoCÓDIGO = 2 para un automóvil usado

CÓDIGO = 3 para accesorios aparteLa comisión de un vendedor es la siguiente: el 3% del precio de venta en automóviles nuevos, pero con un máximo de ¢ 300.000 de comisión, el 5% del precio de venta en automóviles usados, pero con un mínimo de ¢ 75.000 de comisión, el 6% en accesorios. Dibuje un Diagrama de flujo que reciba como parámetro de entrada el CÓDIGO y PRECIO y como salida imprima la COMISIÓN de cada vendedor.

2. EJERCICIOS PROPUESTOSa. Sentencias de control repetitivas1. Escriba un programa que lea un número entero por teclado y escriba la tabla de multiplicar de ese

número.

2. Escriba un programa que muestre por pantalla la tabla de multiplicar de los 10 primeros números (1,2,3....9,10.).

3. Calcular la suma de las siguientes series:

a)11+ 12+ 13+… 1

n b)12+ 222

+ 323

+ 424…n

2n

4. Realice un programa que lea números enteros positivos hasta que se introduzca un 0. El programa deberá mostrar por pantalla la cantidad de números leídos, el promedio, así como el valor máximo introducido.

5. Realice un programa que calcule y visualice el más grade, el más pequeño y el promedio de n números (n>0). El valor de n se solicitará al principio del programa y los números serán introducidos por el usuario.

6. Realizar un programa que pida dos números enteros por teclado y muestre por pantalla el siguiente menú:

El usuario deberá elegir una opción y el programa deberá mostrar el resultado por pantalla y después volver al menú. El programa deberá ejecutarse hasta que se elija la opción 5. Salir.

Modificar el ejercicio anterior para que al elegir la opción 5, en vez de salir del programa directamente, nos muestre el siguiente mensaje de confirmación:

¿Esta seguro que desea Salir S/N?

De modo que si elegimos sí salgamos del programa, pero si pulsamos el botón no, volvamos al menú.

7. Realice un programa que calcule el factorial de un número dado por teclado. Realice este ejercicio utilizando primero un bucle for y posteriormente repita el ejercicio utilizando un bucle while.

8. Realice un programa que determine si un número leído del teclado es primo o no.

9. Un número perfecto es un entero positivo, que es igual a la suma de todos los enteros positivos (excluido él mismo) que son divisores del número. El primer número perfecto es 6, ya que los divisores de 6 son 1, 2, 3 y 1 + 2 + 3 = 6. Escriba un programa que lea un número entero positivo n y muestre por pantalla si ese número es o no perfecto.

10. Realice un programa que lea un número entero por teclado y devuelva por pantalla el número de dígitos que componen ese número. Por ejemplo, si introducimos el número 12334, el programa deberá devolver 5. (Pista: utilice el operador %, averigüe para qué sirve y piense cómo utilizarlo).

11. Realice un programa que lea un número entero por teclado y devuelva por pantalla las que forman ese número. Por ejemplo, si se introduce el número 2345, el programa deberá mostrar por pantalla 5 – 4 – 3 – 2. (Pista: utilice el ejercicio anterior como base para realizar este ejercicio).

Ejercicios que usan números aleatorios para realizar juegos y simulaciones

12. Realizar un programa que simule un juego de adivinar un número. El programa pedirá al usuario dos números que representan el rango de valores entre los que se encuentra el número a adivinar, así como el número de intentos para adivinar el número. A continuación el programa generará un número aleatorio entre esos dos números y el usuario deberá adivinarlo en el número máximo de intentos antes indicado. Cada vez que el jugador introduce un número el programa le dice si es mayor o menor y le indica cuantos intentos le quedan.

13. Realice un programa que pregunte aleatoriamente cualquier multiplicación. El programa debe indicar si la respuesta ha sido correcta o no (en caso que la respuesta sea incorrecta el programa debe indicar cuál es la correcta). Una vez preguntado por una multiplicación el programa debe preguntar si desea realizar otra. En caso afirmativo preguntará aleatoriamente otra multiplicación. En caso negativo el programa finalizará.

14. Modificar el ejercicio anterior de modo que el programa pregunta aleatoriamente un total de n multiplicaciones siendo n un número dado por teclado. En cada multiplicación el programa debe indicar si se ha acertado o no. Al final del programa, éste deberá mostrar un resumen indicando el número de respuestas correctas y erróneas, así como el porcentaje de aciertos y de fallos.

15. Realice un programa que genere aleatoriamente 7 operaciones aritméticas consecutivas a las que el usuario deberá ir respondiendo correctamente para ir avanzando. Los números (aleatorios) sobre los que se realizan las operaciones deben estar comprendidos entre 2 y 9 y las operaciones aritméticas (también aleatorias) permitidas serán la suma, resta, multiplicación y división (en el caso de la división se realizará siempre una división entera).

Ejemplo:

1. 5 x 4 = 202. 20 – 4 = 163. 16 / 8 = 24. 2 x 6 = 10 Incorrecto5. 3 x 3 = 96. 12 – 7 = 2 Incorrecto7. 12 – 7 = 5

b. Ejercicios propuestos funciones

1. Escribir un programa que pida un número por teclado y nos diga si ese número es primo. El programa deberá utilizar una función definida por el usuario, a la que se le pase un número y nos devuelva un 0 en el caso de que el número que le pasemos no sea primo, y un 1 en caso contrario.

2. Escribir un programa que pida un número natural por teclado y nos diga si ese número es perfecto (un número natural es perfecto si es igual a la suma de sus divisores, excluido él mismo). El programa deberá utilizar una función definida por el usuario, a la que se le pase un número y nos devuelva un 0 en el caso de que el número que le pasemos no sea perfecto, y un 1 en caso contrario.

3. Realizar un programa que pida dos números enteros por teclado y muestre por pantalla el siguiente menú:

El usuario deberá elegir una opción, introducir dos valores y el programa deberá mostrar el resultado por pantalla. Todas las opciones (1 a 6) deben realizarse utilizando funciones.

4. Utilizando la función primo realizada en el Ejercicio 1, realizar un programa que muestre por pantalla todos los números primos comprendidos entre 1 y un número n introducido por teclado por el usuario.

5. Escriba una función que lea tres números enteros del teclado y nos devuelva el mayor.

6. Escriba una función que calcule la suma de los divisores de un número entero positivo.

7. Escriba una función que determine si un carácter es uno de los dígitos 0,1,2.....9.

8. Escriba una función que convierta grados a fahrenheit (fahrenheit = grados * 9.0/5.0 + 32.0)

9. Escriba las funciones necesarias para poder calcular la equivalencia entre centímetros, pies y pulgadas. (1 Pulgada = 2.54 cm, 1 Pie = 30.48 cm, 1 Pie = 12 Pulgadas)

10. Escribir una función que lea un número entero y un número real por teclado, en función del número entero se aplicará una de las funciones de conversión anteriores, tal y como muestra la siguiente tabla:

Ejercicios propuestos de un nivel de dificultad mayor.

11. Escriba una función que decida si un número entero es capicúa. La palabra capicúa (en matemáticas, número palíndromo) se refiere a cualquier número que se lee igual de izquierda a derecha y de derecha a izquierda (Ejemplos: 101, 111, 121,..., 181, 191, 202, 212,..., 292, 303, 313,..., 898, 909, 919, 929,..., 979, 989, 999, etc)

12. Escriba una función que calcule la suma de los divisores de un número entero positivo, pudiendo excluir de dicha suma el propio número (será un parámetro adicional (valor 1 o 0) quien determinará si se suma o no).

13. Construya una función, llamada amigos, que apoyándose en la función anterior, permita ver si dos números son o no amigos (dos números A y B son amigos si la suma de los divisores de A (excluido él mismo) coincide con B y viceversa)

14. Realizar un programa que pida dos números enteros por teclado y muestre por pantalla el siguiente menú:

El usuario deberá elegir introducir dos valores y a continuación elegir una opción (pulsando el carácter correspondiente), el programa deberá mostrar el resultado por pantalla.

Cada una de las opciones a realizarse en el menú la debe realizar una función específica, sumar(num1, num2); restar(num1,num2) etc…

15. Realizar una función que reciba como entrada una frase acabada en punto, y devuelva el número de vocales y el número total de caracteres leídos sin incluir los espacios en blanco.

16. Realizar una función que reciba un array de caracteres y devuelva en una variable el número de palabras que hay en el array.

17. Realizar una función que recibe una cadena de caracteres, y cambia todas las vocales por punto.

18. Realizar un programa que lea un nombre con apellidos por teclado y a continuación muestre el siguiente menú: