Você está na página 1de 39

ALGORITMOS Y

ESTRUCTURAS DE
DATOS
BUENAS TARDES
Apague y/o guarde cualquier
dispositivo distractor que impida
su atencin en esta exposicin,
por ejemplo: Celulares, tablets,
PC, calculadoras, cuadernos de
otras asignaturas, etc.
Tome apuntes
Gracias
GENERALIDADES
DATO
Es la representacin simblica de un hecho, atributo o caracterstica de
una entidad.
Ejm: nota de un alumno, nombre de un docente, color de un carro, etc.

INFORMACION
Es un dato til.
Ejm. El promedio final de un alumno para un curso, nmero de
aprobados en un examen, nombre de los primeros alumnos
de cada especialidad por cada ciclo.

La informacin se obtiene mediante el procesamiento de
los datos
Procesador
Entrada Salida
Algoritmo
DATOS INFORMACION
Es realizado por el procesador el cual ejecuta un conjunto de
pasos previamente definidos (algoritmo)
El procesamiento de datos puede ser:
Manual
Mecanizada (uso de calculadora, sumadora, etc)
Automatizado (uso del computador)
PROCESAMIENTO DE DATOS
Operaciones que transforman datos en informacin
PROCESAMIENTO DE DATOS
AUTOMATIZADO
Entrada
DATOS
Salida
INFORMACION
Programa
Algoritmo
Procesador
Elementos del Computador
+
HARDWARE
(elem.fsicos)
SOFTWARE (programa)
HARDWARE (componentes fsicos)
Unidades
Perifricas
De Entrada

Ejem.
Teclado
Mouse
Escaner, etc

Unidades
Perifricas
De Salida

Ejm.
Impresora
Monitor,
Parlantes, etc.



Unidades de
Almacenamiento.
Ejem. Disquete,
Discos compactos,
Discos duros, etc.


Unidad de
Control
Unidad
Aritmtica
Y Lgica
Memoria Principal
RAM y ROM
UNIDAD CENTRAL DE PROCESO
SOFTWARE (Conjunto de Programas)
TIPOS DE SOFTWARE:

- Sistemas operativos
Ejm. DOS, Windows, Linux, etc.

- Aplicaciones de uso general
Ejm. Word, Excel, Power Point, etc.

- Aplicaciones de uso especfico
Ejm. sistema de notas,
sistema de facturacin,
etc)
Programa 1 Programa 2
Programa 3
MEMORIA RAM
FASES PARA LA CONSTRUCCION DE UN PROGRAMA
SOLUCION DEL
PROBLEMA
IMPLEMENTACION
EN LA
COMPUTADORA
Datos
Algoritmo
Programa
(Software)
Anlisis del
problema
Diseo del
algoritmo
Verificacin
del algoritmo
Error de
lgica
OK
Codificacin
del algoritmo
(programa)
Ejecucin del
programa
Verificacin del
programa
Programa
Error
sintaxis
OK
Algoritmo

ALGORITMO
Secuencia ordenada de pasos (acciones) para resolver un
problema.
Se expresa en lenguaje natural

PROGRAMA
Es el algoritmo escrito en un lenguaje de programacin para ser
ejecutado por el computador.

Tipos de lenguajes de Programacin:
Lenguaje de alto nivel: lenguaje similar al lenguaje natural.
Son fciles de escribir. Es el mas usado por los programadores.
Ejm. C++, Pascal, Basic, Prolog, Java, etc
Lenguaje de bajo nivel: lenguaje mnemotcnico.
Ejm. ADD M, N, P
Lenguaje de mquina: lenguaje binario (0 y 1) entendible
directamente por el computador.
Ejm. 0110 1001 1010 1011
TIPOS DE PROGRAMAS (segn el Lenguaje de Programacin)

PROGRAMA FUENTE (PF)
Programa escrito en lenguaje de alto o bajo nivel.
PROGRAMA OBJETO (PO):
Programa escrito en lenguaje de mquina. Es el que ejecuta el computador.

