Lenguajes de Programación - Arreglos

Descargar como pptx, pdf o txt
Descargar como pptx, pdf o txt
Está en la página 1de 118

Lenguajes de Programación 1

(IA-044)
Lenguajes de programación – Estructuras de datos internas

setlocale(LC_CTYPE, "Spanish"); //me permita tildes


Parcial 2
Jornalización
1. Funciones
2. Estructura de datos internas
3. Arreglos Unidimensionales
4. Arreglos Bidimensionales
5. Arreglos Multidimensionales
6. Creación de tablas virtuales.
7. Uso de funciones implementando arreglos :
métodos de búsqueda y ordenamiento
8. Estructura de Registros
9. Arreglos como miembros de registros
10. Arreglos de registros.
11. Uso de registros implementando funciones
12. Punteros
Lenguajes de programación

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 son colecciones de elementos de datos


relacionados.

TIPOS DE DATOS PRIMITIVOS -> ESTRUCTURAS (TAD, ARREGLOS, MATRICES, ENUMERACIONES)


Lenguajes de programación – Estructuras de datos internas

Las estructuras de datos en C++ se pueden entender como un tipo de


dato compuesto (no complejo).

Las estructuras de datos permiten almacenar de manera ordenada una


serie de valores dados en una misma variable.

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.

TIPOS DE DATOS PRIMITIVOS -> ESTRUCTURAS (TAD, ARREGLOS, MATRICES, ENUMERACIONES)


Lenguajes de programación – Estructuras de datos internas

¿Cómo se declaran?

DEPENDEN DEL LENGUAJE

Crear una “variable/estructura” con muchas variables dentro de si misma


para luego acceder a cada una de sus partes.
Lenguajes de programación – Estructuras de datos internas

¿Cómo se declaran? C++ struct producto


{
int cantidad; //cuantos hay en stock
Struct <nombre> string nombre; //Denominación nominal del producto
{ float precio; //Valor en Lempiras
};
variables primitivas;
};
Lenguajes de programación – Estructuras de datos internas

struct producto
{
int cantidad; //cuantos hay en inventario
string nombre; //Denominación nominal del producto

float precio; //Valor en Lempiras

};
Lenguajes de programación – Estructuras de datos internas

PRODUCTO

Cantidad Nombre Precio


int String float

xFFA102AE5 xFBB120CE5 x0000AAF

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

Un arreglo es una estructura de


datos donde todos los elementos
que la componen son
exactamente del mismo tipo.
Lenguajes de programación – Arreglos unidimensionales

Podemos tener arreglos de


cualquier tipo incluyendo
estructuras.
Lenguajes de programación – Arreglos unidimensionales

Un arreglo puede representarse así:


NOMBRE DE LA VARIABLE

TIPO DE LA VARIABLE

xFFA10 x0000A xFBB12


0 1 2
2AE5 AF 0CE5
Lenguajes de programación – Arreglos unidimensionales

Un arreglo puede representarse así:


Temperaturas

integer

xFFA10 x0000A xFBB12


0 1 2
2AE5 AF 0CE5
Lenguajes de programación – Arreglos unidimensionales

Un arreglo posee nombre, tipo y una


serie de posiciones para cada uno de
los elementos, las mismas se llaman
subíndices.
Lenguajes de programación – Arreglos unidimensionales

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

Un arreglo puede tener dimensiones,


esto es la cantidad de espacios en los
que se interpreta.
Lenguajes de programación – Arreglos unidimensionales

Un arreglo unidimensional posee una


sola dimensión:

VECTORES, por ejemplo:


Josué, Johanna, Rubenia, Miriam
35,27,33,55,15
tienda1(manzana,5.00,15), tienda1(peras,15.00,20),tienda1(uvas,50.00,15)
Lenguajes de programación – Arreglos bidimensionales

Un arreglo bidimensional posee dos


dimensiones (matrices):
Lenguajes de programación – Arreglos bidimensionales

Un arreglo bidimensional posee dos


dimensiones (matrices):
Nota1 Nota2 Nota3 Nota4
Estudiante1
Estudiante2
Estudiante3
Estudiante4
Lenguajes de programación – Arreglos bidimensionales

