C

chodra

Usuario (Argentina)

Primer post: 2 mar 2011Último post: 4 mar 2015
2
Posts
420
Puntos totales
52
Comentarios
Mi propio programa de sistemas de numeracion - Programacion
Mi propio programa de sistemas de numeracion - Programacion
Apuntes Y MonografiasporAnónimo3/4/2015

Bueno gente, después de mucho tiempo sin postear les traigo algo hecho pura y exclusivamente por mi jaja. Se trata de un programita para pasar convertir sistemas de numeración. Los sistemas de numeración a los que hace referencia el programa son el decimal, el binario, el octal y el hexadecimal. Aclaro que este programa fue realizado en Lazarus, que es bastante parecido al Turbo Pascal asi que el código que utilicé es el mismo. Vamos con un poco de teoría De Wikipedia Un sistema de numeración es un conjunto de símbolos y reglas de generación que permiten construir todos los números válidos. El sistema de numeración decimal, también llamado sistema decimal, es un sistema de numeración posicional en el que las cantidades se representan utilizando como base aritmética las potencias del número diez. El conjunto de símbolos utilizado (sistema de numeración arábiga) se compone de diez cifras : cero (0) - uno (1) - dos (2) - tres (3) - cuatro (4) - cinco (5) - seis (6) - siete (7) - ocho (8) y nueve (9). El sistema numérico en base 8 se llama octal y utiliza los dígitos del 0 al 7. En informática a veces se utiliza la numeración octal en vez de la hexadecimal. Tiene la ventaja de que no requiere utilizar otros símbolos diferentes de los dígitos. Sin embargo, para trabajar con bytes o conjuntos de ellos, asumiendo que un byte es una palabra de 8 bits, suele ser más cómodo el sistema hexadecimal, por cuanto todo byte así definido es completamente representable por dos dígitos hexadecimales. El sistema binario, llamado también sistema diádico en ciencias de la computación, es un sistema de numeración en el que los números se representan utilizando solamente las cifras cero y uno (0 y 1). Es uno de los que se utiliza en las computadoras, debido a que trabajan internamente con dos niveles de voltaje, por lo cual su sistema de numeración natural es el sistema binario (encendido 1, apagado 0). El sistema hexadecimal (a veces abreviado como Hex) es el sistema de numeración posicional que tiene como base el 16. Su uso actual está muy vinculado a la informática y ciencias de la computación, pues los computadores suelen utilizar el byte u octeto como unidad básica de memoria. Acá abajo les dejo una tablita para que se ubiquen comparando los 15 primeros números entre dichos sistemas Para poder realizar el programa, es necesario saber como pasar de un sistema a otro mediante métodos de conversión. Los que yo utilicé fueron los siguientes: Suma Ponderada División Reiterada Método Directo DIVISIÓN REITERADA Este método de conversión sirve para pasar de Sistema decimal a cualquier otro sistema, es decir, de decimal a binario, de decimal a octal y de decimal a hexadecimal. Esto pasa porque se opera con aritmética de la base de partida (base 10). Veamos un ejemplo: Como podems observar, en este caso la base de llegada es 2 ya que queremos pasar un numero en decimal a binario. La base de partida es 10, por lo tanto se divide entre 2 utilizando aritmética de base decimal. En general, los pasos para convertir de un sistema a otro mediante el método de la divisón reiterada son:1) Identificar B (base de partida) 2) Identificar B' (base de llegada) 3) Establecer la siguiente relación (B')10____________(B*)B Esto quiere decir " B' en base 10 es igual a B* en base B", siendo B* un valor equivalente en base B a B' en base 10 4) Dividir enteramente el número a convertir por B* hasta que el número sea menor. Una vez que sea menor, dividir nuevamente por última vez. 5) Cada uno de los restos tiene un valor. Esos valores están en base B, por lo que los tenemos que pasar a base B' mediante la tabla de equivalencias que ya les puse arriba. Ej: si un resto es 13 y queremos pasar de decimal a hexadecimal, entonces ese 13 es reemplazado por "D". 6) Agrupar cada uno de los restos de las divisiones enteras realizadas anteriormente para así obtener el resultado. En nuestro ejemplo: Nota: el numero a convertir es (100)10 a base binaria 1) B=10. 2) B'=2. 3) (B')10______________(B*)B (2)10_____________(2)10 "2 en base 10, es igual a 2 en base 10" 4) 5) El cero en base 10 es igual a cero en base 2 y el 1 en base 10 es igual a 1 en base 2. 6) (100)10___________(1100100)2 SUMA PONDERADA Este método conviene ser utilizado para pasar un numero de cualquier base a base decimal ya que se opera con base de llegada B'. Los pasos son los siguientes: 1) Identificar B (base de partida) 2) Identificar B' (base de llegada) 3) Establecer la siguiente relación (B)10____________(B*)B' Esto quiere decir " B en base 10 es igual a B* en base B' ", siendo B* un valor equivalente en base B a B en base 10 4) Se multiplica cada dígito, empezando desde el que está más a la izquierda por B elevado a un exponente h que comienza desde la cantidad de dígitos menos 1 hasta cero. 5) Operando con aritmética de base de llegada, obtenemos el resultado. Ejemplo Nota:El número a convertir es (3034,75)8 a base 10. 1) B=8 2) B'=10 3) (B)10____________(B*)B' (8)10____________(8)10 4) y 5) MÉTODO DIRECTO Y por último pero no menos importante, el método directo. Este método puede ser utilizado solo para conversiones de base binaria a base octal o hexadecimal. Esto se debe a que la segunda y la tercera son bases con potencia exacta de la primera, es decir que 2^3=8 y 2^4=16. Los pasos son los siguientes: 1) Si se quiere convertir del binario al octal, se pueden tomar grupos de a 3 dígitos del numero a convertir. Por ejemplo, si queremos convertir el numero 111 a base 8, no es necesario tomar digito por digito individualmente, si no que se pueden tomar los 3. Si se quiere convertir de binario a hexadecimal, se pueden tomar de a 4 digitos. 2) Establecer las equivalencias entre los digitos de base 2 y su correspondiente valor en base 8 o en base 16. 3) Agrupar estos ultimos para obtener el resultado. Ejemplo Nota: Pasar el número 100101011 que está en base 2, a base 8 1) Agrupo de a 3 digitos: 100, 101, 011 2) (100)2=(4)8 (101)2=(5)8 (011)2=(3)8 3) Agrupando, (100101011)2=(453)8 Y para pasarlo a hexadecimal seria lo mismo pero tomando de a 4 digitos. (1011)2=(B)16 (10010)2=(B)16 Agrupando, quedaría: (100101011)2=(12B)16 Bueno ahora que ya sabemos la teoría podemos realizar el programa. Acuerdense que el lenguaje solamente opera con aritmética decimal, es decir que si quieren pasar de binario a hexadecimal, primero tienen que pasar de binario a decimal y después de decimal a hexadecimal. Les dejo algunas capturas de pantalla para que vean de que se trata: Antes que nada, quiero decir que el programa esta hecho en Lazarus, lo pueden descargar desde la página oficial o de algun otro lado. Y si tienen turbo pascal también es compatible ya que los archivos están en formato .PAS. Descargá lazarus para tu sistema operativo acá Bueno gente, después de estas capturas les dejo el programa ya terminado para que puedan convertir de una base a cualquier otra. Les pido por favor que si encuentran que algo no funciona bien me avisen asi lo reviso y cambio lo que tenga que cambiar. El archivo para descargar es un ejecutable, es decir que en teoria les tiene que funcionar a todos. A este programita lo hice en Lazarus, por lo que tambien les voy a dejar todo para que lo puedan correr y editar a su gusto. Me gustaría que recomienden el post a sus seguidores ya que este tipo de conocimientos debe saberse. Bah, en realidad, todo conocimiento debe saberse, asi que bueno estaria bueno que todos puedan ver como se resuelven este tipo de problemas. Descarga todos los archivo Descarga solamente el código en lenguaje Pascal Descarga solamente el programa Contraseña del .rar: chodrataringa UNA PARTE del Código del programa program sistemas; uses crt; var i,l,z,o,aux,resto,h,num1,betasterisco,basepartida,basellegada,sumapond,mult,long,band: integer; num,n,resto1,resultado,t,a,num2,dig: string; v: array [1..10] of string; begin clrscr; textcolor (lightred); write ('HOLA, ESTE PROGRAMA FUE CREADO POR CHODRA PARA '); textcolor (lightblue); write ('TARINGA!'); textcolor (lightred); writeln ('. OJALA QUE TE SIRVA Y TE GUSTE '); textcolor (white); textmode (CO80); highvideo; repeat write ('Ingrese el numero a convertir: '); readln(num); num2:=num; val (num,num1,h); resultado:=' '; n:=' '; sumapond:=0; writeln ('Que desea convertir? '); writeln ('De decimal a binario (Pulse 1) '); writeln ('De decimal a octal (Pulse 2) '); writeln ('De decimal a hexadecimal (Pulse 3) '); writeln ('De hexadecimal a decimal (Pulse 4) '); writeln ('De octal a decimal (Pulse 5)'); writeln ('De binario a decimal (Pulse 6)'); writeln ('De binario a hexadecimal (Pulse 7) '); writeln ('De binario a octal (Pulse 8) '); writeln ('De hexadecimal a binario (Pulse 9)'); writeln ('De hexadecimal a octal (Pulse 10) '); writeln ('De octal a binario (Pulse 11) '); writeln ('De octal a hexadecimal (Pulse 12) '); writeln ('Ya no deseo convertir (Pulse 0) '); write ('Escriba opcion que desee: '); readln (a); if (a='1') or (a='2') or (a='3') then begin if a='1' then begin i:=1; band:=0; while (band=0) and (i<=length(num)) do begin if (num<>'0') and (num<>'1') and (num<>'2') and (num<>'3') and (num<>'4') and (num<>'5') and (num<>'6') and (num<>'7') and (num<>'8') and (num<>'9') then begin writeln ('ERROR: Ingrese un valor correcto para poder convertirlo: '); band:=1; end else begin basepartida:=2; basellegada:=10; betasterisco:=2; i:=i+1; end; end; if band=0 then begin resultado:=' '; while num1>=betasterisco do begin resto:=(num1 mod betasterisco); num1:=(num1 div betasterisco); str (resto,resto1); resultado:=resultado+resto1; str (num1,num); end; if num1<betasterisco then begin str (num1,num); resultado:=resultado+num; end; n:=' '; for i:=length(resultado) downto 1 do begin n:=n+resultado; end; writeln ('El numero ',num2,' en base decimal es igual a',n,' en base binaria'); end; end else begin if a='2' then begin i:=1; band:=0; while (band=0) and (i<=length(num)) do begin if (num<>'0') and (num<>'1') and (num<>'2') and (num<>'3') and (num<>'4') and (num<>'5') and (num<>'6') and (num<>'7') and (num<>'8') and (num<>'9') then begin writeln ('ERROR: Ingrese un valor correcto para poder convertirlo: '); band:=1; end else begin basepartida:=10; basellegada:=8; betasterisco:=8; i:=i+1; end; end; if band=0 then begin str (resto,resto1); resultado:=' '; if num1<betasterisco then begin case num1 of 10: begin num:='A'; end; 11: begin num:='B'; end; 12: begin num:='C'; end; 13: begin num:='D'; end; 14: begin num:='E'; end; 15: begin num:='F'; end; end; end; while num1>=betasterisco do begin resto:=(num1 mod betasterisco); num1:=(num1 div betasterisco); str (resto,resto1); case resto of 10: begin resto1:='A'; end; 11: begin resto1:='B'; end; 12: begin resto1:='C'; end; 13: begin resto1:='D'; end; 14: begin resto1:='E'; end; 15: begin resto1:='F'; end; end; resultado:=resultado+resto1; str (num1,num); end; resultado:=resultado+num; n:=' '; for i:=length(resultado) downto 1 do begin n:=n+resultado; end; writeln ('El numero ',num2,' en base decimal es igual a',n,' en base octal'); end; end else begin if a='3' then begin i:=1; band:=0; while (band=0) and (i<=length(num)) do begin if (num<>'0') and (num<>'1') and (num<>'2') and (num<>'3') and (num<>'4') and (num<>'5') and (num<>'6') and (num<>'7') and (num<>'8') and (num<>'9') then begin writeln ('ERROR: Ingrese un valor correcto para poder convertirlo: '); band:=1; end else begin basepartida:=10; basellegada:=16; betasterisco:=16; i:=i+1; end; end; if band=0 then begin if num1<betasterisco then begin case num1 of 0: begin num:='0'; end; 1: begin num:='1'; end; 2: begin num:='2'; end; 3: begin num:='3'; end; 4: begin num:='4'; end; 5: begin num:='5'; end; 6: begin num:='6'; end; 7: begin num:='7'; end; 8: begin num:='8'; end; 9: begin num:='9'; end; 10: begin num:='A'; end; 11: begin num:='B'; end; 12: begin num:='C'; end; 13: begin num:='D'; end; 14: begin num:='E'; end; 15: begin num:='F'; end; end; end else begin resultado:=' '; while num1>=betasterisco do begin resto:=(num1 mod betasterisco); num1:=(num1 div betasterisco); str (resto,resto1); case resto of 0: begin resto1:='0'; end; 1: begin resto1:='1'; end; 2: begin resto1:='2'; end; 3: begin resto1:='3'; end; 4: begin resto1:='4'; end; 5: begin resto1:='5'; end; 6: begin resto1:='6'; end; 7: begin resto1:='7'; end; 8: begin resto1:='8'; end; 9: begin resto1:='9'; end; 10: begin resto1:='A'; end; 11: begin resto1:='B'; end; 12: begin resto1:='C'; end; 13: begin resto1:='D'; end; 14: begin resto1:='E'; end; 15: begin resto1:='F'; end; end; end; resultado:=resultado+resto1; str (num1,num); end; resultado:=resultado+num; n:=' '; for i:=length(resultado) downto 1 do begin n:=n+resultado; end; writeln ('El numero ',num2,' en base decimal es igual a',n,' en base hexadecimal'); end; end; end; end; end; if (a='4') or (a='5') or (a='6') then begin if (a='4') then begin i:=1; band:=0; while (band=0) and (i<=length(num)) do begin if (num<>'A') and (num<>'B') and (num<>'C') and (num<>'D') and (num<>'E') and (num<>'F') and (num<>'0') and (num<>'1') and (num<>'2') and (num<>'3') and (num<>'4') and (num<>'5') and (num<>'6') and (num<>'7') and (num<>'8') and (num<>'9') then begin writeln ('ERROR: Ingrese un valor correcto para poder convertirlo: '); band:=1; end else begin basepartida:=16; basellegada:=10; betasterisco:=16; i:=i+1; end; end; if band=0 then begin for i:=1 to length(num) do begin v:=num; end; for i:=1 to length(num) do begin t:=v; case t of 'A': begin v:='10'; end; 'B': begin v:='11'; end; 'C': begin v:='12'; end; 'D': begin v:='13'; end; 'E': begin v:='14'; end; 'F': begin v:='15'; end; end; end; sumapond:=0; l:=length(num); for z:=1 to length(num) do begin aux:=betasterisco; for i:=1 to l-2 do begin aux:=aux*betasterisco; end; if l=1 then begin aux:=1; end; t:=v; val (t,mult,h); sumapond:=sumapond+(mult*aux); l:=l-1; end; writeln ('El numero ',num2,' en base hexadecimal es igual a: ',sumapond,' en base decimal'); end; end; if a='5' then begin basepartida:=8; basellegada:=10; betasterisco:=8; long:=length(num); dig:=num; if (dig='8') or (dig='9') then begin writeln ('ERROR: Ingrese un valor correcto para poder convertirlo: '); a:='SI'; end else begin for i:=1 to length(num) do begin v:=num; end; for i:=1 to length(num) do begin t:=v; case t of 'A': begin v:='10'; end; 'B': begin v:='11'; end; 'C': begin v:='12'; end; 'D': begin v:='13'; end; 'E': begin v:='14'; end; 'F': begin v:='15'; end; end; end; sumapond:=0; l:=length(num); for z:=1 to length(num) do begin aux:=betasterisco; for i:=1 to l-2 do begin aux:=aux*betasterisco; end; if l=1 then begin aux:=1; end; t:=v; val (t,mult,h); sumapond:=sumapond+(mult*aux); l:=l-1; end; end; writeln ('El numero ',num2,' en base octal es igual a: ',sumapond,' en base decimal'); end; if a='6' then begin i:=1; band:=0; while (band=0) and (i<=length(num)) do begin if (num<>'0') and (num<>'1') then begin writeln ('ERROR: Ingrese un valor correcto para poder convertirlo: '); band:=1; end else begin basepartida:=2; basellegada:=10; betasterisco:=2; i:=i+1; end; end; if band=0 then begin for i:=1 to length(num) do begin v:=num; end; for i:=1 to length(num) do begin t:=v; case t of 'A': begin v:='10'; end; 'B': begin v:='11'; end; 'C': begin v:='12'; end; 'D': begin v:='13'; end; 'E': begin v:='14'; end; 'F': begin v:='15'; end; end; end; sumapond:=0; l:=length(num); for z:=1 to length(num) do begin aux:=betasterisco; for i:=1 to l-2 do begin aux:=aux*betasterisco; end; if l=1 then begin aux:=1; end; t:=v; val (t,mult,h); sumapond:=sumapond+(mult*aux); l:=l-1; end; writeln ('El numero ',num2,' en base binaria es igual a: ',sumapond,' en base decimal'); end; end; end;

