Вы находитесь на странице: 1из 27

PRACTICA LABORATORIO No 3

PRESENTADO POR:

COD:

ALGORITMOS

PRESENTADO A:

UNIVERSIDAD NACIONAL ABIERTA A DISTANCIA

UNAD

1 de mayo de 2016
OBJETIVOS

 Diseñar estructuras secuenciales en C++, CON sus componentes y funciones


 Realizar ejercicios que permitan adquirir habilidades.
 Realizar ejercicios que permitan adquirir conocimiento en la utilización de
lenguajes de programación.
CONTENIDO

1. Un banco ha solicitado se diseñe un programa que permita encriptar la


información de Las contraseñas (4 números) digitada por teclado (como un único
numero) hasta el servidor principal, utilizando el siguiente criterio, el primer número
se envía de último, el segundo, de penúltimo, el tercer numero pasa a la segunda
posición, el último pasa a ser el primero: ejemplo
Ejemplo: Sea 7458, se debe enviar como 8547

//Punto 1: Encriptacion de contraseña de 4 digitos

#include <iostream> 
using namespace std;

int main() 
{
 
 int a;
 char cont[100];
 
 Ingresar:
 cout << "Digite la clave de cuatro digitos: "; cin >> a;
 
 itoa (a,cont,10);
 int lcont = strlen(cont);
 
 if (lcont==4) 
 {
 
 int n1 = a/1000;
 int n2 = a/100 - n1*10;
 int n3 = a/10 - (n1*100 + n2*10);
 int n4 = a - (n1*1000 + n2*100 + n3*10);
 
 int crip = n4*1000 + n3*100 + n2*10 + n1;
 
 cout << "La clave sera enviada como: " << crip <<endl;
}
 else
 {
     cout <<endl<<"La clave debe tener de 4 digitos"<<endl;
     goto Ingresar;
 }

 
 cin.get();
 cin.get();
 return 0;
 
}

2. Escribir un programa para calcular la fecha del siguiente día a partir de una fecha
digitada desde el teclado por el usuario ( dd, mm, aaaa ) e imprimirla. (tenga en
cuenta los años bisiestos.)

#include <iostream> // 


using namespace std;

int main() // 


{
    int dd;
    int mm;
    int aaaa;
    int bis;
    int ddmax;
    
    cout << "Introduzca fecha a continuacion "<<endl; 
Ingresar1:
    cout <<endl<< "Introduzca dia (dd): ";
    cin >> dd;
    cout << "Introduzca mes (mm): ";
    cin >> mm;
    cout << "Introduzca año (aaaa): ";
    cin >> aaaa;
    
   
    // verificar si el año es Bisiesto 
     if ((aaaa%4 == 0 && aaaa%100 != 0)||aaaa%400==0)
     bis = 2;
     else
     bis = 1;

    //Verificar si la fecha que se ingreso es valida


     if ((mm==1||mm==3||mm==5||mm==7||mm ==8||mm==10||mm==12)&&(dd>31)||
mm>12)
    {
        cout<<endl<<"La fecha es invalida";
        goto Ingresar1;
    }
     if ((mm==4||mm==6||mm==9||mm==11)&&(dd>30)||mm>12)
    {
        cout<<endl<<"La fecha es invalida";
        goto Ingresar1;
    }
     if (((mm==2)&&(bis==2))&&(dd>29)||mm>12)
    {
        cout<<endl<<"La fecha es invalida";
        goto Ingresar1;
    }

     if (((mm==2)&&(bis==1))&&(dd>28)||mm>12)
    {
        cout<<endl<<"La fecha es invalida";
        goto Ingresar1;
    }
        
    // Verifica cual es el maximo de dias de cada mes
     if (mm==1||mm==3||mm==5||mm==7||mm ==8||mm==10||mm==12)
        ddmax = 31;
     if (mm==4||mm==6||mm==9||mm==11)
        ddmax = 30;
     if ((mm==2)&&(bis==2))
        ddmax = 29;
     if ((mm==2)&&(bis==1))
         ddmax = 28;
      
   
     // Cualquier dia distinto a fin de mes o año
     if (dd < ddmax)
     {
         dd = dd + 1;
         mm = mm;
         aaaa = aaaa;
         goto fin;
     }
   
     // Verifica si es el ultimo dia del año
     if (dd == ddmax && mm == 12)
     {
            dd = 01;
            mm = 01;
            aaaa = aaaa + 1;
            goto fin;
     }
   
     // Verifica si es el ultimo dia de un mes
     if (dd == ddmax && mm != 12)
     {
         dd = 01;
         mm = mm + 1;
         aaaa = aaaa;
         goto fin;
     }
      
     fin:
     cout <<endl<<endl<<"La Fecha del dia siguiente es:"<<endl;
     cout <<" Dia: "<< dd << " Mes: " << mm << " Año: "<<aaaa;
   
     cin.get();
     cin.get();
}

