![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Feagor |
![]()
Сообщение
#1
|
![]() ыыыыщщщщщщыыыы ![]() ![]() Группа: Пользователи Сообщений: 68 Пол: Мужской Реальное имя: Иван Репутация: ![]() ![]() ![]() |
задача такова дана символьная матрица матрица n*m, вводятся строки длиной m<=255
затем текст выравнивается по ширине, т.е. добавить пробелы в местах где они есть, но так чтобы их разница между их количеством различалась не больше чем на 1. Собственно листинг:
работает правда не правильно=( Сообщение отредактировано: Feagor - 18.12.2007 9:31 -------------------- Никогда не задавайте вопрос, если не уверены, что хотите получить ответ...
|
andriano |
![]()
Сообщение
#2
|
Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: ![]() ![]() ![]() |
1. Предполагаю, что в условии ошибка: матрица не n*m, а m*n.
2. Не понял, что делает фрагмент: j:=1; Скорее всего, именно он и должен вставлять пробелы внутрь строки. Но почему-то делается это с фиксированным шагом. Ведь, насколько я понял из условия, количество вставляемых пробелов должно быть неодинаковым в разных местах - чтобы обеспечить на выходе фиксированную длину строки. Это разумно делать с помощью двух вложенных циклов: - во врутреннем вставляется по одному пробелу в каждую последовательность пробелов, - во внешнем эта операция повторяется до тех ор, пока строка не примет нужную длину. k := 1; // счетчик внешнего цикла, а заодно - длина последовательности пробелов (сколько пропускать) Еще пара замечаний: - искать длину строки можно и сразу во втором цикле, - целесообразно перед началом обработки строки исключить из нее все двойные пробелы, а также пробелы в начале и конце. Сообщение отредактировано: andriano - 18.12.2007 21:58 |
Feagor |
![]()
Сообщение
#3
|
![]() ыыыыщщщщщщыыыы ![]() ![]() Группа: Пользователи Сообщений: 68 Пол: Мужской Реальное имя: Иван Репутация: ![]() ![]() ![]() |
1. Предполагаю, что в условии ошибка: матрица не n*m, а m*n. Нет в условии все верно n строк и m столбцов За поправку спасибо, щас проверю... -------------------- Никогда не задавайте вопрос, если не уверены, что хотите получить ответ...
|
andriano |
![]()
Сообщение
#4
|
Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: ![]() ![]() ![]() |
Размер принято указывать в виде (размер по X)[*|x](размер по Y). Мы же не говоим 480x640 или 1024x1280.
|
Feagor |
![]()
Сообщение
#5
|
![]() ыыыыщщщщщщыыыы ![]() ![]() Группа: Пользователи Сообщений: 68 Пол: Мужской Реальное имя: Иван Репутация: ![]() ![]() ![]() |
Размер принято указывать в виде (размер по X)[*|x](размер по Y). Мы же не говоим 480x640 или 1024x1280. размер матрицы указывается не как x*y а как количество строк на количество столбцов...не веришь можешь почитать началы мат.анализа...хотя не советую - гадкая вещь ![]() -------------------- Никогда не задавайте вопрос, если не уверены, что хотите получить ответ...
|
Feagor |
![]()
Сообщение
#6
|
![]() ыыыыщщщщщщыыыы ![]() ![]() Группа: Пользователи Сообщений: 68 Пол: Мужской Реальное имя: Иван Репутация: ![]() ![]() ![]() |
че-то все перепроверил все равно не работает, почему то тупо в конец дорисовывает пробелы=(
-------------------- Никогда не задавайте вопрос, если не уверены, что хотите получить ответ...
|
Client |
![]()
Сообщение
#7
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 865 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
Цитата работает правда не правильно=( А у меня она даже не компилируется ![]() |
andriano |
![]()
Сообщение
#8
|
Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: ![]() ![]() ![]() |
че-то все перепроверил все равно не работает, почему то тупо в конец дорисовывает пробелы=( Ты свой прежний вариант, или тот, что предложил я? Если последний, притом, с учетом предложенных остальных исправлений, должно работать (за одним исключением - если в строке изначально нет ни одного пробела). Посмотри законченый вариант: uses crt; |
Feagor |
![]()
Сообщение
#9
|
![]() ыыыыщщщщщщыыыы ![]() ![]() Группа: Пользователи Сообщений: 68 Пол: Мужской Реальное имя: Иван Репутация: ![]() ![]() ![]() |
спасибо andriano работает!!!!
2client я работаю в FPC и у мну все норм компилится, для TP7 он орет слишком много переменных, попробуй уменьшить количество строк в матрице...при уменьшении от 255 до 25 работает -------------------- Никогда не задавайте вопрос, если не уверены, что хотите получить ответ...
|
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 14:23 |