Vistas de página en total

viernes, 19 de noviembre de 2010

LA CRIBA DE ERATOSTENES.

La criba de Eratóstenes es un algoritmo que permite hallar todos los números primos menores que un número natural dado N. Se forma una tabla con todos los números naturales comprendidos entre 2 y N y se van tachando los números que no son primos de la siguiente manera: cuando se encuentra un número compuesto que no ha sido tachado, ese número es declarado primo, y se procede a tachar todos sus múltiplos. El proceso termina cuando el cuadrado del mayor número confirmado como primo es mayor que N.

#include "stdafx.h"
#include
#include "conio.h"
#include "math.h"
#include
using namespace std;
void verificar(int criba[100],int c, int & cc){
int c2,i;
c2=c;
int r,nc,j;
for(i=2;i<=c;i++){ nc=criba[i]; for(j=i+1;j<=c;j++){ if (criba[j]%nc==0){ c=c-1; for(r=j;r<=c;r++){ criba[r]=criba[r+1]; } } } } cc=c; } void main(){ int criba[200],primo[200],i,N; cout<<"digite el mumero hasta el cual quiere la criba de eratostenes "; cin>> N;
int c=1;
criba[1]=2;
for(i=2;i<=N;i++){
if( i%2!=0){
c=c+1;
criba[c]=i;
}
}
int cc;
verificar(criba,c,cc);
for (i=1;i<=cc;i++){
cout<< criba[i]<<" ";
}
getch();
}

sábado, 6 de noviembre de 2010

OBTENER NÚMEROS ALEATORIOS UTILIZANDO LA FUNCIÓN RAND.

La función rand no nos brinda números aleatorios, funciona como un algoritmo que nos presenta siempre la misma secuencia de números, para lograr números de forma aleatoria tenemos que cambiar el primer numero de rand que funciona como un determinante de los demás. Ahora para lograr esto tenemos que utilizar la función, srand(time(NULL)), esta funcion nos permite cambiar el primer numero de rand.
para que nuestra funcion srand(time(NULL))pueda funcionar tenemos que incluir # incluide”time.h”

el siguiente algoritmo presenta un ejemplo de una matriz en forma aleatoria

#include "stdafx.h"
#include
#include "conio.h"
#include "math.h"
#include "Time.h"
#include "stdlib.h."
#include "time.h"
using namespace std;

void main(){

srand(time(NULL));
char a='A',p='P';
int mat[100][100],i,mm,nn,j,n,d,m,ganador,t,numero;
cout<<"diga numero de filas M: "; cin>>mm;
cout<<"diga el numero de columnas N: "; cin>>nn;
for (i=1;i<=mm;i++){
for (j=1;j<=nn;j++){

numero=rand()%(i*j);
mat[i][j]=numero;
}
}

for (i=1;i<=mm;i++){
cout<<"\n";
for (j=1;j<=nn;j++){

if (mat[i][j]%2==0){
cout< }
else {cout< }
}
}
getch();
}

martes, 2 de noviembre de 2010

BONIFICACIÓN PARA UN NUMERO DE EMPLEADOS N.

En este algoritmo se pide la cantidad de empleados y las horas extras trabajadas por cada uno, de igual forma el usuario digita el sueldo, el algoritmo debe mostrar como resultado la cantidad de dinero de cada empleado

#include "stdafx.h"
#include
#include "conio.h"
#include "math.h"
using namespace std;

void main(){
double fj,sue,num,f,i,e, a, pot,cbon,bon=0;
cout<<"numero de empleados: "; cin>>num;
cout<<"digite el sueldo: "; cin>>sue;
fj=0;
cbon=0;
for (i=1;i<=num;i=i+1){ cout<<"\ndiguite numero de oras extras para el empleado : "<>e;
cout<<"ndigite en numero de horas ausente para este empleado "; cin>>a;
f=0;
f=e- 2*a/3;
if (f>40){
bon=sue*0.05;
}
else {
if ((30 bon=sue*0.04;
}
else {
if ((20 bon=sue*0.03;
}
else {
if ((10 bon=sue*0.02;
}
else {
if ((5 bon=sue*0.01;
}
else {
if (f<=5){
bon=0;
fj=fj+1;
}
}
}
}
}
}
cout<<"\nla bonificacion del trabajador : "< cbon=cbon+bon;
pot=bon/(num-fj);
}
cout << "\nel numero de empleados sin bonificacion es : "< cout<<"\n la bonificacion otorgada es de : $"< cout<<"el promedio otorgado por trabajador es :"< getch();
}

DOS NUMEROS AMIGOS

Dos números amigos son dos enteros positivos a y b tales que a es la suma de los divisores propios de b y b es la suma de los divisores propios de a. (la unidad se considera divisor propio, pero no lo es el mismo número).

Un ejemplo es el par (220, 284), ya que:

* Los divisores propios de 220 son 1, 2, 4, 5, 10, 11, 20, 22, 44, 55 y 110, que suman 284.
* Los divisores propios de 284 son 1, 2, 4, 71 y 142, que suman 220.

#include "stdafx.h"
#include
#include "conio.h"
#include "math.h"
using namespace std;

void main(){
int i,j,c1,c2,n1,n2;
cout<<"digite numero 1"; cin>>n1;
cout<<"digite numero 2"; cin>>n2;
c1=0;
c2=0;
for(i=1;i<=n1/2;i=i+1){
if (n1 % i==0){
c1=c1+i;
}
}
for(j=1;j<=n2/2;j=j+1){
if (n2 %
j==0){
c2=c2+j;
}
}
if (c1==n2){
cout<<"el numero es amigo";
}
else {
cout<<"el numero no es amigo";
}
getch();
}

OFICINA DE SEGURIDAD SOCIAL

Este algoritmo trata de llevar un registro de las personas accidentadas en una ciudad, en ella de registra su edad y si pertenece a la ciudad donde se accidento. Como dato de salida debe presentar el porcentaje de conductores menores de 25 años, el porcentaje de mujeres entre los 18 y 30 años y el porcentaje de conductores de otra ciudad



#include "stdafx.h"
#include
#include "conio.h"
#include "math.h"
using namespace std;

void main(){
float pcf, pem,eh,cfc,fc,cem,em,cm,s,e,i,a,jj,jjj,mjj;
cout<<"digite el numero de acciidentes "; cin>>a;

jjj=0;
jj=0;
cem=0;
cfc=0;
cm=0;
for( i=1;i<=a;i=i+1){ cout<<"\n\ndatos parara la persona "<>s;
if (s==2){
cm=cm+1;
cout<<"cuantos años tiene usted"; cin>>em;
if ( em<25){ jj=jj+1; if ((em>18) & (em<30)){ cem= cem+1; } } } else { cout<<"cual es su edad"; cin>> eh;
if (eh<25){ jjj=jjj+1; } } cout<<"es conductor de otra ciudad -SI=1 ó NO=2- "; cin>>fc;
if (fc==1){
cfc=cfc+1;
}
}
mjj= (jj+jjj)*100/a;
pem= cem*100/a;
pcf= cfc*100/a;
cout<< "\nel % de conductores menores de 25 años es : " < cout<< "\n el porcentaje de mujeres entre los 18 y 30 años es : "< cout<<"\n el porcentaje de conductores de otra ciudad es de : " << pcf;
getch();
}

Encriptamiento

El ministerio de defensa de los Estados Unidos es la agencia encargada de todo lo referente al
armamento nuclear del país. Esta agencia guarda celosamente los códigos de lanzamiento y
detonación de sus silos nucleares (bombas atómicas). Previendo una posible infiltración de
espías iraquíes, la agencia desea incrementar el nivel de seguridad de estos códigos
encriptándolos antes de ser guardados en sus oficinas.
El proceso de encriptamiento funciona de la siguiente manera. Se requiere el número a
encriptar, por ejemplo el número 7890; y se debe definir la clave de encriptamiento, por
ejemplo el número 1. A cada uno de los digitos del número a encriptar se le debe sumar el
valor del código de encriptamiento; para el ejemplo: el 7 se vuelve 8, el 8 se vuelve 9, el 0 se
vuelve 1. Cuando la suma de el dígito del código a encriptar con la clave arroje como resultado
un número igual o mayor que diez se debe eliminar el dígito del número que representa las
decenas y se deja solo el dígito que representa las unidades; para el ejemplo, 9+1=10, se
elimina el 1 y se trabaja solo con el 0. De acuerdo a lo siguiente, el código ya encriptado sería
el número 8901.
Desarrolle un programa en el lenguaje de programación C que le ayude al ministerio a
encriptar sus códigos de lanzamiento. El programa debe recibir como dato el número entero a
encriptar (número de 5 cifras) y un número entero en el rango del 1 al 9 que hará las veces de
la clave de encriptamiento. La aplicación debe arrojar como salida el número ya encriptado
(debe guardarse en una variable entera).
Tenga en cuenta que la clave de encriptamiento no puede ser el número 0; y además, que este
valor no puede convertir en 0 al primer digito del código a encriptar. En caso de que alguna de
estas situaciones se presente el programa debe indicarle al usuario que no se pudo realizar el
encriptamiento de la información.

#include "stdafx.h"
#include
#include "conio.h"
#include "math.h"

using namespace std ;

void main()
{
int a,b,c,d,e,f,g,h,i,j, cr1,cr2,cr3,cr4,cr5,n1,n2,n3,n4,n5,w1,w2,w3,w4,w5,p;
cout<< "escriba el numero a encriptar\n\n"; cin>> a;
cout<< "digite numero clave de emcriptamiento\n\n"; cin>>p;
b= a%10;
c= a/10;
d= c%10;
e= c/10;
f= e%10;
g= e/10;
h= g%10;
i= g/10;
j= i%10;

cr1=b+p;
cr2=d+p;
cr3=f+p;
cr4=h+p;
cr5=j+p;
if (a>99999){
cout<<"el numero no se puede emcriptar tiene mas de 5 cifras";} else { if (cr5==10){ cout<< "el numero no se puede encriptar, por favor digite otro numero" ; } else { if (cr1==10) { w1= 0;} else { if (cr1>10){
w1=cr1%10;}
else {
w1=cr1;}}
if (cr2>=10){
w2=cr2%10;}
else {
w2=cr2;}
if (cr3>=10){
w3=cr3%10;}
else
{w3=cr3;}
if (cr4>=10){
w4=cr4%10;}
else {
w4=cr4;}
if (cr5>=10) {
w5=cr5%10;}
else {w5=cr5;}

n1=w1;
n2=w2*10;
n3=w3*100;
n4=w4*1000;
n5=w5*10000;

f=n1+n2+n3+n4+n5;
cout<< "el numero enncriptado es \n\n"<
#include "conio.h"
#include "math.h"

using namespace std ;

void main()
{
int a,b,c,d,e,f,g,h,i,j, cr1,cr2,cr3,cr4,cr5,n1,n2,n3,n4,n5,w1,w2,w3,w4,w5,p;
cout<< "escriba el numero a encriptar\n\n"; cin>> a;
cout<< "digite numero clave de emcriptamiento\n\n"; cin>>p;
b= a%10;
c= a/10;
d= c%10;
e= c/10;
f= e%10;
g= e/10;
h= g%10;
i= g/10;
j= i%10;

cr1=b+p;
cr2=d+p;
cr3=f+p;
cr4=h+p;
cr5=j+p;

if (a>99999){
cout<<"el numero no se puede emcriptar tiene mas de 5 cifras";} else { if (cr1==cr2|| cr1==cr3|| cr1==cr4||cr1==cr5 || cr2==cr3 ||cr2==cr4 || cr2==cr5|| cr3==cr4|| cr3==cr5||cr4==cr5){ cout<< "el numero no se puede encriptar, tiene digitos repetidos";} else { if (cr1==10){ cout<< "el numero no se puede encriptar, por favor digite otro numero" ; } else { if (cr1>=10) {
w1=cr1%10;}
else {
w1=cr1;}
if (cr2>=10){
w2=cr2%10;}
else {
w2=cr2;}
if (cr3>=10){
w3=cr3%10;}
else
{w3=cr3;}
if (cr4>=10){
w4=cr4%10;}
else {
w4=cr4;}
if (cr5==10){
w5=0;}
else {
if (cr5>10){
w5= cr5%10;}
else {
w5=cr5;}}

n1=w1*10000;
n2=w2*1000;
n3=w3*100;
n4=w4*10;
n5=w5*1;

f=n1+n2+n3+n4+n5;
cout<< "el numero enncriptado es \n\n"< }}}

getch();
}

Nota promedio de un estudiante: dificultad 1

Desarrolle un algoritmo en C que le ayude a un profesor a calcular la nota definitiva de un estudiante. El curso que dicta el profesor tiene 5 notas: primer parcial (20%), segundo parcial (20%), examen final (10%), actividades (30%) y laboratorios (20%). El primer parcial está compuesto por una parte teorica(80%) y otra práctica (20%). Adicionalmente, el profesor decidió que la parte práctica del primer parcial contara también como un laboratorio. Incluyendo la parte del primer parcial, se tomaron 4 notas de laboratorio. En el componente de actividades se tomaron 4 notas, pero el profesor decidio que la primera actividad (quiz) valiera doble, lo que significa que al final se tomaron 5 notas. El algoritmo a desarrollar debe pedir al profesor la menor cantidad de notas posible.

#include "stdafx.h"
#include
#include "conio.h"
#include "math.h"

using namespace std ;

void main()
{
float a,b,c,d,e,f,g,h,i,j,k,p1,p2,p3,ac,lb, df;
cout<< "primer parcial, nota teorica\n"; cin>>a;
cout<< "nota practica del primer parcial\n"; cin>>b;
cout<< "nota del segundo parcial\n"; cin>>c;
cout<< "nota del tercer parcial\n"; cin>>d;
cout<<"notas de actividades, nota del quiz\n"; cin>>e;
cout<< "segunda actividad\n"; cin>>f;
cout<< "tercera actividad\n"; cin>>g;
cout<< "cuarta actividad\n"; cin>>h;
cout<< "notas de laboratorios, primera nota\n"; cin>>i;
cout<< "segunda nota de laboratorio\n"; cin>>j;
cout<< "tercera nota de laboratorio\n"; cin>>k;
p1=((a*0.8)+(b*0.2))*0.2;
p2=(c*0.2);
p3=(d*0.1);
ac=(((2*e)+f+g+h)/5)*0.3;
lb=((i+j+k+b)/4)*0.2;
df= p1+p2+p3+ac+lb;
cout<< "la nota del estudiante es\n";
cout<
getch ();
}