0% encontró este documento útil (0 votos)
14 vistas7 páginas

Array

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
14 vistas7 páginas

Array

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Estructuras indexadas: Array (Parte 1 y 2)

Introducción a array
Un Array es una estructura de datos indexada que nos permite almacenar múltiples elementos del mismo tipo en
una sola variable. Cada elemento se identifica por su posición en el Array. En C++, los Arrays se declaran de la
siguiente manera:

tipo_de_dato nombre_del_array[tamaño];

Por ejemplo, si queremos declarar un Array de enteros de tamaño 5, lo haríamos de la siguiente manera:

int numeros[5];

Una vez que hemos declarado un Array, podemos acceder a cada uno de sus elementos mediante su posición. En
C++, los índices de los Arrays empiezan en 0. Por ejemplo, para acceder al primer elemento de nuestro Array de
enteros, lo haríamos de la siguiente manera:

numeros[0] = 10;

Podemos inicializar un Array al momento de su declaración, de la siguiente manera:

int numeros[5] = {10, 20, 30, 40, 50};

También podemos acceder al tamaño de un Array utilizando la función sizeof() :

int tamaño = sizeof(numeros) / sizeof(numeros[0]);

Ahora, para poner en práctica lo aprendido, vamos a realizar un ejercicio. Implementaremos un programa en C++
que solicite al usuario ingresar 5 números enteros, los almacene en un Array y posteriormente muestre por
pantalla la suma de todos ellos.

#include <iostream>

using namespace std;

int main() {
int numeros[5];
int suma = 0;

for(int i = 0; i < 5; i++) {


cout << "Ingrese el número " << i + 1 << ": ";
cin >> numeros[i];
}

for(int i = 0; i < 5; i++) {

Estructuras indexadas: Array (Parte 1 y 2) 1


suma += numeros[i];
}

cout << "La suma de los números ingresados es: " << suma << endl;

return 0;
}

Ejercicios

1. Se requiere un programa que permita al usuario ingresar el nombre y la edad de 5 personas. Luego, muestra
por pantalla el nombre y la edad de cada una de las personas.

a. Identifique las estructuras necesarias

b. Implemente el programa

2. Se requiere un programa que permita al usuario ingresar las notas de 5 estudiantes en 3 asignaturas
diferentes. Luego, muestra por pantalla la nota promedio de cada estudiante en las 3 asignaturas.

a. Identifique las estructuras necesarias

b. Implemente el programa

3. Se requiere un programa que permita al usuario ingresar la información de 10 libros, incluyendo su título, autor
y año de publicación. Luego, permite al usuario consultar todos los libros que se publicaron en un año en
particular que el usuario debe poner.

a. Identifique las estructuras necesarias

b. Implemente el programa

4. Se requiere un programa que permita al usuario ingresar las ventas diarias de una tienda durante una semana.
Luego, permite al usuario colocar un valor de ventas mínimo que se espera y debe mostrar por pantalla
cuantos días superan el valor mínimo colocado por el usuario

a. Identifique las estructuras necesarias

b. Implemente el programa

5. Se requiere un programa que permita al usuario ingresar los datos de una serie de estudiantes, incluyendo su
nombre, edad y calificaciones en 3 asignaturas diferentes. Luego, permite al usuario buscar un estudiante por
su nombre y mostrar su información completa.

a. Identifique las estructuras necesarias

b. Implemente el programa

Resolución (1)

Arrays como strings


En C++, una cadena de caracteres es simplemente un Array de caracteres. Podemos declarar una cadena de
caracteres de la siguiente manera:

char cadena[tamaño];

En donde tamaño es el número máximo de caracteres que queremos almacenar en la cadena. Si queremos
inicializar una cadena al momento de su declaración, podemos hacerlo de la siguiente manera:

char cadena[tamaño] = "texto";

En este caso, "texto" es la cadena que estamos inicializando. Siempre agrega un ultimo caracter nulo ( \0 ) al final
de la cadena para marcar el final de la cadena. Por lo cual, es necesario reservar ese caracter extra.