3. Se lee un número de máximo tres dígitos (verifique que efectivamente sea de


máximo tres dígitos) y se debe determinar si es un número capicúa, es decir, que
leído de izquierda a derecha es igual que leído de derecha a izquierda. Por ejemplo:
727, 343, etc.

#include <iostream> 
using namespace std;

int main() 
{
 
 int a;
 char ca[100];
 
 Ingres:
 cout << "Digite un numero de 3 digitos: "; cin >> ca;
 
 int lnumc = strlen(ca);
 a = atoi(ca);  
 
 if (lnumc==3) 
 {
 int n1 = a/100;
 int n2 = a/10 - n1*10;
 int n3 = a - (n1*100 + n2*10);
 
 int ni = n3*100 + n2*10 + n1;
 
 if (ni-a == 0)
 cout << "El numero es capicua"<<endl;
 else
 cout << "El numero no es capicua"<<endl;
 }
 else
 {
     cout <<endl<< "El numero debe tener 3 digitos"<<endl;
     goto Ingres;
 }
 cin.get();
 cin.get();
 return 0;
 
}

4. En una organización se tiene a los empleados agrupados por categoría, los de


categoría 1 ganan $20.000, los de categoría 2, $15.000, los de categoría 3, $10.000 y
los de categoría 4, $7.500. Se quiere un algoritmo que permita determinar cuanto
debe pagarse a un empleado si se conoce el número de horas que trabajó durante
el mes y la categoría a la que pertenece. Se sabe que a todos se les descuenta un
7.2% por concepto de salud, y si el salario total devengado (mensual) es menos de
1 ´000.000, se le da un subsidio del 15% sobre su salario mensual (sin descuentos).

#include <iostream> 
using namespace std;

int main() 
{
    
    int categoria;
    double sph;  
    int horas;
    
 Opcion:

    cout << "1- Categoria 1 "<<endl;


    cout << "2- Categoria 2 "<<endl;
    cout << "3- Categoria 3 "<<endl;
    cout << "4- Categoria 4 "<<endl;
    
    cout <<endl<< "DIGITE UNA OPCION: ";
    
    cin >> categoria;
    
  
    switch (categoria)
  {
    case 1: sph = 20000;break;
    case 2: sph = 15000;break;
    case 3: sph = 10000;break;
    case 4: sph = 7500;break;
    default:
            cout <<endl<< "No es una categoria valida "<<endl;
            goto Opcion;
  }
    
    cout << "Ingrese el numero de horas trabajadas por el empleado: ";
    cin >> horas;
    
    double salario = double(sph*horas) - double(0.072*(sph*horas));
    
    if (salario<1000000)
    salario = salario + 0.15*(sph*horas);
    
    cout <<endl<< "El pago al empleado debe ser: "<<salario;
    cin.get();
    cin.get();
}    

5. Elabore un programa que tenga cuatro niveles de seguridad (documéntese sobre


niveles de seguridad) para un programa, si el usuario logra ingresar imprimir el
mensaje "Bienvenido", en caso contrario imprimir "Error clave" y el nivel del error

#include <iostream> 
#include <math.h>
#include <stdio.h>
#include <conio.h>
using namespace std;