TRADUCTORES DE LENGUAJE
Programas que traducen programas fuente a lenguaje de mquina.
Programa
Fuente
Compilador
Programa
Objeto
Programa
Fuente
Intrprete
Ejecucin del
Programa
Instruccin
en leng.mq.
Ejecucin de la
Instruccin
Tipos de Traductores: Compiladores e Intrpretes
instruccin
D A T O S
Tipos de Datos (reconocidos por el computador):
DATOS
BASICOS COMPUESTOS
Numricos Caracter Lgico Esttico Dinmico
-Arreglos
-Registros
-Archivos
-Listas
-Arboles
-Grafos
-Enteros
-Reales
DATOS SIMPLES O DATOS BASICOS

DATOS NUMERICOS
Enteros y Reales
El rango y precisin de los datos numricos depende del
lenguaje de programacin que se utilice.

DATOS TIPO CARACTER
Conjunto de caracteres que el computador reconoce.
Se encuentran normalizados bajo el cdigo ASCII o EBCDIC
Se tienen:
Caracteres alfabticos: A - Z ; a - z
Caracteres numricos: 0 - 9
Caracteres especiales: *, / , +, >, <, =, etc.

DATOS TIPO LOGICO
Conjunto formado por dos valores lgicos:
verdad, falso
Operaciones con los datos

OPERACIONES

INTERVIENEN

OPERADORES

RESULTADO


ARITMETICAS

Datos
Numricos
Aritmticos
+, - , *, /,
resto, entero

Dato
Numrico

DE
COMPARACION

Datos del
mismo tipo

Relacionales
>, <, >=, <=, =

Dato
Lgico

LOGICAS

Datos
lgicos

Lgicos
No, Y, O

Dato
lgico
IMPORTANTE:

En operaciones aritmticas:
Muchos lenguajes cuentan con operadores adicionales a los
conocidos como los operadores para datos enteros:
entero (a/b): divisin entera de a/b
resto (a/b): resto de la divisin entera de a/b
Ejm. 10+ resto(5/3) Resultado: 12

En operaciones de Comparacin:
En la comparacin de datos tipo carcter se tiene:
0<1<2<..<9<A<B<<Z<a<b<..<z
En datos tipo lgico:
falso < verdad
Expresin de los datos
Un dato puede venir expresado como: constantes, variables,
expresiones, funciones, etc.

CONSTANTE
Es un dato (de cualquier tipo) cuyo valor no cambia durante la
ejecucin del algoritmo o programa.

Tipos de constantes:
Literal: es un valor expresado en forma explcita.
Ejm. 3.1416

Simblica: viene expresado bajo un nombre que guarda
su valor
Ejm. Pi (Previamente se debe definir que Pi = 3.1416)

VARIABLE

Es un objeto (porcin de memoria) que almacena un dato
Para definir una variable es necesario:
- Darle un Nombre
- Indicar el tipo de dato que va almacenar

OJO: El valor de una variable puede cambiar
durante la ejecucin del algoritmo.

Tipos de variables:
Entero: Ejm. nota, edad, examen,
Real: Ejm. promedio, sueldo, talla
Carcter: Ejm. seccin, sexo,
Lgica: Ejm. Fin, encontrado, vale
Operador de asignacin
Se utiliza para almacenar un dato en una variable,
perdindose cualquier otro valor
previamente almacenado en ella.

Se representa con el smbolo
Ejem.
Nota 12.3

Nota Nota +2

12.3
Nota
Memoria RAM
14.3

EXPRESIONES
Es una combinacin de operandos y operadores
Tipos:
Expresiones aritmticas
Operando: constantes, variables y expres. numr.
Operadores: aritmticos
Resultado: numrico
Ejm. (EP + 2*EF + PP)/4

Expresiones lgicas
Operando: constantes, variables y expres. lgicas
Operadores: lgicos y relacionales
Resultado: lgico
Ejm. (PP>6.1 y PF>6.1)
FUNCIONES
Son programas predefinidas que:
- Tienen un nombre con el cual se les invoca y
- Aceptan datos y devuelven un resultado.

