Algoritmos computacionales apuntes.docx

76
UNIDAD DE COMPETENCIA I INDUCCIÓN E IMPLEMENTACIÓN DE SOLUCIONES EN COMPUTADORAS En esta unidad tendrás un acercamiento a los conocimientos y conceptos iniciales a la materia de Algoritmos Computacionales. Identificarás las características relevantes en los Algoritmos, distinguirás entre diferentes tipos de algoritmos y sus aplicaciones. Conocerás la metodología para el desarrollo de soluciones a problemas planteados y su relación con el desarrollo de software. Repasarás los componentes principales de una computadora y su funcionamiento en la ejecución de algoritmos. Los temas que se desarrollan en esta unidad de aprendizaje son: 1. Elementos de una computadora (memoria, procesador, E/S), características y su funcionamiento en la ejecución de algoritmos 2. Concepto de algoritmo 3. Antecedentes de los algoritmos 4. Características de los algoritmos 5. Tipos de algoritmos 6. Aplicaciones de los algoritmos 7. Fases en la solución de problemas 8. Conceptos de lenguajes de programación, Compiladores e Intérpretes 9. Proceso de desarrollo de software y ciclo de vida

Transcript of Algoritmos computacionales apuntes.docx

Page 1: Algoritmos computacionales apuntes.docx

UNIDAD DE COMPETENCIA IINDUCCIÓN E IMPLEMENTACIÓN DE SOLUCIONES EN

COMPUTADORAS

En esta unidad tendrás un acercamiento a los conocimientos y conceptos iniciales a la materia de Algoritmos Computacionales. Identificarás las características relevantes en los Algoritmos, distinguirás entre diferentes tipos de algoritmos y sus aplicaciones. Conocerás la metodología para el desarrollo de soluciones a problemas planteados y su relación con el desarrollo de software. Repasarás los componentes principales de una computadora y su funcionamiento en la ejecución de algoritmos.

Los temas que se desarrollan en esta unidad de aprendizaje son:

1.Elementos de una computadora (memoria, procesador, E/S), características y su funcionamiento en la ejecución de algoritmos

2.Concepto de algoritmo3.Antecedentes de los algoritmos4.Características de los algoritmos5.Tipos de algoritmos6.Aplicaciones de los algoritmos7.Fases en la solución de problemas8.Conceptos de lenguajes de programación, Compiladores e Intérpretes9.Proceso de desarrollo de software y ciclo de vida

UNIDAD DE COMPETENCIA ITema 1. Elementos de una computadora (memoria, procesador, E/S),

características y su funcionamiento en la ejecución de algoritmos

Una vez resuelto el problema es posible que se quiera hacer uso de la computadora para que, a través de ella, se dé la solución al problema.

Es importante recordar que la computadora es un dispositivo electrónico donde se pueden introducir datos de entrada (INPUT), para posteriormente procesarlos y obtener resultados concretos produciendo una salida de información (OUTPUT).

Page 2: Algoritmos computacionales apuntes.docx

ESQUEMA ORGANIZACIÓN INTERNA DE UNA COMPUTADORA

Dispositivos de Entrada: Sirven para introducir datos (información) en la computadora. Los datos se leen de los dispositivos de entrada y se almacenan en la memoria principal o interna (almacenamiento primario). Algunos ejemplos de dispositivos de entrada son: teclado, escáner (digitalizadores de rastreo), mouse (ratón), trackball (bola de ratón estacionario), joystick (palancas de juego), lápiz óptico, pantalla digital, etcétera .

Page 3: Algoritmos computacionales apuntes.docx

Dispositivos de Salida: Se utilizan para regresar los datos procesados (información) al usuario. Algunos ejemplos son: monitor, impresora, etcétera .

La Unidad Central de Procesamiento (CPU) consta de dos partes principales:

1. Unidad de control. Coordina las actividades de la computadora y determina qué operaciones se deben realizar y en qué orden, y controla todo el proceso de la computadora.

2. Unidad aritmético-lógica. Realiza operaciones aritméticas y lógicas, como suma, resta, multiplicación, división y comparaciones.

