You are on page 1of 7

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»

Звіт
З лабораторної роботи №5 на тему: “Програмування
алгоритмів на обробку масивів. Робота з файлами”
З дисципліни
“Алгоритмізація та програмування, частина 1”

Виконав:
студент групи ПП-14
Букалюк О.Р
Прийняв:
Професор Василів К.М

Львів - 2022
ВАРІАНТ №2
ЛАБОРАТОРНА РОБОТА № 5
Мета роботи: Навчитися використовувати масиви та файли при розв’язанні задач.
Хід виконання роботи
1. Навчитися використовувати масиви та файли при розв’язанні задач.
2. Одержати індивідуальне завдання.
3. Побудувати блок-схеми алгоритмів відповідно до завдання.
4. Скласти програми на алгоритмічній мові C згідно завдання.
5. Відлагодити програми, виконати обчислення, проаналізувати отримані
результати.
Завдання №1
Дано натуральне число N (задати довільно, як константу препроцесора) і одновимірний
масив A0, A1, …, AN-1 цілих чисел (згенерувати додатні та від’ємні елементи випадковим
чином, за допомогою функції бібліотеки rand()). Виконати наступну дію:
2. Одержати масив, що відрізняється від оригінального тим, що всі непарні за порядком
елементи подвоєні, а парні отримані додаванням власного значення з початковим
значенням наступного елемента.
Код для розрахунку значення функції:
#include <stdio.h>
#define N 11
int main()
{
int x[N],xnew[N]={0};
for(int i = 0; i < N; i++)
{
x[i] = rand();
}
for(int i = 0; i < N; i++)
{

if(i%2==0)
{
xnew[i]=2*x[i];
}
else
xnew[i]=x[i]+x[i+1];
printf("%10d ", x[i]);

}
printf("\n ");
for(int i=0;i<N;i++)
{
printf("%10d ", xnew[i]);
}

return 0;
}
Результат :

Блок - схема до завдання №1


Завдання №2
У файл F1.txt попередньо записати матрицю цілих чисел А(N,N) (згенерувати випадковим чином, N
задати довільно, як константу препроцесора). Прочитати матрицю з файлу, виконати описані нижче
дії, їх результати записати в файл F2.txt. Виконати наступну дію:
2. Поміняти місцями елементи головної і бічної діагоналей.
1)Записуємо матрицю цілих чисел A(N, N) у файл F1.txt:

2) Код для розрахунку значення функції:


#include <stdio.h>
#define N 5
int main()
{
int a[N][N], s = 0;
FILE *fp = fopen("F1.txt", "r");
for(int i = 0; i < N; i++){
for(int j = 0; j < N; j++)
{
fscanf(fp, "%d", &a[i][j]);
}
}
fclose(fp);
for(int i=0;i<N;i++)
{
for(int j=0;j<N;j++)
{
if(i==j)
{
int change;
change=a[i][j];
a[i][j]=a[i][N-1-j];
a[i][N-1-j]=change;
}
}
}
fp=fopen("F2.txt","w");
for(int i=0;i<N;i++)
{
for(int j=0;j<N;j++)
{
fprintf(fp,"%d ", a[i][j]);

}fprintf(fp,"\n");
}
fclose(fp);
return 0;
}

3)Записані результати у файлі F2.txt:


Блок схема до завдання №2
Висновок:Я навчився використовувати масиви та файли при розв’язанні задач, також я
одержав масив, що відрізняється від оригінального тим, що всі непарні за порядком
елементи подвоєні, а парні отримані додаванням власного значення з початковим
значенням наступного елемента.

You might also like