Частина тексту файла (без зображень, графіків і формул):
НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ УКРАЇНИ
“КИЇВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ
імені ІГОРЯ СІКОРСЬКОГО”
ЗВІТ
з лабораторної роботи №4
з навчальної дисципліни “Програмування складних алгоритмів”
Варіант №3
Тема: МЕТОДИ ПОШУКУ У МАСИВАХ
Мета роботи:
Метою лабораторної роботи є отримання практичних навичок в обробці масивів, у пошуку елементів масивів різними методами.
Дослідження і вивчення методів пошуку ключових елементів у масивах.
Здійснення порівняння та аналізу ефективності використовуваних методів пошуку ключових елементів у масивах.
Завдання до лабораторної роботи:
1. Знайти заданий елемент у невпорядкованому масиві (не менше 10х10) за допомогою методу пошуку з бар’єром.
2. Знайти заданий елемент у впорядкованому масиві (не менше 10х10) згідно варіантів.
Завдання 3 варіанту:
/
Посилання:
https://replit.com/join/txfsjxmmba-tr-15-sliusarch
Код програми:
#include <stdio.h>
#include <time.h>
int main(void) {
long start, end;
int c, c2;
int mas[] = {1, 2, 3};
int n = 10;
int arr[n][n];
int arr2[n][n];
start = clock();
printf("Початкова матриця:");
for (int i = 0; i < n; i++) {
puts("");
for (int j = 0; j < n; j++) {
arr[i][j] = rand() % 3 + 1;
printf("%d \t", arr[i][j]);
}
}
printf("\n\nШуканий масив:\n");
for(int i = 0; i < sizeof mas / sizeof mas[0]; i++){
printf("%d\t", mas[i]);
}
printf("\n\nДовжина шуканого масиву = %d", sizeof mas / sizeof mas[0]);
puts("");
//-------------Пошук послідовності-----------------
int a = 0;
int size = sizeof mas / sizeof mas[0];
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if(arr[i][j] == mas[0]) {
int p = j+1;
int b = i;
a = 1;
for(int k = 1; k < size; k++) {
if(mas[k] == arr[b][p]) {
a++;
p++;
}
if (p == n) {
p = 0;
b++;
}
}
if(a == sizeof mas / sizeof mas[0]) {
printf("\nШуканий масив знайдено у %d рядку в %d стовпчику", i+1, j+1);
}
}
}
}
//------------Пошук бар'єром--------------
printf("\n\n-----------------------------------------------\n\nПочаткова матриця 2:");
for (int i = 0; i < n; i++) {
puts("");
for (int j = 0; j < n; j++) {
arr2[i][j] = rand() % 40;
printf("%d \t", arr2[i][j]);
}
}
printf("\nЗначення яке треба знайти від 0 до 40: ");
scanf("%d", &c);
puts("");
c2 = arr2[n-1][n-1];
arr2[n-1][n-1] = c;
for(int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (arr2[i][j] == arr2[n-1][n-1]) {
printf("Шуканий елемент '%d' знайднео в %d рядку %d стовпці\n", c, i+1, j+1);
}
}
}
arr2[n-1][n-1] = c2;
return 0;
}
Результати:
/
Висновки:
Під час даної лабораторної роботи була написана програма яка знаходить послідовність одного одновимірного масиву в іншому двовимірному методом пошуку послідовності елементів в масиві, а також яка знаходить заданий елемент методом пошуку бар’єром