4 - 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, falta de paréntesis, 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.

Problema:

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

Diagrama de flujo:

diagrama flujo superficie cuadrado lenguaje C

Creemos un archivo con el editor Code::Blocks llamado: programa2.c (Recordemos que lo hacemos desde el menú de opciones: File->New=>Emplty file y luego para dar el nombre nuevamente desde el menú de opciones elegimos File->Save file)

Codificamos el algoritmo en C e introducimos un error sintáctico:
1 - En el momento que calculamos la superficie hacemos referencia a la variable con el primer caracter en mayúsculas, es decir Superficie.

programa c con error sintáctico

Como podemos observar 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 funciones con caracteres equivocados, etc.

Programa correctamente codificado (programa2.c):

#include<stdio.h>

int main()
{
    int lado;
    int superficie;
    printf("Ingrese el valor del lado del cuadrado:");
    scanf("%i",&lado);
    superficie = lado * lado;
    printf("La superficie del cuadrado es:");
    printf("%i",superficie);
    getch();
    return 0;
}

Programa con un error lógico:

#include<stdio.h>

int main()
{
    int lado;
    int superficie;
    printf("Ingrese el valor del lado del cuadrado:");
    scanf("%i",&lado);
    superficie = lado * lado * lado;
    printf("La superficie del cuadrado es:");
    printf("%i",superficie);
    getch();
    return 0;
}
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 el 1000), esto debido que definimos incorrectamente la fórmula para calcular la superficie del cuadrado:
            superficie = lado * lado * lado;

Retornar