UNIVERSIDAD NACIONAL DE INGENIERIA
Facultad de Ingeniería Industrial y de Sistemas
Area de Sistemas Computación e Informática
ALGORITMOS Y
ESTRUCTURAS DE DATOS
(ST–221)
Profesora: Ing. Irma Inga Serrano
2008-I
GENERALIDADES
DATO
Es la representación simbólica de un hecho, atributo o característica 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, número de
aprobados en un examen, nombre de los primeros alumnos
de cada especialidad por cada ciclo.
La información se obtiene mediante el procesamiento de
los datos
PROCESAMIENTO DE DATOS
Operaciones que transforman datos en información
DATOS
Procesador
INFORMACION
Salida
Entrada
Algoritmo
 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
AUTOMATIZADO
Procesador
DATOS
INFORMACION
Salida
Entrada
Programa
Algoritmo
Elementos del Computador
SOFTWARE (programa)
HARDWARE
(elem.físicos)
+
HARDWARE (componentes físicos)
Unidades
Periféricas
De Entrada
Ejem.
Teclado
Mouse
Escaner, etc
UNIDAD CENTRAL DE PROCESO
Unidad de
Control
Unidad
Aritmética
Y Lógica
Memoria Principal
RAM y ROM
Unidades de
Almacenamiento.
Ejem. Disquete,
Discos compactos,
Discos duros, etc.
Unidades
Periféricas
De Salida
Ejm.
Impresora
Monitor,
Parlantes, etc.
SOFTWARE (Conjunto de Programas)
TIPOS DE SOFTWARE:
Programa 1
Programa 2
- Sistemas operativos
Ejm. DOS, Windows, Linux, etc.
- Aplicaciones de uso general
Ejm. Word, Excel, Power Point, etc.
Programa 3
- Aplicaciones de uso específico
Ejm. sistema de notas,
sistema de facturación,
etc)
MEMORIA RAM
FASES PARA LA CONSTRUCCION DE UN PROGRAMA
Datos
SOLUCION DEL
PROBLEMA
Algoritmo
IMPLEMENTACION
EN LA
COMPUTADORA
Análisis del
problema
Codificación
del algoritmo
(programa)
Diseño del
algoritmo
Ejecución del
Error
programa
sintaxis
Verificación
Error de del algoritmo
lógica
OK
Algoritmo
Verificación del
programa
OK
Programa
Programa
(Software)
ALGORITMO
Secuencia ordenada de pasos (acciones) para resolver un
problema.
Se expresa en lenguaje natural
PROGRAMA
Es el algoritmo escrito en un lenguaje de programación para ser
ejecutado por el computador.
Tipos de lenguajes de Programación:
 Lenguaje de alto nivel: lenguaje similar al lenguaje natural.
Son fáciles de escribir. Es el mas usado por los programadores.
Ejm. C++, Pascal, Basic, Prolog, Java, etc
 Lenguaje de bajo nivel: lenguaje mnemotécnico.
Ejm. ADD M, N, P
 Lenguaje de máquina: lenguaje binario (0 y 1) entendible
directamente por el computador.
Ejm. 0110 1001 1010 1011
TIPOS DE PROGRAMAS (según el Lenguaje de Programación)
PROGRAMA FUENTE (PF)
Programa escrito en lenguaje de alto o bajo nivel.
 PROGRAMA OBJETO (PO):
Programa escrito en lenguaje de máquina. Es el que ejecuta el computador.

TRADUCTORES DE LENGUAJE
Programas que traducen programas fuente a lenguaje de máquina.
Tipos de Traductores: Compiladores e Intérpretes
Programa
Fuente
Programa
Fuente
Compilador
Programa
Objeto
Intérprete
Instrucción
en leng.máq.
instrucción
Ejecución del
Programa
Ejecución de la
Instrucción
DATOS
Tipos de Datos (reconocidos por el computador):
DATOS
BASICOS
Numéricos
-Enteros
-Reales
Caracter
COMPUESTOS
Lógico
Estático
Dinámico
-Arreglos
-Registros
-Archivos
-Listas
-Arboles
-Grafos
DATOS SIMPLES O DATOS BASICOS

