Upload
marcosmj23
View
223
Download
1
Embed Size (px)
DESCRIPTION
Introducción al uso de los algoritmos y uso de programa FDF
Citation preview
INTRODUCCION A LOS ALGORITMOS
MENU DEL DIA• Fases para el desarrollo de
un programa.• Partes de un programa.• Ejecución de un programa.• Anatomía de un programa.• Datos y tipos de datos.• Tipos de datos primitivos.• Expresiones
• Expresiones aritméticas.• Expresiones relacionales.• Expresiones lógicas.
• Prioridad y asociatividad.• Entrada y salida.
• Entrada.• Salida.• Sobre el LEA y el ESCRIBA
FASES PARA EL DESARROLLO DE UN PROGRAMA
Computadora mata a Flanders
???????
Problema
Algoritmo
Programa
C
FASES PARA EL DESARROLLO DE UN PROGRAMA
Paso 1. Definición y análisis del programa
• Comprensión del problema (que me piden?)• Análisis del problema.• Establecer una estrategia de solución del problema (entradas, salidas, proceso).
Computadora mata a Flanders
???????
FASES PARA EL DESARROLLO DE UN PROGRAMA
Paso 2. Diseño del algoritmo
• Diagrama de flujo. (FreeDFD: http://wiki.freaks-unidos.net/freedfd/index )• Pseudocódigo. (PseInt: http://pseint.sourceforge.net/ ).
FASES PARA EL DESARROLLO DE UN PROGRAMA
Paso 3. Codificación del programa
Recordemos, un programa es un conjunto deinstrucciones (dadas a la maquina) queproducirán la ejecución de determinada tarea.
C
FASES PARA EL DESARROLLO DE UN PROGRAMA
Paso 4. Depuración
• Probar el funcionamiento del programa bajo condicionesreales para buscar errores y corregirlos.• Hacer mas robusto el programa.
FASES PARA EL DESARROLLO DE UN PROGRAMA
Paso 5. Documentación
• Explicación breve de los diferenteselementos del programa para facilitar lacomprensión de su funcionamiento.
http://en.wikipedia.org/wiki/Comparison_of_documentation_generators
FASES PARA EL DESARROLLO DE UN PROGRAMA
Paso 6. Mantenimiento
• Mejoras.• Corrección de nuevos fallas.• Soporte.
PARTES DE UN PROGRAMA
ENTRADA SALIDA
INSTRUCCIONES
EJECUCION DE UN PROGRAMA
LINEAL (Ejecución secuencial)
1
2
3
N
. . .
1
2
3
N
. . .
NO LINEAL (Interrupción mediante instrucciones de
bifurcación).
ANATOMIA DE UN PROGRAMA
Declaración de variables
Algoritmo(sumar)
Variables:
a, b, c: entero
INICIO
ESCRIBA(“Introduzca el primer numero (entero)”)
LEA(a)
ESCRIBA(“Introduzca el segundo numero (entero)”)
LEA(b)
c a + b
ESCRIBA(“La suma es: ”,c)
FIN_INICIO
Fin(sumar)
Instrucciones
Algoritmo(Nombre_algoritmo)
Declaracion_de_variables
INICIO
INSTRUCCIÓN_1
INSTRUCCIÓN_2
INSTRUCCIÓN_3
. . .
INSTRUCCIÓN_N
FIN_INICIO
Fin(Nombre_algoritmo)
ANATOMIA DE UN PROGRAMA
Algoritmo(Nombre_algoritmo)
Declaracion_de_variables
INICIO
INSTRUCCIÓN_1
INSTRUCCIÓN_2
INSTRUCCIÓN_3
. . .
INSTRUCCIÓN_N
FIN_INICIO
Fin(Nombre_algoritmo)
variable variable, constante, expresión
Operador de asignación (,=)
b 3c -9.8d “Nerón Navarrete”
b ac fd ñ
b a + 4*gc c + 1z (x+y)/w + v^3
variable variable variable constante variable expresión
DATOS Y TIPOS DE DATOSDato Expresión general la cualdescribe los objetos con loscuales opera la computadoras.
NO LINEAL (Interrupción mediante instrucciones de
bifurcación).
Tipo Los distintos tipos de datos serepresentan en forma diferenteen la computadora
Compuestos
Simples
10010100111 . . . 1001 Tipo de dato (Abstracción)
Representación en la maquina Lenguajes de alto nivel
TIPOS DE DATOS PRIMITIVOS
Datos
Numéricos
Entero Real
Alfanumérico Lógico
TIPOS DE DATOS PRIMITIVOS
Tipos de datos simples
• Numéricos (Enteros, reales).• Lógicos (booleanos).• Alfanuméricos (Carácter, cadenas).
Enteros: Representan los númerosenteros, no poseen parte decimal,ejemplo: 5, 6, -15, -100,1000,…
Reales: Representan númerosreales, poseen parte decimal,ejemplo: 0.08, 3.14, 3.7452, -8.003,3.0.
Booleanos: Aquellos que puedentomar dos posibles valores; falso(false) o verdadero (true).
Alfanuméricos: Conjunto finito yordenado que el computadorreconoce
EXPRESIONESLas expresiones son combinaciones de constantes, variables, símbolos deoperación, paréntesis y nombres de funciones especiales
Variables
Constantes
Operadores
Función raíz cuadrada
EXPRESIONES ARITMETICAS
Las expresiones aritméticas son análogas a las formulas matemáticas. Lasvariables y constantes son numéricas (real o entera) y las operaciones sonlas aritméticas.
Operador Operación
+ Suma
- Resta
* Multiplicación
/ División
^ Potenciación
div División entera
mod, % Módulo (residuo)
REGLAS DE PRIORIDAD Y ASOCIATIVIDAD
Cuando se tiene una expresión con dos o mas operandos, las operaciones se llevan a cabo siguiendoun orden. Las reglas que dictan que operaciones se hacen primero y que operaciones se hacen deultimo se conocen como reglas de prioridad o precedencia, y son:• Las operaciones que están encerradas entre paréntesis se evalúan primero. Si existen paréntesisanidados (unos dentro de otros), las expresiones mas internas se evalúan primero.
• Las operaciones aritméticas dentro de una expresión suelen seguir el siguiente orden de prioridad.
Prioridad Operación
1 ^
2 *,/,%
3 +,-
Cuando coinciden varios operadores de igual prioridad en una expresión, hablamos deasociatividad. La asociatividad dicta el orden en que se ejecutan las operaciones de igualprioridad.
Operación Asociatividad
^ D I
*,/,% I D
+,- I D
D: Derecha
I: Izquierda
REGLAS DE PRIORIDAD Y ASOCIATIVIDADPrioridad Operación Asociatividad
1 ^ D I
2 *,/,% I D
3 +,- I D
-4*7 + 2^3/4 - 5
-4*7 + 8/4 - 5
-28 + 8/4 - 5
-28 + 2 - 5
-26 - 5
-31
4/2*3/6 + 6/2/1/5^2/4*2
4/2*3/6 + 6/2/1/25/4*2
8*3/6 + 6/2/1/25/4*2
24/6 + 6/2/1/25/4*2
4 + 6/2/1/25/4*2
4 + 3/1/25/4*2
4 + 3/25/4*2
4 + 0.12/4*2
4 + 0.03*2
4 + 0.06
4.06
EXPRESIONES RELACIONALES
Las expresiones relacionales son operaciones que dan como resultado dosposibles valores, falso (F) o verdadero (V), estas permiten realizarcomparaciones de valores de tipo numérico o carácter. El formato generalpara este tipo de operaciones es:
Operador Operación
< Menor que
> Mayor que
== Igual que
<= Menor o igual que
>= Mayor o igual que
!= Diferente de
expresion1 OPERADOR_RELACIONAL expresion2
EXPRESIONES LOGICAS
Las expresiones lógicas son operaciones que dan como resultado dosposibles valores, falso (F) o verdadero (V). Los operadores logicos basicosson NOT (no), AND (y) y OR (o).
NOT (~)
a ~a
F V
V F
AND (^)
a b a AND b
F F F
F V F
V F F
V V V
OR
a b a OR b
F F F
F V V
V F V
V V V
PRIORIDAD DE LOS OPERADORES LOGICOS Y RELACIONALES
Al igual que los operadores aritméticos, los operadores lógicos yrelacionales presentan un orden de prioridad, la siguiente tabla resumeeste orden:
Prioridad Operación
1 <, >, <=, >=, ==, !=
2 NOT
3 AND
4 OR
PRIORIDAD Y ASOCIATIVIDAD
La siguiente tabla resume la prioridad y asociatividad de todos los tipos deoperadores anteriormente vistos
Prioridad Operador Asociatividad
1 () I D, de adentro hacia afuera
2 ^ D I
3 *,/,% I D
4 +,- I D
5 <. >, <=, >=,==,!= I D
6 NOT D I
7 AND I D
8 OR I D
ENTRADA Y SALIDALas instrucciones de entrada y salida permiten interactuar con elprograma.
Instrucciones de entrada(LEA)
Instrucciones de salida(ESCRIBA)
SALIDAPermite mostrar en pantalla los valores almacenados en variables o valores constantesasociados a mensajes.
ESCRIBA(„cadena1‟,…,‟cadenaN‟,var1,var2,…,varN);
Lo que se encuentra entre comillas sencillas (‘’) es constante, lo que no se encuentraentre comillas es variable.
Constantes Variables
Ejemplo: Supóngase que se tienen las variables enteras: a=3, b = 8 y c = 11.
ESCRIBA(„a + b = ‟,a,‟ + ‟,b,‟ = ‟,c)
ENTRADAPermite asignar valores a variables desde un dispositivo de entrada como el teclado.
Ejemplo: Supóngase que se tiene la variable n y que se usa una instruccion lea paraasignarle a esta un nuevo valor, la siguiente figura muestra el funcionamiento de dichainstrucción:
LEA(n)
LEA(var1,var2,…,varN);
Variables
SOBRE EL LEA Y EL ESCRIBACuando se invoca la instrucción LEA, el programa se queda esperando hasta que elusuario digite el valor a ingresar y presione la letra entre para continuar.
Generalmente antes de una instrucción LEA hay una instrucción ESCRIBA .
ESCRIBA(„Digite el nombre: ‟‟,c)
LEA(nom)
ESCRIBA(„Meta la edad y el sexo (F: Femenino, M: Masculino)
LEA(edad, sexo)
ESCRIBA(nom,„ usted tiene ‟,edad,„ años.‟)
FUNCIONES INTERNASLas operaciones que se requieren en los programas exigen en numerosas ocasiones,además de las operaciones aritméticas básicas, un numero determinado de operadoresespeciales que se llaman funciones internas, incorporadas o internas.
Funcion Descripción Tipo de argumento Resultado
exp(x) Exponencial de x Entero o real Real
ln(x) Logaritmo natural de x Entero o real Real
log10(x) Logaritmo en base 10 de x Entero o real Real
redondeo(x) Redondeo de x Entero Entero
trunc(x) Truncamiento de x Real Entero
cuadrado(x) Cuadrado de x Entero o real Real
raiz2(x) Raiz cuadrada de x Entero o real Real
abs(x) Valor absoluto de x Entero o real Igual que el argumento
FUNCIONES INTERNASLas funciones aceptan argumentos reales o enteros y sus resultados dependen de la tareaque realice la función.
Funcion Resultado
raiz2(25) 5
redondeo(6.6) 7
redondeo(3.1) 3
redondeo(-3.2)
-3
trunc(5.6) 5
trunc(3.1) 3
trunc(-3.8) -3
cuadrado(4) 16
abs(9) 9
abs(-12.2) -12.2
MAS CARRETA
BIBLIOGRAFIA
BIBLIOGRAFIA
Titulo: Lógica de Programación.Autor: Efraín M. Oviedo.Editorial: ECOE Ediciones.Fecha de publicación: 11/20/2008ISBN: 9586483088.OLC: http://ingenieria.udea.edu.co/~eoviedo/
Titulo: Fundamentos de Programación.Autor: Luis Joyanes Aguilar.Editorial: ECOE Ediciones.Fecha de publicación: 27/05/2008ISBN: 8448161114OLC: http://www.mhe.es/joyanes
FIN DE LA CLASE