Está en la página 1de 29

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD

ALGORITMOS

TRABAJO COLABORATIVO 3

PRESENTADO A: IVAN ARTURO LOPEZ

PRESENTADO POR: DENNIS ALBEIRO RAMOS MARTINEZ 79.912.563 CARLOS ALBERTO GOYENECHE ALFONSO 79941769 FERNANDO DIAZ 79858621 GRUPO: 35

CEAD JOSE ACEVEDO Y GOMEZ BOGOTA 28/05/2011

INTRODUCCION
Esta actividad le permitir al estudiante realizar diferentes anlisis de situaciones o problemas cotidianos los cuales pueden ser resueltos gracias a la ayuda de la programacin con ayuda de los planteamientos algortmicos de cada ejercicio. Esta actividad mostrara las diferentes formas de analizar y resolver estos problemas utilizando los conocimientos previos y algunas guas del internet se lograran programar cada uno de estos ejemplos. La presentacion de esta actividad nos permite trabajar diferentes compiladores en la gran variedad que encontramos de los sistemas de computacin.

OBJETIVO GENERAL Reconocer las diferentes formas de analizar los problemas cotidianos desde el
anlisis grafico de entradas, procesos, condiciones y salidas pasando por la prueba de escritorio y luego la codificacin con el lenguaje C++.

OBJETIVOS ESPECIFICOS
Participar en la construccin del trabajo colaborativo final realizando aportes fundamentales y bien estructurados de acuerdo a los requerimientos de cada actividad. Respetar los aportes de los compaeros realizando crticas respetuosas y fundamentadas dentro de cada foro. Reconocer los diferentes compiladores utilizados en la plataforma y distinguir cual es el ms recomendado en cada uno de los casos. Dar respuesta utilizando de manera ordenada a un requerimiento empresarial aprovechando sus conocimientos de programacin.

Actividades a desarrollar El preste trabajo colaborativo contiene dos actividades:

1. Es importante que ustedes como futuros ingenieros adquieran las habilidades para la solucin de problemas informticos, para lo cual es necesario realicen o codifiquen los planteamientos que se encuentran al final de esta gua, estos se deben entregar como cdigo fuente y ejecutable Nota: es importante que se hagan los ejercicios a medida que se usted avance en los temas.

2. Para finalizar la actividad de construccin del proyecto, que se viene desarrollando desde los anteriores trabajos. Este se debe compilar y entregar como fuente y ejecutable, adems del manual de usuario (las instrucciones detalladas paso a paso para que el usuario final pueda ejecutarlo) Objetivos Desarrollar ejercicios que peritan perfeccionar las prcticas de programacin Culminar un desarrollo informtico Anexo Taller Ejercicios Realizar los siguientes Programas: Para los siguientes ejercicios debe Consultar la directiva de posicionamiento gotoxy (x,y), para darle ubicacin y presentacin a los programas, en los casos que ustedes crea necesarios 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 Ejemplo: Sea 7458, se debe enviar como 8547

#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; }

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> // Programa del da siguiente // 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(); }

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> // solucin al ejercicio numero capica// 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; }

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(); }

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(); }

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 7. #include<iostream> //declaracin de librera// using namespace std; int main() { int num=1,c,res,nc=0,rep=0; while(num!=0) { cout<<"Introduce un nmero: "; if(rep==1) { cout<<" --> Para salir oprime cero: "; } 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; } }

Lea los valores de los lados de un tringulo. Detecte y muestre un mensaje correspondiente a su tipo (EQUILTERO, ISSCELES, O ESCALENO) #include <stdio.h> #include <conio.h> //Definiendo las libreras// main() { float cat1, cat2, hyp; // definicin de las variables a utilizar//

printf("Ingrese la medida del primer cateto: "); scanf("%f", &cat1); printf("\n\r Ingrese la medida del segundo cateto: "); scanf("%f", &cat2); printf("\n\r Ingrese la medida de la hipotenusa: "); 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"); } if (( cat1 == cat2 ) && ( cat1 == hyp ) && ( cat2 == hyp )) { printf("\n\n\r Es un triangulo EQUILATERO"); } if (( cat1 != cat2 ) && ( cat1 != hyp ) && ( cat2 != hyp)) { printf("\n\n\r Es un triangulo ESCALENO"); } } printf(" Presione una tecla para salir: "); getch();

} 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

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<<"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; }

Elaborar un programa que convierta un nmero entero positivo, menor a 257 a sistema binario. /* Programa que escribe un nmero decimal en binario */ #include <stdio.h> #include <conio.h> int numerocifras(int n); void main() { int numci,n,i,cifra; printf("\nEscribe un nmero natural: ");scanf("%d",&n); printf("\n\nEl nmero en binario es:"); numci=numerocifras(n); i=0; while (n>=2) { cifra=n%2; gotoxy(numci-i,8); printf("%d",cifra); n=int(n/2); i++; } gotoxy(numci-i,8); printf("%d",n); } int numerocifras(int n) { int i; i=1; while (n>=2) { n=int(n/2); i=i+1; } return i; }

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.) 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 ms 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.h> #include<math.h> #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 - Logaritmo 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<<"Truncar:"<<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; } 14. Escriba un programa que visualice el siguiente dibujo
* *** ***** ******* *** ****** ************ ****

#include<iostream.h> #include<stdio.h> #include<conio.h> void main() { int x,f,b,k; clrscr(); x=5; for (f=1; f <x ; f++) { b=x - f; while (b >0 ) { cout<<" "; b=b-1; } k=2;

do { cout<<"x"; k++; } while(k <= 2 * f); cout<<"\n"; } getch(); }

También podría gustarte