Duda con ejemplo de pascal

Estaba siguiendo un ejemplo de codigo de mi libro de pascal. pero tengo un problemita…

entiendo que el error del es que 2 variables empiezan de forma similar… pero entiendo porque esto afecta, si no se llaman igual

Program peso;

{$mode objfpc}{$H+}

uses
  {$IFDEF UNIX}{$IFDEF UseCThreads}
  cthreads,

  {$ENDEF}{$ENDIF}

  Classes, SysUtils
  {Kilos, Metros};

  var

  Altura: Double;
  Peso: Double;
  PesoIdeal: Double;

begin
  Write('¿Cuál es su altura en metros? (Ejemplo 1,8 metros):'); Readln(Altura);

  Write('¿Cuál es su peso en kilos?:'); Readln(Peso);

  if Altura >= 1.4 then

  PesoIdeal:= (Altura -1) * 100

  else

    PesoIdeal:= Altura * 20;

  If(Altura < 0.4) or (Altura > 2.5) or (Peso < 3) or (Peso > 200)then

  begin

    Writeln('Valores no válidos');

    Writeln('Por favor, introduzca los valores adecuados');

    end

  else

  If PesoIdeal = Peso then

  Writeln('Su peso es adecuado')

  else

    If PesoIdeal > Peso then

    Writeln('Usted está bajo de peso, usted necesita', Format('%.2f',[Peso - PesoIdeal]), 'Kilos');

  Write('Presione la tecla Enter Para cerrar'); Readln;

  end.
                        

¿alguna sugerencia? aparte de cambiar el nombre… es que no entiendo el porque de este problema

El problema no esta entre las variables Peso y PesoIdeal, sino entre la variable Peso y el nombre del programa, que es también espeso. Pascal es no es sensible al cambio de mayúsculas y minúsculas, para el compilador se llaman igual.

2 Me gusta

Aaaaahhhhh, ya veo… Bueno gracias…

intente hacer lo que me dijiste y tengo este error de compilación:

peso.lpr(58,0) Error: $ENDIF expected for $IFDEF UNIX defined in peso.lpr line 6

No se como venga el ejemplo en tu libro, pero hasta donde se, en la linea 7

Ambos deberían ser un {$ENDIF}, pero veo un {$ENDEF} en su lugar.

1 me gusta