اخبار و اطلاعات مربوط به دروس

در این وبلاگ مباحث مرتبط با دروس تدریسی توسط اینجانب پیگیری می شود.

اخبار و اطلاعات مربوط به دروس

در این وبلاگ مباحث مرتبط با دروس تدریسی توسط اینجانب پیگیری می شود.

هدیه ای از طرف دانشجویان
Mbt925.ir

برنامه نویسی پیشرفته - تمرین دهم

چهارشنبه, ۲۹ ارديبهشت ۱۳۹۵، ۰۷:۰۱ ب.ظ

برنامه ای بنویسید که مجموع عناصر چند آرایه را محاسبه کند.

دو عدد N و L را از ورودی دریافت کند. در n خط بعدی، در هر خط یک آرایه به طول L با مقادیر بین 1 تا 100 قرار دارد.

مجموع عناصر آرایه ها به روش معمولی به صورت زیر محاسبه می شود:

public static void main(String[] args) throws InterruptedException {

Scanner scanner= new Scanner(System.in);

// read N & L
int N= scanner.nextInt(), L= scanner.nextInt();
int[][] arrs= new int[N][L];
// read arrays
for (int i = 0; i < N; i++) {
for (int j = 0; j < L; j++) {
arrs[i][j]= scanner.nextInt();
}
}
long start= System.currentTimeMillis();
// calculate sum of arrays
int[] sum= Arrays.copyOf(arrs[0], arrs[0].length);
for (int i = 1; i < N; i++) {
// add curr array to sum array
for (int j = 0; j < L; j++) {
sum[j] += arrs[i][j];
}
}
// print final sum
System.out.printf("Total time: %d ms%nFinal sum: %s%n", System.currentTimeMillis()-start, Arrays.toString(sum));

}

ورودی نمونه:

3 4

1 2 3 4

2 3 4 5

5 6 7 8

خروجی نمونه:

Total time: 0 ms

Final sum: [8, 11, 14, 17]

حال برنامه ای بنویسید که همین عمل را با استفاده از چند نخ انجام دهد. خروجی یک تفاوت جزئی با خروجی بالا دارد و آن تعداد نخ های مورد استفاده است:

Total time: 0 ms with 3 threads

Final sum: [8, 11, 14, 17]

نکته ها:

  • استفاده از آرایه یا collection ها آزاد است.
  • از فایل برای خواندن ورودی استفاده کنید.
  • استفاده از کلاس Thread توصیه می شود.
  • چندین آرایه بزرگ در فایل ورودی قرار دهید و زمان مصرف شده توسط روش تک نخی و چند نخی را باهم مقایسه کنید.

ارسال تمرین:

  • فرصت ارسال این تمرین تا روز چهارشنبه، 5 خرداد، ساعت 12:00 است.
  • فرصت ارسال تمرین به هیچ عنوان تمدید نخواهد شد.
  • عنوان ایمیل: برنامه نویسی پیشرفته، نام دانشجو، عنوان تمرین
  • مثال: برنامه نویسی پیشرفته، علی بهرامی، تمرین دهم

 

  • بیگلری

نظرات  (۱)

سلام ورودی  توسط خود کامپیوتر تولید بشه مشکلی نیست؟

پاسخ:
درستش هم همینه.

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی