Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
ІКТА
кафедра ЗІ
ЗВІТ
до лабораторної роботи №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. Результати роботи програми
/
Висновок
На цій лабораторній роботі я навчився методам сортування у мові С, працювати з масивами, писати та використовувати функції.
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!