Tema destacado: Recuperar cuenta de Google, GMail, Youtube
Autor
|
Tema: Algoritmia-Ejercicios introductorios. (Leído 6,431 veces)
|
h0oke
Desconectado
Mensajes: 2.058
Coder ~
|
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.
|
|
|
|
« Última modificación: 14 Junio 2009, 01:53 por Emt.dev »
|
En línea
|
|
|
|
Jubjub
Desconectado
Mensajes: 708
Lay Ladie lay,...
|
EL 2 seria asi?: Python 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: n = raw_input() a = 1 tmp = "" while (a<=len(n)): tmp += n[len(n)-a] a +=1 print tmp gracias por los ejercicios 
|
|
|
|
« Última modificación: 14 Junio 2009, 01:47 por Jubjub »
|
En línea
|
|
|
|
h0oke
Desconectado
Mensajes: 2.058
Coder ~
|
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; }
|
|
|
|
« Última modificación: 14 Junio 2009, 02:39 por Emt.dev »
|
En línea
|
|
|
|
h0oke
Desconectado
Mensajes: 2.058
Coder ~
|
Jubjub Me olvidé, pon el lenguaje que utilizas, al parecer es python y está muy bien.  Luego postearé algunos con vectores, luego matrices y asi...
|
|
|
|
« Última modificación: 14 Junio 2009, 01:18 por Emt.dev »
|
En línea
|
|
|
|
Jubjub
Desconectado
Mensajes: 708
Lay Ladie lay,...
|
Perfecto, quizas ahora haga alguno mas  Gracias 
|
|
|
|
|
En línea
|
|
|
|
h0oke
Desconectado
Mensajes: 2.058
Coder ~
|
OK... cualquier duda consulten y trataremos de resolver entre todos.
|
|
|
|
|
En línea
|
|
|
|
|
|
h0oke
Desconectado
Mensajes: 2.058
Coder ~
|
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.
|
|
|
|
« Última modificación: 14 Junio 2009, 01:56 por Emt.dev »
|
En línea
|
|
|
|
h0oke
Desconectado
Mensajes: 2.058
Coder ~
|
Los ultimos 3 en c++: #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; } #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; } #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; }
|
|
|
|
|
En línea
|
|
|
|
Leo Gutiérrez.
. . .. ... ..... ........ ............. .....................
Colaborador
 
