menusearch
javapro.ir

جمع و ضرب و ترانهاده ماتریس ها به زبان جاوا

جستجو
شنبه ۶ مرداد ۱۴۰۳ | ۷:۳۲:۲۲
۱۳۹۸/۱۰/۱۰ سه شنبه
(8)
(0)
جمع و ضرب و ترانهاده ماتریس ها به زبان جاوا
جمع و ضرب و ترانهاده ماتریس ها به زبان جاوا

نمونه مثال پایه ای جاوا

 

 

بسم الله الرحمن الرحیم

 

 

این آموزش به همت زینب شمس از نویسندگان افتخاری سایت جاوا پرو تهیه گردیده است.


سلام ،این سری می‌خواهیم درباره ی ماتریس هاصحبت کنیم .اگردانشجوی سال اولی رشته کامپیوترهستیدماتریس ها ازمباحثی هست که همواره جزو سوالای اساتیداست.پس شروع میکنم.

 

 

1.    برنامه ای بنویسیدکه یه ماتریس ازکاربر بگیرد و در صفحه چاپ کند.


توضیحات:برای این کار لازم است ابتدا تعداد سطر و ستون را ازکاربر بگیریم و در متغیرهای جداگانه ای قراردهیم. بعد برای پرکردن آن باید همزمان هم شماره سطروهم ستون درایه ی مورد نظررا درنظر بگیریم و از همه مهمتر باید مقادیر درایه ها را درجایی ذخیره کنیم پس مقادیر را در یک آرایه ی دوبعدی می‌ریزم .خوب چرا آرایه ی دوبعدی؟چون من د وویژگی برای هر درایه دارم و این ویژگی ها منحصربفر دهست.خوب چه جوری روی سطرها و ستون هاحرکت کنیم؟من میخوام روی درایه های سطراول حرکت کنم و وقتی روی هر درایه که حرکت میکنم درایه های پایینی راهم پرکنم .خوب برای حرکت روی سطرها باید یک for تعریف کنم و چون باید برای هرحرکت روی یک درایه ازسطر باید روی درایه های پایینیش حرکت کنم پس یک دیگه هم برای پرکردن درایه های زیرینش قرارمیدهم.چون اینجامن یک آرایه دوبعدی راپرکردم والان می‌خوام چاپ کنم از deepToString استفاده میکنم.چون این متد ازکلاس Arrays هست پس لازم هست که آن راهم import کنم. اما اگه ارایه ی من تک بعدی بوداز toString استفاده میکردم.

 


package javaapplication1;
import java.util.*;

public class JavaApplication1 {

   
  public static void main(String[] args) {
      Scanner input=new Scanner(System.in);
      System.out.println("please ,enter row:");
      int row=input.nextInt();
      System.out.println("please ,enter column:");
      int column=input.nextInt();
       
      int[][] matrix=new int[row][column];
      for(int i=0;i<row;i++){
          for(int j=0;j<column;j++){
                System.out.println("please ,enter derayeh:"+i+"va"+j);
                matrix[i][j]=input.nextInt();
          }
      }
        System.out.println("matrix:"+Arrays.deepToString(matrix));
  }
   
}

 

خروجی:

 

please ,enter row:
2
please ,enter column:
3
please ,enter derayeh:0va0
13
please ,enter derayeh:0va1
15
please ,enter derayeh:0va2
17
please ,enter derayeh:1va0
14
please ,enter derayeh:1va1
16
please ,enter derayeh:1va2
18
matrix:[[13, 15, 17], [14, 16, 18]]

 

•    شما عزیزان می‌توانید برای تمرین بیشتر روی درایه ها ی ستون اول حرکت کنید و برای هردرایه، درایه های سمت راست آنرا هم پرکنید درواقع این ماتریس رابصورت سطربه سطرپرکنید.

 

 

 

2.    برنامه ای بنویسید که دو ماتریس را ازکاربر بگیرد اگر قابل جمع باشند ماتریس جمع آن دو را بنویسد.


توضیحات:بخش گرفتن دو ماتریس که مانند قبل هست .وقتی می‌تونیم دو ماتریس راباهم جمع کنیم که تعداد سطرهای دو ماتریس باهم برابر باشندو همچنین ستون های دوماتریس.پس کافی هست که شرط مساوی بودن سطرها و ستون ها راقرار بدیم.برای ماتریس جمع هم دو تا for تو در تو قرار میدم تا بشه روش حرکت کنه و یکی یکی جمع بزند.درپایان هم چاپ ماتریس راداریم.

 

 

 

 

package javaapplication1;
import java.util.*;

public class JavaApplication1 {

   
  public static void main(String[] args) {
      Scanner input=new Scanner(System.in);
      System.out.println("please ,enter row1:");
      int row1=input.nextInt();
      System.out.println("please ,enter column1:");
      int column1=input.nextInt();
       
      int[][] matrix1=new int[row1][column1];
      for(int i=0;i<row1;i++){
          for(int j=0;j<column1;j++){
                System.out.println("please ,enter derayeh:"+i+"va"+j);
                matrix1[i][j]=input.nextInt();
          }
      }
      System.out.println("please ,enter row2:");
      int row2=input.nextInt();
      System.out.println("please ,enter column2:");
      int column2=input.nextInt();
       
      int[][] matrix2=new int[row2][column2];
      for(int i=0;i<row2;i++){
          for(int j=0;j<column2;j++){
                System.out.println("please ,enter derayeh:"+i+"va"+j);
                matrix2[i][j]=input.nextInt();
          }
      }
      if(row1==row2&&column1==column2){
      int[][] matrixjam=new int[row2][column2];
      for(int i=0;i<row2;i++){
          for(int j=0;j<column2;j++){
             
                matrixjam[i][j]=matrix1[i][j]+matrix2[i][j];
          }
      }
        System.out.println("matrix jam:"+Arrays.deepToString(matrixjam));
  }
      else{
      System.out.println("error");
}
  }
}

 

خروجی:

 

please ,enter row1:
2
please ,enter column1:
2
please ,enter derayeh:0va0
3
please ,enter derayeh:0va1
4
please ,enter derayeh:1va0
5
please ,enter derayeh:1va1
6
please ,enter row2:
2
please ,enter column2:
2
please ,enter derayeh:0va0
6
please ,enter derayeh:0va1
9
please ,enter derayeh:1va0
8
please ,enter derayeh:1va1
5
matrix jam:[[9, 13], [13, 11]]

 

 

 

3) برنامه ای بنویسیدکه دو ماتریس از کاربر بگیرد اگر قابل ضرب بودند ضرب کند و چاپ کند.


توضیحات:دراینجا هم مانند قبل دو ماتریس ازکاربر میگیریم.دو ماتریس را زمانی می‌توان ضرب کرد که تعداد ستون  ماتریس1باتعداد سطر ماتریس2یکی باشد.و برای ماتریس ضرب هم سه تا forتو در تو مینویسیم .چراسه تا؟ چون یکیش به تعداد سطرهای ماتریس 1هست و اون یکی به تعداد ستون های 2 هست و اخرین به تعدادستون 1و سطر2 هست.و ماتریس جواب هم به تعدادسطر1وستون 2سطروستون دارد.

 


package javaapplication1;
import java.util.*;

public class JavaApplication1 {

   
  public static void main(String[] args) {
      Scanner input=new Scanner(System.in);
      //matrix1 start
      System.out.println("please ,enter row1:");
      int row1=input.nextInt();
      System.out.println("please ,enter column1:");
      int column1=input.nextInt();
      int[][] matrix1=new int[row1][column1];
      for(int i=0;i<row1;i++){
          for(int j=0;j<column1;j++){
                System.out.println("please ,enter derayeh:"+i+"va"+j);
                matrix1[i][j]=input.nextInt();
          }
      }
      System.out.println("matrix1:"+Arrays.deepToString(matrix1));
      //matrix1 end
        //matrix2 start
      System.out.println("please ,enter row2:");
      int row2=input.nextInt();
      System.out.println("please ,enter column2:");
      int column2=input.nextInt();
      int[][] matrix2=new int[row2][column2];
      for(int i=0;i<row2;i++){
          for(int j=0;j<column2;j++){
                System.out.println("please ,enter derayeh:"+i+"va"+j);
                matrix2[i][j]=input.nextInt();
          }
      }
        System.out.println("matrix2:"+Arrays.deepToString(matrix2));
        //matrix2 end
      if(row2==column1){
      int[][] matrixzarb=new int[row1][column2];
      for(int i=0;i<row1;i++){
          for(int j=0;j<column2;j++){
            for(int k=0;k<row2;k++){
                matrixzarb[i][j]=matrix1[i][k]*matrix2[k][j];
          }}
      }
        System.out.println("matrixzarb:"+Arrays.deepToString(matrixzarb));
  }
      else{
      System.out.println("error");
}
  }
}

 

