IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Перестановка чисел
Jekaterina
сообщение 5.01.2007 15:35
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 61
Пол: Женский
Реальное имя: Jekaterina Lauce

Репутация: -  0  +


Добрый день! Решала задачу такого содержания: во входном файле в первой строке указано количество чисел, записанных ниже в строку или столбик, например:
3
23 45 78
или:
3
23
45
78
В файл вывода числа записываются в обратном порядке в строчку, т.е.: 78 45 78 и в первом, и во втором случае. Кроме того, в первой строчке может стоять 0 или ничего, тогда все равно считываются числа, записанные далее в строчку и выводятся в обратном порядке, напр.:
0
3 56 8
Вывод:
8 56 3
Если в первой сроке стоит 0 и далее чисел нет, либо входной файл пуст, то в выходной файл выводится сообщение "чисел нет". У меня, кажется, получилось все, кроме случая, когда колличечтво чисел в файле не дано, но числа есть, напр.:
(пустая строка)
4 6 8
Выводится в файл не 8 6 4, а нули! В отдельной программе я эту задачу решаю, все получается, а "добавить" в ту, что привожу ниже, не получается. Пожалуйста, подскажите, где ошибка!


Прикрепленные файлы
Прикрепленный файл  REVERSE.PAS ( 843 байт ) Кол-во скачиваний: 191
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 5)
мисс_граффити
сообщение 5.01.2007 16:14
Сообщение #2


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


а как классифицировать случай:
3
23
34
12
то ли это 4 числа без указанного количества, то ли 3, но с количеством?


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Jekaterina
сообщение 5.01.2007 16:23
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 61
Пол: Женский
Реальное имя: Jekaterina Lauce

Репутация: -  0  +


Этот случай не берется во внимание. Предполагается, что количество чисел указывается правильно
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Jekaterina
сообщение 6.01.2007 2:08
Сообщение #4


Пионер
**

Группа: Пользователи
Сообщений: 61
Пол: Женский
Реальное имя: Jekaterina Lauce

Репутация: -  0  +


Заработалась я, простите. Дала глупый ответ no1.gif В данном случае это 3 числа. Т.е. в выходном файле должно быть 12 34 23. Этот вариант у меня, кажется, выполняется корректно.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 6.01.2007 16:15
Сообщение #5


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Ты ошибочно считаешь, что если считывать число оператором ReadLn, то в случае пустой строки он введет ноль. Ничего подобного, можешь поэкспериментировать на вводе с клавы. Вот простая программка для теста:
var
n:integer;
begin
ReadLn(n);
WriteLn('n=',n);
end.

Запусти ее и несколько раз нажми Enter (ввод пустой строки), а потом число (и снова Enter). Ты увидишь, что ReadLn(n) ждет ввода числа, игнорируя пустые строки.
Я рекомендую тебе первую строку читать не в числовую переменную, а в строковую. Затем, если она пустая - переходишь к алгоритму ввода чисел без заранее заданного количества, если в ней что-то есть - обрабатываешь это "что-то" процедурой Val.

Еще небольшое замечание: не ставь пробел между Read/Write и их параметрами - это смотрится странно.. И делай правильное форматирование (отступы нужно увеличивать после кадого begin и уменьшать на каждом end) - включая внешние begin/end программы!


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Jekaterina
сообщение 6.01.2007 18:02
Сообщение #6


Пионер
**

Группа: Пользователи
Сообщений: 61
Пол: Женский
Реальное имя: Jekaterina Lauce

Репутация: -  0  +


Большое спасибо за ваш комментарий! Действительно, оформление решений у меня храмает (не только сами решения smile.gif ). Буду исправляться.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 2:16
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"