Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
ІКТА
кафедра „ЗАХИСТ ІНФОРМАЦІЇ”
ЗВІТ
до лабораторної роботи № 6
З КУРСУ “АЛГОРИТМІЧНІ МОВИ І ПРОГРАМУВАННЯ”
на тему:
РОБОТА З МАСИВАМИ. ВИКОРИСТАННЯ ФУНКЦІЙ
Варіант № 20
Мета роботи - вивчити синтаксис опису і використання в програмах змінних типу масив, навчитися використовувати масиви для оброблення матриць, вивчити основні алгоритми сортування масивів; навчитися описувати та застосовувати у програмах процедури і функції для виконання логічно закінчених алгоритмів.
2. ПОВНИЙ ТЕКС ЗАВДАННЯ
Скласти блок-схемy алгоритмy та програмy мовою Ci для впорядкування елементів стовпців матриці за спаданням їх значень методом обміну:
0 2 -2 89 21
-1 -4 36 41 71
56 93 51 -2 -51
1 3 -8 0 9
23 41 5 8 -2
Для відсортованої матриці знайти значення функції fi(aij) – середнє геометричне значення елементів в кожному рядку над головною діагоналлю матриці та F(fi(aij)) – сума fi(aij). Обчислення fi(aij) та F(fi(aij)) оформити у вигляді функції; елементи матриці вводити з клавіатури; програма повинна вивести на екран відсортовану матрицю, всі значення fi(aij) та значення функції F(fi(aij)).
3. ОСТАТОЧНА ВЕРСІЯ БЛОК-СХЕМИ АЛГОРИТМУ
Блок-схема функції PrintMas(a)
Блок-схема функції ReadMas(a)
Блок-схема функції Dob(a,k)
Блок-схема функції sArfm(а)
Блок-схема функції SortMas(а)
4. СПИСОК ІДЕНТИФІКАТОРІВ КОНСТАНТ, ЗМІННИХ, ПРОЦЕДУР І ФУНКЦІЙ, ВИКОРИСТАНИХ У ПРОГРАМІ, ТА ЇХ ПОЯСНЕННЯ
a – масив значень типу int який потрібно впорядкувати;
n – константа типу int яка вказує розмірність масиву а;
tmp – змінна типу int яка використовується для того щоб поміняти два значення елементів масиву а місцями;
i, j, k – змінні типу int для зберігання введених даних та результату роботи програми;
dob, sg, sum – змінні типу double для зберігання певних значень відповідного типу у функціях;
clrscr() – функція очистки екрана яка об’явлена в модулі conio.h;
getch() – функція яка чекає натискання будь-якої клавіші;
printf() – функція виведення текстових повідомлень і значень змінних на екран;
scanf() – функція яка зчитує дані з клавіатури та присвоює відповідне значення змінним;
pow(x,y) – функція для піднесення х в степінь у;
Користувацькі функції
PrintMas(а) – функція яка здійснює вивід матриці а на екран;
ReadMas(а) – функція яка зчитує значення введені з клавіатури і поміщає їх у масив а розміру n∙n;
SortMas(а) – функція яка впорядковує стовпці матриці а за спаданням їх значень методом обміну;
sGeom(а, і) – функція, яка повертає значення типу double яке є середнім геометричним і-того рядка матриці над головною діагоналлю;
sum_sGeom(а) – функція яка повертає значення типу double яке є сумою середніх геометричних значень усіх рядків матриці а над головною діагоналлю;
5. ОСТАТОЧНА ВЕРСІЯ ПРОГРАМИ
#include <stdio.h>
#include <conio.h>
#include <math.h>
const n=5;
//=================================================
void PrintMas(int a[n][n])
{
for (int i=0;i<n;i++)
{
for (int j=0;j<n;j++) printf("%4d",a[i][j]);
printf("\n");
}
}
//=================================================
void ReadMas(int a[n][n])
{
for (int i=0;i<n;i++)
for (int j=0;j<n;j++)
{ printf("a[%d][%d] = ",i,j); scanf("%d",&a[i][j]);}
}
//=================================================
void SortMas(int a[n][n])
{
int tmp;
for (int k=0;k<n;k++)
for (int i=1;i<n;i++)
for (int j=n-1;j>=i;j--)
if (a[k][j-1]<a[k][j])
{
tmp=a[k][j-1]; a[k][j-1]=a[k][j]; a[k][j]=tmp;
}
}
//=================================================
long int Dob(int a[n][n],int k)
{
long int dob=1;
for (int i=n-1;i>k;i--) dob*=a[i][k];
return dob;
}
//=================================================
double sArfm(int a[n][n])
{
double sum=0,sg;
for (int i=0;i<n-1;i++)
{
sg=Dob(a,i);
printf("\nsDob(%d) = %3.0lf",i,sg);
sum+=sg;
}
return sum/(n-1);
}
//=================================================
void main()
{
int a[n][n];
printf("Vvedit masuv %dx%d elementiv:\n",n,n);
ReadMas(a); clrscr();
printf("\nVvedeno masuv:\n\n");
PrintMas(a); SortMas(a);
printf("\nVidsortovano masuv:\n\n");
PrintMas(a);
printf("\n\nsArfm = %3.2lf",sArfm(a));
getch();
}
6. РЕЗУЛЬТАТИ РОБОТИ ПРОГРАМИ
Vvedeno masuv:
19 62 -45 -1 84
23 54 -4 -2 68
36 39 96 94 97
-3 -8 -4 -6 -22
98 -5 -3 0 11
Vidsortovano masuv:
84 62 19 -1 -45
68 54 23 -2 -4
97 96 94 39 36
-3 -4 -6 -8 -22
98 11 0 -3 -5
sDob(0) = -1939224
sDob(1) = -4224
sDob(2) = 0
sDob(3) = -3
sArfm = -485862.75
7. ВИСНОВОК
На даній лабораторній роботі я навчився використовувати змінними типу масив та користуватися функціями. Я вивчив алгоритми для впорядкування елементів масиву. Внаслідок чого було створено програму для введення, впорядкування, пошуку середнього геометричного та виведення масиву на дисплей.