379
73
T
Tutorial: poner archivos .swf en tus posts
TaringaporAnónimo3/2/2011

Este tutorial va dedicado a los usuarios de Taringa! que no saben como insertar archivos flash en sus posts, que son mayormente de juegos flash. Ustedes dirán que aui en T!, este tema esta recontraarchisuperreposteado, pero al menos yo no encontré una solución, así que me las ingenié y hoy vengo a traerles este tutorial: 1. Entrar a la pagina web del archivo flash, por ejemplo: http://www.juegosfan.com/penalty-fever-plus 2. Esperar a que se cargue todo y presionar las teclas CTRL + U para ver el código fuente de la página: 3. Presionar las teclas CTRL + F para buscar, y de ahi insertar lo siguiente ".swf" (sin las comillas): 4. Si quieren pueden abrir ese link en otra pestaña para saber que es el correcto: 5. Después copian ese link y van a su post de Taringa! y le dan donde dice Insertar archivo SWF y pegan el link: 6. Te tendría que quedar así: El archivo .swf y el link del archivo. Aquí les dejo un ejemplo de cómo me quedo a mí: Como verás, debajo del juego que uso como ejemplo no aparece el link del juego, esto lo podes hacer en la edición del post. Donde aparece primero el archivo . SWF después aparece el link, y eso tenes que borrarlo UNITE A LA COMUNIDAD OFICIAL PARA PUBLICAR TUS POSTS: Si te gustó el post, recomendalo a tus seguidores

41
29
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.