Está en la página 1de 6

Universidad Técnica de Oruro

Facultad Nacional de Ingeniería


Carrera Ingeniería de Sistemas
Oruro - Bolivia

LABORATORIO Nro. 14
SIS 1110 METODOLOGÍA DE LA PROGRAMACIÓN I

Tema: ARREGLOS UNIDIMENSIONALES EN C++

1. LOGROS A ALCANZAR

 Aprender el funcionamiento y manejo de arreglos (definición y operaciones básicas) aplicando a


Ejemplos concretos.
 Aplicar el concepto de arreglos unidimensionales para resolver problemas que requieren algoritmos
de tipo numérico.
 Conocer la forma de generar números aleatorios como una herramienta útil

2. FUNDAMENTO TEORICO

Un Array es una estructura de datos en la que se almacena una colección de datos del mismo tipo. Dicho de otro
modo, un array es una lista de un número finito n de elementos del mismo tipo que se caracteriza por almacenar los
elementos del array en posiciones de memoria continua, tener un único nombre de variable y tener acceso directo
o aleatorio a los elementos.

Los arrays se clasifican en:


Unidimensionales
Multidimensionales

Un array de una dimensión vector o lista es un tipo de datos estructurado compuesto de un número de elementos
finitos, tamaño fijo y elementos homogéneos. La representación de un arreglo unidimensional o vector tiene la
siguiente representación.

int x [10] 123 0

23 1

888 2

456 3
Datos Números Enteros
678 4

3 5
Sub Indice del Vector

23 6

823 7

73 8

45 9

Alumno:………………………… Página 1
Para almacenar datos se hace referencia al nombre del vector x de la siguiente manera:

x [0] = 55;

x [5] = 23;

Para ingresar al puesto 7 la suma de esos valores se realiza de la siguiente manera.

x [7] = x[0] + x[5]

x [7] = 55 + 23

x [7] = 78

El vector original quedaría asi.

int x [10]

55 0

23 1

Datos Números Enteros 888 2

456 3
Sub Indice del Vector
678 4

23 5
23 6

78 7
73 8

45 9

En C++ los arreglos se declaran de la siguiente forma:

TipoDeDato nombreDelArreglo [tamañoDelArreglo];

Como podemos ver, es similar a declarar una variable convencional, solo que se coloca entre corchetes el
número de posiciones del arreglo, por lo que todas las posiciones serán del mismo tipo.

Índice de un arreglo.- Todo arreglo está compuesto por un número de elementos. El índice es un número
correlativo que indica la posición de un elemento del arreglo. Los índices en C++ van desde la posición 0 hasta
la posición (tamaño – 1).

Elemento de un arreglo.- Un elemento de un arreglo es un valor particular dentro de la estructura del arreglo.
Para acceder a un elemento del arreglo es necesario indicar la posición o índice dentro del arreglo. Ejemplo:

Alumno:………………………… Página 2
•arreglo[0] //Primer elemento del arreglo
•arreglo[3] //Cuarto elemento del arreglo

OPERACIONES CON ARRAYS.


Los vectores no se pueden leer / escribir en una sola operación o sentencia. La lectura o escritura de un array se debe
hacer elemento a elemento, y para realizar estas operaciones se deben leer o visualizar los componentes de un array
mediante estructuras repetitivas.

Para manejar un arreglo, las operaciones a efectuarse son: Declaración del arreglo, Inicialización de los
elementos del arreglo, y Acceso a los elementos del arreglo.

Ejemplo: Ingresar 10 números enteros al vector x

#include <iostream>
int main ()
{
int x[10], i;
for ( i = 0; i < 10 ; i++)
{
cin >> x[i];
}
return 0;
}

Ejemplo: Mostrar 10 números enteros del vector x

#include <iostream>
int main ()
{
int x[10], i;
for ( i = 0; i < 10 ; i++)
{
cout << x[i] << endl;
}
return 0;
}

ERRORES COMUNES QUE SE PUEDEN COMETER

1. Declarar un arreglo dándole dimensión mediante una variable.


2. Olvidar indicar el tamaño n del arreglo entre corchetes al momento de ser declarado cuando no se le
asignen valores iniciales.
3. Olvidar que el primer elemento del arreglo tiene el subíndice cero.
4. Olvidar que el último elemento del arreglo tiene el subíndice n-1.

