Добавил:
Допоможу чим зможу) Відсигнальте якщо знайшли шось корисне) Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
143
Добавлен:
17.12.2017
Размер:
259.78 Кб
Скачать

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»

ІКТА

кафедра ЗІ

ЗВІТ

до лабораторної роботи №3

з курсу: «Технології програмування »

на тему: «РОБОТА З МАСИВАМИ. ВИКОРИСТАННЯ ФУНКЦІЙ»

Варіант № 19

Виконала: ст. гр. КБ-12

Мельничук Є.І

Прийняв: Партика А. І.

Львів - 2016

Мета роботи – вивчити синтаксис опису і використання у програмах змінних типу масивів, навчитися використовувати масиви для оброблення матриць, вивчити основні алгоритми сортування масивів; навчитися описувати та застосувати у програмах функції для виконання логічно закінчених алгоритмів.

1. Завдання

Скласти блок-схему алгоритму та програму мовою Cі згідно з завданням, отриманим від викладача за табл. 1: задану прямокутну матрицю A={aij} відсортувати за вказаним алгоритмом; для відсортованої матриці знайти значення функції F(fi(aij)); алгоритм сортування і обчислення fi(aij) оформити у вигляді функції; елементи матриці вводити з клавіатури; програма повинна вивести на екран відсортовану матрицю, всі значення fi(aij) та значення функції F(fi(aij)).

Впорядкувати елементи стовпців матриці за зростанням їх значень методом вставки

fi(aij)-середнє геометричне значення елементів у кожному рядку над головною діагоналлю; F(fi(aij))-сума fi(aij)

34 45 65 23 98

1 -4 67 -3 -18

23 -5 -1 94 -25

2 24 –4 79 -63

10 29 25 30 -6



-задана матриця

2. Блок-схема алгоритму програми

Блок-схема до функції main()

Блок-схема до функції sort(a)

Блок-схема до функції calc(a)

3. Cписок ідентифікаторів констант, змінних, функцій, використаних у блок-схемі алгоритму і програмі,

та їх пояснення

a[i][j] – елементи масиву;

fi(aij)-середнє геометричне значення елементів у кожному рядку над головною діагоналлю;

F(fi(aij))-сума fi(aij);

for - цикл з передумовою;

if – умовний оператор;

main() – головна функція;

sort(a) – функція сортування;

calc(a) – функція обчислення середнього геометричного над головною діагоналлю та їх сума;

printf() – функція виводу даних;

scanf() – функція вводу даних;

4. Текст програми

#include <stdlib.h>

#include <math.h>

#define n 5

void sort (int a[n][n]);

void calc (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 ("Enter element [%d][%d] massiva: " ,i+1,j+1);

scanf ("%d", &a[i][j]);

}

}

for (i=0; i<n; i++)

{

for (j=0;j<n;j++)

{

printf ("%d\t", a[i][j]);

}

printf ("\n");

}

sort (a);

printf ("\n new matrix \n");

for (i=0;i<n;i++)

{

for (j=0;j<n;j++)

{

printf ("%d\t", a[i][j]);

}

printf ("\n");

}

calc (a);

}

void calc (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 ("Serednie geometrychne elementiv %d riadka=%lf\n", i+1,f);

}

printf ("Suma serednih geometrychnyh elementiv riadkiv=%lf\n",F);

}

void sort (int a[n][n])

{

int i,j,k,x;

for(j=0;j<n;j++)

{

for(i=1;i<n;i++)

{

x=a[i][j];

k=i-1;

while (a[k][j]>x&&k>=0)

{

a[k+1][j]=a[k][j];

k--;

}

a[k+1][j]=x;

}

}

}

5. Результати роботи програми