Artículos de Tecnología > Programación

Algoritmos y Lógica de programación: ¿Qué es eso y porque es importante?

Andre Bessa
Andre Bessa

Notebook sobre a mesa no fundo e a frente uma mão segurando um papel com fluxograma.

Siempre que decidimos hacer cualquier actividad en nuestro día a día, acabamos siguiendo una secuencia lógica. En la mayor parte del tiempo, hacemos eso de forma tan natural que ni nos damos cuenta, cuando percibimos, conseguimos ver los pasos que llevaron al resultado final.

En la imagen es presentado un notebook sobre una mesa con un editor de código abierto en la pantalla.

Visualiza la siguiente situación, tu necesitas hacer un pastel:

1. Seleccionar los ingredientes de la receta; 
2. Seleccionar recipiente; 
3. Colocar harina, de acuerdo con la medida; 
4. Seleccionar los huevos; 
5. Colocar mantequilla y azúcar al gusto; 
6. Colocar la leche; 
7. Mesclar todos los ingredientes en el recipiente; 
8. Despejar la masa en el molde; 
9. Llevar al horno; 
10. Esperar 40 minutos; 
11. Retirar del horno; 
12. Servir el pastel. 

Cada persona define una secuencia de pasos para hacer un pastel, pudiendo incluir o remover algunos ya definidos. Esa lógica es aplicada a cualquier cosa que hacemos diariamente y muchas veces no nos damos cuenta.

En actividades rutineras, no acostumbramos prestar atención cuando seguimos una misma orden para ejecutar tareas. Pero, cuando el asunto es programar, definir las etapas de que debe ser hecho, asume una grande importancia, una vez que instruir un computador todavía es bien diferente de que instruir una persona.

Cuando la necesidad es desarrollar un programa o rutina a ser ejecutadas por el computador, necesitamos dejar bien claro la secuencia que debe ser seguida para alcanzar los resultados esperados. A ese encadenamiento lógico en la programación, llamamos de lógica de programación, y la descripción de cómo hacer, definimos como algoritmos.

¿Quieres saber un poco más? Ven conmigo a leer este artículo. 😉

¿Que son Algoritmos?

Algoritmos son secuencias de pasos que seguimos con la intención de alcanzar un objetivo, puede ser desde cruzar una calle, hacer un pastel o definir cual criterio usar para aprobar o reprobar un alumno, por ejemplo.

En el desarrollo de un algoritmo, debemos definir con clareza y de forma precisa el conjunto de reglas o instrucciones que serán utilizadas para resolver aquel problema en específico.

Por tanto, antes de programar, necesitamos saber lo que debe ser hecho y planear el paso a paso, o sea, crear el algoritmo y evaluar si el resultado obtenido es la solución esperada. Entendiendo eso, hay si, definimos un lenguaje de programación para implementar nuestro algoritmo.

Existen algunas formas de representar algoritmos, que entran como un paso de preparación antes de programación. Podemos crear, por ejemplo, una narrativa semejante al ejemplo del pastel, en que se describe la secuencia de ejecución hasta la obtención del resultado deseado o esperado. Para mostrar las formas de representar un algoritmo, vamos a usar como ejemplo un algoritmo de cálculo de la media, en que se necesita analizar las notas de 3 bimestres para la disciplina de matemática y verificar si el alumno fue aprobado o reprobado para una media mayor o igual a 6.

1. Obtener la nota del 1º bimestre; 
2. Obtener la nota del 2º bimestre; 
3. Obtener la nota del 3º bimestre; 
4. Realizar el cálculo de la media para cada alumno (mayor o igual a 6 para aprobación); 
5. Informar si el alumno fue “aprobado o reprobado”; 
6. Informar la media obtenido por el alumno.   

Note que, en la forma de un texto narrativo, o mismo en otras formas de representación, se desea que el algoritmo sea objetivo y preciso en la descripción de cada paso. Existe también la opción de usar un modelo visual, como un flujograma, vea en la imagen de abajo:

En la figura es presentado un flujograma que representa el algoritmo del cálculo de la media de notas de 3 bimestres y muestra si el alumno fue aprobado o no, a parte del valor de la media.

Otra forma bien interesante de representar algoritmos es utilizando un pseudocodigo, que describimos en español sin ambigüedades y sin toda la rigidez de un lenguaje de programación.

Importante notar que un pseudocodigo es escrito con frases que corresponden a estructuras utilizadas en un lenguaje de programación, destacadas en mayúscula en el ejemplo de abajo:

Algoritmo CalcularMediaAlumnos 
LEER Nota1 
    LEER Nota2 
    LEER Nota3 
    media = (Nota1+Nota2+Nota3)/3 
    SI MEDIA >= 6 ENTONCES 
        IMPRIME “Aprobado” 
    SINO 
        IMPRIME “Reprobado” 
FIN-SI 
IMPRIME el valor de la media 
Fin-Algoritmo CalcularMediaAlumnos 

Lógica de Programación

En la lógica de programación es donde aplicamos todos los conceptos de algoritmos, la definición de paso a paso y transferimos toda la lógica del algoritmo desarrollado para un lenguaje de programación.

