arreglos unidimensionales
TRANSCRIPT
ARREGLOS UNIDIMENSIONALES
Ing. Betty Suárez Torres
VECTORES
Un arreglo se define como una variable que permite almacenar un conjunto de datos del mismo tipo organizados en una sola columna y uno o mas renglones.
1510-5001
100
…
N[n]0
1
2
3
4
n-1
…
NOMBRE DEL VECTOR
ELEMENTO DEL VECTOR
Ej:N[2] = 50
POSICION DEL VECTOR
CARACTERÍSTICAS
• Homogéneos significa que todos los elementos son del mismo tipo.
• Ordenados significa que hay un primer elemento, un segundo elemento, y así sucesivamente. Además cada uno de los componentes o elementos de la estructura son igualmente accesibles, y pueden seleccionarse de forma directa, indicando la posición que ocupa la componente dentro de la estructura.
• Finita significa que hay también un último elemento.• Tamaño fija significa que el tamaño del array debe ser
conocido en tiempo de compilación; pero no significa que todos los elementos del array tengan significado.
VECTORES
•DECLARACIÓNstatic array<int>^ vector = gcnew array<int>(10);
•LLENAR DATOSvector[c]=Convert::ToInt16(txtnumero->Text);c=c+1;for (Int16 i=0;i<10;++i)
{lstnumeros->Items->Add (vector[i]);
}
TIPO DE DATO DEL VECTOR TAMAÑO
DEL VECTOR
VECTORES …
• MOSTRAR EL VECTOR
for (Int32 i=0;i<c;++i)
{
lstnumeros->Items->Add (vector[i]);
}
ES COMÚN UTILIZARPARA ARREGLOS
EL CONTROL LISTBOX
OPERACIONES ELEMENTALES CON VECTORES
• Acceso a los elementos.
• Asignación.
• Igualdad.
• Lectura/escritura.
• Recorrido (acceso secuencial).
ACCESO A LOS ELEMENTOS
• Se puede acceder a cada componente de una variable de array usando su nombre seguido de un índice entre corchetes.
• El índice de un elemento de un array es un valor natural que indica el orden del elemento dentro del array.
• Los índices comienzan siempre por 0, es decir el primer elemento de un array tiene índice 0.
private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) {int sp=0,sn=0;for (Int32 i=0;i<c;++i)
{if (vector[i]>0) {
listBox1->Items->Add(vector[i]);sp=sp+vector[i];
}else{
if(vector[i]!=0){listBox2->Items->Add(vector[i]);sn=sn+vector[i];
}}
}textBox2->Text=Convert::ToString(sp);textBox3->Text=Convert::ToString(sn);}
ASIGNACIÓN
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
vector[c]=Convert::ToInt32(textBox1->Text);
c++;
}
Se puede asignar valor a un arreglo, asignando valores
a sus componentes individuales
IGUALDAD
Para que haya igualdad entre vectores es necesario:• Ambos arreglos deben ser del mimo tamaño, tipo,
contenido y direcciones de memoria.• Una verificación de igualdad no se cumple cuando las
direcciones de memoria son diferentes a pesar que sus contenidos sean los mismos.
20 -8 56 0
20 -8 56 00 1 2 3
0 1 2 3
A
B
A==B
20 -8 56 0
20 -8 56 01 3 4
0 1 2 3
A
B
A!=B
2
IGUALDAD …
• La única forma para poder entonces verificar la igualdad de dos arreglos es realizando una función lógica en la que mediante una estructura iterativa se comparen todos y cada uno de los elementos de ambos arreglos que tengan el mismo valor de índice.
LECTURA Y ESCRITURA
private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) {
for (Int32 i=0;i<c;++i){
if (vector[i]>0) {
listBox1->Items->Add(vector[i]);}else{
if(vector[i]!=0){listBox2->Items->Add(vector[i]);
}}
}}
RECORRIDO (ACCESO SECUENCIAL)
• Se puede acceder a los elementos de un vector para introducir datos (leer) en él, para visualizar su contenido (escribir), para verificar su igualdad o para realizar un tratamiento sobre sus componentes.
• A la operación de efectuar una acción general sobre todos los elementos de un vector se la denomina recorrido del vector.
• Estas operaciones se realizan utilizando estructuras repetitivas, cuyas variables de control (por ejemplo posición) se utilizan como índices del arreglo.