Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Metodologa de la Programacin
Fundamentos
MTW Rosa Martha Nez Arroyo
2012
Contenido
Conceptos Bsicos ......................................................................................................................... 3 Adquisicin, procesamiento y almacenamiento de datos ........................................................... 3 Algoritmo ................................................................................................................................... 5 Ejercicios ................................................................................................................................ 5 Pseudocdigo ............................................................................................................................ 6 Ejercicios ................................................................................................................................ 7 Diagrama de Flujo ...................................................................................................................... 8 Simbologa de los Diagramas de Flujo ..................................................................................... 8 Operadores de los Diagramas de Flujo.................................................................................... 9 Ejercicios .............................................................................................................................. 10 Variables .................................................................................................................................. 11 Constantes ............................................................................................................................... 11 Identificadores ......................................................................................................................... 11 Reglas para la creacin de Identificadores ............................................................................ 11 Tipos de datos .......................................................................................................................... 12 Ejercicios .............................................................................................................................. 12 Metodologa para la solucin de problemas por medio de computadoras ................................ 13 Evidencia 1 Unidad ................................................................................................................. 15 Tarea Integradora 1 Unidad .................................................................................................... 16 Expresiones.................................................................................................................................. 17 Operadores Aritmticos, Relacionales y Lgicos ....................................................................... 17 Operadores Aritmticos ....................................................................................................... 17 Operadores Relacionales ...................................................................................................... 18 Operadores Lgicos .............................................................................................................. 18 Jerarqua de Operadores .......................................................................................................... 20 Expresiones.............................................................................................................................. 20 Conversin a de Expresiones Matemticas a Expresiones Algortmicas ................................. 21
Conceptos Bsicos
2) Preguntarles: Los datos, por s solos, sirven para algo? R= No. 3) Decirles en conclusin: Los datos tienen que estar agrupados, ordenados y definidos para ser tiles, es decir, para convertirse en informacin.
Informacin: Conjunto de datos supervisados y ordenados que sirven para resolver problemas y
tomar decisiones. Ejemplo: DATOS: INFORMACIN: 13.95 , 14.80 Dlar a la compra: $13.95 Dlar a la venta: $14.80
Los datos dados, son valores sueltos que no nos dicen nada, en cambio, con la informacin podemos decidir, por ejemplo, si el dlar est caro o no y si nos conviene comprarlos o esperar a que baje su valor.
ENTRADA
SALIDA
Entrada: Datos iniciales requeridos para arrancar. Proceso: Operaciones a realizar. Salida: Resultados obtenidos.
2 + 5 PROCESO
DATOS
INFORMACIN
Ejemplo de un proceso de informacin: 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 mantenindola o no. INGRESOS: $3,250 GASTOS: $2,500 DATOS INGRESOS GASTOS $3,250 $2,500 PROCESO DE INFORMACIN GANANCIA = $750 MENSUALES INFORMACIN
En base a la informacin obtenida, se toma la decisin que ms convenga a la tienda de abarrotes (seguir o cerrarla).
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 cul es el mayor. Calcular el rea de un cuadrado.
Ejemplo 1: Realizar el pseudocdigo de un algoritmo que lleve a cabo la suma de dos nmeros.
INICIO 1. 2. 3. 4. 5. 6. FIN IMPRIMIR: Introduce el primer nmero: LEER: Primer nmero. IMPRIMIR: Introduce el segundo nmero: LEER: Segundo nmero. CALCULAR: Suma = Primer nmero + Segundo nmero. IMPRIMIR: El resultado es: , Suma.
Ejemplo 2: Realizar el pseudocdigo de un algoritmo que lea un valor y escriba si ste es par o
impar. INICIO 1. 2. 3. 4. 5. FIN IMPRIMIR: Introduce el nmero: LEER: Nmero. SI: Nmero/2 = 0 ENTONCES: IMPRIMIR: El nmero es par SI NO: IMPRIMIR: El nmero es impar
Realizar los pseudocdigos necesarios para: a) b) c) d) Comparar dos valores y determinar cul es el mayor. Calcular el rea de un cuadrado. Calcular el rea de un crculo. Convierta de kilmetros por hora a metros por segundo.
Smbolo
Significado
Inicializador o Terminador. Representa el inicio o fin de un diagrama de flujo. Proceso. Simboliza la ejecucin de un procedimiento especfico, sobre los datos manejados en el diagrama. Decisin. 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 unin de un bloque del diagrama con otro. Conector fuera de pgina. Indica la unin de una parte del diagrama con otra que se encuentra en una pgina distinta. Documento. Simboliza la salida de datos por medio de la impresora. Pantalla. Indica la impresin de resultados en la pantalla de la computadora.
Significado
Suma Resta Multiplicacin Divisin 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 nmeros.
INICIO A
FIN
INICIO
Introduce un nmero:
Resultado = Nmero / 2
NO
Resultado = 0?
SI El Nmero es Par
El Nmero es Impar
FIN
Ejercicios
Realizar los diagramas de flujo necesarios para: a) b) c) d) Comparar dos valores y determinar cul es el mayor. Calcular el rea de un cuadrado. Calcular el rea de un crculo. Convierta de kilmetros por hora a metros por segundo.
10
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 estn guardando, sino que lo mantienen fijo.
Identificadores
Para localizar una variable o constante, dentro de un algoritmo, pseudocdigo 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 almacenarn.
1. Incluir uno o ms caracteres. 2. El primer carcter debe ser una letra o guion bajo (_), mientras que todos los dems, pueden ser letras, dgitos o guiones bajos (_). Las letras pueden ser minsculas o maysculas del alfabeto ingls, 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 ningn otro smbolo especial.
11
Ejemplo: Si la variable A guarda nicamente nmeros 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 Carcter. c) Una constante slo puede contener un valor verdadero o falso, cul ser su tipo de dato? R= Booleano.
12
13
14
II.- Realizar los pseudocdigos necesarios para: a) b) c) d) Comparar dos valores y determinar cul es el mayor. Calcular el rea de un cuadrado. Calcular el rea de un crculo. Convierta de kilmetros por hora a metros por segundo.
III.- Realizar los diagramas de flujo necesarios para: a) b) c) d) Comparar dos valores y determinar cul es el mayor. Calcular el rea de un cuadrado. Calcular el rea de un crculo. Convierta de kilmetros 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 slo puede contener un valor verdadero o falso, cul ser su tipo de dato?
15
Ejercicios: 1) Comparar dos valores y determinar si son iguales. 2) Calcular la raz cuadrada de un nmero. 3) Calcular la hipotenusa de un tringulo rectngulo, conocidas las longitudes de sus dos catetos. 4) Ordenar dos nmeros de menor a mayor. 5) Calcular el volumen de un cubo.
16
Operadores Aritmticos
Operan sobre valores de tipo entero o real (decimal) y son: OPERADOR ^ + * / div mod DESCRIPCIN Potencia (permite operandos enteros y/o reales). Suma (permite operandos enteros y/o reales). Resta (permite operandos enteros y/o reales). Multiplicacin (permite operandos enteros y/o reales). Divisin real (sin importar si los operandos son enteros o reales). Cociente o resultado entero (slo permite operandos enteros). Devuelve el resto o residuo de la divisin (slo permite operandos enteros). EJEMPLO DE EXPRESIN 3^2 2.5 + 7.1 10 3 1.2 * 1 6/8 30/3 20 div 7 20 mod 7 RESULTADO DEL EJEMPLO 9 9.6 8 1.2 0.75 10 2 6
Ejercicios:
a) b) c) d)
17
Operan sobre valores de tipo entero, real o cadena y son: OPERADOR = <> < > <= >= DESCRIPCIN Igual que Diferente de Menor que Mayor que Menor o igual Mayor o igual EJEMPLO DE EXPRESIN 110 = 110 9=3 12 <> 12 7 <> 38 A < B F < C 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 comparacin es verdadero o falso. a) b) c) d) 12 <= 26 19 <> 3 78 = 10 C >= F Verdadero Verdadero Falso Falso
Operadores Lgicos
Tambin conocidos como Booleanos, operan sobre valores de su mismo tipo, es decir, lgicos o booleanos y devuelven como resultado tambin valores de dicho tipo. Son: OPERADOR AND OR NOT DESCRIPCIN Y O No o Negacin EJEMPLO DE EXPRESIN Verdadero AND Falso Verdadero OR Falso NOT Verdadero RESULTADO DEL EJEMPLO Falso Verdadero Falso
18
Con el operador AND, el resultado ser verdadero slo si los dos operandos son verdaderos. A V V F F B V F V F EXPRESIN COMPLETA A AND B V AND V V AND F F AND V F AND F RESULTADO DEL EJEMPLO V F F F
Con el operador OR, el resultado ser verdadero si uno de los dos operandos o ambos, son verdaderos. A V V F F B V F V F EXPRESIN COMPLETA A OR B V OR V V OR F F OR V F OR F RESULTADO DEL EJEMPLO V V V F
Con el operador NOT, el resultado ser verdadero si el operando es Falso y viceversa. A V F Ejercicios: EXPRESIN COMPLETA NOT A NOT V NOT F RESULTADO DEL EJEMPLO F V
a) b) c) d)
19
La secuencia de operadores de igual prioridad, normalmente se evala de izquierda a derecha dentro de una expresin, aunque se recomienda el uso de parntesis para hacer que las expresiones sean ms claras y fciles de entender.
Expresiones
Una expresin, es una combinacin de operadores y operandos, donde estos ltimos pueden ser nmeros, o bien, datos almacenados en constantes y/o variables. Dentro de la programacin, se usan para realizar una o varias operaciones sobre un dato o un conjunto de stos, obtenindose otro dato como resultado.
Ejemplos:
EXPRESIN 2*3+4 2+3*4 (2 + 3) * 4 17 div 2 1 RESULTADO INTERMEDIO 6+4 2 + 12 5*4 81 RESULTADO FINAL 10 14 20 7
Las reglas de evaluacin 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 parntesis se evalan primero para que sus resultados sean tratados como datos simples.
20
I.- Resuelve correctamente las siguientes expresiones usando la jerarqua de operadores e indica cul 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 numricas: 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
Una expresin algebraica es, por ejemplo: ax2+bx=c Para convertirla a expresin algortmica, hay que tener en cuenta los operadores antes vistos, as, la expresin anterior se convertira 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
Convertir las siguientes expresiones algebraicas a expresiones algortmicas. 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 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
22
23
1. 2.
3.
4. P= 5.
6. +1
7.
8. (m + n)
9. 10.
II.- Para cada uno de los ejercicios anteriores, incluir la jerarqua de operadores para indicar el en que stos se ejecutarn. III.- Convertir los siguientes enunciados a expresiones numricas. 1. El cubo del trmino X, ms el triple producto del cuadrado del termino X por el termino Y, ms el triple producto del termino X por el cuadrado del termino Y, ms 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.
24
Estructura a seguir en su realizacin: a) Cabecera: Programa. Modulo. Tipos de datos. Constantes. Variables. b) Cuerpo: Inicio Instrucciones Fin NOTA: Para comentar en pseudocdigo se le antepone al comentario dos asteriscos (*).
25
Programa que calcula el rea de un cuadrado a partir de un lado dado por teclado. Programa: area_cuadrado Mdulo: main **( tambin se puede llamar principal). Variables: lado: nmero natural rea: nmero natural Algoritmo: Inicio Imprimir: "Introduce el lado del cuadrado" Leer (lado) Area lado * lado Imprimir: "El rea del cuadrado es: ", rea Fin
26
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
28
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 accin. Se usan con la finalidad de contar sucesos o acciones internas de un ciclo; deben realizar una operacin de inicializacin y posteriormente las sucesivas de incremento o decremento del mismo. La inicializacin consiste en asignarle al contador un valor inicial y se sita 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 pgina web, se puede almacenar en un contador de usuarios registrados.
A continuacin, se presenta en pseudocdigo, 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 siguientes expresiones son vlidas: i = i + 1; i = i 1; o bien, i++; o bien, i--; (Expresiones equivalentes). (Expresiones equivalentes).
29
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 podra almacenar en un acumulador de depsitos. La cantidad de estudiantes de todos los salones de clases podra almacenarse en un acumulador de cantidad de estudiantes de cada seccin. La suma de los habitantes de cada uno de los estados del pas, se podra guardar en el acumulador llamado total de habitantes del pas.
A continuacin, se presenta en pseudocdigo 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 clculo, 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
Simples
Se conforman de una sola condicin. Es representada por la estructura IF THEN, la cual evala la condicin: Si sta es verdadera, entonces ejecuta la accin o acciones localizadas en el bloque IF. Si es falsa, entonces no se hace nada.
Representacin en pseudocdigo
INGLES If (condicin) then Accin a realizar en caso de que la condicin se cumpla. End If Representacin en diagrama de flujo
ESPAOL Si (condicin) Entonces Accin a realizar en caso de que la condicin se cumpla. Final Si
31
Construir un algoritmo que, dada la calificacin de un alumno en un examen, escriba Aprobado en caso que esa calificacin fuese mayor que 8. Representacin en Pseudocdigo: Salidas: Mensaje de Aprobado si se cumple la condicin. Entradas: Calificacin. Datos adicionales: Un alumno aprueba si la calificacin es mayor que 8. Variables: Cal = Calificacin Algoritmo: INICIO LEER (Cal) SI (Cal > 8) ENTONCES Escribir Aprobado FIN_SI FIN
32
Son estructuras lgicas que permiten controlar la ejecucin de varias acciones y se usan cuando se tienen dos opciones de accin, por la naturaleza de stas se debe ejecutar una o la otra, pero no ambas a la vez.
Representacin en pseudocdigo
INGLES If (condicin) then Accin a realizar en caso de que la condicin se cumpla. Else Accin a realizar en caso de que la condicin no se cumpla. End If
ESPAOL Si (condicin) Entonces Accin a realizar en caso de que la condicin se cumpla. Si no Accin a realizar en caso de que la condicin no se cumpla. Final Si
33
Construir un algoritmo que, dada la calificacin de un alumno en un examen, escriba Aprobado en caso que esa calificacin fuese mayor que 8 y Reprobado en caso contrario.
Representacin en Pseudocdigo: Algoritmo: INICIO LEER (Cal) SI (Cal > 8) ENTONCES Escribir Aprobado SI NO Escribir Reprobado FIN_SI FIN
34
Se utilizan en aquellos casos en que luego de tomar una decisin y marcar el camino correspondiente a seguir, es necesario tomar otra decisin; 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. SOLUCIN: 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 (SLO 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: NMERO DE HOJAS TRABAJADAS Y PAGO POR HORA NORMAL.
35
36
Se emplea cuando es necesario que existan ms de dos elecciones posibles. COMENTARIO: Si bien este problema podra resolverse mediante estructuras simples o dobles anidadas, puede suceder que el nmero de alternativas sea grande y plantee serios problemas de escritura y legibilidad. Usando estas estructuras puede evaluarse una expresin que tome n valores distintos (1, 2, 3, , n) y segn el valor que se elija en la condicin, se realizar una de las n acciones o en otras palabras, el flujo del algoritmo seguir slo un determinado camino entre los n posibles.
Representacin en Pseudocdigo
EN CASO DE QUE VARIABLE VALGA: 1: EJECUTAR ACCIN 1. 2: EJECUTAR ACCIN 2. 3: EJECUTAR ACCIN 3. N: EJECUTAR ACCIN N. FIN_EN_CASO_DE_QUE
37
Disear un algoritmo tal que dados como datos dos variables de tipo entero, obtenga el resultado de la siguiente funcin:
SOLUCIN:
ALGORITMO:
38
39
Para Hasta
Es usado cuando se conoce de antemano cuntas veces se ejecutarn las acciones de un ciclo.
Representacin en Pseudocdigo
INGLES FOR variable = valor inicial TO valor final Acciones a realizar dentro del ciclo END_FOR
ESPAOL PARA variable = valor inicial HASTA valor final Acciones a realizar dentro del ciclo FIN_PARA-HASTA
Para emplear esta estructura en algoritmos, se deben utilizar contadores y algunas veces, acumuladores.
40
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. SOLUCIN: ALGORITMO: INICIO SUMA 0 PARA k = 1 HASTA 100 SUMA SUMA + K * K FIN_PARA-HASTA ESCRIBIR (SUMA) FIN
DIAGRAMA DE FLUJO:
41
Es aquella estructura que se repite un cierto nmero de veces hasta que una determinada condicin se vuelva verdadera.
Representacin en Pseudocdigo
ESPAOL REPITE Acciones a repetir dentro del ciclo. HASTA QUE (CONDICIN)
42
Calcular la suma de los cuadrados de los primeros 100 nmeros enteros y escribir el resultado. SOLUCIN: ALGORITMO: INICIO SUMA 0 K1 REPETIR SUMA SUMA + K * K KK+1 HASTA QUE (K > 100) ESCRIBIR (SUMA) FIN
DIAGRAMA DE FLUJO:
43
Es aquella estructura que se ejecuta mientras una condicin evaluada, resulte verdadera. La diferencia entre Mientras y Repite, es que en la primera, la condicin se sita al principio, en cambio, en la estructura Repite, se sita al final del bloque de instrucciones. Existen ciertos casos en que las estructuras Mientras y Para-Hasta, no realizan ninguna iteracin (repeticin) en el ciclo, sin embargo, Repite, siempre ejecutar el ciclo al menos una vez. EXPLICAR POR QU SUCEDE ESTO.
Representacin en Pseudocdigo
44
Calcular la suma de los cuadrados de los primeros 100 nmeros enteros y escribir el resultado. SOLUCIN: ALGORITMO: INICIO SUMA 0 K1 MIENTRAS (K <= 100) SUMA SUMA + K * K KK+1 FIN_MIENTRAS ESCRIBIR (SUMA) FIN
DIAGRAMA DE FLUJO:
45
46
5.
6.
7.
8.
9.
10.
47