DATOS NUMERICOS
Enteros y Reales
El rango y precisión de los datos numéricos depende del
lenguaje de programación que se utilice.
DATOS TIPO CARACTER
Conjunto de caracteres que el computador reconoce.
Se encuentran normalizados bajo el código ASCII o EBCDIC
Se tienen:
Caracteres alfabéticos: A - Z ; a - z
Caracteres numéricos: 0 - 9
Caracteres especiales: *, / , +, >, <, =, etc.

DATOS TIPO LOGICO
Conjunto formado por dos valores lógicos:
verdad, falso
Operaciones con los datos
OPERACIONES
INTERVIENEN OPERADORES
RESULTADO
Aritméticos
ARITMETICAS
Datos
Numéricos
resto, entero
Dato
Numérico
DE
COMPARACION
Datos del
mismo tipo
Relacionales
>, <, >=, <=, =
Dato
Lógico
LOGICAS
Datos
lógicos
Lógicos
No, Y, O
Dato
lógico
+, - , *, /,
IMPORTANTE:
En operaciones aritméticas:
Muchos lenguajes cuentan con operadores adicionales a los
conocidos como los operadores para datos enteros:
entero (a/b):
división entera de a/b
resto (a/b):
resto de la división entera de a/b
Ejm. 10+ resto(5/3) Resultado: 12
En operaciones de Comparación:
En la comparación de datos tipo carácter se tiene:
‘0’<‘1’<‘2’<..<’9’<‘A’<‘B’<…<‘Z’<‘a’<‘b’<..<‘z’
En datos tipo lógico:
falso < verdad
Expresión 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
ejecución del algoritmo o programa.
Tipos de constantes:
 Literal: es un valor expresado en forma explícita.
Ejm. 3.1416
 Simbólica: viene expresado bajo un nombre que guarda
su valor
Ejm. Pi (Previamente se debe definir que Pi = 3.1416)

