Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
ІКТА
кафедра ЗІ
ЗВІТ
до лабораторної роботи №3
з курсу: «Технології програмування »
на тему: «РОБОТА З МАСИВАМИ. ВИКОРИСТАННЯ ФУНКЦІЙ»
Варіант № 23
Мета роботи – вивчити синтаксис опису і використання у програмах змінних типу масивів, навчитися використовувати масиви для оброблення матриць, вивчити основні алгоритми сортування масивів; навчитися описувати та застосувати у програмах функції для виконання логічно закінчених алгоритмів.
1. Завдання
Скласти блок-схему алгоритму та програму мовою Cі згідно з завданням, отриманим від викладача за табл. 1: задану прямокутну матрицю A={aij} відсортувати за вказаним алгоритмом; для відсортованої матриці знайти значення функції F(fi(aij)); алгоритм сортування і обчислення fi(aij) оформити у вигляді функції; елементи матриці вводити з клавіатури; програма повинна вивести на екран відсортовану матрицю, всі значення fi(aij) та значення функції F(fi(aij)).
Впорядкувати елементи стовпців матриці за зростанням їх значень методом вставки
fi(aij)-сума елементів у кожному рядку над головною діагоналлю матриці; F(fi(aij))-середнє геометричне значення fi(aij)
Задана матриця:
31 65 -83 -2 -85
9 -2 11 -4 70
52 73 -8 -1 60
57 83 -1 82 50
1 -3 -2 78 -9
2. Блок-схема алгоритму програми
/
/
/
3. Cписок ідентифікаторів констант, змінних, функцій, використаних у блок-схемі алгоритму і програмі,
та їх пояснення
a[i][j] – елементи масиву;
fi(aij)-сума елементів у кожному рядку над головною діагоналлю матриці;
F(fi(aij))-середнє геометричне значення fi(aij);
for - цикл з передумовою;
if – умовний оператор;
main() – головна функція;
printf() – функція виводу даних;
scanf() – функція вводу даних;
4. Текст програми
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define n 5
void vstavka(int a[n][n]);
void dop(int a[n][n]);
int main(){
int i,j,k;
int a[n][n];
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("old \n");
for (i = 0; i < n; i++){
for (j = 0; j < n; j++){
printf ("%d\t", a[i][j]);
}
printf("\n");
}
vstavka(a);
printf("\nnew array\n");
for (i = 0; i < n; i++){
for (j = 0; j < n; j++){
printf ("%d\t", a[i][j]);
}
printf("\n");
}
printf("\n");
dop(a);
return 0;
}
void vstavka (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;
for(k=i-1;a[k][j]>x && k>=0;k--){
a[k+1][j]=a[k][j];
}
a[k+1][j]=x;
}
}
}
void dop (int a [n][n])
{
int i,j;
double f,F,res;
F=1.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+1)));
F*=f;
printf ("Serednie geometrychne elementiv %d riadka=%lf\n", i+1,f);
res = pow(F, 1.0/(n));
}
printf ("Serednie geometrychne elementiv riadkiv=%lf\n",res);
}
5. Результати роботи програми
/
Висновок
На цій лабораторній роботі я навчився методам сортування у мові С, працювати з масивами, писати та використовувати функції.