МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ "ЛЬВІВСЬКА ПОЛІТЕХНІКА'
ІКТА
кафедра ЗІ
/
ЗВІТ
З лабораторної роботи №3
на тему: “ РОБОТА З МАСИВАМИ. ВИКОРИСТАННЯ ФУНКЦІЙ “
Мета роботи – вивчити синтаксис опису і використання у програмах змінних типу масивів, навчитися використовувати масиви для оброблення матриць, вивчити основні алгоритми сортування масивів; навчитися описувати та застосувати у програмах функції для виконання логічно закінчених алгоритмів.
ЗАВДАННЯ
Скласти блок-схему алгоритму та програму мовою Cі згідно з завданням, отриманим від викладача за табл. 1: задану прямокутну матрицю A={aij} відсортувати за вказаним алгоритмом; для відсортованої матриці знайти значення функції F(fi(aij)); алгоритм сортування і обчислення fi(aij) оформити у вигляді функції; елементи матриці вводити з клавіатури; програма повинна вивести на екран відсортовану матрицю, всі значення fi(aij) та значення функції F(fi(aij)).
21
Впорядкувати елементи стовпців матриці за зростанням їх значень методом вибору
fi(aij)-добуток елементів у кожному рядку над допоміжною діагоналлю матриці; F(fi(aij))-сума fi(aij)
22 41 45 -45 -49
5 1 3 -2 0
34 97 48 72 -1
-3 -7 5 92 20
0 -3 -57 9 1
БЛОК-СХЕМА
3. Список ідентифікаторів констант, змінних, функцій,
використаних у блок-схемі алгоритму і програмі,
та їх пояснення
A[][] – масив зі значень матриці типу int;
i, j, k, p, m – зміннi дійсного типу
B[] – масив із середніх арифметичних значень типу double;
main( ) – головна функція;
in_out_put(A) – функція вводу та виводу матриці;
sorting(A) – функція сортування рядків матриці за спаданням і виводу відсортованої матриці на екран;
mnozhennia (A, B) – функція обчислення та виводу на екран добутку елементів у кожному рядку над допоміжною діагоналлю матриці і запису цих значень в масив B[5];
suma(B) –функція обчислення та виводу на екран суми елементів з мартиці В;
printf( ) – функція виводу даних;
scanf( ) – функція зчитування даних;
for( ) – цикл з передумовою;
ТЕКСТ ПРОГРАМИ
#include <stdio.h>
#include <conio.h>
#define n 5
void vvid(int A[n][n])
{
int i,j;
for (i=0; i<n; i++)
{
for (j=0; j<n; j++)
{
printf("A[%d][%d] =", i+1, j+1);
scanf("%d", &A[i][j]);
}
}
for (i=0; i<n; i++)
{
for (j=0; j<n; j++)
printf(" %i\t", A[i][j]);
printf("\n");
}
_getch();
}
void sorting(int A[n][n])
{
int min, mini, k, i, j;
for (j = 0; j<5; j++)
for (i = 0; i<5; i++)
{
min = A[i][j];
mini = i;
for (k = i + 1; k<5; k++)
if (min>A[k][j])
{
min = A[k][j];
mini = k;
}
A[mini][j] = A[i][j];
A[i][j] = min;
}
printf("Sorted matrix:\n");
for (i = 0; i < 5; i++)
{
for (j = 0; j < 5; j++)
printf("%4d", A[i][j]);
printf("\n");
}
}
void mnozhennia(int A[n][n], int B[4])
{
int i, j, p = 0, m = 1;
for (i = 0; i<4; i++)
{
for (j = 0; j<4 - p; j++)
{
m = m*A[i][j];
}
p++;
B[i] = m;
m = 1;
}
printf("\n");
for (i = 0; i<4; i++)
{
printf("String[%d] = %d\n", i + 1, B[i]);
}
printf("\n");
}
void suma(int B[4])
{
int i, suma = 0;
for (i = 0; i<4; i++)
suma = suma + B[i];
printf("Suma = %d", suma);
}
int main()
{
int A[n][n], B[4];
vvid(A);
sorting(A);
mnozhennia(A, B);
suma(B);
getch;
return 0;
}
РЕЗУЛЬТАТ
/