Vous êtes sur la page 1sur 27

UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

E.A.P INGENIERIA DE SISTEMAS E INFORMATICA

CURSO : ALGORITMICA I
CICLO : I
ALUMNO : MALLMA HUAMANI EDWIN
GRUPO : 3
GRUPO DE LABORATORIO : 2

PRACTICA 2 DE ALGORITMICA
PROBLEMA 1
calcular el acumulado de las edades de un grupo n personas siempre y cuando
dichas edades sean mayores a 18 y no pasen los 45.
#include <iostream.h>
#include <stdlib.h>
int main()
{ int N,e,S=0,p=1;
cout<<"ingrese numero de personas que ingresaran :";
cin>>N;
while (N!=0)
{
cout<<"ingrese la edad "<<p<< " persona : ";
cin>>e;
if(e>18 && e<=45)
{
S=S+e;
N=N-1;

p=p+1;
}
else
cout<<" la edad de la persona no esta en el rango permisible "<<endl;
}
cout<<"el acumulado de edades de las personas es : "<<S<<endl;;
system("PAUSE");
return 0;
}
PROBLEMA 2
Escriba un programa que obtenga el cociente y el residuo de una division
calculando la cantidad que veces de un nmero esta contenido en otro,
mediante restas sucesivas.
#include <iostream.h>
#include <stdlib.h>
int main()
{ int a,b,c=0;
cout<<"ingrese dividendo : ";
cin>>a;
cout<<"ingrese divisor : ";
cin>>b;
while(a>=b)
{
a=a-b;
c=c+1;
}
cout<<"cociente : "<<c<<endl;
cout<<"residuo : "<<a<<endl;
system("PAUSE");
return 0;
}
PROBLEMA 3
Leer un nmero entero n y calcule e imprima su factorial N!
#include <iostream.h>
#include <stdlib.h>
int main()
{ int c,f=1,n;
cout<<"ingrese el factorial que desea hallar : ";
cin>>n;
for (c=1;c<=n;c++)
{
f=f*c;
}
cout<<"el factorial de "<<n<<"! = "<<f<<endl;

system("PAUSE");
return 0;
}

