ІКТА / КБ-12 / Технології Програмування частина №1 (ТП ч.1) / Лаби (готові) / Варіант №6 / Лабараторна робота ТП №3 Волошин Р.Я
.docxМІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
ІКТА
кафедра ЗІ
ЗВІТ
до лабораторної роботи №3
з курсу: «Технології програмування »
на тему: «РОБОТА З МАСИВАМИ. ВИКОРИСТАННЯ ФУНКЦІЙ»
Варіант № 6
Виконала: ст. гр. КБ-12
Волошин Р. Я.
Прийняв: Викладач Крет Т. Б.
Львів – 2017
Мета роботи – вивчити синтаксис опису і використання у програмах змінних типу масивів, навчитися використовувати масиви для оброблення матриць, вивчити основні алгоритми сортування масивів; навчитися описувати та застосувати у програмах функції для виконання логічно закінчених алгоритмів.
1. Завдання
Скласти блок-схему алгоритму та програму мовою Cі згідно з завданням, отриманим від викладача за табл. 1: задану прямокутну матрицю A={aij} відсортувати за вказаним алгоритмом; для відсортованої матриці знайти значення функції F(fi(aij)); алгоритм сортування і обчислення fi(aij) оформити у вигляді функції; елементи матриці вводити з клавіатури; програма повинна вивести на екран відсортовану матрицю, всі значення fi(aij) та значення функції F(fi(aij)).
Впорядкувати елементи стовпців матриці за зростанням їх значень методом вставки
fi(aij)-середнє геометричне значення елементів у кожному рядку над головною діагоналлю; F(fi(aij))-сума fi(aij)
|
-задана матриця
2. Блок-схема алгоритму програми
3. Cписок ідентифікаторів констант, змінних, функцій, використаних у блок-схемі алгоритму і програмі,
та їх пояснення
a[i][j] – елементи масиву;
fi(aij)-середнє геометричне значення елементів у кожному рядку над головною діагоналлю;
F(fi(aij))-сума fi(aij);
for - цикл з передумовою;
if – умовний оператор;
main() – головна функція;
sort(a) – функція сортування;
calc(a) – функція обчислення середнього геометричного над головною діагоналлю та їх сума;
printf() – функція виводу даних;
scanf() – функція вводу даних;
4. Текст програми
#include<stdio.h>
#include<math.h>
#include<locale.h>
int vvid ();
int vubor();
int summa();
int vuvid();
int ser ();
int main(void)
{
setlocale (LC_ALL, "Rus");
int i, j, k, a;
int m=5,n=5;
static int matrix1[10][10], matrix2[10][10];
int vvid();
{
for (i = 0; i < m; i++)
{
for (j = 0; j < n; j++)
{
printf("a[%d][%d] =", i + 1, j + 1);
scanf("%d", &matrix1[i][j]);
matrix2[i][j] = matrix1[i][j];
}
}
printf("old martix\n");
for (i = 0; i < m; i++)
{
for (j = 0; j < n; j++)
printf("%5d", matrix1[i][j]);
printf("\n");
}
int vubor();{
for (j = 0; j < n; j++)
{
for (i = 0; i < m; i++)
{
for (k = i + 1; k < m; k++)
{
if (matrix2[i][j] > matrix2[k][j])
{
a = matrix2[i][j];
matrix2[i][j] = matrix2[k][j];
matrix2[k][j] = a;
}
}
}
}
}
int vivid();{
printf("\n New matrix \n");
for (i = 0; i < m; i++)
{
for (j = 0; j < n; j++)
{
printf(" %5d", matrix2[i][j]);
}
printf("\n");
}
}
int summa();{
int p=0;
for(i=0; i<1; i++)
{
j=3;
p+=matrix2[i][j];
}
printf ("\n Сума 4 стовпця =%d", p);
int y=0;
for(i=0; i<2; i++)
{
j=2;
y+=matrix2[i][j];
}
printf ("\n Сума 3 стовпця =%d", y);
int t=0;
for(i=0; i<3; i++)
{
j=1;
t+=matrix2[i][j];
}
printf ("\n Сума 2 стовпця =%d", t);
int u=0;
for(i=0; i<3; i++)
{
j=0;
u+=matrix2[i][j];
}
printf ("\n Сума 1 стовпця =%d", u);
double s,sum=0;
for(i=0; i<n; i++ )
{
for (j=0; j<n; j++)
{
sum+=matrix2[i][j];
}
}
sum=sum/(m*n);
printf("\n Середнє арифметичне =%lf" , sum);
}
int ser();{int i,j;
double f;
for (j=0;j<n;j++)
{
f=1.0;
for (i=0;i<n;i++)
{
if (i>j)
{
f*=(fabs(matrix2[i][j]));
}
}
f=pow(f,1.0/(n-j));
printf ("\n Середнє геометричне стовпця %d =%lf\n", j+1,f);
}
}
}
}
5. Результати роботи програм