Arreglos
Las variables de tipos de datos simples son las variables declaradas int, float y char. Esto significa que pueden tener un solo valor en un momento dado. Las variables simples están predefinidas en C++ (son parte del lenguaje). Sin embargo, muchas veces se trabaja con una colección o grupo de datos relacionados y es más apropiado usar variables que tienen la capacidad de tener más de un valor a la vez. Estas variables son llamadas variables estructuradas y se componen de tipos de dato simple. Este es el concepto de arreglo o “array”. A continuación las reglas de los arreglos:
¿Cómo se declara un arreglo?
TipoDeDatosSimple NombreDelArreglo [NúmeroDeElementos]
ejemplo:
int edad[6]
¿Cómo se acceden los elementos de un arreglo?
Ø
Para acceder un elemento del
arreglo, se especifica el nombre del arreglo y se añade un índice entre [ ].
Este índice describe cuán lejos está el elemento deseado del primer elemento
del arreglo. En otras palabras, indica la distancia entre el primer elemento y
el elemento deseado. No se especifica el número del elemento.
Ø
El primer elemento tiene
como índice 0, pues está desplazado 0 posiciones del elemento inicial.
Ø
El índice también se conoce
como “offset” y siempre es uno menos que el número del elemento.
Ejemplo:
int edad[6]
5 |
6 |
21 |
4 |
5 |
26 |
3 |
4 |
20 |
2 |
3 |
23 |
1 |
2 |
19 |
0 |
1 |
25 |
índice elemento contenido
Arreglos con “float”:
float
numero[20];
Arreglos con “char”:
char nombre[20]; esto
es un “string”
string
– arreglo de caracteres. Para entrar datos en un string se usa la función getline
que está en la librería string.h. La función getline lee los espacios
entre las letras y los acepta en el campo. La instrucción cin lee hasta
donde encuentra espacios; elimina los caracteres después de los espacios.
Ejemplo:
#
include <iostream.h>
#include
<string.h>
main()
{
char nombre[20];
cout << “Entre un nombre: ”;
cin.getline(nombre,20);
cout << endl << nombre
<< endl;
return(0);
}
Resumen de arreglos:
1.
Un arreglo se compone de
varios datos de tipo simple; todos del mismo tipo.
2.
Un arreglo se define
escribiendo el tipo de datos que tendrá, el nombre y la cantidad de elementos
entre [ ].
3.
Para accesar un elemento del
arreglo, se especifica el nombre del arreglo junto con un índice entre [ ].
Este índice especifica cuán lejos está el elemento que se desea accesar del
elemento inicial.
4.
Una forma rápida de
inicializar un arreglo (inicialización en línea) es:
int
numero[4] = {34, 22, 45,7};
5.
Se puede usar arreglos de
tipos de datos float, int y char.
6.
Un arreglo de caracteres
(char) es un string.
Funciones
Como en el mundo real los programas son largos y complicados, se usa un diseño “top-down”, en el que se descomponen problemas complejos en tareas más pequeñas y manejables. Estas pequeñas tareas forman los módulos, los cuales se unen para hacer el programa completo. Toda función tiene un Input, con el que realiza un Proceso para generar un Output.
Ventajas del diseño
top-down:
1.
Cada módulo es pequeño y
fácil de componer o escribir.
2.
Cada módulo se puede probar
por separado, lo que facilita eliminar errores.
3.
Cuando se trabaja en grupo,
cada módulo puede ser desarrollado por personas diferentes, acelerando el
desarrollo del programa total.
4.
Un módulo se escribe tan
solo una vez, pero se puede usar cada vez que sea necesario.
5.
Cuando un módulo defina una
acción en particular, puede ser guardado en una librería y ser usado en
programas futuros.
En C++ los módulos se
conocen como funciones y consisten de un prototipo y una definición:
-
El prototipo se escribe
antes de comenzar el programa principal (main).
-
La definición se escribe
después de que el programa principal ha terminado.
El
prototipo:
ð
El Input de la función se
coloca entre paréntesis y se conoce como parámetro de input; el parámetro es
simplemente una variable. Siempre se especifica el tipo de datos del parámetro
y se le da un nombre. Esta variable pertenece tan solo a esa función, por lo
que se llama variable local o interna.
ð
A la función se le da un
nombre único. Se puede usar cualquier nombre, siempre que no sea una palabra
reservada de C++. Se recomienda que el nombre tenga relación con el proceso que
realiza la función.
ð
Es necesario especificar el
tipo de datos que genera la función. Cuando la función termina sus acciones,
regresa un dato al programa principal. La función tan solo puede regresar un
dato de tipo simple, hasta ahora los estudiados son int, char y float.
Con las funciones se
puede usar otro tipo de datos: void. El "void" significa que la
función no tiene input o output, dependiendo de dónde se coloque.
Ejemplo
de prototipos: void
Show(int x);
int Gather(void);
int
Square(int x);
Cómo definir una función en el programa:
La definición es donde están escritas las
instrucciones que se realizarán en la función. Es como un programa normal de
C++, donde se puede incliur sus propias variables, instrucciones y operaciones.
Todo lo que se defina en la función pertenece tan solo a ella y no tiene efecto
en ningún otro lugar; o sea las variables, instrucciones y operaciones son
localesd o internas en la función.
Ejemplo
de definición:
void Show(int x) // Igual que en el
prototipo, pero sin punto y coma (;)
{
cout << "El número es: "
<< x << endl;
}
Para
llamar una función:
Al llamar una función, el programa salta a la definición de la función y la ejecuta. Si la función tiene un parámetro de input, se debe proveer ese valor cuando se llama la función. Si tiene un output, se debe proveer un lugar donde guardarlo.
Ejemplo
de una función sin input, con output:
Prototipo: int Tomar(void);
Definición: int Tomar(void)
{
int num;
cout
<< "Entre un numero: ";
cin >>
num;
return(num);
}
Llamada: numero = Tomar();
Ejemplo
de una función con input, sin output:
Prototipo: void Presentar(int x);
Definición: void Presentar(int x)
{
cout
<< "El resultado es: "<< x << endl;
}
Llamada: Presentar(numero);
Ejemplo
de una función con input, con output:
Prototipo: int Cuadrado(int x);
Definición: int Cuadrado(int x)
{
x
= x * x;
return(x);
}
Llamada:
respuesta =
Cuadrado(numero);
Ejemplo
del programa que llamaría a los módulos:
# include <iostream.h>
void Presentar(int x); // Prototipos
int Tomar(void);
int Cuadrado(int x);
main()
{
int numero;
int respuesta;
numero = Tomar();
respuesta = Cuadrado(numero);
Presentar(respuesta);
return(0);
}
// Aquí se escriben
las definiciones
Pasando
el valor:
Cuando un valor es pasado a una función en
su parámetro de input, el contenido de la variable se copia a la variable
interna declarada en la función. Dentro de la función solo se manipula el valor
copiado; el valor original (fuera de la función) no cambia. El resultado del
valor manipulado es el output de la función y es totalmente independiente del
valor original.
Cualquier declaración de variable
realizada antes de main() es conocida como declaración externa o global. Una
variable global puede ser usada en cualquier lugar en el programa.
Cualquier declaración de variable
realizada dentro de una función es una declaración interna. Estas declaraciones
pertenecen a la función y no se pueden accesar desde ningún lugar fuera de la
función.