PROBLEMA 4
Ingresar n nmeros enteros e imprima, la cantidad de nmeros negativos,
positivos y ceros que se ingresaron y as como el promedio de los nmeros
pares e impares.
#include <iostream.h>
#include <stdlib.h>
int main()
{ int k=0,i=1,N,n,q=0,p=0,m=0,j=0,w=0,sp=0,si=0,ceros=0;
float x,y;
cout<<"ingrese la cantidad de numeros (enteros): ";
cin>>N;
cout<<endl;
while (N!=0)
{
w=w+1;
cout<<"ingrese el "<<w<<" numero: ";
cin>>n;
if (n%2==0 && n!=0)
{
if(n<0)
{
q++;
}
if(n>0)
{
p++;
}
sp=sp+n;
j=j+1;
}
if (n%2!=0)
{
if(n<0)
{
k++;
}
if(n>0)
{
m++;
}

si=si+n;
i=i+1;
}
if (n==0)
{
ceros=ceros+1;
}
N=N-1;
}
x=sp/j;
y=si/i;
cout<<"la cantidad de numeros negativos es : "<<k+q<<endl;
cout<<"la cantidad de numeros psitivos es : "<<m+p<<endl;
cout<<"la cantidad de numeros ceros es : "<<ceros<<endl;
cout<<"el promedio de pares es : "<<x<<endl;
cout<<"el promedio de impares es : "<<y<<endl;
system("PAUSE");
return 0;
}
PROBLEMA 5
Hacer un algoritmo que permita ingresar los datos: nombre, edad, peso, talla.
La entrada de datos debe terminar cuando se ingresa la edad, promedio de
peso y promedio de tallas de las personas.
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
int main(){
char nombre[20];
int edad,nPersonas=0,totalEdad=0;
float peso,
talla,promedioTalla,promedioEdad,promedioPeso,totalTalla=0,totalPeso=0;
for(int i=1;i<999;i++){
cout<<"ingrese los datos de la "<<i<<" persona: "<<endl<<endl;
cout<<"edad: ";
cin>>edad;
if(edad>0){
cout<<"ingrese nombre: ";
cin>>nombre;
cout<<"ingrese talla: ";
cin>>talla;
cout<<"ingrese peso: ";
cin>>peso;
cout<<endl<<endl;
totalTalla=totalTalla+talla;
totalPeso=totalPeso+peso;
totalEdad=totalEdad+edad;
nPersonas++;

promedioTalla=totalTalla/nPersonas;
promedioPeso=totalPeso/nPersonas;
promedioEdad=totalEdad/nPersonas;
}
if(edad==0){
system("cls");
cout<<"el promedio de la tallas totales es:
"<<promedioTalla<<"m"<<endl;
cout<<"el promedio de la edades totales es: "<<promedioEdad<<endl;
cout<<"el promedio de la pesos totales es:
"<<promedioPeso<<"K"<<endl;
break;
}
}
cout<<endl;
system("pause");
return 0;
}
PROBLEMA 6
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 igual a cero.
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
int main(){
int nMujeres=0,nVarones=0,edad,edadM=0,edadV=0,aux=200;
float promM,promV;
char sexo;
for(int i=1;i<999;i++){
cout<<"INGRESE LOS DATOS DEL "<<i<<" ASISTENTE A LA
FIESTA"<<endl;
cout<<"INGRESE LA EDAD: ";
cin>>edad;
cout<<endl;
if(edad>=18){
cout<<"ES MAYOR DE EDAD PUEDE INGRESAR"<<endl;
cout<<"INGRESE EL SEXO (M) o (F) DEL ASISTENTE ";
cin>>sexo;
if(edad<aux)
{
aux=edad;
}

if(sexo=='M' || sexo=='m'){
edadV=edadV+edad;
nVarones++;
}
if(sexo=='F' || sexo=='f')
{
edadM=edadM+edad;
nMujeres++;
}
}
cout<<endl;
if(edad==0){
break;
}
if(edad<19 && edad>0){
cout<<"MENOR DE EDAD NO PUEDE INGRESAR"<<endl;
}
}
system("cls");
promM=edadM/nMujeres;
promV=edadV/nVarones;
cout<<"LA PERSONA MAS JOVEN TIENE "<<aux<<" AOS"<<endl;
cout<<"EL NUMERO DE PERSONAS QUE ASISTIERON FUE
"<<nVarones+nMujeres<<endl;
cout<<"EL NUMERO DE MUJERES ASISTENTES FUE DE "<<nMujeres<<endl;
cout<<"EL NUMERO DE VARONES ASISTENTES FUE DE "<<nVarones<<endl;
cout<<"EL PROMEDIO DE EDADES POR MUJERES ES "<<promM<<"
AOS"<<endl;
cout<<"EL PROMEDIO DE EDADES POR VARONES ES "<<promV<<"
AOS"<<endl;
system("pause");
return 0;
}

PROBLEMA 7
El algoritmo de la multiplicacin rusa es una forma distinta de calcular la
multiplicacin de dos nmeros enteros a x b de la siguiente manera: si b es
impar acumula a; despus a se multiplica por 2 y b se divide entre 2 y se repite
eterativamente el proceso.
Ejemplo para calcular: 65 y 9:
a
b
suma
------------------------65
9
65
130 4
65
260 2
1
520 1
585
-------------------------

#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
int main(){
int a,b,r=0;
cout<<"INGRESE EL MULTIPLICANDO: ";
cin>>a;
cout<<"INGRESE EL MULTIPLICADOR: ";
cin>>b;
while(b >=1)
{
if((b%2)!=0 )
{
r=r+a;
a=a*2;
b=b/2;
}
if((b%2)==0){
a=a*2;
b=b/2;
}
}
cout<<"LA MULTIPLICACION POR EL METODO RUSO ES: ";
cout<<r<<endl;
system("pause");
return 0;
}

PROBLEMA 8

Hacer un algoritmo que permita simplificar una fraccin. Ejemplo 15/18 = 5/6.
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
int main(){
int a,b;
cout<<"INGRESE EL NUMERADOR DE LA FRACCION: ";
cin>>a;
cout<<"INGRESE EL DENOMINADOR: ";
cin>>b;
cout<<endl<<a<<"/"<<b<<endl;
if(a==b){
a=1;
b=1;
}
if(a<b){
for(int i=2;i<=a;i++)
{
if(a%i==0 && b%i==0)
{
a=a/i;
b=b/i;
}
}
}
if(b<a){
for(int j=2;j<=a;j++)
{
if(a%j==0 && b%j==0)
{
a=a/j;
b=b/j;
}
}
}
cout<<"LA FRACCION SIMPLIFICADA ES: "<<endl;
cout<<a<<"/"<<b<<endl;
system("pause");
return 0;
}

