Pascal/Turbo Pascal - error 26: Type mismatch

 
Vista:

error 26: Type mismatch

Publicado por Hernan (3 intervenciones) el 23/06/2008 21:16:48
tengo un problema... no entiendo porque me salio este problema...
declaro el registro del archivo
Tnov=record
codmov:string[1]

despues cuando pongo en el programa...

begin
x:=x+1; {un contador}
if rnov.codmov=1 then
begin... etcetera..

me sale el error 26: type mismatch... el puntero se ubica al final del " =1"

porque?? por favor ayudenme...
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

RE:error 26: Type mismatch

Publicado por Diego Romero (996 intervenciones) el 26/06/2008 02:39:49
Debido a que el campo codmov es de tipo string tienes que comparar con otro tipo string; en el código que has posteado lo estás comparando con un tipo entero, de allí el mensaje de error ("tipos no coinciden").

La solución:

if rnov.codmov='1' then

Pero aún así veo otro problema de fondo. Esto:

codmov:string[1];

es equivalente a esto:

codmov:char;

Ya que codmov al ser un string que almacena un caracter es igual a decararlo como un char que también almacena un caracter. En fin, espero que no sea un problema...
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

RE:error 26: Type mismatch

Publicado por Leonel Eduardo Morales Barrios (1 intervención) el 06/08/2014 06:08:11
Hola, yo tengo también una pregunta, estoy tratando de calcular el iva de un producto pero no me reconoce la constante acá les dejo el ejemplo:

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
PROGRAM CALULAR_EL_IVA;
USES CRT;
CONST
              IVA=0.12;
 
              VAR
                      Cliente,Compra: STRING;
                      Totalapagar, Cantidadsin, Precio: integer;
 
BEGIN
CLRSCR;
                   WIRTELN('Escriba el Nombre del Cliente');
                   READLN(Cliente);
 
                   WIRTELN('Escriba el Nombre del Producto');
                   READLN(Compra);
 
                                                     WIRTELN('Escriba el precio del Producto');
                                                     READLN(Precio);
 
                                                     Cantidadsin:= IVA * 1;
                                                     WRITELN('EL Iva del producto es',Cantidadsin);
 
readkey;
END.

PERO ME SALE: RE:error 26: Type mismatch

Podrían ayudarme y darme algunos consejos para mejorar el programa!!

Gracias!
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

RE:error 26: Type mismatch

Publicado por ramon (39 intervenciones) el 06/08/2014 10:42:56
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
{Mira las correcciones del programa }
 
PROGRAM CALULAR_EL_IVA;
USES
    CRT;
CONST
    IVA = 0.12;
 
  VAR
      Cliente, Compra : STRING;
     Totalapagar, Precio, cantidadsin : real;
 
  BEGIN
     CLRSCR;
     WriTE('Escriba el Nombre del Cliente ');
     READLN(Cliente);
 
     WriTE('Escriba el Nombre del Producto ');
     READLN(Compra);
 
     WriTE('Escriba el precio del Producto ');
     READLN(Precio);
 
     Cantidadsin := IVA * 1;
     WRITELN('EL Iva del producto es ',Cantidadsin:0:2);
 
     readkey;
  END.
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

RE:error 26: Type mismatch

Publicado por Laura (4 intervenciones) el 09/07/2015 02:01:37
bueno, te encontre varios errores en el programa y los corregi, primero es que si eliminas donde pusiste:
CONST
IVA=0.12;
Y entre las variables cantidadsin tambien lo eliminas y solo colocas iva se te haria mas facil:
Cliente,Compra: STRING;
Totalapagar, iva,precio:real;

bueno, mejor te pasare todo el programa que hice y que supongo asi es como lo necesitas... por cierto pusiste WIRTELN y es WRITELN...

PROGRAM CALULAR_EL_IVA;
USES CRT;
VAR
Cliente,Compra: STRING;
Totalapagar, iva,precio:real;
BEGIN
CLRSCR;
WRiTELN('Escriba el Nombre del Cliente');
READLN(Cliente);
WRiTELN('Escriba el Nombre del Producto');
READLN(Compra);
WriTELN('Escriba el precio del Producto');
READLN(Precio);
iva:=precio*0.12;
WRITELN('EL Iva del producto es ',iva:5:2);

readkey;
END.

bueno a mi me compilo y me salio la cantidad sin iva ( que supongo era lo que necesitabas que hiciera el programa) espero que te sirva :)
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