52
ELABORÓ: UNIVERSIDAD TECNOLÓGICA REVISÓ: UNIVERSIDAD(ES) TECNOLÓGICA(S) AUTORES: REVISORES: APROBÓ: COMISIÓN NACIONAL ACADÉMICA DE TIC FECHA DE ENTRADA EN VIGOR: Manual de Asignatura Basado en Competencias Profesionales Metodologías de la programación Junio, 2012

Manual de Asignatura Basado en Competencias Profesionales Metodologías de … · 2018-06-08 · desarrollo de algoritmos en diagramas de flujo. Con el fin de que el alumno pueda

  • Upload
    lamdat

  • View
    217

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Manual de Asignatura Basado en Competencias Profesionales Metodologías de … · 2018-06-08 · desarrollo de algoritmos en diagramas de flujo. Con el fin de que el alumno pueda

ELABORÓ: UNIVERSIDAD TECNOLÓGICA REVISÓ: UNIVERSIDAD(ES) TECNOLÓGICA(S)

AUTORES:

REVISORES: APROBÓ: COMISIÓN NACIONAL

ACADÉMICA DE TIC FECHA DE ENTRADA EN VIGOR:

Manual de Asignatura Basado en Competencias Profesionales

Metodologías de la programación

Junio, 2012

Page 2: Manual de Asignatura Basado en Competencias Profesionales Metodologías de … · 2018-06-08 · desarrollo de algoritmos en diagramas de flujo. Con el fin de que el alumno pueda

METODOLOGÍA DE LA PROGRAMACIÓN

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Página 2

Tabla de contenido I. PROPÓSITO GENERAL DEL MANUAL ................................................................... 3

II. INTRODUCCIÓN .......................................................................................................... 3

III. DESARROLLO ........................................................................................................... 4

1. Unidad Temática . Conceptos Básicos ............................................................... 4

1.1 Adquisición, procesamiento y almacenamiento de datos ............................................ 4

1.2 Reconocer la diferencia entre un algoritmo, pseudocódigo y diagrama de flujo ........ 6

1.3 Tipos de datos (numéricos, caracteres / cadenas, booleanos)..................................... 10

1.4 Identificadores, variables y constantes ....................................................................... 11

1.5 Metodología para la solución de problemas por medio de computadoras ................. 13

Unidad Temática 2. Expresiones ................................................................................ 20

2.1 Operadores aritméticos, relacionales y lógicos .......................................................... 20

2.2 Expresiones ................................................................................................................. 23

2.3 Jerarquía de operadores .............................................................................................. 24

Unidad Temática 3. Algoritmos y Diagramas de Flujo ...................................... 36

Símbolos utilizados en los Diagramas de Flujo ................................................... 41

Conceptos preliminares de los diagramas de flujo ........................................................... 42

Símbolo de Entrada y Salida (E/S) ................................................................................... 45

Símbolo de procesamiento o bloque de instrucciones ...................................................... 47

Símbolo de decisión ................................................................................................... 49

IV. Bibliografía ................................................................................................................ 51

B. Citas Bibliográficas ................................................................................................ 52

Page 3: Manual de Asignatura Basado en Competencias Profesionales Metodologías de … · 2018-06-08 · desarrollo de algoritmos en diagramas de flujo. Con el fin de que el alumno pueda

METODOLOGÍA DE LA PROGRAMACIÓN

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Página 3

I. PROPÓSITO GENERAL DEL MANUAL

El objetivo de la asignatura de metodologías de la programación es: El alumno diseñará algoritmos en pseudocódigo y diagramas de flujo, para resolver un problema determinado, por lo tanto el presente manual pretende b r i n d a r herramientas a los alumnos para que en un futuro a corto plazo puedan por si solos elaborar algoritmos en pseudocódigo, que lleven a la solución de una tarea electrónicamente, así como despertar su espíritu emprendedor en programas computacionales.

II. INTRODUCCIÓN

El presente documento integra información acerca de temas relacionados con la

metodología de programación en pseudocódigo.

Se tratan 3 temas en particular, se inicia con los conceptos básicos en materia de

elaboración de algoritmos en pseudocódigo, para después pasar a elaborar expresiones

matemáticas en lenguaje algorítmico y concluir con estructuras más completas como son

las estructuras de decisión y repetición, además se complementa con otra herramienta de

desarrollo de algoritmos en diagramas de flujo.

Con el fin de que el alumno pueda aplicar algunos de los conocimientos adquiridos

durante el desarrollo de la asignatura, en este manual se integran prácticas sencillas

que le ayudaran a comprender de una mejor manera conceptos y estrategias de

elaboración de algoritmos en pseudocódigo.

Page 4: Manual de Asignatura Basado en Competencias Profesionales Metodologías de … · 2018-06-08 · desarrollo de algoritmos en diagramas de flujo. Con el fin de que el alumno pueda

METODOLOGÍA DE LA PROGRAMACIÓN

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Página 4

III. DESARROLLO

1. Unidad Temática. Conceptos Básicos

Objetivo El alumno determinará las entradas, procesos y salidas de un problema, utilizando los elementos básicos de programación, para el planteamiento de una solución.

Temas Saber Saber hacer Ser

Adquisición, procesamiento y almacenamiento de datos

Identificar los elementos básicos del proceso de información (entrada - proceso - salida)

Esquematizar el proceso de información.

Analítico. Ordenado. Sistemático.

Conceptos de Algoritmos, Pseudocódigo y Diagrama de Flujo

Reconocer la diferencia entre un algoritmo, pseudocódigo y diagrama de flujo

Determinar de los distintos tipos de técnicas la adecuada para la solución de problemas.

Analítico. Sistemático Ordenado Asertivo.

Tipos de datos (numéricos, caracteres / cadenas, booleanos.

Identificar los diferentes tipos de datos utilizados en la programación, aplicándolo en la resolución de un problema.

Determinar el tipo de dato a utilizar dependiendo de los requerimientos de información a manipular.

Analítico. Ordenado. Sistemático.

Identificadores, variables y constantes

Reconocer los conceptos de identificador, variable y constante. Describir las reglas de creación de identificadores.

Determinar las variables y constantes a utilizar, dependiendo del tipo de datos a emplear y los requerimientos.

Analítico. Ordenado. Sistemático

Metodología para la solución de problemas por medio de computadoras

Identificar las etapas de la metodología de solución de problemas por medio de computadoras.

Determinar las entradas, proceso y salidas de un problema.

Analítico, ordenado, sistemático, coherente, proactivo, asertivo Hábil para trabajo en equipo.

1.1 Adquisición, procesamiento y almacenamiento de datos Saber Identificar los elementos básicos del proceso de información (entrada - proceso - salida) Saber hacer Esquematizar el proceso de información. Resultado de aprendizaje El alumno realizará un documento con 15 ejercicios, elaborando para cada uno de ellos, una tabla en la que identifiquen:

Los valores de entrada, procesos y salidas Los tipos de datos a emplear asociados a las variables o constantes y las

operaciones a realizar.

Page 5: Manual de Asignatura Basado en Competencias Profesionales Metodologías de … · 2018-06-08 · desarrollo de algoritmos en diagramas de flujo. Con el fin de que el alumno pueda

METODOLOGÍA DE LA PROGRAMACIÓN

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Página 5

La computadora es una herramienta que se utiliza para representar cualquier situación de la realidad en forma de datos, los cuales se procesan después para generar información. Esto quiere decir que toda situación que pueda ser abstraída y representada en forma de datos, puede ser manejada mediante la computadora. La figura 1.1 muestra un esquema de lo descrito anteriormente, es decir, los datos entran como materia prima, se procesan para transformarlos en la información que se da como salida. Tanto los datos como el procedimiento necesario para generar la información, son adquiridos o suministrados a la computadora en forma de un programa constituido por instrucciones. La computadora interpreta y procesa las instrucciones del programa de acuerdo con ciertas reglas de sintaxis que conforman el lenguaje de programación, mediante es cual es posible comunicarle lo que debe hacer.

Figura 1.1 Esquema Adquisición-Procesamiento-Salida de datos

Los elementos básicos que componen una computadora son la unidad central de procesamiento, la unidad de memoria, la unidad de entrada y la unidad de salida. La unidad central de procesamiento es el “cerebro” que controla el funcionamiento de los componentes y ejecuta las operaciones aritméticas y lógicas. Las operaciones del procesador central son muy simples, pero ejecutadas a una velocidad muy alta –del orden de millones por segundo- permiten la ejecución de tareas simples o complejas. La memoria se utiliza para almacenar los datos, y a éstos se les aplica las operaciones del procesador. Existen dos tipos de memoria: la principal y la auxiliar. La memoria principal permite al procesador extraer y almacenar datos a una velocidad superior a la auxiliar. Cada operación propicia por lo menos un acceso a memoria. Para que el procesador pueda avanzar de una operación a la siguiente sin retraso, el conjunto de instrucciones se almacena en esta memoria; en otras palabras, la memoria principal guarda tanto las instrucciones como los datos sobre los que actúa el procesador central. La memoria principal está limitada por su alto costo; debido a esto no es posible conservar en ellas grandes cantidades de datos e instrucciones y, en consecuencia, sólo se usa para guardar lo que el procesador esté utilizando por el momento. Además tiene la característica de que no permite almacenar datos permanentemente, pues si se apaga la computadora se pierde lo que haya en la memoria. Por tales razones, las computadoras están equipadas con memorias auxiliares para almacenamiento masivo y permanente de datos, tales como discos magnéticos fijos, discos compactos, cintas magnéticas, entre otros. Estos dispositivos tienen más capacidad que la memoria principal, pero son más lentos. Los datos pueden almacenarse en ellos de manera permanente; es decir, pueden guardarse para usos posteriores.

Situación

Real

Adquisición

de Datos Procesamient

o Información

Page 6: Manual de Asignatura Basado en Competencias Profesionales Metodologías de … · 2018-06-08 · desarrollo de algoritmos en diagramas de flujo. Con el fin de que el alumno pueda

METODOLOGÍA DE LA PROGRAMACIÓN

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Página 6

La unidad de entrada se utiliza para introducir datos del exterior en la memoria de la computadora a través de dispositivos periféricos de entrada como teclados, ratón, discos, módem, lectora de código de barras, etcétera. Esta unidad realiza automáticamente la traducción de símbolos inteligibles para la gente, en símbolos que la computadora pueda manejar. La unidad de salida permite transferir datos de la memoria al exterior, a través de dispositivos periféricos de salida como impresoras, pantallas de video, módem, etc. Un programa es un conjunto de instrucciones que guían a la computadora para realizar alguna actividad o resolver algún problema; en el programa se ejecutan diferentes acciones de acuerdo con los datos que se estén procesando. El programa debe incluir instrucciones para las acciones que deban ejecutarse sobre cada uno de los tipos de datos admitidos, además instrucciones que identifiquen los datos erróneos y recuperarse ante la aparición de estos. Cuando se ejecuta un programa con un tipo de dato específico, es probable que no se ejecuten todas las instrucciones sino sólo las que sean pertinentes a los datos en cuestión.

1.2 Reconocer la diferencia entre un algoritmo, pseudocódigo y diagrama de flujo

Saber Reconocer la diferencia entre un algoritmo, pseudocódigo y diagrama de flujo. Saber hacer Determinar de los distintos tipos de técnicas la adecuada para la solución de problemas.

Informalmente se define un algoritmo como un conjunto de reglas, pasos u órdenes que indican una secuencia de operaciones a ejecutar para resolver un problema determinado que debe satisfacer los requisitos siguientes:

a. Ser finita. En caso de ser infinita la secuencia evidentemente no es útil para resolver ningún problema real.

b. Cada paso debe ser factible de realizarse por algún ser biológico o dispositivo. Por

ejemplo, un algoritmo para viajar a la Luna no puede tener en sus pasos:

Encienda el motor del automóvil.

Arranque el automóvil.

Póngalo en dirección a la Luna.

Pise el acelerador y ruede hasta llegar a la Luna.

Page 7: Manual de Asignatura Basado en Competencias Profesionales Metodologías de … · 2018-06-08 · desarrollo de algoritmos en diagramas de flujo. Con el fin de que el alumno pueda

METODOLOGÍA DE LA PROGRAMACIÓN

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Página 7

porque evidentemente el último paso no es factible de realizar.

c. La ejecución de la secuencia de pasos debe dar un resultado en un tiempo finito. Por

ejemplo, un algoritmo para subir una escalera no puede tener en su secuencia los pasos:

1. Suba un escalón.

2. Baje un escalón.

3. Vuelva al paso 1.

porque evidentemente aunque la secuencia es finita y cada paso es factible no dará

una respuesta en un tiempo finito”.

El pseudocódigo es una técnica para diseño de programas (algoritmos) que permite definir las estructuras de datos, las operaciones que se aplicarán a los datos y la lógica que tendrá el programa de computadora para solucionar un determinado problema. Utiliza un pseudolenguaje muy parecido a nuestro idioma, pero que respeta las directrices y los elementos de los lenguajes de programación. Un Diagrama de Flujo representa la esquematización gráfica de un algoritmo. En realidad muestra gráficamente los pasos o procesos a seguir para alcanzar la solución de un problema. Su correcta construcción es sumamente importante porque a partir del mismo se escribe un programa en algún lenguaje de programación. Si el diagrama de flujo está completo y correcto, el paso del mismo a un lenguaje de programación es relativamente simple y directo.

Page 8: Manual de Asignatura Basado en Competencias Profesionales Metodologías de … · 2018-06-08 · desarrollo de algoritmos en diagramas de flujo. Con el fin de que el alumno pueda

METODOLOGÍA DE LA PROGRAMACIÓN

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Página 8

NOMBRE DE LA PRÁCTICA: Pseudocódigo: Área del triángulo UNIDAD TEMÁTICA: Conceptos Básicos TEMA: 1.2 Reconocer la diferencia entre un algoritmo en

pseudocódigo y diagrama de flujo

OBJETIVO DE LA PRÁCTICA: Crear en pseudocódigo el algoritmo para calcular el área del triángulo

TIEMPO DE LA PRÁCTICA: 40 min FECHA:

DESCRIPCIÓN:

Desarrollar el pseudocódigo y Diagrama de flujo para calcular el área de un triángulo dadas la base y la altura como datos de entrada, la salida debe quedar de la siguiente forma El área del triangulo es __.

MATERIALES Y EQUIPOS:

Computadora. Programa PSeInt

PROCEDIMIENTO:

1. Identificar los datos de Entrada. 2. Desarrollar la fórmula del cálculo del área de un triangulo. 3. Identificar los datos de salida. 4. Escribir en pseudocódigo el ejercicio descrito 5. Captura las instrucciones en el programa Pseint 6. Ejecuta el pseudocódigo y proporciona datos de prueba 7. Observa el resultado generado y compruébalo con una calculadora. 8. Genera el diagrama de flujo con la herramienta “Dibujar diagrama de flujo” de la barra

de herramientas del PseInt.

RESULTADOS Y ANÁLISIS:

Page 9: Manual de Asignatura Basado en Competencias Profesionales Metodologías de … · 2018-06-08 · desarrollo de algoritmos en diagramas de flujo. Con el fin de que el alumno pueda

METODOLOGÍA DE LA PROGRAMACIÓN

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Página 9

CONCLUSIÓN

El ejercicio ha puesto especial cuidado en la identificación de aquellos elementos que contribuyen a desarrollar en los alumnos la capacidad abstraer los distintos elementos esenciales para elaborar un pseudocódigo.

CUESTIONARIO

1. Enumera los datos de entrada que identificaste 2. Enumera los datos de salida que identificaste 3. ¿Cuál es la diferencia entre un dato de entrada y un dato de salida? 4. ¿Para qué se utilizan los datos de entrada en el presente ejercicio?

REFERENCIAS López Román Leobardo; Metodología de la programación orientada a objetos; Alfaomega; 2da edición; México. Cairo O., Metodología de la Programación. Diagramas de Flujo, Algoritmos y Programas, Alfaomega Grupo Editor S.A. De C.V., D.F. México, 2005,

Page 10: Manual de Asignatura Basado en Competencias Profesionales Metodologías de … · 2018-06-08 · desarrollo de algoritmos en diagramas de flujo. Con el fin de que el alumno pueda

METODOLOGÍA DE LA PROGRAMACIÓN

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Página 10

1.3 Tipos de datos (numéricos, caracteres / cadenas, booleanos)

Saber Identificar los diferentes tipos de datos utilizados en la programación, aplicándolo en la resolución de un problema. Saber hacer Determinar el tipo de dato a utilizar dependiendo de los requerimientos de información a manipular. Los datos a procesar por una computadora se pueden clasificar en:

Simples

Estructurados

La principal característica de los datos simples es que ocupan sólo una casilla de memoria,

por lo tanto, una variable simple hace referencia a un único valor a la vez. Dentro de este

grupo de datos se encuentran: enteros, reales, caracteres y booleanos.

Los datos estructurados se caracterizan por el hecho de que con un nombre se hace

referencia a un grupo de casillas de memoria. Es decir, un dato estructurado tiene varios

LISTA DE COTEJO PARA PRÁCTICAS DE LABORATORIO

CATEGORÍA 100% 75% 50% 25%

1 Comprendió e interpretó la problemática a resolver

2 Deduce los datos de entrada correctamente

3 Deduce los datos de salida correctamente

4 Elabora y aplica fórmulas correctamente

5 El algoritmo en pseudocódigo tiene secuencia lógica desde el inicio hasta el final

6 Estructura correctamente el pseudocódigo para la entrada de datos

7 Estructura correctamente el pseudocódigo para la salida de datos

8 El algoritmo en pseudocódigo llega a la solución correcta

total

Page 11: Manual de Asignatura Basado en Competencias Profesionales Metodologías de … · 2018-06-08 · desarrollo de algoritmos en diagramas de flujo. Con el fin de que el alumno pueda

METODOLOGÍA DE LA PROGRAMACIÓN

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Página 11

componentes. Cada uno de los componentes puede ser a su vez un dato simple o

estructurado. Dentro de este grupo de datos se encuentran: arreglos y cadena de caracteres.

Datos Numéricos

Dentro de los tipos de datos numéricos encontramos los enteros y los reales. Los enteros

son números que pueden estar precedidos del signo + o -, y que no tienen parte decimal.

Por ejemplo: 128 1528 -714 16235 -14780 8530

Los reales son números que pueden estar precedidos del signo + o -, y que tienen una parte

decimal. Por ejemplo: 7.5 128.0 -37.865 129.7 16000.50 -15.0

Datos Carácter

El tipo de dato carácter puede almacenar un carácter; cualquier carácter válido para la

computadora y generalmente se escribe entre apóstrofes. Por ejemplo: ‘a’ ‘B’ ‘$’ ‘9’ ‘-‘ ‘#’ ‘f’

Datos Cadena de caracteres

Los datos cadena de caracteres están compuestos por una hilera de caracteres alfabéticos,

numéricos y especiales, que sirven para representar y manejar datos tales como nombres de

personas o de empresas, descripciones de artículos o productos, direcciones de personas,

entre otros. Este tipo de datos también se conoce como alfabético o alfanumérico, ya que su

contenido –sea cual fuere- siempre se considera como una serie de caracteres; los valores

de este tipo normalmente se encierran entre comillas. Por ejemplo: “abcde” “$9#7” “Carlos Gómez” “Rosario” “754-27-22”

Datos Booleanos

Este tipo de dato está compuesto por los valores False (falso) y True (verdadero). También

es conocido como tipo de dato lógico.

1.4 Identificadores, variables y constantes Saber

Reconocer los conceptos de identificador, variable y constante. Describir las reglas de creación de identificadores.

Saber hacer Determinar las variables y constantes a utilizar, dependiendo del tipo de datos a emplear y los requerimientos. Identificadores

Los datos a procesar por una computadora, ya sean simples o estructurados, deben

almacenarse en la memoria para su posterior utilización. Las casillas o celdas de memoria

utilizadas para almacenar tienen un nombre que permite su identificación.

Page 12: Manual de Asignatura Basado en Competencias Profesionales Metodologías de … · 2018-06-08 · desarrollo de algoritmos en diagramas de flujo. Con el fin de que el alumno pueda

METODOLOGÍA DE LA PROGRAMACIÓN

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Página 12

Se llama identificador al nombre que se le da a las casillas de memoria. Un identificador se

forma de acuerdo a ciertas reglas (las mismas pueden tener alguna variante dependiendo del

lenguaje de programación utilizado):

El primer carácter que forma un identificador debe ser una letra.

Los demás caracteres pueden ser letras, dígitos o el símbolo especial: _.

La longitud del identificador no está limitada pero se recomienda algo corto y descriptivo.

En la figura 1.2 se muestran ejemplos de identificadores.

Figura 1.2 Identificadores válidos

Constantes

Las constantes son datos que no cambian durante la ejecución de un programa. Para

nombrar las constantes se utilizan los identificadores mencionados anteriormente. Existen

tipos de constantes como tipos de datos, por lo tanto, puede haber constantes de tipo entero,

real, carácter, cadena de caracteres, etc.

En la figura 1.3, la constante NUM es de tipo entero, NREAL y NUMREA son de tipo real,

y RESU de tipo cadena de caracteres. Estas constantes no cambiarán su valor durante la

ejecución del programa. Es muy importante que los nombres de las constantes sean

representativos de la función que tienen las mismas en el programa.

Figura 1.3 Constantes representadas en la memoria

Variables

Las variables son objetos que pueden cambiar su valor durante la ejecución de un

programa. Para nombrar las variables se utilizan los identificadores explicados

anteriormente. Al igual que las constantes, pueden existir tipos de variables como tipos de

datos. En la figura 1.4, la variable I es de tipo entero, tiene un valor inicial de cero y

cambiará su valor durante la ejecución del programa. La variable SUEL y SUMA son de

tipo real, están inicializadas con el valor de cero, y al igual que la variable I, seguramente

cambiarán su valor durante la ejecución del programa.

Figura 1.4 Variables representadas en la memoria

ACU

M

aux X7 suma NUM_1

NUMRE

A 8.69

NREA

L 7.25

NU

M 5

RESU

“resultado”

SUE

L 0

SUM

A 0

I

0

Page 13: Manual de Asignatura Basado en Competencias Profesionales Metodologías de … · 2018-06-08 · desarrollo de algoritmos en diagramas de flujo. Con el fin de que el alumno pueda

METODOLOGÍA DE LA PROGRAMACIÓN

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Página 13

Se debe remarcar que los nombres de las variables han de ser representativas de la función

que cumplen en el programa.

1.5 Metodología para la solución de problemas por medio de computadoras Saber Identificar las etapas de la metodología de solución de problemas por medio de computadoras. Saber hacer Determinar las entradas, proceso y salidas de un problema. En la figura 1.5 se puede observar un esquema de las etapas que se sugieren seguir para la

solución de un problema.

Figura 1.5 Etapas de la solución de un problema

PROBLEMA

ANÁLISIS PROFUNDO DEL

PROBLEMA

CONSTRUCCIÓN DEL ALGORITMO

VERIFICACIÓN DEL ALGORITMO

ETAPA 1 ETAPA 2 ETAPA 3

Page 14: Manual de Asignatura Basado en Competencias Profesionales Metodologías de … · 2018-06-08 · desarrollo de algoritmos en diagramas de flujo. Con el fin de que el alumno pueda

METODOLOGÍA DE LA PROGRAMACIÓN

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Página 14

NOMBRE DE LA PRÁCTICA: Pseudocódigo: Verificar si es par o impar UNIDAD TEMÁTICA: Conceptos Básicos TEMA:

1.5 Metodología para la solución de problemas por medio de computadoras.

OBJETIVO DE LA PRÁCTICA: Crear en pseudocódigo el algoritmo para ejemplificar el uso de instrucciones condicionales.

TIEMPO DE LA PRÁCTICA: 25 min FECHA:

DESCRIPCIÓN: Desarrollar el pseudocódigo y Diagrama de flujo para un programa que pida un número diferente de cero y que despliegue si es par o impar.

MATERIALES Y EQUIPOS:

Computadora. Programa PSeInt

PROCEDIMIENTO:

1. Identificar los datos de Entrada. 2. Desarrollar la fórmula del cálculo del módulo de un número. 3. Establecer las condiciones necesarias para verificar si un numero es par o impar

4. Identificar los datos de salida. 5. Escribir en pseudocódigo el ejercicio descrito 6. Captura las instrucciones en el programa Pseint 7. Ejecuta el pseudocódigo y proporciona datos de prueba 8. Observa el resultado generado y compruébalo con una calculadora. 9. Genera el diagrama de flujo con la herramienta “Dibujar diagrama de flujo” de la barra

de herramientas del PseInt. RESULTADOS Y ANÁLISIS:

Page 15: Manual de Asignatura Basado en Competencias Profesionales Metodologías de … · 2018-06-08 · desarrollo de algoritmos en diagramas de flujo. Con el fin de que el alumno pueda

METODOLOGÍA DE LA PROGRAMACIÓN

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Página 15

CONCLUSIÓN

El ejercicio ha puesto especial cuidado en la identificación de aquellos elementos que contribuyen a desarrollar en los alumnos la capacidad de abstraer los distintos elementos esenciales para elaborar un pseudocódigo.

CUESTIONARIO

1. Enumera los datos de entrada que identificaste 2. Enumera los datos de salida que identificaste 3. ¿Qué es el módulo de un número? 4. ¿Qué operador relacional utiliza el presente ejercicio? 5. Escribe la sintaxis de la instrucción condicional.

REFERENCIAS

López Román Leobardo; Metodología de la programación orientada a objetos; Alfaomega; 2da edición; México. Cairo O., Metodología de la Programación. Diagramas de Flujo, Algoritmos y Programas, Alfaomega Grupo Editor S.A. De C.V., D.F. México, 2005,

NOMBRE DE LA PRÁCTICA: Pseudocódigo: Sueldo de un empleado. UNIDAD TEMÁTICA: Conceptos Básicos TEMA:

1.5 Metodología para la solución de problemas por medio de computadoras

OBJETIVO DE LA PRÁCTICA: Crear en pseudocódigo el algoritmo para calcular el sueldo de un empleado

TIEMPO DE LA PRÁCTICA: 25 min FECHA:

DESCRIPCIÓN: Desarrollar el pseudocódigo y Diagrama de flujo para calcular el salario de un empleado sabiendo que éstos se calculan en base a las horas semanales trabajadas y de acuerdo a un precio especificado por cada hora. Si se pasan de 40 horas semanales, las horas extraordinarias se pagarán al doble de la hora ordinaria. En caso contrario se pagarán de forma ordinaria.

MATERIALES Y EQUIPOS:

Page 16: Manual de Asignatura Basado en Competencias Profesionales Metodologías de … · 2018-06-08 · desarrollo de algoritmos en diagramas de flujo. Con el fin de que el alumno pueda

METODOLOGÍA DE LA PROGRAMACIÓN

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Página 16

Computadora. Programa PSeInt

PROCEDIMIENTO:

1. Identificar los datos de Entrada.

2. Desarrollar la fórmula del cálculo del sueldo. 3. Identificar los datos de salida. 4. Escribir en pseudocódigo el ejercicio descrito 5. Captura las instrucciones en el programa Pseint 6. Ejecuta el pseudocódigo y proporciona datos de prueba 7. Observa el resultado generado y compruébalo con una calculadora. 8. Genera el diagrama de flujo con la herramienta “Dibujar diagrama de flujo” de la barra

de herramientas del PseInt.

RESULTADOS Y ANÁLISIS:

CONCLUSIÓN

El ejercicio ha puesto especial cuidado en la identificación de aquellos elementos que contribuyen a desarrollar en los alumnos la capacidad abstraer los distintos elementos esenciales para elaborar un pseudocódigo.

CUESTIONARIO

1. Enumera los datos de entrada que identificaste

2. Enumera los datos de salida que identificaste 3. ¿ Cuál es la diferencia entre los dos caminos que se pueden seguir en la condición?

REFERENCIAS

Page 17: Manual de Asignatura Basado en Competencias Profesionales Metodologías de … · 2018-06-08 · desarrollo de algoritmos en diagramas de flujo. Con el fin de que el alumno pueda

METODOLOGÍA DE LA PROGRAMACIÓN

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Página 17

López Román Leobardo; Metodología de la programación orientada a objetos; Alfaomega; 2da edición; México. Cairo O., Metodología de la Programación. Diagramas de Flujo, Algoritmos y Programas, Alfaomega Grupo Editor S.A. De C.V., D.F. México, 2005.

NOMBRE DE LA PRÁCTICA: Pseudocódigo: Vocal o consonante UNIDAD TEMÁTICA: Conceptos Básicos TEMA:

1.5 Metodología para la solución de problemas por medio de computadoras

OBJETIVO DE LA PRÁCTICA: Crear en pseudocódigo el algoritmo para determinar si una letra es vocal o consonante.

TIEMPO DE LA PRÁCTICA: 25 min FECHA:

DESCRIPCIÓN: Desarrollar el pseudocódigo y diagrama de flujo que imprima si una letra dada por el teclado es una vocal o una consonante.

MATERIALES Y EQUIPOS:

Computadora. Programa PSeInt

PROCEDIMIENTO:

1. Identificar los datos de Entrada. 2. Establecer la instrucción condicional.

3. Identificar los datos de salida. 4. Escribir en pseudocódigo el ejercicio descrito 5. Captura las instrucciones en el programa Pseint 6. Ejecuta el pseudocódigo y proporciona datos de prueba 7. Observa el resultado generado y compruébalo con una calculadora. 8. Genera el diagrama de flujo con la herramienta “Dibujar diagrama de flujo” de la barra

de herramientas del PseInt.

RESULTADOS Y ANÁLISIS:

Page 18: Manual de Asignatura Basado en Competencias Profesionales Metodologías de … · 2018-06-08 · desarrollo de algoritmos en diagramas de flujo. Con el fin de que el alumno pueda

METODOLOGÍA DE LA PROGRAMACIÓN

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Página 18

CONCLUSIÓN

El ejercicio ha puesto especial cuidado en la identificación de aquellos elementos que contribuyen a desarrollar en los alumnos la capacidad de abstraer los distintos elementos esenciales para elaborar un pseudocódigo.

CUESTIONARIO

1. Enumera los datos de entrada que identificaste 2. Enumera los datos de salida que identificaste 3. ¿Qué tipo de dato de entrada es definido? 4. ¿Qué operadores relacionales se utilizan en el ejercicio?

REFERENCIAS

López Román Leobardo; Metodología de la programación orientada a objetos; Alfaomega; 2da edición; México. Cairo O., Metodología de la Programación. Diagramas de Flujo, Algoritmos y Programas, Alfaomega Grupo Editor S.A. De C.V., D.F. México, 2005.

NOMBRE DE LA PRÁCTICA: Pseudocódigo: Verificar rango UNIDAD TEMÁTICA: Conceptos Básicos TEMA:

1.5 Metodología para la solución de problemas por medio de computadoras

OBJETIVO DE LA PRÁCTICA: Crear en pseudocódigo el algoritmo para verificar rango TIEMPO DE LA PRÁCTICA: 25 min FECHA:

DESCRIPCIÓN:

Desarrollar el pseudocódigo y diagrama de flujo que imprima si un número dado por el teclado se encuentra en el rango de 50 a 100.

Page 19: Manual de Asignatura Basado en Competencias Profesionales Metodologías de … · 2018-06-08 · desarrollo de algoritmos en diagramas de flujo. Con el fin de que el alumno pueda

METODOLOGÍA DE LA PROGRAMACIÓN

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Página 19

MATERIALES Y EQUIPOS:

Computadora. Programa PSeInt

PROCEDIMIENTO:

1. Identificar los datos de Entrada. 2. Establecer la instrucción condicional. 3. Identificar los datos de salida. 4. Escribir en pseudocódigo el ejercicio descrito 5. Captura las instrucciones en el programa Pseint 6. Ejecuta el pseudocódigo y proporciona datos de prueba 7. Observa el resultado generado y compruébalo con una calculadora. 8. Genera el diagrama de flujo con la herramienta “Dibujar diagrama de flujo” de la barra

de herramientas del PseInt.

RESULTADOS Y ANÁLISIS:

CONCLUSIÓN

El ejercicio ha puesto especial cuidado en la identificación de aquellos elementos que contribuyen a desarrollar en los alumnos la capacidad de abstraer los distintos elementos esenciales para elaborar un pseudocódigo.

CUESTIONARIO

9. Enumera los datos de entrada que identificaste 10. Enumera los datos de salida que identificaste 11. ¿Cuál es la diferencia entre utilizar el operador lógico y (and) y o (or).

Page 20: Manual de Asignatura Basado en Competencias Profesionales Metodologías de … · 2018-06-08 · desarrollo de algoritmos en diagramas de flujo. Con el fin de que el alumno pueda

METODOLOGÍA DE LA PROGRAMACIÓN

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Página 20

REFERENCIAS

López Román Leobardo; Metodología de la programación orientada a objetos; Alfaomega; 2da edición; México. Cairo O., Metodología de la Programación. Diagramas de Flujo, Algoritmos y Programas, Alfaomega Grupo Editor S.A. De C.V., D.F. México, 2005,

Unidad Temática 2. Expresiones

Objetivo. El alumno convertirá expresiones algebraicas, aritméticas y lógicas a expresiones algorítmicas, considerando la jerarquía de operadores, para realizar las tareas solicitadas.

Temas Saber Saber hacer Ser

Operadores aritméticos, relacionales y lógicos

Identificar los tipos de operadores existentes.

Localizar los tipos de operadores Analítico, ordenado, sistemático. Coherente, asertivo

Jerarquía de operadores Identificar la jerarquía de los operadores. Resolver expresiones aritméticas y lógicas.

Analítico, Ordenado, sistemático. Coherente. Proactivo. Asertivo

Expresiones Identificar las expresiones aritméticas y/o lógicas inmersas en el planteamiento de un problema.

Convertir expresiones algebraicas, aritméticas y lógicas a expresiones algorítmicas

Analítico. Ordenado. Sistemático. Coherente. Proactivo. Asertivo Hábil para trabajo en equipo.

2.1 Operadores aritméticos, relacionales y lógicos

Saber Identificar los tipos de operadores existentes.

Saber hacer Localizar los tipos de operadores Resultado de aprendizaje El alumno entregará un cuadernillo con al menos 45 ejercicios que contenga:

- Conversión de expresiones algebraicas, aritméticas y lógicas a expresiones algorítmicas (15 de cada una).

- La jerarquía de operadores indicando el orden de ejecución de cada una de ellas.

Page 21: Manual de Asignatura Basado en Competencias Profesionales Metodologías de … · 2018-06-08 · desarrollo de algoritmos en diagramas de flujo. Con el fin de que el alumno pueda

METODOLOGÍA DE LA PROGRAMACIÓN

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Página 21

Un operador es un símbolo o grupo de símbolos (incluyendo letras) que indica que se ha de realizar cierta acción entre uno o dos operandos (valores). Se pueden clasificar básicamente en 3 tipos:

Operadores Aritméticos.- Son aquellos que involucran valores numéricos como operandos para calcular un resultado numérico.

Operador Operación Ejemplo Resultado

^ Potencia 4 ^ 3 64 * /

Mod

Multiplicación División

Modulo ó Residuo

8.25 * 7 15 / 4

15 mod 2

57.75 3.75

1

+ -

Suma Resta

125.78 + 62.5 65.30 – 32.33

188.28 32.97

Operadores Relacionales.- Se utilizan cuando se requiere comparar dos valores, dando como resultado un valor Booleano.

Operador Operación Ejemplo Resultado

= <> <= >= < >

Igual que Diferente que

Menor o Igual que Mayor o Igual que

Menor que Mayor que

“hola” = “hora” ‘a’ <> ‘b’ 15 <= 22 35 >= 20

7 < 15 22 > 11

Falso Verdadero Verdadero Verdadero Verdadero Verdadero

Operadores Lógicos ó Booleanos.- Conjunción, Disyunción y Negación. Los operadores de conjunción (AND) y disyunción (OR), permiten formular condiciones complejas a partir de condiciones simples, es decir, une a dos operandos de tipo booleano (normalmente los resultados de 2 operaciones relacionales) obteniendo como resultado un valor booleano.

Operador Operación Ejemplo Resultado

& Conjunción (AND) 4<6 & 5 = 2 Falso | Disyunción (OR) 4<6 | 5 = 2 Verdadero

~ Negación (NOT) ~ ( 4 < 6) Falso

- Una Conjunción (&) es verdadera solo si sus dos argumentos son verdaderos, en

caso contrario, el resultado es falso. La conjunción expresa el interés porque las 2 condiciones a revisar se cumplan.

Ejemplo Explicación

promedio >= 8.5 & promedio < 9.5 La variable promedio debe ser superior o igual a 8.5 pero menor a 9.5

Page 22: Manual de Asignatura Basado en Competencias Profesionales Metodologías de … · 2018-06-08 · desarrollo de algoritmos en diagramas de flujo. Con el fin de que el alumno pueda

METODOLOGÍA DE LA PROGRAMACIÓN

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Página 22

nacionalidad = “mexicana” & edad > 18

La variable nacionalidad debe ser “mexicana” considerando también que la variable edad debe ser mayor a 18

mes > 6 & mes <> 11

La variable mes puede ser mayor de 6 , pero no tiene que ser 11 (es decir 7, 8, 9, 10, 12)

- Una Disyunción ( | ) es verdadera si alguno de sus argumentos es verdadero, en

caso contrario, el resultado es falso La disyunción expresa que se cumpla alguna de sus 2 opciones (operandos)

Ejemplo Explicación

TengoBoletoMetro = verdadero | dinero > 2.00 Se revisan las variables TengoBoletoMetro y dinero para saber si por alguna de los dos evaluaciones es viable viajar en metro

x = 5 | x > 13

Se revisa que la variable x sea igual a 5 o superior a 13 (es decir 5, 14,15,16,17…)

Es posible expresar los operandos Conjunción y Disyunción en la siguiente tabla

- Una Negación ( ~ ) cambia el valor booleano de su operando de falso a verdadero y viceversa. Solo necesita un operando Ejemplo Explicación

~ ( ColorOjos = “verde” ) Se evalúa que la variable ColorOjos no contenga el valor “verde”

~ ( x > 6) Todo valor de x que no sea mayor que 6 (es decir, x puede tomar valores de: 6, 5, 4, 3, 2, 1, 0, -1, ….)

~( ~ ( edad = 8 ) ) Se evalúa que la edad sea igual a 8

Observar que una doble negación obtiene el valor inicial. La tabla de verdad del operador Negación es:

P Q P & Q P | Q

Verdadero Verdadero Verdadero Verdadero Verdadero Falso Falso Verdadero

Falso Verdadero Falso Verdadero

Falso Falso Falso Falso

P ~ P

Verdadero Falso

Falso Verdadero

Page 23: Manual de Asignatura Basado en Competencias Profesionales Metodologías de … · 2018-06-08 · desarrollo de algoritmos en diagramas de flujo. Con el fin de que el alumno pueda

METODOLOGÍA DE LA PROGRAMACIÓN

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Página 23

2.2 Expresiones

Saber Identificar las expresiones aritméticas y/o lógicas inmersas en el planteamiento de un problema. Saber hacer Convertir expresiones algebraicas, aritméticas y lógicas a expresiones algorítmicas

Una expresión es un conjunto de valores constantes ó variables relacionados por operadores que al ser evaluados regresan un resultado. Normalmente, cuando se plantea un problema representando el mundo real, se hace uso de los operadores aritméticos, relacionales y lógicos Ejemplos: Problema.- Calcular la cantidad de árboles que se pueden plantar en un terreno rectangular, sabiendo que un árbol necesita 4 m2 para su crecimiento. El enunciado involucra conocer el área del terreno, la siguiente expresión permite el cálculo de la misma

Area_terreno Base_terreno * Altura_terreno Y también que la cantidad de árboles está dada por

Cantidad_arboles Area_terreno / 4 Problema.- Revisar si el pago de luz se tendrá que hacer con recargo, o será pago normal. Se sabe que se paga con recargo cuando se excede la fecha límite. La expresión involucrada en la revisión de la fecha de hoy para dar la respuesta es

Fecha_Hoy > Fecha_Limite

Da tal manera que todos aquellos casos en que la expresión sea verdadera, son los mismos cuando el pago se realiza con recargos. Problema.- Inscripción de un alumno a un salón de acuerdo al promedio:

Page 24: Manual de Asignatura Basado en Competencias Profesionales Metodologías de … · 2018-06-08 · desarrollo de algoritmos en diagramas de flujo. Con el fin de que el alumno pueda

METODOLOGÍA DE LA PROGRAMACIÓN

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Página 24

Menores a 7 No contemplados, sin grupo 7-8 Grupo C 8.1- 9.5 Grupo B Mayores a 9.5 Grupo A

Las expresiones necesarias para ubicar a los alumnos del Grupo B de acuerdo a la Calificación sería la siguiente:

Calf >= 8 y también

Calf <= 9.5

En este caso, es necesario indicar que ambas condiciones deben cumplirse, por lo que la expresión resultante sería:

Calf > 8 & Calf <= 9.5

2.3 Jerarquía de operadores

Saber Identificar la jerarquía de los operadores. Saber hacer Resolver expresiones aritméticas y lógicas. Dentro de una expresión es importante conocer la jerarquía de los operadores ya que ésta dicta el orden de ejecución de los operadores. De manera informal se menciona la categoría del operador asociativo ( ), el cual indica que la expresión que está dentro de los paréntesis se ejecuta antes que la expresión de afuera. La siguiente tabla muestra la jerarquía de los operadores:

Jerarquía Operador Categoría

Mayor

( , ) Asociativo ^ Aritmético

*, / , mod + , -

= , <> , <, >, <=, >= Relacionales ~ Lógicos

Page 25: Manual de Asignatura Basado en Competencias Profesionales Metodologías de … · 2018-06-08 · desarrollo de algoritmos en diagramas de flujo. Con el fin de que el alumno pueda

METODOLOGÍA DE LA PROGRAMACIÓN

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Página 25

Menor & , |

Se consideran también las siguientes reglas de prioridad:

1) Se resuelven las expresiones que se encuentran entre paréntesis. 2) La prioridad más alta se ejecutará primero. 3) Los operadores que tienen igual prioridad se evalúan de izquierda a derecha,

