МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
ІКТА
кафедра „ЗАХИСТ ІНФОРМАЦІЇ”
ЗВІТ
до лабораторної роботи № 6
З КУРСУ “АЛГОРИТМІЧНІ МОВИ І ПРОГРАМУВАННЯ”
на тему:
РОБОТА З МАСИВАМИ. ВИКОРИСТАННЯ ФУНКЦІЙ
Варіант № 9
Виконав:
студент групи ІБ – 1
Львів - 2007
Мета роботи - вивчити синтаксис опису і використання в програмах змінних типу масив, навчитися використовувати масиви для оброблення матриць, вивчити основні алгоритми сортування масивів; навчитися описувати та застосовувати у програмах процедури і функції для виконання логічно закінчених алгоритмів.
2. ПОВНИЙ ТЕКС ЗАВДАННЯ
Впорядкувати елементи рядків матриці за зростанням їх значень методом вибору
fi(aij)-сума елементів у кожному стовпці над допоміжною діагоналлю матриці; F(fi(aij))-середнє геометричне значення fi(aij)
44 -2 -5 38 –91
2 0 6 3 22
13 1 -4 90 11
-3 -6 -98 -23 -24
10 34 32 31 69
3. ОСТАТОЧНА ВЕРСІЯ БЛОК-СХЕМИ АЛГОРИТМУ
Блок-схема функції vuvid(a)
Блок-схема функції vvid(a)
Блок-схема функції syma(a,m,j)
Блок-схема функції Geom(а)
Блок-схема функції Sort(а)
4. СПИСОК ІДЕНТИФІКАТОРІВ КОНСТАНТ, ЗМІННИХ, ПРОЦЕДУР І ФУНКЦІЙ, ВИКОРИСТАНИХ У ПРОГРАМІ, ТА ЇХ ПОЯСНЕННЯ
a – масив значень типу int який потрібно впорядкувати;
n – константа типу int яка вказує розмірність масиву а;
c – змінна типу int яка використовується для того щоб поміняти два значення елементів масиву а місцями;
i, j, k – змінні типу int для зберігання введених даних та результату роботи програми;
v, s – змінні типу double для зберігання певних значень відповідного типу у функціях;
clrscr() – функція очистки екрана яка об’явлена в модулі conio.h;
getch() – функція яка чекає натискання будь-якої клавіші;
printf() – функція виведення текстових повідомлень і значень змінних на екран;
scanf() – функція яка зчитує дані з клавіатури та присвоює відповідне значення змінним;
pow(x,y) – функція для піднесення х в степінь у;
Користувацькі функції
vuvid(а) – функція яка здійснює вивід матриці а на екран;
vvid(а) – функція яка зчитує значення введені з клавіатури і поміщає їх у масив а розміру n*n;
Sort(а) – функція яка впорядковує стовпці матриці а за спаданням їх значень методом обміну;
suma(а, і) – функція, яка повертає значення типу int яке є сумою і-того рядка матриці над головною діагоналлю;
geom(а) – функція яка повертає значення типу double яке є сумою середнім геометричним значень усіх сум а над головною діагоналлю;
5. ОСТАТОЧНА ВЕРСІЯ ПРОГРАМИ
#include<stdio.h>
#include<conio.h>
#include<math.h>
#define n 5
void sort(int a[n][n]);
void geom(int a[n][n]);
void vvid(int a[n][n]);
void vuvid(int a[n][n]);
void main(void)
{
clrscr();
int a[n][n];
vvid(a);
printf("old array\n");
vuvid(a);
sort(a);
printf("\nnew array\n");
vuvid(a);
geom(a);
getch();
}
//--------------------------
void sort(int a[][n])
{
int i,k,j,l,x;
for(i=0;i<n;i++)
{
for(j=0;j<n-1;j++)
{
k=j;x=a[i][j];
for(l=j+1; l<n;l++)
if(x > a[i][l])
{
k=l;x=a[i][l];
}
a[i][k]=a[i][j];
a[i][j]=x;
}
}
}
//---------------------
void geom(int a[][n])
{
int syma(int a[n][n],int m,int j);
double v=1;int j,m=n-1;
for(j=0;j<n-1;j++)
{
v*=syma(a,m,j);
m--;
}
printf("ser.geometruchne=%lf",pow(fabs(v),1.0/(n-1)));
}
//------------------
int syma(int a[][n],int m,int j)
{
int s=0,i;
for(i=0;i<m;i++)
s+=a[i][j];
printf("syma %i stopca=%d\n",j+1,s);
return s;
}
//---------------------------
void vvid (int a[n][n])
{
int i,j;
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
printf("a[%d][%d] =", i, j);
scanf("%d", &a[i][j]);
}
}
}
//------------------------
void vuvid(int a[n][n])
{
int i,j;
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
printf ("%5d", a[i][j]);
printf("\n");
}
}
6.РЕЗУЛЬТАТИ РОБОТИ ПРОГРАМИ
a[0][0] =44
a[0][1] =-2
a[0][2] =-5
a[0][3] =38
a[0][4] =-91
a[1][0] =2
a[1][1] =0
a[1][2] =6
a[1][3] =3
a[1][4] =22
a[2][0] =13
a[2][1] =1
a[2][2] =-4
a[2][3] =90
a[2][4] =11
a[3][0] =-3
a[3][1] =-6
a[3][2] =-98
a[3][3] =-23
a[3][4] =-24
a[4][0] =10
a[4][1] =34
a[4][2] =32
a[4][3] =31
a[4][4] =69
old array
44 -2 -5 38 -91
2 0 6 3 22
13 1 -4 90 11
-3 -6 -98 -23 -24
10 34 32 31 69
new array
-91 -5 -2 38 44
0 2 3 6 22
-4 1 11 13 90
-98 -24 -23 -6 -3
10 31 32 34 69
syma 1 stopca=-193
syma 2 stopca=-2
syma 3 stopca=1
syma 4 stopca=38
ser.geometruchne=11.005068
7. ВИСНОВОК
На даній лабораторній роботі я навчився використовувати змінними типу масив та користуватися функціями. Я вивчив алгоритми для впорядкування елементів масиву. Внаслідок чого було створено програму для введення, впорядкування, пошуку середнього геометричного та виведення масиву на дисплей.