5 - Errores sintácticos y lógicos

Confeccionaremos un problema y agregaremos adrede una serie de errores tipográficos. Este tipo de errores siempre son detectados por el COMPILADOR, antes de ejecutar el programa.
A los errores tipográficos, como por ejemplo la falta de puntos y comas, nombres de variables incorrectas, palabras claves mal escritas, etc. los llamamos errores SINTACTICOS.
Un programa no se puede ejecutar sin corregir absolutamente todos los errores sintácticos.

Existe otro tipo de errores llamados ERRORES LOGICOS. Este tipo de errores en programas grandes (miles de líneas) son más difíciles de localizar. Por ejemplo un programa que permite hacer la facturación pero la salida de datos por impresora es incorrecta.

Proyecto3

Hallar la superficie de un cuadrado conociendo el valor de un lado.

Diagrama de flujo:

diagrama flujo superficie cuadrado lenguaje Pascal Delphi

Codificamos el algoritmo en Pascal e introducimos un error sintáctico:
1 - En el momento que calculamos la superficie hacemos referencia a la variable con un caracter menos, es decir superfici.

programa pascal con error sintáctico

Como podemos observar cuando ejecutamos el programa aparece en una ventana en la parte inferior un mensaje con el error sintáctico detectado.

Hay muchos tipos de errores sintácticos que nos pueden suceder como que nos falte punto y coma al final de cada instrucción, definir variables en forma incorrecta, nombres de procedimientos con caracteres equivocados, etc.

Programa correctamente codificado (Proyecto3):

program proyecto4;

{$APPTYPE CONSOLE}

var
  lado: Integer;
  superficie: Integer;

begin
  Write('Ingrese el valor del lado del cuadrado:');
  ReadLn(lado);
  superficie := lado * lado;
  Write('La superficie del cuadrado es:');
  Write(superficie);
  ReadLn;
end.

El mismo programa con un error lógico:

program proyecto4;

{$APPTYPE CONSOLE}

var
  lado: Integer;
  superficie: Integer;

begin
  Write('Ingrese el valor del lado del cuadrado:');
  ReadLn(lado);
  superficie := lado * lado * lado;
  Write('La superficie del cuadrado es:');
  Write(superficie);
  ReadLn;
end.

Como podemos observar si ejecutamos el programa no presenta ningún error de compilación. Pero luego de ingresar el valor del lado del cuadrado (por ejemplo el valor 10) obtenemos como resultado un valor incorrecto (imprime 1000), esto debido que definimos incorrectamente la fórmula para calcular la superficie del cuadrado:

  superficie := lado * lado * lado;

Este tipo de errores en programas grandes es dificultoso de identificar y corregir.