cuando coinciden en una operación aritmética. Dentro de la los operadores aritméticos se observan 3 subcategorías, de tal manera que sin importar el orden de aparición, primero se ejecuta el operador de potencia, a continuación la multiplicación, división y modulo (de misma prioridad los tres) y por último las operaciones de suma y resta (de misma prioridad). Ejemplos: (El número debajo de las operaciones indican el orden de ejecución)

Page 26: Manual de Asignatura Basado en Competencias Profesionales Metodologías de … · 2018-06-08 · desarrollo de algoritmos en diagramas de flujo. Con el fin de que el alumno pueda

METODOLOGÍA DE LA PROGRAMACIÓN

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Página 26

Page 27: Manual de Asignatura Basado en Competencias Profesionales Metodologías de … · 2018-06-08 · desarrollo de algoritmos en diagramas de flujo. Con el fin de que el alumno pueda

METODOLOGÍA DE LA PROGRAMACIÓN

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Página 27

Page 28: Manual de Asignatura Basado en Competencias Profesionales Metodologías de … · 2018-06-08 · desarrollo de algoritmos en diagramas de flujo. Con el fin de que el alumno pueda

METODOLOGÍA DE LA PROGRAMACIÓN

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Página 28

Si una expresión contiene operadores aritméticos lógicos y relacionales, primero se resuelven los aritméticos y con sus resultados se operan los relacionales y por último los lógicos. Ejemplos:

