Pascal/Turbo Pascal - Problema con procedure Val (strings)

   
Vista:

Problema con procedure Val (strings)

Publicado por Alexander (4 intervenciones) el 09/05/2015 05:07:25
Buenas noches, tengo el siguiente problema yo estoy haciendo procedure para la entrada de datos que me va a indicar el tamaño de la matriz que desea el usuario, y bueno haciendo las validaciones me salió el siguiente error en la linea donde tengo el procedure val "Error: type mismatch", cual es mi error?

aqui esta el codigo de ese procedure:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
procedure DimensionesMatrizUsuario;                    {DEFINIR TAMANO DE LA MATRIZ POR USUARIO}  {FMZ = fila matriz; CMZ = columna matriz}
var x,m,n:byte;
    a,j:string;
begin
     x:=99;
     while x <> 0 do
     begin
          clrscr;
          write('Indique cuantas FILAS desea en la matriz (del 1 al 100): ');
          readln(a);
          write('Indique cuantas COLUMNAS desea en la matriz(del 1 al 100: ');
          readln(j);
          val(a,fmz,m);
          val(j,cmz,n);
          if (m <> 0) and (n <> 0) then
             writeln('ERROR!!! Datos no validos')
          else
          begin
               if (fmz < 1) or (fmz > 100) or (cmz < 1) or (cmz > 100) then
                  writeln('ERROR!!! Datos no validos')
               else
               begin
                    clrscr;
                    break;
               end;
          end;
          readln;
     end;
end;

gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Problema con procedure Val (strings)

Publicado por Alexander (4 intervenciones) el 09/05/2015 05:23:29
Ademas, se me olvido comentarles, lo estoy haciendo en dev pascal
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema con procedure Val (strings)

Publicado por David (144 intervenciones) el 09/05/2015 10:10:38
Así "a bote pronto" lo primero que veo es que tienes declarado n como tipo byte mientras que el parámetro correspondiente del procedimiento val es de tipo word
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema con procedure Val (strings)

Publicado por ramon (2072 intervenciones) el 09/05/2015 12:02:23
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
{A Ver Corregido}
 
uses
    crt;
 var
   FMZ, CMZ  : integer;
 
procedure DimensionesMatrizUsuario;   {DEFINIR TAMANO DE LA MATRIZ POR
                       USUARIO}  {FMZ = fila matriz; CMZ = columna matriz}
var
    x,m,n:integer;
    a,j:string;
begin
     x:=99;
     while x <> 0 do
     begin
          clrscr;
          write('Indique cuantas FILAS desea en la matriz (del 1 al 100): ');
          readln(a);
          write('Indique cuantas COLUMNAS desea en la matriz(del 1 al 100: ');
          readln(j);
          val(a,fmz,m);
          val(j,cmz,n);
          if (m <> 0) and (n <> 0) then
             writeln('ERROR!!! Datos no validos')
          else
          begin
               if (fmz < 1) or (fmz > 100) or (cmz < 1) or (cmz > 100) then
                  writeln('ERROR!!! Datos no validos')
               else
               begin
                    clrscr;
                    writeln('  La Matriz Sera De = ',fmz,' X ',cmz);
                    readkey;
                    break;
               end;
          end;
          readln;
     end;
end;
 
 
   begin
      DimensionesMatrizUsuario;
   end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Problema con procedure Val (strings)

Publicado por Alexander (4 intervenciones) el 09/05/2015 12:08:55
Muchas gracias, ya me funciona!!

Me puedes decir cual fue mi error, es que no lo veo del todo ps..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema con procedure Val (strings)

Publicado por ramon (2072 intervenciones) el 09/05/2015 12:16:03
Si miras el procedimiento podrás apreciar que [m y n] tienen que ser integer puesto que val así lo requiere.
Y esto para poder ver el resultado de la operación

writeln(' La Matriz Sera De = ',fmz,' X ',cmz);
readkey;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar