РОБОТА З МАСИВАМИ. ВИКОРИСТАННЯ ФУНКЦІЙ

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

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

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

Рік:
2009
Тип роботи:
Лабораторна робота
Предмет:
Алгоритмічні мови і програмування

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”  ЛАБОРАТОРНА РОБОТА № 3 З КУРСУ “АЛГОРИТМІЧНІ МОВИ І ПРОГРАМУВАННЯ” РОБОТА З МАСИВАМИ. ВИКОРИСТАННЯ ФУНКЦІЙ Львів 2009 ПОВНИЙ ТЕКСТ ЗАВДАННЯ 1. Скласти блок-схему алгоритму та програму мовою Cі згідно з завданням, отриманим від викладача за табл. 1: задану прямокутну матрицю A={aij} відсортувати за вказаним алгоритмом; для відсортованої матриці знайти значення функції F(fi(aij)); алгоритм сортування і обчислення fi(aij) оформити у вигляді функції; елементи матриці вводити з клавіатури; програма повинна вивести на екран відсортовану матрицю, всі значення fi(aij) та значення функції F(fi(aij)). Таблиця 1 № п/п Алгоритм впорядкування матриці Алгоритм для розрахунку fi(aij) та F(fi(aij)) Матриця  13 Впорядкувати елементи рядків матриці за спаданням їх значень методом вставки fi(aij)-середнє арифметичне значення елементів у кожному стовпці над допоміжною діагоналлю матриці; F(fi(aij))-добуток fi(aij) 12 46 –23 72 -5 59 7 -8 0 67 7 -8 -4 -97 -55 77 -1 -5 34 -8 0 22 27 24 24   ОСТАТОЧНА ВЕРСІЯ БЛОК-СХЕМИ АЛГОРИТМУ ФУНКЦІЯ СОРТУВАННЯ МАТРИЦІ SORTMATRIX(MATRIX) 1 2 Ні Так Ні 3 Так 4 5 Так Ні 6 7 8 ФУНКЦІЯ РОЗРАХУНКУ ЗНАЧЕНЬ СЕРЕДНІХ АРИФМЕТИЧНИХ СТОВПЦІВ НАД ДОПОМІЖНОЮ ДІАГОНАЛЛЮ MIDDLE(MATRIX) 9 10 11 Ні 12 Так 13 Так Ні 14 15 16 17 Ні 18 Так 19 20 ФУНКЦІЯ РОЗРАХУНКУ ДОБУТКУ ЗНАЧЕНЬ СЕРЕДНІХ АРИФМЕТИЧНИХ СТОВПЦІВ НАД ДОПОМІЖНОЮ ДІАГОНАЛЛЮ MULTIPLY(MATRIX) 21 23 24 22 Ні 25 Так 26 Так ні 27 28 29 Ні 30 Так 31 32 33 ГОЛОВНА ПРОГРАМА 34 35 36 Ні 37 Так Ні 38 Так 39 40 41 Ні 42 Так Ні 43 Так 44 45 46 Ні 47 Так Ні 48 Так 49 50 51 52 СПИСОК ІДЕНТИФІКАТОРІВ КОНСТАНТ, ЗМІННИХ, ПРОЦЕДУР ТА ФУНКЦІЙ, ВИКОРИСТАНИХ У БЛОК-СХЕМІ АЛГОРИТМУ ПРОГРАМИ СПИСОК : I J X K N W MATRIX SORTMATRIX MIDDLE MULTIPLY PRINTF SCANF GETCH ПОЯСНЕННЯ ІДЕНТИФІКАТОРІВ ЗМІННИХ : I – порядковий покажчик рядка матриці. J – порядковий покажчик стовпця матриці. X – змінна для нарахування суми елементів матриці. K – константа – розмір матриці. N – тимчасовий покажчик порядкового номеру рядка матриці. W – змінна для збереження добутку значень середніх арифметичних стовпців над допоміжною діагоналлю. MATRIX – ідентифікатор матриці. ПОЯСНЕННЯ ІДЕНТИФІКАТОРІВ ФУНКЦІЙ : PRINTF() – функція виводу інформації на дисплей SCANF() – функція зчитування значень із стандартного пристрою вводу (клавіатури) і присвоєння їх змінним вихідної програми. GETCH() – функція затримання даних на дисплеї після закінчення роботи програми. SORTMATRIX() – функція сортування матриці. MIDDLE() – функція розрахунку значень середніх арифметичних стовпців над допоміжною діагоналлю. MULTIPLY() – функція розрахунку добутку середніх арифметичних стовпців над допоміжною діагоналлю. ОСТАТОЧНА ВЕРСІЯ ПРОГРАМИ //Lab_3cpp : Defines The entry point for the console application. // #include “stdafx.h” #include “stdio.h” #include “math.h” #include “conio.h” #define k 5 void Sortmatrix(int matrix[k][k]); void middle(int matrix[k][k]); void multiply(int matrix[k][k]); /*Initializing Function Area*/ void Sortmatrix(int matrix[k][k]) { double x; int i,j,n; for(n=0;n<k;n++) for(i=1;i<k;i++) {x=matrix[n][i];j=i-1; while((x>matrix[n][j])&&(j>=0)) {matrix[n][j+1]=matrix[n][j];j=j-1;}; matrix[n][j+1]=x;}; } void middle(int matrix[k][k]) { double x; int i,j,n; x=0; n=k; printf("\n"); for(j=0;j<=(k-1);j++) { n=n-1; if(!(x==0)) {x=x/i;printf("Middle mathematical in column %d = %lf\n",j,x);}; x=0; for(i=0;i<n;i++) x=matrix[i][j]+x;}; } void multiply(int matrix[k][k]) { double w,x; int i,j,n; x=0; w=1; n=k; printf("\n"); for(j=0;j<=(k-1);j++) { n=n-1; if(!(x==0)) {w=w*x/i;}; x=0; for(i=0;i<n;i++) x=matrix[i][j]+x;}; printf("Multiply middle numbers = %lf",w); } int _tmain(int argc, _TCHAR *argv[]) { double x; int i,j,n; int matrix[k][k]; /*Entering matrix elements*/ printf("\n"); printf("Enter matrix elements :\n"); printf("\n"); for(i=0;i<k;i++) for(j=0;j<k;j++) {printf("Enter matrix element : matrix[%d][%d] = ",(i+1),(j+1)," /n"); scanf("%d",&matrix[i][j]);}; /*Printing not Sorted matrix*/ printf("\n"); printf("Matrix not Sorted :"); printf("\n\n"); for(i=0;i<k;i++){ for(j=0;j<k;j++){ printf("%5d",matrix[i][j]);};printf("\n");}; /*Sorting matrix*/ Sortmatrix(matrix); /*Printing sorted matrix*/ printf("\n"); printf("Matrix Sorted :"); printf("\n\n"); for(i=0;i<k;i++){ for(j=0;j<k;j++){ printf("%5d",matrix[i][j]);};printf("\n");}; /*Function middle mathematical search*/ middle(matrix); /*Function multiply search*/ multiply(matrix); getch(); } РЕЗУЛЬТАТИ РОБОТИ ПРОГРАМИ Enter matrix elements : Enter matrix element : matrix[1][1] = 12 Enter matrix element : matrix[1][2] = 46 Enter matrix element : matrix[1][3] = -2 Enter matrix element : matrix[1][4] = 72 Enter matrix element : matrix[1][5] = -5 Enter matrix element : matrix[2][1] = 59 Enter matrix element : matrix[2][2] = 7 Enter matrix element : matrix[2][3] = -8 Enter matrix element : matrix[2][4] = 0 Enter matrix element : matrix[2][5] = 67 Enter matrix element : matrix[3][1] = 7 Enter matrix element : matrix[3][2] = -8 Enter matrix element : matrix[3][3] = -4 Enter matrix element : matrix[3][4] = -9 Enter matrix element : matrix[3][5] = -5 Enter matrix element : matrix[4][1] = 77 Enter matrix element : matrix[4][2] = -1 Enter matrix element : matrix[4][3] = -5 Enter matrix element : matrix[4][4] = 34 Enter matrix element : matrix[4][5] = -8 Enter matrix element : matrix[5][1] = 0 Enter matrix element : matrix[5][2] = 22 Enter matrix element : matrix[5][3] = 27 Enter matrix element : matrix[5][4] = 24 Enter matrix element : matrix[5][5] = 24 Matrix not Sorted : 12 46 -23 72 -5 59 7 -8 0 67 7 -8 -4 -97 -55 77 -1 -5 34 -8 0 22 27 24 24 Matrix Sorted : 72 46 12 -5 -23 67 59 7 0 -8 7 -4 -8 -55 -97 77 34 -1 -5 -8 27 24 24 22 0 Middle mathematical in column 1 = 55.750000 Middle mathematical in column 2 = 33.666667 Middle mathematical in column 3 = 9.500000 Middle mathematical in column 4 = -5.000000 Multiply middle numbers = -89153.541667
Антиботан аватар за замовчуванням

14.11.2011 03:11-

Коментарі

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

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

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

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

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!