Está en la página 1de 8

UNIVERSIDAD DON BOSCO

FACULTAD DE ESTUDIOS TECNOLGICOS


ESCUELA DE COMPUTACION
GUIA DE LABORATORIO #08
Nombre de la Practica:
CICLO: 01/ 2013

Uso de arreglos Unidimensionales (Vectores)

Lugar de Ejecucin:

Centro de Computo

Tiempo Estimado:

2 horas y 30 minutos

MATERIA:

Introduccin a la Programacin

I. OBJETIVOS
Que el estudiante:

Definir que es un arreglo y cmo utilizarlo en el lenguaje C/C++.


Desarrolle mtodos para crear, inicializar y asignar valores a los elementos de un arreglo.
Determine la forma de cmo debe tener acceso a los elementos de un arreglo, ya sea para asignarle valores a
sus elementos o para leer los datos almacenados en ellos.
Resolver una de las aplicaciones prcticas tpicas con arreglos, como lo es la ordenacin de elementos.

II. INTRODUCCION TEORICA

Qu es un Arreglo?
Muchas aplicaciones requieren el procesamiento de mltiples datos que tienen caractersticas comunes, por
ejemplo, un conjunto de datos numricos, representados por x1, x2, x3 x4 hasta un xN. En tales situaciones, es
conveniente colocar los datos en un arreglo, el cual se caracteriza porque todos sus elementos comparten un
mismo nombre (en este ejemplo el nombre para la variable de arreglo seria x).
Los datos individuales pueden ser caracteres, nmeros enteros, nmeros de coma flotante de simple o de doble
precisin (reales).
Debe tenerse muy en cuenta que todos los N elementos de un arreglo se caracterizan en que: todos deben ser del
mismo tipo de dato y deben tener el mismo tipo de almacenamiento.

Definicin de arreglo (Array en ingles)


Un arreglo es un conjunto de variables del mismo tipo de datos que pueden ser referenciadas a travs de un
mismo nombre. La forma de identificar a un elemento determinado es a travs de un ndice.
Como se maneja a los elementos de un arreglo
Cada elemento (dato individual) del Arreglo es referenciado mediante la especificacin del Nombre del arreglo
seguido por uno o ms ndices. El nmero de ndices utilizados determinan las Dimensiones del Arreglo.

Gua # 8: Uso de arreglos Unidimensionales (Vectores)

Dimensiones del arreglo


Al definir un arreglo, se le debe indicar el total de elementos N que lo formaran. A este total N se le conoce como
Dimensin del Arreglo, el cual permite indicar el total de posiciones que se almacenara dentro de la memoria de
la PC.
Si un arreglo tiene solo una dimensin, se le llama Arreglo Unidimensional, porque basta indicar un nmero,
llamado ndice para referenciar a una posicin especfica dentro del mismo.
Si a un arreglo se le definen 2 o mas dimensiones, se le conoce como Arreglo Multidimensional o tambin
Matriz, y necesitara tantos ndices como dimensiones se le declaren al arreglo.
Si define 2 dimensiones para un arreglo, a este se le conoce como un Arreglo bidimensional.
Al definir ms de una dimensin al arreglo, le permite aplicar diversos mtodos de clasificacin para el
almacenamiento de listas de datos ms complejos.
ndices del arreglo
Cada ndice se encierra entre corchetes [ ] y debe ser expresado como un entero no negativo. As en un Arreglo
unidimensional llamado x de n elementos, para referenciar a cada uno de sus elementos se har as:
x[0], x[1], x[2], x[3], ........ Hasta x[n-1]
Tal como se ilustra en la siguiente figura:

Al observar el conteo de ndices de la figura anterior, se debe tener muy claro que: al declarar un arreglo dentro
de Lenguaje C, con una dimensin de N elementos, el primer ndice disponible del arreglo comienza con 0
(cero) y el ltimo ndice es N-1 (uno menos del total N indicado para la dimensin).
Esta aclaracin es valida para el conteo de ndices de cada una de las dimensiones de un arreglo
multidimensional. Observe los ejemplos siguientes:
Ejemplo 1:
- Para declarar un arreglo unidimensional llamado MiLista con un total (una dimensin nica) de 5 elementos de
tipo entero, utilizara esta instruccin:
int MiLista [5];

- Si desea asignar el valor 956 a la cuarta posicin de MiLista, lo har referenciando a este elemento con la
siguiente instruccin:
MiLista[3]= 956; //ndice 3 del arreglo

- Al final de esta asignacin, el arreglo MiLista se vera en memoria as:


ndice

Valor asignado

