Está en la página 1de 5

LENGUAJE DE

PROGRAMACIÓN PARALELA
X10
Clase 8:
Array
Arrays
• La clase array provee subclases para arrays multidimensionales por
ejemplo para un array de una dimensión se utiliza la subclase
Array_1, para 2 dimensiones Array_2, para 3 dimensiones Array_3,y
Array_4 para 4 dimensiones.

• Por ejemplo para crear un array llamado A, de 2 dimensiones de


5x10 elementos del tipo Long se utiliza la siguiente expresión:

val A=new Array_2[Long](5,10);


Ejemplo 1
Imprimir elementos de un array de 2 dimensiones
package ejercicios;
import x10.array.*;
public class ejemplo1 {
public static def main(args: Rail[String]) {
val A=new Array_2[Long](5,10,(i:Long,j:Long)=>i*j);
Console.OUT.println("Primera forma de imprimir");
for(var i:Long=0;i<A.numElems_1;i++)
for(var j:Long=0;j<A.numElems_2;j++)
Console.OUT.println("A("+i+","+j+") = "+A(i,j));
Console.OUT.println("Segunda forma de imprimir");
for([i,j] in A.indices())
Console.OUT.println("A("+i+","+j+") = "+A(i,j));
Console.OUT.println("Tercera forma de imprimir");
for(v in A)
Console.OUT.println(v);
}
Ejemplo 2
package ejercicios;
import x10.array.*;
public class ejemplo1 {
static def imprimir(A:Array_3[Long],Letra:Char){
for([i,j,k] in A.indices())
Console.OUT.println(Letra+"("+i+","+j+","+k+") = "+A(i,j,k));
}
public static def main(args: Rail[String]) {
val A=new Array_3[Long](3,4,5,(i:Long,j:Long,k:Long)=>i+j+k);
val B=new Array_3[Long](3,4,5);
imprimir(A,'A');
imprimir(B,'B');
Console.OUT.println(A.rank());//La dimensión 3
Console.OUT.println(A.size);//Cantidad de elementos 60
Console.OUT.println(A.indices());//Los indices [0..2,0..3,0..4]
Ejemplo 2
Array.copy(A,B);//Copia A en B
imprimir(B,'B');
B.clear();//Todos los elementos de B son cero
imprimir(B,'B');
Array.copy(A,0,B,30,25);//Copia 25 elementos desde el indice 0 de A
//en B a partir del índice 30 de B.
//Si hay algún tipo de conflicto escriba x10.array.Array.copy(A,B)
imprimir(B,'B');
B.fill(7);//Todos los elementos de B son 7
imprimir(B,'B');
Array.swap(A,B);//Intercambia A y B
//Si hay algún tipo de conflicto escriba x10.array.Array.swap(A,B)
imprimir(A,'A');
imprimir(B,'B');
}
}

También podría gustarte