Unidades Enfoque Orientado a Competencias
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.

Tema 5 (2021)

2 participantes

Ir abajo

Tema 5 (2021) Empty Tema 5 (2021)

Mensaje por Admin Miér Mar 03, 2021 3:24 pm

Estudiantes de la carrera de Ingeniería en Informática, asignatura: Programación Orientada a Objetos, pueden hacer sus aportaciones, participando en este foro, contestando al menos uno de los siguientes reactivos, temas o competencias:



Tema 5.- Arreglos

Competencia Específica: Conoce y aplica programas que implementen el uso de arreglos para reconocerlos como una herramienta para agrupar datos y facilitar la solución de problemas.

Subtemas:.
5.1.- Unidimensional
5.1.1.- Investigar los conceptos de arreglo unidimensional y presentar una síntesis.
5.2.- Multidimensional
5.2.1.- Investigar los conceptos de arreglo multidimensional y presentar una síntesis.
5.3.- Resolver ejercicios donde se identifiquen los elementos principales de los arreglos; presentando un fragmento de código fuente, que se haya generado.
5.4.- Crear aplicaciones que usen arreglos de diferentes dimensiones en la solución de problemas; y presentar un fragmento de código fuente, que se haya generado.



Atte: M.C. Edgar Rangel Lugo.


Admin
Admin

Mensajes : 349
Fecha de inscripción : 14/03/2012

https://erangel.foroactivo.mx

Volver arriba Ir abajo

Tema 5 (2021) Empty 5.2.- Multidimensional

Mensaje por Angel_Jim_2A6 Lun Jun 14, 2021 9:09 am

El array multidimensional (o simplemente array). Éste es semejante a la lista de Python, pero permite realizar operaciones entre ellos, u operaciones entre escalares y ellos, o ejecutar ciertas operaciones sobre todos los elementos del array de forma simultánea.
Los arreglos multidimensionales son aquellos con las dos dimensiones
- En una matriz las dos dimensiones se representan en filas y columnas
- Pueden ser recorridos por un FOR

Angel_Jim_2A6

Mensajes : 5
Fecha de inscripción : 23/03/2021

Volver arriba Ir abajo

Tema 5 (2021) Empty Arreglos

Mensaje por Ivan_MP_2B6 Miér Jun 23, 2021 1:52 pm

Los datos como los números enteros (int), de coma flotante (float y double) y caracteres (char) son tipos de datos simples, no se componen de tipos más básicos. Los tipos de datos estructurados o estructuras de datos son tipos de datos que contienen datos más simples, los hay estáticos y dinámicos. Las estructuras de datos estáticas tienen un tamaño que se define en tiempo de compilación, mientras que las dinámicas se pueden definir en tiempo de ejecución.

Los arreglos son una estructura de datos estática, homogénea y ordenada, lo que significa que tiene un tamaño constante definido al codificarse, solo puede contener datos del mismo tipo y debe de tener un orden. El orden se refiere a que todos los elementos del arreglo tienen una posición en concreto.

Para identificar los elementos de un arreglo se utilizan los índices, que son un número entero que identifica la posición de cada elemento. Normalmente, los índices de un arreglo comienzan en 0, pero hay lenguajes en los que el índice comienza en 1.

Los arreglos tienen varias operaciones comunes:

  • Lectura
  • Escritura
  • Asignación
  • Recorrido
  • Búsqueda
  • Inserción
  • Eliminación


Las operaciones de lectura, escritura y asignación son las más básicas, únicamente consisten en leer datos y colocarlos en el arreglo, asignarle un dato a un elemento del arreglo o escribir en el flujo de salida lo que hay en uno de los elementos del arreglo.

El recorrido es una operación que consiste en pasar por todos y cada uno de los elementos del arreglo, o por secciones del arreglo. El recorrido es una operación básica en los arreglos porque permite manejar de manera sencilla los elementos de un arreglo y puede ser utilizada en las demás operaciones con arreglos.

La operación de búsqueda es lo que su nombre indica: buscar un elemento en un arreglo. Para realizar esto existe una variedad de algoritmos, pero el más básico consiste en un recorrido que compara cada elemento del arreglo con el elemento buscado.

Las operaciones de inserción y eliminación también utilizan el recorrido, sirven para colocar nuevos elementos en medio del arreglo o eliminar elementos del arreglo. Ambas recorren los elementos del arreglo de manera secuencial para poder cumplir su objetivo.

Los arreglos tienen dos propiedades importantes al manejarlos: el tamaño y la capacidad. El tamaño de un vector equivale a la cantidad de elementos que se han colocado en el arreglo, mientras que la capacidad es la cantidad total de elementos de un cierto tipo que puede contener.

En C++ se puede usar la sintaxis heredada de C para crear un arreglo, usando el tipo de dato, el identificador del arreglo y la capacidad del arreglo, pero este tipo de arreglos son difíciles de manejar, por lo que se recomienda utilizar las clases Array y Vector de la biblioteca estándar, pero el caso es el mismo, almacenamiento de datos en celdas de memoria contiguas. La diferencia entre un objeto de tipo Array y uno de tipo Vector es que el primero tiene tamaño fijo y el segundo puede redimensionarse en tiempo de ejecución.

Aunque es contradictorio que un arreglo se pueda redimensionar en tiempo de ejecución dado que los arreglos son estructuras de datos estáticas,  en realidad lo que sucede no es que se expanda la capacidad del arreglo, sino que se crea un nuevo arreglo con mayor capacidad de manera interna, se copian todos los elementos del arreglo anterior al nuevo, y se destruye el arreglo anterior.

Para declarar ambos tipos de arreglo se usan instrucciones como las siguientes:
Código:

#include <array> //Para usar un arreglo se usa la cabecera array.
#include <vector> //Para usar un arreglo asignado dinámicamente se usa la cabecera vector.

using namespace std;

constexpr int capacidad = 5; //Esto puede ser cualquier dato tipo int. Es importante que sea constante.

array <int, capacidad> arreglo; //Un arreglo de enteros con capacidad para 5 elementos tipo int.
vector <int> arregloDinamico; //Un arreglo de enteros con capacidad asignada dinámicamente.

Es recomendado inicializar cualquier dato al declararlo, por lo que es preferible usar el método fill para llenar los arreglos.
Código:

arreglo.fill(0);
arregloDinamico.fill(0);

En un arreglo, una dimensión se corresponde con una extensión de los datos que puede almacenar. Una primera dimensión indica que puede almacenar un primer conjunto de datos. Una segunda extensión implica almacenar un conjunto de datos en cada elemento del conjunto anterior, y así sucesivamente.

Los arreglos que tienen dos dimensiones suelen considerarse como matrices por su correspondencia con el concepto de matriz en matemáticas, y también como arreglos bidimensionales por tener una segunda dimensión de datos.

Los arreglos que tienen más de dos dimensiones se llaman multidimensionales, y pueden tener tantas dimensiones como se quiera. Un detalle importante que se debe considerar es que, dado que un arreglo es un tipo estructurado homogéneo, entonces todos los elementos de todas las dimensiones del arreglo deben ser del mismo tipo de datos.

Cuando se habla de arreglos multidimensionales la forma de realizar las operaciones básicas se complica, pues el tiempo que tarda aumenta y es más complejo de hacer por el uso intensivo de estructuras de control. Además, al usar las clases Array y Vector la declaración se convierte en algo más enrevesado. Un ejemplo de recorrido de un arreglo de tres dimensiones se da a continuación.
Código:

#include <iostream>
#include <array>

using namespace std;

int main()
{
   array < array < array <int, 10> , 10> , 10> arreglo3D;

   for (int i = 0; i < 10; i++) // Recorre la dimensión 1
   {
      for (int j = 0; j < 10; j++) //Recorre la dimensión 2
      {
         for (int k = 0; k < 10; k++) //Recorre la dimensión 3
         {
            arreglo3D[i][j][k] = k; //Asigna un valor a un elemento del arreglo 3D.
            cout << arreglo3D[i][j][k]; //Escribe el elemento (i, j, k) del arreglo.
         }
         cout << endl;
      }
   }
}

Ivan_MP_2B6
Invitado


Volver arriba Ir abajo

Tema 5 (2021) Empty Re: Tema 5 (2021)

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.