Page 29: Manual de Asignatura Basado en Competencias Profesionales Metodologías de … · 2018-06-08 · desarrollo de algoritmos en diagramas de flujo. Con el fin de que el alumno pueda

METODOLOGÍA DE LA PROGRAMACIÓN

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Página 29

Page 30: Manual de Asignatura Basado en Competencias Profesionales Metodologías de … · 2018-06-08 · desarrollo de algoritmos en diagramas de flujo. Con el fin de que el alumno pueda

METODOLOGÍA DE LA PROGRAMACIÓN

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Página 30

Observar que en los operadores relacionales, Falso es menor que Verdadero

Page 31: Manual de Asignatura Basado en Competencias Profesionales Metodologías de … · 2018-06-08 · desarrollo de algoritmos en diagramas de flujo. Con el fin de que el alumno pueda

METODOLOGÍA DE LA PROGRAMACIÓN

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Página 31

Cuando se ocupan los operadores Lógicos, tiene mayor jerarquía el operador de negación (~)

Page 32: Manual de Asignatura Basado en Competencias Profesionales Metodologías de … · 2018-06-08 · desarrollo de algoritmos en diagramas de flujo. Con el fin de que el alumno pueda

METODOLOGÍA DE LA PROGRAMACIÓN

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Página 32

Page 33: Manual de Asignatura Basado en Competencias Profesionales Metodologías de … · 2018-06-08 · desarrollo de algoritmos en diagramas de flujo. Con el fin de que el alumno pueda