Introduccin a la Programacin

956

Gua # 8: Uso de arreglos Unidimensionales (Vectores)

Declaracin de un Arreglo
Los Arreglos se declaran de igual forma que las variables ordinarias, excepto que cada nombre de Arreglo debe
acompaarse de una especificacin de tamao (es decir, el total de elementos por cada dimensin).
El tamao de cada dimensin se especifica con una expresin entera positiva encerrada entre corchetes [ ].
En trminos generales, la definicin de un Arreglo se puede expresarse como:
TipoDato nombre-arreglo [expresin] [expresion2] [expresion3] [expresionD]

En donde:
 TipoDato es el tipo de datos comn para todos los elementos del arreglo
 nombre-arreglo es el nombre del Arreglo
 [expresin][expresin2][expresin3].. hasta [expresionD] es una o ms expresiones enteras positivas que
indican el total de elementos por cada dimensin del Arreglo. La multiplicacin de las dimensiones da el total
de elementos a crear.
El primer valor expresin es obligatorio para definir un arreglo unidimensional. Si se utiliza adems la
expresion2, se define un arreglo bidimensional (2 dimensiones). Si utiliza el resto de expresiones, crea un arreglo
multidimensional o matriz.
Ejemplos sobre definicin de arreglos y su respectivo significado respectivo:
int A[100];

Arreglo unidimensional A de 100 enteros. Para utilizarlos se referencian como


A[0], A[1], y as sucesivamente hasta las posiciones A[98] y A[99]

float raices[5];

Arreglo llamado races que tiene 5 valores de comas flotantes (valores reales)

char texto[80];

arreglo de 80 caracteres llamado texto */

Asignando valores a las posiciones del Arreglo


Un arreglo puede almacenar un valor por cada una de sus posiciones.
Existen 3 mtodos para almacenar los valores en las posiciones del arreglo:
a) Inicializar todas las posiciones de un arreglo al momento de declararlo, con los valores definidos por el
programador.
b) Asignar un valor fijo, o de una variable o el resultado de un calculo que genere un valor del mismo tipo
de dato asignado al arreglo
c) Solicite al usuario el valor para una posicin del arreglo
Observe la aplicacin de estos mtodos en el segundo ejemplo del procedimiento de esta gua.

III. MATERIALES Y EQUIPO


Para la realizacin de la gua de prctica se requerir lo siguiente:
No.

Requerimiento

Cantidad

Gua de Laboratorio #08 de IP

Compilador de C++.

Disquete Memoria USB

Introduccin a la Programacin

Gua # 8: Uso de arreglos Unidimensionales (Vectores)

IV. PROCEDIMIENTO

METODOS PARA ADMINISTRAR UN ARREGLO / VECTOR /ARRAY

Mtodo 1: solicitando al usuario valor para una posicin


Mtodo 2: inicializando posiciones al momento de declarar la matriz
Mtodo 3: asignando valor, ya sea: directamente, 2. de una variable, 3. de un proceso/calculo

1. Cree una carpeta denominada IPguia08proc_CARNET, en el cual se guardara los cdigos fuente (cpp) de los
ejemplos del procedimiento a continuacin.
Mtodo 1: solicitando al Usuario los datos del Arreglo
Ejercicio 1: Proceso de Creacion, almacenamiento e impresin del contenido de un Arreglo/Array
GUIA8ejemplo1.cpp
#include <iostream>
#include <stdlib.h>
#include <conio.h>
using namespace std;
#define tam 20 //max. total de elementos
main(){//Llenado y Salida de Arreglo Unidimensional
int n; //total elementos a ingresar
int arreglo[tam];//Arreglo de 20 elementos
int j=0; //contador de ciclo e indice del arreglo
cout<<" INICIO: Datos del arreglo."<<endl;
cout<<endl<<"Valores actuales del arreglo:"<<endl;
for(j=0;j<tam; j++)
cout<<"Elemento["<<j+1<<"]=\t "<<arreglo[j]<<endl;
system("pause");
cout<<endl<<"LLENADO DEL ARREGLO"<<endl;
cout<<"Cuantos elementos tendra Arreglo(como Max 20):\t";
cin>>n;
if((n>0)&&(n<=tam)){
cout<<"\n\nIngreso de sus datos hacia el Arreglo"<<endl;
for(j=0;j<n; j++){
cout<<endl<<"Ingrese el elemento ["<<j+1<<"]:\t";
cin>>arreglo[j];
}//fin for j
system("pause");
system("cls");
cout<<"\tVista de datos almacenados en arreglo"<<endl;
for(j=0;j<tam; j++)
cout<<"Elemento ["<<j+1<<"] = "<<arreglo[j]<<endl;
}else
cout<<"*** ERROR: Entrada no Valida ***";
getch();
}//fin de main