PROBLEMA 9

Escribir un programa que muestre una salida con la siguiente secuencia


numrica
1,5,3,7,5,9,7,,23
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
int main(){
int a=1,b=5 ;
while(a<=27 && b<=23)
{
cout<<","<<a<<","<<b;
a=a+2;
b=b+2;
}
cout<<endl;
system("pause");
return 0;
}
PROBLEMA 10
Determinar la suma de los N primeros trmino de la siguiente serie:
#include <iostream.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
int factorial(int numero){
int valorFactorial = 1;
if(numero > 1){
valorFactorial = numero;
for(int j=1 ; j < numero ; j++){
valorFactorial=valorFactorial*j;
}
}
return valorFactorial;
}
int main(){
int N,x;
float S=0;
cout<<"INGRESE LA CANTIDAD DE TERMINOS QUE DESEA SUMAR: "<<endl;
cin>>N;
cout<<"INGRESE EL VALOR DE X: ";
cin>>x;
for(int i=0;i < N;i++){
S = S + ((float)pow(x,i)/factorial(i));
}
cout<<"LA SUMA TOTAL DE LA SERIE ES DE: ";

cout<<S<<endl;
system("pause");
return 0;
}
PROBLEMA

11

Se lanza un dado reiteradas veces hasta que el valor del tiro es 1. Determinar
la cantidad de veces que se lanzo el dado y el puntaje acumulado, si lo que se
acumula es el valor del tiro.
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
int main() {
int tiro, acumulado=0, nlanzamientos=0;
for(int i=1;i<999;i++){
cout<<"EL VALOR "<<i<<"ES: ";
cin>>tiro;
if(tiro<7 && tiro>0)
{
acumulado=acumulado+tiro;
nlanzamientos++;
}
if(tiro<=0 )
{
cout<<"VALOR FUERA DE RANGO"<<endl;
}
if(tiro>6 ){
cout<<"VALOR FUERA DE RANGO"<<endl;
}
if(tiro==1){
system("cls");
cout<<"EN TOTAL LOGRASTE ACUMULAR: "<<acumulado<<endl;
cout<<"EL NUMERO DE LANZAMIENTOS FUE: "<<nlanzamientos<<endl;
break;
}
}
system("pause");
return 0;
}

PROBLEMA 12
Mostrar los nmeros de Fibonacci menores de 100. Estos se calculan sumando
los dos anteriores. As: 0,1,1,2,3,5,8,13,
#include <iostream.h>

#include <stdlib.h>
int main()
{
int a,b,x,c,l=12;
a=0; b=1; x=0; c=0;
if (l>0)
{
if (l==1) cout<<"1"<<endl;
else
{
cout<<endl<<a<<", "<<b<<", ";
while (c<l-2)
{
c++;
x=a+b;
cout<<x<<", ";
a=b;
b=x;
}
}
}
system("pause");
return 0;
}

PROBLEMA 13
Hacer un algoritmo que permita generar y mostrar los primeros n nmeros de
fibonacci. Considere que los 2 primeros smeros son 0 y 1.
Ejemplo: 0,1,1,2,3,5,8,13,21,34,
#include <iostream.h>
#include <stdlib.h>
int main()
{
int a,b,x,c,l;
a=0; b=1; x=0; c=0;
cout<<"Introduce el limite de la serie: "; cin>>l;
if (l>0) {
if (l==1) cout<<"1"<<endl;
else
{
cout<<endl<<a<<", "<<b<<", ";
while (c<l-2)
{
c++;

x=a+b;
cout<<x<<", ";
a=b;
b=x;
}
}
}
system("pause");
return 0;
}
PROBLEMA 14
Convertir un nmero entero de base 10 a una base menor que 10, mostreando
el resultado en pantalla.
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
int main(){
int D,b,c,r,i=0;
int ordenar[100];
cout<<"INGRESAR EL NUMERO EN BASE DIEZ: ";
cin>>D;
cout<<"INGRESE LA BASE :";
cin>>b;
while(D>b){
c=D/b;
r=D%b;
D=c;
ordenar[i]=r;
i++;
}
cout<<c;
for(int j=i-1; j>=0 ; j--){
cout<<ordenar[j];
}
cout<<endl;
system("pause");
return 0;
}
PROBLEMA 15
En una tienda de descuento las personas que van a pagar el importe de su
compra legan a la caja y sacan una bolita de color, que les dir que descuento
tendr sobre el total de su compra. Determinar la cantidad que pagara cada
cliente desde que la tienda abre hasta que cierra. Se sabe que si el color de la
bolita roja, el cliente obtendr un 40% de descuento; si es amarilla un 25% y si
es blanca no obtendr descuento.

