Está en la página 1de 24

Actividad Complementaria 3

Jenniffer Milena López Zorro


Código: D7304375

Universidad Militar Nueva Granada


Ingeniería Civil a Distancia
Programación

1
Actividad Complementaria 3

Jenniffer Milena López Zorro


Código: D7304375

Víctor Mendoza
Docente

Universidad Militar Nueva Granada


Ingeniería Civil a Distancia
Programación

2
3
Solución

1. Iostream: C++ proporciona una nueva biblioteca de funciones la biblioteca


iostream.
Esta biblioteca es una implementación orientada a objetos y está basada al igual que stdio
(Standard input output), en el concepto de flujo. Cuando se introducen caracteres desde el
teclado, puede pensarse que fluyen desde el teclado a las estructuras de datos del programa.
Cuando se escribe en un archivo se piensa en un flujo de bytes que van del programa al disco.
Para acceder a la biblioteca iostream se debe incluir el archivo iostream.h este archivo
contiene información de diferentes funciones de entrada salida. Define también los objetos
CIN y COUT.
El paquete iostream define una variable (un objeto) llamado cout de forma automática que
es capaz de enviar todo tipo de datos a la salida estándar.

Para declarar las funciones y los datos externos que contenga la clase iostream hay que incluir
el fichero de cabecera de la siguiente manera:

#include<iostream>

La biblioteca iostream define varios operadores particulares, llamados manipuladores que le


permiten controlar precisamente, el formato de los datos visualizados. Situando un
manipulador en la cadena de operadores “<<”, se puede modificar el estado de flujo.
Una característica importante de un flujo que debe tratar con valores numéricos es la base de
números, hay tres manipuladores (dec, hex, oct) para controlar la situación. La base por
omisión es “dec” y por lo tanto solo será necesario indicar “dec” cuando se haya fijado la
base a otro valor.

cout<<oct<<nNumX<<endl;
cout<<hex<<nNumX<<endl;
cout<<dec<<nNumX<<endl;

Lo anterior mostrara la variable ‘nNumX’ en las tres bases octal, hexadecimal y decimal.
Los manipuladores que toman argumentos se declaran en <iomanip.h> el resto en <iostream>

1.-cout<<oct<<nNumX<<endl;
2.-cout<<hex<<nNumX<<endl;
3.-cout<<dec<<nNumX<<endl;
4.-cin>>ws>>X;
5.-cout<<endl;
6.-cout<<flush;
7.- cout<<setfill(“*”);
8.- cout<<setprecision(6)<<X;
9.- cout<<setw(6)<<X;
10.- cin>>oct>>X;
4
11.- cin>>hex>>X;
12.- cin>>dec>>X;

Los manipuladores 1,2,3,10,11,12 ya han sido explicados con anterioridad.

-El operador numero 4 quita los espacios en blanco.


-El operador numero 5 indica el término de la línea end=fin y l=line (endl).
-El operador numero 6 reinicia buffer. Limpia valores de la variable y los pone nulos.
-El operador numero 7 rellena el valor declarado entre paréntesis. Ej $***1,000.00
-El operador numero 8 hace los sig. Ha el numero 3.141524 le hacemos setprecision(4) y
queda lo siguiente 3.1415.
-El operador numero 9 justifica a la derecha los números y las cadenas hacia la izquierda.
Recorre el valor que declaraste entre paréntesis

Justificación

La información de la justificación de la salida se almacena en un modelo o patrón de bits en


una clase llamada “IOS”, que constituye la base de todas las clases de flujos. Puede establecer
o reinicializar bits específicos utilizando los manipuladores setiosflags (); y resetiosflags();.
Para utilizar cualquiera de los indicadores de formato que hay que insertar el manipulador
“setiosflags ();” con el nombre de indicador como argumento. Hay que utilizar
“resetiosflags();” con el mismo argumento para invertir el estado de formato antes de usar el
manipulador “setiosflags ();”.

Manipuladores de justificación

ios::left Justifica a la izquierda


