Sie sind auf Seite 1von 5

UNIVERSIDAD NACIONAL EXPERIMENTAL POLITCNICA

ANTONIO JOS DE SUCRE


VICERECTORADO PUERTO ORDAZ
DEPARTAMENTO DE INGENIERA ELECTRNICA
SECCIN DE COMPUTACIN
ASIGNATURA: COMPUTACIN II
LABORATORIO 01.
REPASO DE ARREGLOS.
OBJETIVOS.
Repasar el uso del IDE Borland C++ Builder 6 para la edicin, depuracin y compilacin de
programas.
Implementar programas utilizando arreglos unidimensionales y bidimensionales.
Estudiar las operaciones bsicas de estructuras de datos tipo arreglo.
PRE-REQUISITOS.
Sintaxis bsica de las instrucciones del lenguaje C++: declaracin, entrada, salida,
asignacin e instrucciones de control (estructuras de decisin y cclicas).
BASE TERICA.
1. Estructuras de Datos.
Las estructuras de datos, datos estructurados o tipo compuesto, son agrupaciones de otros
tipos de datos. En la siguiente tabla, se presenta una clasificacin bsica de las estructuras de
datos.
Segn el almacenamiento de los datos en memoria:
Estructuras Contiguas: se almacenan en la
Estructuras Enlazadas: se almacenan de forma
memoria de forma consecutiva.
salteada.
Dependiendo de s su tamao permanece fijo o no durante la ejecucin del programa:
Estructuras Dinmicas: su tamao puede
Estructuras Estticas: su tamao permanece fijo alterarse durante la ejecucin del programa.
a lo largo de la ejecucin del programa.
Normalmente las estructuras enlazadas son
siempre dinmicas.
1.1. Estructuras contiguas en C/C++: Arreglos y Cadenas de Caracteres.
Los arreglos (arrays) y las cadenas de caracteres (strings) son estructuras formadas por una
coleccin de datos, englobados bajo un mismo identificador (nombre) y se almacenan en memoria
en posiciones adyacentes, a los cuales se puede acceder de forma independiente.
2. Arreglos.
Un arreglo (llamados en ingls arrays) es una zona de almacenamiento contiguo, que
contiene una serie de elementos (datos) del mismo tipo relacionados bajo un mismo nombre.
Segn las dimensiones de los arreglos, existen tres tipos:

Laboratorio 01. Repaso de Arreglos. Computacin II. Semestre 2015-I.

Unidimensionales o
Vectores

Bidimensionales o
Matrices

Multidimensionales

2.1. Arreglos Unidimensionales o Vectores.


Los arreglos unidimensionales tambin conocidos como vectores, son un conjunto de datos
almacenados contiguamente en memoria y que estn asociados a un mismo identificador. Para
declarar un arreglo unidimensional o vector se debe utilizar la siguiente sintaxis:
Pseudocdigo
Tipo_Dato Nombre_Arr[N]

C++
Tipo_Dato Nombre_Arr[N];

Donde N representa la cantidad de elementos que poseer el vector.


2.2. Arreglos Bidimensionales o Matrices.
Se llaman matrices a los arreglos de dos dimensiones, es decir, a los arreglos cuyos elementos
vienen definidos por dos ndices. Se puede visualizar su organizacin como una tabla o matriz,
donde cada elemento tiene asignado 2 ndices: el primero representa la fila y el segundo la
columna. Para declarar una matriz se debe utilizar la siguiente sintaxis:
Pseudocdigo
Tipo_Dato Nombre_Arr[N, M]

C++
Tipo_Dato Nombre_Arr[N][M];

Donde N representa la cantidad de filas y M la cantidad de columnas que poseer la estructura.


Ejemplo 01.

En este ejemplo se carga un arreglo con los nmeros del 1 al 12 y luego se


muestran por pantalla.

#include <iostream.h>
#include <conio.h>
void main(void)
{
int t, i, N[3][4];
for(t=0;t<3;t++)
for(i=0;i<4;i++)
N[t][i]=(t*4)+i+1;
for(t=0;t<3;t++)
{
for(i=0;i<4;i++)
cout<<N[t][i]<<'\t'<<endl;
}
getch();
}

Laboratorio 01. Repaso de Arreglos. Computacin II. Semestre 2015-I.

3. Cadenas de Caracteres.
Uno de los usos ms comunes de los arreglos unidimensionales es la implementacin como
cadenas de caracteres. En C/C++ una cadena se define como un arreglo de caracteres de
cualquier longitud que termina con un carcter nulo. El carcter nulo se especifica como '\0' y es
un cero, por lo tanto, se debe agregar un elemento al tamao cuando se declaren. As por ejemplo
si se desea declarar un arreglo que va a contener una cadena de 10 elementos , se debera
declarar char s[11], dejando sitio para el carcter de fin de cadena.
Aunque no existe un tipo de datos cadena, se pueden definir constantes de tipo cadena como una
cadena de caracteres encerrada entre comillas. En este caso no es necesario agregar el fin de
cadena, ya que C/C++ lo hace automticamente.
C++ provee varias funciones que facilitan la manipulacin de cadenas, en la siguiente tabla se
muestran algunas de las ms importantes:
Funcin
strcpy(s1,s2);
strlen(s1);
strcat(s1,s2);
strcmp(s1,s2);
strcmpi(s1,s2);

Ejemplo 02.

Descripcin
Copia una cadena s2 a otra cadena s1.
Devuelve la longitud (bytes) de una cadena.
Concatena dos cadenas s1 y s2, y la cadena resultante queda en s1.
Compara dos cadenas. Devuelve 0 si son exactamente iguales (distingue
entre maysculas y minsculas), >0 si s1>s2 y <0 si s1<s2.
Compara dos cadenas. Devuelve 0 si son iguales (no discrimina entre
maysculas y minsculas), >0 si s1>s2 y <0 si s1<s2.

El siguiente cdigo muestra el uso de las funciones que manipulan cadenas de


caracteres. El programa lee dos cadenas de caracteres, determina su longitud, las
compara y por ltimo las concatena.

//Ejemplo 02
#include <iostream.h>
#include <conio.h>
#include <string.h>
void main(void)
{
char c1[80], c2[80];
cout<<"Cadena 1 = ";
cin>>c1;
cout<<"Cadena 2 = ";
cin>>c2;
cout<<"Longitud Cadena 1 = "<<strlen(c1)<<endl;
cout<<"Longitud Cadena 2 = "<<strlen(c2)<<endl;
if(!strcmp(c1,c2))
cout<<"Cadenas iguales"<<endl;
strcat(c1,c2);
cout<<"Concatenacion="<<c1;
}

Laboratorio 01. Repaso de Arreglos. Computacin II. Semestre 2015-I.

3.1. Arreglos de Cadenas.


Para crear un arreglo de cadenas se debe usar un arreglo bidimensional. El ndice izquierdo indica
el nmero de cadenas y el ndice de la derecha indica la cantidad mxima de caracteres por
cadena. Un ejemplo de declaracin sera:
char arr_cadenas[30][80];
Para acceder u operar a una cadena individual, solo hace falta especificar el ndice izquierdo.
Ejemplo 03.

El siguiente cdigo lee una lista de 10 nombres y los muestra en pantalla.

#include <iostream.h>
#include <string.h>
void main(void)
{
int i;
char NOMBRE[10][20]; //Matriz de 10 nombres y mximo 20 caracteres/nombre
for (i=0; i<10; i++)
{
cout<<"Nombre("<<i<<") : ";
cin>>NOMBRE[i];
}
for (i=0 ;i<10 ;i++)
cout<<"Nombre("<<i<<")=" <<NOMBRE[i]<<endl;
}

4. Funcin Random.
La funcin random(n) arroja nmeros aleatorios en el rango 0 n n-1. En el caso de que se
necesiten llenar estructuras para efectuar las pruebas del programa, se puede usar la funcin
random para generar los valores.
Ejemplo 04.

El cdigo que se muestra a continuacin llena una matriz TEMP[10][10] con


valores enteros entre 0 y 40.

randomize(); // inicializa la funcin random


for(i=0;i<=9;i++)
for(j=0;j<=9;j++)
TEMP[i][j]=random(41);

Laboratorio 01. Repaso de Arreglos. Computacin II. Semestre 2015-I.

LABORATORIO.
1. Ejercicio 01:
En el arreglo bidimensional (matriz) que se muestra abajo, se encuentran almacenadas las
cantidades de estudiantes por especialidad que han ingresado en los ltimos 4 aos en la
UNEXPO. Usted disear un algoritmo que mediante un men de opciones permita:
1) Registrar los datos de estudiantes ingresados en la matriz Ingreso.
2) Visualizar los datos registrados de forma tabulada.
3) Totalizar la cantidad de alumnos ingresados por especialidad en los ltimos 4 aos y
determinar cul fue la especialidad con mayor ingreso de alumnos.
4) Totalizar la cantidad de alumnos ingresados en cada ao por especialidad y determinar cul
fue el ao con menor ingreso de alumnos.
5) Salir.
Ingreso [5][4]
Especialidades

Elctrica
Electrnica
Industrial
Mecnica
Metalrgica
Esp[5][20]

Semestres
ndices
0
1
2
3
4
TotalxAo [4]

2012
0
35
50
45
30
30

190

2013
1
40
45
45
35
30

195

2014
2
45
50
55
40
35

225

2015
3
40
45
45
40
40

205

TotalxEsp [5]

160
185
190
145
135

Nota 1: utilice la funcin strcpy para asignarle los nombres de las especialidades al arreglo Esp.
Nota 2: Los datos mostrados en el esquema de arriba son solamente para ejemplo.

Das könnte Ihnen auch gefallen