Está en la página 1de 12

FASE III

CURSO DE ALGORITMO

PRESENTADO POR
STEVENSON VALENCIA SANCHEZ
CDIGO: 11803916

PRESENTADO A
ERNESTO ORLANDO PARRA CAN

GRUPO: 301303_205

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BSICAS TECNOLOGAS E INGENIERAS
MAYO- 3.-2015
1. Un banco ha solicitado se disee un programa que permita encriptar la informacin de

las contraseas (4 nmeros) digitada por teclado (como un nico numero) hasta el
servidor principal, utilizando el siguiente criterio, el primer nmero se enva de ltimo,
el segundo, de penltimo, el tercer numero pasa a la segunda posicin, el ltimo pasa a
ser primero: ejemplo: Sea 6532, se debe enviar como 2356 .
Cdigo fuente
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
int a;
char cont[100];
Ingresar:
cout << "Ingrese la contrasea: "<<endl;
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 contrasea sera enviada de esta forma: " << crip <<endl;
}
else
{
cout <<endl<<"La contrasea debe tener de 4 digitos"<<endl;
goto Ingresar;
}
cin.get();
cin.get();
return 0;
}

2. Escribir un programa para calcular la fecha del siguiente da a partir de una fecha digitada
desde el teclado por el usuario ( dd, mm, aaaa ) e imprimirla. (Tenga en cuenta los aos

bisiestos.).

#include "stdafx.h"
#include <iostream>
using namespace std;
int main() //
{
int dd;
int mm;
int aaaa;
int bis;
int ddmax;
cout <<"programa para ingresar la fecha por partes"<<endl;
Ingresar1:
cout <<endl<<"Ingrese el dia dia (dd): "<<endl;
cin >> dd;
cout << "ingrese el mes (mm): "<<endl;
cin >> mm;
cout << "Ingrese el ao (aaaa): "<<endl;
cin >> aaaa;
// verificar si el ao 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 incorrecta"<<endl;
goto Ingresar1;
}
if ((mm==4||mm==6||mm==9||mm==11)&&(dd>30)||mm>12)
{
cout<<endl<<"La fecha es incorrecta"<<endl;
goto Ingresar1;
}
if (((mm==2)&&(bis==2))&&(dd>29)||mm>12)
{
cout<<endl<<"La fecha es incorrecta"<<endl;
goto Ingresar1;
}
if (((mm==2)&&(bis==1))&&(dd>28)||mm>12)
{
cout<<endl<<"La fecha es incorrecta"<<endl;
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 ao


if (dd < ddmax)
{
dd = dd + 1;
mm = mm;
aaaa = aaaa;
goto fin;
}
// Verifica si es el ultimo dia del ao
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 << " Ao: "<<aaaa;
cin.get();
cin.get();
}

3.Se lee un nmero de mximo tres dgitos (verifique que efectivamente sea de mximo tres

dgitos) y se debe determinar si es un nmero capica, es decir, que ledo de izquierda a


derecha es igual que ledo de derecha a izquierda. Por ejemplo: 727, 343, etc.
Cdigo fuente
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
int a;
char ca[100];
Ingres:
cout<<"PROGRAMA NUMERO CAPIUCA"<<endl;
cout << "ingrese un numero de tres digitos"<<endl;
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 tres digitos"<<endl;
goto Ingres;
}
cin.get();
cin.get();
return 0;
}

4. En una organizacin se tiene a los empleados agrupados por categora, los de categora 1
ganan $20.000, los de categora 2, $15.000, los de categora 3, $10.000 y los de categora 4,
$7.500. Se quiere un algoritmo que permita determinar cunto debe pagarse a un empleado
si se conoce el nmero de horas que trabaj durante el mes y la categora 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).
Codigo fuente
#include "stdafx.h"
#include <iostream>
using namespace std;

int main()
{
int categoria;
double sph;
int horas;
cout<<"NOMINA EMPLEADOS"<<endl;
Opcion:
cout << "1- Categoria 1 "<<endl;
cout << "2- Categoria 2 "<<endl;
cout << "3- Categoria 3 "<<endl;
cout << "4- Categoria 4 "<<endl;
cout <<endl<< "ingrese 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<< "categoria no valida "<<endl;
goto Opcion;
}
cout << "Ingrese el numero de horas trabajadas por el empleado: "<<endl;
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<<endl;
cin.get();
cin.get();