int main() 
{
    char ca [100];
    int ct;
    int ct1;
    int sw = 0;
    int cont = 0;
    
    cout<<endl<<"Guardar una contraseña: ";
    cin>>ca;
    
    ct = atoi(ca);
    int lcont = strlen(ca);
    cout<<"Tiene 4 intentos despues se bloquera su cuenta"; 
    while (sw == 0)
  {
   
     
    cout<<endl<<"Ingrese contraseña: ";
    cin>>ct1;
    
        if (ct==ct1)
    {
            sw=1;
            cout<<endl<<"------ BIENVENIDO ------";
    }
        else
    {
       cont = cont + 1;
       cout<<endl<<"Intento No : "<<cont<<endl;
    
    
       cout<<endl<<"Error en la contraseña : ";
          
    
       }
    
       if (cont == 3)
       {
       cout<<endl<<"Ultima oportunidad de ingresar contraseña correcta: "<<endl;
       }
    
       if (cont == 4)
       {
       cout<<endl<<"ERROR nivel de error: "<<cont;
       cout<<endl<<"Su cuenta ha sido bloqueada por seguridad ";
       sw=1;
       }                             
     }
   

     cin.get();
     cin.get();
}

6. Escriba un programa para calcular si un número es primo o no, recuerde que los
números primos son aquellos que solo son divisibles por la unidad y por ellos
mismos:
ejemplo 5, 11, 17

#include<stdio.h>
#include<stdlib.h>

