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

Паралельне представлення алгоритмів

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

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Кафедра ЕОМ

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

Рік:
2005
Тип роботи:
Звіт про виконання лабораторної роботи
Предмет:
Паралельні та розподілені обчислення
Група:
КІ

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

Міністерство освіти і науки України Національний університет «Львівська політехніка» Кафедра ЕОМ Звіт про виконання лабораторної роботи №2 з курсу: «Паралельні та розподілені обчислення», на тему: «Паралельне представлення алгоритмів» Львів 2005 рік Мета: вивчити можливості паралельного представлення алгоритму. Набути навиків такого представлення. Текст програмної реалізації #include <stdio.h> #include <conio.h> #include <alloc.h> #include <stdlib.h> #include <string.h> int **A, **B, **Y ; //--------------------------------------------- void genA(int n) { int i, j ; A = (int**)calloc(n,sizeof(int*)) ; for(i=0;i<n;i++) A[i] = (int*)calloc(n,sizeof(int)) ; for(i=0;i<n;i++) for(j=0;j<n;j++) if (j<=n-i) A[i][j] = (i+1); else A[i][j] = 0 ; } //------------------------------------------- void genB(int n) { int i, j, k, s; B = (int**)calloc(n,sizeof(int*)) ; for(i=0;i<n;i++) B[i] = (int*)calloc(n,sizeof(int)) ; for(i=0;i<n;i++) for(j=0;j<n;j++) B[i][j] = rand()%10 ; k=0; s=1; for(i=0;i<n;i++) { for(j=0;j<n;j++) if ((j<k)||(j>=(n-k))) B[i][j] =0; if (k==(n/2)) s=-1; k+=s; } } //---------------------------------------------------------- int** mulmat(int n,int **a,int **b) { int **c ; int i, j, k, s ; c = (int**)calloc(n,sizeof(int*)) ; for(i=0;i<n;i++) c[i] = (int*)calloc(n,sizeof(int)) ; for(i=0;i<n;i++) for(j=0;j<n;j++) { c[i][j] = a[i][i]*b[i][j] ; } return c ; } //-------------------------------------- void printmatrix(int **A, int n) { int i, j ; char *a ; for (i=0; i<n; i++) { for (j=0; j<n; j++) printf(" %5d ",A[i][j]) ; printf("\n") ; } printf("----------------------------------------\n") ; } //----------------------------------------------- void readmatrix(int **AA, int n) { int i, j ; char *s ; AA = (int**)calloc(n,sizeof(int*)) ; for(i=0;i<n;i++) AA[i] = (int*)calloc(n,sizeof(int)) ; for(i=0; i<n; i++) for(j=0; j<n ;j++) { printf("\nEnter B[%d][%d] = ",i,j) ; gets(s); //scanf("%d",&s) ; AA[i][j] = atoi(s) ; } } //---------------------------------------------- void main() { int i, j, n ; char str[25] ; clrscr() ; printf("Enter size matrix n: ") ; gets(str) ; n = atoi(str) ; printf("\nEnter matrix B from the keyboard (y/n)?") ; gets(str) ; if (strcmp(str,"y")==0) readmatrix(B,n) ; else genB(n) ; genA(n) ; Y = (int**)calloc(n,sizeof(int*)) ; for(i=0;i<n;i++) Y[i] = (int*)calloc(n,sizeof(int)) ; Y = mulmat(n,A,B) ; printf("Matrix A: \n") ; printmatrix(A,n) ; printf("Matrix B: \n") ; printmatrix(B,n) ; printf("Matrix Y: \n") ; printmatrix(Y,n) ; getch() ; } Граф залежностей Приклад виконання програми Enter size matrix n: 5 Enter matrix B from the keyboard (y/n)? n Matrix A: 1 1 1 1 1 2 2 2 2 2 3 3 3 3 0 4 4 4 0 0 5 5 0 0 0 ---------------------------------------- Matrix B: 6 0 2 0 6 0 5 5 8 0 0 0 1 0 0 0 2 1 3 0 9 1 0 5 4 ---------------------------------------- Matrix Y: 6 0 2 0 6 0 10 10 16 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 ---------------------------------------- Висновок. На даній лабараторній роботі я вивчив можливості паралельного представлення алгоритму. Набув навиків такого представлення. Розробив власний локально-рекурсивний алгоритм, для реалізації заданого варіанту.
Антиботан аватар за замовчуванням

01.01.1970 03:01

Коментарі

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

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

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

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

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

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

Admin

26.02.2019 12:38

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

Новини