Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
ІКТА
кафедра ЗІ
З В І Т
до лабораторної роботи №3
з курсу: «Технології програмування»
на тему: «Робота з масивами. Використання функцій»
Варіант № 1
Львів – 2016
Мета роботи – вивчити синтаксис опису і використання у програмах
змінних типу масивів, навчитися використовувати масиви для оброблення
матриць, вивчити основні алгоритми сортування масивів; навчитися описувати
та застосувати у програмах функції для виконання логічно закінчених алгоритмів.
Завдання
Скласти блок-схему алгоритму та програму мовою Cі згідно ззавданням, отриманим від викладача за табл. 1: задану прямокутну матрицюA={aij} відсортувати за вказаним алгоритмом; для відсортованої матрицізнайти значення функції F(fi(aij)); алгоритм сортування і обчислення fi(aij)оформити у вигляді функції; елементи матриці вводити з клавіатури; програмаповинна вивести на екран відсортовану матрицю, всі значення fi(aij) та значенняфункції F(fi(aij)).
/
2
Блок-схема алгоритму програми
input
3
output
4
Sort
Calc
6
7
main
/
8
Список ідентифікаторів констант, змінних, функцій,
використаних у блок-схемі алгоритму і програмі, та їх пояснення
main( )- головна функція;
printf( )-функція виводу;
scanf()-функція вводу;
for( ) – оператор покрокового циклу;
if( ) – умовний оператор;
sort()- функція сортування;
calc()-функція обрахунку;
mass[n][n]-масив розміром n x n;
input() – функція вводу масива;
output() – функція виводу масива;
9
Текст програми
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define n 5
void sort (int mass[n][n]);
void calc (int mass[n][n]);
void main()
{
int mass[n][n];
int i, j, F;
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
printf("mass[%d][%d] =", i+1, j+1);
scanf("%d", &mass[i][j]);
}
}
printf ("Stariy masiv\n");
for (i=0; i<n; i++)
{
for(j=0; j<n; j++)
{
printf("%d \t", mass[i][j]);
}
printf("\n");
}
printf ("Vidsortovaniy masiv\n");
sort (mass);
for (i=0; i<n; i++)
{
for(j=0; j<n; j++)
{
printf("%d \t", mass[i][j]);
}
printf("\n");
}
printf("calc\n");
calc (mass);
}
void sort (int mass[n][n])
{
int i, j, k=0, b;
for (i=0; i<n; i++)
{
for (j=1; j<n; j++)
{
b=mass[j][i];
k=j-1;
while(mass[k][i]<b&&k>=0)
{
mass[k+1][i]=mass[k][i];
k--;
}
mass[k+1][i]=b;
}
}
}
void calc(int mass[n][n])
{
int i,j,a,f,k, F;
for(i=0; i<n; i++)
{
for(j=0;j<n-1; j++)
{
k =j;
f = mass [i][j];
for(a = j+1; a<n; a++)
{
if(mass[i][a]<f)
{
k = a;
f = mass[i][a];
mass[i][k] = mass[i][j];
mass[i][j] = f;
}
}
}
}
for(i=0;i<n;i++)
{
j=n-1;
printf("Maximalne v %d line of %d\n",i+1,mass[i][j]);
F+=mass[i][j];
}
printf("Summa maksimalnyx chisel:%d \n",F);
}
Результати роботи програми
/
13