Autor
|
Tema: ejercicio de pascal (Leído 7,150 veces)
|
SXF
|
buenas queira saber como resolver este ejecicio:
Escribir un algoritmo que dado un número de bytes obtenga una magnitud equivalente expresada en Mbytes,Kbytes,y bytes. Por ejemplo , dado el número26871979 el resultado sería 25,642,171.
|
|
|
En línea
|
|
|
|
criskapunk
Desconectado
Mensajes: 277
|
Dividir por 1024. Un saludo
|
|
|
En línea
|
|
|
|
SXF
|
si pero lo que no entiendo es que son los 26871979 son bytes ?¿ por que si son bytes solo tendria que dividir por 1024 una vez para obtener los klbytes no?¿
|
|
|
En línea
|
|
|
|
criskapunk
Desconectado
Mensajes: 277
|
Al parecer si. Igualmente no entiendo por que el resultado es 25,642,171 Si, dividiendo una vez por 1024 te da los Kb, dividiendolo dos veces te da Mb, etc...
|
|
|
En línea
|
|
|
|
SXF
|
gracias men ya se la respuesta...la cosa esta en que el problema no consiste en pasar de una unidad a otra si no en descomponerme undeterminado valor. 26871979/1024*1024 =25 mb y sobra 657579 bytes estos se dividen entre 1024 y nos da 642 kbytes y nos sobra 171 bytes. En lenguaje de programacion en pascal seria (Aunque nose por que no me compila, no veo el error xdd alguien me podria ayudar¡¡)PROGRAM CALCULO_DE_BYTES,KBTES,MB var mb:integer; kb:integer; b:integer; n:real; tk:integer; begin writeln('ESCRIBE UN VALOR A DESCOMPONER: '); readln(n); mb:=n DIV (1024*1024); tk:=n MOD (1024*1024); kb:=tk DIV 1024; b:= tk MOD 1024; writeln('La descomposición es ', mb, kb, b); readln(''); end.
|
|
« Última modificación: 5 Noviembre 2010, 16:19 pm por SXF »
|
En línea
|
|
|
|
criskapunk
Desconectado
Mensajes: 277
|
PROGRAM CALCULO_DE_BYTES_KBTES_MB; var mb:LongInt; kb:LongInt; b:LongInt; n:LongInt; tk:LongInt; begin WriteLn('ESCRIBE UN VALOR A DESCOMPONER: '); ReadLn(n); mb:=n DIV 2048; tk:=n MOD 2048; kb:=tk DIV 1024; b:= tk MOD 1024; (* Me quedaron demasiadas lineas. Me daba error al intentar concatenar todo xD *) WriteLn('La descomposicion es: '); WriteLn(mb); WriteLn('Mb'); WriteLn(kb); WriteLn('Kb'); WriteLn(b); WriteLn('Bytes'); ReadLn(); end.
Tuve que cambiar los tipos de las variables, quitar las comillas del ultimo ReadLn y cambiar los valores de las primeras divisiones (Para obtener los Mb hay que dividir dos veces por 1024, es decir 2*1024 = 2048. En el tuyo divides por 1048576 ). Un saludo
|
|
|
En línea
|
|
|
|
SXF
|
MUchas gracias men , pero no es 1024x2 sino 1024x1024 recuerda para pasar de una unidad a otra va de potencia en potencia de 3... jeje gracias por ayuda men. Un saludo.
|
|
|
En línea
|
|
|
|
criskapunk
Desconectado
Mensajes: 277
|
No no, para convertir de bytes a mb tenes que dividir por 2048, o dos veces por 1024. Un saludo
|
|
|
En línea
|
|
|
|
SXF
|
NO men lo que pasa es que: Supongamos 50000; 50000/2*1024 NO ES = A 50000/1024/1024; Un saludo
|
|
|
En línea
|
|
|
|
criskapunk
Desconectado
Mensajes: 277
|
Tenes razon, error mio jaja Un saludo
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Ayuda ejercicio de Pascal, cuando uno no lo ve claro pide ayuda
Programación General
|
manu3742
|
1
|
3,529
|
31 Marzo 2011, 15:43 pm
por d(-_-)b
|
|
|
ejercicio Pascal, ayuda para terminarlo
« 1 2 »
Programación General
|
manu3742
|
16
|
9,755
|
6 Abril 2011, 20:40 pm
por d(-_-)b
|
|
|
pascal que se ha cortedo ejercicio
Programación General
|
manu3742
|
1
|
2,908
|
14 Abril 2011, 16:14 pm
por Khronos14
|
|
|
Ejercicio Pascal
Programación General
|
BioHazardTM
|
3
|
2,601
|
5 Enero 2012, 10:43 am
por W0lFy
|
|
|
Ayuda ejercicio en Pascal
Programación General
|
mardek
|
1
|
2,121
|
1 Mayo 2013, 22:03 pm
por Ferno
|
|