La memoria de la computadora se divide en dos:

Page 4: Algoritmos computacionales apuntes.docx

1. Memoria central o interna (almacenamiento primario): este tipo de almacenamiento es utilizado para guardar información que emplea la computadora mientras trabaja con ella; la computadora tendrá acceso a esta información en tanto ésta permanezca en la memoria.

La memoria interna consta de dos áreas de memoria:

a) Memoria RAM (Randon Access Memory): recibe el nombre de memoria principal o memoria del usuario. En ella se almacena información mientras la computadora está encendida. Cuando se apaga o arranca nuevamente, la información se pierde, por lo que se dice que la memoria RAM es una memoria volátil .

b) Memoria ROM (Read Only Memory): es una memoria estática que no puede cambiar.La computadora puede leer los datos almacenados en la memoria ROM, pero el usuario no puede introducir datos ni cambiar los que ahí se encuentran; por lo que se dice que esta memoria es de solo lectura. Los datos de la memoria ROM están grabados en forma permanente y son introducidos por el fabricante de la computadora.

2. Memoria auxiliar o externa (almacenamiento secundario): almacena todos los programas o datos que el usuario desee. Los dispositivos de almacenamiento o memorias auxiliares (externas o secundarias) más comúnmente utilizadas son: cintas magnéticas, discos magnéticos, CD-ROM, DVD, USB, etcétera.

Page 5: Algoritmos computacionales apuntes.docx

Tema 2. Concepto de algoritmo

Un algoritmo es una serie de pasos organizados que describe el proceso a seguir para dar solución a un problema específico.

Procedimiento general por medio del cual se puede encontrar la solución o respuesta a cada problema de una clase, de un modo puramente mecánico y en un número finito de pasos.

Es una serie de operaciones detalladas y no ambiguas, que al ejecutarse paso a paso conducen a la resolución de un problema.

Tema 3. Antecedentes de los algoritmos

La palabra algoritmo se deriva de la palabra árabe al-Khowarizmi (matemático y astrónomo persa).

al-Khowarizmi   →   algorismus (latín)   →   algoritmo   ←   Algoritmia

  Se pueden mencionar dos personajes considerados los padres de los algoritmos: Euclides, matemático griego que inventó un método para encontrar el máximo común divisor de dos números (siglo IV a. C.).

Mohammed al-Khowarizmi, matemático persa que escribió un tratado sobre manipulación de números y ecuaciones. En su obra enunció las reglas paso a paso para realizar la suma, resta, multiplicación y división de números decimales (siglo IX d. C).

Page 6: Algoritmos computacionales apuntes.docx

Algoritmia: ciencia que trata de los algoritmos.

Tema 4. Características de los algoritmos

Las características principales que debes procurar incluir en los algoritmos que desarrolles son:

Exactitud, precisión: indicar sin ambigüedades la operación o instrucción a realizar.Completo: incluir en la solución todas las posibilidades o alternativas al problema.General: que pueda seguirse para resolver todos los problemas del mismo tipo. Por ejemplo, el algoritmo para elevar 5 a la potencia 3 es particular, y el algoritmo para elevar un número x a una potencia y es general.Orden: los pasos o instrucciones deben seguir una secuencia lógica que permita solucionar el problema.Independiente del hardware y software: el algoritmo realizado debe funcionar y ser probado sin necesidad de un equipo o software específico.Cada paso debe ser ejecutable: cada uno de los pasos del algoritmo debe de poder realizarse.Inicio y fin bien definidos: debe indicarse tanto el inicio como el final del algoritmo.Finito: debe de terminar o concluir. No es posible que un algoritmo se realice por siempre.Consistente: al seguir el algoritmo dos veces se obtiene el mismo resultado.

Mientras incluyas más características en tu algoritmo, la solución que desarrolles será confiable y válida para resolver el problema.

Ejemplo:

Problema: Calcular el perímetro de un rectángulo cuya base vale 35 metros

Page 7: Algoritmos computacionales apuntes.docx

Algoritmo Características Explicación

1.Guardar en BASEel 352.Conocer el valor de ALTURA3.Multiplicar por 2 el valor de