VARIABLE
 Es un objeto (porción 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 ejecución del algoritmo.
Tipos de variables:
Entero:
Ejm. nota, edad, examen,
Real:
Ejm. promedio, sueldo, talla
Carácter:
Ejm. sección, sexo,
Lógica:
Ejm. Fin, encontrado, vale
Operador de asignación
Se utiliza para almacenar un dato en una variable,
perdiéndose cualquier otro valor
previamente almacenado en ella.

Se representa con el símbolo 
Ejem.
Nota  12.3
Nota  Nota +2
Memoria RAM
Nota
12.3
14.3

EXPRESIONES
Es una combinación de operandos y operadores
Tipos:
 Expresiones aritméticas
Operando:
constantes, variables y expres. numér.
Operadores:
aritméticos
Resultado:
numérico
Ejm. (EP + 2*EF + PP)/4
 Expresiones lógicas
Operando:
constantes, variables y expres. lógicas
Operadores:
lógicos y relacionales
Resultado:
lógico
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 programación poseen
funciones matemáticas, de cadenas y otros.
Ejm. En C++
Abs(X):
devuelve el valor absoluto del número entero X
Sqrt(X):
devuelve la raiz cuadrada del número X (X>=0)



Identificadores
Son los nombres que se le dan a las constantes simbólicas,
variables, funciones y otros.
Constan de una cadena de caracteres que debe empezar con
una letra.
Deben ser significativos sugiriendo lo que representa.
VARIABLES IMPORTANTES
ACUMULADOR
 Es una variable cuyo valor aumenta o disminuye en una
cantidad variable cada vez que se produce un determinado
suceso o acción.
 Debe ser inicializado
Ejm. Se desea acumular las notas de prácticas 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 acción.
 Se usa para contar sucesos. Ejm. Contar número de aprobados
DISEÑO
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.
Características de un algoritmo
 Preciso: El algoritmo debe indicar el orden en que se debe
realizar cada paso.
 Finito: El algoritmo tiene un número finito de pasos y debe
terminar en algún 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 técnicas para desarrollar algoritmos fáciles de
escribir, leer, verificar y modificar.
 Diseño Modular ( Top-down )
En problemas grandes y complejos: dividir el problema
en subproblemas y diseñar un subprograma para
resolver cada uno de ellos
 Descomposición del programa en recursos abstractos
Descompone una acción compleja en acciones simples
capaces de ser ejecutadas por un computador
( instrucciones )
 Estructuras de control básicas
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 través de un dispositivo de salida por
ejemplo la pantalla, impresora, etc.

Instrucciones de asignación:
Almacena un valor en una variable, perdiéndose cualquier
otro valor almacenado en ella.

Instrucciones selectivas:
Permiten ejecutar unas u otras tareas de acuerdo al resultado
de una expresión condicional

Instrucciones repetitivas:
Permiten la repetición de un grupo de instrucciones,
generando un bucle (lazo o loop).
EJEMPLO DE ALGORITMO
Se cuenta con las notas del EP, EF y PP de un alumno.
Se sabe que el promedio final (PF) se calcula con la fórmula:
PF=(EP+ PP+2EF)/4
Si el alumno cumple con la siguiente condición: PP>6.1 y
PF> 6.1 tiene opción a rendir un examen sustitutorio (ES)
Escriba un algoritmo reciba las notas del alumno y luego
muestre un mensaje indicando si el alumno puede rendir o no
puede rendir el ES.
En el caso que ya no pueda rendir el ES, debe mostrar
también el PF
Análisis
Datos de entrada:
Salida:
EP, EF, PP
mensaje y PF (si no puede rendir ES)
Algoritmo
Inicio del algoritmo
Ingresar las notas del alumno: EP, EF y PP
Calcular PF con la siguiente fórmula:
PF = (EP + 2EF + PP)/4
Si cumple la condición PP> 6.1 y PF>6.1entonces mostrar
el mensaje “Puede rendir el ES”
Si no cumple la condición entonces mostrar el mensaje “No
puede rendir ES” 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
Técnica tipo gráfico
 Pseudocódigo
Lenguaje de especificación (palabras reservadas) en
lenguaje natural
 Diagrama de Nassi-Scheneiderman
Es una combinación de las dos anteriores
DIAGRAMA DE FLUJO
Símbolos
Significado
Inicio / Fin
Lectura / Escritura
Proceso
Selectiva
Proceso
repetitivo
Dirección o flujo
PSEUDOCODIGO
Palabras reservadas
Inicio / Fin
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 “No puede
rendir ES”
Escribir “Puede
rendir ES”
Escribir “La nota final
es: “ , PF
Fin
Escritura de un algoritmo en pseudocódigo
aAlgoritmo nombre del algoritmo
Constantes
Nombre-constante = valor
Variables
Tipo-dato: nombre de variables
Inicio
instrucciones
CABECERA
Contiene el nombre del algoritmo (opcional)
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)
• Asignación
nombre de la variable  valor ó expresión
Fin
•Comentarios (no se ejecutan)
Sirven para escribir información interna para
facilitar el mantenimiento del algoritmo.
Formato: // comentario
El algoritmo en Pseudocódigo
Algoritmo PROMEDIO
Cabecera del algoritmo
Variables
entero: EP, EF
Bloque de declaraciones
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”)
Bloque de
sino
Instrucciones
Escribir (“No puede rendir el ES”)
Escribir (“La nota final es: “, PF)
Fin-si
Fin
ESTRUCTURAS DE CONTROL
Un algoritmo debe ser escrito utilizando tres estructuras
de control:



E.C. Secuencial
E.C. Selectiva
Simple
Doble
Múltiple
E.C. Múltiple
Desde
Mientras
Repetir - hasta
Estructura SECUENCIAL
Las acciones del algoritmo se ejecutan en el orden que se
encuentran escritos.
acción 1
acción 2
acción 3
------------acción n
Estructuras Selectivas
La ejecución de las acciones dependen del resultado de una condición.
Se tienen tres tipos de estructuras selectivas:
1. SELECTIVA SIMPLE
Las acciones se ejecutan si la condición es verdadera .
Pseudocódigo
Si (condición)
acción1
condición
V
acción 2
………
acción n
fin-si
acciones
F
2. SELECTIVA DOBLE
Si la condición es Verdadera se ejecutan unas acciones.
Si la condición es Falsa se ejecutan otras acciones
Pseudocódigo
condición
Si (condición)
F
V
acciones 1
Sino
acciones 2
Fin-si
Acciones-F
Acciones-V
Descargar

INVESTIGACION DE OPERACIONES