- 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 nombre de funciones incorrectas, nombres de variables incorrectas, falta de paréntesis, 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 Go

Creemos un archivo con el editor Visual Studio Code: ejercicio003.go (Recordemos que lo hacemos desde el menú de opciones: Archivo->Nuevo archivo y luego para dar el nombre nuevamente desde el menú de opciones elegimos Archivo->Guardar)

Codificamos el algoritmo en Go e introducimos dos errores sintácticos:
1 - Disponemos la palabra clave var en mayúsculas y la función Print con el primer caracter en minúsculas:

Programa: ejercicio003.go

package main

import "fmt"

func main() {
    var lado int
    VAR superficie int

    fmt.print("Ingrese el valor del lado del cuadrado:")
    fmt.Scan(&lado)
    superficie = lado * lado
    fmt.Print("La superficie del cuadrado es:",superficie)
}

Cuando compilamos el programa nos informa las líneas donde se detectan errores sintácticos:

programa en Go con errores sintácticos

Como podemos observar aparece en la consola las líneas que tienen errores sintácticos detectado.

Hay muchos tipos de errores sintácticos que nos pueden suceder como que nos falte una llave, definir variables en forma incorrecta, nombres de funciones con caracteres equivocados, etc.

Programa correctamente codificado:

Programa: ejercicio003.go

package main

import "fmt"

func main() {
    var lado int
    var superficie int

    fmt.Print("Ingrese el valor del lado del cuadrado:")
    fmt.Scan(&lado)
    superficie = lado * lado
    fmt.Print("La superficie del cuadrado es:",superficie)
}

El mismo programa con un error lógico:

Programa: ejercicio003.go

package main

import "fmt"

func main() {
    var lado int
    var superficie int

    fmt.Print("Ingrese el valor del lado del cuadrado:")
    fmt.Scan(&lado)
    superficie = lado * lado * lado
    fmt.Print("La superficie del cuadrado es:",superficie)
}
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