Documente Academic
Documente Profesional
Documente Cultură
PROGRAMACIÓN
CLASES TEÓRICAS
INTRODUCCIÓN A LAS
ESTRUCTURAS DE DATOS
DESCRIPCION DESCRIPCION
TEMA
TEMA
UND
UND
INTRODUCCION A LAS ESTRUCTURAS DE DATOS METODOS DE ORDENACION Y BUSQUEDA
2.4 Recursividad
Grafos
CAPITULO 1.1
ALGORITMOS Y ESTRUCTURA DE
DATOS
OBJETIVOS A ALCANZAR:
• Usted será capaz de “conocer e identificar la
terminología para construir y resolver
algoritmos con las estructuras de datos más
adecuadas”.
CUALITATIVOS – Son aquellos que Indican una serie de símbolos y reglas que se utilizan para describir de
describen los pasos utilizando palabras. manera explícita un proceso. Pueden ser:
CARACTERISTICAS D E U N ALGORITMO
IV - DESARROLLO • Codificación
DEL
ALGORITMO
• Ejecución y Testing
V - DEPURACION Y • Evaluación de
PRUEBAS Resultados
VI - DOCUMENTACION
Se debe establecer claramente el enunciado del problema que se está Se debe identificar claramente lo siguiente:
planteando. a.Los datos que deben ser ingresados para dar solución al
Ejemplo: calcular el área de un rectángulo. En función a la siguiente problema.
fórmula: b.Establecer exactamente los procesos u operaciones a
llevarse a cabo a fin de dar con la solución del problema.
A=(b*h donde b = base y h = altura c.Determinar con exactitud qué valores son los que se debe
visualizar como resultado o solución del problema, para
) satisfacer los objetivos del problema.
Ejemplo: calcular el área de un rectángulo. En función a la siguiente
fórmula:
• E JERCICIO 1 : C A LC U L A R E L TA M A Ñ O D E
A LMAC E NA MIE NTO Q U E REQUIERE U N A
FOTO G R A F I A A PARTIR D E LA C A N T I DA D D E
PIXELES
Impresión de resultado
Documento generado
Múltiples Documentos
Proceso Predefinido
(para llamar a otra
rutina o función)
Ejemplo 1:
Recuerdan el ejemplo en la que se planteó el problema sobre INICIO
calcular el área de un rectángulo en función a la siguiente
fórmula:
a=(b*h) donde b = base y h = altura
LEER:
b, h
Características:
Todo diagrama debe indicar claramente en dónde empieza y en donde termina. Conceptos:
Se debe desarrollar preferiblemente de arriba hacia abajo y de izquierda a derecha. • CONSTANTE.- Es
Los símbolos deben dibujarse proporcionados y balanceados unos a otros. a = (b * h) un valor que
En el diagrama de flujo se escribe qué se hace, no se codifican instrucciones. permanece sin
No deben existir ciclos (bucles o loops) infinitos o partes por cuales nunca pase la lógica del cambiar su valor
programa en ejecución. durante todo el
Un diagrama debe ser claro y bien presentado. recorrido del
El uso de conectores en ocasiones elimina flechas que dan una mala imagen: sin embargo el uso
ESCRIBIR:
a programa. Ejemplo: pi
exagerado de conectores dificulta el entendimiento del diagrama. = 3.1416
Los nombres que se asignen a las variables o campos se recomienda que sean nemotécnicos; • VARIABLE.- su
es decir, que indiquen para que sirven. valor puede
El símbolo para operaciones de asignación (rectángulo) y para operaciones de cambiar
entrada o salida pueden ser precedidos por una o varias flechas, pero sólo pueden ser seguidos FIN constantemente.
por una flecha.
CAPITULO 1.2
ESTRUCTURA
CONDICIONAL
OBJETIVOS A ALCANZAR:
• Usted será capaz de “conocer e identificar la
terminología para construir y resolver
algoritmos con las estructuras de datos más
adecuadas”.
Selectiva Doble
Selectiva
Anidada Selectiva
SI <condición> ENTONCES
IF monto >= 300
<acción A>
d=monto*0.30;
<acción B> ELSE
SINO { monto=monto*1.20;
<acción
d=monto*0.30;
X>
}
<acción Y>
FIN SI
Es una estructura compuesta que está formada por una serie de estructuras selectivas que se encuentran inmersas unas dentro de
otras.
Se utiliza para establecer una serie de condiciones jerárquicas desde las más genéricas hasta las más específicas, sino se cumplen las
primeras condiciones, no se evalúan las siguientes.
SI <condición1> ENTONCES
<acción A>
<acción B>
SINO
SI
<condición2
>
ENTONCE
S
<
acción
C>
<acción D>
SINO
SI
<condición3>
Sin usar indentación Usando indentación Usando clausula elseif se reduce la expresión
Es una estructura compleja que evalúa una expresión que podrá tomar “n” valores distintos. Según elija uno de
estos valores en la condición, se realizará una de las “n” acciones. El flujo del algoritmo seguirá un
determinado camino entre los “n” caminos posibles.
SI <condición=1> ENTONCES
<acción S1>
SI <condición=2>
ENTONCES
<acción S2>
SI <condición=3>
ENTONCES
<acción S3>
SI <condición=4> ENTONCES
<acción S4>
…
SI <condición=n> ENTONCES
<acción Sn>
FIN SI
Es una estructura compleja que evalúa una expresión que podrá tomar “n” valores distintos. Según elija uno de
estos valores en la condición, se realizará una de las “n” acciones. El flujo del algoritmo seguirá un
determinado camino entre los “n” caminos posibles.
Ejemplo 2: Realizar un algoritmo que lea el número que representa el día de la semana y diga que día es, teniendo
en cuenta Lunes=1, Martes 2…,Domingo=7
FIN
CAPITULO 1.3
ESTRUCTURAS
REPETITIVAS
OBJETIVOS A ALCANZAR:
• Usted será capaz de “conocer e identificar la
terminología para construir y resolver
algoritmos con las estructuras de datos más
adecuadas”.
INICIO
PRINT “1”
PRINT “2”
Y si le piden que imprima
del 1 al 1’000,000 pero
… considerando solo los
números primos?
¿cuántos días sin dormir
PRINT “99” necesita para hacer su
diagrama de flujo?
PRINT “100”
FIN
Se utiliza cuando es necesario repetir una o varias acciones un determinado número de veces. A esto se le llama
BUCLE. Cada repetición es una ITERACION.
Repite el bucle de
Instrucciones de 1 a N
veces.
Luego de cumplirse las
“N” iteraciones (vueltas),
se procederá a
ejecutarse las
instrucciones que se
encuentran después del
bucle (en el ejemplo I=N,…3,2,1
ejecutará al terminar la
Instrucción Z).
La variable I va
incrementando (o
I=1,2,3, … N Instrucción Z disminuyendo) su valor
de 1 en 1 Instrucción Z
automáticamente por
cada iteración.
Curso : Lógica de Programación– Clases Teóricas 29
Docente : Leonardo Castro Gallo
UNIDAD DE APRENDIZAJE 1
ALGORITMOS Y ESTRUCTURA DE DATOS
1.3 ESTRUCTURAS REPETITIVAS
Se utiliza cuando es necesario repetir una o varias acciones un determinado número de veces. A esto se le llama
BUCLE. Cada repetición es una ITERACION.
PARA I de 2 a N veces
<acción S1>
<acción S2>
<acción S3>
……
<acción Sn>
FIN PARA
<acción Z1>
<acción Z2>
Instrucción Z
Lo que se
quiere obtener: INICIO INICIO
Nro
Conceptos:
PRINT nContador = 1 • V ARIAB L E.- aquella
1 “1” cuyo
valor puede cambiar durante la
ejecución del programa.
2 PRINT • C O N TAD O R.- Es
“2” una
variable que se utiliza para
PRINT nContador
3 “contar” y llevar el control de
… la estructura repetitiva
nContador = (bucle). Su valor puede
4 nContador + 1
incrementar o decrecer en
PRINT forma constante. Ejemplo:
…. nContador NO
“99” variable nContador.
= 100 ?
99 PRINT
SI
“100”
100
FIN FIN
¿y si uso
1.1?
Curso : Lógica de Programación– Clases Teóricas 31
Docente : Leonardo Castro Gallo
UNIDAD DE APRENDIZAJE 1
ALGORITMOS Y ESTRUCTURA DE DATOS
1.3 ESTRUCTURAS REPETITIVAS
Ejemplo 3b: Imprimir un listado con los números del 1 al 100, un número en cada línea. Al lado de cada número un acumulador que
muestre el número actual sumado al número anterior.
Lo que se
quiere obtener: INICIO INICIO
Conceptos:
Nro Acum • CONTADOR.- Es una variable que se utiliza
nContador = 1
PRINT “1”, nAcum = 0 para llevar el control de la estructura repetitiva.
1 1 “1” Ejemplo: variable nContador
• ACUMULADOR.- Es una variable que se
nAcum = nAcum +
PRINT “2”, utiliza para acumular valores que se
2 3 nContador
“3”
quieren totalizar. La cantidad de
3 6 PRINT nContador,
… incremento no es constante. Ejemplo:
nAcum nAcum
4 10
nContador =
PRINT “99”, nContador + 1
…. “197” Una vez construido el
nContador SI
algoritmo, no lo declare
99 197 PRINT “100”, <= 100 ? finalizado. Haga primero
“297” su prueba de escritorio!
100 297 NO
FIN
FIN < 100
INICIO
nContador = 1
nAcum = 0
nAcum = nAcum +
nContador
PRINT nContador,
nAcum
nContador =
nContador + 1
nContador SI
< 100 ?
NO
INICIO
nContador = 1
nAcum = 0
SI
nContador
<= 100 ?
nAcum = nAcum +
NO nContador
FIN
nContador
nAcum
INICIO
nContador = 1
nAcum = 0
Ya hizo su
prueba de
nContador =
escritorio?
¿ NO nContador + 1
nContador >
1’000,000? nContador
NO
es
Número
SI nContador nAcum
Primo?
SI
FIN
nAcum = nAcum +
nContador
PRINT nContador,
nAcum
OBJETIVOS A ALCANZAR:
• Usted será capaz de “practicar con ejercicios
para conocer e identificar la terminología
para construir y resolver algoritmos con las
estructuras de datos más adecuadas”.
Abrir la maletera y 1
Subir el auto con la gata y
colocar las señales
retirar las tuercas y la llanta Desbloquear el auto
de peligro SI
mala
¿Se
encuentra la
llanta en Colocar la llanta de
¿Se
SI buen estado? repuesto y poner Proseguir con el viaje
encuentran la
las tuercas
llanta de
NO
repuesto y las
Buscar otras
herramientas? soluciones 2 FIN
NO
Curso : Lógica de Programación– Clases Teóricas 39
Docente : Leonardo Castro Gallo
UNIDAD DE APRENDIZAJE 1
ALGORITMOS Y ESTRUCTURA DE DATOS
M E TO D OLOG I A PARA CONSTRUIR U N ALGORITMO
Características:
Todo diagrama debe indicar claramente en dónde empieza y en donde
termina.
Se debe desarrollar preferiblemente de arriba hacia abajo y de
izquierda a derecha.
Los símbolos deben dibujarse proporcionados y
balanceados unos a otros.
En el diagrama de flujo se escribe qué se hace, no se
codifican instrucciones.
Un diagrama debe ser claro y bien presentado.
El uso de conectores en ocasiones elimina flechas que dan una mala
imagen: sin embargo el uso exagerado de conectores dificulta el
entendimiento del diagrama.
Los nombres que se asignen a las variables o campos se
recomienda que sean nemotécnicos; es decir, que indiquen para que
sirven.
El símbolo para operaciones de asignación (rectángulo) y para
operaciones de entrada o salida pueden ser precedidos por una o
varias flechas, pero sólo pueden ser seguidos por una flecha.
No deben existir ciclos (bucles o loops) infinitos o partes por cuales
nunca pase la lógica del programa en ejecución.
Ejemplo 3:
Se entrega un libro no numerado al señor DATA
2.0 (el autómata) y se le solicita que cuente las
hojas (no las páginas) e informe
cuantas hay.
Sugerencias
Ejemplo 4:
Se entrega una moneda de S/1, un número
telefónico y un mensaje al señor DATA 2.1 (el Sugerencias de análisis:
autómata).
El Señor DATA debe buscar un teléfono público , El teléfono público encontrado puede estar
marque el número señalado y transmita el mensaje. dañado, pero habrá otros buenos en la ciudad.
No se espera respuesta Posiblemente haya personas en la cola y el
alguna. Finalmente el señor DATA debe regresar e señor DATA deberá esperar su turno.
informar si pudo dar el mensaje o no. Si no encontró un teléfono pública deberá buscar
otros más hasta un máximo de 5 intentos.
Puede ocurrir que no le contestan o que esté
No se preocupe porque el señor DATA: ocupado y deberá hacer otro intento, hasta un
máximo de 3 veces.
Se olvidó el número telefónico o el Si el número está timbrando deberá cuidar
mensaje. que no pase de 3 timbradas y colgar
Marcó un número equivocado. inmediatamente, sino entrará la
Encontró que todos los teléfonos de la ciudad casilla de voz y se comerá la moneda.
están dañados. En uno de los intentos, el teléfono no le
Lo atropelló un auto al cruzar la calle, devolvió la moneda.
Etc.
Ejemplo 5: Ejemplo 6:
Juan, Raquel y Daniel aportan cantidades de dinero A un trabajador le descuentan de su sueldo el 10%, si
para formar un capital. Juan y Raquel aportan en su sueldo es menor o igual a S/ 1,000, si es por encima
dólares y Daniel en soles. Diseñe un programa que de S/1,000 y hasta S/2,000 el 5% del adicional (es
determine el capital total en dólares y que porcentaje decir del monto que sobrepasa de S/1,000), y por
de dicho capital aporta cada uno. Considere que: 1 encima de S/2,000 el 3% del adicional (es decir del
dólar = moto que sobrepasa de S/2,000).
3.25 soles.
Calcular el descuento y sueldo neto que recibe el
Haga el Diagrama de Flujo y el Pseudocódigo trabajador dado su sueldo.
CAPITULO 1.4
CLASIFICACION DE LAS ESTRUCTURAS
DE
DATOS
OBJETIVOS A ALCANZAR:
• Usted será capaz de “conocer e identificar
las diferentes clasificaciones de las
estructuras de datos”.
Símbolos de Nombres de
Variables Constantes Funciones
Operación
NO
c = {…, -2,-1, 0, 1, … 50, 101, …}
TIPOS D E OPE RADORES
a = {51, 52, … 100} Y
Operadores VERDADER
nContador <= 100
O ó FALSO
Relacionales (comparan valores del mismo tipo)
Una variable se crea en memoria en el momento que INICIA el Es una colección de datos que ocupan varias casillas de memoria con
algoritmo, se mantiene durante la EJECUCION, su valor puede muchos valores a la vez (siempre y cuando sean del mismo tipo de
cambiar durante la misma. Al TERMINAR, la variable se destruye dato Numérico, Texto, etc.). Se caracterizan por su organización y las
liberando el espacio que ocupaba en la memoria. Cada variable ocupa operaciones que se pueden hacer dentro de ella.
un solo valor. Ejemplo de Estructura de datos: Arreglos, Archivos, Cadenas
y Listas
Programa Memoria RAM
Arreglo de Datos
nContador = 1
nAcum = 0 nContador nAcum
Su tamaño en memoria es fijo. Se asigna en tiempo de Su tamaño en memoria es variable, es decir, se crea con un
compilación y no puede ser modificado durante la ejecución del tamaño inicialmente y puede ser modificado en tiempo de
programa. ejecución. Ejemplos: Listas Enlazadas, Pilas, Colas, árboles,
Arreglo de Datos Unidimensionales (Vectores) conjuntos, grafos, tablas Hash, etc.
Se clasifican en:
LINEALES: Son aquellas estructuras donde los datos se
almacenan en zonas continuas (sucesivas
OBJETIVOS ALCANZADOS:
• Usted es capaz de “conocer e identificar la
terminología para construir y resolver
algoritmos con las estructuras de datos más
adecuadas”.