خروجی:

 

 

please ,enter row1: 
1
please ,enter column1:
3
please ,enter derayeh:0va0
4
please ,enter derayeh:0va1
7
please ,enter derayeh:0va2
9
matrix1:[[4, 7, 9]]
please ,enter row2:
3
please ,enter column2:
4
please ,enter derayeh:0va0
8
please ,enter derayeh:0va1
7
please ,enter derayeh:0va2
5
please ,enter derayeh:0va3
6
please ,enter derayeh:1va0
10
please ,enter derayeh:1va1
11
please ,enter derayeh:1va2
12
please ,enter derayeh:1va3
6
please ,enter derayeh:2va0
3
please ,enter derayeh:2va1
2
please ,enter derayeh:2va2
9
please ,enter derayeh:2va3
2
matrix2:[[8, 7, 5, 6], [10, 11, 12, 6], [3, 2, 9, 2]]
matrix zarb:[[27, 18, 81, 18]]


4.  برنامه ای بنویسید که ترانهاده یک ماتریس راحساب کند.


توضیحات:ماتریس رامانندقبل ازکاربرمیگیریم .نکته ای که اینجامطرح میشه این هست که سطرهای ماتریس ترانهاده به تعدادستون های ماتریس اولیه وستون های آن به تعدادسطرهای ماتریس اولیه هست.ودرایه ی ijدرایه ی jiازماتریس ترانهاده میشود.

 

package javaapplication1;
import java.util.*;

public class JavaApplication1 {

   
  public static void main(String[] args) {
      Scanner input=new Scanner(System.in);
      //matrix1 start
      System.out.println("please ,enter row1:");
      int row1=input.nextInt();
      System.out.println("please ,enter column1:");
      int column1=input.nextInt();
      int[][] matrix1=new int[row1][column1];
      for(int i=0;i<row1;i++){
          for(int j=0;j<column1;j++){
                System.out.println("please ,enter derayeh:"+i+"va"+j);
                matrix1[i][j]=input.nextInt();
          }
      }
      System.out.println("matrix1:"+Arrays.deepToString(matrix1));
      //matrix1 end
       
       
      int[][] matrixT=new int[column1][row1];
      for(int i=0;i<column1;i++){
          for(int j=0;j<row1;j++){
                matrixT[i][j]=matrix1[j][i];
          }
      }
        System.out.println("matrixT:"+Arrays.deepToString(matrixT));
       
  }
}


خروجی:

 


please ,enter row1:
2
please ,enter column1:
3
please ,enter derayeh:0va0
6
please ,enter derayeh:0va1
8
please ,enter derayeh:0va2
6
please ,enter derayeh:1va0
9
please ,enter derayeh:1va1
4
please ,enter derayeh:1va2
0
matrix1:[[6, 8, 6], [9, 4, 0]]

matrixT:[[6, 9], [8, 4], [6, 0]]

 

 

پیروز و موفق باشید


خانم زینب شمس از مدرسان و نویسندگان افتخاری سایت آموزشی رایگان جاواپرو هستند،شما هم می‌توانید مانند ایشون نویسنده افتخاری سایت جاواپرو شوید و برای مخاطبان و کسانی که فک می‌کنید به آموزش شما نیاز دارند، تولید محتوا کنید.
در خواست خودتون را به ما ایمیل کنید.

 


این جلسه آموزشی را می‌توانید بصورت کتاب الکترونیکی (PDF شده) در لینک زیر دریافت کنید.


این جلسه آموزشی را بصورت کامل و مرتب شده در لینک زیر دانلود کنید:(در صورت خرابی لینک گزارش دهید)

 

 

