Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.01.2019, 20:46   #11
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

От отрицательного числа вместо Integer будет гарантировать тип Word, с ошибкой ввода в случае чего, и отрицательные нельзя вводить по условию, но если очень хочется, то можно и буквы тоже в место цифр. Как обрабатывать ошибки (исключения) в турбо паскале без понятия, честно )) Разве что специальные функции наваять с asm-вставками
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 07.01.2019 в 20:57.
Аватар вне форума Ответить с цитированием
Старый 07.01.2019, 20:57   #12
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,536
По умолчанию

Никакой ошибки ввода. Спокойно съедает -1, выплевывая 65535 . Аналогично 65537 -> 1. Надо парсить строку ввода на предмет '-', а оно нам надо ?

Последний раз редактировалось digitalis; 07.01.2019 в 21:02.
digitalis вне форума Ответить с цитированием
Старый 07.01.2019, 21:01   #13
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
Никак. Спокойно съедает -1, выплевывая 65535
Отак? Не хороший он. Парсить не хочется, тем более для таких задачек. Значит ни какого боя защите от дурака ))
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 07.01.2019, 21:08   #14
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,536
По умолчанию

Дык моя версия минуса отсекает автоматом. Правда, одна лишняя проверка (при ручном вводе) шибко замедляет течение проги.
Вот какие глубины открываются на простейшей задаче. "Мелкая философия на глубоком месте" © В.В.Маяковский

Последний раз редактировалось digitalis; 07.01.2019 в 21:11.
digitalis вне форума Ответить с цитированием
Старый 07.01.2019, 21:36   #15
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,304
По умолчанию

digitalis
Цитата:
Никакой ошибки ввода. Спокойно съедает -1, выплевывая 65535 . Аналогично 65537 -> 1. Надо парсить строку ввода на предмет '-', а оно нам надо ?
Это какой версии Ваш Паскаль?
У меня FPC от 17 -го года и ругается, если в тип word вводим отрицательное число.
Для перехвата ошибок есть директивы компиляции.
Так, для операций ввода/вывода - {$I+} - включить перехват и {$I-} - выключить перехват ошибки.
Правильным было бы заставить ввести первое число и минимум искать среди вводимых чисел. Код будет слегка длиннее, но это учебный пример.
А если написать по полной, с проверками, а если целое больше 32768
И много ещё если...
PS:
Код:
Readln(x);
Min := x;  {это лишнее}

{Так чуть короче}
Readln(Min); {сразу вводим минимум}
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 07.01.2019, 21:38   #16
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,536
По умолчанию

ТР7 1983г, перехват не включал.
digitalis вне форума Ответить с цитированием
Старый 07.01.2019, 21:43   #17
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
У меня FPC от 17 -го года и ругается, если в тип word вводим отрицательное число.
Ну так free и турбо далеко не одно и тоже
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 07.01.2019, 22:07   #18
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,304
По умолчанию

Цитата:
ТР7 1983г, перехват не включал.
Понятно, у TP7 есть и другие проблемы.
Мне не очень понятны сегодняшние требования к TP7 или PascalABC в свете наличия FPC или того же Lazarus.
Одно объяснение мной было получено от школьного учителя:
" На каком языке вы программируете?
- На Паскале.
А в какой среде?
- Это как? Школьники пишут решения в тетради.
А почему не ставите, например FPC?
- Нам запрещено ставить не лицензионное ПО из Интернета.
FPC - это лицензионное ПО и денег не требуется.
...
"
Но это уже флейм ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 07.01.2019, 22:27   #19
Байтик
Пользователь
 
Регистрация: 21.12.2018
Сообщений: 28
По умолчанию

О проверке ввода я, как и все предыдущие ораторы, не говорил. Проверку эту, я думаю, вставить несложно. Я к тому, что можно обойтись без излишней суеты по нахождению гарантированного минимума.
Кстати, предложенный в посте 9 подход позволяет решить ту же задачу без условия натуральности.
В моем коде есть один момент, который мне не нравится. 2 раза чтение данных. И если проверять (или делать еще какие-то телодвижения при вводе) то это неприятно. Вот модификация
Код:
Min := 0;
x := 1;
while x>0 do begin
  Readln(X);
  if (x = 0)  break;
  if (Min = 0) or (x< Min) then Min := X;
end;
if Min = 0 then
  Write('Последовательность пуста');
Я, правда, не знаю, гарантируется ли в Паскале такая же последовательность обработки условий, как в Си. Но наверное, в любом случае можно написать соответствующий код.
Байтик вне форума Ответить с цитированием
Старый 07.01.2019, 22:54   #20
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
Проверку эту, я думаю, вставить несложно
Не сложно? Ну вставь нормальную обработку для последовательности ввода:
2 3
2,3
-00000131
0000064
1234567
f123
23
Да любой текст вместо этого и нормально обработай в рамках задачи ТС и турбо паскаля. Там код этой обработки будет сильно подлиннее кода всей задачки. Нужно убрать пробелы слева и справа, левые нули, в остатке только цифры и не больше 65535 или если int то 32767
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 07.01.2019 в 23:00.
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Среди простых чисел, не превосходящих заданного N, найти такое, в двоичной записи которого содержится минимальное число нулей. Ace_400 Общие вопросы C/C++ 6 23.12.2017 22:01
[Delphi] С клавиатуры вводятся целые положительные числа.Найти максимальное и минимальное число и их частное. neznayu kto Помощь студентам 2 23.04.2017 15:22
QBasic. Даны 3 числа. Найти минимальное число. Vlad0697 Помощь студентам 1 16.05.2014 11:20
найти минимальное число,которое представляется сумой 4 квадратов натуральных чисел не Dima170792 Помощь студентам 2 24.06.2011 09:10