ios::right Justifica a la derecha
ios::scientific Notacion cientifica para coma flotante
ios::fixed Notacion decimal para coma flotante
ios::dec Notacion decimal para enteros
ios::hex Notacion hexadecimal para enteros
ios::oct Notacion octal para enteros
ios::showpos Muestra signo positivo. Cuando se muestran valores positivos

2.Print: En los programas, para mostrar texto o variables hay que utilizar la
función print().
La función print() permite mostrar texto en pantalla. El texto a mostrar se escribe como
argumento de la función:

Print (‘‘Hola’’) Hola

La función print() admite varios argumentos seguidos. En el programa, los argumentos deben
separarse por comas. Los argumentos se muestran en el mismo orden y en la misma línea,
separados por espacios:
5
Print (‘‘Hola’’, ‘‘Adios’’) Hola Adios
Cuando se trata de dos cadenas seguidas, se puede no escribir comas entre ellas, pero las
cadenas se escribirán seguidas, sin espacio en blanco entre ellas:

Print (‘‘Hola’’ ‘‘Adios’’) HolaAdios

Al final de cada print(), se añade automáticamente un salto de línea:

Print (‘‘Hola’’) Hola


Print (‘‘Adios’’) Adios

Para generar una línea en blanco, se puede escribir una orden print() sin argumentos.

Print (‘‘Hola’’) Hola


Print ()
Print (‘‘Adios’’) Adios

Si no se desea añadir un salto de línea al final de un print(), se debe añadir al final el


argumento end="":
Print (‘‘Hola’’, end=‘‘’’) HolaAdios
Print (‘‘Adios’’)

La función print() permite incluir variables o expresiones como argumento, lo que nos
permite combinar texto y variables:

nombre = "Pepe" Me llamo Pepe y tengo 25 años


edad = 25
print("Me llamo", nombre, "y tengo", edad, "años.")

3. Cout: C++, al igual que C, no tiene operaciones de entrada/salida como parte del lenguaje
en sí, sino que define la librería stream para añadir estas funciones. La salida por pantalla se
hace a través de cout, pero es algo diferente a la función printf(), ya que no tenemos que
indicarle el tipo de la variable que queremos imprimir. Así se escribe en C++ el tradicional
ejemplo "Hello, world":

6
#include <iostream.h>

main()
{
cout << "Hello, world";
}

El operador <<, llamado operador de inserción, le dice al sistema que imprima la variable
que le sigue, pero deja que el sistema decida cómo imprimir los datos. No le hemos
indicado el tipo de la variable que queremos imprimir, como se hacía con printf(). Es el
sistema el que determina el tipo de la variable, y lo imprime adecuadamente. Tampoco
hemos formateado la salida. De nuevo es el sistema el que determina el número de cifras, el
de espacios en blanco ...
Se pueden utilizar los caracteres de escape de C. Por ejemplo, en el programa anterior
podemos añadir un retorno de carro:

#include <iostream.h>

main()
{
cout << "Hello, world\n";
}

Cout saca por pantalla cualquier tipo de dato estándar que existe en C++, bien sea un
carácter, un número o movimientos especiales del cursor, como \n en el ejemplo anterior.

Veamos otro programa:

#include <iostream.h>
main()
{
int a;
float b;

a = 4;
b = 52.2;

cout <<"Vamos a imprimir un número entero:";


cout << a;
cout <<'\n';
cout <<"Y ahora uno real:";
cout << b;
cout <<'\n';
}
7
La salida de este programa es:

Vamos a imprimir un número entero: 4


Y ahora uno real: 52.2

El programa también podría haber sido escrito de la siguiente forma:

#include <iostream.h>

