Summary

Este documento proporciona una introducción a los conceptos de algoritmos y diagramas de flujo, incluyendo ejemplos de programación visual y textual como Scratch.

Full Transcript

# Interpretación de la realidad mediante el modelado de problemas Los lenguajes de programación son la forma en que los seres humanos pueden dar instrucciones a un equipo informático. Con ellas construimos los programas. Un lenguaje de programación es un lenguaje que sirve para describir un conjun...

# Interpretación de la realidad mediante el modelado de problemas Los lenguajes de programación son la forma en que los seres humanos pueden dar instrucciones a un equipo informático. Con ellas construimos los programas. Un lenguaje de programación es un lenguaje que sirve para describir un conjunto de acciones que deben ser ejecutadas por las máquinas. ## Conexión los lenguajes de programación visuales con los lenguajes de programación textuales Los lenguajes de programación visuales disponen de un conjunto de bloques gráficos de programación que tienen funciones específicas y se ensamblan siguiendo una secuencia de acciones para crear programas. Utilizan elementos gráficos con colores y formas, en lugar de texto, y por ello se usan en los entornos educativos para aprender a programar. ### Programación visual - al hacer clic en - ir a x: 20 y: -74 - apuntar en dirección 90 - esperar 1 segundos - apuntar en dirección 0 - por siempre - mover 7 pasos - si ¿tocando borde? entonces - si toca un borde, rebotar Ejemplo de lenguaje de programación visual: **Scratch** ### Programación textual ``` nombre_archivo.c #include <librerias.h> declaraciones globales main() { variables locales; sentencias; } funcion_1() { variables locales; sentencias; } funcion_2() { variables locales; sentencias; } ``` Ejemplo de lenguaje de programación textual Un lenguaje de programación textual es un conjunto de símbolos y palabras (instrucciones y sentencias) que el usuario tiene a su disposición para elaborar un programa. ## Código fuente En la programación textual, los programas se escriben en lo que se denomina código fuente, que son las instrucciones que el programador indica que deben ser ejecutadas a fin de poder realizar las acciones para las que el programa ha sido diseñado. ## Compilador El código fuente no lo puede comprender directamente el ordenador y debe ser traducido a lenguaje máquina, para lo cual se utilizan unos traductores llamados compiladores. ## Código objeto El código objeto es el archivo traducido a lenguaje máquina. El lenguaje máquina es el lenguaje que el ordenador entiende. Utiliza el código binario, es decir, consiste en una serie de ceros y unos, que forman cadenas binarias con las que se elaboran las instrucciones que la CPU del ordenador procesa. # Abstracción algorítmica. Estructuras de control del flujo del programa Los lenguajes de programación visuales nos ayudan a comprender el algoritmo que está detrás de un programa. Un algoritmo es una secuencia ordenada de pasos que resuelven un problema en un tiempo finito. Los algoritmos tienen las siguientes características: 1. Contienen instrucciones concretas, sin ninguna ambigüedad. 2. Deben terminar, es decir, son finitos. 3. Todos sus pasos son simples y están ordenados. Los algoritmos, una vez definidos, se escriben en pseudocódigo. El pseudocódigo, o “código falso”, es un lenguaje hecho para que lo entiendan los humanos y no las máquinas, por lo que no puede ejecutarse en un ordenador. La finalidad del pseudocódigo es ayudarnos a detectar errores en los algoritmos y a depurarlos. Un programa es la traducción de un algoritmo a un lenguaje de programación capaz de ser entendido por un ordenador y procesado por él. El gráfico utilizado para representar un algoritmo se denomina **diagrama de flujo**, y muestra mediante símbolos unidos por flechas la secuencia de las acciones que se han de realizar. El diagrama de flujo facilita la comprobación y depuración de posibles duplicidades y errores en el algoritmo. ## Diagrama de flujo El diagrama de flujo contiene los siguientes elementos: - **Inicio:** representa el inicio del algoritmo. - **Datos:** representa la entrada de datos al algoritmo. - **Decisión:** representa una condición que se debe evaluar. - **Proceso:** representa una operación que se debe realizar. - **Salida por pantalla:** representa la salida de datos del algoritmo. - **Fin:** representa el final del algoritmo. ## Pselnt Es un programa gratuito que nos permite escribir algoritmos, dibujar sus diagramas de flujo y convertir entre ambos formatos. Puedes acceder a él desde el siguiente enlace: **https://pseint.sourceforge.net/** ## Representación mediante diagramas de flujo Veamos un primer ejemplo de representación de un algoritmo mediante diagramas de flujo. En este caso dibujaremos el correspondiente a uno que opera con dos números A y B previamente almacenados y cuya suma C se calcula y almacena finalmente. - **Inicio:** representa el inicio del algoritmo. - **Leer A:** representa la lectura del primer número y su almacenamiento en la variable A. - **Leer B:** representa la lectura del segundo número y su almacenamiento en la variable B. - **C=A+B:** representa la suma de A y B y el almacenamiento del resultado en la variable C. - **Escribir C:** representa la salida del resultado C. - **Fin:** representa el final del algoritmo. ## Algoritmos de estructura secuencial Una secuencia es una serie o sucesión de cosas que guardan entre sí cierta relación. Esta definición se aplica en campos muy distintos, como la biología (por ejemplo, para definir las secuencias de aminoácidos del organismo) o el cine (por ejemplo, para definir el conjunto de escenas que se refieren a una misma parte del argumento). La estructura básica para resolver un problema es la **estructura secuencial**, en la cual las instrucciones que componen el algoritmo se van cumpliendo una tras otra, siguiendo el orden en que aparecen. El diagrama de la derecha muestra un algoritmo secuencial con las instrucciones seguidas para aprobar un examen: - **Inicio:** representa el inicio del algoritmo. - **Asistir a clase:** representa la asistencia a las clases del examen. - **Atender explicaciones:** representa la atención a las explicaciones del profesor. - **Preguntar dudas:** representa la solicitud de aclaraciones sobre los temas del examen. - **Estudiar en casa:** representa el estudio de los temas del examen. - **Hacer el examen:** representa la realización del examen. - **Fin:** representa el final del algoritmo. ## Algoritmos de estructura selectiva (o condicional) Los algoritmos de estructura selectiva (o condicional) incluyen una serie de instrucciones que sólo se llevan a cabo en función de si se cumple o no una condición. El diagrama de la izquierda muestra un ejemplo de algoritmo selectivo. Se indica el proceso para calcular la nota media entre un examen y un trabajo y decidir así si se aprueba o no la asignatura: - **Inicio:** representa el inicio del algoritmo. - **Nota examen:** representa la nota obtenida en el examen. - **Nota trabajo:** representa la nota obtenida en el trabajo. - **Calcular nota media examen y trabajo:** representa el cálculo de la nota media entre el examen y el trabajo. - **¿Media ≥ 5?:** representa la condición de evaluar si la nota media es mayor o igual que 5. - **Aprobado:** representa la acción de ser aprobado si la nota media es mayor o igual que 5. - **Suspenso:** representa la acción de ser suspenso si la nota media es menor que 5. - **Fin:** representa el final del algoritmo. ## Algoritmos de estructura iterativa (o repetitiva) Las tareas que hacemos todos los días responden a un algoritmo de estructura iterativa, porque se repiten diariamente: comer, asearnos, acostarnos, etc. Los algoritmos de estructura iterativa (o repetitiva) incluyen una serie de instrucciones que se repiten varias veces. Estas instrucciones se colocan en bucles que marcan el inicio y el fin de la repetición. El diagrama de la derecha muestra un ejemplo de algoritmo iterativo en el que se repiten exámenes y/o trabajos hasta conseguir aprobar una asignatura: - **Inicio:** representa el inicio del algoritmo. - **Nota examen:** representa la nota obtenida en el examen. - **Nota trabajo:** representa la nota obtenida en el trabajo. - **Calcular nota media examen y trabajo:** representa el cálculo de la nota media entre el examen y el trabajo. - **Repetir examen y/o repetir trabajo:** representa la repetición del examen y/o trabajo hasta obtener la nota media necesaria para aprobar. - **¿Media ≥ 5?:** representa la condición de evaluar si la nota media es mayor o igual que 5. - **Aprobado:** representa la acción de ser aprobado si la nota media es mayor o igual que 5. - **Fin:** representa el final del algoritmo.

Use Quizgecko on...
Browser
Browser