Introduccin a la Programacin

Gua # 8: Uso de arreglos Unidimensionales (Vectores)


+ Mtodo 2: inicializando posiciones al momento de declarar la matriz
+ Mtodo 3: asignando valor, ya sea: directamente, 2. de una variable, 3. de un proceso/calculo
Ejercicio 2: GUIA08ejemplo2.cpp
Metodo 2 y 3 para llenar las posiciones de un arreglo.
#include <iostream>
#include <conio.h>
#include<stdlib.h>
using namespace std;
//Demostracin de como ingresar valores a un arreglo
main(){
/* inicializando posiciones al momento
de declarar la matriz*/
float venta[6]={62,0,70,63.5,0,83.4};
int i; //contador para ndice de arreglo
float prom=0; //valor ventas promedio del semestre
float mayo=76.9; //guarda venta de mes de mayo
//asignando valor, ya sea:
venta[1]=56.4; //1. directamente
//(venta de febrero)
venta[4]=mayo; //2. de una variable
//3. de un proceso/calculo
//calcula venta promedio de 1er trimestre
prom=(venta[0]+venta[1]+venta[2])/3;

//mostrando valores almacenados en el vector num


cout<<endl<<"Montos mensuales del semestre:"<<endl;
for(i=0; i<6; i++)
cout<<endl<<"mes "<<i+1<<" : $ "<<venta[i];
getch();
//resultado de operar valores de un arreglo
cout<<endl<<endl<<"Venta promedio de 1er trimestre es de $";
cout<<prom;
getch();
}//fin de main

+ Operaciones con los elementos de un Arreglo


Ejercicio 3: GUIA8ejemplo3.cpp
Ordenar en forma ascendente los datos de un vector.
#include <iostream>
#include <conio.h>
#include <stdlib.h>
using namespace std;
main(){//Ordenamiento rapido de arreglos
int n,i; //variables locales de main
int k,l,mayor;

Introduccin a la Programacin

Gua # 8: Uso de arreglos Unidimensionales (Vectores)


int cont;
cout<<"PROGRAMA PARA ORDENAR ELEMENTOS DE ARREGLO\t";
cout<<"//ORDEN ASCENDENTE\\"<<endl;
cout<<"De cuantos elementos quiere su arreglo[1-20max]\t";
cin>>n;
system("cls");
int arreglo[n]; //arreglo de n elementos enteros
cout<<"Ingreso los "<<n<<" datos del Arreglo:"<<endl;
for(i=0; i<n; i++){
cout<<endl<<"Ingrese el elemento ("<<i+1<<"): ";
cin>>arreglo[i];
}//fin for i
//ordenamiento de arreglo en forma ascendente.
cont=n;
mayor=0;
for(k=1;k<cont; ++k){
for(l=cont-1;l>=k;--l){
//intercambio de posiciones
if(arreglo[l-1]>arreglo[l]){
mayor=arreglo[l-1];
arreglo[l-1]=arreglo[l];
arreglo[l]=mayor;
}//fin if
}//fin for l
}//fin for k
cout<<endl<<endl<<"Datos del arreglo ya ordenado de forma ASCENDENTE"<<endl;
for(int j=0;j<n;j++)
cout<<"elemento ("<<j+1<<")= "<<arreglo[j]<<endl;
getch();
}//fin main

Ejercicio 4: GUIA8ejemplo4.cpp
Determinar el numero mayor y menor de un vector de N elementos brindados por usuario.
#include <iostream>
using namespace std;
#include <conio.h>
#include <stdlib.h>
main(){ //Funcion principal
int n; //total de datos en arreglo
int i,mayor,menor; //contador de ciclos, valor mayor y menor del listado
cout<<"ENCONTRANDO NUMERO MAYOR Y MENOR ALMACENADOS EN UN ARREGLO";
cout<<endl<<endl<<"De cuantos elementos quiere su arreglo [1-20max]:\t";
cin>>n;
int vector[n]; //define arreglo para un total (n) de elementos enteros
system("cls");
cout<<"Ingrese c/u de los "<<n<<" datos del Arreglo:";
for(i=0; i<n; i++){
cout<< endl<<"Elemento ("<<i+1<<")?? : ";cin>> vector[i];
}//fin for i
//Se calcula menor y mayor valor dentro de arreglo
/*
(al iniciar) asigna los 1eros valores de arreglo
a las variables mayor y menor*/
mayor=vector[0]; menor=vector[0];
//comienza busqueda del verdadero dato mayor y menor en listado

Introduccin a la Programacin

Gua # 8: Uso de arreglos Unidimensionales (Vectores)

for(i=0;i<n;i++){
//evalua numero almacenado en arreglo con variable mayor
//si el numero del arreglo es mayor que la variable, actualiza valor
if(vector[i]>mayor)
mayor=vector[i];
//de manera similar, se compara ahora con variable menor, para actualizarla
if(vector[i]<menor)
menor=vector[i];
}//fin for i
//imprimir resultados
cout<<endl<<endl<<"RESULTADOS"<<endl;
cout<<endl<<"Numero mayor dentro del arreglo es "<<mayor;
cout<<endl<<endl<<"y menor valor en arreglo es "<<menor;
getch();
}//fin main