BASE4.Multiplicar por 2 el valor de

ALTURA5.Sumar los resultados de los

pasos 3 y 46.Guardar el resultado en

PERÍMETRO7.Mostrar el valor de

PERÍMETRO8. Ir al paso 2Fin

 ExactitudCada paso indica con precisión lo que debe hacerse.

 CompletoNo es completo ni contempla la posibilidad de que el valor de ALTURA sea negativo (valor no válido).

 GeneralNo es general, solamente funciona para aquellos rectángulos que miden 35 metros de base.

 Orden Los pasos están en orden.

 Independiente de hardware y software

La solución no está en función de un lenguaje o de una computadora.

 Pasos ejecutables

Cada paso se puede ejecutar (realizar).

 Tiene inicio No tiene inicio.

 Tiene fin Sí tiene fin.

 TerminaNunca termina porque al llegar al paso 8 va nuevamente al paso 2, nunca llega al fin.

 ConsistenteSí genera el mismo resultado al ejecutarlo dos veces.

Page 8: Algoritmos computacionales apuntes.docx

Tema 5. Tipos de algoritmos

Page 9: Algoritmos computacionales apuntes.docx

Tema 6. Aplicaciones de los algoritmos

Tema 7. Fases en la solución de problemas

Al realizar algoritmos es conveniente seguir una serie de fases para resolver el(los) problema(s).

Cuando se sigue una metodología existe un alto porcentaje de probabilidades de culminar con éxito la tarea encomendada.

Es muy conveniente no «saltarse» fases o pasos, de otra forma la solución generada probablemente no contará con todas las características deseables.

Page 10: Algoritmos computacionales apuntes.docx

Ejemplo:En seguida se presenta un ejemplo donde se identifica cada una de las fases de la solución de problemas:

Page 11: Algoritmos computacionales apuntes.docx
Page 12: Algoritmos computacionales apuntes.docx

Tema 8. Conceptos de lenguajes de programación, Compiladores e Intérpretes

Estos lenguajes tienen un conjunto de instrucciones que nos permiten realizar operaciones de entrada-salida, cálculo, manipulación de textos; lógica y comparación; almacenamiento y recuperación de datos e información que se manipula.

Los lenguajes de programación se clasifican en:

• Lenguaje máquina: permite la representación de instrucciones, números y datos mediante ceros y unos. Las instrucciones son directamente entendibles por la computadora y no necesitan traducción posterior para que el hardware pueda comprender y ejecutar el programa.

Page 13: Algoritmos computacionales apuntes.docx

Las instrucciones en lenguaje máquina se expresan en términos de la unidad de memoria más pequeña: el bit (dígito binario 0 o 1). Al agruparse en un conjunto de ocho bits se genera un byte.

Lenguaje ensamblador (bajo nivel): en este lenguaje las instrucciones, números y datos se escriben en códigos alfabéticos conocidos como mnemotécnicos que representan las operaciones y direcciones.

• Lenguaje de alto nivel: es un lenguaje artificial compuesto por un vocabulario fijo (palabras reservadas) y un conjunto de reglas gramaticales (sintaxis) usadas para crear instrucciones que debe seguir la computadora. Las palabras que utiliza son similares a los lenguajes humanos (por ejemplo, al inglés), lo que facilita a las personas la escritura y comprensión del programa. Algunos lenguajes de alto nivel son Basic, Pascal, Cobol, Fortran, C, etcétera.

De una instrucción del lenguaje de alto nivel se derivan varias del lenguaje máquina, es decir, la ejecución de una instrucción de alto nivel supone la ejecución de muchas instrucciones en código máquina.

Page 14: Algoritmos computacionales apuntes.docx

Intérprete y compilador

Para lograr la comunicación entre la máquina y el programador se emplean programas que traducen del lenguaje de programación al lenguaje propio de la máquina. Ese programa traductor va tomando las instrucciones escritas en el lenguaje de programación y las va convirtiendo en instrucciones de código o lenguaje máquina.

Existen dos tipos de programas traductores: los intérpretes y los compiladores (tema que se abordará con mayor amplitud en la unidad de competencia 7).

Tema 9. Proceso de desarrollo de software y ciclo de vida

Al desarrollar software, se desarrollan programas. El software es el conjunto de programas que ejecuta una computadora. Estos programas contienen instrucciones que se encuentran codificadas en algún lenguaje comprensible para la computadora.

Es recomendable, de manera general cuando se crea un software, seguirlas siguientes fases básicas:

a)Definición: en esta fase se intenta identificar qué información ha de ser procesada, qué función y rendimiento se desea, qué comportamiento del sistema, qué interfaces van a ser establecidas, qué restricciones existen y qué criterios de validación se necesitan para definir el sistema. Esta fase se centra en el qué.

b)Desarrollo: en esta fase se intenta definir cómo han de diseñarse las estructuras de datos, cómo han de implementarse los detalles procedimentales, cómo han de caracterizarse las interfaces, cómo ha

Page 15: Algoritmos computacionales apuntes.docx

de traducirse el diseño en un lenguaje de programación y cómo ha de realizarse la prueba. Esta fase se centra en el cómo.

c)Mantenimiento: se centra en el cambio del software derivado de la corrección de errores, adaptaciones necesarias de acuerdo con la evolución del entorno y mejoras.

Existen varios modelos relacionados a la creación o adecuación de software, entre los que destacan:

• Modelo lineal secuencial o ciclo de vida básico• Modelo de construcción de prototipos• Modelo DRA• Modelos evolutivos (incremental, espiral, ensamblaje de componentes,

desarrollo concurrente)

Para fines de esta asignatura, se abordará el modelo de ciclo de vida básico o modelo lineal secuencial.

MODELO LINEAL SECUENCIAL

También es conocido como modelo en cascada. Éste sugiere un enfoque sistemático secuencial del desarrollo de software. Incluye las siguientes actividades:

a) Análisis de los requisitosb) Diseñoc) Generación del códigod) Pruebase) Mantenimiento

UNIDAD DE COMPETENCIA IIELEMENTOS PARA EL DESARROLLO DE ALGORITMOS

Page 16: Algoritmos computacionales apuntes.docx

En esta unidad conocerás todos aquellos elementos que te permitirán crear algoritmos. Estos elementos son: tipos de datos, variables y constantes, los operadores y expresiones. Es importante que logres el dominio sobre estos elementos para que puedas aplicarlos y usarlos sin problema a partir de la siguiente unidad.

Al finalizar esta unidad, las competencias que desarrollarás te permitirán: identificar y distinguir los elementos básicos en el planteamiento de algoritmos para solucionar problemas.

Los temas que se desarrollan en esta unidad de aprendizaje son:

1.Tipos de datos y representación de éstos en la computadora2.Conceptos de variable y constante3.Tipos de operadores: aritméticos, relacionales y lógicos4.Construcción de expresiones (aritméticas, relacionales y lógicas)5.Jerarquía de los operadores6.Evaluación de expresiones

En la parte final de la unidad de competencia se presenta una actividad de Autoevaluación. Es importante que trabajes la autoevaluación antes de desarrollar y enviar las actividades al portafolio, así podrás detectar algunos aspectos que pudieran no estar claros en la primera revisión del material. Una vez que te sientas apto en los temas, resuelve las actividades y envíalas al portafolio.

Tema 1. Tipos de datos y representación de éstos en la computadora

Un dato es la representación de la información contenida en el enunciado de un problema y necesaria para su solución.

Los algoritmos trabajan con datos, algunos requieren de datos iniciales para ejecutar las instrucciones sobre éstos.

Los datos pueden ser de diferentes tipos. El tipo de datos determina la naturaleza del conjunto de valores asociados a éste. A continuación se presenta una clasificación completa de los tipos de datos.

Clasificación de los tipos de datos

Page 17: Algoritmos computacionales apuntes.docx
Page 18: Algoritmos computacionales apuntes.docx
Page 19: Algoritmos computacionales apuntes.docx
Page 20: Algoritmos computacionales apuntes.docx
Page 21: Algoritmos computacionales apuntes.docx
Page 22: Algoritmos computacionales apuntes.docx
Page 23: Algoritmos computacionales apuntes.docx
Page 24: Algoritmos computacionales apuntes.docx