main()
{
int a;
float b;

a = 4;
b = 52.2;

cout <<"Vamos a imprimir un número entero:" << a <<'\n';


cout <<"Y ahora uno real:" << b <<'\n';

4. If: Los condicionales if, son una estructura de control condicional, que nos permiten
tomar cierta decisión al interior de nuestro algoritmo, es decir, nos permiten determinar qué
acciones tomar dada condición, por ejemplo determinar si un numero cualquiera es mayor
que 10 y de acuerdo a esto mostrar un mensaje.

En resumen, un condicional if es una estructura que nos posibilita definir las acciones a
ejecutar si se cumple cierta condición.

Ejemplo:

Supongamos que queremos verificar si el resultado de una suma ingresada por el usuario es
correcto o no. Para este ejemplo, el condicional if, es el encargado de verificar si el resultado
ingresado corresponde o no a la respuesta correcta de la suma. El condicional if, funciona
verificando la condición ingresada y de acuerdo a su valor de verdad (falso o verdadero) lleva
a cabo o no una serie de instrucciones.

8
Línea 1:

En esta línea está prácticamente todo lo esencial del condicional, aquí le hemos dicho al
interior del argumento del condicional if, cual es la condición que se debe cumplir para que
se ejecute el primer bloque de instrucciones, esta línea es en efecto esencial ya que nos da la
pauta para que el algoritmo determine si ejecutará o no el bloque de instrucciones al interior
de las llaves.

Línea 2:

En la línea 2 tenemos una llave abriendo "{" lo cual indica que allí comienza el bloque de
instrucciones que se ejecutarán, si se cumple la condición dada. Esta llave no es del todo
obligatoria, sin embargo si no la ponemos solo se ejecutara dentro de nuestro ciclo la primera
línea inmediatamente posterior a la declaración del condicional, de modo que si deseamos
que se ejecuten varias líneas dentro de nuestro condicional, debemos usar las llaves

Línea 3 a 7:

En estas líneas es donde estarán todas las operaciones que queramos llevar a cabo en caso de
cumplirse la condición, este bloque podrá tener la cantidad de líneas necesarias incluso,
dentro de estas podría haber uno o más condicionales en su interior, así que se podría tener
lo que se conoce como condicionales anidados.

Línea 8:

En esta línea hacemos uso de la llave cerrando "}", una vez más como seguramente ya sabrás
esta nos indica que allí termina el bloque del condicional y se dará por terminada la ejecución
de este para continuar ejecutando el resto del programa.

Línea 9 a 11

Estas líneas contienen la estructura restante del algoritmo, sin importar si la condición se
cumple o no, el algoritmo siempre va a ejecutar estas líneas, es decir las líneas que se
9
encuentran después de la llave de cierre de un condicional, siempre se ejecutarán sin importar
si la condición se cumpla o no.

En el ejemplo anterior tenemos que determinar cuál va a ser nuestra condición a evaluar, la
condición debe ser que la respuesta ingresada, sea igual al resultado de la suma, se realizaría
de la siguiente forma:

El código funcional completo seria:

Los condicionales son extremadamente útiles pues permiten definirle a nuestro software
múltiples vías de ejecución contemplando así todas las posibilidades durante la ejecución.

5. Else: Los condicionales if-else, son una estructura de control, que nos permiten tomar
cierta decisión al interior de nuestro algoritmo, es decir, nos permiten determinar que
acciones tomar dada o no cierta condición, por ejemplo determinar si la contraseña ingresada
por el usuario es válida o no y de acuerdo a esto darle acceso al sistema o mostrar un mensaje
de error.

En resumen, un condicional if-else es una estructura que nos posibilita definir las acciones
que se deben llevar a cabo si se cumple cierta condición y también determinar las acciones
que se deben ejecutar en caso de que no se cumpla.

10
La sintaxis de un condicional if-else, es en principio similar a la del condicional if, pero
adicionando una nueva "estructura" que es el else, el cual indica la acción o conjunto de
acciones a llevar a cabo, en caso de que la condición del if no se cumpla. Cabe resaltar que
el else siempre se pone inmediatamente después del if, en caso de ser necesario, el else es
incapaz de funcionar por sí solo, siempre debe ir acompañado por un if.

Ejemplo:

Se desea implementar un sistema de logueo de usuario, comprobando si la información


suministrada coincide con los valores correctos y en este caso mostrar un mensaje de
bienvenida, y en caso de que no, se mostrará un mensaje de error.

Para poder ejecutar nuestro programa, es entonces necesario hacer que el algoritmo, tome
una decisión, de acuerdo a los valores ingresados por el usuario, y definir los dos casos
posibles en caso de fallo o en caso de que no. Es para esto que sirve el condicional if-else,
nos permite definir una condición que se debe cumplir y de acuerdo a su cumplimiento o no
tomar una acción correspondiente.

Línea 1:

En esta línea está prácticamente todo lo esencial del condicional, aquí le hemos dicho al
interior del argumento del condicional if, cual es la condición que se debe cumplir para que
se ejecute el primer bloque de instrucciones, esta línea es en efecto esencial ya que nos da la
pauta para que el algoritmo determine que bloque de instrucciones ejecutar.

Línea 2:

En la línea 2 tenemos una llave abriendo "{" lo cual indica que allí comienza el bloque de
instrucciones que se ejecutarán si se cumple la condición dada. Esta llave no es del todo
obligatoria, sin embargo si no la ponemos solo se ejecutará dentro de nuestro condicional la

11
primera línea inmediatamente posterior a la declaración del condicional, de modo que si
deseamos que se ejecuten varias líneas dentro de nuestro condicional, debemos usar las llaves

Línea 3 a 7:

En estas líneas es donde estarán todas las operaciones que queramos llevar a cabo en caso de
cumplirse la condición, este bloque podrá tener la cantidad de líneas necesarias incluso, como
veremos más adelante dentro de estas podría haber uno o más condicionales en su interior,
así que podrías tener todo un condicional dentro de un condicional dentro de otro
condicional... y así sucesivamente.

Línea 8:

En esta última línea hacemos uso de la llave cerrando "}", una vez más como seguramente
ya sabrás esta nos indica que allí termina el bloque del condicional y se dará por terminada
la ejecución de este para continuar ejecutando el resto del programa, cabe notar que esta línea
dará paso a la ejecución del bloque de instrucciones del else, en caso de que la condición
dada no se haya cumplido.

Línea 9 a 16:

Estas líneas contienen la estructura else, que es la que indica que existe un bloque de
instrucciones que se debe ejecutar en caso de que la condición dada no se cumpla. Este bloque
al igual que el del condicional if, se abre y se cierra con llaves, estas pueden ser opcionales,
sin embargo siempre se deberían usar como una buena práctica de programación.

En el ejemplo anterior debíamos determinar cuál iba a ser nuestra condición a evaluar, la
condición debe ser que la contraseña, sea idéntica a la establecida en nuestro sistema, veamos
entonces como realizar esto:

12
El código funcional completo sería el siguiente:

6. Función: Las funciones son una herramienta indispensable para el programador, tanto
las funciones creadas por él mismo como las que le son proporcionadas por otras librerías,
cualquiera que sea el caso, las funciones permiten automatizar tareas repetitivas, encapsular
el código que utilizamos, e incluso mejorar la seguridad, confiabilidad y estabilidad de
nuestros programas. Dominar el uso de funciones es de gran importancia, permiten
modularizar nuestro código, separarlo según las tareas que requerimos, por ejemplo una
función para abrir, otra para cerrar, otra para actualizar, etc. básicamente una función en
nuestro código debe contener la implementación de una utilidad de nuestra aplicación, es
decir que por cada utilidad básica (abrir, cerrar, cargar, mover, etc.) sería adecuado tener al
menos una función asociada a ésta.

Una función siempre retorna algo, por lo tanto es obligatorio declararle un tipo (el primer
componente de la sintaxis anterior), luego debemos darle un nombre a dicha función, para
poder identificarla y llamarla durante la ejecución, después al interior de paréntesis, podemos
poner los argumentos o parámetros. Luego de la definición de la "firma" de la función, se
define su funcionamiento entre llaves; todo lo que esté dentro de las llaves es parte del cuerpo
de la función y éste se ejecuta hasta llegar a la instrucción return.

13
Ejemplo 1:

Se realizo múltiples sentencia return y se aprovechó la característica de que al ser ejecutadas,


finalizan inmediatamente la ejecución de la parte restante de la función. De este modo se
puede asegurar que la función retornará 'a' únicamente cuando el valor del parámetro n sea
cero y retornará un 'x' cuando dicho valor no sea cero.

Ejemplo 2:

En esta función se reciben dos parámetros, uno de ellos es usado en el condicional y el otro
para mostrar su valor por pantalla con cout, esta vez se retorna valores booleanos 0 y 1, pudo
ser true o false también.

7. Función Recursiva: La recursividad es una técnica de programación importante. Se


utiliza para realizar una llamada a una función desde la misma función. Como ejemplo útil
se puede presentar el calculo de numero factoriales. El factorial de 0 es, es por definición 1.
Los factoriales de numero mayores se calculan mediante la multiplicación de 1*2…,
incrementando el numero de 1 en 1 hasta llegar al numero para el que se esta calculando el
factorial.

14
Ejemplo:

En la recursividad tenemos estos factores importantes:

a) Una función se llama a sí misma