Ejercicio 5: GUIA8ejemplo5.cpp
Manejo de un arreglo de tipo carcter (char)
#include<iostream>
#include<conio.h>
using namespace std;
main(){
char nom[25];//cadena string de 25 caracteres
int edad;
cout<<"Digite nombre completo de alumno: ";
//captura cadenas con espacios
cin.getline(nom,25);
//captura cadenas sin espacios
//cin>>nom;
cout<<"Digite la edad del alumno: "; cin>>edad;
if (edad>=18) cout<<endl<<"\tAlumno "<<nom<<" es mayor de edad";
else cout<<endl<<"\tAlumno "<<nom<<" es menor de edad";
getch();
} //fin main

PROBLEMAS A RESOLVER:
Elabore el cdigo fuente de C++ que solucionen a cada uno de los problemas a continuacin:
Ejercicio 6: GUIA8final.cpp
Crear un programa que permita almacenar en un vector 10 nmeros enteros de todo tipo (positivos, negativos,
ceros) e indique despus el porcentaje (con una sola cifra decimal de exactitud) de nmeros pares e impares, asi
como la cantidad de ceros que fueron almacenados en dicho vector.

Introduccin a la Programacin

Gua # 8: Uso de arreglos Unidimensionales (Vectores)

VI. INVESTIGACION COMPLEMENTARIA


1.

Investigue 8 funciones (pertenecientes como minimo a 2 libreras diferentes de C/C++) para el manejo de
cadenas de caracteres en C/C++.
No tomar en cuenta a librera s t d i o . h
Elabore un programa ejemplo que en el que se demuestre a todas las funciones que investig anteriormente.
2. Desarrolle un programa en C que realice lo siguiente:
Solicite al contador del almacn La Milagrosa el monto de las ventas mensuales de todo el ao 2010.

El contador desea obtener los siguientes resultados:

Valor de la venta mensual promedio.

Obtenga el porcentaje de los meses del ao que cumplieron los siguientes niveles de ventas:
Nivel ventas

Descripcion

Minimo

Menos del 45% del promedio anual de ventas

Regular

Entre el 45% a 75% del promedio de ventas

Excelente

Mas del 75% del promedio mensual

Indique los nombres de los meses en los cuales la venta fue Excelente.

3.

Escriba un programa que lea una frase dada por usuario, para luego mostrar el total de palabras que la
conforman y el total de espacios en blanco que tiene la frase.

4.

Crear un vector que guarde las 9 notas mensuales (desde Enero hasta Septiembre) de un estudiante de
bachillerato. Una vez recibidas las notas, muestre al estudiante
a) nota promedio final
b) el porcentaje de meses en los cuales obtuvo menor nota que el promedio final
c) en cuales meses obtuvo notas mayores al promedio final.
Tomar en cuenta que una nota valida solo debe variar entre {0.0 a 10.0}.
No reciba una nueva nota mensual hasta que la nota actual a ingresar cumpla el rango indicado.
5.

Escriba un programa que determine, si una cadena de texto es palndromo. Es decir que se puede leer en
ambos sentidos, por ejemplo OSO al escribirla al revs resulta OSO.

VII. BIBLIOGRAFIA

Deitel, Harvey M. y Deitel, Paul J. CMO PROGRAMAR EN C++. 1ra Edicin. Editorial Mc Graw Hill
Pappas, Chris H. y Murray, William H. MANUAL DE REFERENCIA DE VISUAL C++ 6.0. 4ta Edicin
Editorial Prentice Hall (PEARSON).
Joyanes Aguilar, Lus. PROGRAMACIN EN C++ - ALGORITMOS, ESTRUCTURAS DE DATOS Y
OBJETOS. Editorial McGraw Hill, Espaa, 2000.

Introduccin a la Programacin