Tema 2. Conceptos de variable y constante

Los datos necesitan ser guardados en la memoria de la computadora. Gráficamente la memoria de la computadora puede verse como un conjunto de celdas que tienen una dirección (forma de ubicar cada celda).

Representación gráfica de la memoria de la computadora

Las direcciones de memoria se manejan en sistema hexadecimal (base 16). Para facilitar la identificación y referencia a cada celda se le debe dar un nombre o identificador.

Para dar nombre a una celda o localidadde la memoria se debe:

  Iniciar con una letra (A a Z, mayúsculas o minúsculas)

 No dejar espacios en blanco

 Letras, dígitos y caracteres como el guión bajo (_) están permitidos después del primer carácter

 La longitud del identificador puede ser de hasta 8

 Dar nombres con significado, es decir, que por sí mismos expresen la idea del dato contenido.

Representación gráfica de una celda de memoria

Page 25: Algoritmos computacionales apuntes.docx

Cuando en una celda o localidad de memoria se guarda un dato que puede cambiar (variar) conforme se ejecuta el algoritmo, a esa celda de memoria se le llama variable. Cada una debe tener un tipo de dato.

Las variables se clasifican de acuerdo con:

Page 26: Algoritmos computacionales apuntes.docx

Si se determina que la variable EDAD es de tipo entero, en esa variable (localidad de memoria) sólo se podrá guardar un dato entero a la vez.

Si se determina que la variable PROMEDIO es una variable de tipo real, en esa variable (localidad de memoria) sólo se podrá guardar un dato real a la vez.

Page 27: Algoritmos computacionales apuntes.docx

Si se determina que RESPUESTA es una variable de tipo carácter, en esa variable (localidad de memoria) sólo se podrá guardar un dato carácter a la vez.

Cuando enuna celda o localidad de memoria se guarda un dato que permanece fijo, es decir, no cambia conforme se ejecuta el algoritmo, esa celda de memoria se

Page 28: Algoritmos computacionales apuntes.docx

llama constante. A cada constante le corresponde un tipo de dato.

La posibilidad de cambiar el valor almacenado en la celda de memoria dependerá del problema que se resuelva.

Page 29: Algoritmos computacionales apuntes.docx

Los operadores son elementos que relacionan de forma diferente los valores de una o más variables y/o constantes y permiten manipular valores.

Existen diferentes tipos de operadores:

Operadores aritméticos: permiten realizar operaciones matemáticas con los valores (variables y constantes) y pueden ser utilizados con tipos de datos enteros o reales. Si los datos son enteros, el resultado será entero; si alguno de los datos es real, el resultado será real.

Símbolo Operación Explicación

+ Suma Adición

- Resta Sustracción

* Multiplicación Producto

/ División División

^ Exponencial Elevar un valor a una potencia

Mod Modulo Residuo de la división entera

Ejemplos:

Expresión Resultado

7 / 2 3.5

12 mod 7 5

4 + 2 * 5 14

Page 30: Algoritmos computacionales apuntes.docx

Operadores relacionales: establecen una relación entre valores del mismo tipo. Compara los valores y produce un resultado (lógico) de verdadero o falso.

Símbolo Operación

> Mayor que

< Menor que

>= Mayor o igual que

<= Menor o igual que

<> Diferente

= Igual

Ejemplos:

Considerando que  A = 10,    B = 20  y  C = 30

Expresión Resultado

A > C Falso

B >= A Verdadero

Operadores lógicos: establecen relaciones entre valores lógicos. Estos valores pueden ser resultado de una expresión relacional.

Operador Significado

AND Y lógico

OR O lógico

NOT Negación

Para el caso de los operadores lógicos es importante recordar la forma como se emplean éstos a través de las tablas de verdad.

Operador Y

Operando 1 Operador Aperando 2 Resultado

V AND V V

V AND F F

F AND V F

F AND F F

Operador O

Operando 1 Operador Operando 2 Resultado

V OR V V

