![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Lilu |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 5 Пол: Женский Репутация: ![]() ![]() ![]() |
Здравствуйте! Помогите найти ошибку. Есть задача про спортсменов. Информацию о каждом спортсмене нужно оформить в виде записи. Совокупность записей объединить в массив. Программа должна выводить спортсменов, не получивших ни одной награды.
Написала код. Все сделала по аналогичной задаче из методички. В итоге программа вылетает при попытке ввести данные (фамилия, имя...) с ошибкой 106 invalid numeric format. Много раз все перепрорверяла, в чем проблема в упор не вижу. Вот сам код: Uses Crt; |
![]() ![]() |
Krjuger |
![]()
Сообщение
#2
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
Все дело в том,что вы в числовую переменную пытаетесь записать не число.Это вызвано тем,что у вас в одной строке используются и string и числовые переменные.В итоге, что делает readln, он записывает первые 10 символов в фамилию потом 10 символов в имя и 10 символов в страну,а потом пытаеться считать числа.Почему же так все просиходит?Потому что пробел при записи в String не является разделителем,а выступает в роли символа,который записывается в стринг,поэтому записть идет до конца переменной,тобишь все 10 символов.В итоге, если ввести такую строку:
Petrov Ivan Russia 123 32 2 ,то он будет записывать следующим образом фамилия Petrov Iva имя an Russia страна 123 32 2 и потом будет конец строки,который он попытается записать в числовые переменные,что у него конешно же не получается и он выдает ошибку. Есть 2 способа решить эту проблему,либо самостоятельно считать пробелы после слов,и вторым readln ом считывать числа,либо разбивать ввод на несколько этапов(для каждой переменной свой readln),можно еще написать свою процедуру ввода. Сообщение отредактировано: Krjuger - 14.04.2012 14:04 |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 17:30 |