METODOLOGÍA DE LA PROGRAMACIÓN

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Página 33

No se puede comparar un valor numérico con un lógico utilizando un operador relacional Bloque de asignación Un bloque de asignación se utiliza para asignar valores o expresiones a una variable. La asignación es una operación destructiva. Esto significa que si la variable tenía asignado un valor, éste se destruye, conservando ahora el nuevo valor. El formato de la asignación es el siguiente: Variable expresión o valor

Page 34: Manual de Asignatura Basado en Competencias Profesionales Metodologías de … · 2018-06-08 · desarrollo de algoritmos en diagramas de flujo. Con el fin de que el alumno pueda

METODOLOGÍA DE LA PROGRAMACIÓN

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Página 34

Donde: expresión puede ser aritmética o lógica, o una constante o variable. Observar a continuación el siguiente ejemplo: Ejemplo Suponga que las variables I, ACUM y J son de tipo entero, REA y SUM de tipo real, CAR de tipo carácter y BAND de tipo booleano. Considere también que se tienen que realizar las siguientes asignaciones:

1. I 0 2. I I +1 3. ACUM 0 4. J ( 5 ^ 2 – 1 ) / 3 5. CAR ‘a’ 6. ACUM J / I 7. REA ACUM / 3 8. BAND (8 > 5) & (15 < 2 ^3 ) 9. SUM ACUM * 5 / J ^ 2 10. I I *3 11. REA REA / 5 12. BAND BAND | ( I = J ) 13. I REA 14. CAR J

En la siguiente tabla se observan los valores que van tomando las variables en memoria Número de asignación

I J ACUM REA SUM CAR BAND

1 0 2 1 3 0 4 8 5 ‘a’ 6 8 7 2.66 8 falso 9 0.625

10 3 11 0.532 12 falso 13 error

14 error

Observe que en la asignación número 13 a la variable I se le asigna una variable de tipo real, por lo que se produce un error. Lo mismo ocurre con la asignación numero 14, a la variable tipo carácter CAR se le asigna una variable de tipo entero, por lo que también produce un error.

Page 35: Manual de Asignatura Basado en Competencias Profesionales Metodologías de … · 2018-06-08 · desarrollo de algoritmos en diagramas de flujo. Con el fin de que el alumno pueda

METODOLOGÍA DE LA PROGRAMACIÓN

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Página 35

Linealización de Expresiones Aritméticas Las expresiones aritméticas deben escribirse en una línea para que la computadora pueda evaluarla. Por ejemplo, la expresión:

1

y

yxN

se entiende perfectamente y es posible evaluarla al conocer los valores de x y y

si x 5 y y 3 la sustitución de los valores queda

13

35

N

se evalúa primero la expresión del numerador y se continua la expresión del denominador, finalmente se resuelve la división, dando como resultado

N 4 Sin embargo, la computadora no entiende este formato, por lo cual se debe escribir la expresión original en una sola línea para que sea reconocida:

N ( x +y ) / (y -1)

La computadora examina toda la expresión y va evaluando cada componente de acuerdo con cierto orden de precedencia que contienen las operaciones aritméticas, que es el siguiente: 1.- Operaciones entre paréntesis 2.- Operaciones Unirías (se refiere al cambio de signo, ejemplo -4, cambia a 4) 3.- Multiplicación, División y Modulo 4.- Suma y Resta Cuando existen operaciones del mismo nivel, se evalúan de izquierda a derecha En el ejemplo anterior se encierran entre paréntesis las operaciones ( x + y ) y ( y -1) para cerciorarse de que se hiciera primero la suma, luego la resta y al ultimo la división, conforme al planteamiento del problema original. Si la expresión se hubiera escrito

N x + y / y -1 Estaría incorrecta, porque la computadora primero hace la división de

y / y

luego la suma y por último la resta, de tal manera que arrojaría un resultado incorrecto. Otros ejemplos de conversión en línea:

Page 36: Manual de Asignatura Basado en Competencias Profesionales Metodologías de … · 2018-06-08 · desarrollo de algoritmos en diagramas de flujo. Con el fin de que el alumno pueda

METODOLOGÍA DE LA PROGRAMACIÓN

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Página 36

Z

YBAx x A + B – Y / Z ó x A + B – (Y / Z)

C

B

D

CAW

* W ( A * C / D ) + B / C

BDAE

BFCEX

X ( ( C * E) – (B * F)) / ((A * E) - (B * D))

S

RYTZ

)2( Z (T* (Y – 2 ) + R ) / S

325

9 CF F 9 / 5 * C + 32

Unidad Temática 3. Algoritmos y Diagramas de Flujo Objetivo. El alumno elaborará algoritmos, diagramas de flujo y pseudocódigos para la resolución de problemas.

Temas Saber Saber hacer Ser

Reglas para elaborar algoritmos, Pseudocódigo y diagramas de flujo.

Reconocer la sintaxis utilizada para el desarrollo de pseudocódigo. Identificar la simbología utilizada en el desarrollo de diagramas de flujo. Describir el procedimiento para realizar una prueba de escritorio.

Plantear la solución de un problema empleando pseudocódigo y diagramas de flujo.

Analítico. Ordenado. Sistemático. Coherente. Proactivo. Asertivo

Page 37: Manual de Asignatura Basado en Competencias Profesionales Metodologías de … · 2018-06-08 · desarrollo de algoritmos en diagramas de flujo. Con el fin de que el alumno pueda

METODOLOGÍA DE LA PROGRAMACIÓN

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Página 37

Temas Saber Saber hacer Ser

Contadores y acumuladores. Reconocer el funcionamiento de un contador y un acumulador.

Comparar entre un contador y un acumulador.

Analítico. Ordenado. Sistemático. Coherente. Proactivo. Asertivo.

Estructuras de control de selección

Reconocer el funcionamiento de las estructuras de control selectivas: Simples, compuestas y Múltiples

Resolver un problema determinado aplicando las estructuras de control selectivas y verificar la solución a través de una prueba de escritorio.

Analítico. Ordenado. Sistemático. Coherente. Proactivo. Asertivo Planificador. Creativo Hábil para trabajo en equipo.

Estructuras de repetición Reconocer el funcionamiento de las estructuras de control repetitivas a) Para-hasta b) Repite c) Mientras.

Resolver un problema determinado aplicando las estructuras de control repetitivas y verificar la solución a través de una prueba de escritorio.

Analítico. Ordenado. Sistemático. Coherente. Proactivo. Asertivo Planificador. Creativo Hábil para trabajo en equipo.

3.1 Algoritmos y Diagramas de Flujo

Saber Reconocer la sintaxis utilizada para el desarrollo de pseudocódigo. Identificar la simbología utilizada en el desarrollo de diagramas de flujo. Describir el procedimiento para realizar una prueba de escritorio. Saber hacer Plantear la solución de un problema empleando pseudocódigo y diagramas de flujo. Un algoritmo es la especificación de un número finito de pasos bien definidos, que deben

ejecutarse en un orden específico y que permiten realizar un procedimiento, para llegar a

un resultado o resolver un problema. Por ejemplo, los procedimientos que se conocen para

sumar, restar, multiplicar, dividir, etc., son algoritmos. Por lo general la especificación es

abstracta y no se expresa en un lenguaje específico de programación. Sin embargo, para que

una especificación sea un algoritmo, debe ser suficientemente concreta para poder

reconstruirse como un procedimiento escrito en tal lenguaje.

Muchos algoritmos llevan implícitos, métodos complicados de organización de los datos

utilizados en el cálculo. Por ejemplo, los algoritmos ejecutados por una computadora

pueden combinar en un cálculo matemático complicado, millones de pasos elementales,

tales como adiciones y substracciones. Las entidades creadas de esta manera se denominan

estructuras de datos. Así, las estructuras de datos y algoritmos están íntimamente

relacionados. De hecho, muchos algoritmos son descritos en términos de las estructuras de

datos empleadas, como se demostrará en los ejemplos de este capítulo.

Cuando se desarrolla un programa muy grande, una gran parte del esfuerzo se destina a

comprender y definir el problema a resolver, analizar su complejidad y descomponerlo en

subprogramas más pequeños que puedan realizarse fácilmente. En estos casos se deben

crear algoritmos para cada subprograma, los cuales formarán parte del algoritmo principal.

La técnica de dividir un problema en varios subproblemas que puedan resolverse

Page 38: Manual de Asignatura Basado en Competencias Profesionales Metodologías de … · 2018-06-08 · desarrollo de algoritmos en diagramas de flujo. Con el fin de que el alumno pueda

METODOLOGÍA DE LA PROGRAMACIÓN

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Página 38

independientemente uno de otro y después usarse para resolver el problema original,

comúnmente se denomina ”divide y vencerás”. De esta manera, en programas que

resuelven problemas complicados, los pasos del algoritmo principal que requieran de un

mayor refinamiento son resueltos al elaborar algoritmos para cada subprograma.

Al elegir o desarrollar un algoritmo se debe tener presente si éste se utilizará en una tarea

muy amplia o en muchas ocasiones, ya que la elección del algoritmo inadecuado puede

aumentar drásticamente el tiempo de ejecución del programa. Habrá otros casos en los que

un algoritmo simple cubra las expectativas. A menudo varios algoritmos diferentes son

válidos para resolver el mismo problema. Esto se debe a que las personas generalmente

tienen diferentes formas de resolver el mismo problema. Dos o más algoritmos diferentes

pueden resolver el mismo problema, pero no quiere decir que todos ellos actúen con la

misma eficiencia. La elección del mejor algoritmo para una tarea particular puede ser un

proceso muy complicado y con frecuencia conllevará un análisis matemático complicado.

La rama de la Computación que estudia tales cuestiones se llama Análisis de Algoritmos.

Los algoritmos también se aplican en ámbitos diferentes a la Ciencia de la Computación.

Por ejemplo, los pasos de las recetas de un libro de cocina, los pasos necesarios para

construir una casa, los pasos a seguir para instalar una computadora, los pasos que deben

cumplirse antes de codificar un programa (los pasos de la etapa de diseño), etc.

Los diagramas de flujo son la representación gráfica más usada para el diseño de los

procesos y es una excelente forma de describir fácilmente los detalles de los

procedimientos. En un diagrama de flujo, para representar un paso de procesamiento se

utiliza un rectángulo, un rombo para representar una condición lógica y flechas para

mostrar el control de flujo.

La composición secuencial implementa los pasos de procesamiento esenciales de la

especificación de cualquier algoritmo. Los enunciados secuenciales representan listas de

instrucciones en donde el control fluye secuencialmente (ver figura 3.2 inciso A).

Las estructuras de control de selección o enunciados condicionales, dan la posibilidad de

seleccionar entre una y otra acción basada en alguna ocurrencia lógica. Permiten tomar

decisiones durante la ejecución de un método, al seleccionar un enunciado (simple o

compuesto) de entre otros, dependiendo del resultado obtenido al evaluar una expresión

condicional (condición lógica). Es decir, un programa puede ejecutar una acción si una

condición es verdadera y otra o ninguna si es falsa (ver figura 3.2 incisos B y C).

Los ciclos proporcionan iteración (repetición). Un enunciado de repetición es una

construcción que se encarga de realizar ciclos en un programa, con objeto de repetir

operaciones, acciones o instrucciones de una forma controlada (ver figura 3.2 incisos F y

G). Los ciclos permiten la implementación de diagramas de flujo y algoritmos en los que se

requiere regresar a pasos o tareas previamente realizadas, que de otra manera se tendrían

que escribir de manera secuencial, lo que produciría programas extensos con muchas líneas

de código redundantes. En general, un ciclo depende de alguna condición lógica que

determina el momento en que éste debe concluir (condición de paro).

Page 39: Manual de Asignatura Basado en Competencias Profesionales Metodologías de … · 2018-06-08 · desarrollo de algoritmos en diagramas de flujo. Con el fin de que el alumno pueda

METODOLOGÍA DE LA PROGRAMACIÓN

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Página 39

Dichas construcciones estructuradas se propusieron para limitar el diseño de los

procedimientos del software a un pequeño número de operaciones predecibles, que

permiten reducir la complejidad de los programas y, por tanto, facilitan la legibilidad, la

prueba y el mantenimiento. El uso de un número limitado de construcciones lógicas

también contribuye a un proceso de comprensión humana que los psicólogos llaman

troceado. Las construcciones estructuradas son trozos lógicos que permiten a un lector

reconocer los elementos de los procedimientos de una clase, en vez de leer el diseño o el

código línea a línea.

El uso de los diagramas de flujo se justifica si se considera:

1. Debido a que un diagrama de flujo es en esencia una imagen, puede representar

fácilmente un pensamiento o una serie de ideas, por lo que es un eficaz medio de

comunicación.

2. Los diagramas de flujo son herramientas analíticas muy eficaces y económicas, por

medio de los cuales se puede detallar rápidamente una serie de alternativas de

solución a un problema y a partir del examen de éstas, analistas y programadores

podrán determinar cuál es la solución más apropiada. Antes de escribir los

programas, desperdiciar tiempo en la computadora o probar físicamente la solución,

la evaluación y verificación de la lógica de un programa puede realizarse por

completo con papel, lápiz y diagramas de flujo. De esta manera, si aparecen

problemas durante la programación, podrá determinarse si el problema está en la

codificación o si fue causado por una falla de la computadora.

3. En virtud de que los diagramas de flujo son esquemáticos, constituyen una forma

concisa de documentación que no depende de algún lenguaje de programación

específico.

Page 40: Manual de Asignatura Basado en Competencias Profesionales Metodologías de … · 2018-06-08 · desarrollo de algoritmos en diagramas de flujo. Con el fin de que el alumno pueda

METODOLOGÍA DE LA PROGRAMACIÓN

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Página 40

Primera tarea

Segunda tarea

A) Composición secuencial

Condición

Enunciado2 Enunciado1

F V

Condición1

Condición2

CondiciónN

Enunciado1

Enunciado2

EnunciadoN

V

V

V

F

F

F

B) Enunciados condicionales con la parte else

Condición

EnunciadoF

V

D) Enunciados de selección sin la parte else

<

Condición1 Enunciado1

Condición2 Enunciado2

F

CondiciónN-1 EnunciadoN-1

V

V

V

F

F

EnunciadoN

C) Enunciados condicionales sin la parte else

E) Enunciados de selección con la parte else

Condición Tarea del cicloV

F

Tarea del ciclo

Condición

F

VF) Ciclo do-while

G) Ciclo while

Figura 3.2 Construcciones lógicas para el control de flujo en diagramas de flujo

En programación existe una relación entre las variables y su tipo de dato. De hecho, en los

lenguajes de programación que apoyan la fuerte tipificación de datos, se debe declarar

explícitamente el tipo de dato de las variables. Por otro lado, en los diagramas de flujo sería

poco práctico especificar los tipos de datos de cada una de las variables utilizadas. Por tal

motivo, en los diagramas de flujo se adoptarán algunas convenciones que permiten

identificar el tipo de dato de una variable. Se usan apóstrofos, comillas, y el punto decimal

para identificar constantes de carácter, cadenas, enteros y reales, respectivamente. Sin

embargo, es preferible decir explícitamente el tipo de dato que puede almacenar una

variable y las estructuras de datos que se emplearán, con el fin de evitar problemas en la

etapa de codificación debidos a la ambigüedad de un diagrama de flujo.

Si bien es cierto que los diagramas de flujo permiten documentar un programa de una

manera concisa, también es verdad que aún siguen siendo insuficientes para documentar

adecuada y detalladamente un programa. Antes de elaborar los diagramas de flujo es

necesario determinar y describir los tipos y estructuras de datos que se emplearán en un

programa, así como también el algoritmo ideado o seleccionado para dar solución al

problema planteado. Haciendo esto se logra simplificar al máximo los diagramas de flujo y

Page 41: Manual de Asignatura Basado en Competencias Profesionales Metodologías de … · 2018-06-08 · desarrollo de algoritmos en diagramas de flujo. Con el fin de que el alumno pueda

METODOLOGÍA DE LA PROGRAMACIÓN

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Página 41

será posible redactar por separado toda la información que pueda ser de utilidad a la hora de

escribir el programa final, por lo que esta técnica será empleada en lo que resta de este

trabajo.

Símbolos utilizados en los Diagramas de Flujo

Símbolo de INICIO y FIN. Este símbolo se usa para indicar el

principio y el final de un diagrama de flujo.

Símbolo de E/S (Entrada/Salida). Define cualquier operación de

E/S requerida por un programa. Este símbolo puede indicar: 1)

una lectura de datos (operación de entrada) que se representa por

medio de READ(dato1,...,datoN) ó 2) una impresión de

resultados (operación de salida) representada por

PRINT(dato1,...,datoN).

Símbolo conector. Permite la conexión de partes de un diagrama

de flujo dentro de la misma hoja.

Símbolo de procesamiento o de bloque de instrucciones. Marca

las instrucciones de programa para auxiliar o efectuar el manejo

de los datos.

Símbolo de procedimiento o función (método). Define un

conjunto de instrucciones (procedimiento o función), dentro de

un programa, que tiene un objetivo específico y que se accede

como una unidad.

Símbolos de flujo. Señalan la dirección del procesamiento o el

flujo de datos.

Símbolo de decisión. Indica la ejecución de operaciones lógicas o

relacionales, que evalúan la expresión condicional o condición

lógica del interior de este símbolo y dependiendo de si el

resultado es Verdadero (V) o falso (F), se realiza una u otra

acción.

Símbolo conector entre páginas. Para indicar el número de

página de la parte de un diagrama de flujo que se desea conectar.

Figura 3.3 Símbolos usados en diagramas de flujo de programas

Page 42: Manual de Asignatura Basado en Competencias Profesionales Metodologías de … · 2018-06-08 · desarrollo de algoritmos en diagramas de flujo. Con el fin de que el alumno pueda

METODOLOGÍA DE LA PROGRAMACIÓN

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Página 42

Aunque un diagrama de flujo describe con precisión el procesamiento que se tiene que

efectuar, éste no puede introducirse directamente a la computadora. El diagrama de flujo es

únicamente una herramienta para el programador, por lo que cada símbolo del diagrama no

logra que la computadora efectúe alguna acción. Cada símbolo se coloca en el lugar donde

debe realizarse una operación en función de la lógica requerida. Cuando se escribe el

programa, a través de una instrucción o un conjunto de instrucciones se define la acción

descrita por cada símbolo. En su momento, esta instrucción hace que la computadora

procese datos. Se han diseñado un conjunto de símbolos, para mostrar con precisión las

operaciones de procesamiento en los diagramas de flujo.

Conceptos preliminares de los diagramas de flujo

Antes de ampliar la explicación acerca del significado de los símbolos de la figura 3.3 y

ejemplificar el uso los mismos, es necesario estudiar algunos conceptos.

Un identificador es una secuencia de caracteres que necesariamente comienza con

una letra del alfabeto o con un símbolo subrayado. Los caracteres restantes que componen

el identificador pueden ser: letras del alfabeto, símbolos subrayados o dígitos. Por ejemplo,

Horas, NOMBRE, sueldo, x, x 1, y, z1, i, n, L, mes, sexo, Pi, Epsilon, son identificadores

permitidos.

En los diagramas de flujo, los identificadores hacen referencia a variables,

constantes, subprogramas o métodos (procedimientos y funciones), tipos de datos y otras

entidades que intervienen tanto en la descripción como en la solución de un problema.

Un identificador de variable o simplemente variable es un identificador definido por

el usuario, que puede tomar valores de algún tipo de dato específico. Es decir, a una

variable se le puede asignar un valor que debe corresponder con su tipo de dato. Los

valores almacenados en una variable no necesariamente son permanentes, ya que se le

puede asignar cualquier valor permitido durante la construcción de un diagrama de flujo,

siempre y cuando sea en el símbolo apropiado. La definición de los identificadores está

limitada únicamente por la decisión de la persona que los define. Sin embargo, el uso de

identificadores significativos que se relacionen con el propósito de los mismos, mejora la

legibilidad de los diagramas y disminuye el costo de desarrollo. Por ejemplo, suponga que

se requiere definir un identificador de variable para referenciar y almacenar el resultado del

cálculo correspondiente al área de un círculo. Una buena elección es AreaCirculo o Area;

en cambio, identificadores como x, a, L, x1 no lo son, ya que no representan el propósito de

su uso, por lo que se recomienda evitar el empleo de variables poco descriptivas.

Una constante es un valor específico que no puede cambiar por la aplicación de

alguna operación, es decir, el valor de una constante es permanente. Existen diferentes tipos

de constantes, siendo las más comunes:

1. Constantes de carácter: ’c’, ’a’, ’A’, etc..

2. Constantes enteras: 12, −1, 23, etc..

Page 43: Manual de Asignatura Basado en Competencias Profesionales Metodologías de … · 2018-06-08 · desarrollo de algoritmos en diagramas de flujo. Con el fin de que el alumno pueda

METODOLOGÍA DE LA PROGRAMACIÓN

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Página 43

3. Constantes reales: 12.32, 12.0, −123.345, 0.0004, etc..

4. Constantes de cadena14: ”hola”, ”12345”, ”123.34”, ”AbCdE..,y”, etc..

En los diagramas de flujo se usan algunas convenciones que permiten diferenciar e

identificar los distintos tipos de datos básicos empleados:

1. El uso de apóstrofos y comillas en la escritura de constantes de carácter y cadenas,

respectivamente, permite la distinción entre estos tipos de datos y los

identificadores. Por ejemplo, ’h’ es un carácter,”h” es una cadena compuesta por un

carácter y h es un identificador.

2. Los números enteros carecen de punto decimal, mientras que los números reales lo

contienen necesariamente (aunque la parte decimal sea 0). Por ejemplo, 12 se

interpreta como un número de tipo entero, mientras que 12.0 como un número de

tipo real.

En un diagrama de flujo, una operación de asignación o simplemente asignación se

representa al colocar una variable seguida por una flecha dirigida hacia ella y a

continuación el valor que se desea asignar o almacenar en la variable. El valor a asignar

puede ser:

1. Una constante.

2. Un valor referenciado o identificado por el nombre de una variable. Es decir, el

valor almacenado en la variable.

3. El valor devuelto como resultado de la ejecución de una función, la cual se

referencía por un identificador.

4. El valor obtenido por la evaluación de una expresión aritmética que puede

involucrar variables, constantes e incluso identificadores de funciones.

Ejemplos de asignaciones permitidas son:

i 1

x i/2

R x+i

cad ”hola”

car ’h’

i i+1

En la secuencia de operaciones de asignación anterior, a la variable i se le asigna el

valor de 1, a la variable x el valor de i (que es 1) dividido entre 2, en la variable R se

almacena la suma de x+i que es igual a 1.5. Las asignaciones segunda, tercera y sexta son

correctas, debido a que la variable i fue previamente inicializada con un valor de 1. Si no

existiera la primera asignación, las siguientes dos y la última no tendrían sentido ni serían

permitidas, ya que en los cálculos no se sabría qué valor utilizar para la variable i. Esto nos

permite enunciar una regla básica: Antes de utilizar una variable en la parte derecha de una

asignación por primera vez, ésta debió ser inicializada (es decir, se le debió asignar un

valor).

Page 44: Manual de Asignatura Basado en Competencias Profesionales Metodologías de … · 2018-06-08 · desarrollo de algoritmos en diagramas de flujo. Con el fin de que el alumno pueda

METODOLOGÍA DE LA PROGRAMACIÓN

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Página 44

En la secuencia de asignaciones anterior también se puede apreciar la característica

esencial de las variables: las variables pueden cambiar de valor durante la ejecución de un

conjunto de instrucciones u operaciones. En nuestro caso, i es inicializada a 1 y después de

ejecutar las cuatro operaciones siguientes la variable i cambia a 2 como resultado de la

instrucción i i+1. Este tipo de asignación es lo que comúnmente se conoce como un

incremento en 1 de la variable i, que se interpreta como sigue: a la variable i se le asigna el

valor de i (que es 1) más 1, es decir, a i se le asigna i+1=1+1=2. Esto nos permite señalar

que en una operación de asignación puede intervenir la misma variable en ambos extremos

de la flecha. Más aún, el incremento no necesariamente debe ser de 1, sino que puede tomar

cualquier valor permitido. Así, por ejemplo, la asignación i i+20 incrementa en 20 el

valor de la variable i. Asignaciones que efectúan decrementos también son permitidas, por

lo que i i−x decrementa el valor de i x unidades, asumiendo, claro está, que las variables

x e i son del mismo tipo y que la resta de i−x es un valor que puede ser almacenado en la

variable i.

Es importante recalcar que antes de usar una variable debe determinarse el tipo de

dato que almacenará. En las asignaciones presentadas arriba, según las convenciones

descritas antes, i es de tipo entero, x y R son de tipo real, cad es de tipo cadena y la variable

car es de tipo carácter. Es necesario saber el tipo de dato que puede almacenar una variable,

con objeto de no asignar datos de un tipo a variables de otro tipo. Por ejemplo,

consideremos la secuencia de asignaciones que sigue y determinemos los tipos de datos de

las variables utilizadas.

c ’a’

i 3.1416

cad ”hola”

c i

cad c

Si nos guiamos por el contexto y las convenciones planteadas en párrafos anteriores,

podemos decir que c es de tipo carácter, i de tipo real y cad de tipo cadena. Ahora, como c

es de tipo carácter y cad de tipo cadena, las dos últimas asignaciones no tienen sentido y

son incorrectas. Es decir, a una variable de tipo carácter no se le debe asignar una variable

de tipo real y un carácter no debe ser asignado a una variable de tipo cadena. Es evidente

que asignaciones como:

1 20

”mundo” ”hola”

3.1416 ’h’

son incorrectas, debido a que una constante no puede cambiar de valor por la aplicación de

cualquier operación, en este caso una asignación. Por este motivo, una regla básica en

operaciones de asignación es: ”La parte izquierda de una asignación siempre debe ser una

variable”.

Page 45: Manual de Asignatura Basado en Competencias Profesionales Metodologías de … · 2018-06-08 · desarrollo de algoritmos en diagramas de flujo. Con el fin de que el alumno pueda

METODOLOGÍA DE LA PROGRAMACIÓN

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Página 45

En las siguientes subsecciones se explica y ejemplifica el uso de los símbolos mostrados en

la figura 3.3.

Símbolo de Entrada y Salida (E/S)

Sirve para representar las operaciones de E/S que permiten la comunicación entre la

computadora y el usuario, por lo que en él deberán colocarse descripciones que indiquen la

introducción de datos a la computadora por parte del usuario o bien la impresión de

resultados por parte de la computadora. En este trabajo se asume que las operaciones de E/S

trabajan únicamente sobre el teclado y la pantalla del monitor, mismos que se conocen

como dispositivos estándares de entrada y salida, respectivamente.

Las operaciones de E/S pueden describirse de manera más conveniente al expresarlas en

términos de los dispositivos estándares de entrada y salida. Así, la operación de entrada se

refiere a la lectura (READ) de los datos proporcionados por el usuario desde el teclado y la

operación de salida se refiere a la impresión (PRINT) de los resultados en la pantalla.

Para que las operaciones READ y PRINT generen algún resultado útil, es necesario

especificar los datos a leer e imprimir, respectivamente. Para ello se usan las siguientes

convenciones:

1. En las operaciones READ(dato1,...,datoN) y PRINT(dato1,...,datoN),

dato1,...,datoN son los argumentos de READ o PRINT según sea el caso. Los

paréntesis que encierran y las comas que separan dichos argumentos se usan para

mejorar la legibilidad.

2. La operación READ(dato1,...,datoN) lee N datos proporcionados por el usuario

desde el teclado y los almacena (asigna) en las variables dato1,...,datoN,

respectivamente. Los argumentos de READ deben ser identificadores de variables

(variables) y cada uno de ellos puede ser de distinto tipo y aparecer en cualquier

orden. Por ejemplo, dato1, dato2, dato3 y datoN (N=4) pueden ser variables de tipo

real, entero, carácter y cadena, respectivamente; o bien dato1 una variable de tipo

carácter,...,datoN una variable de tipo real, etc..Se debe observar que la operación

READ realiza asignaciones de manera implícita. Por ejemplo, READ(x, y1, z2) se

interpreta como una operación de entrada que lee tres datos proporcionados por el

usuario desde el teclado y los asigna a las variables x, y1 y z2, respectivamente. Si

suponemos que los argumentos de READ y los datos proporcionados por el usuario

son de tipo entero y que además el usuario introduce los valores 10, −1 y 2;

entonces después de ejecutar la operación READ(x, y1, z2), las variables x, y1 y z1

tendrán los valores 10, −1 y 2, respectivamente. Es decir, la operación READ

ejecuta de manera interna las asignaciones x 10, y1 −1 y z2 2. Por este

motivo, los argumentos de READ pueden ser utilizados en operaciones posteriores

sin necesidad de inicializarlos por medio de una asignación explícita, puesto que

READ asigna a sus argumentos los datos que lee desde el teclado. Note que

operaciones como READ(0, 12), READ(1.3,”hola”) y READ(x, ’s’) son

incorrectas.

Page 46: Manual de Asignatura Basado en Competencias Profesionales Metodologías de … · 2018-06-08 · desarrollo de algoritmos en diagramas de flujo. Con el fin de que el alumno pueda

METODOLOGÍA DE LA PROGRAMACIÓN

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Página 46

3. La operación PRINT(dato1,...,datoN) imprime o escribe N datos (es decir, sus

argumentos) en la pantalla. Al igual que en la operación READ, los argumentos de

PRINT pueden ser de distinto tipo y aparecer en cualquier orden. Básicamente, en

una operación PRINT(dato1,...,datoN) los argumentos pueden ser constantes o

variables que contienen un valor específico. Así, por ejemplo, en la operación

PRINT(x, z, ”hola”,10, 34.2), las variables x y z debieron ser inicializadas, ”hola”

es una cadena de caracteres constante, 10 es una constante entera y 34.2 es una

constante real. Se insiste en que esta operación tiene sentido sólo si las variables x y

z contienen algún valor, el cual debió ser almacenado en estas variables antes de

ejecutar PRINT.

Para ver en acción el símbolo y las operaciones de E/S, considerar el diagrama de flujo de

la figura 3.4, que resuelve el problema descrito a continuación: “Diseñar un programa que

lea desde el teclado el nombre del usuario y lo imprima como salida”.

Algoritmo 3.1: Secuencia lógica de pasos que se deben efectuar en la elaboración de un

programa que lea desde el teclado el nombre del usuario y lo imprima como salida.

1. Pedir al usuario su nombre.

2. Leer el nombre del usuario y almacenar dicho nombre en la variable nombre de tipo

cadena.

3. Imprimir el nombre del usuario, almacenado en la variable nombre.

El diagrama de flujo que representa gráficamente el diseño del algoritmo 3.1 se muestra en

la figura 3.4.

Brevemente, el diagrama de flujo de la figura 3.4 se interpreta de la siguiente manera:

1. El símbolo de INICIO indica el comienzo del diagrama de flujo.

2. La flecha dirigida del símbolo de INICIO hacia el símbolo de E/S indica que la

operación que se encuentra en este último es la siguiente a ser ejecutada. En todo

diagrama, las flechas señalan el flujo de las operaciones a ejecutar y no se volverá a

indicar en posteriores descripciones.

3. Después aparece un símbolo de E/S que ejecuta la operación de salida PRINT(”Da

tu nombre”), por medio de la cual se envía a la pantalla una cadena de caracteres

constante en forma de mensaje de petición al usuario.

4. El flujo se dirige hacia otro símbolo de E/S, sólo que en este caso para efectuar una

operación de entrada (o lectura) desde el teclado. La operación READ(nombre)

espera a que el usuario introduzca su nombre y a continuación lo asigna a la

variable nombre. Por ejemplo, si el usuario introduce Juan Pérez Rojas, entonces

READ realiza de manera implícita la asignación nombre ”Juan Pérez Rojas”, es

decir, en la variable nombre se almacena la cadena Juan Pérez Rojas. Cabe señalar

que las comillas no se almacenan en la variable nombre, se usan en la asignación

para recalcar que nombre es una variable de tipo cadena.

5. A continuación se ejecuta la operación de salida PRINT(”Tu nombre es:”,nombre)

contenida en el símbolo de E/S que sigue al flujo. Esta operación de salida permite

Page 47: Manual de Asignatura Basado en Competencias Profesionales Metodologías de … · 2018-06-08 · desarrollo de algoritmos en diagramas de flujo. Con el fin de que el alumno pueda

METODOLOGÍA DE LA PROGRAMACIÓN

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Página 47

imprimir en la pantalla la cadena de caracteres constante Tu nombre es: seguida del

contenido de la variable nombre (que como se dijo anteriormente es Juan Pérez

Rojas). En resumen, esta operación imprime en pantalla: Tu nombre es: Juan Pérez

Rojas.

INICIO

PRINT(“Da tu nombre”)

READ(nombre)

PRINT(“Tu nombre es:”, nombre)

FIN Figura 3.4 Lee e imprime el nombre del usuario

Por último, el flujo se dirige hacia el símbolo de FIN con el que se indica la terminación del

diagrama de flujo.

Símbolo de procesamiento o bloque de instrucciones

Las instrucciones u operaciones aritméticas son las más utilizadas en el interior del símbolo

de procesamiento. Los símbolos usados para representar operaciones aritméticas se

conocen como operadores y se muestran en la tabla 3.1.

Operador Tipo de operador Operación

+ Unario o binario Más unario o Suma (adición)

- Unario o binario Menos unario o Resta (sustracción)

* Binario Multiplicación

/ Binario División