V OR F V

F OR V V

F OR F F

Page 31: Algoritmos computacionales apuntes.docx

Operador NO

Operando Resultado

V F

F V

Hay operadores que requieren de dos operandos (valores o datos), por ejemplo:

 

Tema 4. Construcción de expresiones (aritméticas, relacionales y lógicas)

Tema 5. Jerarquía de los operadores

Page 32: Algoritmos computacionales apuntes.docx

Se refiere al orden en el que son realizadas las operaciones dentro de una expresión. Al construir expresiones es importante saber la jerarquía de los operadores.

Existe una tabla en la que se muestra esta jerarquía de operadores:

La jerarquía va de arriba hacia abajo, es decir, el operador que tiene mayor importancia es el paréntesis, le sigue el operador lógico Not, después el operador aritmético de exponenciación, y así sucesivamente.

Cuando hay dos o más operadores en un mismo nivel de importancia, al momento de evaluar la expresión, se iniciará por el operador que esté más a la izquierda en la expresión.

Tema 6. Evaluación de expresiones

Consiste en dar el resultado de la expresión respetando la jerarquía de los operadores.

La evaluación de una expresión debe realizarse por etapas o fases, de tal manera que se vaya identificando con precisión el operador que debe resolverse. Ejemplos.

Evaluación de una expresión aritmética:

Page 33: Algoritmos computacionales apuntes.docx

Evaluación de una expresión lógica:

Se tienen las siguientes variables y valores:     a = 7, b = 3, c = 1

Page 34: Algoritmos computacionales apuntes.docx

UNIDAD DE COMPETENCIA IIIREPRESENTACIÓN DE ALGORITMOS

En esta unidad se presentan las diferentes formas que puedes emplear para representar un algoritmo. Existen cuatro herramientas para la representación de algoritmos: Pseudocódigo, Diagrama de flujo, Diagrama estructurado y Codificación.

Conocerás los componentes de cada forma de representación y distinguirás cuándo y para qué debes emplear cada una de ellas.

Page 35: Algoritmos computacionales apuntes.docx

Al finalizar esta unidad podrás conocer y usar las diferentes formas de representación de algoritmos en el desarrollo de soluciones a diversos problemas.

El lenguaje algorítmico está formado por una serie de símbolos y reglas (sintaxis) que se utilizan para describir de manera explícita un proceso. Los tipos de lenguajes algorítmicos son:

Lenguajes no gráficos: las operaciones o instrucciones del algoritmo son presentadas en forma descriptiva, por ejemplo, el pseudocódigo y la codificación.

Lenguajes gráficos: las operaciones o instrucciones del algoritmo son presentadas en forma gráfica, por ejemplo, el diagrama de flujo o el estructurado.

Page 36: Algoritmos computacionales apuntes.docx

Los temas que se desarrollan en esta unidad de aprendizaje son:

1.Pseudocódigo2.Diagrama de flujo3.Diagrama estructurado4.Codificación

Tema 1. Pseudocódigo

El pseudocódigo es la representación narrativa de los pasos que debe seguir un algoritmo para dar solución a un problema determinado. Es una mezcla de lenguaje de programación y español, en nuestro caso, y que se emplea dentro de la programación estructurada para realizar el diseño de la solución de un problema.

Las principales características que debe reunir el pseudocódigo son:

• Emplea palabras reservadas• Utiliza un lenguaje familiar• Tiene un inicio y un fin bien definidos• Puede emplear diferentes estructuras o instrucciones• Emplea menos espacio en papel• Se centra en la lógica (la solución al problema)

Ejemplo de pseudocódigo:

Page 37: Algoritmos computacionales apuntes.docx

Las diferentes estructuras o sentencias que pueden usarse dentro de los

algoritmos son:

Page 38: Algoritmos computacionales apuntes.docx

Las sentencias secuenciales son abordadas en la unidad de competencia IV.

Las sentencias de selección son abordadas en la unidad de competencia V.

Las sentencias iterativas se abordan en la unidad VI.

 

Tema 2. Diagrama de flujo

Es la representación detallada, en forma gráfica, de los pasos que deben seguirse para producir la solución al problema.

