34
INTRODUCCION A LOS ALGORITMOS

Introduccion a Los Algoritmos

Embed Size (px)

DESCRIPTION

Introducción al uso de los algoritmos y uso de programa FDF

Citation preview

Page 2: 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

Page 3: Introduccion a Los Algoritmos

FASES PARA EL DESARROLLO DE UN PROGRAMA

Computadora mata a Flanders

???????

Problema

Algoritmo

Programa

C

Page 4: Introduccion a Los Algoritmos

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

???????

Page 6: Introduccion a Los Algoritmos

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

Page 7: Introduccion a Los Algoritmos

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.

Page 9: Introduccion a Los Algoritmos

FASES PARA EL DESARROLLO DE UN PROGRAMA

Paso 6. Mantenimiento

• Mejoras.• Corrección de nuevos fallas.• Soporte.

Page 10: Introduccion a Los Algoritmos

PARTES DE UN PROGRAMA

ENTRADA SALIDA

INSTRUCCIONES

Page 11: Introduccion a Los Algoritmos

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).

Page 12: Introduccion a Los Algoritmos

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)

Page 13: Introduccion a Los Algoritmos

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

Page 14: Introduccion a Los Algoritmos

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

Page 15: Introduccion a Los Algoritmos

TIPOS DE DATOS PRIMITIVOS

Datos

Numéricos

Entero Real

Alfanumérico Lógico

Page 16: Introduccion a Los Algoritmos

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

Page 17: Introduccion a Los Algoritmos

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

Page 18: Introduccion a Los Algoritmos

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)

Page 19: Introduccion a Los Algoritmos

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

Page 20: Introduccion a Los Algoritmos

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

Page 21: Introduccion a Los Algoritmos

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

Page 22: Introduccion a Los Algoritmos

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

Page 23: Introduccion a Los Algoritmos

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

Page 24: Introduccion a Los Algoritmos

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

Page 25: Introduccion a Los Algoritmos

ENTRADA Y SALIDALas instrucciones de entrada y salida permiten interactuar con elprograma.

Instrucciones de entrada(LEA)

Instrucciones de salida(ESCRIBA)

Page 26: Introduccion a Los Algoritmos

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)

Page 27: Introduccion a Los Algoritmos

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

Page 28: Introduccion a Los Algoritmos

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.‟)

Page 29: Introduccion a Los Algoritmos

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

Page 30: Introduccion a Los Algoritmos

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

Page 31: Introduccion a Los Algoritmos

MAS CARRETA

Page 32: Introduccion a Los Algoritmos

BIBLIOGRAFIA

Page 33: Introduccion a Los Algoritmos

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

Page 34: Introduccion a Los Algoritmos

FIN DE LA CLASE