#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{ int x,b ;
float a;
do {
cout<<"Ingrese el monto a pagar : "<<endl;
cin>>a;
cout<<"Ingrese un numero entero positivo para sacar una bola "<<endl;
cout<<"la cual definira el descuento de su compra"<<endl;
cin>>x;}
while (x<0||a<0);
b=x%3+1;
if(b==1)
{a=0.6*a;
cout<<"La bola escogida es de color rojo "<<endl;
cout<<"El descuento es del 40%"<<endl;
cout<<"El monto a pagar es "<<a<<endl;}
if(b==2)
{a=0.75*a;
cout<<"La bola escogida es de color rojo "<<endl;
cout<<"El descuento es del 25%"<<endl;
cout<<"El monto a pagar es "<<a<<endl;}
else if(b==3)
{cout<<"La bola escogida es de color blanco "<<endl;
cout<<"NO HAY DESCUENTO T_T"<<endl;
cout<<"El monto a pagar es "<<a<<endl;}
system("PAUSE");
return 0;
}

PROBLEMA 16
En un estadio se tienen 5 tipos diferentes de localidades, las cuales se
identifican por una clave numrica que es un valor comprendido entre 1 y 5.
Dado como datos los precios de cada localidad, tipo y cantidad de boletos
vendidos de un cierto tipo.

Muestre para cada venta , la clave, la cantidad y el importe total de los


boletos vendidos en esta venta.
Calcule y muestre la cantidad de boletos vendidos de cada tipo.
Calcule y muestre la recaudacin total del estadio.

#include <cstdlib>
#include <iostream.h>
#include <stdio.h>
main()
{
int montot;
int pers, eleccion;
int a, canta =0, montoa=0, precioa = 15;
int b, cantb =0, montob=0, preciob = 20;
int c, cantc =0, montoc=0, precioc = 25;
int d, cantd =0, montod=0, preciod = 30;
int e, cante =0, montoe=0, precioe = 35;
printf("ingresa la cantidad de personas: \n");
scanf("%d" ,&pers);
while(pers > 0)
{
system("cls");
printf("\n Localidades \n");
printf("\n 1, - localidades A monto 15 soles \n");
printf("\n 2, - localidades B monto 20 soles \n");
printf("\n 3, - localidades C monto 25 soles \n");
printf("\n 4, - localidades D monto 30 soles \n");
printf("\n 5, - localidades E monto 35 soles \n");
printf("\neliga una opcion\n");
scanf("%d", &eleccion);
switch(eleccion)
{
case 1: canta++;
montoa = montoa + precioa;
break;
case 2: cantb++;
montob = montob + preciob;
break;
case 3: cantc++;
montoc = montoc + precioc;
break;
case 4: cantd++;
montod = montod + preciod;
break;
case 5: cante++;
montoe = montoe + precioe;
break;
default:printf("El valor ingresado no existe");
break;

}
pers--;
}
montot=montoa+montob+montoc+montod+montoe;
printf("\n Localidad 1 A cantidad = %d monto=%d",canta,montoa);
printf("\n Localidad 2 B cantidad = %d monto=%d",cantb,montob);
printf("\n Localidad 3 C cantidad = %d monto=%d",cantc,montoc);
printf("\n Localidad 4 D cantidad = %d monto=%d",cantd,montod);
printf("\n Localidad 5 E cantidad = %d monto=%d",cante,montoe);
printf("\n La recaudacion total es =%d\n",montot);
system("pause");
}

