Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
ІКТА
кафедра БІТ
/
З В І Т
до лабораторної роботи №3
з курсу: «Технології програмування» на тему: «Робота з масивами. Використання функцій»
Варіант № 25
.
Львів – 2018
Мета роботи:
Вивчити синтаксис опису і використання у програмах змінних типу масивів, навчитися використовувати масиви для оброблення матриць, вивчити основні алгоритми сортування масивів; навчитися описувати та застосувати у програмах функції для виконання логічно закінчених алгоритмів.
Завдання
Скласти блок-схему алгоритму та програму мовою Cі згідно з завданням, отриманим від викладача за табл. 1: задану прямокутну матрицю A={aij} відсортувати за вказаним алгоритмом; для відсортованої матриці знайти значення функції F(fi(aij)); алгоритм сортування і обчислення fi(aij) оформити у вигляді функції; елементи матриці вводити з клавіатури; програма повинна вивести на екран відсортовану матрицю, всі значення fi(aij) та значення функції F(fi(aij)).
Варіант 25
25
Впорядкувати елементи стовпців матриці за спаданням їх значень методом вставки
fi(aij)-середнє геометричне значення елементів у кожному рядку під головною діагоналлю матриці; F(fi(aij))-сума fi(aij)
9 24 -2 86 -3
40 49 -4 -3 0
27 -76 77 -1 69
71 -89 -94 -51 50
2 96 42 36 -1
2. Блок-схема алгоритму програми
Блок-схема до функції main():
Блок-схема до функції InsertSort(a):
Блок-схема до функції Calculation(a):
Cписок ідентифікаторів, змінних, функцій, використаних у блок-схемі алгоритму і програмі,
та їх пояснення
a[i][j] – елементи масиву;
fi(aij)-середнє геометричне значення елементів у кожному рядку над головною діагоналлю;
F(fi(aij))-сума fi(aij);
for - цикл з передумовою;
if – умовний оператор;
main() – головна функція;
InsertSort (a) – функція сортування;
Calculation (a) – функція обчислення середнього геометричного над головною діагоналлю та їх сума;
printf() – функція виводу даних;
scanf_s() – функція вводу даних;
Текст програми
#include <stdio.h>
#include <math.h>
#define n 5
void InsertionSort(int a[n][n]);
void Calculation(int a[n][n]);
main() //Ввід та вивід матриць
{
int a[n][n];
int i, j;
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
printf("Vvedit' element [%d][%d] massivu: ", i + 1, j + 1);
scanf_s("%d", &a[i][j]);
}
}
printf("\n Old Matrix \n \n");
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
printf("%d\t", a[i][j]);
}
printf("\n");
}
InsertionSort(a);
printf("\n New Matrix \n \n");
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
printf("%d\t", a[i][j]);
}
printf("\n");
}
Calculation(a);
}
void Calculation(int a[n][n]) //Функція, яка обчислює сер. геом. та його суму
{
int i, j;
double f, F;
F = 0.0;
for (i = 0; i < n; i++)
{
f = 1.0;
for (j = 0; j < n; j++)
{
if (j > i)
{
f *= (fabs(a[i][j]));
}
}
f = pow(f, 1.0 / (n - i));
F += f;
printf("\n Serednie geometrychne elementiv %d riadka=%lf\n", i + 1, f);
}
printf("\n Suma serednih geometrychnyh elementiv riadkiv=%lf\n", F);
}
void InsertionSort(int a[n][n]) //Сортування вставками
{
int i, j, e, x;
for (j = 0; j < n; j++)
{
for (i = 1; i < n; i++)
{
x = a[i][j];
e = i - 1;
while (a[e][j] < x && e>= 0)
{
a[e + 1][j] = a[e][j];
e--;
}
a[e + 1][j] = x;
}
}
}
Результат виконання програми
/
Висновок
На даній лабораторній роботі я вивчив синтаксис опису і використання у програмах змінних типу масивів, навчився використовувати масиви для оброблення матриць, вивчив основні алгоритми сортування масивів; навчився описувати та застосувати у програмах функції для виконання логічно закінчених алгоритмів.
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!