Sei sulla pagina 1di 23

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_cast

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. 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 datos

Las 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 flotante

bool

float

char

double

signedchar

longdouble

unsignedchar

 

short int

 

unsigned short int

 

int

 

unsignedint

 

longint

 

unsignedlongint

 

wchar_t

 

Para declara una variable se emplea la sintaxis:

tipo identificador; //declara una variable tipo identificador [= valor]; //declara e inicializa una variable tipo identificador1, identificador2, identificador3, etc.; //declara varias variables del mismo tipo tipo 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 operandosunuarios 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éticos

Esta tabla resume todas las operaciones aritméticas binarias enC++:

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 op2

Nota: 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, ++ queincrementa en uno su operando, y -- que decrementa en uno el valor desu 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 --

Decrementaop en 1; evalúa el valor antes de decrementar

--

-- op

Decrementaop en 1; evalúa el valor después de decrementar

 
 

1.2.

Operadores Relacionales y Condicionales

 

Los valores relacionales comparan dos valores y determinan la relaciónentre ellos. Por ejemplo, != devuelve true si los dos operandos sondistintos. Esta tabla resume los operadores relacionales de C++:

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

 

1.3.

Operadores Relacionales And y Or

Operador

Uso

Devuelve true si

&&

 

op1 && op2

 

op1 y op2 son verdaderos

||

 

op1 || op2

 

uno de los dos es verdadero

!

! op

op es falso

El operador & se puede utilizar como un sinónimo de && si ambosoperadores son booleanos. Similarmente, | es un sinónimo de || siambos operandos son booleanos.

 

1.4.

Operadores de Asignación

 

Puedes 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)expr

multiplicadores

 

* / %

suma/resta

 

+ -

relacionales

 

<><= >= instanceof

igualdad

== !=

AND lógico

 

&&

OR lógico

 

||

condicional

 

? :

asignación

 

= += -= *= /= %= ^= &= |= <<=

2.

SENTENCIAS DE CONTROL DE FLUJO

Las 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 clave

Toma de decisiones

if-else, switch-case

Bucles ó ciclos

for, while, do-while

Excepciones

try-catch-finally, throw

Misceláneas

break, continue,return

2.1. Toma de decisiones

  • 2.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…else

La 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";

else

cout<<"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…elseanterior. 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 anidadas

Las 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…elseen 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";

elseif ( calificacionEstudiante>= 80) cout <<"B"; elseif ( calificacionEstudiante >= 70) cout <<"A"; elseif ( 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 ciclos

  • 2.2.1. Instrucción de repetición for

La 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 for

La 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.

Palabra

clave

for

elseif ( calificacionEstudiante>= 80) cout << "B" ; elseif ( calificacionEstudiante >= 70) cout << "A"

for(

Nombre

de

variable

de control

elseif ( calificacionEstudiante>= 80) cout << "B" ; elseif ( calificacionEstudiante >= 70) cout << "A"

Separador de

punto y

coma

elseif ( calificacionEstudiante>= 80) cout << "B" ; elseif ( calificacionEstudiante >= 70) cout << "A"

requerido

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

elseif ( calificacionEstudiante>= 80) cout << "B" ; elseif ( calificacionEstudiante >= 70) cout << "A"

contador++ )

intcontador = 1 ;

contador<= 10;

elseif ( calificacionEstudiante>= 80) cout << "B" ; elseif ( calificacionEstudiante >= 70) cout << "A"
elseif ( calificacionEstudiante>= 80) cout << "B" ; elseif ( calificacionEstudiante >= 70) cout << "A"

Separador de punto y coma requerido

Valor inicial de la variable de control

Condición de

continuación de

ciclo

Incremento de la variable control

Ejemplo:

#include<iostream> usingstd::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ínea return 0; //Indica que terminó correctamente

}

  • 2.2.2. Instrucción de repetición while

El bucle whilenos 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 whileen 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.

cout<< contador << " " ; cout<<endl; //Imprime una nueva línea return 0; //Indica que terminó

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 whilees 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.

cout<< contador << " " ; cout<<endl; //Imprime una nueva línea return 0; //Indica que terminó

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. Switch
1.1.1.
Switch

Cuando 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.

