Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 15.05.2020
Сообщений: 12

Цикл для нахождения маленького двухмерного массива в большом

15.05.2020, 19:08. Показов 1260. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток товарищи форумчане.Если честно в первый раз на форуме да и вообще новичок в java
Проблема такова.Я создал два двухмерных массива в которые жестко закодировал переменные и мое задание в том что бы найти маленький двухмерны массив в большом.Если проще то есть у меня вот такой массив int [][] arr1= { {1,2,4,5,9},
{1,2,3,4,12},
{1,2,1,1,4},
{1,2,1,1,8}
};
и еще один массив int [][] arr2 = { {1,1}
,{1,1}
};
Как мы видим маленький массив повторяться в большом в строках 3 и 4.Но я ума не приложу как мне сделать такой цикл который сможет найти маленький массив в большом и вывел мне true или false
Вот мой код:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import java.util.Scanner;
public class FindArray {
 
    public static void main(String[] args) {
          int [][] arr1= { {1,2,4,5,9},
                                {1,2,3,4,12},
                                {1,2,1,1,4},
                                {1,2,1,1,8}
                              };
int [][] arr2 = { {1,1},
                        {1,1}
                               };
show2D ( arr1);
System.out.println ();
show2D (arr2);                                 
    }
    System.out.println();}
    }
public static void show2D (int [][] a2d){
int rL = a2d.length;
int cL = a2d[0].length;
for (int r=0; r<rL; r++){
 for (int c=0; c<cL; c++)
    System.out.print(a2d[r][c]+"\t");
 System.out.println ();
 
 
    }
}}
Прошу помогите!
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.05.2020, 19:08
Ответы с готовыми решениями:

Поиск маленького изображения на большом и его координаты
Писали здесь на форуме что с opencv можно, но инфы практически нет по этом, изобретать свое смысла не вижу, задача слишком маленькая и...

Как созать цикл for для нахождения произведения элементов массива
Вот к примеру для нахождения суммы необходимо так: for (i=0, sum=0; i&lt;n; i++ ) sum+=m; А вот как для нахождения произведения у меня...

Составьте программу нахождения наименьшего элемента двухмерного массива
Составьте программу нахождения наименьшего элемента двухмерного массива A(N,M), большего данного T.

4
485 / 411 / 126
Регистрация: 23.05.2016
Сообщений: 1,653
15.05.2020, 20:03
Лучший ответ Сообщение было отмечено fifv10 как решение

Решение

примерно так:
Java
1
2
3
4
5
6
7
        for (int row = 0; row < arr1.length - arr2.length + 1; row++) {
            for (int columm = 0; columm < arr1[0].length - arr2[0].length + 1; columm++) {
                if (isSmallInsideBigAtPosition(arr1, arr2, row, columm)) {
                    System.out.println("Вхождение найдено, левый верхний угол (" + row + ", " + columm + ")");
                }
            }
        }
И вспомогательный метод:

Java
1
2
3
4
5
6
7
8
9
10
    static boolean isSmallInsideBigAtPosition (int[][] bigArr, int[][] smallArr, int positionRow, int positionColumn) {
        for (int row = 0; row < smallArr.length; row++) {
            for (int column = 0; column < smallArr[0].length; column++) {
                if (bigArr[row + positionRow][column + positionColumn] != smallArr[row][column]) {
                    return false;
                }
            }
        }
        return true;
   }
1
0 / 0 / 0
Регистрация: 15.05.2020
Сообщений: 12
17.05.2020, 04:48  [ТС]
Огромное спасибо !!!!Все работает так как мне нужно!!!
Если вам не сложно вы могли бы написать для меня комментарии что бы я понял все строчки правильно ?
Просто я совсем навичок в java и не совсем хорошо во всем разбираюсь,боюсь запутаться
0
485 / 411 / 126
Регистрация: 23.05.2016
Сообщений: 1,653
17.05.2020, 12:59
fifv10, предлагаю вам написать как работает алгоритм своими словами, это и будут комментарии. Если что, выкладывайте сюда, я или кто-нибудь другой поправит, подскажет.

Если программа в первом сообщении написана лично вами, то сложностей разобраться не будет, те же самые два цикла вложенные друг в друга.

Самая главная подсказка - не надо пытаться думать в терминах функции, которая вернет "входи/не входит" для всего массива. Нужно найти способ проверить входит или не входит маленький массив в большой для какого-нибудь одного левого верхнего угла выбранного в большом массиве. А потом прогнать все подходящие элементы большого массива через эту проверку. Словами расписывать эту подсказку мне было лень, поэтому написал сразу код. А дальнейшие комментарии будут выглядеть как
х + y //прибавляем к числу икс число игрек
оттрассируйте (выполните шаг за шагом) алгоритм на листочке бумаги и все поймете.
0
0 / 0 / 0
Регистрация: 15.05.2020
Сообщений: 12
19.05.2020, 04:43  [ТС]
Спасибо большое за подсказку ) Я не выкладывал сюда но просто расписал на листике и все понял)Сейчас уже думаю над другой проблемой)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.05.2020, 04:43
Помогаю со студенческими работами здесь

Затруднения с нахождения максимального отриц. элементов среди двухмерного массива
Определить наибольший среди отрицательных элементов четных столбцов матрицы целых чисел размером 4x6. Ввод реализовал, дошел до...

Составьте программу нахождения числа, встречающегося во всех строках двухмерного массива
Составьте программу нахождения числа, встречающегося во всех строках двухмерного массива A(N,N). Если такого нет числа, программа должна...

Составьте программу нахождения числа встречающегося во всех строках двухмерного массива
Составьте программу нахождения числа встречающегося во всех строках двухмерного массива A(N,N) если такого числа нет - программа должна...

Составить программу нахождения четных элементов двухмерного массива и вывести на экран и его номер
составить программу нахождения четных элементов двухмерного массива и вывести на экран и его номер

Перенос повторяющихся значений из двухмерного двухмерного массива в другой массив и запуск функции
Здравствуйте, форумчане! У меня есть двухмерный массив (string,string) В первом столбце хранятся номера телефонов, во втором хранится...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru