![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Alex7 |
![]()
Сообщение
#1
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 85 Пол: Мужской Репутация: ![]() ![]() ![]() |
Нужно заменить все числа из тектового файла, где они записаны последовательностью(можно считать, что через один пробел) и напечатать эти числа, только проинвертируя каждую их цифру на предыдущую.
Как мне правильно читать с файла? Program Zamina(Lab11); Сообщение отредактировано: Alex7 - 14.12.2005 8:49 Прикрепленные файлы ![]() |
klem4 |
![]()
Сообщение
#2
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
находишь группу цифр и делаешь с ней вот так :
uses crt; -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
volvo |
![]()
Сообщение
#3
|
Гость ![]() |
klem4, не пойдет.. Что делает твоя программа? Я ввел '123' - получил перевертыш: '321' А нужно было - КАЖДУЮ цифру строки заменить на предыдущую: '012'
Задания будем читать внимательно, или будем постить то, что первое пришло в голову? ![]() for i := 1 to length(s) do |
klem4 |
![]()
Сообщение
#4
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Действительно, перепутал с инверсией ...
-------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Alex7 |
![]()
Сообщение
#5
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 85 Пол: Мужской Репутация: ![]() ![]() ![]() |
for i := 1 to length(s) do Да, но мы ж читаем стринг из файла, а там находится последовательность чисел, значит там есть между ними и пробелы! А по твоему условию они буду заменены на '9'. Так не идет. Может так будет правильно? for i := 1 to length(s) do Так думаю это будет правильно, НО, опять таки же(это моя ошибка) я не указал что именно от меня требовали, а именно: Код Разработать ф-я, которая из заданого беззнакового числа формирует новое число путем замены цифр предыдущего на соответствующую меньшую. Параметр ф-и- [u]число[/u], которое нужно заменить Мне препод сказал, что нужно читать по числам, молв, что read это может делать без проблем, но разве можно ридать(читать) из текстового файла по цифрам, а не по строкам? Сообщение отредактировано: Alex7 - 15.12.2005 19:46 |
Alex7 |
![]()
Сообщение
#6
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 85 Пол: Мужской Репутация: ![]() ![]() ![]() |
Клмн!
Не хочет работать! я попробовал уже который способ! Но ничего кроме преобразования одного, или всех одновременно(нельзя красиво вывести, в виде таблици) чисел вместе! ХЕЛП! ![]() |
klem4 |
![]()
Сообщение
#7
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Я не понимаю что тебе опять не понравилось ...
во первых Цитата Да, но мы ж читаем стринг из файла, а там находится последовательность чисел, Файл у тебя описан как текстовый, соответственно состоит из СТРОК. Читаешь строку и применяешь к ней то, что написано Volvo. Результатом будет новая строка, в которой 0 заменен 9, 1 на 0, 2 на 1 и т.д. -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Alex7 |
![]()
Сообщение
#8
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 85 Пол: Мужской Репутация: ![]() ![]() ![]() |
klem4 А ты прочитал полностью мой пост?
Строки, то которые мы читаем тоже состоят из чисел межу которыми знаки пробела! а по его условию они(пробелы), т.к. не принадлежат к ['1'..'9'] будут заменятся на '9' ! Понимаешь? Но это такое, описка, я это в том же посте подправил. Мне вот чо собственно надо(опять таки же я это написал выше!): Цитата Так думаю это будет правильно, НО, опять таки же(это моя ошибка) я не указал что именно от меня требовали, а именно: Код Разработать ф-ю, которая из заданого беззнакового числа формирует новое число путем замены цифр предыдущего на соответствующую меньшую. Параметр ф-и- [u]число[/u], которое нужно заменить Сообщение отредактировано: Alex7 - 17.12.2005 16:57 |
klem4 |
![]()
Сообщение
#9
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
У тебя в цикле идет проверка if s[i] in ['1'..'9'] then ... else ...
надо просто добавить еще оду проверку, окончательный вариант :
ты же сам почти так и сделал Сообщение отредактировано: klem4 - 17.12.2005 19:18 -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Alex7 |
![]()
Сообщение
#10
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 85 Пол: Мужской Репутация: ![]() ![]() ![]() |
Вобщем да.
Так, как ты сделал пожалуй грамотнее чем мой вариант, т.к. сразу страхуемя на случай встречания других символов. НООООООО!!! Мне нужно читать эти все числа с текстового файла, а потом передавать на обработку функции! А я не знаю как правиьно читать натуральное беззнаковое число! ![]() |
![]() ![]() |
![]() |
Текстовая версия | 18.07.2025 14:04 |