Desconectado
Mensajes: 2.968
/^$/
|
El 2 en Batch: @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: @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[% style="color: #448888;">%_]! geq !mayor! (set "mayor=!numeros[% style="color: #448888;">%_]!") ) 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: @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_:~% style="color: #448888;">%_,1! ") pause>nul exit /b 0 Salida: Numero : 314592 3 1 4 5 9 2 El 6 en Batch: @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.
|
|
|
|
« Última modificación: 15 Junio 2009, 04:34 por Leo Gutierrez. »
|
En línea
|
|
|
|
h0oke
Desconectado
Mensajes: 2.058
Coder ~
|
Muchas gracias por su cooperación ahora pasamos al siguiente tema. VARIABLES INDIZADAS UNIDIMENSIONALES Problema1: Un vector está compuesto por una cantidad N de números distintos. Se deberá mostrar los dos más próximos. Problema2: Inserta un elemento X dentro de un vector ordenado de N elementos. *En caso de que exista dar su posición. a) Dar una solución implementando búsqueda secuencial. b) Dar una solución implementando búsqueda binaria. Problema3: Diseñar un algoritmo que permita ordenar una lista de alumnos con sus correspondientes calificaciones obtenidas en un parcial. Se destaca que el elemento de nombre(X) tiene su correspondiente nota(X). Problema 4: Diseñar un algoritmo que ordene números distintos de 0 mientras se vayan ingresando. Problema 5: Dado un número en base B, donde 1<B<10, generar todos los enteros entre 0 y el número dado en base B. Tener en cuenta el problema nº7 de variables simples.
|
|
|
|
« Última modificación: 17 Junio 2009, 01:44 por Emt.dev »
|
En línea
|
|
|
|
h0oke
Desconectado
Mensajes: 2.058
Coder ~
|
Lenguaje C:/*Problema1: Un vector está compuesto por una cantidad N de números distintos. Se deberá mostrar los dos más próximos.*/ #include <stdio.h> #include <stdlib.h> #include <math.h> int main(int argc, char *argv[]) { int x[100]; int i,j,n,p1,p2,d,men; printf("Ingrese cantidad:"); scanf("%d",&n); for(i=0;i<n;i++) { printf("Ingrese numero\n"); scanf("%d",&x[i]); } men=abs(x[0]-x[1]); p1=1; p2=2; for(i=0;i<n;i++) { for(j=0;j<n;j++) { if(i!=j) { d=abs(x[i]-x[j]); if(d<men) { men=d; p1=i; p2=j; } } } } printf("%d,%d",p1,p2); getch(); return 0; } /*Problema2: Inserta un elemento X dentro de un vector ordenado de N elementos. *En caso de que exista dar su posición. a) Dar una solución implementando búsqueda secuencial.*/ #include <stdio.h> #include <stdlib.h> int main() { int vector[]={1,1,3,5,4,5,6,3,9,10}; int i,j,k; int n=9; for(i=1;i<=10;i++) { j=1; while(vector[i]!=vector[j]) { j++; } if(j==i) { printf("Numero: %d, ",vector[i]); for(k=i;k<=n;k++) { if(vector[i]==vector[k]) printf("%d\n",k); } } } return 0; }
|
|
|
|
« Última modificación: 17 Junio 2009, 02:05 por Emt.dev »
|
En línea
|
|
|
|
|
j retirado
|
Edito: le agregue la opcion GeSHi, jeje. Ahora aprendi y queda mas lindo el código. 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 #include <stdio.h> #include <stdlib.h> #include <math.h> #define FALSE 0 #define TRUE !FALSE typedef int Bool; int fib(double n); Bool es_primo(int num); int main() { int n; printf("Cantidad de primos a obtener: "); scanf("%d", &n); int i=0, j; for(j=0; j<n;) { if( es_primo(fib(i)) ) { printf("%d ", fib(i)); j++; } i++; } printf("\n\n"); system("pause"); return 0; } int fib(double n) { double a = 1/sqrt(5); double b = (1+sqrt(5))/2; double c = (1-sqrt(5))/2; double fib_n = a*pow(b, n) - a*pow(c, n); return fib_n; } Bool es_primo(int num) { Bool b = TRUE; int i, divisores=0; if(num == 0) return b=FALSE; for(i=1; i<=num; i++) { if((num%i) == 0) divisores++; if(divisores > 2) { return b=FALSE; } } return b; }
|
|
|
|
« Última modificación: 28 Julio 2009, 01:03 por j.rm »
|
En línea
|
|
|
|
ny0x
Desconectado
Mensajes: 336
|
el 2 en asm (el mas facil) conforme vaya mejorando mi uso de arrays pongo los otros (claro si no me da weba  ) format pe console include 'c:\fasm\include\win32ax.inc' entry main .data number dd ? .code main: invoke printf,"Escribe un numero, 0 para salir: " add esp,4 invoke scanf,"%d",number add esp,8 cmp [number],0 jle salir push [number] call factorial invoke printf,"El factorial es %d",eax add esp,8 push 10 call [putchar] jmp main salir: ret factorial: push ebp mov ebp,esp mov ecx,[ebp + 8] mov eax,1 fact@L1: cdq mul ecx dec ecx cmp ecx,0 jg fact@L1 pop ebp retn 4 section '.idata' import data readable library msvc,'msvcrt.dll' import msvc,printf,'printf',scanf,'scanf',putchar,'putchar'
|
|
|
|
« Última modificación: 21 Junio 2009, 05:15 por x0ʎu »
|
En línea
|
|
|
|
h0oke
Desconectado
Mensajes: 2.058
Coder ~
|
x0ʎu Muchas gracias, a esto quería llegar... Diferentes soluciones, en diferentes lenguajes.
|
|
|
|
|
En línea
|
|
|
|
|
|