¿Qué es un arreglo?

Anuncio
Licenciatura en Ciencia de la Computación
COMPUTACIÓN I
ARREGLOS
Rosa Barrera Capot
[email protected]
¿Qué es un arreglo?
Es un conjunto de datos donde:
Cada dato tiene su posición
Todos los datos son del mismo tipo
Unidimensionales, bidimensionales, etc.
NO EXISTEN ARREGLOS DE TIPOS
“MEZCLADOS”
ARREGLOS
UNIDIMENSIONALES
Declaración de Arreglos
Formato :
TIPO Nom_var[longitud entera];
Donde Tipo puede ser:
 int (entero)
long (entero largo)
short (entero corto)
 float (real)
double (real double)
 char (carácter)
Otros …..
Notas Importantes
El índice del primer elemento del arreglo es 0
La longitud del arreglo siempre es una constante
entera positiva.
Se generan n espacios de memoria de tipo <tipo>,
independiente que se ocupen o no todos.
El índice del elemento no es el valor (contenido) de
dicho elemento
El nombre del arreglo indica donde se localiza el
grupo en la memoria de la computadora
Dato 0
0
Dato 1
1
Dato 2
2
Dato 3
3
Dato 4
4
Dato 5
5
…..
Dato n
….
n
Manejo de Arreglos (1)
• Si se define un arreglo
int a[5];
En memoria se generan 5 espacios
de memoria de tipo entero
a[3]
a[0]
a[1]
a[4]
a[2]
Manejo de Arreglos (2)
• a[0] = 5
• a[3]= a[0] + 6;
• a[2] = a[0] * a[3];
11
5
a[3]
a[0]
a[1]
55
a[2]
a[4]
Manejo de Arreglos (3)
Para Mayor simplicidad en el manejo, trabajaremos
visualmente un arreglo como:
a =
5
0
1
55
11
2
3
¿Qué contiene a[1] y a[4]?
4
Primeros programas en C++
Programa que ingresa elementos a un arreglo y luego los muestra.
#include <iostream.h>
int main()
{ int i,n, a[20]; // def. de variables
cout <<“Cuantos datos desea ingresar”;
cin >> n;
for( i=0; i < n; i ++)
{ cout << “ Ingrese dato” << i+1 <<“: “;
cin >> a[i];
}
cout << “ Los datos que usted ingreso son:” << endl;
for( i=0; i < n; i ++)
cout << a[i] << “\t”;
return 0;
}
Dato 0
0
Dato 1
1
Dato 2
2
Dato 3
3
Dato 4
4
Dato 5
5
…..
Dato n
….
19
Datos Prácticos:
Si se desea inicializar un arreglo en elementos
conocidos la forma se puede ver por los siguientes
ejemplos:
1. Si se desea inicializar el arreglo en los elementos
7, 17 y 21, hay dos formas de hacerlo:
 int a[]={7,17,21};
 int a[3]={7,17,21};
2. Si se desea inicializar todos los elementos del
arreglo en un mismo valor, por ejemplo 0:
 int a[10]={0};
Datos Prácticos:
Conviene definir una variable de tipo constante
para el máximo en los arreglos:
#define MAX 20
 Para pasar como parámetro un arreglo, sólo se
envía el nombre de la variable, pues esta
contiene la dirección del primer elemento del
arreglo.
 Por defecto, al pasar un arreglo a una función,
este es un parámetro por referencia
Programa que ingresa elementos a un arreglo y luego los muestra.
#include <iostream.h>
#define MAX 20
void llenar (int a[MAX], int n);
//función en la que se ingresan valores al arreglo
void Mostrar (int a[MAX], int n);
//función en la que se muestran los valores del
arreglo
int main()
{ int n, a[MAX]; // def. de variables
cout <<“Cuantos datos desea ingresar
(MAX”<<MAX<<“ )”;
cin >> n;
llenar(a,n);
cout << “ Los datos que usted ingreso son:” <<
endl;
Mostrar(a,n);
return 0;
}
void llenar (int a[MAX], int n)
{ int i;
for( i=0; i < n; i ++)
{ cout << “ Ingrese dato”
<< i+1 <<“: “;
cin >> a[i];
}
void Mostrar (int a[MAX], int n);
{ int i;
for( i=0; i < n; i ++)
cout << a[i] << “\t”;
}
¿CÓMO
NOS ASEGURAMOS QUE EL
USUARIO INGRESE SÓLO HASTA EL
MÁXIMO QUE TENEMOS?
Programa que ingresa elementos a un arreglo y luego los muestra.
#include <iostream.h>
#define MAX 20
void llenar (int a[MAX], int n);
//función en la que se ingresan valores al arreglo
void Mostrar (int a[MAX], int n);
//función en la que se muestran los valores del
arreglo
int pide_n()
// Función que retorna largo válido del arreglo
int main()
{ int n, a[MAX]; // def. de variables
n= pide_n();
llenar(a,n);
cout << “ Los datos que usted ingreso son:”
<< endl;
Mostrar(a,n);
return 0;
}
void llenar (int a[MAX], int n)
{ int i;
for( i=0; i < n; i ++)
{ cout << “ Ingrese dato”
<< i+1 <<“: “;
cin >> a[i];
}
void Mostrar (int a[MAX], int n);
{ int i;
for( i=0; i < n; i ++)
cout << a[i] << “\t”;
}
int pide_n()
{ int n;
do{
cout << “Ingrese natural
<= ” << MAX;
cin >> n;
if (n < 0 || n > MAX)
cout << “No valido, intente
nuevamente”;
}while(n < 0 || n >MAX);
return n;
}
Descargar