Universidad Nacional Experimental
     “Francisco de Miranda”
 Aprendizaje Dialógico Interactivo
  Área: Ciencias de la Educación
Unidad Curricular: Computación II.
Es un arreglo de dos dimensiones. Es decir son estructuras de datos que
 agrupan muchos datos del mismo tipo, en donde cada elemento se puede
 trabajar individualmente y se puede referenciar con un mismo nombre.
 Se usan para representar datos que pueden verse como una tabla con filas
 y columnas.
                                Columnas


        A[0,0]         A[0,1]        A[0,2]         A[0,3]
        A[1,0]         A[1,1]        A[1,2]         A[1,3]
Filas
        A[2,0]         A[2,1]        A[2,2]         A[2,3]
        A[3,0]         A[3,1]        A[3,2]         A[3,3]
Declaración:

   Tipo dato nombre matriz [índice fila] [índice columna]

        Ej.: int Matriz[4][4];


Tipo        Nombre
                                  Numero                    Numero
 de          De la
                                  de Filas                     de
dato        Variable
                                                            Columna
Inicialización



A las matrices se le asignan automáticamente valores iniciales
predeterminados a cada uno de sus elementos, de acuerdo
a los siguientes criterios:
Si el tipo del arreglo es numérico, a sus elementos se les asigna el valor cero.
Si el tipo del arreglo es char, a sus elementos se les asigna el valor ‘u0000′.
Si el tipo del arreglo es bool, a sus elementos se les asigna el valor false.
Si el tipo del arreglo es una clase, a sus elementos se les asigna el valor null.
Operaciones


Las operaciones que se pueden realizar con vectores durante el proceso
de resolución de un problema son:
Lectura/escritura
Asignación
Actualización(inserción, eliminación, modificación)
Recorrido
Ordenación
Búsqueda

Inicialización de un vector o arreglo unidimensional:
se puede realizar de este modo:
 int Vector[5] = {3, -4, 10, 1, 0};
float N[ ] = {1, 2, 3, 6};
También se puede inicializar de la siguiente forma:
 int[10] Vector = {0};

Inserción de Elementos en un vector: Por lo general se emplean un
ciclo repetitivo que permita hacer el recorrido de cada subíndice, por
ejemplo:
cout<<"Introduzca los valores del vector: ";
          for(i=0;i<n;++i)
          {
          cout<<"Vector[“<< i+1<<"]: "; cin>>Vector[i];
           }



También se puede especificar de forma directa la posición y asignarle un
valor: Vector[1] = 10;


Recorrido de un vector: Para hacer el recorrido se usa una estructura
repetitiva. La cantidad de los mismos dependerán de lo que se desee, es
decir, recorrerlo completo o sólo una parte.
3.- Dado un vector de N números, calcular su valor máximo y la posición que
ocupa en la tabla.
#include<iostream>
using namespace std;
 int main()
 {
int i, n, vector[30],
max, posición=0;
Do
{
cout<<"Ingrese el total de elementos: ";
cin>>n; if(n<1 || n>30)
cout<<"Error, el numero debe estar comprendido entre 1 y 30n ";
}while(n<1 || n>30);
for(i=0; i<n; i++)
{ cout<<"Ingrese numero: ";
cin>>vector[i];
}
 max=vector[0];
for(i=1; i<n; i++)
if(vector[i]>max)
{ max=vector[i];
posicion=i;
Arreglos paralelos

Dos o más arreglos que utilizan el mismo subíndice para acceder a
elementos de distintos arreglos, se denominan arreglos paralelos. Estos
arreglos pueden procesarse simultáneamente.
De igual forma, se denominan arreglos paralelos debido a que los
componentes de un arreglo se corresponden con las componentes
de los otros arreglos. Por ejemplo, si estamos ordenando el arreglo
Arr1[i] se intercambia con Arr1[i+1] Es decir se deben intercambiar
todas las posiciones correspondientes de cada uno de ellos, vale
decir, Arr1[i] se intercambia con Arr1[i+1], Arr2[i] se intercambia
con Arr2[i+1], Arrn[i] se intercambia con Arrn[i+1].
Arreglos paralelos

Ejercicio:
     Se tienen dos arreglos. El primero contiene nombres de personas y el
     segundo contiene los sexos de las personas del primer arreglo,
     codificados como ´f´femenino y ´m´ masculino. Obtener a partir de
     estos otros dos arreglos, el primero de los cuales debe contener todos
     los nombres de los varones y el segundo, el nombre de todas las
     mujeres
En muchas ocasiones se requiere el proceso simultaneo de más de un
Arreglo (vector y/o matriz), que teniendo el mismo número de
elementos, sea capaz de almacenar tipos de datos distintos.



Se dispone de 5 notas de 40 alumnos almacenados en una matriz,

realice un programa que permita calcular la media de cada alumno

y lo almacene en un vector, también calcule la media de toda la

clase a partir de la entrada de las notas. Imprimir los resultados.
#include<iostream>
using namespace std;
 int main(){ int i, j;



float notas[40][5]={0}, vector[40]={0}, mediat, acumfil, acumtotal=0;
for(i=0; i<40; i++)
{
 acumfil=0;
for(j=0; j<5; j++)
{
do
{ cout<<"Ingrese nota: ";
cin>>notas[i][j];
if(notas[i][j]<0 || notas[i][j]>20)
cout<<"La nota debe estar entre 0 y 20”<<endl;
}
while(notas[i][j]<0 || notas[i][j]>20);
acumfil+=notas[i][j];
acumtotal+=notas[i][j]; }
vector[i]=acumfil/5;
}
mediat=acumtotal/200;
 cout<<"La matriz es: "<<endl;
for(i=0; i<40; i++){ for(j=0; j<5; j++)
cout<<notas[i][j]<<"t"; cout<<endl;
}
cout<<"El vector con la media de los alumnos es: "<<endl;
for(i=0; i<40; i++)
cout<<vector[i]<<endl;
cout<<"La media de toda la clase es: "<<mediat<<endl;
return 0;
 }

Array

  • 1.
    Universidad Nacional Experimental “Francisco de Miranda” Aprendizaje Dialógico Interactivo Área: Ciencias de la Educación Unidad Curricular: Computación II.
  • 2.
    Es un arreglode dos dimensiones. Es decir son estructuras de datos que agrupan muchos datos del mismo tipo, en donde cada elemento se puede trabajar individualmente y se puede referenciar con un mismo nombre. Se usan para representar datos que pueden verse como una tabla con filas y columnas. Columnas A[0,0] A[0,1] A[0,2] A[0,3] A[1,0] A[1,1] A[1,2] A[1,3] Filas A[2,0] A[2,1] A[2,2] A[2,3] A[3,0] A[3,1] A[3,2] A[3,3]
  • 3.
    Declaración: Tipo dato nombre matriz [índice fila] [índice columna] Ej.: int Matriz[4][4]; Tipo Nombre Numero Numero de De la de Filas de dato Variable Columna
  • 4.
    Inicialización A las matricesse le asignan automáticamente valores iniciales predeterminados a cada uno de sus elementos, de acuerdo a los siguientes criterios: Si el tipo del arreglo es numérico, a sus elementos se les asigna el valor cero. Si el tipo del arreglo es char, a sus elementos se les asigna el valor ‘u0000′. Si el tipo del arreglo es bool, a sus elementos se les asigna el valor false. Si el tipo del arreglo es una clase, a sus elementos se les asigna el valor null.
  • 5.
    Operaciones Las operaciones quese pueden realizar con vectores durante el proceso de resolución de un problema son: Lectura/escritura Asignación Actualización(inserción, eliminación, modificación) Recorrido Ordenación Búsqueda Inicialización de un vector o arreglo unidimensional: se puede realizar de este modo: int Vector[5] = {3, -4, 10, 1, 0}; float N[ ] = {1, 2, 3, 6}; También se puede inicializar de la siguiente forma: int[10] Vector = {0}; Inserción de Elementos en un vector: Por lo general se emplean un ciclo repetitivo que permita hacer el recorrido de cada subíndice, por ejemplo:
  • 6.
    cout<<"Introduzca los valoresdel vector: "; for(i=0;i<n;++i) { cout<<"Vector[“<< i+1<<"]: "; cin>>Vector[i]; } También se puede especificar de forma directa la posición y asignarle un valor: Vector[1] = 10; Recorrido de un vector: Para hacer el recorrido se usa una estructura repetitiva. La cantidad de los mismos dependerán de lo que se desee, es decir, recorrerlo completo o sólo una parte.
  • 7.
    3.- Dado unvector de N números, calcular su valor máximo y la posición que ocupa en la tabla. #include<iostream> using namespace std; int main() { int i, n, vector[30], max, posición=0; Do { cout<<"Ingrese el total de elementos: "; cin>>n; if(n<1 || n>30) cout<<"Error, el numero debe estar comprendido entre 1 y 30n "; }while(n<1 || n>30); for(i=0; i<n; i++) { cout<<"Ingrese numero: "; cin>>vector[i]; } max=vector[0]; for(i=1; i<n; i++) if(vector[i]>max) { max=vector[i]; posicion=i;
  • 8.
    Arreglos paralelos Dos omás arreglos que utilizan el mismo subíndice para acceder a elementos de distintos arreglos, se denominan arreglos paralelos. Estos arreglos pueden procesarse simultáneamente. De igual forma, se denominan arreglos paralelos debido a que los componentes de un arreglo se corresponden con las componentes de los otros arreglos. Por ejemplo, si estamos ordenando el arreglo Arr1[i] se intercambia con Arr1[i+1] Es decir se deben intercambiar todas las posiciones correspondientes de cada uno de ellos, vale decir, Arr1[i] se intercambia con Arr1[i+1], Arr2[i] se intercambia con Arr2[i+1], Arrn[i] se intercambia con Arrn[i+1].
  • 9.
    Arreglos paralelos Ejercicio: Se tienen dos arreglos. El primero contiene nombres de personas y el segundo contiene los sexos de las personas del primer arreglo, codificados como ´f´femenino y ´m´ masculino. Obtener a partir de estos otros dos arreglos, el primero de los cuales debe contener todos los nombres de los varones y el segundo, el nombre de todas las mujeres
  • 12.
    En muchas ocasionesse requiere el proceso simultaneo de más de un Arreglo (vector y/o matriz), que teniendo el mismo número de elementos, sea capaz de almacenar tipos de datos distintos. Se dispone de 5 notas de 40 alumnos almacenados en una matriz, realice un programa que permita calcular la media de cada alumno y lo almacene en un vector, también calcule la media de toda la clase a partir de la entrada de las notas. Imprimir los resultados.
  • 13.
    #include<iostream> using namespace std; int main(){ int i, j; float notas[40][5]={0}, vector[40]={0}, mediat, acumfil, acumtotal=0; for(i=0; i<40; i++) { acumfil=0; for(j=0; j<5; j++) { do { cout<<"Ingrese nota: "; cin>>notas[i][j]; if(notas[i][j]<0 || notas[i][j]>20) cout<<"La nota debe estar entre 0 y 20”<<endl; }
  • 14.
    while(notas[i][j]<0 || notas[i][j]>20); acumfil+=notas[i][j]; acumtotal+=notas[i][j];} vector[i]=acumfil/5; } mediat=acumtotal/200; cout<<"La matriz es: "<<endl; for(i=0; i<40; i++){ for(j=0; j<5; j++) cout<<notas[i][j]<<"t"; cout<<endl; } cout<<"El vector con la media de los alumnos es: "<<endl; for(i=0; i<40; i++) cout<<vector[i]<<endl; cout<<"La media de toda la clase es: "<<mediat<<endl; return 0; }