Lenguajes de Programación - Arreglos
Lenguajes de Programación - Arreglos
Lenguajes de Programación - Arreglos
(IA-044)
Lenguajes de programación – Estructuras de datos internas
https://medium.com/laboratoria-how-to/programación-estructurada-7fe400bae43d
Lenguajes de programación
Importación Declaración
Entrada Proceso Salida
de librerías de variables
Lenguajes de programación – Estructuras de datos internas
Las estructuras de datos más comunes son los vectores o arreglos y las
matrices, aunque hay otras un poco más diferentes como son el struct y
las enumeraciones.
¿Cómo se declaran?
struct producto
{
int cantidad; //cuantos hay en inventario
string nombre; //Denominación nominal del producto
};
Lenguajes de programación – Estructuras de datos internas
PRODUCTO
struct producto
{
int cantidad;
string nombre;
float precio;
};
Lenguajes de programación – Estructuras de datos internas
¿Cómo usarlas?
1. Se declara la estructura.
2. El nombre de la estructura se usa como
cualquier tipo de variable.
Lenguajes de programación – Estructuras de datos internas
struct producto
{
int cantidad; //cuantos hay en stock
string nombre; //Denominación nominal del producto
float precio; //Valor en Lempiras
};
int main()
{
producto tienda1; //declaro una variable llamada tienda1 del tipo producto
return 0;
}
Lenguajes de programación – Estructuras de datos internas
¿Cómo usarlas?
1. Se declara la estructura.
2. El nombre de la estructura se usa como
cualquier tipo de variable.
3. Para acceder a las variables primitivas se
utiliza un separador de alcance en c++ es el
punto seguido del nombre de la variable
primitiva
Lenguajes de programación – Estructuras de datos internas
struct producto
{
int cantidad; //cuantos hay en stock
string nombre; //Denominación nominal del producto
float precio; //Valor en Lempiras
};
int main()
{
producto tienda1;
tienda1.nombre = “Televisor”;
tienda1.cantidad = 15;
tienda1.precio = 1000.00;
return 0;
}
Lenguajes de programación – Estructuras de datos internas
Parcial 2
Jornalización
1. Estructura de datos internas
2. Arreglos Unidimensionales
3. Arreglos Bidimensionales
4. Arreglos Multidimensionales
5. Creación de tablas virtuales.
6. Uso de funciones implementando arreglos :
métodos de búsqueda y ordenamiento
7. Estructura de Registros
8. Arreglos como miembros de registros
9. Arreglos de registros.
10. Uso de registros implementando funciones
11. Punteros
Diferencias:
vector es un arreglo undimensional, es una zona de
almacenamiento contiguo, que contiene una serie de
elementos del mismo tipo.
Lenguajes de programación – Arreglos unidimensionales
TIPO DE LA VARIABLE
integer
C++
Tipo nombreArreglo[tamañoArreglo];
int temperaturas[10];
double promedios[45];
Lenguajes de programación – Arreglos unidimensionales
struct producto
{
C++ int
string
cantidad; //cuantos hay en stock
nombre; //Denominación nominal del producto
float precio; //Valor en Lempiras
};
producto tienda1[100];
tienda1[10].nombre;
tienda1[10].cantidad;
Lenguajes de programación – Arreglos unidimensionales
EJEMPLOS (matrices):
Ventas Ventas Ventas Ventas Ventas
Lunes Martes Miércoles Jueves Viernes
Tienda1
Tienda2
Tienda3
TIenda4
EJEMPLOS (matrices):
Población Extensión Cantidad Cantidad de Total de
territorial de oro en universidades informático
reservas s
País1
País2
País3
País4
Cada país posee una serie de datos asociados que
somos nosotros los que le damos significado
Lenguajes de programación – Arreglos bidimensionales
Ejemplo
(matrices):
Lenguajes de programación – Arreglos bidimensionales
https://live.staticflickr.com/3821/9455899075_0bf46aba25_b.jpg
Lenguajes de programación – Arreglos bidimensionales
https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo
%2F576410632_1280x2276.jpg&src1=https%3A%2F%2Ff.vimeocdn.com%2Fimages_v6%2Fshare
%2Fplay_icon_overlay.png
Lenguajes de programación – Arreglos bidimensionales
https://live.staticflickr.com/3711/10330168576_07842aa503_b.jpg
Lenguajes de programación – Arreglos bidimensionales
https://live.staticflickr.com/3711/10330168576_07842aa503_b.jpg
Lenguajes de programación – Arreglos bidimensionales
https://live.staticflickr.com/4144/4952550193_2eb23e71c3_b.jpg
Lenguajes de programación – Arreglos bidimensionales
https://riocinefilo.files.wordpress.com/2015/12/captura-de-pantalla-4.png
Lenguajes de programación – Arreglos tridimensionales
ES
C1 C2 C3
DC valor Valor Valor
(Honduras)
Lenguajes de programación – Arreglos multidimensionales
https://pm1.narvii.com/6692/50cd486499c9817af0d8eb69470e294b64da315c_hq.jpg
Lenguajes de programación – Arreglos multidimensionales
https://i.ytimg.com/vi/iGO12Z5Lw8s/maxresdefault.jpg
Lenguajes de programación – Arreglos multidimensionales
1D - Universidad
2D - cada universidad posee Campus
3D - Cada campus posee edificio
4D - Cada edificio posee Aulas
Aulas
C1 50
C2 40
TDA son las siglas de Tipo de Datos Abstracto, visto acá como structs
Lenguajes de programación – Arreglos
PSINT
Definir num como entero;
Dimension num[5];
Lenguajes de programación – Arreglos
PSINT
Definir num como entero;
Dimension num[5];
PASCAL
var nombredelavariable : array [indiceinicial..indicefinal] of
type;
C++
Tipo_dato nombredelarreglo[tamañodimension];
int arreglo[10];
float arreglo[5][3];
double arreglo[5][2][3];
Lenguajes de programación – Arreglos
C++
TDA son las siglas de Tipo de Datos Abstracto, visto acá como structs
Lenguajes de programación – Arreglos
Int notas[4]
NOTAS
int
Tipo
NOTAS
int Elemento
índice
[0] [1] [2] [3]
Lenguajes de programación – Arreglos unidimensionales
Tipo
NOTAS
int Elemento
Int a[10];
Digamos que queremos leer ese
arreglo
a = { a 0, a 1, a 2, a 3, a 4, a 5, a 6, a 7, a 8, a 9}
Lenguajes de programación – Arreglos unidimensionales
Voy a omitir el
cout<<“Ingrese el elemento x: ”;
Cin>>a[0];
cin>>a[1];
Cin>>a[2]; ¿FUNCIONA ESTA
Cin>>a[3];
cin>>a[4];
LECTURA?
cin>>a[5];
cin>>a[6];
cin>>a[7];
cin>>a[8];
cin>>a[9];
Lenguajes de programación – Arreglos unidimensionales
Voy a omitir el
cout<<“Ingrese el elemento x: ”;
Cin>>a[0]; ¿FUNCIONA ESTA LECTURA?
cin>>a[1]; Son 10 cout y 10 cin (20 líneas de código para
Cin>>a[2]; leer los elementos del arreglo)
Cin>>a[3];
cin>>a[4]; ¿Qué pasa si debo leer 1000 números?
cin>>a[5]; ¿Voy a escribir 2000 líneas de código?
cin>>a[6];
cin>>a[7];
cin>>a[8];
cin>>a[9];
Lenguajes de programación – Arreglos unidimensionales
Voy a omitir el
cout<<“Ingrese el elemento x: ”;
Cin>>a[0]; El índice es el único elemento que es diferente.
cin>>a[1]; El índice me controla la posición, pero todo lo
Cin>>a[2]; demás es igual el cin>>[ ] no cambiará
Cin>>a[3];
cin>>a[4];
cin>>a[5];
cin>>a[6];
cin>>a[7];
cin>>a[8];
cin>>a[9];
Lenguajes de programación – Arreglos unidimensionales
Voy a omitir el
cout<<“Ingrese el elemento x: ”;
Cin>>a[0]; Para un arreglo de n números estamos
cin>>a[1]; obligados a repetir las mismas instrucciones n
Cin>>a[2]; veces.
Cin>>a[3];
cin>>a[4]; REPETIR INSTRUCCIONES
cin>>a[5];
cin>>a[6];
cin>>a[7]; CICLOS!!!!!!!!
cin>>a[8];
cin>>a[9];
Lenguajes de programación – Arreglos unidimensionales
Voy a omitir el
cout<<“Ingrese el elemento x: ”;
Cin>>a[0]; Puedo usar un ciclo determinista (FOR) ya que
cin>>a[1]; se cuantas veces debo repetir la instrucción
Cin>>a[2];
Cin>>a[3];
cin>>a[4];
cin>>a[5];
cin>>a[6];
cin>>a[7];
cin>>a[8];
cin>>a[9];
Lenguajes de programación – Arreglos unidimensionales
Voy a omitir el
cout<<“Ingrese el elemento x: ”;
Cin>>a[0]; Puedo usar un ciclo determinista (FOR) ya que
cin>>a[1]; se cuantas veces debo repetir la instrucción
Cin>>a[2];
Cin>>a[3]; ¿Qué pasa con el cout?
cin>>a[4];
cin>>a[5];
cin>>a[6];
cin>>a[7];
cin>>a[8];
cin>>a[9];
Lenguajes de programación – Arreglos unidimensionales
Lenguajes de programación – Arreglos unidimensionales
7.10 Utilice un arreglo unidimensional para resolver el siguiente problema. Una compañía paga
a sus vendedores por comisión. Los vendedores reciben $200 por semana más 9% de sus
ventas totales de esa semana. Por ejemplo, un vendedor que acumule $5000 en ventas en una
semana, recibirá $200 más 9% de $5000, o un total de $650. Escriba un programa (utilizando
un arreglo de contadores) que determine cuántos vendedores recibieron salarios en cada uno
de los siguientes rangos (suponga que el salario de cada vendedor se trunca a una cantidad
entera):
a) $200-299
b) $300-399
c) $400-499
d) $500-599 Supongamos que existen 15 vendedores.
e) $600-699
f) $700-799
g) $800-899
h) $900-999
i) $1000 en adelante
TDA son las siglas de Tipo de Datos Abstracto, visto acá como structs
Lenguajes de programación – Arreglos Bidimensionales
PSINT
Definir num como entero;
Dimension num[5,5];
2da dimensión
1era dimensión
COLUMNAS
FILAS
Lenguajes de programación – Arreglos Bidimensionales
C++
INT num[5][5];
2da dimensión
1era dimensión
COLUMNAS
FILAS
Lenguajes de programación – Arreglos Bidimensionales
MATRICES
a00 a01 a02 aij
a10 a11 a12
i = índice de fila
a20 a21 a22
j = índice de columna
Lenguajes de programación – Arreglos Bidimensionales
MATRICES
a00 a01 a02 aij
A es una matriz
de 3 x 3 es decir
3 filas y
a10 a11 a12
3 columnas i = índice de fila
a20 a21 a22
j = índice de columna
Lenguajes de programación – Arreglos Bidimensionales
MATRICES
a00 a01 a02 aij
A es una matriz
de 2 x 3 es decir
2 filas y
a10 a11 a12
3 columnas i = índice de fila
j = índice de columna
Lenguajes de programación – Arreglos Bidimensionales
MATRICES
a00 a01 a02 aij
A es una matriz
de 2 x 3 es decir
2 filas y
a10 a11 a12
3 columnas i = índice de fila
j = índice de columna
Vemos que i va de 0 a 1 porque solo son 2 filas
Vemos que j va de 0 a 2 porque solo son 3 columnas
Lenguajes de programación – Arreglos Bidimensionales
Para recorrer
a00 a01 a02
a10 a11 a12
Tenemos que ir elemento por elemento al
igual que con los vectores con la diferencia
que acá tenemos mas de una fila, un vector
solo era una fila, una matriz posee mas de
una fila
Lenguajes de programación – Arreglos Bidimensionales
Hospital 1
Habitación 4
del edificio 3
del hospital 2
Hospital 2
H5
H4
Hospital 3
H3
H2
Edificio1
H1
Edificio 2
Edificio 3
Lenguajes de programación – Arreglos Bidimensionales
1. Ingresar paciente
1. Leer el tipo de especialidad
2. Solicitar habitación vacía (uno da código de edificio y luego
habitación. Ejemplo: 1, 3 denota edificio 1 habitación 3)
3. Crear la reserva guardando en la habitación el código del paciente y
dándole al paciente el código de la habitación.
Lenguajes de programación – Arreglos Bidimensionales
1. Ingresar paciente
2. Mostrar habitaciones (disponibles y ocupadas):
1. Por hospital.
2. En general.
Parcial 2
Jornalización
1. Estructura de datos internas
2. Arreglos Unidimensionales
3. Arreglos Bidimensionales
4. Arreglos Multidimensionales
5. Creación de tablas virtuales.
6. Uso de funciones implementando arreglos :
métodos de búsqueda y ordenamiento
7. Estructura de Registros
8. Arreglos como miembros de registros
9. Arreglos de registros.
10. Uso de registros implementando funciones
11. Punteros
Lenguajes de programación – Tablas virtuales
Lenguajes de programación – Tablas virtuales
CARDIOLOGÍA
H/E E1 E2 E3
Hospital 1
H1 0 13 0
Hospital 2
H2 40 25 11
H
H
5 H3 30 43 0
Hospital 3 4
H4 31 0 19
H
H 3
Edificio1 2
H
Edificio 2 1
Edificio 3 H5 27 0 0
Parcial 2
Jornalización
1. Estructura de datos internas
2. Arreglos Unidimensionales
3. Arreglos Bidimensionales
4. Arreglos Multidimensionales
5. Creación de tablas virtuales.
6. Uso de funciones implementando arreglos :
métodos de búsqueda y ordenamiento
7. Estructura de Registros
8. Arreglos como miembros de registros
9. Arreglos de registros.
10. Uso de registros implementando funciones
11. Punteros
Lenguajes de programación – Funciones Implementando Arreglos
http://ejercicioscpp.blogspot.com/2013/11/pasar-array-a-funcion-parametro-c.html
Lenguajes de programación – Funciones Implementando Arreglos
http://ejercicioscpp.blogspot.com/2013/11/pasar-array-a-funcion-parametro-c.html
Lenguajes de programación – Funciones Implementando Arreglos
Lenguajes de programación – Funciones Implementando Arreglos
Lenguajes de programación – Funciones Implementando Arreglos
Recordemos que ;
indica al compilador
donde termina la
sentencia, puse las
funciones a la par para
que se hiciera pequeña
la diapositiva pero lo
correcto es una por
línea
Lenguajes de programación – Funciones Implementando Arreglos
Lenguajes de programación – Funciones Implementando Arreglos
BÚSQUEDA Y ORDENAMIENTO
Para buscar:
1. El arreglo debe estar lleno
2. Ocupamos tener el valor a buscar
3. Recorremos el arreglo y vamos comparando el elemento con el valor buscado
4. Si hay una coincidencia se muestra la posición del arreglo en la que se encontró
y, dependiendo de lo que pidan podemos dejar de buscar o seguir buscando y
mostrar al final todas las posiciones donde se encontró el valor y el total de
veces que se ha encontrado.
BÚSQUEDA Y ORDENAMIENTO
Para buscar:
1. Algoritmos
1. Secuencial
2. Binaria
Lenguajes de programación – Funciones Implementando Arreglos
BÚSQUEDA Y
ORDENAMIENTO
Búsqueda Secuencial
https://www.inf.utfsm.cl/~noell/IWI-131-p1/Tema8b.pdf
Lenguajes de programación – Funciones Implementando Arreglos
BÚSQUEDA Y
ORDENAMIENTO
Búsqueda Binaria
https://www.inf.utfsm.cl/~noell/IWI-131-p1/Tema8b.pdf
Lenguajes de programación – Funciones Implementando Arreglos
BÚSQUEDA Y ORDENAMIENTO
Para Ordenar:
1. Definir criterio (ascendente, descendente)
2. Recorremos el arreglo y vamos comparando el elemento actual con el siguiente
y depende del criterio ir haciendo intercambio.
3. Recorrer el arreglo hasta que todos los elementos satisfagan el criterio.
BÚSQUEDA Y ORDENAMIENTO
Para Ordenar:
1. Burbuja
2. QuickSort
;)
Parcial 2
Jornalización
1. Estructura de datos internas
2. Arreglos Unidimensionales
3. Arreglos Bidimensionales
4. Arreglos Multidimensionales
5. Creación de tablas virtuales.
6. Uso de funciones implementando arreglos :
métodos de búsqueda y ordenamiento
7. Estructura de Registros
8. Arreglos como miembros de registros
9. Arreglos de registros.
10. Uso de registros implementando funciones
11. Punteros
Lenguajes de programación – Estructura de Registro
PRODUCTO
struct producto
{
int cantidad;
string nombre;
float precio;
};
Ya los vimos un struct es un arreglo donde los valores son de diverso tipo.
Lenguajes de programación – Arreglos como miembros de registro
Estudiante
0 1 2 3 xFBB120CE5 x0000AAF
struct estudiante
{
int notas[4];
string nombre;
float promedio;
};
Lenguajes de programación – Arreglos como miembros de registro
struct estudiante
{
int notas[4];
string nombre;
float promedio;
};
Estudiante alumno;
.
.
.
Cin>>alumno.notas[0];
Cin>>alumno.notas[1];
Cin>>alumno.notas[2];
Cin>>alumno.notas[3];
Cin>>alumno.nombre;
Lenguajes de programación – Arreglos de registros
struct estudiante
{
int notas[4];
string nombre;
float promedio;
};
Estudiante alumno[10];
.
.
.
Cin>>alumno[0].notas[0];
Cin>>alumno[0].notas[1];
Cin>>alumno[0].notas[2];
Cin>>alumno[0].notas[3];
Cin>>alumno[0].nombre;
Lenguajes de programación – Arreglos de registros
1. Crear una estructura con las siguientes características:
1. Se llama estudiante
2. El estudiante posee número de cuenta, un número de 3 cifras (000- 999)
3. El estudiante posee notas de exámenes (arreglo, no hay números negativos ni mayores a cien)
4. El estudiante posee promedio (sin decimales)
2. Hacer un programa para llevar el control de 10 alumnos, para todos ellos:
1. Leer número de cuenta
1. No pueden haber dos número de cuenta iguales
2. Leer cuatro notas
3. Hacer cálculo de promedio de todos los alumnos.
4. Ordenar los alumnos de mayor a menor promedio y mostrarlos (cuenta, n1, n2, n3, n4, promedio) usar setw
5. Mostrar un menú:
1. Promedio menor a, muestra una tabla con los alumnos cuyo promedio es menor al ingresado por el
usuario
2. Promedio mayor a. muestra una tabla con los alumnos cuyo promedio es mayor al ingresado por el
usuario
3. Tabla de frecuencia por rango de promedio con su gráfico usando barras horiozntales al final del ultimo
asterisco poner la cantidad de estudiantes en ese rango:
1. [0 – 64]
2. [64 - 79]
3. [80 – 89]
4. [90 – 100]
4. Buscar y mostrar un estudiante.
5. Salir
Parcial 2
Jornalización
1. Estructura de datos internas
2. Arreglos Unidimensionales
3. Arreglos Bidimensionales
4. Arreglos Multidimensionales
5. Creación de tablas virtuales.
6. Uso de funciones implementando arreglos :
métodos de búsqueda y ordenamiento
7. Estructura de Registros
8. Arreglos como miembros de registros
9. Arreglos de registros.
10. Uso de registros implementando funciones
11. Punteros
Lenguajes de programación – Arreglos de registros
1. Crear una estructura con las siguientes características:
1. Se llama estudiante
2. El estudiante posee número de cuenta, un número de 3 cifras (000- 999)
3. El estudiante posee notas de exámenes (arreglo, no hay números negativos ni mayores a cien)
4. El estudiante posee promedio (sin decimales)
2. Hacer un programa para llevar el control de 10 alumnos, para todos ellos:
1. Leer número de cuenta
1. No pueden haber dos número de cuenta iguales
2. Leer cuatro notas
3. Hacer cálculo de promedio de todos los alumnos.
4. Ordenar los alumnos de mayor a menor promedio y mostrarlos (cuenta, n1, n2, n3, n4, promedio) usar setw
5. Mostrar un menú:
1. Promedio menor a, muestra una tabla con los alumnos cuyo promedio es menor al ingresado por el usuario
2. Promedio mayor a. muestra una tabla con los alumnos cuyo promedio es mayor al ingresado por el usuario
3. Tabla de frecuencia por rango de promedio con su gráfico usando barras horiozntales al final del ultimo asterisco poner la cantidad de estudiantes en ese rango:
1. [0 – 64]
2. [64 - 79]
3. [80 – 89]
4. [90 – 100]
4. BUScar y mostrar alumno
5. Salir
Funciones:
Inicializar alumnos, todas sus notas y promedios en cero.
Buscar y mostrar alumno
Leer datos de alumno
Cálculo de promedio
Dibujar asteriscos
Mostrarpromediomayora
mostrarpromediomenora
Parcial 2
Jornalización
1. Estructura de datos internas
2. Arreglos Unidimensionales
3. Arreglos Bidimensionales
4. Arreglos Multidimensionales
5. Creación de tablas virtuales.
6. Uso de funciones implementando arreglos :
métodos de búsqueda y ordenamiento
7. Estructura de Registros
8. Arreglos como miembros de registros
9. Arreglos de registros.
10. Uso de registros implementando funciones
11. Punteros (pendiente de subir)