Tabla 3.1: Operadores aritméticos

Ejemplos de expresiones aritméticas son: −1, +3, 3, 2+3, −2−3, 2_3, −3/2.0, 23.23/−2.4,

2+3−2_3/4, (2+3)−2_3/4, etc. Cuando en una expresión aparece más de un operador, la

secuencia de evaluación depende de su prioridad o precedencia. El operador con mayor

precedencia se evaluará primero. La precedencia de los operadores aritméticos presentados

en la tabla 4.3 es:

-, + (operadores unarios, ambos tienen la misma precedencia) Prioridad más alta

*, / (operadores binarios, ambos tienen la misma precedencia)

-, + (operadores binarios, ambos tienen la misma precedencia) Prioridad más baja

Page 48: Manual de Asignatura Basado en Competencias Profesionales Metodologías de … · 2018-06-08 · desarrollo de algoritmos en diagramas de flujo. Con el fin de que el alumno pueda

METODOLOGÍA DE LA PROGRAMACIÓN

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Página 48

Cuando dos o más operadores tienen la misma precedencia, la evaluación se efectúa de

izquierda a derecha. Por ejemplo, en la expresión 14−6/2*3 primero se evalúa la división,

luego la multiplicación y por último la resta, es decir, 14−6/2*3=14−3*3=14−9=5 es

equivalente a 14−((6/2)*3)=14−(3*3)=14−9=5.

Observe que los paréntesis han sido utilizados para indicar explícitamente el orden de

evaluación de la expresión, pero que no son necesarios, ya que cuando se evalúa una

expresión se asume la precedencia de los operadores.

Los paréntesis se usan principalmente para alterar la prioridad de los operadores, ya que

permiten evaluar primero la sub-expresión delimitada entre éstos. Por ejemplo, en la

expresión (14−6)/2*3, la resta se realiza antes que la división y la multiplicación,

obteniendo como resultado (14−6)/2*3=8/2*3=4*3=12.

El símbolo de procesamiento representa el manejo de los datos y todo tipo de operaciones

de cálculo, por medio de la aplicación de una o más instrucciones de asignación que se

ejecutan de manera secuencial y que son de la forma:

variable expresión.

Como ejemplo, considerar el diagrama de flujo que se muestra en la figura 3.5, en el que se

representa el cálculo del cuadrado de un número real proporcionado por el usuario desde el

teclado y la escritura de ambos valores (ver algoritmo 3.2). Primero se le pide al usuario

que introduzca el número real del que desea obtener su cuadrado, mediante la operación de

salida PRINT(”De un real para x:”). Después se ejecuta la operación de entrada READ(x),

lo que permite la lectura de un número real y su almacenamiento en la variable x. En ese

momento inicia el procesamiento, que en nuestro caso consiste únicamente de una

operación de asignación contenida en un símbolo de bloque de instrucciones, la cual

efectúa un cálculo aritmético, la multiplicación de x*x, y asigna el resultado a la variable y.

Por último, se imprime en la pantalla los valores de x e y (el cuadrado de x).

INICIO

PRINT(“Da un real para x:”)

READ(x)

PRINT(“El cuadrado de “, x, “ es ”, y)

FIN

y x * x

Figura 3.5 Cálculo del cuadrado de un número real

Algoritmo 3.2: Calcula e imprime el cuadrado de un número real proporcionado por el

usuario desde el teclado.

Page 49: Manual de Asignatura Basado en Competencias Profesionales Metodologías de … · 2018-06-08 · desarrollo de algoritmos en diagramas de flujo. Con el fin de que el alumno pueda

METODOLOGÍA DE LA PROGRAMACIÓN

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Página 49

1. Pedir al usuario el número del que se desea su cuadrado.

2. Leer el número proporcionado por el usuario desde el teclado y almacenarlo en la

variable de tipo real x.

3. Calcular el cuadrado de x y almacenar el resultado en la variable real y.

4. Imprimir el valor de x y el de y (el cuadrado de x).

Símbolo de decisión

Las operaciones relacionales y lógicas, es decir, operaciones que evalúan comparaciones

(expresiones relacionales) y expresiones lógicas, mediante las cuales se puede decidir si

una condición es verdadera o falsa, son de suma importancia en todas las aplicaciones de

procesamiento de datos. Estas operaciones se representan en los diagramas de flujo

mediante el símbolo de decisión, en el cual se coloca la condición lógica (una condición

lógica o expresión condicional, puede ser una expresión relacional que involucra

operadores relacionales, una expresión lógica que contiene operadores lógicos o bien una

expresión que involucra operadores relacionales y lógicos), que se desea evaluar y

dependiendo de si el resultado es Verdadero (V) o Falso (F), se ejecuta una u otra acción.

En la tabla 3.2 se muestran los símbolos (operadores) usados en operaciones relacionales,

los cuales permiten definir expresiones relacionales.

Símbolo Significado

= igual a

!= diferente de

< menor que

<= menor o igual a

> mayor que

>= mayor o igual a

Tabla 3.2: Operadores relacionales

En la tabla 3.3 se muestran algunos ejemplos de condiciones lógicas y sus correspondientes

valores de verdad.

Condición lógica Interpretación Valor de verdad

2 = 3 2 es igual a 3 F

12 < 13 12 es menor que 13 V

−12 <= −12 −12 es menor o igual a −12 V

’b’ = ’b’ ’b’ es igual a ’b’ V

3.1416 != 3.1234 3.1416 es diferente de 3.1234 V

”Sarahi” =

”Sarahi”

”Sarahi” es igual a ”Sarahi” V

Tabla 3.3: Evaluación de algunas condiciones lógicas

Page 50: Manual de Asignatura Basado en Competencias Profesionales Metodologías de … · 2018-06-08 · desarrollo de algoritmos en diagramas de flujo. Con el fin de que el alumno pueda

METODOLOGÍA DE LA PROGRAMACIÓN

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Página 50

Como ejemplo de la utilización del símbolo de decisión, considerar el algoritmo 3.3 y su

representación gráfica en el diagrama de flujo de la figura 3.6.

Algoritmo 3.3: Determina e imprime en pantalla si un número entero m, proporcionado por

el usuario desde el teclado, es positivo o negativo.

1. Pedir al usuario un número entero.

2. Leer el número proporcionado por el usuario desde el teclado y almacenarlo en la

variable entera m.

3. Si el valor almacenado en la variable m es menor que cero entonces (Si m < 0

entonces): Indicar que el número m es negativo.

De lo contrario (es decir, si m >= 0): Indicar que el número m es positivo.

INICIO

PRINT(“Da un entero:”)

READ(m)

PRINT(“m es postivo”) FIN

m < 0V

PRINT(“m es negativo ”)

F

Figura 3.6 Determina si un número entero es positivo o negativo

Debido a que en un programa se requiere ejecutar instrucciones que dependen de

condiciones lógicas que comparan: El contenido de variables, el contenido de una variable

y una constante, el contenido de una variable o constante con el valor devuelto por una

función, o en general, que comparan dos expresiones que contienen constantes, variables e

identificadores de funciones, el uso de comparaciones entre constantes es poco frecuente.

De hecho, condiciones lógicas como las mostradas en la tabla 3.3 casi nunca se usan. El

diagrama de flujo de la figura 3.6 ilustra la representación de una comparación en el

símbolo de decisión.

Símbolo de procedimiento o función

Define un subprograma representado como un procedimiento o como una función. La

utilidad e importancia de este símbolo radica en que nos permite construir diagramas de

flujo que representan la solución de problemas complejos, haciendo uso de los conceptos de

modularidad, abstracción, refinamiento y ocultamiento de información. La idea es dividir

un problema difícil en subproblemas menos complicados que puedan manejarse y

resolverse más fácilmente de una manera independiente. La división del problema original

Page 51: Manual de Asignatura Basado en Competencias Profesionales Metodologías de … · 2018-06-08 · desarrollo de algoritmos en diagramas de flujo. Con el fin de que el alumno pueda

METODOLOGÍA DE LA PROGRAMACIÓN

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Página 51

se desarrolla en niveles sucesivos de refinamiento de los detalles de cada procedimiento y

posteriormente cada subproblema se resuelve descomponiéndolo en otros cada vez menos

complicados o en una secuencia de instrucciones específica. El refinamiento hace que el

diseñador amplíe la declaración original, dando cada vez más detalles conforme se

produzcan los sucesivos refinamientos.

Para dar solución a cada subproblema se diseña un diagrama de flujo (o subdiagrama) que

en la etapa de codificación se implementa como un subprograma (procedimiento o

función).

IV. Bibliografía

Pérez R., Fernández A., Pérez A., Hernández R., Programación Orientada a Objetos con C#,

Universidad de Matanzas “Camilo Cienfuegos”, Universidad de las Ciencias Informáticas,

Septiembre 2003, 4 pp.

López L., Metodología de la Programación Orientada a Objetos, Alfaomega Grupo Editor

S.A. De C.V., D.F. México, 2006, 36 pp.

Cairo O., Metodología de la Programación. Diagramas de Flujo, Algoritmos y Programas,

Alfaomega Grupo Editor S.A. De C.V., D.F. México, 2005, 4 pp.

M. Lipschutz et al, Procesamiento de datos, McGrawHill, 1982, 218 pp.

A. Tenembaum et al, Estructura de datos en Pascal, Prentice-Hall, 1983, 560 pp.

S. Infante et al, Métodos estadísticos, Trillas, 1984, 643 pp.

A. Forsythe et al, Lenguajes de diagramas de flujo, Limusa, 1987, 587 pp.

M. Loomis, Estructura de datos y organización de archivos, Prentice-Hall, 1991, 516 pp.

R. Sethi, Lenguajes de programación, Addison-Wesley, 1992, 493 pp.

R. S. Pressman, Ingeniería del software, McGrawHill, 1993, 824 pp.

B. Stroustrup, El lenguaje de programación C++, Addison-Wesley, 1993, 710 pp.

R. Sedgewick, Algoritmos en C++, Addison-Wesley, 1995, 726 pp.

L. Joyanes, Programación en Turbo Pascal Versiones 5.5, 6.0 y 7.0, McGraw Hill, 77 pp.

F.J. Ceballos, Enciclopedia del Lenguaje C, Computec Ra-ma, 73 pp.

Page 52: Manual de Asignatura Basado en Competencias Profesionales Metodologías de … · 2018-06-08 · desarrollo de algoritmos en diagramas de flujo. Con el fin de que el alumno pueda

METODOLOGÍA DE LA PROGRAMACIÓN

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Página 52

A.

B. Citas Bibliográficas [1]. R. Cadenhead et al, Programación Aprendiendo Java 2.0 en 21 Días, Pearson Spanish,

2003, ISBN 9701702298.

[2]. T. Archer, A Fondo C#, McGraw-Hill/Interamericana, 2001, ISBN 84-481-3246-1.

[3]. B. Meyer, Object-Oriented Software Construction, Prentice Hall, 1997, ISBN 0-13-

629155-4.

[4]. J. García Molina et al, Introducción a la Programación, ICE, Universidad de Murcia,

Diego Marín, 1999.

[5]. J. Rumbaugh et al, Modelagem e Projetos Baseados en Objetos, Campus Ltda, 1994,

ISBN 85-7001-841-X.

[6]. T. Budd, Introducción a la Programación Orientada a Objetos, Addison – Wesley

Iberoamericana, 1994.

Saber Saber hacer . Resultado de aprendizaje