int main()
{
long Num,divisor=2; 
printf("\t Introducir el Numero = ");
scanf("%ld",&Num);
while(divisor<Num)
{ while( Num % divisor != 0)
divisor=divisor+1;
if(Num== divisor) 
printf("t %ld es PRIMO n",Num); 
else
printf("t%ld NO es PRIMO ,pues ES multiplo de %ld n",Num,divisor); 
break;
}
system("pause");
return 0;
}
7. Lea los valores de los lados de un triángulo. Detecte y muestre un mensaje
correspondiente a su tipo (EQUILÁTERO, ISÓSCELES, O ESCALENO)
#include<iostream>
#include<cmath>
#include<stdlib.h>
using namespace std;
int a;
int b;
int c;
int main() {
cout<<"ingrese el lado a del triangulo"<<endl;
cin>>a;
cout<<"ingrese el lado b del triangulo"<<endl;
cin>>b;
cout<<"ingrese el ladoc del triangulo"<<endl;
cin>>c;
if (a==b && b==c) {
cout<<"triángulo equilátero"<<endl;

else 
{
if (a==b || b==c || a==c) {
cout<<" triángulo isoceles"<<endl;

else {
cout<<"triángulo escaleno"<<endl;
}
}
system("pause");
return 0;
}

8. Desarrolle un programa que permita seleccionar personal para un empleo de un


total de N aspirantes. Los aspirantes deben cumplir las siguientes condiciones para
ser aceptados: Mayores de edad, Ser ingeniero titulado Tener experiencia laboral Al
final el programa debe mostrar el total de aspirantes aceptados.

#include<iostream>

#include<cmath>

#include<stdlib.h>

using namespace std;


int main() 

float suma=0;

float ac;

float i=0;

int n;

float I;

int e;

int g;

int j;

int APIRANTES[200];

ac=0;

i=0;

cout<<"ingrse la cantidad de empleados que va a entrvistar"<<endl;

cin>>n;

for (i=1;i<=n;i++) {

cout<<"empeado"<<i<<endl;

cout<<" Es mayor de edad?"<<endl;

cout<<"si=1 no=2"<<endl;

cin>>e;

cout<<"ingeniero titulado?"<<endl;

cout<<"si=1 no=2"<<endl;

cin>>g;

cout<<"etiene experiencia laboral?"<<endl;

cout<<"si=1 no=2"<<endl;

cin>>j;

if (e==1 && g==1 && j==1) {


ac=suma+i;

cout<<"el numero de empleados aceptados es:"<<ac<<endl;


system("pause");

return 0;

9. Elaborar un programa que convierta un número entero positivo, menor a


257 a
sistema binario

#include <stdio.h>
#include <conio.h>
#include<stdlib.h>
main()
{
float a[16];
int ne,x,swi;
printf("Este progrograma esta diseñado para convertir un numero entero positivo
decimal a binario.");
printf("\n\nPara continuar con el programa presione ENTER");
getch();
intonum:
printf("Introduzca el numero entero positivo que desea convertir a binario:");
scanf("%i",&ne);
if(ne<0)
{
err:
printf("Ha introducido un numero negativo, si desea intentar nuevamente presione
1 o si desea salir del programa presione 2\n");
scanf("%i",&swi);
if(swi==1)
{
printf("\n");
goto intonum;
}
else
if(swi==2)
{
printf("fin");
}
else
{
printf("Error de entrada");
goto err;
}
}
else
{
for(x=15;x>=0;x=x-1)
{
if(ne<257)
{
a[x]=ne%2;
}
else
{
a[x]=0;
}
ne=ne/2;
}
for(x=0;x<=15;x++)
{
printf("%.0f",a[x]);
}
}
system("pause");
return 0;
}

10. Dada tu fecha de nacimiento (mes, día, año) indicar cuantos días
(exactos) han transcurrido desde ese año.
#include<stdio.h>
#include<stdlib.h>
int dia; 
int mes; 
int ano; 
int cad; 
int cad1;
int main()
{
printf("\ningrese el numero del dia de nacimiento");
scanf("%d",&dia);
printf("\ningrese el numero del mes de nacimiento");
printf("\nenero=1");
printf("\nfebrero=2");
printf("\nmarzo=3");
printf("\nabril=4");
printf("\nmayo=5");
printf("\njunio=6");
printf("\njulio=7");
printf("\nagosto=8");
printf("\nseptiembre=9");
printf("\noctubre=10");
printf("\nnobiembre=11");
printf("\ndiciembre=12");
scanf("%d",&mes);
printf("\ningrese el numero del año completo de nacimiento");
scanf("%d",&ano);
if(mes==4||mes==6||mes==9||mes==11)
{
cad1=(30-dia)+(30*3)+(31*7)+(28);
cad=(2009-ano)*cad1;
printf("los dias vividos son:%d",cad);
}
else
{
if (mes==1||mes==3||mes==5||mes==7||mes==8||mes==10||mes==12)
cad1=(31-dia)+(30*4)+(31*6)+(28);
cad=(2009-ano)*cad1;
printf("los dias vividos son:%d",cad);
}
if(mes==2)
{
cad1=(28-dia)+(30*4)+(31*7);
cad=(2009-ano)*cad1;
printf("los dias vividos son:%d",cad);
}

system("pause");
return 0;
}

11. Elabore un programa que genere un número aleatorio y que les dé la


posibilidad a dos jugadores de adivinar dicho número, el algoritmo debe
pedir el número de partidas, intercalar los turnos para adivinar, mostrar el
ganador por partida y el ganador final. El número debe estar entre 0-100.
(Use la función random.)

#include <iostream>
#include <time.h>
using namespace std;

int main(void)
{
int p1 = 1, p2 = 1, partidas, n, m;
bool jug1 = true, jug2 = true, salir1 = false, salir2 = false;
cout << "Numero De Partidas: ";
cin >> partidas;
srand(time(NULL));
m = rand() % 101;
do
{
system("cls");
if (jug1 == true && salir1 == false)
{
cout << "\nJugador 1, Partida " << p1 << endl << endl;
cout << "Adivina EL Numero: ";
cin >> n;
if (n == m)
{
cout << "\nFelicidades Adivinaste!";
cin.get();
cin.get();
salir1 = true;
}
else
{
cout << "\nLo Siento Has Fallado!";
cin.get();
cin.get();
}
p1++;
if (salir2 == false) jug1 = false;
jug2 = true;
}
else if (jug2 == true && salir2 == false)
{
cout << "\nJugador 2, Partida " << p2 << endl << endl;
cout << "Adivina EL Numero: ";
cin >> n;
if (n == m)
{
cout << "\nFelicidades Adivinaste!";
cin.get();
cin.get();
salir2 = true;
}
else
{
cout << "\nLo Siento Has Fallado!";
cin.get();
cin.get();
}
p2++;
if (salir1 == false) jug2 = false;
jug1 = true;
}
if (salir1 == true && salir2 == true)
{
p1 = partidas + 2;
p2 = partidas + 2;
}
}while(p1 <= partidas || p2 <= partidas);
system("cls");
if (salir1 == true) cout << endl << "Jugador 1 Adivino" << endl << endl;
else cout << "Jugador 1 No Adivino" << endl << endl;
if (salir2 == true) cout << "Jugador 2 Adivino" << endl << endl;
else cout << "Jugador 2 No Adivino" << endl << endl;
system("pause");
return EXIT_SUCCESS;
}

12. Elabore un programa que lea las ventas de (n) número de vendedores,
para los productos (A, B, C, D y C), si los precios de los productos son
($1000, $2345, $3876, $1235 y $550) respectivamente, calcule el número
individual y total de productos vendidos, las ventas totales por producto, el
promedio total de ventas, el producto mas vendido, el menos vendido, el
vendedor que más ventas realizó

#include<iostream>
#include<cmath>
#include<stdlib.h>
using namespace std;

int main() {

int nipa=0;
float nipb;
float nipc;
float nipd;
float nipe;
float ntp;
float vtpa;
float vtpb;
float vtpc;
float vtpd;
float vtpe;
float ptv;
float pmv;
float pmev;
float vmv;
float a;
float suma;
int n;
float A;
int b;
int c;
int d;
int e;
int f;
int VENTAS[200];
nipb=0;
nipc=0;
nipd=0;
nipe=0;
ntp=0;
vtpa=0;
vtpb=0;
vtpc=0;
vtpd=0;
vtpe=0;
ptv=0;
pmv=0;
pmev=0;
vmv=0;
a=0;
suma=0;
cout<<"ingrese la cantidad de vendedores que va a nalizar"<<endl;
cin>>n;
for (a=1;a<=n;a++) {
cout<<"vendedor"<<a<<endl;
cout<<"cantidad del producto a vendida?"<<endl;
cin>>b;
cout<<"cantidad del producto b vendida?"<<endl;
cin>>c;
cout<<"cantidad del producto c vendida?"<<endl;
cin>>d;
cout<<"cantidad del producto d vendida?"<<endl;
cin>>e;
cout<<"cantidad del producto e vendida?"<<endl;
cin>>f;
nipa=suma+b;
nipb=suma+c;
nipc=suma+d;
nipd=suma+e;
nipe=suma+f;
ntp=suma+b+c+d+e+f;
vtpa=100*b;
vtpb=2345*c;
vtpc=3876*d;
vtpd=1235*e;
vtpe=550*f;
ptv=(vtpa+vtpb+vtpc+vtpd+vtpe)/5;
if (nipa>nipb && nipa>nipc && nipa>nipd && nipa>nipe) {
cout<<"el producto mas vendido es el a"<<endl;
} else {
if (nipb>nipa && nipb>nipc && nipb>nipd && nipb>nipe) {
cout<<"el producto mas vendido es el b"<<endl;
} else {
if (nipc>nipa && nipc>nipb && nipc>nipd && nipc>nipe) {
cout<<"el producto mas vendido es el c"<<endl;
} else {
if (nipd>nipa && nipd>nipb && nipd>nipc && nipd>nipe) {
cout<<"el producto mas vendido es el d"<<endl;
} else {
if (nipe>nipa && nipe>nipb && nipe>nipc && nipe>nipd) {
cout<<"el producto mas vendido es el e"<<endl;
}
}
}
}
}
if (nipa<nipb && nipa<nipc && nipa<nipd && nipa<nipe) {
cout<<"el producto menos vendido es el a"<<endl;
} else {
if (nipb<nipa && nipb<nipc && nipb<nipd && nipb<nipe) {
cout<<"el producto mas vendido es el b"<<endl;
} else {
if (nipc<nipa && nipc<nipb && nipc<nipd && nipc<nipe) {
cout<<"el producto mas vendido es el c"<<endl;
} else {
if (nipd<nipa && nipd<nipb && nipd<nipc && nipd<nipe) {
cout<<"el producto mas vendido es el d"<<endl;
} else {
if (nipe<nipa && nipe<nipb && nipe<nipc && nipe<nipd) {
cout<<"el producto mas vendido es el e"<<endl;
}
}
}
}
}
}
cout<<"el numero de productos a vendidos es:"<<nipa<<endl;
cout<<"el numero de productos b vendidos es:"<<nipb<<endl;
cout<<"el numero de productos c vendidos es:"<<nipc<<endl;
cout<<"el numero de productos d vendidos es:"<<nipd<<endl;
cout<<"el numero de productos e vendidos es:"<<nipe<<endl;
cout<<"el numero total de productos e vendidos es:"<<ntp<<endl;
cout<<"las ventas totales por producto a es:"<<vtpa<<endl;
cout<<"las ventas totales por producto b es:"<<vtpb<<endl;
cout<<"las ventas totales por producto c es:"<<vtpc<<endl;
cout<<"las ventas totales por producto d es:"<<vtpd<<endl;
cout<<"las ventas totales por producto e es:"<<vtpe<<endl;
cout<<"el promedio total de ventas es:"<<ptv<<endl;
system("pause");
return 0;
}

13. Desarrolle un programa que mediante la construcción de un menú,


permita la utilización de por lo menos cinco (5), funciones de la librería
math.h 

#include<iostream>
#include<cmath>
#include<stdlib.h>
using namespace std;
#define SIN_TIPO float
float salir;
float n;
float x;
int opcion;
float r;
float f;
string primo;
float nu;
int main() {
salir=0;
cout<<"Ingresar Numero:"<<endl;
cin>>n;
do {
cout<<" "<<endl;
cout<<"Presione Enter para continuar"<<endl;
cin>>x;
cout<<"1 - Seno, Coseno, ArcoTangente"<<endl;
cout<<"2 - Lograritmo Natural, Funcion Exponencial"<<endl;
cout<<"3 - Truncar, Redondear"<<endl;
cout<<"4 - Raiz Cuadrada"<<endl;
cout<<"5 - Valor Absoluto"<<endl;
cout<<"6 - Separar parte entera y decimal"<<endl;
cout<<"7 - Hallar Factorial"<<endl;
cout<<"8 - Averiguar si es primo"<<endl;
cout<<"9 - Ingresar Otro Numero"<<endl;
cout<<" "<<endl;
cout<<"0 - para Salir"<<endl;
cout<<" "<<endl;
cin>>opcion;
switch (opcion) {
case 1:
cout<<"Seno:"<<sin(n)<<endl;
cout<<"Coseno:"<<cos(n)<<endl;
cout<<"ArcTangente:"<<atan(n)<<endl;
break;
case 2:
if (n<=0) {
cout<<"El numero debe ser mayor a cero!"<<endl;

else {
cout<<"Log Nat.:"<<log(n)<<endl;
cout<<"Func Expon.:"<<exp(n)<<endl;
}
break;
case 3:
cout<<"Turncar:"<<floor(n)<<endl;
cout<<"Redondear:"<<ceil(n+.5)<<endl;
break;
case 4:
cout<<"Raiz Cuad.:"<<sqrtf(n)<<endl;
break;
case 5:
cout<<"Valor Abs.:"<<abs(n)<<endl;
break;
case 6:
cout<<"Parte Entera:"<<floor(n)<<endl;
cout<<"Parte Decimal:"<<n-floor(n)<<endl;
break;
case 7:
if (n!=floor(n)) {
cout<<"El numero debe ser entero!"<<endl;

else {
if (abs(n)>50) {
cout<<"Resultado muy grande!"<<endl;

else {
r=1;
f=1;
while (f<=abs(n)) {
if (n<0) 
{
r=(-f)*r;

else {
r=f*r;
}
f=f+1;
}
cout<<"Factorial:"<<r<<endl;
}
}
break;
case 8:
if (n!=floor(n)) {
cout<<"El numero debe ser entero!"<<endl;

else {
primo="Si";
if (n/2==floor(n/2)) {
primo="No";
}
if (n<0) {
nu=n*-1;

else {
nu=n;
}
nu=sqrtf(nu);
f=3;
while (f<=nu && primo=="Si") {
if (n/f==floor(n/f)) {
primo="No";
}
f=f+2;
}
cout<<"Numero Primo:"<<primo<<endl;
if (f==3) {
f=4;
}
if (primo=="No") {
cout<<n<<"="<<f-2<<"x"<<n/(f-2)<<endl;
}
}
break;
case 9:
cout<<"Ingrese Numero:"<<endl;
cin>>n;
break;
case 0:
salir=1;
break;
default:
cout<<"Opcion No Valida!"<<endl;
break;
}

while (salir==1);
system("pause");
return 0;
}

CONCLUSIONES
 Se diseñaron estructuras secuenciales en C++, sus componentes y funciones
dentro del algoritmo con sus correspondientes soluciones a cada uno de los
ejercicios.

 Se realizan ejercicios que permiten adquirir habilidades en la creación de


diagramas de algoritmos.

 Este trabajo permitió desarrollar diferentes habilidades en cuanto al desarrollo


de cada algoritmo.

Вам также может понравиться