![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
fly |
![]() ![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 24 Пол: Мужской Репутация: ![]() ![]() ![]() |
Хелпаните с задачкой плз...Задание такое:
Дан массив целых чисел MxM.Вводится произвольный массив чисел KxK.Известно ,что K существенно меньше, чем M.Определить,сколько раз второй массив всречается в первом. Вот пытался кое что делать.Что я не так делаю? Код var k:array[1..100,1..100] of integer; m:array[1..100,1..100] of integer; n,h,i,j:byte; begin writeln('vv kol strok'); readln(n); writeln('vv kol stolbcov'); readln(h); for i:=1 to h do end; begin writeln('vv',h,'chisel); for j:=1 to m do read(a[i,j]); end; begin even:=true; for i:=1 to K do for j:=1 to K do if M[i+x,j+y]<>K[x,y] then begin even:=false; break;end; end; count,i,j:byte; begin count:=0; for i:=0 to M-K do for j:=0 to M-K do if even(i,j) then inc(count); writeln(count) end. Сообщение отредактировано: fly - 18.04.2007 17:21 |
Tan |
![]()
Сообщение
#2
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 559 Пол: Мужской Реальное имя: Бруно Репутация: ![]() ![]() ![]() |
Объясни пожалуйста поподробней, с примером, что значит
Цитата Определить,сколько раз второй массив всречается в первом. Сообщение отредактировано: Tan - 18.04.2007 18:12 -------------------- Цитата Imagination is more important than knowledge. Albert Einstein |
klem4 |
![]()
Сообщение
#3
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Видимо
K: 1 2 3 4 M: 1 2 5 6 7 8 3 4 4 1 2 3 0 0 0 3 4 4 5 5 2 4 1 5 Ответ: 2 раза. -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
fly |
![]()
Сообщение
#4
|
Новичок ![]() Группа: Пользователи Сообщений: 24 Пол: Мужской Репутация: ![]() ![]() ![]() |
Klem4 всё верно понял.Нужно посчитать сколько раз массив K встречается в массиве M.
Сообщение отредактировано: fly - 23.04.2007 19:31 |
volvo |
![]()
Сообщение
#5
|
Гость ![]() |
Ну, пробегай в цикле (в двух, если быть точнее) по большой матрице (строки: 1 .. M-K, столбцы: 1 .. M-K)... Если текущий элемент = элементу малой матрицы с индексами [1, 1], то пробегать по K*K соседним элементам доп. циклами...
Ты хотя бы начни, на самом деле здесь ничего сложного нет... |
Lapp |
![]()
Сообщение
#6
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Вот пытался кое что делать.Что я не так делаю? Ты очень многое делаешь не так, трудно перечислить.. ![]() Но кое-что ты делаешь все же так. Например, последний цикл, а также следы от функции Even (кстати, почему такое название?..). Короче, я восстановил программу по твоему тексту (ответь честно - твой он или не твой? странно просто, вроде есть умные мысли, но есть и совершенно глупые ошибки..). Смотри, что получилось: var Массив я бы либо считывал из файла, либо задавл случайным образом из узкого диапазона (скажем, 0 и 1), тогда вероятность вхождения будет не такая маленькая. Попробуй, если будут сложности - спрашивай. В моем примере матрицы (4х4 и 2х2) получается обе нулевые, так что результат - 9 вхождений, что соответствует истине, как я прикинул. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Гость |
![]()
Сообщение
#7
|
Гость ![]() |
Короче, я восстановил программу по твоему тексту (ответь честно - твой он или не твой? странно просто, вроде есть Текст не мой а,собранный из разных текстов в один единственный. В моём случае массив из файла считывать нельзя,мы работу с файлами ещё не изучали. Я правильно понял что в твоём тексте m-это количество столбцов и строк в массиве "A", а k-это количество столбцов и строк в массиве "B"? |
fly |
![]()
Сообщение
#8
|
Новичок ![]() Группа: Пользователи Сообщений: 24 Пол: Мужской Репутация: ![]() ![]() ![]() |
Сори,забыл авторизироваться
|
Lapp |
![]()
Сообщение
#9
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Я правильно понял что в твоём тексте m-это количество столбцов и строк в массиве "A", а k-это количество столбцов и строк в массиве "B"? Дык. В соответствии с пожеланиями автора темы (тебя, то бишь) : Дан массив целых чисел MxM.Вводится произвольный массив чисел KxK. ![]() -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
fly |
![]()
Сообщение
#10
|
Новичок ![]() Группа: Пользователи Сообщений: 24 Пол: Мужской Репутация: ![]() ![]() ![]() |
А как сделать так чтобы занчения массива "B" мы вводили сами?
Сообщение отредактировано: fly - 2.05.2007 12:34 |
compiler |
![]()
Сообщение
#11
|
Человек ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: ![]() ![]() ![]() |
А как сделать так чтобы занчения массива "B" мы вводили сами? я думаю, надо просто организовать цикл и читать элеменгты..-------------------- Спасибо!
Удачи! |
fly |
![]()
Сообщение
#12
|
Новичок ![]() Группа: Пользователи Сообщений: 24 Пол: Мужской Репутация: ![]() ![]() ![]() |
Хм...Ну вот допустип организовали мы цикл (Поправьте если не правильно).
Код var A:array[1..100,1..100] of integer; B:array[1..100,1..100] of integer; m,k,i,j:integer; count:integer; function Even(x,y:integer):boolean; var i,j:integer; begin even:=true; for i:=0 to k-1 do for j:=0 to k-1 do begin if A[i+x,j+y]<>B[x,y] then begin even:=false; break end end end; begin m:=4; writeln('Вводите размер массива B'); readln(k); for i:=1 to k do begin writeln('Вводите',k,'чисел'); for j:=1 to k do read(B[i,j]) end; А дальше что?Как чиать элементы? Сообщение отредактировано: fly - 2.05.2007 15:16 |
compiler |
![]()
Сообщение
#13
|
Человек ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: ![]() ![]() ![]() |
А дальше что?Как чиать элементы? for i:=0 to k-1 do beginвот, там под себе подделаеш, все ясно? -------------------- Спасибо!
Удачи! |
fly |
![]()
Сообщение
#14
|
Новичок ![]() Группа: Пользователи Сообщений: 24 Пол: Мужской Репутация: ![]() ![]() ![]() |
Разобрался)))
Спасибо всем за помощь)) |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 2:53 |