Metodología de la Programación Programación
TIC
Metodología de la Programación Fundamentos MTW Rosa Martha Núñez Arroyo
2012
0
Metodología de la Programación Programación
TIC
Contenido Conceptos Básicos ......................................................................................................................... 3 Adquisición, procesamiento y almacenamiento de datos ........................................................... 3 Algoritmo ................................................................................................................................... 5 Ejercicios ................................................................................................................................ 5 Pseudocódigo ............................................................................................................................ 6 Ejercicios ................................................................................................................................ 7 Diagrama de Flujo ...................................................................................................................... 8 Simbología de los Diagramas de Flujo ..................................................................................... 8 Operadores de los Diagramas de Flujo.................................................................................... 9 Ejercicios .............................................................................................................................. 10 Variables .................................................................................................................................. 11 Constantes ............................................................................................................................... 11 Identificadores ......................................................................................................................... 11 Reglas para la creación de Identificadores ............................................................................ 11 Tipos de datos .......................................................................................................................... 12 Ejercicios .............................................................................................................................. 12 Metodología para la solución de problemas por medio de computadoras ................................ 13 Evidencia 1° Unidad ................................................................................................................. 15 Tarea Integradora 1° Unidad .................................................................................................... 16 Expresiones.................................................................................................................................. 17 Operadores Aritméticos, Relacionales y Lógicos ....................................................................... 17 Operadores Aritméticos ....................................................................................................... 17 Operadores Relacionales ...................................................................................................... 18 Operadores Lógicos .............................................................................................................. 18 Jerarquía de Operadores .......................................................................................................... 20 Expresiones .............................................................................................................................. 20 Conversión a de Expresiones Matemáticas a Expresiones Algorítmicas ........................ ......... 21
1
Metodología de la Programación Programación
TIC
Evidencia 2° Unidad ................................................................................................................. 23 Tarea Integradora 2° Unidad .................................................................................................... 24 Algoritmos y Diagramas de Flujo .................................................................................................. 25 Reglas para la elaboración de Pseudocódigos....................... ......................... ........................... 25 Ejemplo: ............................................................................................................................... 26 Reglas para la elaboración de Diagramas de Flujo .................................................................... 26 Pruebas de Escritorio ............................................................................................................... 27 Ejemplo: ............................................................................................................................... 27 Contadores y Acumuladores..................................................................................................... 29 Contadores .......................................................................................................................... 29 Acumuladores ...................................................................................................................... 30 Contador vs Acumulador ...................................................................................................... 30 Estructuras de Control de Selección ......................................................................................... 31 Simples ................................................................................................................................ 31 Dobles .................................................................................................................................. 33 Compuestas ......................................................................................................................... 35 Múltiples .............................................................................................................................. 37 Estructuras de Repetición ........................................................................................................ 40 Para – Hasta ......................................................................................................................... 40 Repite .................................................................................................................................. 42 Mientras .............................................................................................................................. 44 Evidencia 3° Unidad ................................................................................................................. 46 Tarea Integradora 3° Unidad .................................................................................................... 47
2
Metodología de la Programación Programación
TIC
Conceptos Básicos
Adquisición, procesamiento y almacenamiento de datos INTRODUCCIÓN: 1) Preguntar a los alumnos: ¿Qué son estos: R= Son Datos.
12 Confirmado 4 25 Suspendido 110 Cuevas 3 Martínez
Alba
2) Preguntarles: ¿Los datos, por sí solos, sirven sirv en para algo? R= No. 3) Decirles en conclusión: Los datos tienen que estar agrupados, ordenados y definidos para ser útiles, es decir, para convertirse en información.
Información: Conjunto de datos supervisados y ordenados que sirven para resolver problemas y tomar decisiones. Ejemplo: DATOS: INFORMACIÓN:
13.95 , 14.80 Dólar a la compra: $13.95 Dólar a la venta: $14.80
Los datos dados, son valores sueltos que no nos dicen nada, en cambio, con la información podemos decidir, por ejemplo, si el dólar d ólar está caro o no y si nos conviene comprarlos o esperar a que baje su valor.
Proceso: Acción que se puede descomponer en otras más simples.
3
Metodología de la Programación
TIC
EXPLICACIÓN: 1) Realizar un proceso significa “transformar algo”. Un proceso requiere de una entrada para poderse iniciar y dar como resultado una salida: ENTRADA
PROCESO
SALIDA
Entrada: Datos iniciales requeridos para arrancar. Proceso: Operaciones a realizar. Salida: Resultados obtenidos.
Ejemplo de un proceso: Proceso de suma de dos números. 2,5 ENTRADA
2 + 5 PROCESO
7 SALIDA
Proceso de Información : Por tanto, consiste en recolectar datos, transformarlos de alguna manera y convertirlos en información útil.
DATOS
PROCESO DE INFORMACIÓN
INFORMACIÓN
Ejemplo de un proceso de información: De acuerdo a la diferencia (Resta) entre los ingresos y gastos mensuales que tiene la tienda de abarrotes de Don Chucho, decidir si le conviene seguir manteniéndola o no. INGRESOS: $3,250 GASTOS: $2,500 DATOS
INGRESOS – GASTOS $3,250 – $2,500 PROCESO DE INFORMACIÓN
GANANCIA = $750 MENSUALES INFORMACIÓN
En base a la información obtenida, se toma la decisión que más convenga a la tienda de abarrotes (seguir o cerrarla).
4
Metodología de la Programación
TIC
Algoritmo Conjunto de instrucciones formadas por pasos finitos, eficientes y no ambiguos, que sirven para llevar a cabo una tarea específica. Como los algoritmos son considerados un tipo de proceso de la información y por tanto, requiere de una entrada, un proceso y una salida.
Ejemplo: Algoritmo para preparar una taza de té con azúcar. ENTRADAS: Pocillo, agua, bolsa de té, azúcar, taza, cuchara. PROCESO: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Tomar el pocillo. Llenarlo con agua. Encender el fuego. Poner el pocillo en el fuego. Tomar la bolsa de té. Introducirla en el pocillo. Esperar un minuto. Vaciar el té en la taza. Tomar la cuchara. Agarrar azúcar con la cuchara. Vaciar el azúcar en la taza de té. Revolver el té y el azúcar con la cuchara.
SALIDA: Taza de té con azúcar.
Ejercicios Realizar los algoritmos necesarios para: a) b) c) d)
Preparar un pan tostado con mermelada. Enviar un mensaje por celular. Comparar dos valores y determinar cuál es el mayor. Calcular el área de un cuadrado.
5
Metodología de la Programación
TIC
Pseudocódigo Describe un algoritmo mezclando frases de un idioma común (español, inglés, etc.) con instrucciones de programación y palabras clave para realizar el diseño de un programa. Su objetivo es narrar los pasos que debe seguir un algoritmo para dar solución a un problema. Presentan la ventaja de ser más compactos que los diagramas de flujo, más simples de escribir para las instrucciones complejas y más fáciles de trasladar a un lenguaje de programación; además de no estar regidos por ningún estándar.
Ejemplo 1: Realizar el pseudocódigo de un algoritmo que lleve a cabo la suma de dos números. INICIO 1. 2. 3. 4. 5. 6.
IMPRIMIR: “Introduce el primer número:”
LEER: Primer número. IMPRIMIR: “Introduce el segundo número:”
LEER: Segundo número. CALCULAR: Suma = Primer número + Segundo número. IMPRIMIR: “El resultado es: ”, Suma.
FIN
Ejemplo 2: Realizar el pseudocódigo de un algoritmo que lea un valor y escriba si éste es par o impar. INICIO 1. 2. 3. 4. 5.
IMPRIMIR: “Introduce el número:”
LEER: Número. SI: Número/2 = 0 ENTONCES: IMPRIMIR: “El número es par” SI NO: IMPRIMIR: “El número es impar”
FIN
6
Metodología de la Programación Ejercicios Realizar los pseudocódigos necesarios para: a) b) c) d)
Comparar dos valores y determinar cuál es el mayor. Calcular el área de un cuadrado. Calcular el área de un círculo. Convierta de kilómetros por hora a metros por segundo.
7
TIC
Metodología de la Programación
TIC
Diagrama de Flujo Es la representación gráfica de los pasos realizados en un proceso y sirve para determinar cómo dicho proceso produce un resultado (producto, servicio, información, etc.).
Simbología de los Diagramas de Flujo Símbolo
Significado Inicializador o Terminador. Representa el inicio o fin de un diagrama de flujo. Proceso. Simboliza la ejecución de un procedimiento específico, sobre los datos manejados en el diagrama. Decisión. Indica qué hacer si un evento ocurre y qué hacer si no ocurre. Entrada manual. Representa el ingreso de datos desde el teclado. Conector. Simboliza la unión de un bloque del diagrama con otro. Conector fuera de página. Indica la unión de una parte del diagrama con otra que se encuentra en una página distinta. Documento. Simboliza la salida de datos por medio de la impresora. Pantalla. Indica la impresión de resultados en la pantalla de la computadora.
Repetir. Permite utilizar estructuras iterativas.
Flujo. Señala la dirección en que se debe leer el diagrama.
8
Metodología de la Programación Operadores de los Diagramas de Flujo Operador + –
* / > < = >= <= ≠
Significado Suma Resta Multiplicación División Mayor que Menor que Igual que Mayor o Igual que Menor o Igual que Diferente de
Ejemplo 1: Realizar un diagrama de flujo que lleve a cabo la suma de dos números. INICIO
A
“Dame el primer
Suma = Primer número + Segundo número
número:”
Ingreso del primer número
“El resultado es: ”,
“Dame el segundo
FIN
número:”
Ingreso del segundo número
A
9
Suma
TIC
Metodología de la Programación
TIC
Ejemplo 2: Realizar el pseudocódigo de un algoritmo que lea un valor y escriba si éste es par o impar.
INICIO
“Introduce un número:”
Ingreso del número
Resultado = Número / 2
NO Resultado = 0?
“El Número es Impar”
SI “El Número es
Par”
Ejercicios Realizar los diagramas de flujo necesarios para: a) b) c) d)
Comparar dos valores y determinar cuál es el mayor. Calcular el área de un cuadrado. Calcular el área de un círculo. Convierta de kilómetros por hora a metros por segundo.
10
FIN
Metodología de la Programación
TIC
Variables Una variable es un espacio reservado en la memoria de la computadora y sirve para contener un dato valor determinado, el cual puede ser numérico o de otro tipo. ANALOGÍA: Es posible comparar una variable con un cajón en el cual solamente cabe un objeto a la vez y ese objeto, sería el dato en cuestión. La característica principal de las variables es que, como su nombre lo indica, pueden cambiar su valor en el momento que se requiera.
Constantes Al igual que las variables, son espacios de memoria reservados para almacenar un valor. Sin embargo, se diferencian de éstas, porque las constantes no pueden cambiar el dato que están guardando, sino que lo mantienen fijo.
Identificadores Para localizar una variable o constante, dentro de un algoritmo, pseudocódigo o diagrama de flujo, es necesario asignarle un nombre; dicho nombre se conoce como identificador. Se aconseja utilizar nombres representativos de los datos que se almacenarán.
Reglas para la creación de Identificadores 1. Incluir uno o más caracteres. 2. El primer carácter debe ser una letra o guion bajo (_), mientras que todos los demás, pueden ser letras, dígitos o guiones bajos (_). Las letras pueden ser minúsculas o mayúsculas del alfabeto inglés, es decir, no está permitido el uso de 'ñ' y 'Ñ'. 3. No pueden existir dos identificadores iguales, es decir, dos variables o constantes no pueden llevar el mismo nombre. 4. Salvo el guion bajo, no se puede utilizar ningún otro símbolo especial.
11
Metodología de la Programación
TIC
Tipos de datos Es el tipo de valor que una variable o constante, puede almacenar. Existen 4 tipos de datos básicos, conocidos como “simples”:
1. Entero: Incluye todos los números enteros (positivos o negativos) que hay. 2. Real: Representan a los números decimales tanto positivos como negativos. 3. Carácter: Comúnmente conocido como “char” (por su nombre en inglés), es usado para almacenar caracteres simples, co mo ‘a’ o ‘s’. En caso de que se requiera n guardar palabras e incluso, frases completas, el tipo de dato regularmente usado, es “string” (cadena de caracteres), el cual puede almacenar datos como: “Esta es una cadena de caracteres”. 4. Booleano: Las variables o constantes de este tipo, sólo pueden almacenar dos valores: “Verdadero” o “Falso”. En algunos casos, el valor “verdadero” suele representarse también con un “1” y el “Falso” como un “0”.
Ejemplo: Si la variable A guarda únicamente números que no sean decimales, ¿de qué tipo es? R = Entera.
Ejercicios Responder correctamente las siguientes preguntas: a) Indica dos valores que pueda almacenar la variable N1, la cual es de tipo Real. R= 1.5, 2.3 b) ¿De qué tipo debe ser la variable Nombre, si requiere almacenar el nombre completo de una persona? R= String o Carácter. c) Una constante sólo puede contener un valor “verdadero” o “falso”, ¿cuál será su tipo de dato? R= Booleano.
12
Metodología de la Programación
TIC
Metodología para la solución de problemas por medio de computadoras La solución de un problema por computadora, requiere de siete pasos dispuestos de tal forma, que cada uno depende de los anteriores, es decir, es un proceso complementario y por lo tanto, cada paso exige el mismo cuidado en su elaboración. Los siete pasos de la metodología son: 1. Definición del problema.- Es el enunciado del problema. Debe ser claro y completo. Es fundamental conocer y delimitar totalmente el problema, para saber qué es lo que debe realizar la computadora y mientras esto no suceda, no tiene caso continuar con el siguiente paso. 2. Análisis de la solución.- Una vez definido el problema, es necesario determinar cuáles serán los datos de entrada, qué información se desea producir (salida) y qué métodos y/o fórmulas son necesarias para procesar dichos datos. RECOMENDACIÓN: Hay que ponerse en el lugar de la computadora y analizar qué necesitamos que nos ordenen y en qué secuencia, para producir los resultados esperados. 3. Diseño del algoritmo.- A continuación, se debe crear la serie de pasos ordenados que proporcionen un método explícito para solucionar el problema, es decir, el algoritmo. Las características de un buen algoritmo son: a. Tener un punto particular de inicio. Indicar claramente por dónde empezar. b. Ser definido, no permitir dobles interpretaciones. c. Ser general, es decir, soportar la mayoría de las variantes que se puedan presentar en la definición del problema. d. Ser finito en tamaño y tiempo de ejecución. EJEMPLIFICACIÓN DE PRÁCTICA: Tomar a dos alumnos, decirle a uno de ellos que le dé órdenes al otro para que realice alguna acción. Quien recibe las órdenes debe desconocer qué es lo que el otro compañero desea que haga. 4. Codificación.- Consiste en escribir la solución del problema (de acuerdo al pseudocódigo o diagrama de flujo) como una serie de instrucciones detalladas en un código reconocible por la computadora, es decir, en un lenguaje de programación, lo cual se conoce como “Programa”.
13
Metodología de la Programación
TIC
5. Prueba y Depuración.- La prueba es el proceso de localizar los errores existentes en un programa. Para ello, es necesario: a. Iniciar la prueba con una mentalidad saboteadora, intentando por todos los medios, que el programa marque algún error. b. Sospechar de todos los resultados que arroje la solución y veri ficarlos. c. Considerar todas las situaciones posibles tanto normales como anormales. La depuración, es el proceso de eliminar los errores que se hayan encontrado mediante la prueba. 6. Documentación.- Es la guía escrita que sirve para saber cómo usar un programa o facilitar futuras modificaciones. Debe presentarse en tres formas: a. Documentación Interna.- Son los comentarios que se agregan al código del programa y explican las funciones que realizan ciertos procesos, cálculos o fórmulas para el entendimiento del mismo. b. Documentación Externa.- Es el Manual Técnico, integrado por los siguientes elementos: Descripción del Problema, Nombre del Autor, Diagrama del Flujo y/o Pseudocódigo, Lista de variables y constantes, y Codificación del Programa; con la finalidad de permitir su posterior adecuación a los cambios. c. Manual del Usuario.- Es la guía que se le proporciona al usuario final, para que aprenda a manejar el programa. Presenta todas las pantallas y menús que éste encontrará y una explicación de los mismos, pero no contiene información de tipo técnico. 7.
Mantenimiento.- Se lleva a cabo después de terminar y poner a trabajar el programa, si se detecta que es necesario hacer un cambio, ajuste y/o complementación para que siga trabajando de correctamente.
14
Metodología de la Programación
TIC
Evidencia 1° Unidad Reunir los 15 ejercicios relativos a la unidad 1, pasarlos en limpio escritos a mano y entregarlos. I.- Realizar los algoritmos necesarios para: a) b) c) d)
Preparar un pan tostado con mermelada. Enviar un mensaje por celular. Comparar dos valores y determinar cuál es el mayor. Calcular el área de un cuadrado.
II.- Realizar los pseudocódigos necesarios para: a) b) c) d)
Comparar dos valores y determinar cuál es el mayor. Calcular el área de un cuadrado. Calcular el área de un círculo. Convierta de kilómetros por hora a metros por segundo.
III.- Realizar los diagramas de flujo necesarios para: a) b) c) d)
Comparar dos valores y determinar cuál es el mayor. Calcular el área de un cuadrado. Calcular el área de un círculo. Convierta de kilómetros por hora a metros por segundo.
IV.- Responder correctamente las siguientes preguntas: a) Indica dos valores que pueda almacenar la variable N1, la cual es de tipo Real. b) ¿De qué tipo debe ser la variable Nombre, si requiere almacenar el nombre completo de una persona? c) Una constante sólo puede contener un valor “verdadero” o “falso”, ¿cuál será su tipo de dato?
Lista de Cotejo para Revisión de esta Evidencia
15
Metodología de la Programación
TIC
Tarea Integradora 1° Unidad Realizar, por equipos, el análisis de los ejercicios dados, indicando en una tabla los datos que se solicitan en cada columna, como se observa en el ejemplo siguiente: Ejercicio 1: Realizar la suma de dos números. NÚMERO DE EJERCICIO
DATOS DE ENTRADA
1
Primer número Segundo número
DATOS DE SALIDA Suma de dos números
TIPOS DE DATOS USADOS Resultado de la suma
OPERACIONES A REALIZAR 1) Primer número + Segundo número
Ejercicios: 1) Comparar dos valores y determinar si son iguales. 2) Calcular la raíz cuadrada de un número. 3) Calcular la hipotenusa de un triángulo rectángulo, conocidas las longitudes de sus dos catetos. 4) Ordenar dos números de menor a mayor. 5) Calcular el volumen de un cubo.
Lista de Cotejo para Revisión de esta Tarea Integradora
16
Metodología de la Programación
TIC
Expresiones
Operadores Aritméticos, Relacionales y Lógicos En un código fuente, un operador es un carácter o secuencia de caracteres que definen las operaciones que se realizarán con los datos u operandos.
Operadores Aritméticos Operan sobre valores de tipo entero o real (decimal) y son: OPERADOR
DESCRIPCIÓN
^
Potencia (permite operandos enteros y/o reales). Suma (permite operandos enteros y/o reales). Resta (permite operandos enteros y/o reales). Multiplicación (permite operandos enteros y/o reales). División real (sin importar si los operandos son enteros o reales). Cociente o resultado entero (sólo permite operandos enteros). Devuelve el resto o residuo de la división (sólo permite operandos enteros).
+ * / div mod
Ejercicios:
a) b) c) d)
40 div 2 = 20 40 mod 2 = 0 17 div 3 = 5 17 mod 3 = 2
17
EJEMPLO DE EXPRESIÓN 3^2
RESULTADO DEL EJEMPLO 9
2.5 + 7.1
9.6
10 – 3
8
1.2 * 1
1.2
6/8 30/3 20 div 7
0.75 10 2
20 mod 7
6
Metodología de la Programación
TIC
Operadores Relacionales Operan sobre valores de tipo entero, real o cadena y son: OPERADOR
DESCRIPCIÓN
EJEMPLO DE EXPRESIÓN 110 = 110 9=3 12 <> 12 7 <> 38
=
Igual que
<>
Diferente de
<
Menor que
‘A’ < ‘B’ ‘F’ < ‘C’
>
Mayor que
<=
Menor o igual
>=
Mayor o igual
10 > 50 2.5 > 1.0 20 <= 16 1 <= 1 32 >= 32 ‘D’ >= ‘K’
RESULTADO DEL EJEMPLO Verdadero Falso Falso Verdadero Verdadero Falso Falso Verdadero Falso Verdadero Verdadero Falso
Ejercicios:
Indicar si el resultado de la comparación es verdadero o falso. a) b) c) d)
12 <= 26 19 <> 3 78 = 10
Verdadero Verdadero Falso Falso
‘C’ >= ‘F’
Operadores Lógicos También conocidos como Booleanos, operan sobre valores de su mismo tipo, es decir, lógicos o booleanos y devuelven como resultado también valores de dicho tipo. Son: OPERADOR AND OR NOT
18
DESCRIPCIÓN Y O No o Negación
EJEMPLO DE EXPRESIÓN Verdadero AND Falso Verdadero OR Falso NOT Verdadero
RESULTADO DEL EJEMPLO Falso Verdadero Falso
Metodología de la Programación
TIC
Tablas de Verdad para AND
Con el operador AND, el resultado será verdadero sólo si los dos operandos son verdaderos. A
B
EXPRESIÓN COMPLETA
RESULTADO DEL EJEMPLO
“A AND B”
V V F F
V F V F
V AND V V AND F F AND V F AND F
V F F F
Tablas de Verdad para OR
Con el operador OR, el resultado será verdadero si uno de los dos operandos o ambos, son verdaderos. A
B
EXPRESIÓN COMPLETA
RESULTADO DEL EJEMPLO
“A OR B”
V V F F
V F V F
V OR V V OR F F OR V F OR F
V V V F
Tablas de Verdad para NOT
Con el operador NOT, el resultado será verdadero si el operando es Falso y viceversa. A
EXPRESIÓN COMPLETA
RESULTADO DEL EJEMPLO
“NOT A”
V F
Ejercicios:
a) b) c) d)
V AND F = Falso F OR V = Verdadero NOT V = Falso NOT F AND V = Verdadero
19
NOT V NOT F
F V
Metodología de la Programación
TIC
Jerarquía de Operadores Indica cuál operador debe ejecutarse sobre los operandos y cuál debe hacerlo después: NIVEL DE PRIORIDAD 1 2 3 4 5 6
OPERADOR () ^ NOT *, /, div, mod, AND +, -, OR =, <>, >, <, >=, <=
La secuencia de operadores de igual prioridad, normalmente se evalúa de izquierda a derecha dentro de una expresión, aunque se recomienda el uso de paréntesis para hacer que las expresiones sean más claras y fáciles de entender.
Expresiones Una expresión, es una combinación de operadores y operandos, donde estos últimos pueden ser números, o bien, datos almacenados en constantes y/o variables. Dentro de la programación, se usan para realizar una o varias operaciones sobre un dato o un conjunto de éstos, obteniéndose otro dato como resultado.
Ejemplos: EXPRESIÓN 2*3+4 2+3*4 (2 + 3) * 4 17 div 2 – 1
RESULTADO INTERMEDIO 6+4 2 + 12 5*4 8 – 1
RESULTADO FINAL 10 14 20 7
Las reglas de evaluación de expresiones, pueden resumirse en las siguientes: a) Un dato situado entre dos operadores de diferente prioridad, se liga al operador de mayor prioridad. b) Un dato situado entre dos operadores de igual prioridad, se liga al operador de la izquierda. c) Las expresiones entre paréntesis se evalúan primero para que sus r esultados sean tratados como datos simples.
20
Metodología de la Programación
TIC
Ejercicios:
I.- Resuelve correctamente las siguientes expresiones usando la jerarquía de operadores e indica cuál es ésta: 1. 2. 3. 4.
3 * 5 – 8 / 2 = 15 – 4 = 11 (9 + 1) * (5 – 2) = 10 * 3 = 30 9 div 3 * 2 + (5 mod 4) = 3 * 2 + 1 = 6 + 1 = 7 ((10 + 2) * 4) / (8 + (9 – 5)) = (12 * 4) / (8 + 4) = 48 / 12 = 4
II.- Convierte los siguientes enunciados a expresiones numéricas: 1. Seis veces la diferencia entre 25 y 3. 6(25-3) 2. La suma de 320 y 8, divididos entre 2, todo ello dividido entre 4.
((320+8)/2)/4
Conversión a de Expresiones Matemáticas a Expresiones Algorítmicas Una expresión algebraica es, por ejemplo: ax2+bx=c Para convertirla a expresión algorítmica, hay que tener en cuenta los operadores antes vistos, así, la expresión anterior se convertiría en: a*x^2+b*x=c
Ejemplos: a) 3x2+5x-6 = 3*x^2 + 5*x – 6 b) X4-2x2+5x+1 = x^4 – 2*x^2 + 5*x + 1 c) 5-xy2+xb-x5 = 5 – x*y^2 + x*b – x^5
21
Metodología de la Programación Ejercicios:
Convertir las siguientes expresiones algebraicas a expresiones algorítmicas. a) b) c) d) e) f)
ab=c x3+yx2+zx=b (ab + cd)/(x/y) q2+((x3-ax)b)=k Ax4-Bx3+Cx-D a2+2ab+b2
22
a*b=c x^3+y*x^2+z*x=b (a*b+c*d)/(x/y) q^2+((x^3-a*x)*b)=k A*x^4-B*x^3+C*x-D a^2+2*a*b+b^2
TIC
Metodología de la Programación
TIC
Evidencia 2° Unidad 1. Resolver las siguientes expresiones aritméticas, respetando la jerarquía de operadores. a. -4 * 7 + 2 ^ 3 / 4 – 5 b. ( 7 * ( 10 - 5) mod 3) + 4 + 9 c. 10 div 2 * 8 / 4 – 5 d. (33 + 10 mod 3 * 4) /5 e. 16 * 12 mod 3 – 3 * 2 f. (( 3 + 2 ) ^ 2 – 15) / 2 * 5 g. Y = (4 * 3 / 2) mod (8 \ 4 + 2) 2. Deducir el valor de las siguientes expresiones sabiendo que: A = 5; B = 25; C = 10 a. X = A + B mod C b. X = (A + B) / C c. X = A + (B / C) d. x ^ 2 - 4 * y * z Valores: y = 2, x = 1, z = 3 e. ( X ^ 2 + Y ^ 2 ) > ( 30 / 2 ) Valores: X = 2, Y = 3, Z = 4 3. Obtener el resultado de las siguientes expresiones sabiendo que: A = 4; B = 5; C = 1 a. B * A - B ^ 2 / 4 * C b. (A * B) / 3 ^ 2 c. ( ( ( B + C ) / 2 * A + 10 ) * 3 * B ) - 6 4. Evaluar las siguientes expresiones lógicas aplicando la jerarquía de operadores, para saber si el resultado de cada una es Verdadero o Falso. EXPRESIÓN 1. ((A * B) < (B + C)) AND (A = C) 2. ((A + B) > C) OR ((B / D > B)) 3. X = (A \ B) * C + (A / B) 4. PI * X^2>Y OR 2* PI * X <=Z 5. X>3 AND (Y=4 OR (X+Y<=Z)) 6. X>3 AND (Y=4 OR (X+Y<=Z)) 7. (NOT (Y/2=2*X)) AND (NOT (Y<(PI-E*Z)) 8. 9. 10. 11. 12.
a>b a>=b a
Lista de Cotejo de la Evidencia 2° Unidad
23
DONDE: A=3, B=4 y C=2 A=2, B=5, C=3 y D=5 A = 4, B = 2, C = 3 X=1 Y=4 Z=10 PI=3.141592 E=2.718281 a=5 y b=2
Metodología de la Programación
TIC
Tarea Integradora 2° Unidad I.- Realizar por equipos las conversiones de expresiones matemáticas a expresiones algorítmicas, teniendo en cuenta los operadores aprendidos en clase.
1. 2.
3. 4. P= 5. 6.
+1
7. 8.
(m + n)
9. 10.
II.- Para cada uno de los ejercicios anteriores, incluir la jerarquía de operadores para indicar el en que éstos se ejecutarán. III.- Convertir los siguientes enunciados a expresiones numéricas. 1. El cubo del término X, más el triple producto del cuadrado del termino X por el termino Y, más el triple producto del termino X por el cuadrado del termino Y, más el cubo del termino Y. 2. La diferencia entre el producto de 9 y 15, y el cociente de 24 y 4. 3. La suma de 8 y 3, por la diferencia de 6 y 2. Lista de Cotejo Tarea Integradora 2° Unidad
24
Metodología de la Programación Algoritmos y Diagramas de Flujo
Reglas para la elaboración de Pseudocódigos Todo documento en pseudocódigo debe permitir la descripción de:
Instrucciones primitivas. Instrucciones de proceso. Instrucciones de control. Instrucciones compuestas. Instrucciones de descripción.
Estructura a seguir en su realización: a) Cabecera: Programa. Modulo. Tipos de datos. Constantes. Variables. b) Cuerpo: Inicio Instrucciones Fin
NOTA: Para comentar en pseudocódigo se le antepone al comentario dos asteriscos (*).
25
TIC
Metodología de la Programación
TIC
Ejemplo: Programa que calcula el área de un cuadrado a partir de un lado dado por teclado. Programa: area_cuadrado Módulo: main **( también se puede llamar principal). Variables: lado: número natural área: número natural Algoritmo: Inicio Imprimir: "Introduce el lado del cuadrado" Leer (lado) Area lado * lado Imprimir: "El área del cuadrado es: ", área Fin
Reglas para la elaboración de Diagramas de Flujo 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Usar solamente líneas de flujo, horizontales y/o verticales. Evitar el cruce de líneas utilizando conectores. Usar conectores sólo cuando sea necesario. No dejar líneas de flujo sin conectar. Todos los símbolos deben estar conectados. Trazar los símbolos de manera que se puedan leer de arriba hacia abajo y de izquierda a derecha. A un símbolo de proceso pueden llegar varias líneas de flujo. A un símbolo de decisión pueden llegar varias líneas de flujo, pero sólo saldrán dos. A un símbolo de inicio nunca le llegan líneas. De un símbolo de fin no parte ninguna línea. Escribir claramente cualquier texto que contengan los símbolos, evitando el uso de muchas palabras.
26
Metodología de la Programación
TIC
Pruebas de Escritorio Una prueba de escritorio es la comprobación lógica, de un algoritmo de resolución, es útil para entender que hace un determinado algoritmo, o para verificar que un algoritmo cumple con la especificación sin necesidad de ejecutarlo. Básicamente, una prueba de escritorio es una ejecución ‘a mano’ del algoritmo, por lo tanto se
debe llevar registro de los valores que va tomando cada una de las variables involucradas en el mismo. Para desarrollar la prueba de escritorio, se utilizara el siguiente procedimiento: 1. Con datos de prueba, se seguirán cada uno de los pasos propuestos en el algoritmo de resolución. 2. Si la prueba de escritorio genera resultados óptimos, quiere decir que el algoritmo posee una lógica adecuada, en caso contrario el algoritmo tendrá que ser corregido.
Ejemplo: Realizar la prueba de escritorio del algoritmo dado. suma: entero entrada: entero menor: entero leer (entrada) menor entrada suma 0 mientras (entrada != 0) si (entrada < menor) entonces menor entrada fin_si suma suma + entrada leer entrada fin_mientras imprimir: “valor Menor: ” imprimir: menor imprimir: “Suma:” imprimir: suma
27
Metodología de la Programación INSTRUCCIÓN leer (entrada) menor entrada suma 0 suma suma + entrada leer (entrada) menor entrada suma suma + entrada leer (entrada) suma suma + entrada leer (entrada) Imprimir: “valor menor:”
Imprimir: menor Imprimir: “Suma:” Imprimir: suma
28
ENTRADA MENOR SUMA PANTALLA 10 10 0 10 7 7 17 9 26 0 Valor Menor 7 Suma: 26
TIC
Metodología de la Programación
TIC
Contadores y Acumuladores
Contadores Un contador es una variable cuyo valor se incrementa o decrementa en una cantidad constante cada vez que se produce un determinado suceso o acción. Se usan con la finalidad de contar sucesos o acciones internas de un ciclo; deben realizar una operación de inicialización y posteriormente las sucesivas de incremento o decremento del mismo. La inicialización consiste en asignarle al contador un valor inicial y se sitúa antes y fuera del ciclo.
Ejemplos:
Cada vez que alguien es atendido en la taquilla de un banco, se puede almacenar en un contador de personas atendidas. Cada vez que se vende una entrada a un juego de futbol, se puede almacenar en un contador de entradas vendidas. Cada vez que se registra un nuevo usuario en una página web, se puede almacenar en un contador de usuarios registrados.
A continuación, se presenta en pseudocódigo, la estructura general de un contador: int contador = 0 inicio del ciclo i=i+1 fin del ciclo Los contadores pueden ser de incremento o decremento, por tanto, las sig uientes expresiones son válidas:
i = i + 1; i = i – 1;
29
o bien, i++; o bien, i--;
(Expresiones equivalentes). (Expresiones equivalentes).
Metodología de la Programación
TIC
Acumuladores Un acumulador es una variable que suma sobre sí misma un conjunto de valores para tener el total de ellos en una sola variable.
Ejemplos:
La cantidad de dinero depositado en una cuenta de ahorros en el lapso de un mes, se podría almacenar en un acumulador de depósitos. La cantidad de estudiantes de todos los salones de clases podría almacenarse en un acumulador de cantidad de estudiantes de cada sección. La suma de los habitantes de cada uno de los estados del país, se podría guardar en el acumulador llamado total de habitantes del país.
A continuación, se presenta en pseudocódigo la estructura general de un acumulador: int acumulador = 0 inicio del ciclo acumulador = acumulador + valor fin del ciclo
Donde “valor” puede ser un dato introducido por el usuario, el producto de un cálculo, etc.
Contador vs Acumulador La diferencia entre un contador y un acumulador, es que el primero aumenta de uno en uno y el segundo lo hace en una cantidad variable.
30
Metodología de la Programación
TIC
Estructuras de Control de Selección También llamadas estructuras condicionales, se identifican porque en la fase de solución del problema existe algún punto en el cual es necesario establecer una pregunta, para decidir si ciertas acciones deben realizarse o no. En pseudocódigo, estas estructuras son representadas con las palabras IF – THEN – ELSE (SI – ENTONCES – SI NO o DE LO CONTRARIO). En los diagramas de flujo se simbolizan con un rombo.
Simples Se conforman de una sola condición. Es representada por la estructura IF – THEN, la cual evalúa la condición:
Si ésta es verdadera, entonces ejecuta la acción o acciones localizadas en el bloque IF. Si es falsa, entonces no se hace nada.
Representación en pseudocódigo
INGLES If (condición) then Acción a realizar en caso de que la condición se cumpla. End If
Representación en diagrama de flujo
31
ESPAÑOL Si (condición) Entonces Acción a realizar en caso de que la condición se cumpla. Final Si
Metodología de la Programación
TIC
Ejemplo:
Construir un algoritmo que, dada la calificación de un alumno en un examen, escriba “Aprobado” en caso que esa calificación fuese mayor que 8. Representación en Pseudocódigo: Salidas: Mensaje de Aprobado si se cumple la condición. Entradas: Calificación. Datos adicionales: Un alumno aprueba si la calificación es mayor que 8. Variables: Cal = Calificación Algoritmo: INICIO LEER (Cal) SI (Cal > 8) ENTONCES Escribir “Aprobado”
FIN_SI FIN
Representación en Diagrama de Flujo:
32
Metodología de la Programación
TIC
Dobles Son estructuras lógicas que permiten controlar la ejecución de varias acciones y se usan cuando se tienen dos opciones de acción, por la naturaleza de éstas se debe ejecutar una o la otra, pero no ambas a la vez.
Representación en pseudocódigo
INGLES
ESPAÑOL
If (condición) then Acción a realizar en caso de que la condición se cumpla. Else Acción a realizar en caso de que la condición no se cumpla. End If
Si (condición) Entonces Acción a realizar en caso de que la condición se cumpla. Si no Acción a realizar en caso de que la condición no se cumpla. Final Si
Representación en diagrama de flujo
33
Metodología de la Programación
TIC
Ejemplo:
Construir un algoritmo que, dada la calificación de un alumno en un examen, escriba “Aprobado” en caso que esa calificación fuese mayor que 8 y “Re probado” en caso contrario.
Representación en Pseudocódigo: Algoritmo: INICIO LEER (Cal) SI (Cal > 8) ENTONCES Escribir “Aprobado”
SI NO Escribir “Reprobado”
FIN_SI FIN
Representación en Diagrama de Flujo:
34
Metodología de la Programación
TIC
Compuestas Se utilizan en aquellos casos en que luego de tomar una decisión y marcar el camino correspondiente a seguir, es necesario tomar otra decisión; proceso que puede repetirse numerosas veces. Este tipo de estructuras se llama bloque anidado o IF anidado, pues contiene un bloque condicional (IF) dentro de otro.
Ejemplo:
Determinar la cantidad de dinero que recibirá un trabajador por concepto de las horas extras trabajadas en una empresa, sabiendo que cuando las horas de trabajo exceden de 40, el resto se consideran horas extras y que éstas se pagan al doble de una hora normal cuando no exceden de 8; si las horas extras exceden de 8 se pagan las primeras 8 al doble de lo que se paga por una hora normal y el resto al triple. SOLUCIÓN: Primero, determinar si el trabajador laboró horas extra o no. Encontrar las horas extra de la siguiente forma: HORAS EXTRA = HORAS TRABAJADAS – 40 SI TRABAJÓ HORAS EXTRA: SI HORAS EXTRA > 8 ENTONCES HORAS EXTRA EXCEDENTES DE 8 = HORAS EXTRA – 8 Y PAGO POR HORAS EXTRA = PAGO POR HORA NORMAL * 2 * 8 + PAGO POR HORA NORMAL * 3 * HORAS EXTRA EXCEDENTES DE 8. SI NO (SÓLO HORAS AL DOBLE), PAGO POR HORAS EXTRA = PAGO POR HORA NORMAL * 2 * HORAS EXTRA. FINALMENTE, PAGO TOTAL QUE RECIBIRÁ EL TRABAJADOR SERÁ: PAGO = PAGO * HORA NORMAL * 40 + PAGO POR HORAS EXTRA. SI NO TRABAJÓ HORAS EXTRA: PAGO = PAGO POR HORA NORMAL * HORAS TRABAJADAS SALIDAS: PAGO. ENTRADAS: NÚMERO DE HOJAS TRABAJADAS Y PAGO POR HORA NORMAL.
35
Metodología de la Programación VARIABLES: HT = HORAS TRABAJADAS HE = HORAS EXTRA HET = HORAS EXTRA QUE EXCEDEN DE 8 PH = PAGO POR HORA NORMAL PHE = PAGO POR HORAS EXTRA PT = PAGO QUE RECIBE EL TRABAJADOR ALGORITMO: INICIO LEER (HT, PH) SI (HT > 40) ENTONCES HE
HT – 40
SI (HE > 8) ENTONCES HET
HE – 8
PHE
PH * 2 * 8 + PH * 3 * HET
PHE
PH * 2 * HE
SI NO
FIN_SI PT
PH * 40 + PHE
PT
PH * HT
SI NO
FIN_SI ESCRIBIR (PT) FIN
36
TIC
Metodología de la Programación
TIC
Múltiples Se emplea cuando es necesario que existan más de dos elecciones posibles. COMENTARIO: Si bien este problema podría resolverse mediante estructuras simples o dobles anidadas, puede suceder que el número de alternativas sea grande y plantee serios problemas de escritura y legibilidad. Usando estas estructuras puede evaluarse una expresión que tome n valores distintos (1, 2, 3, …,
n) y según el valor que se elija en la condición, se realizará una de las n acciones o en otras palabras, el flujo del algoritmo seguirá sólo un determinado camino entre los n posibles.
Representación en Pseudocódigo
EN CASO DE QUE VARIABLE VALGA: 1: EJECUTAR ACCIÓN 1. 2: EJECUTAR ACCIÓN 2. 3: EJECUTAR ACCIÓN 3. …
N: EJECUTAR ACCIÓN N. FIN_EN_CASO_DE_QUE
Representación en Diagrama de Flujo
37
Metodología de la Programación
TIC
Ejemplo:
Diseñar un algoritmo tal que dados como datos dos variables de tipo entero, obtenga el resultado de la siguiente función:
SOLUCIÓN:
ALGORITMO:
38
Metodología de la Programación DIAGRAMA DE FLUJO:
39
TIC
Metodología de la Programación
TIC
Estructuras de Repetición También llamadas “repetitivas” o “iterativas”, se utilizan cuando es necesario que un conjunto de
instrucciones se ejecuten un cierto número finito de veces. Están formadas por bucles o ciclos, que son procesos que se repiten un determinado número de ocasiones dentro de un pseudocódigo o programa.
Para – Hasta Es usado cuando se conoce de antemano cuántas veces se ejecutarán las acciones de un ciclo.
Representación en Pseudocódigo
INGLES
ESPAÑOL
FOR variable = valor inicial TO valor final Acciones a realizar dentro del ciclo END_FOR
PARA variable = valor inicial HASTA valor final Acciones a realizar dentro del ciclo FIN_PARA-HASTA
Representación en Diagrama de Flujo
Para emplear esta estructura en algoritmos, se deben utilizar contadores y algunas veces, acumuladores.
40
Metodología de la Programación
TIC
Ejemplo:
Calcular la suma de los cuadrados de los primeros 100 enteros y escribir el resultado. Se desea resolver el problema usando estructura Desde, Mientras y luego Repetir. SOLUCIÓN: ALGORITMO: INICIO SUMA
0
PARA k = 1 HASTA 100 SUMA
SUMA + K * K
FIN_PARA-HASTA ESCRIBIR (SUMA) FIN
DIAGRAMA DE FLUJO:
41
Metodología de la Programación
TIC
Repite Es aquella estructura que se repite un cierto número de veces hasta que una determinada condición se vuelva verdadera.
Representación en Pseudocódigo
INGLES
ESPAÑOL
REPEAT Acciones a repetir dentro del ciclo. UNTIL (CONDICIÓN)
REPITE Acciones a repetir dentro del ciclo. HASTA QUE (CONDICIÓN)
Representación en Diagrama de Flujo
42
Metodología de la Programación
TIC
Ejemplo:
Calcular la suma de los cuadrados de los primeros 100 números enteros y escribir el resultado. SOLUCIÓN: ALGORITMO: INICIO SUMA 0 K 1 REPETIR SUMA SUMA + K * K K K+1 HASTA QUE (K > 100) ESCRIBIR (SUMA) FIN DIAGRAMA DE FLUJO:
43
Metodología de la Programación
TIC
Mientras Es aquella estructura que se ejecuta mientras una condición evaluada, resulte verdadera. La diferencia entre Mientras y Repite, es que en la primera, la condición se sitúa al principio, en cambio, en la estructura Repite, se sitúa al final del bloque de instrucciones. Existen ciertos casos en que las estructuras Mientras y Para-Hasta, no realizan ninguna iteración (repetición) en el ciclo, sin embargo, Repite, siempre ejecutará el ciclo al menos una vez. EXPLICAR POR QUÉ SUCEDE ESTO.
Representación en Pseudocódigo
INGLES
ESPAÑOL
WHILE (Condición) Acciones a repetir dentro del ciclo. END_WHILE
MIENTRAS (Condición) Acciones a repetir dentro del ciclo. FIN_MIENTRAS
Representación en Diagrama de Flujo
44
Metodología de la Programación
TIC
Ejemplo:
Calcular la suma de los cuadrados de los primeros 100 números enteros y escribir el resultado. SOLUCIÓN: ALGORITMO: INICIO SUMA 0 K 1 MIENTRAS (K <= 100) SUMA SUMA + K * K K K+1 FIN_MIENTRAS ESCRIBIR (SUMA) FIN DIAGRAMA DE FLUJO:
45
Metodología de la Programación
TIC
Evidencia 3° Unidad Realizar el pseudocódigo y diagrama de flujo que resuelva los siguientes casos. Una vez terminado, hacer la prueba de escritorio necesaria para evaluar la funcionalidad de cada solución. 1. Llevar a cabo la suma de dos números leídos por el teclado e imprimir el resultado en pantalla. 2. Modificar el anterior para sumar 100 números leídos por teclado. 3. Modificar el anterior para que permita sumar N números. El valor de N debe leerse previamente por teclado. 4. Escribir los 100 primeros números pares. 5. Sumar los N primeros números impares. 6. Modificar el anterior para que haga lo mismo con los números pares. 7. Modificar el anterior para que haga lo mismo con los múltiplos de 3. 8. Calcular el N-ésimo término de la sucesión Fibonacci, la cual se define como sigue: a 1=1, a2=1 y an=an-1+an-2 para n>2, es decir, los dos primeros valores son 1 y en el resto cada uno es la suma de los dos anteriores; así, los primero son: 1, 1, 2, 3, 5, 8, 13, 21, …
9. Simular un reloj. 10. Calcular el máximo común divisor de dos números enteros positivos N y M, siguiendo el algoritmo de Euclides, que es el siguiente: a. Se divide N entre M, sea R el resto. b. Si R=0, el máximo común divisor es M y se acaba. c. Se asigna a N el valor de M y a M el valor de R y volver al paso 1.
Lista de Cotejo para Revisión de esta Evidencia
46