b) En cada llamada, tiene que haber algo que permita una evolución (si no estaríamos en
una autollamada tipo bucle infinitio)

c) Tiene que existir una situación en la que ya no hay una nueva autollamada, sino un
resultado o acción. Esta situación se denomina caso base y permite que se salga de la
recursión.

En el ejemplo que hemos puesto la función es factorial.

El caso base es if (n==0) return 1; La llamada recursiva (autollamada se produce en


return(n* factorial (n-1));

La evolución se produce porque en cada llamada la función se llama con un entero una
unidad inferior al entero con que se llamó anteriormente.

Por ejemplo si se llama factorial(4), cuando llega al return sel llama return (4*factorial(3)); ,
en la siguiente pasada se llama return (3*factorial(2)); ...

15
8. Parámetros por valor: Pasar parámetros por valor significa que a la función se le
pasa una copia del valor que contiene el parámetro actual.
Los valores de los parámetros de la llamada se copian en los parámetros de la cabecera de la
función. La función trabaja con una copia de los valores por lo que cualquier modificación
en estos valores no afecta al valor de las variables utilizadas en la llamada.
Aunque los parámetros actuales (los que aparecen en la llamada a la función) y los parámetros
formales (los que aparecen en la cabecera de la función) tengan el mismo nombre son
variables distintas que ocupan posiciones distintas de memoria.
Por defecto, todos los argumentos salvo los arrays se pasan por valor.

Ejemplo:

La salida de este programa es:

En la llamada a la función el valor de la variable num se copia en la variable num de la


cabecera de la función. Aunque tengan el mismo nombre, se trata de dos variables distintas.

16
Dentro de la función se modifica el valor de num, pero esto no afecta al valor de num en
main. Por eso, al mostrar en main el valor de num después de la llamada aparece el valor
original que se ha leído por teclado.

9. Parámetros por Referencia: Cuando se pasan parámetros por referencia, se le envía


a la función la dirección de memoria del parámetro actual y no su valor. La función realmente
está trabajando con el dato original y cualquier modificación del valor que se realice dentro
de la función se estará realizando con el parámetro actual.
Para recibir la dirección del parámetro actual, el parámetro formal debe ser un puntero.

La salida de este programa es:

17
En la llamada, a la función se le envía la dirección de los parámetros. El operador que obtiene
la dirección de una variable es &.
intercambio(&a, &b);
En la cabecera de la función, los parámetros formales que reciben las direcciones deben ser
punteros. Esto se indica mediante el operador *
void intercambio(int *x, int *y)
Los punteros x e y reciben las direcciones de memoria de las variables a y b. Al modificar el
contenido de las direcciones x e y, indirectamente estamos modificando los valores a y b. Por
tanto, pasar parámetros por referencia a una función es hacer que la función acceda
indirectamente a las variables pasadas.

10. Arreglo (array): Los arrays, arreglos o vectores forman parte de la amplia variedad
de estructuras de datos que nos ofrece C++, siendo además una de las principales y más útiles
estructuras que podremos tener como herramienta de programación. Son utilizados para
almacenar múltiples valores en una única variable. En un aspecto más profundo, los arrays,
permiten almacenar muchos valores en posiciones de memoria continuas, lo cual permite
acceder a un valor u otro de manera rápida y sencilla. Estos valores pueden ser números,
letras o cualquier tipo de variable que deseemos incluso tipos de datos propios.
En múltiples ocasiones es necesario almacenar gran cantidad de información en una variable
y a menudo sucede que no conocemos con exactitud la cantidad de datos que debemos
almacenar, pero sabemos que sí sería más de uno, como por ejemplo almacenar las
identificaciones de las personas ingresadas al sistema. Los arrays, arreglos o vectores son una
estructura que nos permite solucionar este tipo de problemas.

Para declarar un vector en C++, se deben seguir las mismas normas básicas que se siguen
para declarar una variable cualquiera, con un pequeño cambio en la sintaxis. Necesitaremos
saber el tipo de los datos que irán al interior de este, es decir, serán número enteros, o número
decimales o cadenas de texto, etc. necesitamos también, como siempre, un nombre para el
vector y un tamaño máximo. La sintaxis para declarar un vector en C++ es la siguiente:

18
Ejemplo:

Veamos que representa cada línea del código anterior.

Línea 1

Esta línea contiene la declaración de un vector llamado my_vector1, el cual contendrá un


máximo de 10 elementos de tipo entero.

Línea 2

Esta línea contiene la declaración de un vector llamado my_vector2, el cual contendrá un


máximo de 25 elementos de tipo float.

Línea 3

Esta línea contiene la declaración de un vector llamado my_vector3, el cual contendrá un


máximo de 500 elementos de tipo string.

Línea 4

Esta línea contiene la declaración de un vector llamado my_vector4, el cual contendrá un


máximo de 1000 elementos de tipo booleano.

Línea 5

Esta línea contiene la declaración de un vector llamado my_vector5, el cual contendrá un


máximo de 2 elementos de tipo char.

11. Arreglos unidimensionales: Un arreglo unidimensional es un tipo de dato


estructurado que está formado por una colección finita y ordenada de datos del mismo tipo.
Es la estructura natural para modelar listas de elementos iguales. Los datos que se guarden
en los arreglos todos deben ser del mismo tipo.

El tipo de acceso a los arreglos unidimensionales es el acceso directo, es decir, podemos


acceder a cualquier elemento del arreglo sin tener que consultar a elementos anteriores o
19
posteriores, esto mediante el uso de un índice para cada elemento del arreglo que nos da su
posición relativa.

Para implementar arreglos unidimensionales se debe reservar espacio en memoria.


Los arreglos nos permiten hacer un conjunto de operaciones para manipular los datos
guardados en ellos, estas operaciones son: ordenar, buscar, insertar, eliminar, modificar entre
otras.

Los arreglos guardan en memoria la cantidad de espacios que se le indican en la declaración.

Ejemplo:

• Sea el siguiente arreglo unidimensional donde se va a guardar 5 datos de tipo entero


(integer)

x : array[1..5] of integer

En memoria el computador guarda 5 espacios: esto quiere decir en el arreglo X en la posición


1 guarda 34, en el arreglo X en la posición 2 guarda 22, así hasta la última posición del arreglo
X posición 5 guarda 72.

X [1]
34
X [2]
22
X [3]
39
X [4]
63
X [5]
72

Declaración de los arreglos unidimensionales: Se declara el tipo del arreglo, con la palabra
reservada TYPE, luego se declara la variable de tipo arreglo, esto se hace en el bloque de
declaración de variables palabra reservada VAR.

Type
nombre_arreglo= array[x..y]of tipo_dato;
Ejemplos:
salarios= array [1…x] of real;
nombre_trabajador=array[1..x] of string;

Nota: El tipo de dato del arreglo puede ser: integer,real, boolean, string etc.

20
12. Arreglo bidimensional: Un arreglo bidimensional sigue siendo un arreglo, pero
ahora en dos dimensiones, denominadas filas y columnas, esto significa que sigue siendo una
variable que permite almacenar un conjunto de datos es una estructura, es decir es un
conjunto de variables que se citan y manejan con un mismo nombre, y que permite además
la utilización individual de sus elementos. Al igual que para los arreglos unidimensionales, un
arreglo bidimensional en más fácil de comprender a través de su representación gráfica.

En la imagen es posible observar que un arreglo bidimensional es una matriz, formada por
filas y columnas, en la que cada celda (intersección de fila y columna) representa un espacio
de almacenamiento. Las columnas amarillo y rojo representan la primera y última columna
respectivamente, y las filas naranja y azul representan la primera y última fila. Para acceder
a sus posiciones se utilizan los índice de fila y columna, en ese orden. Recordando que en C
y Java el índice inicial es 0.

La imagen también permite demostrar que es FINITO; así es posible observar que tiene un
inicio, en la posición [0][0] y un final en la posición [N1-1][N-1], donde N1 es el número de
filas y N el número de columnas. Es importante recordar que el número de filas y columnas
determinan la cantidad de memoria que se reservará para usar esta estructura, por lo que NO
podrá variarse durante el tiempo de ejecución de un programa.

El nombre que se asigne a una matriz cumple los mismos lineamientos de cualquier
identificador, así por ejemplo, si se va a almacenar las notas de un grupo de estudiantes podría
llamarse notas o notasProgramacion.

Ejemplo:

#include <stdio.h>
int main()
{
int fila, columna;
int matriz[2][2];
for(fila=0; fila<2; fila++)
for(columna=0; columna<2; columna++)
printf(“%d”, matriz[fila][columna]);
return 0;
}

21
13. Arreglos multidimensionales: Un arreglo multidimensional es simplemente una
extensión de un arreglo unidimensional. Más que almacenar una sola lista de elementos,
piense en un arreglo multidimensional como el almacenamiento de múltiples listas de
elementos. Por ejemplo, un arreglo bidimensional almacena listas en un formato de tabla de
dos dimensiones de filas y columnas, en donde cada fila es una lista. Las filas proporcionan
la dimensión vertical del arreglo, y las columnas dan la dimensión horizontal. Un arreglo de
tres dimensiones almacena listas en un formato de tres dimensiones de filas, columnas y
planos, en donde cada plano es un arreglo bidimensional. Las filas proporcionan la
dimensión vertical; las columnas, la dimensión horizontal; y los planos, la dimensión de
profundidad del arreglo.

Los Arreglos multidimensionales no están limitados a dos índices (dos dimensiones). Pueden
contener tantos índices como sea necesario, aunque es raro tener que representar más de 3
dimensiones. Solo considere la cantidad de memoria que un arreglo con muchos índices
puede requerir. Por ejemplo:

Asigna un char para cada segundo contenido en un siglo, que es más de 3 mil millones de
chars! Esto consumiría cerca de 3000 megabytes de memoria RAM si pudiéramos declararlo.

Los arreglos multidimensionales no son más que una abstracción, ya que podemos obtener
los mismos resultados con un simple arreglo poniendo un factor entre sus índices: int matriz
[3][5]; es equivalente a int vector [15]; (3 * 5 = 15)

Ejemplo:

Usando arreglos multidimensionales:

22
Usando arreglos bidimensionales:

23
Bibliografía
http://www.mclibre.org/consultar/python/lecciones/python-salida-pantalla.html
http://www.pablin.com.ar/computer/cursos/c1/cout.html
http://exa.unne.edu.ar/informatica/programacion1/public_html/archivos/Recursividad.p
df
https://aprenderaprogramar.com/foros/index.php?topic=1493.0
http://ejercicioscpp.blogspot.com/2013/07/paso-de-parametros-en-c.html
https://www.programarya.com/Cursos/C++/Estructuras-de-Datos/Arreglos-o-Vectores
http://programacionunefa.blogspot.com/2008/06/arreglos-unidimensionales.html
http://jovanana.blogspot.com/2012/12/arreglos-unidimensionalesbidimensionale.html
http://www.utn.edu.ec/reduca/programacion/arreglos/arreglos.html
https://yepiz.webs.com/programacion%202013-2/Arreglos%20Multidimensionales.pdf

24

También podría gustarte