PROBLEMA 17
Un censador recopila ciertos datos aplicando encuestas para el ltimo censo
Nacional de Poblacin y Vivienda. Desea obtener de todas las personas que
alcance a encuestar en un da, que porcentaje tiene estudios de primaria,
secundaria, carrera tcnica, estudios profesionales y estudios de posgrado
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
int main(){
float
opcion1,primaria=0,secundaria=0,tecnica=0,profesionales=0,postgrado=0,opc
ion,npersonas=0,porcentpri,porcentsec,porcenttec,porcentpro,porcentpos;
for(int i=1;i<999;i++){
cout<<"SI-------1"<<endl;
cout<<"NO-------2"<<endl;
cout<<"SALIR----3"<<endl<<endl;
cout<<"DATOS DE LA "<<i<<" PERSONA: "<<endl<<endl;
cout<<" POSEE ESTUDIOS PRIMARIOS?: ";
cin>>opcion;
if(opcion==1){
primaria++;
npersonas++;
cout<<" POSEE ESTUDIOS SECUNDARIOS? : ";
cin>>opcion;
if(opcion==1){
secundaria++;
cout<<" POSEE ESTUDIOS PROFESIONALES?: ";
cin>>opcion;
if(opcion==2){
cout<<" POSEE USTEDE UNA CARRERA TECNICA: ";
cin>>opcion1;

if(opcion1==1){
tecnica++;
}
}
if(opcion==1){
profesionales++;
cout<<"POSEE USTED ESTUDIOS DE POSTGRADO: ";
cin>>opcion;
if(opcion==1)
{
postgrado++;
}
}
}
}
system("cls");
if(opcion==3){
cout<<"EL TOTAL DE PERSONAS ENCUESTADAS FUE:
"<<npersonas<<endl;
porcentpri=100*primaria/npersonas;
porcentsec=100*secundaria/npersonas;
porcenttec=100*tecnica/npersonas;
porcentpro=100*profesionales/npersonas;
porcentpos=100*postgrado/npersonas;
cout<<"EL PORCENTAJE FINAL SEGUN EL CENSO FUE: "<<endl;
cout<<"PRIMARIA: "<<porcentpri<<"%"<<endl;
cout<<"SECUNDARIA: "<<porcentsec<<"%"<<endl;
cout<<"CARRERA TECNICA: "<<porcenttec<<"%"<<endl;
cout<<"PROFESIONALES: "<<porcentpro<<"%"<<endl;
cout<<"POSTGRADO: "<<porcentpos<<"%"<<endl;
break;
}
}
system("pause");
return 0;
}
PROBLEMA 18
Se desea procesar las operaciones bancarias de un cliente a quien se le pide
por nica vez su nombre y saldo inicial. Luego en un proceso repetitivo se
presenta las siguientes opciones: Depsito, Retiro, Fin. Al ingresar la opcin
elegida si esta fue D se pide si es en efectivo (1) o son cheque (2), se ingresa
la cantidad, y si fuese cheque se descuenta el 1% por comisin y se actualiza
su saldo mostrndolo en pantalla. Si la opcin elegida fue R se ingresa la
cantidad verificando que esta sea menor al saldo actualizndolo, de lo
contrario dar un mensaje de sobregiro. Si la opcin elegida fue F mostrar los
siguientes resultados:
a) Nombre, Saldo inicial.
b) Saldo final.

c) Nmero de Depsitos en EFECTIVO y con CHEQUE.


d) Monto promedio de retiros.
e) Monto mnimo depositado y mximo retirado.