Un arreglo bidimensional posee dos


dimensiones (matrices):
Nota1 Nota2 Nota3 Nota4 Una dimensión las notas
Estudiante1 Una dimensión los estudiantes
Estudiante2
A cada estudiante le corresponden tantas
Estudiante3
notas como elementos en esa dimensión
Estudiante4
Lenguajes de programación – Arreglos bidimensionales

EJEMPLOS (matrices):
Ventas Ventas Ventas Ventas Ventas
Lunes Martes Miércoles Jueves Viernes
Tienda1
Tienda2
Tienda3
TIenda4

Ventas de cada tienda por día de semana


Lenguajes de programación – Arreglos bidimensionales

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

EN UN ARREGLO SIN IMPORTAR


EL NÚMERO DE DIMENSIONES
TODOS LOS DATOS SON DEL
MISMO TIPO*
*aunque hay lenguajes que son excepción a la regla
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

Un arreglo tridimensional posee tres


dimensiones (cubos):
Lenguajes de programación – Arreglos tridimensionales

NO hay que temer por ser una


dimensión más.
P puede ser país
M puede ser municipio
C1, c2, C3 Pueden ser cantidad de personas, cantidad de
universidades, cantidad de hoteles

En este cubo cada país tiene 3


municipios y cada municipio solo tres
valores asociados
Lenguajes de programación – Arreglos tridimensionales

NO hay que temer por ser una


dimensión más.
M1 M2 M3
Honduras Comayagua SPS Distrito
Com SPS DC central

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

15 son las aulas en el edificio c2 de CU de la UNAH


20 son las aulas en el edificio stark de sps de la UNITEC
Lenguajes de programación – Arreglos multidimensionales
1D - Universidad
2D - cada universidad posee Campus
3D - Cada campus posee edificio
4D - Cada edificio posee Aulas, pisos, rampas
Campus 1 Campus 2 M3
Universidad 1 CU CURLA CUROC
Universidad 2 SPS Teg Danli

Edificio 1 Edificio 2 Edificio 3


CU C1 C2 C3
CURLA Biblioteca Registro Lab5

Aulas Pisos Rampas


C1 50 3 1
C2 40 4 0
Lenguajes de programación – Arreglos multidimensionales
1D - Universidad
2D - cada universidad posee Campus
3D - Cada campus posee edificio
4D - Cada edificio posee Aulas
5D - Cada aula posee ventanas, código, tomacorriente

Aulas
C1 50
C2 40

Ventanas Codigo tomacorrientes


Aula 1, c1 5 101 4
Aula 2, c1 4 102 2

SON AULAS PARA EL C1


Lenguajes de programación – Arreglos

¿Cómo los implementamos?


Depende del lenguaje la implementación de los arreglos, sin
embargo se coincide en que
Para definir un arreglo es necesario indicar:
1. Tipo (primitivo o TDA).
2. Nombre
3. Cantidad de dimensiones indicando el tamaño de cada una de
ellas

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];

definir num como entero;


dimension num[3,3];
Lenguajes de programación – Arreglos

PASCAL
var nombredelavariable : array [indiceinicial..indicefinal] of
type;

Var matriz2D = array [1..10] of integer;

PASCAL PERMITE CREAR TIPOS PARA LUEGO USARLOS


SI NECESITAMOS MUCHAS MATRICES DEL MISMO TIPO
Lenguajes de programación – Arreglos

C++
Tipo_dato nombredelarreglo[tamañodimension];
int arreglo[10];
float arreglo[5][3];
double arreglo[5][2][3];
Lenguajes de programación – Arreglos

C++

string vector[5] = {"5", "hola", "2.7", "8,9", "adios"};

int vector2[] = {1,2,3,4,10,9,80,70,19};

DEPENDE DEL COMPILADOR ACEPTAR ESTAS FORMAS


Lenguajes de programación – Arreglos

¿Cómo los usamos?


Para acceder a cada una de las posiciones del arreglo basta con
colocar el nombre del arreglo y entre corchetes el valor EN LA
POSICIÓN al que deseamos acceder.

TDA son las siglas de Tipo de Datos Abstracto, visto acá como structs
Lenguajes de programación – Arreglos

