• Viernes 8 de Noviembre de 2024, 19:03

Autor Tema:  Motrar El Nombre De Un Tipo De Dato  (Leído 1240 veces)

rak40

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Motrar El Nombre De Un Tipo De Dato
« en: Domingo 6 de Mayo de 2007, 00:20 »
0
hola como andan? de nuevo yo, y sigo con mi aprendizaje, que la verdad que me esta gustando mucho esto.
pero siempre hay cosas que los libros no explican en detalle  :(
ya que estoy un poco mas familiarizado con las matrices, bueno, he creado un tipo, que son los dias de la semana de lunes a domingo,


procedure carga(var mat: tcomunicacionpordia);
         var i: tcomunicacion;
             j: semana;
             l:lineas;

   begin
   clrscr;
for l:=1 to clineas do
   for i:=urbana to celular do
      for j:=lunes to domingo do
      begin
        write ('ingrese el valor [', l,', ', (leer (i)), ', ', (describir(j)),'] ');
        readln (mat[l,i,j]);
      end;
     readkey;

   end;

lo rojo, es un proceduro que me dice que si el parametro vale tando me escriba el dia de la semana, aca esta el problema que me dice que hay un error al invocar el procedimiento o funcion,  capaz que es una animalada lo que quiero hacer, pero se puede hacer?? :( y despues continuar con la normal carga de la matriz?

Enko

  • Miembro de PLATA
  • *****
  • Mensajes: 1562
  • Nacionalidad: 00
    • Ver Perfil
Re: Motrar El Nombre De Un Tipo De Dato
« Respuesta #1 en: Domingo 6 de Mayo de 2007, 01:14 »
0
¿Que compilador estas usando?
Si usas Turbo Pascal no se puede hacer esto:
Código: Text
  1.  
  2. WriteLn('Resultado:', MiFuncion(i));
  3. V[MiFuncion(i), 5] := 8; //esto tampoco funciona
  4.  
  5.  
Tienes que hacer:
Código: Text
  1.  
  2. nResultado := MiFucnion(i);
  3. Writeln('Resultado: ', nResultado);
  4. nIndice := MiFuncion(i);
  5. V[nIndice, 5] := 8;
  6.  
  7.  

Valten

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Motrar El Nombre De Un Tipo De Dato
« Respuesta #2 en: Domingo 6 de Mayo de 2007, 10:01 »
0
Hola Enko, pues me vas a perdonar, pero con Turbo PAscal 7.0 yo sí que he hecho lo que dices. Ahora bien, hay un problema o dos que surgen:

1. Lógicamente si vas a emplear el mismo resultado de la misma función más de una vez, es mucho más lógico guardarlo primero en una variable y luego ya usar ésta las veces que sea necesario.

2. Se ve que tiene un tipo de datos enumerado con los días de la semana, y eso por ejemplo sí que no se puede mostrar en pantalla directamente en Turbo Pascal 7.0 (al menos). Para ello la única que se me ocurre medianamente decente es la siguiente (no voy a poner el código para que lo pueda intentar escribir rak40 por su cuenta:

Primero declaras el tipo enumerado.
Luego declaras una constante de tipo array unidimensional en la que los índices sean lunes..domingo y los valores de las casillas 'lunes' .. 'domingo' (fíjate en los apóstrofes. Ahora son strings)

Cuando vayas a pintar en pantalla una variable del tipo días de la semana, por ejemplo dia, lo que haces es pintar la casilla día de ese array.

Luego ya, respecto de tu código y el error que te da, no te puedo decir mucho, salvo que verifiques que la función leer, y la función describir no sean de tipo enumerado o algo similar que no se pueda sacar directamente en pantalla.

Espero haber sido de ayuda
[size=109]Un saludo desde Santander (España)[/b][/size]