Sintaxis

Switch(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++ 2010

PASOS

  Abra el programa Microsoft Visual C++ 2010 Elija en el menú Archivo la opción
Abra el programa Microsoft Visual C++ 2010
Elija en el menú Archivo la opción Nuevo  Proyecto ..
 Elija la lista de Plantillas instaladas deVisual C++, de la lista de tipos de Proyectos
Elija la lista de Plantillas instaladas deVisual C++, de la lista de tipos de Proyectos elijaProyecto 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:

El proyecto se habrá creado y se abrirá el IDE. Deberías de ver los siguientes componentes:

La ventana delExplorador 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 FUNCIÓNPRINCIPALdel proyecto. Presiona el botón derecho sobre la carpeta Archivos de código

como

sirva

fuente. Elije la opción Agregar y posteriormente la opciónNuevo elemento…

El proyecto se habrá creado y se abrirá el IDE. Deberías de ver los siguientes componentes:

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.

 Aparecerá la siguiente ventana donde le solicita el TIPO de archivo, elige Archivo C++ (.cpp)

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
Aparecerá una ventana en blanco con el nombre Main. Escriba en esta ventana el código fuente de su
programa.
txtNombre
btnProcesar

EJECUTAR “CORRER” EL PROGRAMA

 De la barra de Menú elija el menú Depurar elija la opción: iniciar depuración 
De
la
barra
de
Menú
elija
el
menú
Depurar
elija
la
opción:
iniciar
depuración
La salida será la siguiente
EJECUTAR “CORRER” EL PROGRAMA  De la barra de Menú elija el menú Depurar elija la
  • 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 salida usingstd::cout; // el programa usa cout usingstd::endl; // el programa usa endl usingstd::cin; // el programa usa cin

//la funcionmain comienza la ejecucion del programa intmain() {

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: appCalcularSalario

Cree 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 salida usingstd::cout; // el programa usa cout usingstd::endl; // el programa usa endl usingstd::cin; // el programa usa cin

//la funcionmain comienza la ejecucion del programa intmain() {

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.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 salida usingstd::cout; // el programa usa cout usingstd::endl; // el programa usa endl usingstd::cin; // el programa usa cin

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

//la funcionmain comienza la ejecucion del programa intmain() {

//Declaración e inicialización de variables double presupuesto=0; //Variable para guardar el presupuesto total doubleginecologia=0, pediatria=0, traumatologia=0; // guarda el monto de c/ área.

//Entrada de datos

cout<<"Digite el PRESUPUESTO asignado al hospital: "; cin>> presupuesto;

//Procesos

ginecologia=presupuesto*0.40;

pediatria=presupuesto*0.25;

traumatologia=presupuesto*0.35;

//Salida de datos cout<<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 salida usingstd::cout; // el programa usa cout usingstd::endl; // el programa usa endl usingstd::cin; // el programa usa cin

//la funcionmain comienza la ejecucion del programa intmain() {

//Declaración e inicialización de variables charnombreArticulo[25]; //variable para guardar el nombre del articulo doubleprecioCosto=0; //Variable para guardar el precio de costo del articulo double ganancia=0; //variable para almacenar la ganancia obtenida doubleprecioVenta;//variable para guardar el precio de venta del articulo

//Entrada de datos

cout<<"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 datos cout<<"El precio en que debe vender el articulo " <<nombreArticulo<<" es de "<<precioVenta<<endl;

system("pause");

}

  • 3.5. Creación del proyecto: appInversionDinero

Tres 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 salida usingstd::cout; // el programa usa cout usingstd::endl; // el programa usa endl usingstd::cin; // el programa usa cin

//la funcionmain comienza la ejecucion del programa intmain()