#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
int main() {
float deposito, saldoInicial,saldoBase,saldoFinal, opcion,opcion2,retiro ;
int cantOpeCheque=0,cantOpeEfect=0,n=0,retirototal=0;
char nombre[20];
cout<<"ingrese el saldo inicial por favor : "<<endl;
cin>>saldoInicial;
saldoBase=saldoInicial;
cout<<"ingrese su nombre por favor : "<<endl;
cin>>nombre;
while(opcion!=3){
cout<<"Elija la operacion que desea relizar : "<<endl;
cout<<"opcion 1 -----> Deposito"<<endl;
cout<<"opcion 2 -----> Retiro"<<endl;
cout<<"opcion 3 -----> fin"<<endl;
cin>>opcion;
if(opcion==1){
cout<<"usted a eleg1do la opcion " <<opcion<<" ----->Deposito"<<endl;
cout<<"desea realizar la operacion con: "<<endl;
cout<<"EFECTIVO----->1"<<endl;
cout<<"CHEQUE ----->2"<<endl;
cin>>opcion2;
if(opcion2==1){
cout<<"ingrese el monto a depositar"<<endl;
cin>>deposito;
saldoFinal=deposito+saldoInicial;
cout<<"el deposito se relizo con exito"<<endl;
cout<<"ahora su saldo es de "<<saldoFinal<<endl;
cantOpeEfect++;
}
if(opcion2==2){
cout<<"ingrese el monto a depositar"<<endl;
cin>>deposito;
saldoFinal=(deposito-(deposito/100))+saldoInicial;
cout<<"el deposito se relizo con exito"<<endl;
cout<<"ahora su saldo es de "<<saldoFinal<<endl;
cantOpeCheque++;
}
}
if(opcion==2){
cout<<"ingrese la cantidad a retirar :"<<endl;
cin>>retiro;
if(saldoInicial>=retiro){

saldoFinal=saldoInicial-retiro;
retirototal=retirototal+retiro;
cout<<"la operacion fue realizada con exito"<<endl;
cout<<"Ahora su Saldo es de "<<saldoFinal<<endl;
n=n+1;
}
else
{
cout<<"operacion imposible -SOBREGIRO- "<<endl;
saldoFinal=saldoInicial;
}
}
saldoInicial = saldoFinal;
}
cout<<"NOMBRE "<<nombre<<endl;
cout<<"SALDO INICIAL "<<saldoBase<<endl;
cout<<"SALDO FINAL "<<saldoFinal<<endl;
cout<<"NUMERO DE OPERACIONES DE DEPOSITO
"<<cantOpeEfect+cantOpeCheque<<endl;
cout<<"(efectivo="<<cantOpeEfect<<",
cheque="<<cantOpeCheque<<")"<<endl;
cout<<"MONTO PROMEDIO DE RETIRO : "<<retirototal/n<<endl;
system ("pause");
return 0;
}

PROBLEMA 19
Una empresa automotriz necesita manejar los montos de ventas de sus N
sucursales, a lo largo de los ltimos10 aos.
Escriba un algoritmo que calcule lo siguiente:
Sucursal que ms ha vendido en cada ao.
Promedio de ventas por ao.
Ao con mayor promedio de ventas.
Ventas totales de la empresa.

#include
#include
#include
#include

<iostream>
<cstdlib>
<stdio.h>
<conio.h>

using namespace std;


int main()
{
int num,ventas,i,j;
float prom,sum,myventa,myprom,vntatotal;
myventa=0;
myprom=0;
vntatotal=0;
cout<<"\n\tEMPRESA AUTOMOTRIZ"<<endl;
cout<<"\ningrese numero de sucursales : ";
cin>>num;
cout<<"\nIngreze las ventas anuales por cada ano: "<<endl;
for(i=1;i<=10;i++)
{
sum=0;
prom=0;
cout<<"\n"<<i<<" ANO : \n";
for(j=1;j<=num;j++)
{
cout<<"\n"<<j<<" sucursal : ";
cin>>ventas;
sum=sum+ventas;
vntatotal=vntatotal+ventas;
if(ventas>myventa)
{
myventa=ventas;
}
}
cout<<"\nLa mayor venta de este ano fue la sucursal que hizo cierta
cantidad : "<<myventa<<endl;
prom=sum/num;
cout<<"\nEl promedio de este ano es : "<<prom<<endl;
if(prom>myprom)
{
myprom=prom;
}
}
cout<<"\nEl ano con mayor promedio de ventas fue el que hizo
"<<myprom<<endl;
cout<<"\nLa venta total es = "<<vntatotal<<endl;
system("PAUSE");
return 0;
}
PROBLEMA 20
Suponga que tiene usted una tienda y desea registrar las ventas en su
computadora. Disee un algoritmo que lea por cada cliente, el monto total de
su compra. Al final del da que escriba la cantidad total de ventas y el nmero
de clientes atendidos.

