ІКТА / КБ-12 / Технології Програмування частина №1 (ТП ч.1) / Лаби (готові) / Варіант №19 / Лабараторна робота ТП №3 Мельничук Є.І
.docxМІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
ІКТА
кафедра ЗІ
ЗВІТ
до лабораторної роботи №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. Результати роботи програми