Sunteți pe pagina 1din 26

PRACTICA LABORATORIO No 3

JONNATAN FERNANDO GOMEZ HENAO


COD 1018402735


GRUPO 2

ALGORITMOS



TUTOR VIRTUAL:
GERMAN YOBANY BELTRAN RONDON






UNIVERSIDAD NACIONAL ABIERTA A DISTANCIA
INGENIERIA DE TELECOMUNICACIONES
BOGOTA, COLOMBIA.
2014


OBJETIVOS
Disear estructuras secuenciales en C++, sus componentes y funciones dentro del
algoritmo con sus correspondientes soluciones a cada uno de los ejercicios.

Realizar ejercicios que permitan adquirir habilidades, utilizando diagramas de
algoritmos.

Realizar ejercicios que permitan adquirir habilidades en la utilizacin de lenguajes de
programacin.




















CONTENIDO
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 el primero: ejemplo
Ejemplo: Sea 7458, se debe enviar como 8547

//Punto 1: Encriptacion de contrasea 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 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 <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 ao (aaaa): ";
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 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 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.

#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 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 cuanto 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).

#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 (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

#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 contrasea: ";
cin>>ca;

ct = atoi(ca);
int lcont = strlen(ca);
cout<<"Tiene 4 intentos despues se bloquera su cuenta";
while (sw == 0)
{


cout<<endl<<"Ingrese contrasea: ";
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 contrasea : ";


}

if (cont == 3)
{
cout<<endl<<"Ultima oportunidad de ingresar contrasea 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 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

#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 tringulo. Detecte y muestre un mensaje correspondiente a su
tipo (EQUILTERO, ISSCELES, 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<<"tringulo equiltero"<<endl;
}
else
{
if (a==b || b==c || a==c) {
cout<<" tringulo isoceles"<<endl;
}
else {
cout<<"tringulo escaleno"<<endl;
}
}
system("pause");
return 0;
}


9. Elaborar un programa que convierta un nmero 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 diseado 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, da, ao) indicar cuantos das (exactos) han transcurrido
desde ese ao.


#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 ao 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 nmero aleatorio y que les d la posibilidad a dos
jugadores de adivinar dicho nmero, el algoritmo debe pedir el nmero de partidas, intercalar los
turnos para adivinar, mostrar el ganador por partida y el ganador final. El nmero debe estar entre
0-100. (Use la funcin 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) nmero 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 nmero 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 ms 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 construccin de un men, permita la utilizacin de por
lo menos cinco (5), funciones de la librera 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 disearon 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 creacin de diagramas
de algoritmos.

Se realizan ejercicios que permitan adquirir habilidades en la utilizacin de lenguajes
de programacin y aplicaciones como lo es C++

S-ar putea să vă placă și