#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
int main(){
int monto,opcion,ncliente=0,ventatotal=0;
for(int i=1;i<999;i++){
cout<<"DATOS DEL "<<i<<" CLIENTE: "<<endl;
cout<<"MONTO TOTAL DE SU COMPRA: ";
cin>>monto;
ncliente++;
cout<<endl;
ventatotal=ventatotal+monto;
cout<<"*******DESEA CONTINUAR********"<<endl<<endl;
cout<<"SI------->1"<<endl<<endl;
cout<<"NO------->2"<<endl;
cin>>opcion;
if(opcion==2){
break;
}
system("cls");
}
cout<<"EL TOTAL DE CLIENTES ATENDIDOS FUE: "<<ncliente<<endl;
cout<<"EL TOTAL DE VENTAS FUE "<<ventatotal<<endl;
system("pause");
return 0;
}

PROBLEMA 21
Calcular la nota media por alumnos de una clase de m alumnos. Cada alumno
podr tener un nmero n de notas distinto.
#include <cstdlib>
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
int i,j,n,m;
float notas,cont;
cout<<"Ingrese la cantidad de alumnos : ";
cin>>m;
float promedio[m];

cout<<"Ingrese la cantidad de notas que debe tener cada alumno : ";


cin>>n;
for(i=0;i<m;i++)
{cont=0;
cout<<"Alumno["<<i+1<<"] ";
for(j=0;j<n;j++)
{cout<<"Nota["<<j+1<<"] :";
cin>>notas;
cont=cont+notas;
}
promedio[i]=(cont)/n;}
cout<<"Alumnos\t\tNota promedio\n";
for(i=0;i<n;i++)
cout<<"Alumno["<<i+1<<"]\t\t"<<promedio[i]<<endl;
cout<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}
PROBLEMA 22
Dado un nmero, invertirlo y determinar si es capica. Un nmero es capica,
si al invertirlo resulta el mismo nmero.
#include <stdlib.h>
#include <iostream.h>
#include <stdio.h>
using namespace std;
int main(int argc, char *argv[])
{
int num,capb,capc,capd;
printf ("Ingrese cualquier numero:");
scanf ("%d", &num);
system ("CLS");
capb=num;
capd=0;
capc=0;
while(capb!=0)
{
capc=capb%10;
capd=capd*10+capc;
capb=capb/10;
}
cout<<"EL NUMERO INVERTIDO ES "<<capd;
if(capd==num){
printf("\nEl numero %d es Capicua \n", num);
}else{
printf("\nEl numero %d NO es Capicua \n", num);
}
system("PAUSE");
return EXIT_SUCCESS;

}
PROBLEMA

23

Calcular el MCD y el MCM de dos nmeros enteros positivos


#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
int main(){
int a,b,mcd=1,x=0,n,mcm;
cout<<"INGRESE EL PRIMER NUMERO: ";
cin>>a;
cout<<"INGRESE EL SEGUNDO NUMERO: ";
cin>>b;
for(n=1;n<10000;n++)
{
if (a%n==0 && b%n==0)
{
mcd=mcd*n;
}
}
mcm=(a*b)/mcd;
cout<<"EL MCM ES: "<<mcm<<endl;
cout<<"EL MCD ES: "<<mcd<<endl;
system("pause");
return 0;
}
PROBLEMA 24
Escriba un algoritmo para determinar las posibles adquisiciones que se pueden
hacer con 87 soles sin que sobre dinero de 3 productos de 5,7 y 19 soles.
#include <cstdlib>
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
int x,y,z;
cout<<"\tcantidad de pruductos que se pueden comprar con 87 soles\n\n";
cout<<"5$\t\t7$\t\t19$\n\n";
for(x=0;x<18;x++)
for(y=0;y<13;y++)
for(z=0;z<5;z++)
if(5*x+7*y+19*z==87)
cout<<x<<"\t\t"<<y<<"\t\t"<<z<<endl;
cout<<endl;