5. Elabore un programa que tenga cuatro niveles de seguridad (documntese 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.
Codigo fuente
#include "stdafx.h"
#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 contrasea: "<<endl;
cin>>ca;
ct = atoi(ca);
int lcont = strlen(ca);
cout<<"Tiene 4 intentos: sino, se bloquera su cuenta"<<endl;
while (sw == 0)
{
cout<<endl<<"Ingrese contrasea: "<<endl;
cin>>ct1;
if (ct==ct1)
{
sw=1;
cout<<endl<<"------ BIENVENIDO ------"<<endl;
}
else
{
cont = cont + 1;
cout<<endl<<"Intento No : "<<cont<<endl;
cout<<endl<<"Error en la contrasea : "<<endl;
}
if (cont == 3)
{ cout<<endl<<"Ultima oportunidad de ingresar contrasea correcta: "<<endl;
}
if (cont == 4)
{
cout<<endl<<"ERROR nivel de error: "<<cont<<endl;
cout<<endl<<"Su cuenta ha sido bloqueada por seguridad "<<endl;
sw=1;
}
}
cin.get();
cin.get();
}

6. Escriba un programa para calcular si un nmero es primo o no, recuerde que los nmeros
primos son aquellos que solo son divisibles por la unidad y por ellos mismos: ejemplo 5, 11,
17
Codigo fuente
#include "stdafx.h"
#include<iostream>
using namespace std;
int main()
{
int num=1,c,res,nc=0,rep=0;
cout<<"NUMERO PRIMO"<<endl;
while(num!=0)
{
cout<<"Introduce nmero para verificar si es o no es primo: "<<endl;
if(rep==1)
{
cout<<" --> Para salir oprime cero: "<<endl;
}
rep++;
cin>>num;
for(c=1;c<=num;c++)
{
res=num%c;
if(res==0)
nc++;
}
if(nc==2)
cout<<"Es primo\n\n";
else
cout<<"No es primo\n\n";
nc=0;
}
}

7. Lea los valores de los lados de un tringulo. Detecte y muestre un mensaje correspondiente
a su tipo (EQUILTERO, ISSCELES, O ESCALENO).
Cdigo fuente
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
#include <conio.h> //Definiendo las libreras//
using namespace std;
void main()
{
float cat1, cat2, hyp; // definicin de las variables a utilizar//
printf("Ingrese medida primer lado: ");
scanf("%f", &cat1);
printf("\n\r Ingrese medida del segundo lado: ");
scanf("%f", &cat2);
printf("\n\r Ingrese medida del tercer lado: ");
scanf("%f", &hyp);
if ( cat1 + cat2 < hyp )
{
printf("\n\n\r No es un triangulo"); //establecemos la condicin de error//
}
else
{
if (( cat1 == cat2 ) && ( cat1 != hyp ) && ( cat2 != hyp ) || ( cat1 == hyp ) && ( cat1 !=
cat2 ) && ( hyp != cat2 ) || ( cat2 == hyp ) && ( cat2 != cat1 ) && ( hyp != cat1 ))
{
printf("\n\n\r Es un triangulo ISOSELES");
system ("pause");
}
if (( cat1 == cat2 ) && ( cat1 == hyp ) && ( cat2 == hyp ))
{
printf("\n\n\r Es un triangulo EQUILATERO");
system ("pause");
}
if (( cat1 != cat2 ) && ( cat1 != hyp ) && ( cat2 != hyp))
{
printf("\n\n\r Es un triangulo ESCALENO");

system ("pause");
}
}
}

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.
Codigo fuente.
#include "stdafx.h"
#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];
cout<<"BUSQUEDA EMPLEADOS"<<endl;
ac=0;
i=0;
cout<<"ingrese la cantidad de empleados que va a entrevistar"<<endl;
cin>>n;

for (i=1;i<=n;i++) {
cout<<"empleado"<<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<<"tiene 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;
}

También podría gustarte