El diagrama de flujo tiene las siguientes características:

• Emplea símbolos estándar (normalizados por el Instituto Norteamericano de Normalización [ANSI]).

Page 39: Algoritmos computacionales apuntes.docx

• Cada símbolo indica el tipo de instrucción o sentencia a ejecutar.• Los pasos del algoritmo son escritos dentro de los símbolos.• Los símbolos se unen por líneas de flujo.• Tiene un inicio y un fin.

Los símbolos para el diagrama de flujo son:

Page 40: Algoritmos computacionales apuntes.docx

Ejemplo de diagrama de flujo:

Da clic en cada uno de los símbolos de la izquierda y verás cómo se van colocando sobre el diagrama de la derecha. Identifica la función de cada uno de los símbolos.

Page 41: Algoritmos computacionales apuntes.docx

Tema 3. Diagrama estructurado (N-S)

El diagrama estructurado (Nassi-Schneiderman) es parecido a un diagrama de flujo en el que se omiten las líneas de flujo y las cajas son contiguas. Las instrucciones consecutivas se escriben en cajas sucesivas. Se pueden escribir diferentes acciones en una caja.

El diagrama estructurado tiene las siguientes características:

• Se omiten las líneas de flujo• Los símbolos (cajas) son contiguos• Los pasos del algoritmo son escritos dentro de la caja• Tiene un inicio y un fin

Ejemplo de diagrama estructurado:

Page 42: Algoritmos computacionales apuntes.docx

Los símbolos para el diagrama estructurado son:

Page 43: Algoritmos computacionales apuntes.docx
Page 44: Algoritmos computacionales apuntes.docx

Tema 4. Codificación

Como se vio en la unidad de competencia I en el tema 6 «Fases para la solución de problemas», la codificación consiste en escribir la solución del problema (de acuerdo con la lógica del algoritmo), en una serie de instrucciones detalladas, en un código reconocible por la computadora. Traducir el algoritmo a un lenguaje de programación y así crear un programa (código fuente).

Cuando se tiene un algoritmo en pseudocódigo el proceso de codificación se vuelve muy simple, se debe traducir cada línea del pseudocódigo al equivalente en lenguaje de programación siguiendo las reglas de sintaxis del lenguaje.

Si se tiene un diagrama se debe traducir cada instrucción de los símbolos a su equivalente en el lenguaje de programación siguiendo las reglas de sintaxis del lenguaje.

El detalle sobre las reglas de sintaxis del lenguaje C se desarrolla en la unidad de competencia VII de esta asignatura.

Ejemplo de codificación:

Page 45: Algoritmos computacionales apuntes.docx

UNIDAD DE COMPETENCIA IVSECUENCIACIÓN

La programación estructurada se basa en la creación de algoritmos (que después se convierten en programas) de forma clara mediante el uso de tres estructuras lógicas de control.

 

Estructuras de control

Al finalizar esta unidad, las competencias que desarrollarás te permitirán:

a) Identificar y aplicar las sentencias de asignación, entrada y salida de datos en el diseño de soluciones a diversos problemas.

b) Los temas que se desarrollan en esta unidad de aprendizaje están asociados a las diferentes instrucciones secuenciales, que  son:

Page 46: Algoritmos computacionales apuntes.docx

Tema 1. Sentencia de Inicio

Tema 2. Sentencia de Asignación

Page 47: Algoritmos computacionales apuntes.docx

Tema 3. Sentencia de Entrada o Lectura

Tema 4. Sentencia de Salida o Escritura

Page 48: Algoritmos computacionales apuntes.docx

Tema 5. Sentencia de Término

UNIDAD DE COMPETENCIA IVResumen

UNIDAD DE COMPETENCIA IVEjemplos

Page 49: Algoritmos computacionales apuntes.docx
Page 50: Algoritmos computacionales apuntes.docx
Page 51: Algoritmos computacionales apuntes.docx
Page 52: Algoritmos computacionales apuntes.docx
Page 53: Algoritmos computacionales apuntes.docx
Page 54: Algoritmos computacionales apuntes.docx