Generalmente los lenguajes de programacin poseen
funciones matemticas, de cadenas y otros.
Ejm. En C++
Abs(X): devuelve el valor absoluto del nmero entero X
Sqrt(X): devuelve la raiz cuadrada del nmero X (X>=0)

Identificadores
Son los nombres que se le dan a las constantes simblicas,
variables, funciones y otros.
Constan de una cadena de caracteres que debe empezar con
una letra.
Deben ser significativos sugiriendo lo que representa.

ACUMULADOR
Es una variable cuyo valor aumenta o disminuye en una
cantidad variable cada vez que se produce un determinado
suceso o accin.
Debe ser inicializado
Ejm. Se desea acumular las notas de prcticas de un alumno
Sum 0 (el valor de sum es 0)
sum sum + 13 (el valor de sum es 13)
sum sum + 10 (el valor de sum es 23)

CONTADOR
Es un acumulador cuyo valor aumenta o disminuye en una
cantidad constante cada vez que se produce un determinado
suceso o accin.
Se usa para contar sucesos. Ejm. Contar nmero de aprobados
VARIABLES IMPORTANTES
DISEO
DE ALGORITMOS

ALGORITMO
Secuencia ordenada de pasos o acciones o instrucciones
que se debe ejecutar para realizar una tarea o para resolver
un problema.
Es expresado en lenguaje natural utilizando herramientas
estandarizadas.

Caractersticas de un algoritmo
Preciso: El algoritmo debe indicar el orden en que se debe
realizar cada paso.
Finito: El algoritmo tiene un nmero finito de pasos y debe
terminar en algn momento.
Bien definido: Si el algoritmo se prueba dos veces con los
mismos datos de entrada, se debe obtener el mismo
resultado.
TECNICA DE PROGRAMACION ESTRUCTURADA
Conjunto de tcnicas para desarrollar algoritmos fciles de
escribir, leer, verificar y modificar.

Diseo Modular ( Top-down )
En problemas grandes y complejos: dividir el problema
en subproblemas y disear un subprograma para
resolver cada uno de ellos

Descomposicin del programa en recursos abstractos
Descompone una accin compleja en acciones simples
capaces de ser ejecutadas por un computador
( instrucciones )

Estructuras de control bsicas
Un programa se escribe utilizando 3 estructuras de
control:
EC Secuenciales, EC Selectivas, EC Repetitivas
INSTRUCCIONES
Son las acciones que van a ser ejecutadas por el computador
para resolver el problema.

TIPOS :
Instrucciones de Inicio/Fin :
Indica el Inicio y el Fin del algoritmo

Instrucciones de lectura:
Solicita al usuario el ingreso de datos desde un dispositivo de
entrada por ejemplo el teclado.

Instrucciones de escritura:
Muestra los resultados a travs de un dispositivo de salida por
ejemplo la pantalla, impresora, etc.
Instrucciones de asignacin:
Almacena un valor en una variable, perdindose cualquier
otro valor almacenado en ella.

Instrucciones selectivas:
Permiten ejecutar unas u otras tareas de acuerdo al resultado
de una expresin condicional

Instrucciones repetitivas:
Permiten la repeticin de un grupo de instrucciones,
generando un bucle (lazo o loop).


EJEMPLO DE ALGORITMO

Se cuenta con las notas del Bimestral (Bm), Seguimiento
(Sg), Autoevaluacion (Ae) de un alumno.
Se sabe que el promedio final (PF) se calcula con la frmula:
PF=(Bm + Sg + Ae)/ 3
Si el alumno cumple con la siguiente condicin: P3>3.0 gana
la asignatura
Escriba un algoritmo reciba las notas del alumno y luego
muestre un mensaje indicando si el alumno gan o perdi la
asignatura
En cualquier caso debe mostrar un mensaje diciendo si
perdi o gan y mostrar el promedio final (PF)

Anlisis
Datos de entrada: Bm, Sg, Ae
Salida: mensaje y PF

Algoritmo
Inicio del algoritmo
Ingresar las notas del alumno: Bm, Sg, Ae
Calcular PF con la siguiente frmula:
PF=(Bm + Sg + Ae)/ 3
Si cumple la condicin PF> 3.0 Mostrar el mensaje
Felicidades Gan la Asignatura y mostrar PF
Si no cumple la condicin entonces mostrar el mensaje Lo
siento, perdi la asignatura y mostrar PF
Fin del algoritmo.
HERRAMIENTAS PARA LA
REPRESENTACION DE ALGORITMOS
Para representar los algoritmos en forma estandarizada,
existen herramientas como:

Diagrama de flujo
Tcnica tipo grfico

Pseudocdigo
Lenguaje de especificacin (palabras reservadas) en
lenguaje natural

Diagrama de Nassi-Scheneiderman
Es una combinacin de las dos anteriores


DIAGRAMA DE FLUJO PSEUDOCODIGO

Smbolos Significado Palabras reservadas
Inicio / Fin
Lectura / Escritura
Proceso
Selectiva
Proceso
repetitivo
Inicio / Fin
Direccin o flujo
Leer / Escribir
Si - entonces
+ - * /
Mientras/
desde/Repetir
El algoritmo en Diagrama de Flujo
Inicio
Leer EP,EF, PP
PF=(EP+PP+2*EF)/4
PP>6.1 y PF>6.1
Escribir Puede
rendir ES
Escribir No puede
rendir ES
Fin
Escribir La nota final
es: , PF
Escritura de un algoritmo en pseudocdigo
CABECERA
Contiene el nombre del algoritmo (opcional)
Constantes
Nombre-constante = valor
Variables
Tipo-dato: nombre de variables
BLOQUE DE DECLARACIONES
Se utilizan para asignar espacios en la RAM
Se declaran: Constantes (opcional),
Variables (obligatorio),
Otros definidos por el usuario (opc.)
BLOQUE DE INSTRUCCIONES
Inicio/Fin
Lectura
Leer ( lista de variables)
Escritura
Escribir ( resultado)
Asignacin
nombre de la variable valor expresin

Comentarios (no se ejecutan)
Sirven para escribir informacin interna para
facilitar el mantenimiento del algoritmo.
Formato: // comentario
aAlgoritmo nombre del algoritmo

Inicio


instrucciones




Fin
El algoritmo en Pseudocdigo
Algoritmo PROMEDIO

Variables
entero: EP, EF
real: PP, PF
Inicio
Leer (EP, EF, PP)
PF (EP+PP+2*EF)/4 // Calcula PF
Si (PP>6.1 y PF>6.1)
Escribir ( Puede rendir el ES)
sino
Escribir (No puede rendir el ES)
Escribir (La nota final es: , PF)
Fin-si
Fin
Cabecera del algoritmo
Bloque de declaraciones
Bloque de
Instrucciones
ESTRUCTURAS DE CONTROL
Un algoritmo debe ser escrito utilizando tres estructuras
de control:

E.C. Secuencial

Simple
E.C. Selectiva Doble
Mltiple

Desde
E.C. Mltiple Mientras
Repetir - hasta
Estructura SECUENCIAL
Las acciones del algoritmo se ejecutan en el orden que se
encuentran escritos.

accin 1
accin 2
accin 3
-------
-------
accin n
Estructuras Selectivas
La ejecucin de las acciones dependen del resultado de una condicin.
Se tienen tres tipos de estructuras selectivas:

1. SELECTIVA SIMPLE
Las acciones se ejecutan si la condicin es verdadera .
condicin
acciones
V F
Pseudocdigo

Si (condicin)
accin1
accin 2

accin n
fin-si
2. SELECTIVA DOBLE
Si la condicin es Verdadera se ejecutan unas acciones.
Si la condicin es Falsa se ejecutan otras acciones
condicin
Acciones-F Acciones-V
V
F
Pseudocdigo

Si (condicin)
acciones 1
Sino
acciones 2
Fin-si
Gracias por la atencin prestada