Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CUADERNO DE EJERCICIOS
Algoritmos modularizados con
lenguaje C
LABORATORIO DE PROGRAMACIN
ABRIL 2010
Versin 1.1
ndice de ejercicios
INTRODUCCIN .................................................................................................... 6
OBJETIVO .............................................................................................................. 7
PARTE I. ENUCIADOS DE EJERCICIOS .............................................................. 7
TEMA 1. CONCEPTOS BSICOS ............................................................................................................... 7
Actividad 1. IDENTIFICADORES ...............................................................................................................15
INTRODUCCIN
Este cuaderno es una revisin de cuadernos de ejercicios
realizados en aos pasados, en este cuaderno se incluyen
ejercicios relacionados con temas introductorios a la
computacin con el fin de que el alumno comprenda los
conceptos bsicos manejados en la programacin como son
variables, constantes, sentencias, operadores, identificadores,
expresiones, etc.
Se muestra la estructura de un programa mnimo en lenguaje C,
en el que se implementar la solucin de cada problema en un
solo bloque, que es la funcin principal del programa.
Este cuaderno servir de apoyo a los profesores, en su labor
cotidiana de enseanza y al estudiante le proporcionar
ejemplos de implementacin en lenguaje C, as mismo tendr
diferentes ejercicios con sulucin, con los que podr realizar una
retroalimentacin de los conocimiento que reqiere tener para
desarrollar programas para la solucin de diferentes problemas,
que tendr que desarrollar a lo largo de su carrera.
En la primer parte de este cuaderno se plantea una serie de
ejercicio clasificados por temas manejados en el curso y en la
segunda parte las soluciones para cada uno de los problemas
planteados, haciendo para esto, por un lado la implementacin
en un solo bloque y por el otro con procedimientos y funciones.
Se recomienda a los estudiantes leer, analizar y resolver los
ejercicios, posteriormente, comparar con las soluciones de los
problemas y analizar posibles errores, mejoras o diferencias en
la lgica utilizada en la solucin del problema, esto con el fin de
desarrollar su capacidad analtica y creadora.
OBJETIVO
-850
Rango de valores
-32767 a 32767
VARIANTES DE ENTEROS
short int
unsigned int
long int
-10
-128 a 127
45689
0 a 65535
588458
unsigned long
20000
4 -2147483648 a 2147483647
4
0 a 4294967295
Rango de valores
Float
3.4x10
85
-38
a 3.4x10
38
-308
a 1.7x10
308
-4932
a 1.1x10
4932
0.0058
1.00E-07
10
1.7x10
3.4x10
'O'
Rango de valores
0 ......255
Aqui las variables i, j, contador y suma contendrn valores de tipo entero. Las
variables x y precio son de tipo fraccionario. La variable sexo contendr valores de
tipo carcter y las variables nombre y domicilio son espacios en memoria que
guardarn cadenas de texto. El valor contenido en las variables puede ser
modificado varias veces en cualquier parte del algoritmo.
Algunas variables pueden inicializarse, es decir, tomar algun valor especfico al
momento de declararlas (en los ejemplos w se inicializa con el valor 10), para
evitar posibles errores durante la ejecucin del algoritmo (programa) en la
computadora.
Las reglas que se deben considerar en una buena programacin son:
1. Disear algoritmos en etapas yendo de lo general a lo particular (mtodo
descendente)
2. Dividir el algoritmo en partes independientes -mdulos- y tratar cada mdulo
independientemente.
3. Establecer y utilizar la solucin de problemas tcnicas de programacin
estructuradas
4. Dar especial importancia a las estructuras de datos
5. Describir completamente cada algoritmo
6. Verificar o realizar la prueba de escritorio a cada algoritmo desarrollado.
El teorema de Bohm y Jacopini establece que un programa propio puede ser
escrito utilizando solo tres tipos de estructuras de control:
Secuencial
Selectiva
Repetitiva
Un programa propio puede ser escrito utilizando lo siguiente:
Declaraciones:
o Libreras de inclusin
o Declaracin de funciones y/o procedimientos
o Definicin de constantes y/o variables
Estructuras de programacin:
o Asignacin
o Decisin
o Cclicas
o De seleccin mltiple
Estructuras de datos:
10
Expresiones complejas
Las
complejas
consisten
en
expresiones simples conectadas o
relacionadas con operadores bien sean
matemticos o relacionales.
Ejemplos: A + B
(A + B) * (C + B)
Operadores
Un operador es un smbolo que le da instrucciones al lenguaje de programacin
para que ejecute alguna operacin, o accin, en uno o ms operandos. Un
operando es algo sobre lo cual acta un operador (podra considerarse como una
expresin)
El operador de asignacin
Permite evaluar una expresin y calculado su valor, guardarlo en una posicin de
memoria asignando dicho valor al nombre de una variable.
La forma general de uso es:
Variable = Expresin lenguaje C
X = Y;
En un programa en lenguaje C, la estructura de asignacin del ejemplo anterior no
significa que X es igual a Y. En cambio significa "asigne el valor de Y a X".
Sentencia de asignacin mltiple: Se usa cuando se desea asignar el mismo
valor a varias variables.
Ejemplo:
A = B = C = D = 1;
// asigna a las variables A, B, C y D el valor de 1
11
Expresin
A = A + 2;
X=XY
Z=Z*5
A=A/3
MES = MES % 2
Expresin abreviada
A += 2
X -= Y
Z *= 5
A /= 3
MES %= 2
OPERADORES Y SU PRECEDENCIA
Operadores Aritmeticos
Devuelven el valor numrico correspondiente del clculo a realizar en el que usa el
operando a la derecha y el de la izquierda del operador.
Operador
Suma
Resta
Multiplicacin
Divisin
Residuo
Smbolo
+
*
/
%
Incremento unitario
Decremento unitario
Ejemplos:
A
B
11
2
16
4
15
3
13
2
123.12
2.5
2.4
1.3
++
--
Accin
Suma los dos operandos
Resta el segundo operando al primero
Multiplica los dos operandos
Divide el primer operando entre el segundo
Devuelve el residuo de dividir el primer
operando entre el segundo
Incrementa en uno el valor asociado
Decrementa en uno el valor asociado
A+B
13
20
18
15
125.62
A-B
9
12
12
11
120.62
A*B
22
64
45
26
307.8
A/B
5
4
5
6
429.24
3.7
1.1
3.12
1.846
A%B
1
0
0
1
No aplica
con fracc.
No aplica
con fracc.
Ejemplo
Op1 + Op2
Op1 - Op2
Op1 * Op2
Op1 / Op2
Op1 % Op2
X++
X--
A++
12
17
16
14
124.12
B-1
3
2
1
1.5
3.4
0.3
Operadores Relacionales
Devuelven un valor de cierto falso dependiendo del resultado de la comparacin
del operando de la derecha con el de la izquierda del operador.
Operador
Mayor que
Mayor o igual que
Smbolo
<
<=
Accin
Devuelve cierto si el primer operando es menor
que el segundo operando
Devuelve cierto si el primer operando es menor o
igual que el segundo operando
Ejemplo
Op1 < Op2
Op1 <= Op2
12
Operador
Menor que
Menor o
que
Igual que
>
igual
>=
==
Diferente que
!=
Accin
Devuelve cierto si el primer operando es mayor
que el segundo operando
Devuelve cierto si el primer operando es mayor o
igual que el segundo operando
Devuelve cierto si el primer operando es igual que
el segundo operando
Devuelve cierto si el primer operando es diferente
que el segundo operando
Ejemplo
Op1 > Op2
Op1 >= Op2
Op1 == Op2
Op1 != Op2
Ejemplos:
(a + b) < c
a != (x*x + b*x + c)
Operadores Lgicos
Devuelven un valor de cierto falso dependiendo del valor de los operandos al
unirse por el operador.
Operador
And (y)
Smbolo
&&
Or (o)
||
Negacin
Accin
Devuelve cierto si ambos operadores son ciertos, en
cualquier otro caso devuelve falso
Devuelve cierto con que ambos o cualquiera de los
operandos es cierto, solo en caso de que ambos sean
falsos, devuelve falso
Devuelve el valor contrario al del operando
Ejemplo
P && Q
P || Q
!P
Ejemplos:
P
15>5 (V)
78 != 89 (V)
90 == 78 (F)
!V (F)
Q
45==45 (V)
34 < 34 (F)
34 <= 34 (V)
4 >= 3 (F)
P && Q
V
F
F
F
P || Q
V
V
V
F
!P
F
F
V
V
13
Precedencia de Operadores
En una expresin que contiene ms de un operador aritmtico diferente el
computador evala dicha expresin de acuerdo a la siguiente jerarqua de
operadores.
( )
Exponenciacin
++, -*, /, %
+, <, <=, >, >=
==, !=
&&
||
= += -= *= /= %=
14
Actividad 1. IDENTIFICADORES
1.1. Ejemplos de construccin de identificadores
Concepto
Importe total de la factura
Ident. correcto
Tot_fact
TotalFactura
Tfact
total_factura
Ident. Incorrecto
Total factura
Imp.Tot.Fact
Total-fact
Nombre de alumno
Nom_alum
NomAlum
nombre_alumno
Num_asig
NumAsig
NasigCurs
numero_asig
Fecha_nac
FechaNac
Fnacimiento
f_nac
Nombre alumno
Nom-alum
Fecha de nacimiento
NAsignaturaC
Num asign
#asignatura
Fecha nac
f.nac.
Identificador(es)
Recaudacin de la quiniela
Nmero de recibos pendientes
en ejecutiva
I.V.A. a aplicar
Cdigo de cliente
Direccin de correo electrnico
Nmero de hijos
15
Identificador(es)
Hora actual
Tablero de ajedrez
Aforo mximo
Nmero de pliza de seguro
Total de euros
Contador
repetitiva
de
una
estructura
Nombre
Main
+apuntador
nuevoNombre_2
Aos
Km*Litro
16
float precio;
float numero_Hijos;
char Tipo;
char nombre[30];
int suma = 0;
Valor de variable
Resultado
(2 * I) <= J
(2 * I 1) < J
(I > 0) && (I <= 10)
(I > 25) || (I < 50 && J < 50)
(I < 4) || (J > 5)
!( I > 6)
Actividad 2. EXPRESIONES
2.1. Ejemplos evaluacin de expresiones
En las siguientes expresiones (aritmticas, relacionales lgicas) se describe el
orden en el que se ejecutaran cada una de las operaciones que las conforman y
que resultado se obtendr de cada una de ellas.
1. Evaluar la expresin: A += (B * C) + (A * D)
Para los valores A=2, B=4, C=5, D=3
R1 = B * C
R1 = 4 * 5 = 20
Resultado
R2 = A * D
R2 = 2 * 3 = 6
A = 28
R3 = R1 + R2
R3 = 20 + 6 = 26
R4 = A + R3
R4 = 2 + 26 = 28
A = R4
A = 28
2. Evaluar la expresin: (a + b + c + d + e) % 5
Para los valores a=3, b=2, c=1, d=8, e=4
R1 = a + b
R1 = 3 + 2 = 5
Resultado
R2 = R1 + c
R2 = 5 + 1 = 6
3
R3 = R2 + d
R3 = 6 + 8 = 14
R4 = R3 + e
R4 = 14 + 4 = 18
R5 = R4 % 5
R5 = 18 % 5 = 3
18
19
Resultado
Falso
Resultado
Falso
6. Evaluar la expresin: A * B / C * D
Suponga A = 34, B = 12, C = 8 y D = 4
R1 = A * B
R1 = 34 * 12
R2 = R1 / C
R2 = 408 / 8
R3 = R2 * D
R3 = 51 * 4
Resultado
204
Resultado
Cierto
20
R6 = !falsocierto
R7 = cierto && falso falso
R8 = cierto || falsocierto
8. Evaluar la expresin: (a + b) * c
Suponga a = 34, b = 12 y c = 8
R1 = a + b
R1 = 34 + 12
R2 = R1 * c
R2 = 46 * 8
9. Evaluar la expresin:a + x * x + b * (x + c)
Suponga a = 34, b = 12, c = 8 y x = 3
R1 = x + c
R1 = 3 + 8
R2 = x * x
R2 = 3 * 3
R3 = b * R1
R3 = 12 * 11
R4 = a + R2
R4 = 34 + 9
R5 = R4 + R3
R5 = 43 + 132
Resultado
368
Resultado
175
Resultado
14
Resultado
9.2
Resultado
23
21
Resultado
23
Resultado
8.24
Resultado
28.98
Resultado
28.98
Resultado
12.09
25. Evaluar la expresin: (edad >= 18) && (edad <= 60)
Suponga: edad = 33
R1 = edad >= 18
R1 = 33 >= 18
R2 = edad <= 60
R2 = 33 <= 60
R3 = R1 && R2
R3 = Verdad && Verdad
26. Evaluar la expresin: A % B + C / D 6
Suponga A = 34, B = 12, C = 8 y D = 4
R1 = A % B
R1 = 34 % 12
R2 = C / D
R2 = 8 / 4
R3 = R1 + R2
R3 = 10 + 2
R4 = R3 - 6
R4 = 12 - 6
Resultado
Verdad
Resultado
6
23
R1 = 3 + 12
R2 = 2 * 15
R3 = 4 + 30
Resultado
34
Resultado
14
Resultado
16
Resultado
11.5
Resultado
1
Resultado
0.25
Resultado
Error
24
R4 = 6 / 2
R5 = 3 / 1
R6 = 3 / 5
R7 = 0.6 % 2 (no se aplica
El operador residuo a los
Fraccionarios)
R1 = 4 + 4
R2 = 7 + 2
R3 = 8 9
R4 = 8 * 5
R5 = 40 * -1
Resultado
-40
ab
cd
Expresin
X = (a + b) / (c d)
(y2 - y1) / (x2 x1)
(a + b) / (c + d)
(3 * x + 2 * y) / (2 * z)
((x + y) / x) (3 * x / 5)
A + (b / (c * c))
25
2.3.
Ejercicios
computaconales
expresiones
algebraicas
vs
expresiones
26
Expresin
27
Expresin
4x -2y + 7
28
#include <stdio.h>
OPERACIONES DE ENTRADA/SALIDA
Una operacin de entrada tiene por objeto el obtener datos de los diferentes
dispositivos de entrada; generalmente del teclado, y los almacena en memoria
principal.
Donde:
Cadena de control: Cadena de texto que se ver en pantalla, dentro de la cual
pueden incluirse cdigos de formato, en caso de que se desee mostrar el
contenido de variables del programa. Se usar un cdigo por cada una de las
variables que se desee ver su contenido. La siguiente tabla muestra los cdigos
de formato ms comunes.
34
Formato
%d
Un entero
%i
Un entero
%c
Una carcter
%s
Una cadena
%f
Un real
%ld
Entero largo
%u
%lf
Doble posicin
%h
Entero corto
%o
Octal
%x
Hexadecimal
%e
Notacin Cientfica
%p
Puntero
%%
Imprime Porcentaje
Grficos (se corresponden con los smbolos ms usados para escribir por
los humanos).
\n
\
Carcter
Descripcin
Tabulador horizontal Mueve el cursor a la posicin
siguiente
del
tabulador
horizontal.
Nueva lnea
Mueve el cursor al principio de
la lnea siguiente
Comilla doble
Muestra el carcter comilla
doble ()
Valor ASCII
009
010
034
35
PANTALLA
Bienvenido a la programacin
Contenido de variable x = 5
Variables x = 5, w = 3.4, c=g
PANTALLA
Bienvenido a la programacin
Contenido de variable x = 5
Variables x = 5, w = 3.4, c=g
Donde:
Cadena de control: Contendr los cdigos de formato corrspondientes al formato
de las variables a leer un cdigo por cada variable que se vaya a leer.
Lista de variables: Nombre de una o ms variables separadas con coma, donde
se guardar los valores ledos, el nombre de cada variable debe ir antecedido por
un &.
Ejemplos: Dadas las definiciones
int x;
float w;
char c;
// Las instrucciones de lectura para cada variable pueden ser
36
(%d, &x);
(%f, &w);
(%c, &c);
(%d %f %c, &x, &w, &c);
Donde:
En la instruccin se separa el nombre de cada variable en la que se quiera
guardar el valor ledo con dos smbolos > juntos (>>).
Ejemplos: Dadas las definiciones
int x;
float w;
char c;
// Las instrucciones de lectura para cada variable pueden ser
Cin>>x;
Cin>>w;
Cin>>c;
Cin>>x>>w>>c;
Funciona igual que la iinstruccin scanf, con cada ejecucin del
programa se guardar en cada variable el valor que el usuario
teclee.
Si el usuario teclea, por ejemplo, el valor 3.8 para el radio, en ese espacio se
guardar el valor 3.800000.
En pantalla se visualizar:
39
40
41
Algoritmo
Entradas
1. Inicio
2. Leer l
3. Leer a
4. area=l*a
5. Escribir (Area del rectangulo, area)
6. Fin
Proceso
Salida
42
Entradas
Programa
void main(){
float a, l, area;
cin>> l;
cin>> a;
area = l * a;
cout<< Area del rectangulo= << area;
}
Proceso
Salida
a
0
5.3
Area
0
21.73
I
0
5
A
4
0
Area
0
0
44
DATOS DE SALIDA:
Porcentaje
Porcentaje
Porcentaje
Porcentaje
PROGRAMA:
void main(){
char Candidato1[15], Candidato2[15], Candidato3[15]
int VCand1, VCand2, VCand3, VEnBco, TotalVElecc;
float PorcCand1, PorcCand2, PorcCand3,PorcVEnBco;
float PorcCiudadanosResp, PorcCiudadanosInc;
cout<<"Dar Nombre candidato 1: ";
cin>> Candidato1;
cout<<"Dar Nombre candidato 2: ";
cin>> Candidato2;
cout<<"Dar Nombre candidato 3: ";
cin>> Candidato3;
cout<<"Dar votacin de "<<Candidato1<<": ";
cin>> VCand1;
cout<<"Dar votacin de "<<Candidato2<<": ";
cin>> VCand2;
cout<<"Dar votacin de "<<Candidato3<<": ";
cin>> VCand3;
cout<<"Dar votacin en blanco: ";
cin>> VEnBco;
TotalVElecc = VCand1 + VCand2 + VCand3 + VEnBco;
PorcCand1 = ( VCand1 / TotalVElecc ) * 100;
PorcCand2 = ( VCand2 / TotalVElecc ) * 100;
PorcCand3 = ( VCand3 / TotalVElecc ) * 100;
PorcVEnBco = ( VEnBlanco / TotalVElecc ) * 100;
PorcCResp = (TotalVElecc/TotElectores)*100;
PorcCInc = 100 PorcCResp;
cout<<"Porcentaje "<<Candidato1<<" = "<<PorcCand1;
cout<<"Porcentaje "<<Candidato2<<" = "<<PorcCand2;
cout<<"Porcentaje "<<Candidato3<<" = "<<PorcCand3;
cout<<"Porcentaje de votos en blanco = "<<PorcVEnBco;
cout<<"Si votaron = "<<PorcCResp<<"%";
cout<<"NO votaron = "<<PorcCInc<<"%";
getch();
}
EJERCICIOS PROPUESTOS
Analizar problemas y proponer algoritmos de solucin. Considerar el uso de
procedimientos y funciones para cada una de las soluciones planteadas
conforme sea pertinente.
46
Ejercicio 1.
Leer 3 variables decimales. Sumarlas, multiplicarlas y dividirlas.
Ejercicio 2.
Disear un programa que permita ingresar un valor inicial y un valor final. Calcular
el valor central de los nmeros.
Ejercicio 3.
Construir un programa que calcule e imprima el nmero de segundos que hay en
un determinado nmero de das.
Ejercicio 4.
Dada una cantidad en pesos, obtener la equivalencia en dlares, asumiendo que
la unidad cambiaria es un dato desconocido.
Ejercicio 5.
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 invertida.
Ejercicio 6.
Hacer un programa que lea 3 calificaciones y calcule su promedio. Mostrar el
resultado de la siguiente manera:
Utiliza un escribir para cada calificacin y en uno el promedio.
Ejercicio 7.
En un hospital existen 4 reas. Ginecologa, pediatra, urologa, y traumatologa. El
presupuesto anual del hospital se reparte conforme a la siguiente tabla:
rea % del presupuesto
G
25
T
15
U
13
P
47
Obtener la cantidad del dinero que recibir cada rea para cualquier monto
presupuestal.
Ejercicio 8.
Un alumno desea saber cual ser su promedio en las 3 materias mas bonitas que
cursa y cual ser el promedio de cada una de ellas estas materias se evalan
como se muestra a continuacin.
47
Ingles
Examen oral
Quiz
Examen escrito
2 tareas
%
15
30
40
15
Ejercicio 9.
Calcule el nuevo salario de un trabajador si ha obtenido un porcentaje de
incremento desconocido sobre su salario anterior. Leer el nombre del trabajador.
Ejercicio 10.
La fuerza de atraccin entre dos cuerpos es igual al producto de una constante k
por el cociente que resulta de dividir el producto de las masas de los cuerpos por
el cuadrado de su distancia.
Referencias: [Pastrana2003] pag. 23-40, [Besembel2010]
[Joyanes2003] pag. 132 136, [Rivas1985] pag. 87-99.
pag.
7-20,
48
Donde:
Condicin: Es una expresin relacional (expresin formada por variables o
constantes unidos por operadores relacionales) o lgica (formada por expresiones
relacionales unidas por operadores lgicos), que darn un resultado de verdadero
o falso.
Bloque de sentencias: Puede ser una o ms instrucciones a ejecutarse cuando
la condicin sea verdadera. Si es ms de una instruccin se usarn llaves {} que
encierren a todas las instrucciones que se ejecuarn, en caso de que solo sea una
instruccin no son necesarias las llaves.
Ejemplo 1. Programa con if simple
#include <iostream.h>
using namespace std;
#define falso 0
#define cierto 1
int main () {
int miPrimeraLogica, miSegundaLogica;
miPrimeraLogica = cierto;
miSegundaLogica = !miPrimeraLogica;
if ( miSegundaLogica == cierto){
cout<<"miSegundaLogica debe tener cierto";
cout<<endl;
}
49
En
la
memoria
se
reservar
espacio
para
las
variables miPrimeraLogica y miSegundaLogica. Luego se asigna el
valor 1 (cierto) en miPrimeraLogica y el de 0 (falso no cierto) en
miSegundaLogica.
La condicin de la primer instruccin condicional va dar falso ya que
compara el valor de miPrimeraLogica con cierto (si son iguales) como
no es asi no se ejecutra la salida a pantalla que tiene esa instruccin.
La condicin de la siguiente instruccin if si va a dar verdad, ya que
se trata de la negacin de falso (que es resultado de la coomparacin
de si es igual el contenido de la variable miSegundaLogica con
cierto).
En pantalla se ver:
miSegundaLogica debe tener falso
_
Ejemplo 2. Programa con dos if simples
Enunciado del problema:
Dados tres nmeros enteros, determinar si la suma de cualquier pareja de
ellos es igual al tercer nmero. Si se cumple esta condicin, escribir
Iguales y, en caso contrario, escribir Distintos
Anlisis: Entrada - Proceso - Salida
#include <iostream.h>
using namespace std;
50
Distintos
Selectiva doble (if - else). Permite elegir entre dos opciones posibles en
funcin del cumplimiento o no de una determinada condicin. Si la
condicin es verdadera, se ejecuta el bloque de sentencias 1, si es falsa, se
ejecuta el bloque de sentencias 2.
Sintaxis de la sentencia:
if (condicin)
Bloque de sentencias 1
else
Bloque de sentencias 2
Donde:
Condicin.- Expresin relacional.
Bloques de sentencias.- El bloque de sentencias 1 se ejecutara cuando la
condicin se cumpla (sea verdadera) y el bloque de sentencias 2 se ejecutara en
caso de que la condicin sea falsa. Para cada bloque, en caso de que sean ms
de una sentencia, es necesario encerrar entre llaves { } estas sentencias.
Ejemplo 3. Programa con if doble
Enunciado del problema:
51
Variable
Numero
Descripcin
Valor entero
Tipo de dato
Entero
Proceso
Salida
Ninguna
Desplegar el mensaje:
Es positivo Es
negativo
NA
Rango Vlido
Rango de enteros en
la computadora
NA
Es negativo
Selectivas mltiples (if-elses anidados). Existen diferentes formas de
implementacin para esta estructura aqu se debe seleccionar una de
varias acciones a ejecutar dependiendo de una condicin, una de ellas es
realizar anidamiento de sentencias if-else.
Sintaxis de la sentencia:
if (condicin1)
Bloque de sentencias 1
52
Donde:
Condicin.- es una expresin relacional (expresin formada variables o
constantes y operadores relacionales).
Bloque de sentencias.- puede ser una sola instruccin o varias instrucciones y en
tal caso, es necesario encerrar entre llaves { } estas instrucciones.
Ejemplo 4. Programa con if-else multiple
Enunciado del problema:
Dado un valor entero del 1 al 5 que corresponde al orden de las vocales,
escribir en pantalla la vocal respectiva.
Anlisis: Entrada - Proceso - Salida
Entrada
Variable
Letra
Descripcin
Valor de vocal respectiva
Proceso
Salida
Ninguna
Desplegar el mensaje:
Vocal a, Vocal e, Vocal
u, segn sea el valor de la
variable letra
Tipo de dato
Entero
NA
Rango Vlido
Rango de enteros en
la computadora
NA
#include <iostream.h>
using namespace std;
int main () {
int letra;
cout << "Introduzca un nmero del 1 al 5: ";
cin >> letra;
if (letra == 1)
cout << "La primer vocal es la a" << endl;
else if (letra == 2)
cout << "La segunda vocal es la e" << endl;
else if (letra == 3)
cout << "La tercer vocal es la i" << endl;
else if (letra == 4)
cout << "La cuarta vocal es la o" << endl;
else if (letra == 5)
cout << "La quinta vocal es la u" << endl;
else cout << Debes dar un valor del 1 al 5 << endl;
53
La segunda vocal es la e
La tercer vocal es la i
La cuarta vocal es la o
La quinta vocal es la u
Donde:
Para cada uno de los casos puede haber una o ms instrucciones que ejecutar y
la instruccin break es opcional y esta hace que se rompa el flujo de ejecucin de
la instruccin switch.
El uso de la opcin default es opcional, se usar a para especificar la accin(es) a
ejecutar en caso de que la variable evaluada tenga un valor diferente a los
comparados en cada uno de los cases.
Ejemplo 5. Programa con switch
Enunciado del problema:
Dado un valor entero del 1 al 5 que corresponde al orden de las vocales,
escribir en pantalla la vocal respectiva.
Anlisis: Entrada - Proceso - Salida
Entrada
Variable
Letra
Descripcin
Valor de vocal respectiva
Proceso
Salida
Ninguna
Desplegar el mensaje:
Vocal a, Vocal e, Vocal
u, segn sea el valor de la
variable letra
Tipo de dato
Entero
NA
Rango Vlido
Rango de enteros en
la computadora
NA
#include <iostream.h>
using namespace std;
int main () {
int letra;
cout << "Introduzca un nmero del 1 al 5: ";
cin >> letra;
switch (letra){
case 1:
cout << "La primer vocal es la a" << endl;
break;
case 2:
cout << "La segunda vocal es la e" << endl;
break;
case 3:
cout << "La tercer vocal es la i" << endl;
break;
case 4:
cout << "La cuarta vocal es la o" << endl;
break;
case 5:
cout << "La quinta vocal es la u" << endl;
55
La segunda vocal es la e
La tercer vocal es la i
La cuarta vocal es la o
La quinta vocal es la u
PROGRAMA:
#include <iostream.h>
#include <iostream.h>
void main(){
float cs, ms, costo;
cout<<"introducir costo del stereo;
cin>>cs;
cout<<"si la marca del stereo es nosy teclee 1";
cin>>ms;
if(cs>=2000)
cs=cs-(cs*0.10);
if(ms==1)
cs=cs-(cs*0.05);
costo=cs+(costo*0.15);
cout<<"el costo del stereo es de "<<costo;
}
Ejercicio 1.
Una persona desea iniciar un negocio, para lo cual piensa verificar cuanto de
dinero le prestara el banco por hipotecar su casa. Tiene una cuenta bancaria pero
no puede disponer de ella a menos que el monto por hipotecar su casa sea muy
pequeo. Si el monto de la hipoteca es menor que 1 milln entonces invertir el
50% de la inversin total y un socio invertir el otro 50%. Si el monto de la
hipoteca es de mas de 1 milln, entonces invertir el monto total de la hipoteca y
el resto del dinero que necesite para cubrir la inversin total se repartir a partes
iguales entre el socio y l.
Ejercicio 2.
Una persona debe determinar la etapa de la vida de las personas que existen en
su zona habitacional. Se determinan las categoras con base en la siguiente tabla:
CATEGORIA
Nios
Jvenes
Adultos
Viejos
EDAD
0-12
13-29
30-59
60 en adelante
57
Ejercicio 3.
Una compaa de seguros esta abriendo un departamento de finanzas y
estableci un programa para captar clientes que consiste en lo siguiente: si el
monto por el que se efecta la fianza es menor que $50000, la cuota a pagar es el
3% del monto, si el monto es mayor que $50000 la cuota a pagar ser el 2% del
monto. La afianzadora desea determinar cual ser la cuota que debe pagar un
cliente.
Ejercicio 4.
Una frutera ofrece peras con descuento segn la siguiente tabla:
N0 de kilos comprados % de descuento
0.2
0
2.01 5
10
5.01 10
15
10.01 en adelante
20
Determina cuanto pagara una persona que compre peras en esa frutera.
Ejercicio 5.
Realizar un programa que lea dos valores numricos y uno de tipo carcter
calcular el resultado de un clculo, dependiendo el carcter. El carcter puede
tener los valores de +, --, /,*, %.
Ejercicio 6.
Realizar un programa que lea un carcter y dependiendo del carcter, determine
el estado civil de una persona. El carcter puede tener como valores U, C, S, V, D,
O (Unin libre, Casado, Divorciado, Otro).
Ejercicio 7.
En una llantera se ha establecido una promocin
de las llantas marca
MORIRAS, dicha promocin consiste en lo siguiente: Si se compran menos de 5
llantas el precio es de $300 c/u, de $250 c/u si se compran de 5 a 10 y de $200 c/u
si se compran mas de 10 llantas, obtener la cantidad de dinero que una persona
tiene que pagar por cada una de las llantas que compra y lo que tiene que pagar
por el total de la compra.
Ejercicio 8.
El dueo de una empresa desea planificar las decisiones financieras que tomara
durante el ao la manera de planificar depende de lo siguiente: Si actualmente su
capital se encuentra con saldo negativo, pedir un prstamo bancario para que su
nuevo saldo sea de $10000. Si su capital tiene un saldo actual positivo pedir un
prstamo bancario para tener un nuevo saldo de $20000, pero si su capital
actualmente es arriba de los $20000, no pedir ningn prstamo.
5000 para equipo de computo.
58
Ejercicio 9.
Tomando como base los resultados obtenidos en un laboratorio de anlisis
clnicos, un medico determina si tiene anemia o no, lo cual depende de su nivel de
hemoglobina en la sangre, su edad y de su sexo. Si el nivel de hemoglobina que
tiene una persona es menor que el rango que le corresponde, se determina su
resultado como positivo y en caso contrario como negativo. La tabla en la que el
medico se basa es la siguiente:
Edad
Nivel de hemoglobina (8 %)
0 1 mes
13 26
>1 y <=6 meses
10 18
>6 y <=12 meses
11 15
>1 y <=5 aos
11.5 15
>5 y <= 10 aos
12.6 15.5
>10 y <=15 aos
13 15.5
Mujeres > 15 aos
12 16
Hombres > 15 aos
14 18
Ejercicio 10.
Una institucin educativa estableci un programa para estimular a los alumnos
con buen rendimiento acadmico y que cosiste en lo siguiente:
Si el promedio es de 9.5 o mas y el alumno es de preparatoria, entonces
este podr cursar 55 unidades y se le har un 25% de descuento.
Si el promedio es mayor o igual a 9 pero menor que 9.5 y el alumno es de
preparatoria, entonces este podr cursar 50 unidades y se le har un 10%
de descuento.
Si el promedio es mayor que 7 y menor que 9 y el alumno es de
preparatoria, este podr cursar 50 unidades y no tendr ningn descuento.
Si el promedio de 7 o menor, el nmero de materias reprobadas es de 0 a 3
y el alumno es de preparatorio, entonces podr cursar 45 unidades y no
tendr descuento.
Si el promedio es de 7 o menor, el nmero de materias reprobadas es de 4
o ms y el alumno es de preparatoria, entonces podr cursar 40 unidades y
no tendr ni un descuento.
Si el promedio es mayor o igual a 9.5 y el alumno es de profesional,
entonces podr cursar 55 unidades y se le har un 20% de descuento.
59
Ejercicio 11.
En una empresa se requiere calcular el salario semanal de un obrero que labora
en ella. Suponiendo que el pago por hora es de $20.00, obtener el salario de la
siguiente manera:
Ejercicio 12.
El Departamento de Seguridad Pblica y Trnsito del D.F. desea saber, para cada
auto de la ciudad de Mxico, qu color de calcomana le corresponde. Conociendo
el ltimo dgito de la placa de cada automvil se puede determinar el color de la
calcomana utilizando la siguiente relacin:
Dgito
1o2
3o4
5o6
7o8
9o0
Color
Amarilla
Rosa
Roja
Verde
Azul
Ejercicio 13.
Hacer un programa en casos donde reciba la inicial de un color y se describa ese
color.
Ejercicio 14.
Cambiar a Casos el programa del estado civil de una persona (ejercicio 7)
60
Ejercicio 15.
Dada la letra inicial de alguna figura geomtrica (cubo, crculo, triangulo y
rectngulo), realizar el clculo correspondiente al rea de la misma.
Ejercicio 16.
Utilizando el programa colores en casos de (ejercicio 14), convertirlo para retornar
una cadena.
Ejercicio 17.
Utilizando el programa colores en casos de (ejercicio 15), convertirlo para retornar
una cadena.
61
Donde:
El ciclo inicia evaluando la condicin si esta es falsa no se ejecutan las
instrucciones que conforman el ciclo y si es verdadera si se ejecutan, de manera
que este ciclo puede ejecutarse 0 o N veces.
Si se va a ejecutar ms de una instruccin dentro del ciclo se debe encerrar entre
llaves ({ }) el bloque de instrucciones a ejecutar.
Ejemplo 6. Programa con while
Enunciado del problema:
Realizar un programa que promedie una lista indeterminada de nmeros
reales, hasta que se introduzca un cero.
62
Proceso
Salida
Variable
numero
1.
2.
3.
4.
5.
6.
Prom
Descripcin
Valor real
Tipo de dato
Real
(fraccionario)
Pedir y leer numero diferente de cero
Suma =0 y cont=0
Mientras numero sea mayor de cero
a. Acumular el valor de numero en Suma
b. Pedir y leer numero
Fin de mientras
Calcular promedio
Mostrar promedio
Valor resultante
NA
Rango Vlido
Rango de reales en la
computadora
NA
#include <iostream.h>
using namespace std;
int main () {
float numero, suma, cont, prom;
suma = 0; cont = 0;
cout << "Dar un nmero fraccionario (0 para terminar): ";
cin >> numero;
while(numero != 0){
suma = suma + numero;
cont++;
cout << "Dar un nmero fraccionario (0 para terminar): ";
cin >> numero;
} //fin de while
Prom = suma / cont;
cout << promedio = << prom;
return 0;
}
Donde:
El ciclo inicia ejecutando las instrucciones que conforman el ciclo despus de eso
llega a evaluar la condicin si esta es falsa termina el ciclo y si es verdadera
regresa a ejecutar nuevamente las instrucciones del ciclo, de manera que este
ciclo puede ejecutarse de 1 a N veces.
Ejemplo 7. Programa con do - while
Enunciado del problema:
Realizar un programa que calcule La suma de dos nmeros ledos mientras el
usuario quiera estar realizando el calculo.
Anlisis: Entrada - Proceso Salida
Entrada
Proceso
Salida
Variable
Num1
Descripcin
Valor entero 1
Tipo de dato
Entero
Num2
Valor entero 2
Entero
Resp
Caracter
Rango Vlido
Rango de enteros en
la computadora
Rango de caracteres
de la computadora
Valor resultante de la
suma de los nmeros
ledos, en cada vuelta del
ciclo
Entero
Rango de enteros en
la computadora
#include <iostream.h>
64
incremento)
Donde:
65
Proceso
Salida
Variable
Ninguna
Descripcin
Tipo de dato
Rango Vlido
1. Suma = 0
2. Ciclo con variable de control inicializada en 1 hasta que llegue a 20
a. Suma = suma + valor de variable de control
b. Fin de ciclo
3. Mostrar suma
Suma
Valor resultante de la
suma de los nmeros del
1 al 20
Entero
Rango de enteros en
la computadora
#include <iostream.h>
#include <conio.h>
using namespace std; //directiva usada en Dev C++
int main () {
int i, suma=0;
for (i=1; i<=20; i++)
suma = suma + i;
cout << "Suma = " << suma << endl;
getch();
return 0;
}
Suma = 210
#include <iostream.h>
#include <conio.h>
void main(){
int i=1;
while(i<=10) {
cout << "Ring...;
i++;
} //de mientras
getch();
} //fin de principal
Ejercicio 1.
Realizar un programa con el ciclo mientras, que muestre los primeros nmeros
del 1 al 10 y retorne la suma de ellos.
Ejercicio 2.
Hacer un programa con el ciclo mientras, que dado un numero entero decimal me
muestre los siguientes 20 nmeros pares o impares del numero proporcionado.
Ejercicio 3.
Implemente el ciclo mientras para leer caracteres y finalic cuando se introduzca
un *.
67
Ejercicio 4.
Hacer un programa con un ciclo mientras en el se que calcule el total de la
compra, imprima el iva, con cuanto paga y el cambio.
Ejercicio 5.
Mostrar en pantalla 10 veces la lnea de texto Ring.... utilizando un ciclo hacer mientras.
Ejercicio 6.
Hacer un programa en el ciclo hacer mientras,
nmeros del 1 al 10 y retorne la suma de ellos.
Ejercicio 7.
Hacer un programa con el ciclo hacer - mientras, que dado un numero entero
decimal me muestre los siguientes 20 nmeros pares o impares del numero
proporcionado.
Ejercicio 8.
Utilizar un ciclo hacer mientras, que
introduzca un * .
Ejercicio 9.
Realizar un algoritmo que utilice un ciclo mientras en un programa que calcule el
total de la compra, imprima el IVA, con cuanto paga y el cambio.
Ejercicio 10.
Hacer un programa que imprima los nmeros impares comprendidos entre el 400
y 1100.
Ejercicio 11.
Escribir los pares de 100 nmeros proporcionados por el teclado.
Ejercicio 12.
Hacer un programa que lea N edades y retorne el promedio de ellas.
Ejercicio 13.
Hacer un programa que lea N cantidad de artculos vendidos y calcule la venta
total del impuesto, y las ganancias sabiendo que a cada producto se le gana un
35%.
Ejercicio 14.
Un entrenador ha propuesto a un atleta recorrer una ruta de 5 Km. Durante 10
das, para determinar si es apto para la prueba de 5 Km. O debe buscar otra
68
Ejercicio 15.
Una persona desea invertir su dinero en un banco, el cual le otorga un 2% de
inters Cul ser la cantidad de dinero que esta persona tendr al cabo de un
ao si la ganancia de cada mes es reinvertida?
Ejercicio 16.
Calcule la suma siguiente: 100+99+98+97+96+95+.................+5+4+3+2+1+0.
Ejercicio 17.
Ejercicio 18.
Hacer un programa que calcule S = f/x1 + f/x2 + - - - - - - - + f/xn. Utilic la
funcin del problema (P = X y).
Ejercicio 19.
Hacer un algoritmo que lea 50 consumos en una cafetera si el consumo ingresado
excede los 100, se har un descuento de 7%, mostrar todos los pagos
desglosados (sobtotal, descuento y total de cada uno) y el pago total o acumulado.
Ejercicio 20.
Dada N notas calcular el promedio de las notas aprobadas y el promedio de las
notas desaprobadas.
Ejercicio 21.
A una fiesta asistieron personas de diferentes edades y sexos. Construir un
algoritmo dadas las edades y sexos de las personas. Calcular :
-Cuantas personas asistieron a la fiesta
-Cuantos hombres y cuantas mujeres
-Promedio de edades por sexo
-La edad de la persona ms joven que asisti
-No se permiten menores de edad a la fiesta
-Ingresar datos hasta que se ingrese una edad a cero
[Joyanes2003], pag. 160 225
69
C
X
X
C
X
C
Nombre
Main
+apuntador
nuevoNombre_2
Aos
Km*Litro
C
X
X
C
X
X
Valor de variable
=====================================
1. Evaluar la siguiente expresin: a % 2 / b - c * a * y + 18 / c 3 * h
Para los valores a=3, b=2, c=1, h=8, y=4
R1 = a % 2
R1 = 3 % 2 = 1
Resultado
R2 = R1 / b
R2 = 1 / 2 = 0
-18
R3 = c * a
R3 = 1 * 3 = 3
R4 = R3 * y
R4 = 3 * 4 = 12
R5 = R2 R4
R5 = 0 12 = -12
R6 = 18 / c
R6 = 18 / 1 = 18
R7 = R5 + R6
R7 = -12 + 18 = 6
R8 = 3 * h
R8 = 3 * 8 = 24
R9 = R7 - R8
R9 = 6 24
72
R1= 4 + 1 = 5
R2= 3 >= 5
Resultado
Falso
R1 = 31 + (-1) = 30
R2 = 30 -1 = 29
R3 = 3 * 2 = 6
R4 = 29 < 6
Resultado
Falso
R1 = 3 < 5 cierto
R2 = 6 >= 7falso
R3 = !falsocierto
R4 = !ciertofalso
R5 = falso && cierto
Resultado
Falso
R1 = 22 > 4cierto
R2 = 3 <= 6cierto
R3 = cierto || ciertocierto
R4 = !cierto
Resultado
Falso
R1 = 34 + 12 = 46
R2 = 46 == 8falso
R3 = 8 != 0cierto
R4 = 12 8 = 4
R5 = 4 >= 19 falso
R6 = !falsocierto
Resultado
Cierto
73
8. Evaluar la expresin: (a + b) * c
Suponga a = 34, b = 12 y c = 8
R1 = a + b
R1 = 34 + 12
R2 = R1 * c
R2 = 46 * 8
9. Evaluar la expresin:a + x * x + b * (x + c)
Suponga a = 34, b = 12, c = 8 y x = 3
R1 = x + c
R1 = 3 + 8
R2 = x * x
R2 = 3 * 3
R3 = b * R1
R3 = 12 * 11
R4 = a + R2
R4 = 34 + 9
R5 = R4 + R3
R5 = 43 + 132
Resultado
Cierto
Resultado
368
Resultado
175
Resultado
14
R1 = 23 * 2
R2 = 46 / 5
Resultado
9.2
Resultado
23
Resultado
23
R1 = 14.0 / 40
R2 = 3.5 + 5.09
R3 = 8.59 0.35
Resultado
8.24
Resultado
28.98
Resultado
28.98
Resultado
12.09
75
Resultado
Verdad
Resultado
6
76
Resultado
34
Resultado
14
Resultado
16
Resultado
11.5
Resultado
1
Resultado
0.25
77
R1 = 34 * 12
R2 = 408 / 8
R3 = 51 * 4
Resultado
204
Resultado
Error
#include <iostream.h>
#include <conio.h>
void main(){
int valor1, valor2, valor3, suma, multiplicacin;
float division;
78
Solucin ejercicio 2.
Disear un algoritmo que permita ingresar un valor inicial y un valor final. Calcular
el valor central de los nmeros.
DATOS DE ENTRADA:
Valor inicial (vi entero)
Valor final (vf entero)
PROCESO:
Leer vi, vf
Calcular vc
Mostrar vc
DATOS DE SALIDA:
Valor central (vc fraccionario)
PROGRAMA:
#include <iostream.h>
#include <conio.h>
void main(){
int vi, vf;
float vc;
cout<<"Introducir valor inicial";
cin>>vi;
cout<<"Introducir valor final";
cin>>vf;
vc = (v + vf) / 2;
cout<<"ValorCentral es igual a " << vc;
}
Solucin ejercicio 3.
Construir un algoritmo que calcule e imprima el nmero de segundos que hay en
un determinado nmero de das.
79
DATOS DE ENTRADA:
Valor de numero de das (nd entero)
PROCESO:
Leer nd
ns nd * (24 *60 * 60).
Mostrar ns
DATOS DE SALIDA:
Nmero de segundos (ns entero)
PROGRAMA:
#include <iostream.h>
#include <conio.h>
void main(){
int nd, ns;
cout<<"Introducir valor flotante 1";
cin>>valor1;
cout<<"Introducir valor flotante 2";
cin>>valor2;
cout<<"Introducir valor3";
cin>>valor3;
s = valor1 + valor2 + valor3;
m = valor1 * valor2 * valor3;
d = valor1 / valor2 / valor3;
cout<<"La suma total es de "<<s;
cout<<"La multiplicacion total es de "<<m;
cout<<"La division total es de "<<d;
}
Solucin ejercicio 4.
Dada una cantidad en pesos, obtener la equivalencia en dlares, asumiendo que
la unidad cambiaria es un dato desconocido.
DATOS DE ENTRADA:
Cantidad en pesos (cp fraccionarios)
equivalencia en dlares (cd - fraccionarios)
PROCESO:
Leer cd
ecp/cd
Mostrar e
DATOS DE SALIDA:
Cantidad en dlares (e fraccionario)
PROGRAMA:
#include <iostream.h>
80
Solucin ejercicio 5.
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 invertida.
DATOS DE ENTRADA:
Inversin persona 1 (c1 fraccionario)
Inversin persona 2 (c2 fraccionario)
Inversin persona 3 (c3 fraccionario)
PROCESO:
Leer c1, c2, c3
s c1 + c2 + c3.
P1 c1 / s * 100.
P2 c2 / s * 100.
P3 c3 / s * 100.
Mostrar p1, p2, p3
DATOS DE SALIDA:
Porcentaje de inversin persona 1 (p1 fraccionario)
Porcentaje de inversin persona 2 (p2 fraccionario)
Porcentaje de inversin persona 3 (p3 fraccionario)
PROGRAMA:
#include <iostream.h>
#include <conio.h>
void main(){
float c1, c2, c3, p1, p2, p3;
Cout<<Introducir primera cantidad a invertir";
cin>>c1;
cout<<Introducir segunda cantidad a invertir";
cin>>c2;
cout<<Introducir tercera cantidad a invertir";
cin>>c3;
s = c1 + c2 + c3;
p1 = c1 / s * 100;
p2 = c2 / s * 100;
p3 = c3 / s * 100;
81
Solucin ejercicio 6.
Hacer un programa que lea 3 calificaciones y calcule su promedio. Mostrar el
resultado de la siguiente manera:
Utiliza un cout<<para cada calificacin y uno para el promedio.
DATOS DE ENTRADA:
Calificacin 1 (c1 fraccionario)
Calificacin 2 (c2 fraccionario)
Calificacin 3 (c3 fraccionario)
PROCESO:
Leer c1, c2, c3
prom ( c1 + c2 + c3 ) / 3.
Mostrar c1,c2,c3, prom
DATOS DE SALIDA:
C1, c2, c3
Valor del promedio (prom fraccionario)
PROGRAMA:
#include <iostream.h>
#include <conio.h>
void main(){
float c1, c2, c3, prom;
cout<<Introducir primera calificacin
cin>>c1;
cout<<Introducir segunda calificacin
cin>>c2;
cout<<Introducir tercera calificacin
cin>>c3;
prom = ( c1 + c2 + c3 ) / 3;
cout<<La primera calificacin es " <<
cout<<La segunda calificacin es " <<
cout<<La tercera calificacin es " <<
cout<<El promedio es ", prom;
}
1";
b";
c";
c1;
c2;
c3;
Solucin ejercicio 7.
En un hospital existen 4 reas. Ginecologa, pediatra, urologa, y traumatologa. El
presupuesto anual del hospital se reparte conforme a la siguiente tabla:
82
#include <iostream.h>
#include <conio.h>
void main(){
float pa, dg, dt, du, dp;
cout<<Introducir presupuesto anual";
cin>>pa;
dg = pa * 0.25;
dt = pa * 0.15;
du = pa * 0.13;
dp = pa * 0.47;
cout<<Ginecologia recibira " << dg;
cout<<Traumatologia recibira " << dt;
cout<<Urologia recibira " << du;
cout<<Pediatria recibira " << dp;
}
83
Solucin ejercicio 8.
Un alumno desea saber cual ser su promedio en las 3 materias mas bonitas que
cursa y cual ser el promedio de cada una de ellas estas materias se evalan
como se muestra a continuacin.
Matematicas % Lab. de programacin %
Examen
45
Examen
70
3 tareas
55
2 tareas
30
Ingles
Examen oral
Quiz
Examen escrito
2 tareas
%
15
30
40
15
DATOS DE ENTRADA:
Calificacin de cada rubro de matemticas (me, a, b, c - fraccionarios)
Calificacin de cada rubro de laboratorio de programacin (pe, d, e - fraccionarios)
Calificacin de cada rubro de ingles (io, iq, ie, f, g - fraccionarios)
PROCESO:
Leer me, a, b, c, pe, d, e, io, iq, ie, f, g
m1 me * 0.45.
m2 (a + b + c) / 3 * 0.55.
m m1 + m2.
p1 pe * 0.70.
p2 (d + e) / 2 * 0.30.
p p1 + p2.
i1 io * 0.15.
i2 iq * 0.30.
i3 ie * 0.40.
i4 (f + g) / 2 * 0.15.
i i1 + i2 + i3 + i4.
pg (m + p + i) / 3.
Mostrar pg
DATOS DE SALIDA:
Promedio de matemticas (m fraccionario)
Promedio de laboratorio de programacin (p fraccionario)
Promedio de ingls (I fraccionario)
Promedio general (pg fraccionario)
PROGRAMA:
#include <iostream.h>
#include <conio.h>
void main(){
float me, a, b, c, m1, m2,m, pe, d,
float io, iq, ie, f, e, i1, i2, i3,
cout<<Introducir calificacin
cin>>me;
cout<<Introducir calificacin
cin>>a;
cout<<Introducir calificacin
cin>>b;
e, p1, p2, p;
i4, i, pg;
examen de matematicas";
tarea 1 de matematicas";
tarea 2 de matematicas";
84
Solucin ejercicio 9.
Calcule el nuevo salario de un trabajador si ha obtenido un porcentaje de
incremento desconocido sobre su salario anterior. Leer el nombre del trabajador.
DATOS DE ENTRADA:
Nombre del trabajador (nt cadena de caracteres)
Valor de salario anterior (sa fraccionario)
Porcentaje de incremento (pi entero)
PROCESO:
Leer nt, sa, pi
inpi*sa/100.
snsa+(sa*pi/100).
Mostrar nt, sa, pi, sn
85
#include <iostream.h>
#include <conio.h>
void main(){
char *nt;
float sa;
int pi;
cout<<Introducir nombre del trabajador";
cin>>nt;
cout<<Introducir salario anterior";
cin>>sa;
cout<<Introducir porcentaje de incremento";
cin>>pi ;
in = pi*sa/100 ;
sn = sa+(sa*pi)/100
cout<<nt<<Tiene un incremento de <<in<< su salario nuevo
es de "<<sn;
}
#include <iostream.h>
#include <conio.h>
void main(){
char * nt;
86
87
#include <iostream.h>
#include <conio.h>
void main(){
float mt, mb, mh, a, pb, rm;
cout<<"introducir monto total de la inversion";
cin>>mt;
cout<<"introducir monto en el banco";
cin>>mb;
cout<<"introducir monto de la hipoteca";
cin>>mh;
if(mh<1000000){
a = mt/2;
cout<<"necesita un socio y c/socio invertira "<<a;
}
88
Solucin ejercicio 2.
Una persona debe determinar la etapa de la vida de las personas que existen en
su zona habitacional. Se determinan las categoras con base en la siguiente tabla:
CATEGORIA
Nios
Jvenes
Adultos
Viejos
EDAD
0-12
13-29
30-59
60 en adelante
DATOS DE ENTRADA:
Edad (e entero)
PROCESO:
Leer e
Determinar categora comparando e con rangos
Mostrar categora
DATOS DE SALIDA:
Mensaje nio, joven, adulto o viejo
PROGRAMA:
void main(){
int e;
cout<<"teclee la edad";
cin>>e;
if(e<=12)
cout<<"Es un nino";
else
if(e<=29)
cout<<"Es un joven";
else
if(e<=59)
cout<<"Es un adulto";
89
Solucin ejercicio 3.
Una compaa de seguros esta abriendo un departamento de finanzas y
estableci un programa para captar clientes que consiste en lo siguiente: si el
monto por el que se efecta la fianza es menor que $50000, la cuota a pagar es el
3% del monto, si el monto es mayor que $50000 la cuota a pagar ser el 2% del
monto. La afianzadora desea determinar cual ser la cuota que debe pagar un
cliente.
DATOS DE ENTRADA:
Monto de la fianza (mf fraccionario)
PROCESO:
Leer mf
Si mf<50000)
o entonces csmf*.03.
o sino csmf*.02.
Mostrar cs
DATOS DE SALIDA:
Cuota a pagar (cs fraccionario)
PROGRAMA:
#include <iostream.h>
#include <conio.h>
void main(){
float mf, cs;
cout<<"introducir el monto de la fianza";
cin>>mf;
if(mf<=50000)
cs = mf*0.03;
else
cs = mf*0.02;
cout<<"la cuota a pagar el cliente es de "<<cs;
}
Solucin ejercicio 4.
Una frutera ofrece peras con descuento segn la siguiente tabla:
N0 de kilos comprados % de descuento
0.2
0
2.01 5
10
5.01 10
15
90
20
Determina cuanto pagara una persona que compre peras en esa frutera.
DATOS DE ENTRADA:
Kilos y precio de peras (p, k fraccionario)
PROCESO:
Leer p, k
tpk
tp*k
tpt-(t/100*10)
tp*k
tpt-(t/100*15)
tp*k
tpt-(t/100*20
Mostrar tp
DATOS DE SALIDA:
Total a pagar (tp fraccionario)
PROGRAMA:
#include <iostream.h>
#include <conio.h>
void main(){
float cfruta, p, k, t, desc, tp;
cout<<"introducir los kilos de peras p";
cin>>p;
cout<<"introducir el precio por kilo de la pera k";
cin>>k;
t = p * k;
if(p<=2)
desc = 0;
else
if(p<=5)
desc = t/100*10;
else
if(p<=10)
desc = t/100*15;
else
if(p>10)
desc = t/100*20 ;
tp = t desc ;
cout<<"el pago total de las peras es "<<tp;
}
91
Solucin ejercicio 5.
Realizar una funcin que reciba como parmetros dos valores numricos y uno de
tipo carcter la funcin debe retornar el resultado de un clculo, dependiendo el
carcter. El carcter puede tener los valores de +, --, /,*, %.
DATOS DE ENTRADA:
Carcter de operacin (ca carcter)
2 valores numricos (v1, v2 fraccionarios)
PROCESO:
Leer ca, v1, v2
Ca+ retorna (v1+v2).
Ca- retorna (v1-v2).
Ca* retorna (v1*v2).
Ca/ retorna (v1/v2).
Ca% retorna (v1%v2).
DATOS DE SALIDA:
Valor resultante (resul fraccionario)
PROGRAMA:
#include <iostream.h>
#include <conio.h>
void main(){
float v1, v2, resul;
char ca;
cout<<"teclee carcter de operacion a realizar";
cin>>ca;
cout<<"teclee primer valor a calcular";
cin>>v1;
cout<<"teclee segundo valor a calcular";
cin>>v2;
if(ca == '+')
resul v1+v2;
else
if(ca == '-')
resul v1-v2;
else
if(ca == '*')
resul = v1*v2;
else
if(ca == '/')
resul v1/v2
else
if(ca == '%')
resul = v1%v2;
cout<<"el resultado de la operacion es"<<resul;
} // principal
92
Solucin ejercicio 6.
Realizar una funcin que reciba como parmetro un carcter y dependiendo del
carcter, determine el estado civil de una persona. El carcter puede tener como
valores U, C, S, V, D, O.
DATOS DE ENTRADA:
Estado civil (e carcter)
PROCESO:
Leer e
Mostrar mensaje comparando e
DATOS DE SALIDA:
Mensaje unin libre, casado, soltero, viudo, divorciado, otro
PROGRAMA:
#include <iostream.h>
#include <conio.h>
void main(){
char e;
cout<<"teclee u, c, s, v, d, o, segun su estado civil";
cin>>e;
cout<<"Su estado civil es ;
if(e == 'u')
cout<<"union libre";
else
if(e == 'c')
cout<<"casado";
else
if(e == 's')
cout<<"soltero";
else
if(e == 'v')
cout<<"viudo";:
else
if(e == 'd')
cout<<"divorciado";
else
if(e == 'o')
cout<<"otro";
else cout<<"no valido";
} // principal
Solucin ejercicio 7.
En una llantera se ha establecido una promocin
de las llantas marca
MORIRAS, dicha promocin consiste en lo siguiente: Si se compran menos de 5
llantas el precio es de $300 c/u, de $250 c/u si se compran de 5 a 10 y de $200 c/u
93
#include <iostream.h>
#include <conio.h>
void main(){
int y, t, t ;
escribir("teclee cuantas llantas va a comprar";
cin>>y;
if(y<5){
t = y * 300;
cout<<"cada llanta cuesta 300 pesos";
}
else
if(y<=10){
cout<<"cada llanta cuesta 250 pesos";
t = y*250;
}
else
if(y>10){
cout<<"cada llanta cuesta 200 pesos";
t = y*200;
}
cout<<" su pago total es de "<<t;
} //principal
Solucin ejercicio 8.
El dueo de una empresa desea planificar las decisiones financieras que tomara
durante el ao la manera de planificar depende de lo siguiente: Si actualmente su
capital se encuentra con saldo negativo, pedir un prstamo bancario para que su
nuevo saldo sea de $10000. Si su capital tiene un saldo actual positivo pedir un
94
#include <iostream.h>
#include <conio.h>
void main(){
float ca, resto, pb, insumos, incentivos;
cout<<"cual es su capital";
cin>>ca;
if(ca<=0){
pb = 10000-ca;
Resto = 7000;
cout<<"prestamo al banco de <<pb;
}
else
if(ca<20000){
pb = 20000-ca;
resto = 13000;
cout<<"prestamo al banco de <<pb;
}
else
if(ca>=20000)
resto = ca 7000;
insumos = resto/2;
incentivos = resto/2;
cout<<"para la compra de insumos "<<insumos;
cout<<"para la entrega de incentivos "<<incentivos;
getch();
95
Solucin ejercicio 9.
Tomando como base los resultados obtenidos en un laboratorio de anlisis
clnicos, un medico determina si tiene anemia o no, lo cual depende de su nivel de
hemoglobina en la sangre, su edad y de su sexo. Si el nivel de hemoglobina que
tiene una persona es menor que el rango que le corresponde, se determina su
resultado como positivo y en caso contrario como negativo. La tabla en la que el
medico se basa es la siguiente:
Edad
Nivel de hemoglobina (8 %)
0 1 mes
13 26
>1 y <=6 meses
10 18
>6 y <=12 meses
11 15
>1 y <=5 aos
11.5 15
>5 y <= 10 aos
12.6 15.5
>10 y <=15 aos
13 15.5
Mujeres > 15 aos
12 16
Hombres > 15 aos
14 18
DATOS DE ENTRADA:
Sexo (s carcter)
Edad (e entero)
Nivel de hemoglobina (he entero)
PROCESO:
Leer s, e, he
Comparar s, e, he: Mostrar mensaje no tiene anemia o tiene anemia
DATOS DE SALIDA:
Mensaje no tiene anemia o tiene anemia
PROGRAMA:
#include <iostream.h>
#include <conio.h>
void main(){
char s;
int e;
float he;
cout<<"dar sexo m=mujeres,h=hombres";
cin>>s;
cout<<"teclee la edad";
cin>>e;
cout<<"teclee el nivel de hemoglobina";
cin>>he;
if (e>15)
if ((s==m && he>12) || (s==h && he>14))
96
col(50/5)*180
col(45/5)*180
col(40/5)*180
col(55/5)*300*0.20
col(55/5)*300
Mostrar col
DATOS DE SALIDA:
Colegiatura a pagar (ine fraccionario)
PROGRAMA:
#include <iostream.h>
#include <conio.h>
void main(){
int mr;
char nivel;
float prom, coleg;
cout<<"teclee el promedio del alumno";
cin>>prom;
cout<<"teclee cuantas materias reprobo";
cin>>mr;
cout<<"Nivel del alumno p=preparatoria u= profesional";
cin>>nivel;
if(nivel=='p')
if (prom>=9.5) {
cout<<"Cursara 55 unid. desc. 25%";
pago = (55/5) * 180;
desc = pago *0.25;
coleg = pago desc;
}
else
if (prom>=9 && prom<9.5) {
cout<<"Cursara 50 unid. desc. 10%";
pago = (50/5) * 180;
desc = pago *0.10;
coleg = pago desc;
}
else
if(prom>7 && prom<9) {
cout<<"Cursara 50 unid.";
coleg = (50/5) * 180;
}
else
if(nr<3) {
cout<<"Cursara 45 unid.";
coleg = (45/5) * 180;
}
else {
cout<<"Cursara 40 unid.";
98
DATOS DE ENTRADA:
Total de horas trabajadas (h entero)
PROCESO:
Leer h
Segn sea h
salarioh*20.
salario(h*20)-((h*20)*0.15).
heh-40
salario(40*20)+(he*40
heh-48
salario(40*20)+(8*40)+(he*60
mostrar salario
DATOS DE SALIDA:
salario semanal (ss- fraccionario)
PROGRAMA:
99
Color
Amarilla
Rosa
Roja
Verde
Azul
DATOS DE ENTRADA:
Nmero de placa (placa arreglo de caracteres)
100
void main(){
char placa[7];
cout<<"teclee los digitos de la placa del automovil";
cin>>placa;
switch (placa[6]) {
case '1':
case '2': cout<<"Color de calcomania amarilla";
break;
case '3':
case '4': cout<<"Color de calcomania rosa";
break;
case '5':
case '6': cout<<"Color de calcomania roja";
break;
case '7':
case '8': cout<<"el color de calcomania verde";
break;
case '9':
case '0': cout<<"Color de calcomania azul";
break;
} //fin de switvh
}
void main(){
char color;
cout<<"teclee letra para color";
cin>>color;
101
amarillo";
naranja";
verde";
blanco";
rojo";
no valida";
void main(){
char e;
cout<<"teclee u, c, s, v, d, o, segun estado civil";
cin>>e;
switch (e){
case 'u':
case 'U': cout<<"union libre es su estado civil";
break;
case 'c':
case 'C': cout<<"casado es su estado civil";
break;
case 's':
case 'S': cout<<"soltero es su estado civil";
break;
case 'v':
case 'V': cout<<"viudo es su estado civil";
102
void main(){
char lo;
float l, b, h, t, r, c;
cout<<"teclee inicial de la figura geometrica";
cin>>lo;
switch (lo){
case 'B':
case 'b':
cout<<"teclee medida del lado";
cin>>l ;
b = l*l*l ;
cout<<"el area del cubo es "<<b;
break;
case 'T':
case 't':
cout<<"teclee medida de la base";
cin>>b;
cout<<"teclee medida de la altura";
cin>>h ;
t = (b*h)/2 ;
103
cout<<"teclee el radio";
cin>>r;
c = 3.1416*(r*r);
cout<<"el area del circulo es "<<c;
break;
case 'R':
case 'r':
void main(){
char color;
cout<<"teclee letra para
cin>>color;
switch (color) {
case 'a':
case 'A': cout<<" su
break;
case 'n':
case 'N': cout<<" su
break;
case 'v':
case 'V': cout<<" su
break;
case 'b':
el color deseado";
104
void main(){
char e;
cout<<"teclee u, c, s, v, d, o segn su estado civil";
cin>>e;
switch (e){
case 'u':
case 'U': cout<<"su estado civil es union libre";
break
case 'c':
case 'C': cout<<"su estado civil es casado";
break
case 's':
case 'S': cout<<"su estado civil es soltero";
break;
case 'v':
case 'V': cout<<"su estado civil es viudo";
break;
case 'd':
case 'D': cout<<"su estado civil es divorciado";
break;
case 'o':
case 'O': cout<<"su estado civil es otro";
break;
default: cout<<"ERROR_letra no valida";
}// fin de switch
105
void main(){
int suma=0;
int n=1;
while(n<=10){
cout<<"numero "<<n;
suma = suma+n;
n = n+1;
} //fin de mientras
cout<<"Suma total es de " << sumat;
} //fin de principal
PROGRAMA USANDO PROCEDIMIENTOS Y FUNCIONES:
Solucin ejercicio 2.
Hacer una funcin con el ciclo mientras, que dado un numero entero decimal me
muestre los siguientes 20 nmeros pares o impares del numero proporcionado.
DATOS DE ENTRADA:
Nmero (n entero)
PROCESO:
Leer n
Mostrar 20 nmeros pares o impares despus de nmero.
DATOS DE SALIDA:
20 nmeros pares o impares despus de nmero.
PROGRAMA:
void main(){
int h=1;
int n;
cout<<"ingresar numero";
cin>>n;
while(h<=20){
n = n+2;
cout<<" numero " << n;
h++;
} //fin de mientras
} //fin de principal
Solucin ejercicio 3.
Implemente el ciclo mientras para leer caracteres y finalic cuando se introduzca
un *.
DATOS DE ENTRADA:
Carcter ledo (cad carcter)
PROCESO:
Mientras cad sea dif. De * leer cad.
DATOS DE SALIDA:
ninguno.
PROGRAMA:
void main(){
char cad = x;
while(cad != '*'){
cout<<"teclee caracter " ;
107
Solucin ejercicio 4.
Hacer en un ciclo mientras una funcin que calcule el total de la compra, imprima
el iva, con cuanto paga y el cambio.
DATOS DE ENTRADA:
Respuesta continuar (cad carcter)
monto de la venta (m fraccionario)
Cantidad de pago (cp fraccionario)
PROCESO:
Leer m, cp
ivam*0.15.
tpm+iva.
cambiocp-tp.
cajacaja+tp.
Mostrar iva, cp, cambio, caja
DATOS DE SALIDA:
Monto del IVA (iva fraccionario)
Cantidad de cambio (cambio - fraccionario)
Cantidad acumulada en caja (caja fraccionario)
PROGRAMA:
void main(){
float caja=0;
float m, iva, tp, cp, cambio;
char cad;
cout<<"desea realizar venta s=si, n=no;
cin>>cad;
while(cad=='s' || cad=='S'){
cout<<" teclee el monto de la venta";
cin>>m ;
iva = m*0.15;
cout<<" el iva es de "<<iva;
tp = m+iva;
cout<<" el total a pagar es de "<<tp;
cout<<" teclee cantidad con que paga el cliente";
cin>>cp;
cambio = cp tp;
cout<<" el cambio es de "<<cambio;
caja = caja + tp;
cout<<" desea realizar venta s=si, n=no";
cin>>cad;
} //fin de mientras
cout<<" el monto total de la caja es de "<<caja;
} //fin de principal
108
Solucin ejercicio 5.
Mostrar en pantalla 10 veces la lnea de texto Ring.... utilizando un ciclo hacer mientras.
DATOS DE ENTRADA:
Ninguno.
PROCESO:
Ninguno.
DATOS DE SALIDA:
10 veces el mensaje Ring....
PROGRAMA:
Void main(){
int i5
hacer
cout<<"ring..."
i i+1
mientras(i<=10)
retorna
} //fin de principal
Solucin ejercicio 6.
Hacer una funcin en el ciclo hacer mientras,
nmeros del 1 al 10 y retorne la suma de ellos.
DATOS DE ENTRADA:
Ninguno.
PROCESO:
Mostrar los nmero del 1 al 10
Mostrar sumat
DATOS DE SALIDA:
Nmeros del 1 al 10
Suma de los primeros 10 nmeros (sumat entero)
PROGRAMA:
void main(){
int suma=0;
int n=1;
do{
suma = suma+n;
cout<<"numero "<<n;
n = n+1;
}while(n<=10);
cout<<"la suma total es de "<<suma;
} //fin de principal
109
Solucin ejercicio 7.
Hacer una funcin con el ciclo hacer - mientras, que dado un numero entero
decimal me muestre los siguientes 20 nmeros pares o impares del numero
proporcionado.
DATOS DE ENTRADA:
Nmero entero decimal (n entero)
PROCESO:
Leer n
Mostrar 20 nmero pares o impares
DATOS DE SALIDA:
20 nmeros pares o impares.
PROGRAMA:
void main(){
int h=1;
int n;
cout<<"ingresar numero";
cin>>n;
do{
n = n+2;
cout<<" numero "<<n;
h = h+1;
} while(h<=20);
} //fin de principal
Solucin ejercicio 8.
Utilizar un ciclo hacer mientras, que
introduzca un * .
DATOS DE ENTRADA:
Carcter ledo (cad carcter)
PROCESO:
Hacer leer cad Mientras cad sea dif. De * .
DATOS DE SALIDA:
ninguno.
PROGRAMA:
void main(){
char cad;
do{
cout<<"teclee caracter ;
cin>>cad;
} while(cad != '*');
110
Solucin ejercicio 9.
Realizar un algoritmo que utilice un ciclo mientras en una funcin que calcule el
total de la compra, imprima el IVA, con cuanto paga y el cambio.
DATOS DE ENTRADA:
Respuesta para continuar (cad carcter)
Monto de venta (m fraccionario)
Cantidad pagada (cp fraccionario)
PROCESO:
Leer cad, m, cp
ivam*0.15.
tpm+iva.
cambiocp-tp.
cajacaja+tp.
Mostrar iva, tp, cambio, caja
DATOS DE SALIDA:
Cantidad de IVA (iva fraccionario)
Total a pagar (tp fraccionario)
Cantidad de cambio (cambio fraccionario)
Respuesta de salida (cad carcter)
Monto total en caja (caja faccionario)
PROGRAMA:
Void main(){
float caja=0;
float m, iva, tp, cp, cambio;
char cad;
cout<<"desea realizar venta s/n";
cin>>cad;
do{
cout<<" teclee el monto de la venta";
cin>>m ;
iva = m*0.15;
cout<<" el iva es de ", iva;
tp = m+iva;
cout<<" el total a pagar es de "<<tp;
cout<<" teclee cantidad con que paga el cliente";
cin>>cp;
cambio = cp-tp;
cout<<" el cambio es de "<<cambio;
cout<<" desea realizar venta s/n ";
cin>>cad;
caja = caja+tp;
} while(cad=='s');
cout<<" el monto total de la caja es de <<caja;
} //fin de principal
111
void main(){
int i;
for(i=401; i<=1100; i+=2)
cout<< i<<" ";
} //fin de principal
void main(){
int n, i;
for(i=1; i<=100; i++){
cout<< i<<" ";
cout<<"ingresar numero"<<i<<: ;
cin>>n;
if (n % 2!= 1)
cout<<n<<" es numero par";
}//fin para
} //fin de principal
void mani(){
float prom;
int e, suma=0;
int i, ed;
cout<<"cuantas edades a calcular ";
cin>>e;
for (i=a; i<=e; i++){
cout<<"ingresar edad";
cin>>ed;
suma = suma+ed;
}
prom = suma/e;
cout<<"el promedio de las edades es de "<<prom;
} //fin de principal
Void main(){
int t, i, pt;
int menor=0;
int mayor=0;
int promedio=0;
for (i=1; i<=10; i++){
114
void main(){
float i, c=0;
cout<<"que cantidad va a invertir";
cin>>c;
for (i=0; i<=12; i++)
c = c*0.02+c;
cout<<"obtendra la cantidad de "<<c;
} //fin de principal
void main(){
int i;
int sum=0;
for (i=100; i<=0; i--)
suma = suma+i;
cout<<"la suma es de "<<suma;
} //fin de principal
void main(){
int x, y, i, po=1;
cout<<Introduzca numero para x: ";
cin>>x;
cout<<"introduzca numero para y: ";
cin>>y;
for (i=1; i<=y; i++)
po = po * x;
cout<<"el resultado es "<<po;
} //fin de principal
void main(){
int x, y, po=1, i;
float f, s=0;
cout<<"introduzca numero para f: ";
cin>>f;
cout<<"introduzca numero para x: ";
cin>>x;
cout<<"introduzca numero para y: ";
cin>>y;
for (i=1; i<=y; i++){
po = po *y;
s = s + (f / po);
}
cout<<"el resultado es "<<s;
} //fin de principal
Consumo
desc
tot
PagoT
PROGRAMA:
void main(){
int i;
float consumo, desc, tot, PagoT = 0.0;
for(i=1; i<=50; i++){
cout<<"teclee consumo: ";
cin>>consumo;
if(consumo > 100.00)
desc = consumo * 0.07;
else
desc = 0.0;
tot = consumo desc;
PagoT PagoT + tot;
cout<<Subtotal = <<consumo<<endl;
cout<<Descuento = <<desc<<endl;
cout<<Total = <<tot<<endl;
} //fin para
cout<<\nPago Total: <<PagoT;
} //fin de principal
void main(){
int N, i, CA=0, CR=0;
float nota, suma1=0, suma2=0, Pa, Pr;
118
Menor e
Incrementar 1 en: C o S
Sino
Mensaje Menor de edad
Calcular pm, pv
Mostrar pm, pv,menor,a,m,v
DATOS DE SALIDA:
Promedios: mujeres, varones (pm, pv fraccionario)
Asistentes, contadores (A, menor, m, v enteros)
PROGRAMA:
void main(){
int e, Sev=0, Sem=0, A=0, V=0;
float pm, pv;
cout<<Teclea la edad: ;
cin>>e;
Menor = e;
while (e<>0){
if (e>=18){
a = a+1;
if (s == "m"){
m = m+1;
sem = sem+e;
else {
v = v+1;
sev = sev+e;
}
if (e<menor)
menor = e;
}
else
cout<<"No puede entrar menor de edad\n";
cout<<Teclea la edad: ;
cin>>e;
} //fin mientras
pm = sem\m;
pv = sev\v;
cout<<\nPromedio de edad de mujeres <<pm;
cout<<\n Promedio de edad de varones: <<pv;
cout<<\n Edad del menor: <<menor;
cout<<\n Total de asistentes: <<a;
cout<<\n Total de mujeres: <<m;
cout<<\n Total de varones: <<v;
}
120
FUENTES CONSULTADAS
[monog]
121