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