Algoritmia-Ejercicios introductorios.

Iniciado por h0oke, 13 Junio 2009, 23:26 PM

0 Miembros y 1 Visitante están viendo este tema.

h0oke

Variables Simples.

Problema 1: Diseñe un diagrama para resolver una ecucación cuadrática.

Problema 2: N! se define como n!=1*2*3*4...*(n-1)*n, diseñe un algoritmo que calcule n! con n>=0.

Problema 3:Dada una lista de N números, desarrollar un algoritmo que permita determinar el más grande.

Problema 4: Diseñe un programa para encontrar el segundo número más grande de N números distintos.

Problema 5: Diseñe un programa que permita descomponer un número N en sus dígitos individualmente.


Problema 6: Dado un número real mostrar la cantidad de dígitos de la parte entera y luego la cantidad que posee la parte decimal.

Problema 7: Dado un número NUM que se encuentra en base B con 1<B<10, mostrar todos los enteros entre 0 y NUM en base B.

Ejemplo: NUM=10 B=2 Mostrar: 0 1 10
             NUM=22 B=3 Mostrar: 0 1 2 10 11 12 20 21 22

Problema 8: Desarrollar un algoritmo para generar los primeros K primeros números primos de la serie Fibonacci.

Ejemplo:

K=6
1 2 3 5 13 89

Problema 9: Diseñar un diagrama que dado un número lo descomponga en sus factores primos, informando la cantidad de veces que dicho factor primo integra el número.


La idea es ir resolviendo los problemas de a poco en distintos lenguajes.

Se permitirán diagramas y pseudocódigo.






Jubjub

#1
EL 2 seria asi?:

Python
Código (python) [Seleccionar]

n = int(raw_input())
a = 1
while (n!=0):
   a = a * n
   n = n - 1
print str(a)


El 5 me quedo de esta forma:
Código (python) [Seleccionar]

n = raw_input()
a = 1
tmp = ""
while (a<=len(n)):
    tmp += n[len(n)-a]
    a +=1
print tmp


gracias por los ejercicios :D
Jugando con Fósforoshacking con un tono diferente


.
porno

h0oke

#2
Primeros 3 en c:

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


int main()
{
   int a,b,c;
   double d,x1,x2,x;
   printf("Ingrese A: ");
   scanf("%d",&a);
   printf("Ingrese B: ");
   scanf("%d",&b);
   printf("Ingrese C: ");
   scanf("%d",&c);
   d=(pow(b,2))-(4*a*c);
   printf("D: %f",d);
   if(d>0)
   {
       x1=(-b+sqrt(d))/(2*a);
       x2=(-b-sqrt(d))/(2*a);
       printf("X1: %f X2: %f ",x1,x2);
   }
   else
   {
       if(d==0)
       {
           x=-b/(2*a);
           printf("Unica Solucion: %f",x);
       }
       else
       {
           printf("No hay solucion en reales");
       }
   }

   return 0;
}


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

int main()
{
   int f=1;
   int n,i;
   printf("Ingrese n: ");
   scanf("%d",&n);
   for(i=0;i<n;i++)
   {
       f*=i+1;
   }
   printf("F: %d ",f);
   return 0;
}


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

int main()
{
   int n,x,big,i;
   printf("N: ");
   scanf("%d",&n);
   printf("X: ");
   scanf("%x",&x);
   big=x;
   for(i=1;i<n;i++)
   {
       printf("X: ");
       scanf("%x",&x);
       if(x>big)
           big=x;
   }
   printf("El mas grande : %d",big);
   return 0;
}


A partir del 4:

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

int main()
{
   int n,p,s,aux,i,a;
   printf("Ingrese cantidad: ");
   scanf("%d",&n);
   printf("Ingrese Primero: ");
   scanf("%d",&p);
   printf("Ingrese Segundo: ");
   scanf("%d",&s);
   if(p<s)
   {
       aux=p;
       p=s;
       s=aux;
   }
   for(i=0;i<n-2;i++)
   {
       printf("Ingrese Numero: ");
       scanf("%d",&a);
       if(p<a)
       {
           s=p;
           p=a;
       }
       else
       {
           if(s<a)
               s=a;
       }
   }
   printf("Segundo mas grande: %d",s);

   return 0;
}


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

int main()
{
   int num,n,d;
   printf("Ingrese Numero: ");
   scanf("%d",&n);
   num=n;
   while(num!=0)
   {
       d=num%10;
       num=num/10;
       printf("%d, ",d);
   }
   return 0;
}


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


int main()
{
    int PE,PF,CE,CD;
    printf("Numero: ");
    scanf("%d.%d",&PE,&PF);
    CE=0;
    CD=0;
    printf("%d\n",PE);
    printf("%d\n",PF);
    while(PE!=0)
    {
        PE=PE/10;
        CE++;
    }
    while(PF!=0)
    {
        PF=PF/10;
        CD++;
    }
    printf("Parte entera: %d, Parte decimal: %d",CE,CD);
    return 0;
}

h0oke

#3
Jubjub Me olvidé, pon el lenguaje que utilizas, al parecer es python y está muy bien.  :P Luego postearé algunos con vectores, luego matrices y asi...

Jubjub

Perfecto, quizas ahora haga alguno mas :D
Gracias ;)
Jugando con Fósforoshacking con un tono diferente


.
porno

h0oke

OK... cualquier duda consulten y trataremos de resolver entre todos.

Jubjub

Ahi esta mi version del 5, espero que sea eficiente ;D
Jugando con Fósforoshacking con un tono diferente


.
porno

h0oke

#7
Supongo que esta bien el 5, ya que nose manejar muy bien python igualmente lo analicé y parece estar correcto. Buen trabajo, dentro de poco tendremos mas codes.

h0oke

Los ultimos 3 en c++:
Código (cpp) [Seleccionar]
#include <iostream>

int main()
{
    int NUM,B,D,N;
    std::cout<<"Ingrese numero"<<std::endl;
    std::cin>>NUM;
    std::cout<<"Ingrese B"<<std::endl;
    std::cin>>B;
    for(int i=0;i<=NUM;i++)
    {
        N=i;
        do
        {
            D=N%10;
            N=N/10;
        }while((N=0)||(D>=B));
        if(D<B)
            std::cout<<i<<std::endl;
    }
    return 0;
}

Código (cpp) [Seleccionar]
#include <iostream>

int main()
{
    int K,P,S,C,N,i;
    P=1;
    S=1;
    C=1;
    std::cout<<"Ingresa cantidad"<<std::endl;
    std::cin>>K;
    std::cout<<"1"<<",";
    while(C<K)
    {
        N=P+S;
        i=2;
        while(N%i!=0){i++;}
        if(i==N)
        {
            std::cout<<N<<",";
            C++;
        }
        P=S;
        S=N;
    }
    return 0;
}


Código (cpp) [Seleccionar]
#include <iostream>

int main()
{
    int NUM,N,i,c;
    std::cout<<"Ingrese NUM"<<endl;
    std::cin>>NUM;
    N=NUM;
    i=2;
    while(N!=1)
    {
        c=0;
        while(N%i==0)
        {
            c++;
            N=N/i;
        }
        if(c!=0){std::cout<<i<<","<<c<<std::endl;}
        i++;
    }
    system("pause");
    return 0;
}

leogtz

#9
El 2 en Batch:
Código (dos) [Seleccionar]
@echo off
:code
set /p "numero=Numero : "
if not defined numero (goto:code)
if %numero% equ 0 (
echo.Error
exit /b 1
)
set /a "factorial=1"
for /l %%_ in (1 1 %numero%) do (
set /a factorial=factorial * %%_
)
echo.Factorial : %factorial%
pause>nul
exit /b 0

Salida:
Numero : 5
Factorial : 120


El problema 3 en Batch:
Código (dos) [Seleccionar]
@echo off
setlocal enabledelayedexpansion
:code
set /p "numero=Numeros : "
if not defined numero (goto:code)
for /l %%_ in (1,1,%numero%) do (set /p "numeros[%%_]=numeros[%%_] : ")
set "mayor=!numeros[1]!"
for /l %%_ in (1,1,%numero%) do (
if !numeros[%%_]! geq !mayor! (set "mayor=!numeros[%%_]!")
)
set "mayor"
pause>nul
exit /b 0


Salida:
Numeros : 5
numeros[1] : 34
numeros[2] : 6
numeros[3] : 36
numeros[4] : 567
numeros[5] : 23
mayor=567


El 5 en Batch:
Código (dos) [Seleccionar]
@echo off
setlocal enabledelayedexpansion
:code
set /p "numero=Numero : "
if not defined numero (goto:code)
set "numero_=%numero%"
set /a "contador-=1"
:bucle
set "numero=%numero:~1%"
set /a "contador+=1"
if defined numero (goto:bucle)
:end
for /l %%_ in (0,1,%contador%) do (<nul set /p "=!numero_:~%%_,1! ")
pause>nul
exit /b 0


Salida:
Numero : 314592
3 1 4 5 9 2


El 6 en Batch:
Código (dos) [Seleccionar]
@echo off
setlocal enabledelayedexpansion
:code
set /p "numero=Numero : "
if not defined numero (goto:code)
:: Checar que sea un numero real :
echo %numero% | find "." > nul 2>&1 || (
echo.El numero no es real.
exit /b 1
)
for /f "tokens=1-2 delims=." %%^1 in ("%numero%") do (
call:lenght %%^1
echo.El numero "!numero!" tiene !contador! de parte entera.
call:lenght %%^2
echo.El numero "!numero!" tiene !contador! de parte decimal.
)
pause>nul
exit /b 0
:lenght
set "cadena=%*"
set /a "contador=0"
:lenght2
set "cadena=%cadena:~1%"
set /a "contador+=1"
if defined cadena (goto:lenght2)
goto:eof

Salida:
Numero : 123.456456345
El numero "123.456456345" tiene 3 de parte entera.
El numero "123.456456345" tiene 9 de parte decimal.


Saludos.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com