El valor nulo al final de la cadena nos sirve para saber la cantidad de caracteres que tiene la frase original. Por
ejemplo, podemos recorrer el array de caracteres hasta encontrar el caracter nulo ( \0 ) que indica el final de la
cadena, y contar la cantidad de caracteres recorridos. Aquí te dejo un ejemplo de cómo se puede hacer:

Estructuras indexadas: Array (Parte 1 y 2) 2


#include <iostream>

using namespace std;

int main() {
char cadena[100];

cout << "Ingrese una cadena de caracteres: ";


cin >> cadena;

int tamaño = 0;

// Recorremos el arreglo de caracteres hasta encontrar el caracter nulo


while (cadena[tamaño] != '\0') {
tamaño++;
}

cout << "La cadena ingresada tiene " << tamaño << " caracteres." << endl;

return 0;
}

En este ejemplo, se utiliza un ciclo while para recorrer el arreglo de caracteres cadena , y se incrementa la variable
tamaño en cada iteración hasta encontrar el caracter nulo. Luego, se muestra por pantalla el tamaño de la cadena

obtenido.
También podemos acceder a un carácter específico de una cadena utilizando el índice del carácter en el Array.
Por ejemplo, si queremos acceder al segundo carácter de nuestra cadena, lo haríamos de la siguiente manera:

char segunda_letra = cadena[1];

También podemos utilizar un bucle para recorrer todos los caracteres de una cadena:

for(int i = 0; i < tamaño; i++) {


cout << cadena[i];
}

Problema del cin con espacios (Especifico de c++)


El método cin tradicional corta la entrada en el primer espacio que encuentra. Para leer una línea completa,
incluyendo espacios, podemos usar [Link] para un array de caracteres ( char[] ) o getline con string .

Usando [Link] con char[] :

#include <iostream>
using namespace std;

int main() {
char cadena[100];

cout << "Ingrese una cadena de caracteres: ";


[Link](cadena, 100); // Lee una línea completa incluyendo espacios

int tamaño = 0;

// Recorremos el arreglo de caracteres hasta encontrar el caracter nulo


while (cadena[tamaño] != '\0') {
tamaño++;
}

Estructuras indexadas: Array (Parte 1 y 2) 3


cout << "La cadena ingresada tiene " << tamaño << " caracteres." << endl;

return 0;
}

Usando getline con std::string :

#include <iostream>
#include <string>

using namespace std;

int main() {
string cadena;

cout << "Ingrese una cadena de caracteres: ";


getline(cin, cadena); // Lee una línea completa incluyendo espacios

int tamaño = 0;

// Usamos un bucle while para recorrer la cadena y contar los caracteres


while (cadena[tamaño] != '\0') {
tamaño++;
}

cout << "La cadena ingresada tiene " << tamaño << " caracteres." << endl;

return 0;
}

En estos ejemplos, [Link] y getline permiten leer una línea completa de entrada con espacios, solucionando el
problema del cin tradicional que corta en el primer espacio.

Matrices

Estructuras indexadas: Array (Parte 1 y 2) 4


Una matriz es una estructura de datos que nos permite almacenar múltiples elementos en una tabla
bidimensional. En C++, las matrices se declaran de la siguiente manera:

tipo_de_dato nombre_de_la_matriz[numero_de_filas][numero_de_columnas];

Por ejemplo, si queremos declarar una matriz de enteros de 2 filas y 3 columnas, lo haríamos de la siguiente
manera:

int matriz[2][3];

Una vez que hemos declarado una matriz, podemos acceder a cada uno de sus elementos mediante su posición
en la matriz. En C++, los índices de las filas y columnas de una matriz empiezan en 0. Por ejemplo, para acceder
al primer elemento de la primera fila de nuestra matriz de enteros, lo haríamos de la siguiente manera:

matriz[0][0] = 10;

Podemos inicializar una matriz al momento de su declaración, de la siguiente manera:

int matriz[2][3] = {{10, 20, 30}, {40, 50, 60}};