کانال تلگرام آموزش جاوا

 

 

دانلود رایگان کتاب اموزش زبان برنامه نویسی جاوا

لینک دانلود کتاب

 

 


نشر این مطلب با ذکر منبع (لینک سایت) بلامانع است.
برای با خبر شدن از جدیدترین مطالب آموزشی جاوا
عضو کانال تلگرام ما شوید.

 

 

نظرات کاربران
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

بستن
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

1 نظر
alireza.s.n
چهارشنبه بیست و یکم اسفند ۹۸
پاسخ
(0)
()
alireza.s.n
عالللي فقط توي ضرب ماتريس کنار آخرين مساوي, سمت چپ, يدونه علامت جمع فراموش شده matrixZarb[i][j]+=edame
پاسخ مدیر سایت
سلام.ممنون از اطلاعی که دادی :-)
پاسخ مدیر سایت
هدر سایت
مشاهده سرفصل ها و ثبت نام در دوره Spring Boot جاواپرو  [کلیک کنید]
آموزش پروژه محور اسپرینگ بوت(Spring Boot)-سیستم دانشگاه
ثبت نام در دوره آموزش Spring security
دوره پرتاب | آموزش پیش نیازهای برنامه نویسی
دوره آموزش مبانی زبان برنامه نویسی جاوا
دوره آموزش مفاهیم پیشرفته زبان برنامه نویسی جاوا
مقدمه ای از زبان برنامه نویسی جاوا(java)
آموزش زبان برنامه نویسی جاوا
آموزش گرافیک در زبان برنامه نویسی جاوا
آموزش مدیریت چیدمان گرافیکی در زبان جاوا
آموزش ساخت بازی دوبعدی در زبان جاوا
Collection ها در زبان برنامه نویسی جاوا
آموزش پروژه محور ساخت برنامه مدیریت بانک با JavaFX
نمونه پروژه های رایگان زبان جاوا
آموزش دیتابیس در زبان برنامه نویسی جاوا
نمونه مثال پایه ای زبان برنامه نویسی جاوا
نمونه مثال String در زبان برنامه نویسی جاوا
آموزش جامع برنامه نویسی JavaFX
آموزش ساخت برنامه آزمون تستی در JavaFX
آموزش برنامه نویسی سوکت در جاوا
آموزش ساخت برنامه دفترچه تلفن با JavaFX
آموزش ساخت ربات ساده تلگرام با زبان جاوا
آموزش ساخت برنامه ماشین حساب با JavaFX
آموزش ساخت برنامه ساده مدیریت ایمیل ها با JavaFX
دوره آموزش Spring Boot
سفارش انجام پروژه زبان برنامه نویسی جاوا(JAVA)
سفارش انجام پروژه برنامه نویسی متلب(MATLAB) با قیمت منصفانه و تحویل به موقع
سفارش انجام پروژه زبان برنامه نویسی سی شارپ (#C)
سفارش انجام پروژه زبان برنامه نویسی سی(C)
سفارش انجام پروژه زبان برنامه نویسی پایتون(Python)
سفارش انجام پروژه زبان برنامه نویسی PHP (پی اچ پی)
سفارش انجام پروژه زبان برنامه نویسی اسمبلی(Assembly)
سفارش انجام پروژه زبان برنامه نویسی جاوا اسکریپت (Javascript)
سفارش انجام پروژه هوش مصنوعی
سفارش انجام پروژه طراحی الگوریتم
سفارش انجام پروژه ساختمان داده ها
سفارش انجام پروژه مهندسی نرم افزار
سفارش انجام پروژه شبکه های کامپیوتری
سفارش انجام پروژه پایگاه داده: دیتابیس (database)
 سفارش انجام پروژه سیستم عامل
سفارش انجام پروژه پاورپوینت(PowerPoint)
سفارش انجام پروژه اکسل (Excel)
سفارش انجام تحقیق و تهیه مقاله
سوالات متداول برنامه نویسی
جدیدترین مطالب
گفتگو را شروع کنید
مشاوره ،تدریس خصوصی و سفارش انجام انواع پروژه های برنامه نویسی