¿Cómo los usamos?


int notas[4];

Leemos los cuatro elementos Escribir los 4 elementos:


cin>>notas[0]; cout<<notas[0];
cin>>notas[1]; cout<<notas[1];
cin>>notas[2]; cout<<notas[2];
cin>>notas[3]; cout<<notas[3];

TDA son las siglas de Tipo de Datos Abstracto, visto acá


como structs
Lenguajes de programación – Arreglos unidimensionales

Int notas[4]
NOTAS
int

[0] [1] [2] [3]


Lenguajes de programación – Arreglos unidimensionales

Int notas[4] Nombre

Tipo
NOTAS
int Elemento

índice
[0] [1] [2] [3]
Lenguajes de programación – Arreglos unidimensionales

Int notas[4] Nombre

Tipo
NOTAS
int Elemento

[0] [1] [2] [3]


índice
Algunos autores le llaman subíndice porque en matemáticas es
elementosubíndice
Lenguajes de programación – Arreglos unidimensionales

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

Se debe mostrar rango salarial, cantidad de empleados en ese rango y asteriscos


Como gráfico de barras
Lenguajes de programación – Arreglos unidimensionales
Lenguajes de programación – Arreglos unidimensionales
Lenguajes de programación – Arreglos unidimensionales
Lenguajes de programación – Bidimensionales

¿Cómo los implementamos?


Depende del lenguaje la implementación de los arreglos, sin
embargo se coincide en que
Para definir un arreglo es necesario indicar:
1. Tipo (primitivo o TDA).
2. Nombre
3. Cantidad de dimensiones indicando el tamaño de cada una de
ellas

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

a00 a01 a02


LEAMOS UNA MATRIZ a10 a11 a12
cin>>a[0][0];
cin>>a[0][1]; 12 instrucciones, si contamos los cout,
cin>>a[0][2]; para leer una matriz de 2x3, es decir que
se ocupan 2*filas*columnas líneas de
cin>>a[1][0]; código para leer una matriz sabiendo la
cin>>a[1][1]; cantidad de filas y columnas.
Una matriz de 5x8 posee 40 elementos,
cin>>a[1][2]; 80 instrucciones de lectura….
Lenguajes de programación – Arreglos Bidimensionales

a00 a01 a02


LEAMOS UNA MATRIZ a10 a11 a12
cin>>a[0][0]; Fila 0 aparece 3 veces porque hay 3
cin>>a[0][1]; columnas
Fila 1 aparece 3 veces porque hay 3
cin>>a[0][2]; columnas
cin>>a[1][0];
Solo hacemos dos veces esto porque
cin>>a[1][1]; solo hay dos filas
cin>>a[1][2];
Lenguajes de programación – Arreglos Bidimensionales

a00 a01 a02


LEAMOS UNA MATRIZ a10 a11 a12
2 filas
cin>>a[0][0]; For(int i = 0; i<2; i++)
cin>>a[0][1]; { 3 columnas
cin>>a[0][2]; for(int j=0; j<3; j++)
cin>>a[1][0]; {
cin>>a[1][1]; cin>>a[i][j]; //BINGO!!
cin>>a[1][2]; }
}
2 CICLOS FOR PORQUE SON 2 DIMENSIONES
Lenguajes de programación – Arreglos Bidimensionales

2 CICLOS FOR PORQUE SON 2 DIMENSIONES


Lenguajes de programación – Arreglos Bidimensionales

2 CICLOS FOR PORQUE SON 2 DIMENSIONES


Lenguajes de programación – Arreglos Bidimensionales

2 CICLOS FOR PORQUE SON 2 DIMENSIONES


Lenguajes de programación – Arreglos Multidimensionales

LEAMOS UNA MATRIZ ND


Vamos a necesitar tantos ciclos for como dimensiones tenga la matriz, una
matriz 3d ocupa 3 for anidados, una 6D ocupa 6 for anidados.

SIEMPRE ES LO MISMO UNO ES EL QUE LE DICE A LA COMPUTADORA CÓMO,


CUÁNDO Y QUÉ LEER
Lenguajes de programación – Arreglos Bidimensionales