Alumno:………………………… Página 3
GENERACIÓN DE NÚMEROS ALEATORIOS

Para manejar una gran cantidad de números en programas de prueba o simulados, es mejor generar los datos
que introducirlos manualmente, debido a su gran diferencia en velocidad.

Función rand().- Permite generar un valor pseudoaleatorio comprendido entre 0 y el máximo entero positivo.
Para generar un número aleatorio comprendido en 0 y n incluyendo a ambos, debe utilizarse la siguiente
sentencia: a=rand()%(n+1).

Ejemplo: a=rand()%100, genera un número al azar entre 0 y 99.

La función rand() se encuentra en una librería externa denominada <cstdlib>, la cual debe incluirse en el
encabezado.

Si se generan varios números aleatorios, la secuencia generada es siempre la misma. Para generar secuencias
diferentes deberá inicializarse un valor denominado semilla con la función srand() de la siguiente manera:
srand(time(NULL))

donde también se utiliza la función time() contenida en la librería <ctime>

Ej Generación de 20 números aleatorios comprendidos entre 0 y 100

#include<iostream>
#include<cstdlib>
#include<ctime> //para poder utilizar la función time()
int main()
{
int a[20];
srand(time(NULL)); //inicializa la semilla de números pseudoaleatorios
for(int i=0; i<20;i++)
a[i]=rand()%100;
for(int i=0; i<20;i++)
cout<< a[i]<<”,”;
return 0;
}

Fórmula para generar números aleatorios entre A y B incluyendo ambos (A<B)

A + rand()%(B-A+1);

Ejemplo para simular a un dado: dado= 1+ rand() % 6;

Alumno:………………………… Página 4
3. ACTIVIDAD DE CLASE

Ejemplo 1: Programa que obtiene el valor promedio de números contenidos en un arreglo

int main()
{
int num, i;
float x, calif[100], sum;
cout<<"¿Cuántas calificaciones ?: ";
cin>>num;
sum=0;
//generacion de datos
srand(time(NULL));
for (i=0; i<num; i++)
{
calif[i]= rand()%101
sum=sum+calif[i];
}
cout<<"El promedio es: ",sum/num;
cout<<"\n Los datos generados fueron: \n";
for (i=0;i<num;i++)
{
cout<< i+1<<”\t”<<calif[i]<<endl;
}
return 0;
}

Ejemplo 2: Copiar los elementos de un arreglo unidimensional en otro

int main()
{
srand(time(NULL))
int i,a1[10], a2[10];
//Inicialización de a1
for (i=0; i<10;i++)
a1[i]=rand()%100;
//Copiar en a2
for (i=0; i<10;i++)
a2[i]=a1[i]
//Mostrar a2
for (i=0; i<10;i++)
cout<<a2[i]<<endl;
return 0;
}

Alumno:………………………… Página 5
Ejemplo 3: Programa que pide n números, cada uno lo multiplica por 5 y el resultado lo guarda en otro arreglo

int main()
{
float ar1[20], ar2[20];
int cont, n;
cout<<“Dame un número entre 2 y 20: ”;
cin>>n;
cout<<“A continuación se pedirán “<<n<<” números”;
for(cont=0; cont<n; cont ++)
{
cout<(“Dame el valor del número: ”<<cont ;
cin>>ar1[cont];
ar2[cont]=ar1[cont]*5;
}
cout<<“Tras multiplicar cada número por cinco se tiene: ”<<endl;
for(cont=0; cont<n; cont ++)
{
cout<<”Numero “<<cont<<” es:”<<ar2[cont];
}
return 0 ;
}

4. TAREA

1. Ejecutar los ejemplos anteriores

2. Generar aleatoriamente un conjunto de n elemento. Calcular el promedio de los elementos que se


encuentren en las posiciones pares de un arreglo de n números.

5. CUESTIONARIO

1. ¿Para qué se utiliza el índice en un arreglo unidimensional?


2. ¿Qué ocurre si utilizamos un elemento con el índice mayor al tamaño del arreglo?
3. ¿Se puede declarar e inicializar un arreglo al mismo tiempo?,¿ cómo?
4. ¿Se pueden utilizar índices negativos o de punto flotante?

Alumno:………………………… Página 6

También podría gustarte