24
Curso de Algoritmos y Estructura de Datos www.evira.net Pág. 01 Area de descargas - www.cursos.evira.net ALGORITMOS Y ESTRUCTURA DE DATOS Profesora: Ing. Grimanesa Ramos Ballón ver. 1.0.0 CONTENIDO DEL CURSO I Introducción y Conceptos Básicos II Estructuras de Control III Arreglos IV Cadenas V Subprogramas VI Recursividad VII Registros VIII Archivos IX Programación Dinámica

Sesion 01 algoritmos y estructura de datos

Embed Size (px)

Citation preview

Page 1: Sesion 01  algoritmos y estructura de datos

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

Page 2: Sesion 01  algoritmos y estructura de datos

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

Page 3: Sesion 01  algoritmos y estructura de datos

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

Page 4: Sesion 01  algoritmos y estructura de datos

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.

Page 5: Sesion 01  algoritmos y estructura de datos

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)

Page 6: Sesion 01  algoritmos y estructura de datos

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:

Page 7: Sesion 01  algoritmos y estructura de datos

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)‘*’,‘/’,‘+’

Page 8: Sesion 01  algoritmos y estructura de datos

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.

Page 9: Sesion 01  algoritmos y estructura de datos

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

Page 10: Sesion 01  algoritmos y estructura de datos

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

Page 11: Sesion 01  algoritmos y estructura de datos

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

Page 12: Sesion 01  algoritmos y estructura de datos

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

Page 13: Sesion 01  algoritmos y estructura de datos

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)

Page 14: Sesion 01  algoritmos y estructura de datos

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

Page 15: Sesion 01  algoritmos y estructura de datos

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

Page 16: Sesion 01  algoritmos y estructura de datos

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

Page 17: Sesion 01  algoritmos y estructura de datos

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)

Page 18: Sesion 01  algoritmos y estructura de datos

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

Page 19: Sesion 01  algoritmos y estructura de datos

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

Page 20: Sesion 01  algoritmos y estructura de datos

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

Page 21: Sesion 01  algoritmos y estructura de datos

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)

Page 22: Sesion 01  algoritmos y estructura de datos

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

Page 23: Sesion 01  algoritmos y estructura de datos

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

Page 24: Sesion 01  algoritmos y estructura de datos

Curso de Algoritmos y Estructura de Datosww

w.ev

ira.

net

Area de descargas - www.cursos.evira.net

FIN DE PRESENTACION