También podemos acceder al número de filas y columnas de una matriz utilizando la función sizeof() :

int numero_de_filas = sizeof(matriz) / sizeof(matriz[0]);


int numero_de_columnas = sizeof(matriz[0]) / sizeof(matriz[0][0]);

Ahora, para poner en práctica lo aprendido, vamos a realizar un ejercicio. Implementaremos un programa en C++
que solicite al usuario ingresar los elementos de una matriz de 3 filas y 3 columnas, los almacene en la matriz y
posteriormente muestre por pantalla la suma de todos los elementos de la matriz.

#include <iostream>

using namespace std;

int main() {
int matriz[3][3];
int suma = 0;

for(int i = 0; i < 3; i++) {


for(int j = 0; j < 3; j++) {
cout << "Ingrese el elemento [" << i << "][" << j << "]: ";
cin >> matriz[i][j];
}
}

for(int i = 0; i < 3; i++) {


for(int j = 0; j < 3; j++) {
suma += matriz[i][j];
}
}

cout << "La suma de los elementos de la matriz es: " << suma << endl;

return 0;
}

Otro ejercicio que podemos hacer es un programa que realiza la suma de dos matrices cuadradas de tamaño N x
N.

Estructuras indexadas: Array (Parte 1 y 2) 5


#include <iostream>

using namespace std;

const int N = 3; // Tamaño de la matriz cuadrada

int main() {
int matriz1[N][N];
int matriz2[N][N];
int resultado[N][N];

// Llenar las matrices con valores ingresados por el usuario


cout << "Ingrese los valores de la primera matriz: " << endl;
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
cin >> matriz1[i][j];
}
}

cout << "Ingrese los valores de la segunda matriz: " << endl;
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
cin >> matriz2[i][j];
}
}

// Sumar las matrices


for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
resultado[i][j] = matriz1[i][j] + matriz2[i][j];
}
}

// Mostrar el resultado
cout << "La matriz resultante es: " << endl;
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
cout << resultado[i][j] << " ";
}
cout << endl;
}

return 0;
}

Uso de Arrays con Structs y Funciones


Una vez que entendimos cómo funcionan los Arrays y las estructuras ( struct ), podemos combinarlos para manejar
colecciones de objetos estructurados.
Esto es muy útil, por ejemplo, para gestionar listas de personas, productos, libros, etc.

🔹 Arrays de Structs
Podemos crear un Array donde cada elemento sea una estructura.

Por ejemplo, si tenemos esta estructura Persona :

struct Persona {
string nombre;

Estructuras indexadas: Array (Parte 1 y 2) 6


int edad;
};

Persona personas[5];

Ahora, cada posición personas[0] , personas[1] , etc., almacena una Persona completa (nombre y edad).

📌 Ejemplo de carga de un array de structs


#include <iostream>
using namespace std;

struct Persona {
string nombre;
int edad;
};

int main() {
Persona personas[3];

for(int i = 0; i < 3; i++) {


cout << "Ingrese el nombre de la persona " << i+1 << ": ";
cin >> personas[i].nombre;
cout << "Ingrese la edad de " << personas[i].nombre << ": ";
cin >> personas[i].edad;
}

cout << "\nPersonas ingresadas:\n";


for(int i = 0; i < 3; i++) {
cout << "Nombre: " << personas[i].nombre << ", Edad: " << personas[i].edad << endl;
}

return 0;
}

🔹 Funciones que reciben Arrays de Structs


Muchas veces queremos trabajar con nuestros Arrays de estructuras dentro de funciones para modularizar
mejor el programa.

📌 Ejemplo de función que recibe un array de structs


void mostrarPersonas(Persona personas[], int cantidad) {
for(int i = 0; i < cantidad; i++) {
cout << "Nombre: " << personas[i].nombre << ", Edad: " << personas[i].edad << endl;
}
}

Luego en main podemos llamar:

mostrarPersonas(personas, 3);

Estructuras indexadas: Array (Parte 1 y 2) 7

También podría gustarte