МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
ІКТА
кафедра ЗІ
З В І Т
до лабораторної роботи №3
з курсу: «Алгоритмічні мови та програмування»
на тему: «РОБОТА З МАСИВАМИ. ВИКОРИСТАННЯ ФУНКЦІЙ»
Варіант № 17
МЕТА РОБОТИ: вивчити синтаксис опису і використання у програмах змінних типу масивів, навчитися використовувати масиви для оброблення матриць, вивчити основні алгоритми сортування масивів; навчитися описувати та застосувати у програмах функції для виконання логічно закінчених алгоритмів.
ЗАВДАННЯ
Скласти блок-схему алгоритму та програму мовою Cі згідно з завданням, отриманим від викладача за табл. 1: задану прямокутну матрицю A={aij} відсортувати за вказаним алгоритмом; для відсортованої матриці знайти значення функції F(fi(aij)); алгоритм сортування і обчислення fi(aij) оформити у вигляді функції; елементи матриці вводити з клавіатури; програма повинна вивести на екран відсортовану матрицю, всі значення fi(aij) та значення функції F(fi(aij)).
17
Впорядкувати елементи стовпців матриці за зростанням їх значень методом обміну
fi(aij)-середнє геометричне значення елементів у кожному рядку матриці; F(fi(aij))-середнє арифметичне значення fi(aij)
66 21 -3 -1 90
1 74 -2 80 -1
10 30 20 -50 91
2 4 5 81 0
33 69 -5 51 24
СПИСОК ІДЕНТИФІКАТОРІВ КОНСТАНТ, ЗМІННИХ, ФУНКЦІЙ, ВИКОРИСТАНИХ У БЛОК-СХЕМІ АЛГОРИТМУ І ПРОГРАМІ, ТА ЇХ ПОЯСНЕННЯ
x, y – змінні дійсного типу, які є аргументами виразу;
z – змінна дійсного типу, якій надається значення результату обчислення виразу;
main() – головна функція;
printf() – функція виводу даних;
scanf() – функція вводу даних;
pow(x,y) – математична функція обчислення xy;
fi(aij)-сума елементів у кожному рядку матриці;
F(fi(aij))-середнє геометричне значення fi(aij)
Текст програми
#include<math.h>
#include<stdio.h>
#include<stdlib.h>
#define n 5
void bul(int a[n][n]);
void summ(int a[n][n]);
void main(void)
{
int i,j,k;
int a[n][n];
system("cls");
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]);
}
}
printf("staruj masuv\n");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("%5d",a[i][j]);
printf("\n");
}
bul(a);
printf("\n novuj masuv \n");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("%5d",a[i][j]);
}
printf("\n");
}
summ(a);
}
void bul(int a[n][n])
{
int i,j,k,c;
for(j=0;j<n;j++)
{
for(k=n-1;k>=0;k--)
{
for(i=0;i<k;i++)
{
if (a[i][j]>a[i+1][j])
{
c=a[i][j];
a[i][j]=a[i+1][j];
a[i+1][j]=c;
}
}
}
}
}
void summ(int a[n][n])
{
int i,j;
double f[n],F,z=0,s;
for(i=0;i<n;i++)
{
s=1.0;
for(j=0;j<n;j++)
{
s=s*a[i][j];
}
f[i]=pow(fabs(s),(1.0/n));
printf("f[%d]=%lf\n",i+1,f[i]);
printf("\n");
z=z+f[i];
}
F=z/n;
printf("\n");
printf("F=%lf",F);
}
Результати виконання роботи
/