Usted pertenece a una red de tres hospitales diferentes (uno especializado en


cardiología, otro en neurología y otro en gastroenterología), cada uno de
estos hospitales posee tres (3) edificios (E1, E2 y E3) y cada uno de ellos
cuenta con un número de habitaciones. De la siguiente forma:
Cardiología Neurología Gastroenterología
Edificio Cant. Habitaciones Edificio Cant. Habitaciones Edificio Cant. Habitaciones
E1 5 E1 5 E1 5
E2 5 E2 5 E2 5
E3 5 E3 5 E3 5
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

Ocupamos un programa que nos lleve el control de si las habitaciones están


vacías u ocupadas, si esta vacía el valor que almacenan es 0, si esta ocupada
lleva el número del expediente del paciente (un número de a lo más 3 cifras).
Existen los siguientes módulos:

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

Ocupamos un programa que nos lleve el control de si las habitaciones están


vacías u ocupadas, si esta vacía el valor que almacenan es 0, si esta ocupada
lleva el número del expediente del paciente (un número de a lo más 3 cifras).
Existen los siguientes módulos:

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

Arreglos obtenidos de consultas en arreglos multidimensionales.


Existe un arreglo real del que vamos a extraer información para
mostrar una tabla al usuario, esta tabla no existe realmente, es
virtual.

ES LA BASE PARA CONSULTAS EN BASES DE DATOS


Lenguajes de programación – Arreglos bidimensionales
Lenguajes de programación – Tablas Virtuales

De un cubo obteníamos tablas cuando sacábamos


los reportes por Hospital

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

Funciones implementando arreglos (C++)

Para pasar un array a una función:


- En la función se debe declarar el parámetro como un array del tipo adecuado. En los
arrays unidimensionales no es necesario especificar el tamaño por lo tanto aparecerán los
corchetes vacíos.
- En la llamada a la función a la que se envía el array, el nombre del array aparecerá solo,
sin corchetes ni índices
Los arrays en C++ se pasan siempre a las funciones por referencia. El nombre de un array
realmente es un puntero que contiene la dirección de memoria donde comienza el array, o lo
que es lo mismo, la dirección de memoria del primer elemento. Cuando se pasa un array a
una función, la función recibe la dirección de memoria donde se encuentra el primer
elemento del array. Por lo tanto, la función trabaja sobre el array original.
No es necesario utilizar el operador & en el paso de arrays a funciones para indicar que se
hace por referencia ya que siempre pasan por referencia.
Una función en C++ no puede devolver un array mediante la instrucción return.

http://ejercicioscpp.blogspot.com/2013/11/pasar-array-a-funcion-parametro-c.html
Lenguajes de programación – Funciones Implementando Arreglos

Funciones implementando arreglos (C++)


Función que recibe un array de dos elementos e intercambia el contenido de estos dos
elementos.

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

Modifique el programa para:


1. Declarar dos vectores A y B, A tiene dos elementos y B tiene 4
2. Una función para inicializar un vector en 0, recibe el vector y el número de
elementos.
3. Una función para leer los elementos de cada vector recibiendo el vector y la
cantidad de elementos que debe leer.
4. Una función para imprimir los elementos de un vector recibiendo el vector y
la cantidad de elementos a imprimir.
5. Una función que intercambie los elementos de dos en dos, es decir el 1 con el
segundo, el 3ero con el 4to, el 5to con el 6to, si el vector tiene número impar
entonces deja el último elemento sin moverlo.
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.

Podemos entonces, sabiendo la posición hacer reemplazos u otras operaciones


Lenguajes de programación – Funciones Implementando Arreglos

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

El arreglo debe estar ordenado


De menor a mayor

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.

Podemos entonces hacer búsquedas binarias, estimaciones, etc…


Lenguajes de programación – Funciones Implementando Arreglos

BÚSQUEDA Y ORDENAMIENTO

Para Ordenar:
1. Burbuja
2. QuickSort

QUEDAN PARA QUE USTEDES LO BUSQUEN.

;)
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

Cantidad Nombre Precio


int String float

xFFA102AE5 xFBB120CE5 x0000AAF

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

Notas Nombre Promedio


Int [4] String float

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)

También podría gustarte