Sesion01 2024
Sesion01 2024
Sesion01 2024
FACULTAD DE INGENIERÍA
ESCUELA PROFESIONAL DE INGENIERÍA INFORMÁTICA
28/03/2024 1
Estructura
de datos y
algorítmica
ESTRUCTURA DE DATOS
❑ Las estructuras lineales son aquellas en las que sus elementos se encuentran
en secuencia lineal.
❑ Las estructuras no lineales son aquellas en las que sus elementos se
encuentran en un tipo especial de relación de aristas o caminos entre dichos
elementos.
CLASIFICACIÓN DE LAS ESTRUCTURAS DE DATOS-II
➢ Teniendo en cuenta su existencia física propia o no :
➢ E.D. físicas: Filas y arreglos
➢ E.D. Abstractas: Listas, Pilas, Colas, Arboles y Grafos.
➢ Las estructuras físicas son aquellas que tienen existencia física propia
en el almacenamiento.
28/03/2024 9
Operaciones con arreglos
❑Es un conjunto finito de tamaño fijo y ordenado(índices) de datos
del mismo tipo(homogéneos) los arreglos pueden ser
unidimensionales(vector), bidimensionales(matriz) y
multidimensional.
28/03/2024 10
Operaciones con arreglos
❑El índice cero se denomina límite inferior(LI) y el último elemento
se denomina límite superior(LS), que viene hacer la cantidad
de elementos del arreglo -1
28/03/2024 11
Operaciones con arreglos
❑Para hacer el recorrido de los elementos del Arreglo nos
apoyaremos en la estructura repetitiva denominada for.
❑Para este ejemplo a un vector de 5 elementos se le asigna el
valor de 10.
for(i=0;i< =4;i++) {
N[i]=10; }
para una matriz de 3 x 4 y se asigna el valor de 20 a cada elemento.
for(i=0; i<=2;i++) {
for(j=0;j<= 3;i++){
N[i][j]=20; }
28/03/2024 12
Ejemplo 01
28/03/2024 13
Solución ejemplo01
28/03/2024 14
Mejora a la solución del ejemplo 01
28/03/2024 15
Ejemplo 02
Dados 5 números y un divisor determinar cuántos números múltiplos del
diviso hay en los cinco números ingresados.
Entrada
Cinco números n[5]
Divisor(div)
Salida
cantidad(c)
28/03/2024 16
Solución ejemplo 02
28/03/2024 17
Ejemplo03
Leer 4 números y almacenarlos en el vector “A” y leer otros cuatro
números y almacenarlos en “B”, determine cuantos números de A se
encuentran en B
Entrada:
4 números a[4], 4 números b[4]
Salida:
cantidad (c)
28/03/2024 18
Solución ejemplo 03
28/03/2024 19
Ejercicios Propuestos
❑ Leer cuatro números y almacenarlos en el vector “A” y leer
otros cuatro números y almacenarlos en “B”, determine
cuantos números de A son múltiplos de B, recuerde el
validar el ingreso de los datos(solo debe ingresar números).
28/03/2024 20
28/03/2024 21
Contenido.
Problema a Analizar
Una estructura es un tipo de dato compuesto A cada uno de los datos o elementos
que permite almacenar un conjunto de almacenados dentro de una estructura se
datos de diferente tipo. Los datos que les denomina miembros de esa estructura
contiene una estructura pueden ser de tipo y éstos pertenecerán a un tipo de dato
simple (caracteres, números enteros o de determinado
coma flotante etc.) O a su vez de tipo
compuesto (vectores, estructuras, listas, etc.).
Declaración de un estructura
struct nombre_estructura {
tipo_dato miembro1; tipo_dato
miembro2;
…
};
En esta declaración aclararemos que:
• struct: es una palabra reservada de C++ que indica que los
elementos que vienen agrupados a continuación entre llaves
componen una estructura.
Declaración de una estructura
28/03/2024 28
Declaración de un estructura
• La declaración de variables de un
determinado tipo de estructura de datos
se puede realizar de dos modos:
• Primera: Incluir en la propia definición de la
estructura aquellas variables que se van an
emplear en el programa. Esta declaración
de variables implica que el ámbito en el
que éstas son reconocidas será el mismo
que el de la declaración del tipo de dato
estructura. La sintaxis es:
28/03/2024 30
Declaración de variables
En estos casos, y si no se van a declarar más variables de este tipo de
dato en otros lugares del programa, el nombre_estructura es
innecesario.
Apilamiento de la variable empleado de tipo struct
Declaración de variables
28/03/2024 33
Estructuras anidadas
Podemos encontrarnos con una estructura que tenga varios datos, y que a su vez
ocurra que uno de esos datos esté formado por varios datos más sencillos. Para
hacerlo desde C++, incluiríamos un “struct” dentro de otro, así:
struct fechaNacimiento int main()
{ {
int dia; struct datosPersona persona;
int mes; persona.inicial = 'I';
int anio; persona.diaNacimiento.mes =
}; 8;
struct datosPersona persona.nota = 7.5;
{ cout << "La nota es " <<
char inicial; persona.nota;
struct _getch();
fechaNacimiento return 0;
diaNacimiento; }
float nota;
};
Typedef
28/03/2024 35
Typedef
De la misma forma,
podemos usar typedef para
crear alias para estructuras.
Por ejemplo:
• typedef struct { /* definicion de la
estructura t_datos */ float sueldo;
• char categoria; int codigopostal;
} t_datos;
• /*t_datos es el alias para la
estructura */
28/03/2024 36
Declaración y creación de Arreglos de estructuras
typedef struct
{
char inicial;
int edad;
float nota;
} tdatos Persona;
Los datos de las personas son: sexo, día de nacimiento, mes de nacimiento y
año de nacimiento.
Precondición y Postcondición
La técnica pre/post se basa en considerar un algoritmo como una
caja negra en la que se permite observar los parámetros de entrada y
los de salida.
El algoritmo funciona como una máquina de estados finito, en la que
el estado inicial está descrito por el valor de los parámetros de
entrada, y después de transaccionar por los demás estados (un
estado por cada paso del algoritmo) en un tiempo que no es
relevante para la especificación, se llega al estado final en la que los
parámetros de salida contienen los resultados esperados.
Resolución de problemas
• Precondición y Postcondición
• Ejemplo:
• Se requiere especificar un algoritmo para hallar el cociente por
defecto y el módulo de dos enteros
Entrada: a: dividendo
b: divisor
Salida:
q: cociente r: residuo
Resolución de problemas
❑ Precondición y Postcondición
Podríamos especificar el algoritmo con:
❑ Precondición: A: {b <> 0}
❑ Postcondición: B: {a = b * q + r}
❑ Pero no calcula lo esperado (no está bien especificado el algoritmo).
❑ Dado a y b, existen dos números naturales que satisfacen lo que exigimos para
q y r.
❑ Precondición: A: {(a > 0 ) A (b > 0)}
❑ Postcondición: B: {(a = b * q + r) A (0 < r) A (r < b)
Abstracción
❑ La abstracción es un proceso mental que permite concentrarse en
lo general y fundamental y pasar por alto el detalle, lo que
simplifica el análisis, y lo centra en lo relevante.
28/03/2024 54
UNIVERSIDAD RICARDO PALMA
FACULTAD DE INGENIERÍA
ESCUELA PROFESIONAL DE INGENIERÍA INFORMÁTICA
GRACIAS
28/03/2024 55