{

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

//Entrada de datos

cout<<"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 datos cout<<"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: appCompararNumeros

Leer 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 salida usingstd::cout; // el programa usa cout usingstd::endl; // el programa usa endl usingstd::cin; // el programa usa cin

//la funcionmain comienza la ejecucion del programa intmain() {

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

//Procesos

if ( numero1 == numero2) resultado = numero1 * numero2; elseif ( 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: appLlantera

En 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 10 Obtener 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 salida usingstd::cout; // el programa usa cout usingstd::endl; // el programa usa endl usingstd::cin; // el programa usa cin

//la funcionmain comienza la ejecucion del programa intmain() {

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

//Imprime información

cout<<"*********** LLANTERA LAS PONCHADAS ***********"<<endl

<<"*** De 1 a menos de

5 llantas

valor ¢ 3.000,00"<<endl valor ¢ 2.500,00"<<endl valor ¢ 2.000,00"<<endl;

<<"*** De 5 a menos de 10 llantas

<<"*** Mas de 10 llantas

//Entrada de datos

cout<<"Digite la cantidad de llantas a comprar: "; cin>> cantidad;

//Procesos

if ( cantidad < 5) total = cantidad * 3000; elseif ( 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: appManzanas

Una frutería ofrece las manzanas con descuento según la siguiente tabla:

 
 

NÚM. DE KILOS COMPRADOS

 

% DESCUENTO

 
  • 0 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 salida usingstd::cout; // el programa usa cout usingstd::endl; // el programa usa endl usingstd::cin; // el programa usa cin

//la funcionmain comienza la ejecucion del programa intmain() {

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

//Imprime información

cout<<"*********** 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 datos cout<<"Digite el precio por Kilo de las manzanas: "; cin>> precio; cout<<"Digite la cantidad de kilos a comprar: "; cin>> cantidad;

//Procesos

total = cantidad * precio; if ( cantidad >= 3 && cantidad <= 5) descuento = total * 0.10; elseif ( cantidad >= 6 && cantidad <= 10) descuento = total * 0.15; elseif ( 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: appColorBolita

En 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;

usingstd::cin;

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

intgenerarNumero(); // genera un número al azar

intmain()

{

// randomiza el generador de números aleatorios, usando la hora actual

intnumeroAlAzar= 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: appFabricaComputadoras

En 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 salida usingstd::cout; // el programa usa cout usingstd::endl; // el programa usa endl

usingstd::cin;

// el programa usa cin

//la funcionmain comienza la ejecucion del programa intmain() {

//Declaración e inicialización de variables double precio = 230000, cantidad = 0, total = 0; //Variables para guardar los dos datos double descuento = 0;

//Imprime información

cout<<"*********** VENTA DE COMPUTADORAS ***********"<<endl

<<"*** CANTIDAD

% DESCUENTO"<<endl

<<"*** 5 - 9

%20"<<endl

<<"*** 10 en adelante

%40"<<endl

<<"*********************************************"<<endl<<endl;

//Entrada de datos

cout<<"Digite la CANTIDAD de computadoras: "; cin>> cantidad;

//Procesos total = cantidad * precio; if ( cantidad >= 5 && cantidad < 10)

descuento = total * 0.20;

elseif ( 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: appAlmacen

En un almacén se utilizan los siguientes códigos CÓDIGO = 1 para un automóvil nuevo CÓDIGO = 2 para un automóvil usado CÓDIGO = 3 para accesorios aparte La 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 PROPUESTOS

    • a. Sentencias de control repetitivas

      • 1. 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

....

  • 3. Calcular la suma de las siguientes series:

 

a)

b)

  • 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ú:

descuento = total * 0.20; elseif ( cantidad >= 10) descuento = total * 0.40; total

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 fory 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.

Ejemplo:
Ejemplo:
1. 5 x 4 = 20 2. 20 – 4 = 16 3. 16 / 8
1.
5 x 4 = 20
2.
20 – 4 = 16
3.
16 / 8 = 2
4.
2 x 6 = 10 Incorrecto
5.
3 x 3 = 9
6.
12 – 7 = 2 Incorrecto
7.
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ú:

Ejemplo: 1. 5 x 4 = 20 2. 20 – 4 = 16 3. 16 /

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)

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:

10. Escribir una función que lea un número entero y un número real por teclado, en

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,

...

,

929,

...

,

979, 989, 999, etc)

181, 191, 202, 212,

...

,

292, 303, 313,

...

,

898, 909, 919,

  • 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ú:

Ejercicios propuestos de un nivel de dificultad mayor. 11. Escriba una función que decida si un

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ú:

Ejercicios propuestos de un nivel de dificultad mayor. 11. Escriba una función que decida si un