CREACION CODIGOS EN PASCAL

Iniciado por ironwolf, 17 Abril 2012, 21:38 PM

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

ironwolf

Vereis, tengo un pequeño problema al crear unos codigos para clase de informatica, el problema son los ceros no signifiativos, ya que al generarlos aleatoriamente se me pondria el codigo : 357, cuando por ejemplo tendria que ser el 03057.

Y tampoco he conseguido como concatenarlo ya que consigo hacer :
READLN(Ai);
  readln(Bi);
  auxb:=1;
cb:=0    ;
  auxa:=1;
  ca:=0 ;
  WHILE (auxa<=Ai) DO
  begin
  ca:=ca+1;
  auxa:=auxa*10;
  end;
  za:=(2-ca);
  WHILE (za>0) DO
  begin
  WRITE(0) ;
  za:=(za-1)
  end;
  WRITE(Ai) ;
  WHILE (auxb<=Bi) DO
  begin
  cb:=cb+1;
  auxb:=auxb*10;
  end;
  zb:=(3-cb);
  WHILE (zb>0) DO
  begin
  WRITE(0) ;
  zb:=(zb-1)
  end;
  write(bi);

Pero en este caso solo escribe el numero tal cual y si por ejemplo pongo 5 y 2, me queda 05002, pero necesitaria que me diese ese valor en String, podeis ayudarme?
gracias de antemano.

_Enko

ej, 03057 no es un int, sino una cadena.

s: String[8];
begin
   s := '12345678';
   s[1] := '0';
   s[2] :=random(10);
   s[7] := ramdon(10);

No recuerdo si era asi exactamente la sintaxis, pero la idea es simple. Usas una cadena y generas cada caracter al azar.

ironwolf

Gracis por la respuesta, pero es que en nuestro caso la cadena que tenemos que crear son 10 digitos, los 2 primeros para indicar el coche que sera entre uno y 10, despues punto de control, despues 2 espacios para horas, 2 para minutos, etc... Y si a lgenerar aleatoriamente los minutos si me sale 20, ocupara las 2 espacios, si me sale 5, pues faltara un digito....

skapunky

Dos sugerencias:

- Intenta crear un codigo mas ordenado, deja espacios y usa el tabulador, en el foro puedes utilizar las etiquetas "geshi" y seleccionar pascal para que salga la sintaxis con color.

- Intenta dar un nombre mas descriptivo a las variables, si usas Ai,CB,ZA...un programa con mas de 5 o 6 variables se hará muy dificil de seguir. Por ejemplo: (modelo,hora,min...).

En tu casa, cuando tienes un array de datos y uno de los datos puede variar la longitud, deberías trabajar con un array de mas espacios donde al completar la cadena se reordene el array.

Por ejemplo una vez tengas completo el array, si tiene 8 posiciones y la 5 º está vacia, haz que a partir de la 6º pasen al anterior. De éste modo no te quedarán espacios vacios. Es simplemente comprobar que el valor no sea nulo.
Killtrojan Syslog v1.44: ENTRAR