UNIDAD DE COMPETENCIA VSELECCIÓN

En esta unidad se describen las estructuras de control de selección. Igual que en la unidad anterior, se presenta una tabla con las diferentes formas de representar esta sentencia, así como ejemplos de su funcionamiento.

En los ejemplos y ejercicios propuestos deberás usar tanto estructuras secuenciales como de selección.

Al finalizar esta unidad las competencias que desarrollarás te permitirán:

Emplear las sentencias de selección simple, anidada y múltiple en el diseño de soluciones a problemas.

Los temas que se desarrollan en esta unidad de aprendizaje están asociados a las diferentes instrucciones de selección, que son:

Tema 1. Sentencia Si-entonces

Page 55: Algoritmos computacionales apuntes.docx

Tema 2. Sentencia Si-sino

Page 56: Algoritmos computacionales apuntes.docx

UNIDAD DE COMPETENCIA VTema 3. Sentencia de Caso

Page 57: Algoritmos computacionales apuntes.docx

UNIDAD DE COMPETENCIA VResumen

En el cuadro siguiente se muestran las instrucciones o los símbolos que se emplean en las diferentes formas de representación de algoritmos para cada una de las sentencias o estructurasde selección:

Page 58: Algoritmos computacionales apuntes.docx
Page 59: Algoritmos computacionales apuntes.docx

UNIDAD DE COMPETENCIA VEjemplos

Page 60: Algoritmos computacionales apuntes.docx
Page 61: Algoritmos computacionales apuntes.docx
Page 62: Algoritmos computacionales apuntes.docx
Page 63: Algoritmos computacionales apuntes.docx
Page 64: Algoritmos computacionales apuntes.docx
Page 65: Algoritmos computacionales apuntes.docx

UNIDAD DE COMPETENCIA VI ITERACIÓN

En esta unidad se describen las estructuras de control iterativas. Igual que en las unidades anteriores se presenta una tabla con las diferentes formas de representación de estas instrucciones.

Adicionalmente encontrarás ejemplos sobre el funcionamiento de estas estructuras.

En los ejemplos y ejercicios propuestos deberás usar tanto las estructuras secuenciales, de selección y, por supuesto, las iterativas.

Page 66: Algoritmos computacionales apuntes.docx

Al finalizar esta unidad, las competencias que desarrollarás te permitirán:

Aplicar las sentencias iterativas o repetitivas, los recursos de contador y acumulador para elaborar soluciones a problemas planteados.

Page 67: Algoritmos computacionales apuntes.docx

Al trabajar con estructuras iterativas o repetitivas se necesita controlar el número de veces que se repetirán ciertas instrucciones; este control se hace a través de variables de control. La

Page 68: Algoritmos computacionales apuntes.docx

forma como se utilicen las variables de control del ciclo es lo que se llama método para el control de ciclo.

Básicamente hay dos métodos para el control de los ciclos:

Control por centinelaEn una variable centinela (o ciego) su valor sólo indica que se han terminado los datos significativos para el problema. Contiene datos sin significado para el proceso, su contenido no debe de entrar en los cálculos que se hagan en el algoritmo.

Cuando el valor de la variable centinela es detectada en una iteración, este valor avisa que debe terminar la repetición de las instrucciones del ciclo.

Control por bandera (o interruptor)Es una variable que puede tomar diversos valores a lo largo de la ejecución del algoritmo e indican el cambio en una determinada situación o estado.

La variable bandera o interruptor se inicializa a un valor determinado y su valor se va modificando al ejecutarse el algoritmo.

La variable bandera se utiliza en la condición de las sentencias iterativas para evaluar si deben repetirse o no las instrucciones contenidas en el ciclo.

Page 69: Algoritmos computacionales apuntes.docx

UNIDAD DE COMPETENCIA VI RESÚMEN

En el cuadro siguiente se muestran las instrucciones o los símbolos que se emplean en las diferentes formas de representación de algoritmos, para cada una de las sentencias o estructuras de Iteración:

Page 70: Algoritmos computacionales apuntes.docx

UNIDAD DE COMPETENCIA VI EJEMPLO