1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
| Злой человек |
Сообщение
#1
|
|
Гость |
Дана матрица char[n][m]
Надо подсчитать количество прямоугольников(состоящих из различных символов) разных типов (‘.’ не учитывается) Пример ###. . .??..+. ###.= .??..+. ###. .. . ...+. . . . . ???.... . ???...... === ???. . .####.. # прямоугольников 2 ? прямоугольников 3 + прямоугольников 1 = прямоугольников 2 Подскажите, пожалуйста, хотя бы алгоритм... (как вывести матрицу я, конечно, знаю) Спасибо |
![]() ![]() |
| Человек, нуждающийся в помощи |
Сообщение
#2
|
|
Гость |
Я думаю, т.к. матрица задается из файла, то такой заморочки не будет)))
Матрица будет примерно как в примере(простите за тафталогию)... Спасибо |
| Michael_Rybak |
Сообщение
#3
|
|
Michael_Rybak ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 046 Пол: Мужской Реальное имя: Michael_Rybak Репутация: 32 |
Если матрица - примерно как в примере, то всё очень просто.
Считать нужно по левым верхним квадратикам. У каждого прямоугольника есть только один левый верхний квадратик Фрагмент кода будет выглядеть примерно так: ... |
| Malice |
Сообщение
#4
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: 20 |
|
| Michael_Rybak |
Сообщение
#5
|
|
Michael_Rybak ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 046 Пол: Мужской Реальное имя: Michael_Rybak Репутация: 32 |
А что тогда делать с примером из поста 3?
И в посте 2, и в посте 3 прямоугольники пересекаются. Для такой ситуации нужно более четко сформулировать понятие прямоугольников, которые нас интересуют. ОП говорит, что "такой заморочки не будет". Сообщение отредактировано: Michael_Rybak - |
| Malice |
Сообщение
#6
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: 20 |
А что тогда делать с примером из поста 3? И в посте 2, и в посте 3 прямоугольники пересекаются. Для такой ситуации нужно более четко сформулировать понятие прямоугольников, которые нас интересуют. Почему пересекаются, прикасаются только: ##### ##### ##### ### . . ### . . ### . . В четвертом посте не так красиво по моему алго получится, что-то типа этого: ...1... ..213.. .42135. 6421357 .42135. ..213.. ...1... Аж 7 штук |
| -Человек- |
Сообщение
#7
|
|
Гость |
Как я понял, код ищет)) 1 прямоугольник, а как переходить от одного прямоугольника к другому? Использовать счетчик, который запоминает, какие элементы матрицы использованы?
|
Злой человек анализ и сравнение 14.10.2006 20:24
-Человек- #####
#####
#####
### . .
### . .
### . .
Для так… 14.10.2006 21:48
Michael_Rybak Хм, а для такой, получается, 4?
...#...
..###..
.… 14.10.2006 23:21
Michael_Rybak
Как я понял, код ищет)) 1 прямоугольник
Нет. К… 17.10.2006 0:31
Благодарный человек)) Спасибо за исчерпывающий ответ!!!
Но я… 17.10.2006 22:04
klem4
Это какие например ? :blink: 17.10.2006 22:06
-Человек- ВСЕМ СПАСИБО ОГРОМНОЕ!!!!!… 23.10.2006 0:11
volvo Чтобы не делать так:
For i := 0 to 255 do count[i]… 23.10.2006 0:35![]() ![]() |
|
Текстовая версия | 8.11.2025 10:37 |