Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Можливості використання паралельних алгоритмів

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Кафедра електронних обчислювальних машин

Інформація про роботу

Рік:
2005
Тип роботи:
Лабораторна робота
Предмет:
Паралельні та розподілені обчислення

Частина тексту файла

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” КАФЕДРА ЕЛЕКТРОННИХ ОБЧИСЛЮВАЛЬНИХ МАШИН Лабораторна робота №3 з курсу “Паралельні та розподілені обчислення” на тему: “Можливості використання паралельних алгоритмів” Мета роботи: дослідити можливості розв’язання різноманітних задач за допомогою паралельних алгоритмів. Навчитися виділяти незалежні гілки обчислень та виконувати їх паралельно. Завдання: 5. Запропонувати та відобразити алгоритм реалізації гри “LIFE”. Гра моделює життя деякої колонії живих клітин, які виживають, розмножуються або гинуть згідно наступних умов. Клітина виживає, якщо вона має двох або трьох сусідів з восьми можливих. Якщо у клітини лише один сусід, або немає жодного, то вона гине (від ізоляції). Якщо клітина має більше трьох сусідів, то вона гине (від перенаселення). В будь-якій порожній позиції, яка має рівно трьох сусідів у наступному поколінні з’являється нова клітина. Гра повинна починатися з довільної кількості клітин, що розташовані в ігровому полі випадковим чином (інтерактивний режим задавання вхідних даних) – так звана початкова популяція. Програма повинна коректно завершувати роботу у таких випадках: а) загинула вся популяція, б) на вимогу користувача. Виконання роботи: Текст програми (з одноразовим присвоєнням): /* file Lab2odn.cpp */ #include "stdio.h" #include "stdlib.h" #include "conio.h" int **inp_mtx (int); void rand_mtx (int **, int, int); void out_mtx (int, int **); void f_out_mtx (FILE *, int, int **); void main () { int n, ch, ch1, a, b, i, j, x, it=0; int alive=0, neighbors=0; int **coloniya; FILE *fptr; if ((fptr = fopen("rezult.txt", "w"))==NULL) { printf("\nNe mozhu vidkryty fajl"); exit(1); } printf ("Vvedit rozmir colonii\n"); printf ("rozmir = "); scanf ("%d", &n); coloniya=inp_mtx (n); printf ("--------------------------------------\n"); printf ("\nVvedit sposib zadannya kolonii:\n"); printf (" Vruchnu - natysnit 1\n"); printf (" Avtomatychno - natysnit 0\n"); printf ("Zrobit vybir [1/0]... "); scanf ("%d", &ch); printf ("--------------------------------------\n"); if (!ch) { printf ("\nVvedit bud-yake chyslo vid %d do %d: ", n+10, n*n); scanf ("%d", &x); rand_mtx (coloniya, n, x); } else { printf ("\nVvedit pozycii, de budut znahodytys klityny\n"); printf ("(napryklad: 3 3, 7 1, 2 5...)\n"); while (ch!='n') { scanf ("%d%d", &a, &b); coloniya[a][b]=1; alive++; printf ("continue? [y/n] "); ch=getche (); printf ("\n"); } } printf ("--------------------------------------\n"); printf ("\nPochatkova koloniya\n"); out_mtx (n, coloniya); printf ("--------------------------------------\n\n"); getch(); alive=0; do { alive=0; for (i=1; i<=n; i++) { for (j=1; j<=n; j++) { if (coloniya[i-1][j]==1) neighbors++; if (coloniya[i-1][j+1]==1) neighbors++; if (coloniya[i][j+1]) neighbors++; if (coloniya[i+1][j+1]==1) neighbors++; if (coloniya[i+1][j]) neighbors++; if (coloniya[i+1][j-1]==1) neighbors++; if (coloniya[i][j-1]) neighbors++; if (coloniya[i-1][j-1]==1) neighbors++; if (coloniya[i][j]) { if (neighbors<=1) coloniya[i][j]=0; if (neighbors>3) coloniya[i][j]=0; if ((neighbors==2)||(neighbors==3)) coloniya[i][j]=1; } else { if (neighbors==3) coloniya[i][j]=1; else coloniya[i][j]=0; } if (coloniya[i][j]) alive++; fprintf (fptr, "i=%d j=%d neighbors=%d alive=%d\n", i, j, neighbors, alive); f_out_mtx (fptr, n, coloniya); neighbors=0; } } it++; out_mtx (n, coloniya); printf ("Iteraciya %d, kilkist zhyvyh klityn %d\n", it, alive); printf ("--------------------------------------\n\n"); fprintf (fptr...
Антиботан аватар за замовчуванням

31.03.2013 14:03

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини