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

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

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

ІКТА

кафедра ЗІ

ЗВІТ

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

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

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

Варіант № 13

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

Ковальчин О.Ю.

Прийняв: Крет Т.Б

Львів - 2017

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

1. Завдання

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

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

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



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

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

Початок

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

i,j, a[n][n]

i=0, i<n i++

j=0, j<n j++

Element mass

buld (a)

vstavka (a)

res (a)

Кінець

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

Початок

Кінець

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

Початок

i,j,k,x

x=a[i][j]

x=a[i][j]

a[i][k]<x&&>k>=0 &k>=0 [j]>x&&k>=0

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

k--;

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

Кінець

-

+

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

Початок

i,j

d, s, z

sum=1.0

i=0, i<n-1 i++

j=0, j<n j++

d=.0

if (i<n-j)

d= d+a[i][j]

s=s*dobutock

d

s

Кінець

-

+

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

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

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

s- сума елементів у кожному стовпці над головною діагоналлю матриці;

d - добуток s;

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

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

while – операція циклу з передумовою;

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

buld(a) – функція побудови старого масиву;

vstavka (a) – функція побудови нового масиву за зростанням у стовпцях методом вставки;

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

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

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

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

#include <stdio.h>

#include <stdlib.h>

#define n 5 //rozmir mass

int main (void) //golovna func main

{

int i,j;

int a[n][n];

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

{

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

{

printf ("element mass a[%d][%d]=", i+1, j+1);

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

}

printf ("\n");

}

buld (a);

vstavka (a);

printf ("mass after sorting \n");

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

{

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

{

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

}

printf ("\n");

}

res (a);

}

int buld( int a[n][n]) // building mass

{

int i,j;

printf("mass:\n");

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

{

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

{

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

}

printf("\n");

}

}

int vstavka (int a[n][n]) // sorting mass

{

int i,j,k,x;

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

{

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

{

x=a[i][j];

k=j-1;

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

{

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

k--;

}

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

}

}

}

int res(int a[n][n])

{

int i,j;

double d,s,z;

z=n;

z-=1;

d=1.0;

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

{

s=0.0;

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

{

if(i<(n-j-1)){

s=s+a[j][i];

}

}

s=s/z--;

printf("\n f[%d]=%lf",i+1,s);

d=d*s;

}

printf("\n Dobutok serednyh znachen=%lf",d);

}

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

Висновок:вивчив синтаксис опису і використання у програмах змінних типу масивів, навчився використовувати масиви для оброблення матриць, вивчив основні алгоритми сортування масивів; навчився описувати та застосувати у програмах функції для виконання логічно закінчених алгоритмів. Склав блок-схему алгоритму та програму мовою Cі згідно з завданням, отриманим від викладача за табл. 1: Впорядкував елементи стовпців матриці за зростанням їх значень методом вставки та обчислив dobutock - добуток елементів у кожному рядку під головною діагоналлю матриці і sum - сума добутків.