Beruflich Dokumente
Kultur Dokumente
Unidimensionales o
Vectores
Bidimensionales o
Matrices
Multidimensionales
C++
Tipo_Dato Nombre_Arr[N];
C++
Tipo_Dato Nombre_Arr[N][M];
#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();
}
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.
//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;
}
#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.
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.