1. (Arrays y estructuras)
Fundamentos de Programación
Paralelo: "E"
Grupo : 2
Integrantes: Stalin Nuñez
Juan Pablo Condoy
Pablo Briseño
Aracely Agreda
2. Arreglos (Arrays)
Definición
Un arreglo puede definirse como un grupo o una
colección finita, homogénea y ordenada de
elementos. Los arreglos pueden ser de los siguientes
tipos:
Arreglos unidimensionales.
Arreglo bidimensionales.
Arreglos multidimensionales.
4. Vectores
Es una secuencia ordenada de elementos como:
x [1], x [2],… x[n]
El límite inferior no tiene porque empezar en uno.
Por ejemplo:
L [0], L [1], L [2], L [3], L [4], L [5]
Contiene 6 elementos y su límite inferior es 0 y el
superior es 5.
6. Los vectores pueden tener datos no numéricos, es decir,
tipo "caracter".
Por ejemplo un vector que representa las frutas que
se venden en el mercado.
Frutas (1) Uvas
Frutas (2) Manzanas
. .
. .
. .
Frutas (I) Papayas
. .
. .
. .
Frutas(N) melocotones
7. Cada elemento de un vector se puede procesar como si
fuese una variable simple al ocupar una posición de
memoria. Así:
*Esta propiedad significa que cada elemento de un
vector es accesible directamente y es una de las ventajas
más importantes de usar un vector: almacenar un
conjunto de datos.
8. Operaciones con arreglos
Las operaciones en arreglos pueden clasificarse de la siguiente forma:
Lectura: este proceso consiste en leer un dato de un arreglo y asignar un
valor a cada uno de sus componentes
Escritura: Consiste en asignarle un valor a cada elemento del arreglo.
Asignación: No es posible asignar directamente un valor a todo el arreglo
Actualización: Dentro de esta operación se encuentran las operaciones de
eliminar, insertar y modificar datos. Para realizar este tipo de operaciones
se debe tomar en cuenta si el arreglo está o no ordenado.
Ordenación.
Búsqueda.
Insertar.
Borrar.
Modificar.
9. ¿Cómo definir un vector?
ACCEDER A UN ELEMENTO DEL ARRAY:
Sintaxis en C++: nombre[i];
<Tipo>nom_array[<limite>]; Dónde: 0 <= i < n
int A[4] = {0, 1, 2, 3}; Recorrido: Usando bucles incrementamos el
índice.
Ejemplos:
int a[5]; Vector de 5 enteros
float b[5]; vector de 5 flotantes
10. Inicialización de un
vector
a[] = {5,15,20,25,30};
float b[] = {10.5,20.5,30.5,12.5,50.5}
Producto product[] = {celular,calculadora,camara,ipod,usb}
a[ ]= 5
a[ ]= 15 Como hay 5 elementos en cada array,
a[ ]= 20 automáticamente se le asignará 5 espacios de
a[ ]= 25 memoria a cada vector. Pero si trato de crear el
a[ ]= 30 vector de la forma int a[]; el compilador
mostrará un error, porque no se indicó el tamaño
del vector ni tampoco inicializó sus elementos.
11. Para modificar un vector
Asigno valores a los elementos de un vector indicando
su posición:
a[4] = 30; // le asigno el valor 30 a la posición 4 del
vector, es decir, al 5to elemento.
product[2].setPrecio(300) // le asigno un precio de
300 al producto en la posicion 2, o sea al tercer
elemento.
Obviamente el método setPrecio() debe de estar
implementado.
12. ¿Cómo definir el tamaño
o rango de un vector?
Se puede considerar el vector TEMPERATURA que contiene las
temperaturas horarias registradas en cada ciudad durante las
veinticuatro horas del día. Este vector constará de veinticuatro
elementos de tipo real, ya que las temperaturas normalmente no
serán enteras siempre.
El valor mínimo permitido de un vector se denomina límite inferior
del vector (L) y el valor máximo permitido se denomina límite
superior (U). En este ejemplo el límite inferior es 1 y el límite
superior es 24.
TEMPERATURAS (I) donde 1 <= I <= 24
El número de elementos de un vector se denomina rango del vector.
El rango del vector A(L:U) es U-L+1. El rango del vector B(1:n) es
n.
13. Asignación y lectura de
datos de un vector
#include <iostream>
using namespace std;
int main()
{
int F[5];
int x,y;
x=0;
while(x<5)
{
cout<<"ingrese un numero: "<<endl;
cin>>F[x];
x++;
}
x=0;
while(x<5)
{
cout<<F[x];
x++;
}
return 0;
}
14. Actualizar datos de un
vector
#include <iostream>
using namespace std;
int main()
{
int F[6]={2,4,5,6};
int x,y,n;
for(int x=0; x<4; x++)
{
cout<<F[x]<<endl;
}
F[5]=6;
F[6]=7;
for(int x=0; x<1; x++)
{
cout<<F[5]<<endl;
cout<<F[6]<<endl;
}
return 0;
}
15. Presentar una cadena
como vector
#include <iostream>
#define Flchar 5//dimension
using namespace std;
int main()
{
char A[Flchar]={'H','o','l','a'};
for(int i=0;i<Flchar;i++)
cout<<A[i];
system("pause>null");
}
16. Ejercicio de //Semilla de números aleatorios
aplicación 1 srand(time(NULL));
#include <iostream> //LlenarArregloUsuario(A,tamA);
#include <cstdlib>
#include <ctime> LlenarArregloAutomatico(A,tamA,50,100);
using namespace std; cout << "nnA:n";
void LlenarArregloUsuario(int A[],int t); PresentarArreglo(A,tamA);
void PresentarArreglo(int A[],int t);
void LlenarArregloAutomatico(int A[],int LlenarArregloAutomatico(B,tamA,1,50);
t,int limInf, int limSup); cout << "nnB:n";
void SumarArreglos(int A[], int B[], int PresentarArreglo(B,tamA);
C[],int t);
int ObtenerMaximo(int A[], int t); cout << "C = A + B :n";
SumarArreglos(A,B,C,tamA);
int main() PresentarArreglo(C,tamA);
{
int tamA; //Tamaño del arreglo cout << "Valor Máximo de A: " <<
ObtenerMaximo(A,tamA);
cout << "Ingrese el tamanio del arreglo: "; return 0;
cin >> tamA; }
int A[tamA];
int B[tamA];
int C[tamA];
17. int ObtenerMaximo(int A[], int t) {
{ for (int i=0;i<t;i++)
int max; {
max = A[0]; A[i] = limInf + rand() % (limSup + 1 -
for (int i=0;i<t;i++) limInf);
{ }
if(A[i]>max) }
{ void LlenarArregloUsuario(int A[],int t)
max = A[i]; {
} for (int i=0;i<t;i++)
} {
return max; cout << "A["<<i<<"]:";
} cin >> A[i];
void SumarArreglos(int A[], int B[], int C[],int }
t) }
{ void PresentarArreglo(int A[],int t)
for (int i=0;i<t ;i++) {
{ for (int i=0;i<t;i++)
C[i] = A[i]+B[i]; {
} cout << "A["<<i<<"]:" << A[i]<<endl;
} }
void LlenarArregloAutomatico(int A[],int t,int system "pause";
limInf, int limSup) }
18. BIBLIOGRAFÍA
Programación en C++. Algoritmos, estructuras de datos y objetos. L.
Joyanes. McGraw-Hill, 2000
Cómo programar en C/C++. H.M. Deitel, P.J. Deitel. Prentice Hall, 1995
Pascal. Dale/Orshalick. Ed. McGraw Hill 1986
Programación I. José A. Cerrada y Manuel Collado. U.N.E.D.1993.
Fundamentos de Programación. Joyanes Aguilar. McGraw Hill. 2ª Edición,
1996.
Introduction to programming with modula-2. Saim Ural/Suzan Ural.
Wiley. 1987
Schildt Herbert, C++ Para programadores. McGraw-Hill. 1996.
Páginas web:
http://es.wikipedia.org/wiki/Matriz_(matem%C3%A1tica)
http://www.scribd.com/doc/71371655/40/Arrays-de-varias-
dimensiones
http://profesores.fi-b.unam.mx/jareyc/LabComping/p12.pdf
http://rsta.pucmm.edu.do/tutoriales/computacion/VB/leccion%2014.ht
m
http://enriquebarrueto0.tripod.com/algoritmos/cap06