Cuestionario Final Estructura de Datos
Cuestionario Final Estructura de Datos
SOFTWARE, LENGUAJES DE
PROGRAMACIÓN
a) CONCEPTOS DE ALGORITMO
• Un algoritmo es un conjunto finito de instrucciones opasos con
una secuencia lógica que sirven para ejecutar una tarea o
resolver un problema.
• De un modo más formal, un algoritmo es una secuencia lógica
finita de operaciones realizables, no ambiguas,cuya ejecución
da una solución de un problema en un tiempo finito.
- COMPONENTES DE UN ALGORITMO
Entrada : Datos del problema a resolver
Salida : El resultado de la resolución.
Procesos: Paso a seguir en la resolución.
- CARACTERÍSTICAS DE UN ALGORITMO
CONCEPTO DE PROGRAMA
Buenos
diseños
del
Algoritmo
+ ➔ Traducción casi automática
Lenguaje estructurado
Documentación interna:
Comentarios: líneas informativas incluidas en el código.
Documentación externa:
Manuales, estructura y especificaciones del programa, historia de
las modificaciones, etc.
• Lenguaje natural.
• Organigramas.
• Diagramas Nassi – Shneiderman (N - S).
• Pseudocódigo.
• Otros
LENGUAJE NATURAL:
Es un lenguaje utilizado para describir los pasos de cómo
realizamos algo, de una forma sencilla.
ORGANIGRAMAS:
• Los organigramas o diagramas de flujo permiten describir los
algoritmos de forma gráfica.
ALGORITMO Y ESTRUCTURA DE DATOS I
DATOS VS INFORMACIÓN
DATOS VS INFORMACIÓN
- Medidas objetivas de atributos - Resultado de haber organizado
de entidades. o analizado los datos de alguna
- Cifras/hechos crudos (en manera lógica.
bruto) sin interpretar o analizar. - Reduce la incertidumbre.
- No son estímulos de acción. - Impulsa a la acción.
TIPOS DE DATOS SIMPLES
Permiten representar
valores escalares de forma Son aquellos que sólo
numérica, esto incluye a los pueden tener dos valores
números enteros y los reales. (cierto o falso) ya que
representan el resultado de
una comparación entreotros
datos (numéricos o
Este tipo de datos
alfanuméricos).
permiten realizar
operaciones aritméticas
DATOS ALFANUMÉRICOS
- CONSTANTES
Constantes: Valores que durante la ejecución de un
programano cambian su valor.
- VARIABLES
Definición 1: Valores que cambiarán durante la ejecución
delprograma.
• CONTADORES
Se utilizan para llevar el control del número de ocasiones en que se
realiza una operación o se cumple una condición. Con los incrementos
generalmente de uno enuno.
• ACUMULADORES
Forma que toma una variable y que sirve para llevar
lasuma acumulativa de una serie de valores que se
van leyendo o calculando progresivamente.
IDENTIFICADORES
Para poder reconocer una variable o una constante en la memoriade
la computadora, es necesario darle un nombre con el cual
podamos identificarla dentro de un algoritmo, esto se llama un
identificador.
EXPRESIONES
Se definen como una combinación de constantes, variables,
símbolos de operación, paréntesis, y nombres de funciones
especiales.
Las expresiones se clasifican en:
o Aritméticas
o Lógicas
o Carácter
Un puntero es una variable que contiene una dirección de memoria. Esta dirección es la posición
de otra variable.
Una lista es una estructura de datos en la cual los elementos almacenados en la misma pueden ser
agregados, borrados y accedidos sin restricciones, en cualquier punto de la estructura.
Una cola es una estructura de datos en la cual los elementos almacenados en la misma se agregan
al final y se sacan del principio de la cola.
Una pila es una estructura de datos en la cual los elementos almacenados en la misma se agregan
y se sacan del mismo lugar, llamado el tope de la pila.
PHP Es un lenguaje de código abierto muy popular, adecuado para desarrollo web y que puede ser
incrustado en HTML. Es popular porque un gran número de páginas y portales web están creadas
con PHP. Código abierto significa que es de uso libre y gratuito para todos los programadores que
quieran usarlo. Incrustado en HTML significa que en un mismo archivo vamos a poder combinar
código PHP con código HTML, siguiendo unas reglas.
PHP se utiliza para generar páginas web dinámicas. Recordar que llamamos página estática a aquella
cuyos contenidos permanecen siempre igual, mientras que llamamos páginas dinámicas a aquellas
cuyo contenido no es el mismo siempre. Por ejemplo, los contenidos pueden cambiar en base a los
cambios que haya en una base de datos, de búsquedas o aportaciones de los usuarios, etc.
Es importante que los sitios web también tengan un buen nivel de compatibilidad con las bases de
datos, ya que son una parte fundamental de la estructura.
• Oracle;
• MySQL;
• Interbase;
• SQLite;
• Sybase.
• Lenguaje libre, el cual puede ser editado fácilmente por cualquier desarrollador o
programador.
• Dispone de una sintaxis muy limpia, por lo que la curva de aprendizaje es menor
Desventajas
Sintaxis
La sintaxis de Java deriva en gran medida de C++. Lo que lo diferencia de este es que combina
la sintaxis para programación genérica, estructurada y orientada a objetos, Java fue construido
desde el principio para ser completamente orientado a objetos.
Existen distintos programas comerciales que permiten desarrollar código Java. La compañía
creadora de Java distribuye gratuitamente el Java Development Kit (JDK). Es un conjunto de
programas y librerías que permiten desarrollar, compilar y ejecutar programas en Java.
Compilador de Java
Es una de las herramientas de desarrollo incluidas en el JDK. Realiza un análisis de sintaxis del
código escrito en los ficheros fuente de Java (extensión *.java).
Python – Orígenes
Python fue concebido a finales de los años 80 como un lenguaje para ser
interpretado orientado a la enseñanza. Con el paso del tiempo, Python se ha
convertido en una herramienta esencial para todo tipo de programadores,
ingenieros e investigadores, tanto en el ámbito académico como industrial.
Desventajas de Python
Como vemos, los beneficios son muchos, pero ¿y los inconvenientes? El principal
obstáculo que le encontramos a Python es que se trata de un lenguaje interpretado, es
decir, que no se compila, sino que se interpreta en tiempo de ejecución. Como
consecuencia, es más lento que Java o C/C++.
Scripts de programación
JavaScript te permite programar scripts. Como se mencionó anteriormente,
un lenguaje de programación es utilizado para escribir código fuente a ser analizada
por un ordenador. Hay tres formas de usar el código fuente:
Una lista es una estructura dinámica de datos que contiene una colección de elementos
homogéneos (del mismo tipo) de manera que se establece entre ellos un orden. Es decir,
cada elemento, menos el primero, tiene un predecesor, y cada elemento, menos el último,
tiene un sucesor.
Una pila (stack en inglés) es una lista ordenada o estructura de datos que permite
almacenar y recuperar datos, siendo el modo de acceso a sus elementos de tipo LIFO (del
inglés Last In, First Out, «último en entrar, primero en salir»).
Una cola es una estructura de datos que almacena elementos en una lista y permite
acceder a los datos por uno de los dos extremos de la lista. Un elemento se inserta en
la cola (parte final) de la lista y se suprime o elimina por la frente (parte inicial, cabeza) de
la lista.
Un grafo es un conjunto de puntos y un conjunto de líneas, cada una de las cuales une un
punto con otro. Los puntos se llaman nodos o vértices de un grafo y las líneas se llaman
aristas o arcos. Se representan el conjunto de vértices de un grafo dado G, por Vg, y el
conjunto de arcos, por Ag.
Un árbol es una estructura (posiblemente no lineal) de datos compuesta de nodos,
vértices y aristas que es acíclica. Un árbol que no tiene ningún nodo se llama árbol vacío
o nulo. Un árbol que no está vacío consta de un nodo raíz y potencialmente muchos
niveles de nodos adicionales que forman una jerarquía.
En informática, un conjunto es una colección (contenedor) de ciertos valores, sin ningún
orden concreto ni valores repetidos. Su correspondencia en las matemáticas sería el conjunto
finito. Sin tener en cuenta la secuencia, ni el hecho de que no haya valores repetidos, se
asemeja a una lista. Un conjunto puede verse como una cadena asociativa (array) (mapeado
parcial) donde no se atiende al valor de cada par clave-valor.
El algoritmo HeapSort, consiste en remover el mayor elemento que es siempre la raíz del
Heap, una vez seleccionado el máximo, lo intercambiamos con el último elemento del
vector, decrementamos la cantidad de elementos del Heap y nos encargamos de
reacomodarlo para que vuelva a ser un Heap.
Las listas ordenadas son casi idénticas a las listas no ordenadas, salvo que en este caso los
elementos relacionados se muestran siguiendo un orden determinado. Cuando se crea por
ejemplo una lista con las instrucciones de un producto, es importante el orden en el que se
realiza cada paso. Cuando se muestra un índice o tabla de contenidos en un libro, es
importante el orden de cada elemento del índice.
Tablas de hash y algoritmos de dispersión
Una tabla hash, matriz asociativa, hashing, mapa hash, tabla de dispersión o tabla
fragmentada es una estructura de datos que asocia llaves o claves con valores. La operación
principal que soporta de manera eficiente es la búsqueda: permite el acceso a los elementos
(teléfono y dirección, por ejemplo) almacenados a partir de una clave generada (usando el
nombre o número de cuenta, por ejemplo). Funciona transformando la clave con una función
hash en un hash, un número que identifica la posición (casilla o cubeta) donde la tabla hash
localiza el valor deseado.
Dispersión abierta
Dispersión cerrada