SlideShare una empresa de Scribd logo
1 de 19
(Arrays y estructuras)
Fundamentos de Programación
     Paralelo:       "E"
      Grupo :          2
  Integrantes: Stalin Nuñez
               Juan Pablo Condoy
                Pablo Briseño
                Aracely Agreda
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.

    Arreglos
unidimensionales
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.




Notas (1)   Notas (2)   …………… Notas (I)   …………… Notas (N)
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
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.
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.
¿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
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.
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.
¿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.
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;
     }
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;
   }
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");
}
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];
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)                                }
 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


Gracias x su atención

Más contenido relacionado

La actualidad más candente

Insercion directa
Insercion directaInsercion directa
Insercion directa
abelpit2
 
Arrays Bidimensionales y Multidimensionales - Carlos Correa
Arrays Bidimensionales y Multidimensionales - Carlos CorreaArrays Bidimensionales y Multidimensionales - Carlos Correa
Arrays Bidimensionales y Multidimensionales - Carlos Correa
Carlitos Correa Jr.
 
Arboles presentacion
Arboles presentacionArboles presentacion
Arboles presentacion
jenny
 
Capítulo 6 funciones y procedimiento
Capítulo 6 funciones y procedimientoCapítulo 6 funciones y procedimiento
Capítulo 6 funciones y procedimiento
EnAutomático
 

La actualidad más candente (20)

Arreglos
ArreglosArreglos
Arreglos
 
Arreglos (unimensionles y matrices (bidimensionales)
Arreglos (unimensionles y matrices (bidimensionales)Arreglos (unimensionles y matrices (bidimensionales)
Arreglos (unimensionles y matrices (bidimensionales)
 
Arreglos
ArreglosArreglos
Arreglos
 
Estructura switch case
Estructura switch caseEstructura switch case
Estructura switch case
 
Programación 3: colas
Programación 3: colasProgramación 3: colas
Programación 3: colas
 
Estructuras de datos y tipos de datos abstractos
Estructuras de datos y tipos de datos abstractosEstructuras de datos y tipos de datos abstractos
Estructuras de datos y tipos de datos abstractos
 
Insercion directa
Insercion directaInsercion directa
Insercion directa
 
Array List
Array ListArray List
Array List
 
Arrays Bidimensionales y Multidimensionales - Carlos Correa
Arrays Bidimensionales y Multidimensionales - Carlos CorreaArrays Bidimensionales y Multidimensionales - Carlos Correa
Arrays Bidimensionales y Multidimensionales - Carlos Correa
 
Arreglos en C
Arreglos en CArreglos en C
Arreglos en C
 
Estructuras De Datos-Arreglos
Estructuras De Datos-Arreglos Estructuras De Datos-Arreglos
Estructuras De Datos-Arreglos
 
Arboles presentacion
Arboles presentacionArboles presentacion
Arboles presentacion
 
Java generics
Java genericsJava generics
Java generics
 
arreglos.ppt
arreglos.pptarreglos.ppt
arreglos.ppt
 
Vectores y Matrices
Vectores y MatricesVectores y Matrices
Vectores y Matrices
 
Listas doblemente enlazadas C++ UP
Listas doblemente enlazadas C++ UPListas doblemente enlazadas C++ UP
Listas doblemente enlazadas C++ UP
 
Capítulo 6 funciones y procedimiento
Capítulo 6 funciones y procedimientoCapítulo 6 funciones y procedimiento
Capítulo 6 funciones y procedimiento
 
Machine learning ( Part 2 )
Machine learning ( Part 2 )Machine learning ( Part 2 )
Machine learning ( Part 2 )
 
Tipos de Datos Abstractos (TDA)
Tipos de Datos Abstractos (TDA)Tipos de Datos Abstractos (TDA)
Tipos de Datos Abstractos (TDA)
 
6.funciones y recursividad en c++
6.funciones y recursividad en c++6.funciones y recursividad en c++
6.funciones y recursividad en c++
 

Similar a Arrays unidimensionales (20)

Clase 9- programacion
Clase 9- programacionClase 9- programacion
Clase 9- programacion
 
ARRAYS (LISTAS Y TABLAS) EN C++
ARRAYS (LISTAS Y TABLAS) EN C++ARRAYS (LISTAS Y TABLAS) EN C++
ARRAYS (LISTAS Y TABLAS) EN C++
 
Problemas resueltos de c++
Problemas  resueltos de c++Problemas  resueltos de c++
Problemas resueltos de c++
 
Problemas+resueltos+de+c$2 b$2b
Problemas+resueltos+de+c$2 b$2bProblemas+resueltos+de+c$2 b$2b
Problemas+resueltos+de+c$2 b$2b
 
Arreglos
ArreglosArreglos
Arreglos
 
Estructuras
Estructuras Estructuras
Estructuras
 
Arreglos en C++
Arreglos en C++Arreglos en C++
Arreglos en C++
 
Vectores en c++
Vectores en c++Vectores en c++
Vectores en c++
 
12 Arreglos
12 Arreglos12 Arreglos
12 Arreglos
 
Arreglos
ArreglosArreglos
Arreglos
 
Arreglos
ArreglosArreglos
Arreglos
 
Transparencias8
Transparencias8Transparencias8
Transparencias8
 
Informe tecnico
Informe tecnicoInforme tecnico
Informe tecnico
 
Jorge informe tecnico
Jorge informe tecnicoJorge informe tecnico
Jorge informe tecnico
 
Grupo4
Grupo4Grupo4
Grupo4
 
Grupo4
Grupo4Grupo4
Grupo4
 
Grupo4
Grupo4Grupo4
Grupo4
 
Grupo4
Grupo4Grupo4
Grupo4
 
Grupo4
Grupo4Grupo4
Grupo4
 
Clase 09
Clase 09 Clase 09
Clase 09
 

Arrays unidimensionales

  • 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.
  • 3. Arreglos unidimensionales
  • 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.
  • 5.  Notas (1) Notas (2) …………… Notas (I) …………… Notas (N)
  • 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
  • 19.  Gracias x su atención