En lineas generales, lógica de programación es todo conjunto de reglas y conceptos que necesitamos aplicar para crear códigos que serán interpretados y ejecutados por un computador.

Para conseguir el objetivo de instruir el computador a hacer alguna cosa, necesitamos de un lenguaje de programación, que es un medio estructurado para pasar instrucciones para la máquina.

Para hacer eso, tenemos en disposición una gama muy grande de lenguajes como: C, Java, PHP, Python, JavaScript, entre otras. Cada uno de ellos tiene sus características, particularidades y escenarios de aplicación.

Ahora vamos a un ejemplo de codificación del algoritmo de medias usando un lenguaje de programación. En este caso fue escogido el lenguaje C.

//lenguaje C 
int main(int argc, char *argv[]) { 
  setlocale(LC_ALL, "Spanish"); 
  float nota1=0;  
  float nota2=0;   
  float nota3=0;   
  float media=0; 
  printf("digita nota 1: "); 
  scanf("%f",&nota1); 
  printf("Digita nota 2: "); 
  scanf("%f",&nota2); 
  printf("Digita nota 3: "); 
  scanf("%f",&nota3);  
  media = (nota1+nota2+nota3)/3; 
  if(media>=6){ 
    printf("Alumno aprobado.\n"); 
  } 
  else{ 
    printf("Alumno reprobado.\n"); 
  }  
  printf("Media del alumno es: %f",media); 
}   

En la codificación en C, tenemos la implementan del algoritmo desarrollado anteriormente, pero ahora, después de escoger un lenguaje de programación, debemos prestar atención a las reglas de sintaxis (estructura para escrita) y semántica (significado dado a los símbolos y comandos).

Es importante resaltar que el lenguaje de programación escogido es solamente más una herramienta que tú, como desarrollador, necesitarás conocer. La idea del algoritmo no está asociado a ningún lenguaje en específico, observe el mismo algoritmo del cálculo de la media usando el lenguaje C#:

// Lenguaje C# 
static void Main(string[] args) 
        { 
            float nota1; float nota2; float nota3; float media; 

            Console.WriteLine("Digita nota 1:"); 
            nota1 = float.Parse(Console.ReadLine()); 

            Console.WriteLine("Digita nota 2:"); 
            nota2 = float.Parse(Console.ReadLine()); 

            Console.WriteLine("Digita nota 3:"); 
            nota3 = float.Parse(Console.ReadLine()); 

            media = (nota1 + nota2 + nota3) / 3; 

            if(media>=6) 
            { 
                Console.WriteLine("APROBADO"); 
            } 
            else 
            { 
                Console.WriteLine("REPROBADO"); 
            } 

            Console.WriteLine("La media del alumno es: " + media); 
        }   

Nota que el algoritmo es el mismo, el paso a paso esta allí, sin embargo, escrito en un lenguaje diferente. Por tanto, después de definida la secuencia de instrucciones, escoja el lenguaje con cual te identificas más para implementar el algoritmo.

La lógica de programación utilizada para desarrollar una solución, como un sistema web, desktop o móvil, está toda estructurada a partir de la definición de los algoritmos, de allí la importancia y la relación entre eses dos temas. 😉

Conclusión

Estudiar algoritmos y lógica de programación es el paso inicial para quien desea entrar en el mundo de desarrollo de software y comenzar a crear sus primeras aplicaciones. Con eses conceptos bien consolidados estarás bien más preparado en la utilización de un lenguaje de programación.

Y ahí, ¿quieres profundizarte más en algoritmos y lógica de programación? Entonces confiere nuestros cursos y formaciones:

André Bessa

André Bessa

Dev C# con foco en backend y instructor en Alura Brasil, buscando siempre nuevos conocimientos.

Puedes leer también:

Artículos de Tecnología > Programación

En Alura encontrarás variados cursos sobre Programación. ¡Comienza ahora!

  • 110 cursos

    Cursos de Programación, Front End, Data Science, Innovación y Gestión.

  • Videos y actividades 100% en Español
  • Certificado de participación
  • Estudia las 24 horas, los 7 días de la semana
  • Foro para resolver tus dudas
  • Descuento de lanzamiento de 30%

Trimestral

Descuento de lanzamiento de 30%
  • 110 cursos

    Cursos de Programación, Front End, Data Science, Innovación y Gestión.

  • Videos y actividades 100% en Español
  • Certificado de participación
  • Estudia las 24 horas, los 7 días de la semana
  • Foro para resolver tus dudas
US$19,90
un pago de US$29,90 US$19,90
¡Quiero empezar a estudiar!

Paga en moneda local en los siguientes países

Semestral

Descuento de lanzamiento de 30%
  • 110 cursos

    Cursos de Programación, Front End, Data Science, Innovación y Gestión.

  • Videos y actividades 100% en Español
  • Certificado de participación
  • Estudia las 24 horas, los 7 días de la semana
  • Foro para resolver tus dudas
US$33,90
un pago de US$49,90 US$33,90
¡Quiero empezar a estudiar!

Paga en moneda local en los siguientes países

Acceso a todos los cursos
Estudia las 24 horas, dónde y cuándo quieras
Nuevos cursos cada semana