Upload
imagincor
View
9.463
Download
5
Embed Size (px)
Citation preview
Curso de Algoritmos y Estructura de Datosww
w.ev
ira.
net
Pág. 01
Area de descargas - www.cursos.evira.net
ALGORITMOS YESTRUCTURA DE DATOS
Profesora: Ing. Grimanesa Ramos Ballón
ver. 1.0.0
CONTENIDO DEL CURSO
I Introducción y Conceptos BásicosII Estructuras de Control III ArreglosIV CadenasV SubprogramasVI RecursividadVII RegistrosVIII ArchivosIX Programación Dinámica
Curso de Algoritmos y Estructura de Datosww
w.ev
ira.
net
Pág. 02
Area de descargas - www.cursos.evira.net
Dato:- Un dato es la representación de un hecho real.- Son símbolos concretos que pueden ser reconocidos por un computa-
dor.- Un dato para una computadora es una secuencia de bits (0 ó 1).- Un dato de entrada se transforma por el programa después de eta-
pas intermedias en datos de salida.
Ejemplos de datos:- Nota de un alumno - Edad de una persona- Nombre de una persona - Temperatura del día, etc.
SESION01Introducción y Conceptos Generales
Curso de Algoritmos y Estructura de Datosww
w.ev
ira.
net
Pág. 03
Area de descargas - www.cursos.evira.net
Tipos de Datos
1) Datos Estáticos 1.1 Datos Simples 1.1.1 Numéricos 1.1.1.1 Numéricos enteros (integer) 1.1.1.2 Numéricos reales (real)
1.1.2 Lógicos (booleanos) 1.1.3 Carácter (char)
1.2 Datos Compuestos: Estructurados 1.2.1 Arreglos: vectores/matrices 1.2.2 Cadenas 1.2.3 Registros 1.2.4 Archivos
Curso de Algoritmos y Estructura de Datosww
w.ev
ira.
net
Pág. 04
Area de descargas - www.cursos.evira.net
2) Datos Dinámicos 2.1 Punteros (pointiers) 2.2 Pilas/colas 2.3 Listas: simples/dobles 2.4 Arboles 2.5 Grafos
1.1.1.1 Dato Numérico Entero (integer) Subconjuntofinitodenúmerosenteros,no
tienen componentes fraccionarios ni deci-males, son positivos o negativos.
Ejemplo: i) -325 ii) 580 Los enteros máximo y mínimo de una com-
putadora, suele estar dentro del rango:
-32768 32767Mínimo Máximo
Losnúmerosfueradeesterango no se puede represen-tar como enteros.
Curso de Algoritmos y Estructura de Datosww
w.ev
ira.
net
Pág. 05
Area de descargas - www.cursos.evira.net
1.1.1.2 Dato Numérico Real Sonnúmerosquecontienenunapartefrac-
cionaria e incluyen un punto decimal.
Ejemplos: i) 38.4 ii) -106.3 iii) 0.005
Se utiliza la llamada notación exponencial ocientíficapararepresentarlosnúmerosreales:
nE ± ddEn Pascalen C++
Donde:
n:Partedecimaldelnúmero(+ó-)E : Exponente, potencia de 10dd: Exponente entero (+, - ó 0)
Curso de Algoritmos y Estructura de Datosww
w.ev
ira.
net
Pág. 06
Area de descargas - www.cursos.evira.net
Ejemplo:1.6125 * 10-10 1.6125 E-10 5 * 1012 5E12
0.0005 5 * 10-4 5 E-4
1.1.2 Datos Lógicos Un dato lógico o booleano es aquel que puede tomar
únicamentedosvalores: - Verdadero (true) - Falso (false) Se utiliza para representar alternativas: i) Par/impar ii) Encontrado/no encontrado iii) Ocupado/no-ocupado
1.1.3 Datos Tipo Caracter Un dato tipo caracter (char) contiene un solo carac-
ter. La mayoría de computadoras reconoce:
Curso de Algoritmos y Estructura de Datosww
w.ev
ira.
net
Pág. 07
Area de descargas - www.cursos.evira.net
Caracteres Alfabéticos: A, B, C, ... Z
Caracteres Numéricos: 0, 1, 2, ..., 9
Caracteres Especiales: +, -, /, *, ^, <, <=, >, .. etc. Elnúmerodecaracteresespecialesvaríadeacuerdo
a la versión del Lenguaje de Programación.
Ejemplos: i)‘A’,‘C’,‘Z’ ii)‘1’,‘O’ iii)‘*’,‘/’,‘+’
Curso de Algoritmos y Estructura de Datosww
w.ev
ira.
net
Pág. 08
Area de descargas - www.cursos.evira.net
ALGORITMOS
Concepto de AlgoritmosEs una secuencia ordenada y cronológica de pasos que llevan a la solu-ción de un problema ó a la ejecución de una tarea.
Características1. Es finito y tiene un orden.(númerofinitodepasosenuntiempo
limitado).
2. Es definido. Si se sigue el mismo algoritmo dos veces, se debe ob-tener el mismo resultado.
3. Es conciso. Tiene una entrada - salida.
Curso de Algoritmos y Estructura de Datosww
w.ev
ira.
net
Pág. 09
Area de descargas - www.cursos.evira.net
Por lo general los algoritmos presentan la siguiente estructura
Observación:No existe una regla práctica para crear algoritmos sin embargo las si-guientes preguntas nos ayudan en su formulación.
Preguntas que se necesitan formular antes de construir unalgoritmo
¿cuáles son los datos de entrada?¿qué tipo de información nos piden? (resultado)¿en base a los datos de entrada, cuales son los procesos que nos gene-ran las salidas requeridas?
Datos de entrada Datos de salidaPROCESOS
Curso de Algoritmos y Estructura de Datosww
w.ev
ira.
net
Pág. 10
Area de descargas - www.cursos.evira.net
Ejemplo de Algoritmos:i) Los planos de construcciónii) Recetas de cocinaiii) Instrucciones para armar un juguete
iv) SedeseaLeer3númerosyluegocalcularelpromedio
Algoritmo Promedio1. Leer (a,b,c)2. Calcular PROM! (a+b+c)/33. Escribir (‘el promedio es:‘ + PROM)4. fin
Datos de entrada
a, b, c(números)
prom(Promedio)
prom ¡ (a+b+c) /3
Salida
PROCESO
Curso de Algoritmos y Estructura de Datosww
w.ev
ira.
net
Pág. 11
Area de descargas - www.cursos.evira.net
v) Algoritmo Película 1. Ir al cine 2. Comprar una entrada 3. Ver la Película 4. Regresar a casa
vi) Dados el radio, la altura, encontrar el volumen de un cilindro
Algoritmo Volum_cilindro1. def. Variables radio, altura, volumen: real2. Leer (radio, altura)3. volumen ¡3.1416 * (radio*radio) * altura4. escribir (volumen)5. fin
Datos de entrada
r,h,π volumen
volum ¡π*(radioh2) *h
Salida
PROCESO
Curso de Algoritmos y Estructura de Datosww
w.ev
ira.
net
Pág. 12
Area de descargas - www.cursos.evira.net
Estructura y Diseño de un Algoritmo
Un algoritmo consta básicamente de:1. Encabezado2. Bloque Algorítmico 2.1 Sección de declaración de variables 2.2 Acciones ejecutables
1) Encabezado Todo algoritmo tiene como cabecera la palabra resevada: algoritmo seguidadeunidentificadorquedescribeadecuadamenteelprogra-ma.
Ejemplo: i) Algoritmo promedio
2) Bloque algorítmico 2.1 Sección de declaración de variables Sedefinelasvariablesoestructurasdedatosquesenecesitan
Curso de Algoritmos y Estructura de Datosww
w.ev
ira.
net
Pág. 13
Area de descargas - www.cursos.evira.net
En Pseudocódigo: Definirvariables nomb_variable_1 : tipo_1 nomb_variable_2 : tipo_2 • • • nomb_variable_n : tipo_n
2.2 Acciones ejecutables Leer, Calcular, Imprimir
i) Lectura de datos Se introducen los datos disponibles mediante una operación
de lectura en el orden dado.
Ejemplo: Leer (nombre, hora_tra, cuota_ho)
Curso de Algoritmos y Estructura de Datosww
w.ev
ira.
net
Pág. 14
Area de descargas - www.cursos.evira.net
ii) Calcular o procesar Se procesa la entrada mediante cálculos para producir la
salida.
calcular: sueldo¡ hora_tra * cuota_ho
iii) Salida datos Dar salida a la información obtenida escribir (nombre, sueldo)
Conceptos Básicos Utilizados en Algoritmos1. Operador Asignación: ¡ indica una operación de reemplazo o asignación.
Formato:
nombre_variable ¡ expresiónPueden ser:ConstanteVariableExpresión algebraica:= pascal
= basic, fortran
Curso de Algoritmos y Estructura de Datosww
w.ev
ira.
net
Pág. 15
Area de descargas - www.cursos.evira.net
Ejemplo: 1. b ¡ 15 2. n ¡ n+1 3. prom ¡ (12*8)/(5*3) 4. x ¡ “Av. Tupac Amaru 210”
2. Identificador Conjunto de caracteres que debe cumplir con lo siguiente:
- Debe empezar con una letra (a-z), apartir del segundo carac-ter puede usar letras, dígitos (0-9) y no debe tener espacios en blanco (b).
- Solo se puede usar letras, dígitos y el subrayado (-).- Debe ser diferente de las palabras reservadas empleadas en
algoritmos.- Debensersignificativos,esdecirtenerrelaciónconelobjeto
que representan.
/
Ejercicio: i) sum a ii) orden 2 iii) leer
iv) sum1 v) sum_2 vi) pro2
Curso de Algoritmos y Estructura de Datosww
w.ev
ira.
net
Pág. 16
Area de descargas - www.cursos.evira.net
2.1 ConstanteEsunidentificadorválido,cuyovalornocambiadurantelaeje-cución del algoritmo.
Formato:
Ejemplo: 1.Definiciondevariables A = 10 (constante entera) LETRA=‘m’(constantecaracter) PI = 3.1416 (constate real)
2.2 VariableEsunidentificadorválidocuyovalorpuedecambiardurantelaejecución del algoritmo.
Formato:
ConstNomb_cost = valor
VarNomb_var : tipo_dato
Curso de Algoritmos y Estructura de Datosww
w.ev
ira.
net
Pág. 17
Area de descargas - www.cursos.evira.net
Ejemplo: 1. Definicióndevariables m : entero x, y, z : real car : caracter L : lógico
2.3 AcumuladorEs una variable que incrementa valores variables a una de-terminada variable.
Formato:<variable> ¡ <variable> + <valor variable>
valor actual(o valor presente)
valor antiguo(o inmediato anterior)
Ejemplo: suma ¡ 0 (inicializando suma) num ¡ 5 suma ¡ suma + num (suma tiene el valor 5)
Curso de Algoritmos y Estructura de Datosww
w.ev
ira.
net
Pág. 18
Area de descargas - www.cursos.evira.net
num ¡ 6 suma ¡ suma + num (suma tiene el valor 11) num ¡ 3 suma ¡ suma + num (suma tiene el valor 14)
2.3.1 ContadorEs un caso particular de un acumulador, incrementa valores constantes a una determinada variable.
Formato:
<variable> ¡ <variable> + k
valor actual valor antiguo
Ejemplo: i ¡ i + 1 n ¡ n + 2
Curso de Algoritmos y Estructura de Datosww
w.ev
ira.
net
Pág. 19
Area de descargas - www.cursos.evira.net
3. Operadores 3.1 Aritméticos + : suma - : resta / : división real * : multiplicación
Ejemplo:
2*6 = 12; 12/3 = 4.0;
Operadores Aritméticos para datos enteros: DIV : División entera MOD : Resto de la división entera
Ejemplo:
5 DIV 2 = 2 5 MOD 2 = 1
Curso de Algoritmos y Estructura de Datosww
w.ev
ira.
net
Pág. 20
Area de descargas - www.cursos.evira.net
3.2 Operadores de Relación o de Comparación = igual > mayor que = diferente ≤ menor o igual que < menor que ≥ mayor o igual que
3.3 Operadores Lógicos ¬ negación ^‘y’logico(AND) v‘o’logico(OR)
Ejemplo:
Leer (nota)
si ( (nota > 10) and (nota ≤ 20) ) entonces
sumaA ¡ sumaA + nota fin_si
/
14
exp. log. simple exp. log. simple
exp. log. compleja
v vv
Curso de Algoritmos y Estructura de Datosww
w.ev
ira.
net
Pág. 21
Area de descargas - www.cursos.evira.net
3.4 Jerarquía de los Operadores Prioridad Operador 1 ¬ 2 () 3 div, /, *, mod, ^ 4 +, -, v 5 =, =, <, >, ≤,≥
Operadores con igual prioridad se realiza de izquierda a dere-cha.
Ejemplo: 2 g 2/(x+1) x+1
Se emplean paréntesis para agrupar operadores y alterar la prioridad.
/
Ejemplo: 1+2*(3-1)*2 (1+2*2)*2 5*2 = 10
ó si tenemos: 1 < x ≤3 es equivalente (1<x) ^ (x ≤3)
Curso de Algoritmos y Estructura de Datosww
w.ev
ira.
net
Pág. 22
Area de descargas - www.cursos.evira.net
Operaciones sobre las expresiones
1. Operaciones entre Paréntesis.- Primero se evalua lo que está entre paréntesis.Encasodequehayanparéntesisanidados,evalúa1ro lo más interno y luego prosigue con los externos.
Si se tiene 2 operadores del mismo nivel o jerarquía se evalua de izquierdaaderecha,finalmenteseevaluanlassumasyrestas.
Ejemplo: T ¡ 6, Y ¡ 3, R ¡ 4, S ¡ 2
Z ¡ (T * (y-2) + r) / s Z ¡ (6 * (3 - 2) + 4) / 2 Z ¡ (6 * 1 + 4)/2 Z ¡ 10/2 Z ¡ 5
2. Si se tiene dos operadores del mismo nivel o jerarquía se evalua de izquierda a derecha. (caso multiplicación y división).
Curso de Algoritmos y Estructura de Datosww
w.ev
ira.
net
Pág. 23
Area de descargas - www.cursos.evira.net
M ¡ -3 * 7 + (2 h3) / 4 - 6 M ¡ -21 + 8/4 - 6 M ¡ -21 + 2 - 6 M ¡ -25
3. Finalmente se evaluan las sumas y restas. A ¡ 5*5 - 3*2 + 6/2 A ¡ 25 - 6 + 3 A ¡ 25 - 3 A ¡ 22
Algunas Funciones Utiles
Nombre de la función ABS (u) --> valor absolutoSQRT (u) --> raiz cuadradaTRUNC (u) --> truncasionROUND (u) --> redondeoLOG (u) --> logaritmo natural
Argumento y tipo u : exp. real o enterau : exp. real o enterau : exp. realu : exp. realu : exp. real
Curso de Algoritmos y Estructura de Datosww
w.ev
ira.
net
Area de descargas - www.cursos.evira.net
FIN DE PRESENTACION