الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ضرب مصفوفتين

بدأه نادين01 في 28 ديسمبر 2014 · 0 رد · 502 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1

السلام عليكم

 

لدي مشكلة في عملية ضرب مصفوفتين باستخدام Thread

لكن المشكل فالكود ان thread واحد يحسب جميع الاسطر

مثال اذا كانت المصفوفة 3*3 وعدد threads 3  فكل thread يحسب سطر

package thread; import java.lang.*;import java.io.*;import java.util.*; class MatriceOpx extends Thread { static int matrice1[][]; static int vecter[][]; static int matrice2[][]; static int resultat[][]; static int n; static int m;  static int th; MatriceOpx(int i) { 	th=i; this.start(); } public void run(){ int i,j,rang;for(rang=0;rang<n;rang++){	if(vecter[rang][0]==0){for(i=0;i<n;i++) { resultat[rang]=0; for(j=0;j<n;j++) resultat[rang]=resultat[rang]+matrice1[rang][j]*matrice2[j];  } vecter[rang][0]=1; vecter[rang][1]=th; 	} }}public static void main(String args[]) { int i,j,k; BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); System.out.println("<-- Multiplication de 2 matrices carres des entiers naturels --> "); Scanner e1= new Scanner(System.in); n = e1.nextInt();System.out.println("Veuillez introduiez le nombre de lignes et de colonnes des matrices : ");System.out.println("Veuillez introduiez le nombre de thread:");try{	m = e1.nextInt();}catch(Exception e){}  if (m > n) {System.out.print("Non, m <= n");System.out.print("Veuillez introduiez le nombre de thread:"); try {	 m = e1.nextInt(); }catch(Exception e){} } matrice1=new int[n][n]; matrice2=new int[n][n]; resultat=new int[n][n]; vecter=new int[n][2];  for(i=0;i<n;i++){ 	 vecter[0]=0; } System.out.println("Veuillez remplir les cases de la matrice une : "); for(i=0;i<n;i++) { for(j=0;j<n;j++) { try { matrice1[j]=150; }catch(Exception e){} } } System.out.println("Veuillez remplir les cases de la matrice deux : "); for(i=0;i<n;i++) { for(j=0;j<n;j++) { try { matrice2[j]=50; }catch(Exception e){} } } MatriceOpx mat[]=new MatriceOpx[m];for(i=0;i<m;i++){ 	 mat=new MatriceOpx(i);  } try {	  for(i=0;i<m;i++) mat.join(); }catch(Exception e){} System.out.println("Ci dessous le resultat :"); for(i=0;i<n;i++){ k=i+1; System.out.println("le ligne numéro:" + k + " dans la matrice resultat fait le calcule à l'aide de thread N° : " +vecter[1] + "");  for(j=0;j<n;j++) System.out.println(resultat[j]); } } }

تم تعديل هذه المشاركة بواسطة نادين01 في 28 ديسمبر 2014 في 01:55

مواضيع مشابهة