Algoritmos y Estructuras de Datos
Algoritmos y Estructuras de Datos
Algoritmos y Estructuras de Datos
13/8
Estructuras de datos: una manera de organizar los datos para llevar el algoritmo
correctamente y nos facilita el manejo de información.
DATOS VS INFORMACIÓN
PROGRAMA
Componentes
Proceso de programación
● Elaborar implica hacer una serie de pasos secuenciales que comienzan con la
detección del problema y termina en la implantación del problema(poner en solución
o funcionamiento)
Pasos
La prueba, se simula cómo funciona el algoritmo con datos para validar que funciona
correctamente y nos de los resultados que queremos,
4. Codificar el programa: Una vez listo el algoritmo, lo pasamos al lenguaje para que
lo entienda la computadora.
EL ALGORITMO:
podemos aplicar a situaciones de nuestra vida cotidiana. EJ: una receta de cocina,
instrucciones de un juego, abrir una cuenta de gmail, etc
● Diagrama de flujo u organigrama: técnica gráfica que sirve para expresar el orden
ESTRUCTURA DE UN PROGRAMA
Programa nombredelprograma
VAR declaración de variables
INICIO
● acciones: paso a paso para resolver el problema
● //COMENTARIOS
FIN PROGRAMA
Ejemplos:
Programa calculadora
superficie,volumen : ENTERO
a+b //suma de a y b
contador=1 //inicializa contador
Las op de salida permiten mostrar valores (en periféricos de salida), se conocen como
operadores de escritura
ESTILO DE PROGRAMACIÓN
Ejemplo: si exportamos el software, hay que hacerlo legible para la otra persona y para que
si hay un problema pueda entender la otra persona
Calidad:
Definir problema
INICIO
1. Tener al teléfono y a la abuela cerca.
2. Mostrar ubicación de la aplicación en el celular (por donde entrar a wpp)
3. Indicamos el funcionamiento del ícono de la lupita
4. Apretamos el símbolo de la lupa
5. Escribimos el nombre de la persona a la que queremos mandarle el mensaje.
Aclaración: el nombre debe ser tal cual está agendada la persona.
6. Seleccionar el contacto
7. Se abrirá un chat con la opción de “Escribe un mensaje aquí” y seleccionamos esa
opción
8. Ingresamos el mensaje deseado
9. Seleccionar el ícono de “Enviar”
10. Indicamos el funcionamiento del doble tilde que aparece al enviar el mensaje
FIN
UNIDAD 2: TIPOS DE DATOS, OPERACIONES Y EXPRESIONES
Programa =
Estructura de datos + Operaciones primitivas elementales + Estructuras de control
Un dato es la representación de los objetos con los que opera una computadora. Las
estructuras de datos: representación interna de datos en la computadora. Pueden
manejarse como variables o como constantes.
Tipo de datos:
Numérico
1. Real
2. Entero
Cadena de carácter
1. alfabéticos,
2. alfanuméricos
Variables: cambian a lo largo del programa. Son todos los datos que se ingresa o genera o
calcula a partir de otros datos, debe identificarse y manejarse de forma de variable
Características
● Nombre: para identificarlo
● Contenido: valor de la variable
● Tipo de dato: especifica que dato es
Declaraciones
Es una acción no ejecutable
Formatos:
CONSTANTE VARIABLE
CONST VAR
nombreconst = valor nomVariable1: TIPO DE DATO
ej. Const
PI= 3,14
MAXIMO=100
RESULTADO1=
APROBADO
RESULTADO2=
DESAPROBADO
Leer(nombre)
Leer (apellido)
Formato
suma
resta,
mult,
div,
exponenciación ^
OPERADOR CONCATENAR
➔+
➔ EJ: escribir( calle + número)
OPERADOR LÓGICO
OPERACIONES DE RELACIONES
Prioridades
● los paréntesis tienen prioridad 0, nos indican que resolver primero
Ej: n= (x+y)/(y-2)
● n es variable
● (x+y)/(y-2) es una expresión aritmética
20/8
Unidad 3: EStRUCTURAS DE CONTROL DE FLUJO
Doble:
permite elegir entre dos opciones en función del cumplimiento de una
determinada condición. Se ejecuta una u otra, pero nunca las dos a la vez.
Múltiple:
● Se evalúa una expresión que puede tomar múltiples valores.
● Existen más de dos alternativas posibles, es decir que en base a una
condición se pueden seguir más de 2 caminos.
● En el caso de selección múltiple se evalúa una expresión que podrá tomar
n valores distintos, según el resultado podrá seguir una de las n acciones
posibles.
Programa DOCUMENTACIÓN
Var edad, año: ENTERO
Inicio
Escribir “Ingrese la edad”
Leer (edad)
Fin DOCUMENTACIÓN
REPETIR
● La condición sale cuando es verdadera
● Usamos el repetir para validar los datos de ingreso
● Por la salida del bucle, “cola inteligente”
Iteración al hecho de repetir la ejecución de una secuencia de acciones.
MIENTRAS:
ITERAR
● combinación de repetir y mientras
● salida cuando cond sea verdadera
● Se ejecutan las acciones 1 y luego se evalúa la condición, si la condición es
Falsa ejecuta las acciones 2. Luego va a ejecutar las acciones 1 y vuelve a
evaluar la condición y así sucesivamente.
COMPARACIÓN DE ESTRUCTURAS DE CONTROL
EJEMPLO:
PROGRAMA CATEGORÍA
VAR edad: ENTERO
INICIO
Escribir “Ingrese su edad”
Leer edad
SI edad<=0 entonces
Escribir “Error. Ingrese un número válido.”
Fin si
VARIAR edad desde 1 hasta 18
Escribir: “Usted pertenece a la categoría A”
FIN VARIAR
FIN CATEGORÍA
Prueba:
● demuestran resultados obtenidos, hay que verificar que el resultado sea
correcto y conocido
● Las variables deben estar definidas(con valor) y declaradas(tipo de dato)
Validación de datos; que los datos sean correctos y estén dentro de un rangos
válido
Traza: indica la secuencia de instrucciones de las instrucciones de un conjunto de
valores. Puede ser secuencial (1,2,3,4,....)o repetitiva(1,2,3,1,2,3,1,2,3….)
Técnicas:
● Recurso abstracto: tarea creada por programadores para facilitar
procesos tediosos
● Diseño descendente(top-down): ir dividiendo en subprogramas
para que el problema sea más limitado y que se nos facilite la lógica.
Se tiene un programa principal que se llama a subprogramas. Ej:
programa FORMULARIO, 3 subprogramas: Ingreso de datos, Lectura,
Impresión de formulario
● Estructura básica: vistas anteriormente
○ selectiva
○ secuencial
○ repetitiva
Características
1. Un solo punto de entrada y salida del programa
2. Existen caminos que se pueden seguir y pasan por todas las partes del
programa
3. Todas las instrucciones son ejecutables, no existen lazos o bucles infinitos
Subprograma
Beneficios para trabajar
➔ menos escritura (reutilización)
➔ mayor calidad en la lectura
➔ mayor posibilidad de reutilización
➔ mayor facilidad para modificar sin alterar todo el programa (relacionado
con la reutilización, solo modificas 1 sola vez)
➔ mejora la distribución de tareas entre programas
El programa principal UNO contiene los subprogramas DOS y CUATRO. A su vez el
subprograma DOS contiene al subprograma TRES. Y el CUATRO contiene a
CINCO y SEIS.
ENCABEZAMIENTO DE SUBPROGRAMAS
A través de las listas de parámetros se pasan valores que pueden ser constantes,
variables, expresiones, funciones
la correspondencia entre valores de llamada y subprograma deben mantener el
mismo tipo de dato, posición y cantidad
Parámetros: reales o argumentos de llamada
Parámetros de subprograma: parámetro formal
PASAJE DE PARÁMETROS
Por referencia:
● se comunican los programas
● en vez de escribir el valor se pasa la direccion donde se encuentra el valor
● se coloca “por ref”
● se trae, ejecuta el programa, modifica y sale nuevamente el dato
modificado (ejemplo caso sueldo o suma de lados)
PROCEDIMIENTOS Y FUNCIONES
UNIDAD 5: ARREGLOS
Introducción:
● Hasta ahora deminitos tipo de datos simples
Que es una estructura? es un tipo de dato formado por un conjunto de
elementos del mismo tipo de datos
un dato de tipo estructurado puede almacenar más de un elemento , todos
los datos deben ser del mismo tipo
Ej: tengo un programa que calcula el promedio de cada alumno. Para
calcular el promedio podemos usar un dato estructurado que sea nota y
serán todas de tipo real.
Pueden ser
Estáticas: se define su tamaño antes de que se ejecute el programa ej
arreglos
A. UNIDIMENSIONALES: VECTORES
es una variable estructurada de una dimensión formada por:
Si tienen una dimensión, se los denomina vectores
● Nombre del vector A
● Tamaño n
● Índice o posición: lugar que ocupa en la estructura de datos
●
A1
A2
A3
...
...
A[n]
Declaración de variables:
Índice
● Nombre identifica la variable como vector
● Tamaño: número entero que indica la cantidad de elementos que tiene el
arreglo
● Dimensión:
● Tipo de dato:
● Como es unidimensional tiene un solo subíndice: unidimensional
● Nos referimos al vector completo o a un único elemento, ya sea para
asignar un valor o recuperar nombre [subíndice]
● debe ser 1<= subíndice<= tamaño
● debe ser siempre de tipo entero. Puede ser una variable, una constante o
una expresión cuyo resultado sea un entero.
Asignación
Asigna el valor x al i_esimo elemento del vector
NOMBRE [i]=x
También se pueden asignar valores al vector
Lectura y escritura
Leer: se ingresa el valor desde el periférico de entrada que almacena el elemento
seleccionado
leer (nombre [i])
Escribir Se muestra el valor almacenado en el periférico de salida
acceso secuencial o recorrido
Escribir (nombre [i] )
para escribir
VARIAR i desde n hasta m
Escribir (nombre [i] )
FINVARIAR
para leer
VARIAR i desde n hasta m
leer (nombre [i])
FINVARIAR
para asignar
VARIAR i desde n hasta m
nombre[i]=n
FINVARIAR
Matrices
● Nombre de la matriz: A
● Número de elementos: nxm
● filas n
● columnas m
A[2,1]
A[n,1]
Índice
Operaciones
● leer, escribir, asignar, recorrido
ARREGLO TRIDIMENSIONAL
Matriz [n,m,p] donde p es la cantidad de planos, n la cantidad de filas y m la
cantidad de columnas
Declaracion
Índice
usamos los mismos de antes, solo que agregamos lo del plano
Operaciones
asignación, lectura, escritura y recorrido
Para el recorrido utilizamos bucles repetitivos anidados para procesar filas,
columnas y planos
Sección transversal: toma datos de una columna completa ej. A(2,*) todas las
columnas de la fila 2. A (1;*) tomamos todos los datos almacenados en la columna
1
Transpuesta:
● invirtiendo las posiciones del subíndice
● B (i,j) —-Bt (j,i)
● Si el arreglo era días por semanas, la transpuesta es semans por días
Búsqueda y ordenamiento
● localización de un elemento
● secuenciamiento de elementos teniendo en cuenta un determinado
criterio
● siempre es más fácil encontrar un elemento
Búsqueda binaria
Cuando el número de elementos del conjunto sobre el cual queremos buscar es
grande la búsqueda lineal es ineficiente
Es necesario que los elementos estén ordenados en el arreglo para hacer la
búsqueda binaria.
Complejidad
Estudia los recursos que usamos para resolver un problema
utiliza tiempo y espacio
Para estudiar los problemas, los podemos clasificar
Orden
el algoritmo más eficiente es:
es el mas rapido (lo mas comun)
el que ocupa menos memoria
la eficiencia se expresa en función del tamaño del programa
Como se mide
ANALISIS DE ALGORITMOS
tenemos 2 casos
peor caso: la peor situacion que nos puede pasar, ej, que sea el último.calcula su
función de crecimeinto dandole la pero de todas las entradas posibles
caso promedio
promedio de cuanto tardaria el akgoritmo de cada una de las entradas posibles
costo computacional
cual es el mejor
peor caso mas facil de razonar, para analizar el costo de un algoritmo se siguen 3
pasos
1. suponer lo peor de los casos
2. asignar costos a cada linea/operacion del código
3. cer cuántas veces será ejecutada cada línea de código