system("PAUSE");
return EXIT_SUCCESS;
}
PROBLEMA 25
La compaa de luz Del Centro desea imprimir los recibos de un grupo de
empleados. Desea obtener tambin el total de cobros del periodo. Por cada
cliente se ingresa su nombre, direccin, registro inicial y registro final. El cobro
se efecta en base a la siguiente tabla:
140 KVH o Menos
s/. 3.20
Los siguientes 170 KVH s/. 0.15 por KVH.
Exceso sobre 310 KVH
s/. 0.097 por KVH.
Por cada cliente se debe imprimir un recibo indicando sus datos y montos.
PROBLEMA 26
Escriba un algoritmo que reciba como entrada N nmeros reales que
representan las temperaturas del exterior en un periodo de 24 horas.
Encuentre la temperatura media del da y la temperatura mas altas y mas
bajas del da.
#include <cstdlib>
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
float cont=0,aux;
int x,i,j;
cout<<"Indique la cantidad de temperaturas que va ingresar : ";
cin>>x;
float temp[x];
for(i=0;i<x;i++)
{cout<<"TEMPERATURA["<<i+1<<"] : ";
cin>>temp[i];
cont+=temp[i];}
for(i=0;i<x;i++)
for(j=i+1;j<x;j++)
if(temp[i]>temp[j])
aux=temp[i],temp[i]=temp[j],temp[j]=aux;
cout<<"Temperatura mas alta del dia "<<temp[x-1];
cout<<"\nTemperatura mas baja del dia "<<temp[0];
cout<<"\nTemperatura media del dia "<<cont/x;
cout<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}

PROBLEMA

27

Evaluar el nmero total de puntos enteros, que se encuentran en el interior de


la elipse:

X2 Y2

1
16
9
.
#include <cstdlib>
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
int x,y;
float a,b;
for(x=-4;x<5;x++)
{for(y=-3;y<4;y++)
{a=x*x/16.,b=y*y/9.;
if((a+b)<=1)
cout<<"("<<x<<";"<<y<<"); ";
}
}
cout<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}

PROBLEMA 28
Encuentre el nmero de puntos con coordenadas enteras que estn dentro de
la elipse
2

2x +3y =100.
#include <cstdlib>
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
int x,y,cont=0,i;
float a,b;
int abs[50] ,ord[50];
for(x=-7;x<8;x++)
for(y=-5;y<6;y++)
{a=x*x*2.,b=y*y*3;

if(a+b<=100)
{cont++;
cout<<"("<<x<<";"<<y<<")\t";
}
}
cout<<"\nExisten "<<cont<<"pares ordenados";
cout<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}
PROBLEMA 29
Ingresar un carcter y un nmero positivo menor o igual a 15, imprimir con el
carcter ingresado un triangulo rectngulo que tenga por cateto el nmero
ingresado.
#include <stdlib.h>
#include <iostream.h>
#include <iomanip.h>
#include <stdio.h>
using namespace std;
int main(int argc, char *argv[])
{
char op;
int x=0,a=0,z=0,filas;
printf("introduce un numero: ");
scanf("%d",&filas);
cout<<"Introduce un caracter: ";
cin>>op;
for(x=0;x<filas;x++)
{
for(a=0;a<=x;a++)
{
cout<<op;
}
printf("\n");
}
system("PAUSE");
return 0;
}
PROBLEMA 30
Mostrar todos los divisores de un nmero entero. Si el nmero solo tiene por
divisores al 1 y al propio nmero, mostrar el mensaje Nmero Primo.
#include <cstdlib>

#include <iostream>
#include <math.h>
using namespace std;
int main()
{
int a,i,cont=0;
cout<<"Ingrese un numero\n";
cin>>a;
for(i=1;i<=a;i++)
if(a%i==0)
cont++,cout<<i<<" ; ";
if(cont==2)
cout<<"El numero es primo ";
cout<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}

PROBLEMA 31
Encontrar todos los nmeros primos entre dos nmeros enteros ingresados por
teclado.
#include <iostream.h>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
int primo(int a);
int cantprimo (int b,int c);
int main(){
int may,men,x,y;
cout<<"Ingrese 2 numeros : ";
cin>>x>>y;
if(x>y)
may=x,men=y;
else
may=y,men=x;
cout<<"La cantidad de numeros primos entre "<<men<<" y "<<may<<" es :
"<<cantprimo(men,may)<<endl;
system("pause");

return 0;
}
int cantprimo(int b , int c){
int cont=0,i;
for (i=b+1;i<c;i++)
{if (primo(i)==1)
cont++;
}
return cont;
}
int primo(int a){
int r=1,i;
for(i=2;i<a;i++)
{;
if(a%i==0)
{r=0;
return r;}}
return r;
}