Является ли заданная строка правильной записью целого числа?, Помогите пожалуйста с задачей... |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Является ли заданная строка правильной записью целого числа?, Помогите пожалуйста с задачей... |
bama_girl |
9.04.2008 11:05
Сообщение
#1
|
Группа: Пользователи Сообщений: 4 Пол: Женский Реальное имя: Ксюша Репутация: 0 |
Определить, является ли заданная строка "правильной записью целого числа" (возможно со знаком).
Вот как ее решила я: Код program laba; uses crt; var s:string; w, code:integer; procedure start; begin writeln('введите строку'); readln(s); end; procedure process; begin Val(s,w,code); end; procedure finish; begin If code=0 then writeln('Строка ', s,' является записью целого числа ') else writeln('Строка ', s,' не является записью целого числа '); readln; end; begin writeln ('Эта программа определяет, является ли введенная вами строка правильной записью целого числа.'); readln; start; process; finish; end. Однако, здесь идет конвертирование и проверка всей строки сразу.... Это очень ограничило количество вводимых символов.... Мне поставили новую задачу: сделать так, чтобы шли конвертирование и проверка каждого символа... Сложность еще в том, что целые числа могут быть и отрицательными, и если делать посимвольную проверку, то нужно учитывать знак "-" в начале строки... Подскажите пожалуйста, как сделать! Сообщение отредактировано: bama_girl - 9.04.2008 19:04 |
Michael_Rybak |
9.04.2008 11:24
Сообщение
#2
|
|||
Michael_Rybak Группа: Модераторы Сообщений: 1 046 Пол: Мужской Реальное имя: Michael_Rybak Репутация: 32 |
очень просто. смотри. читаешь строку (как строку, string). если первый символ не минус и не цифра - сразу ответ "нет". иначе, если среди остальных символов только цифры - ответ "да", иначе - "нет". проверяешь циклом for.
и тему переименуй, пожалуйста.
|
|||
bama_girl |
9.04.2008 18:59
Сообщение
#3
|
Группа: Пользователи Сообщений: 4 Пол: Женский Реальное имя: Ксюша Репутация: 0 |
Спасибо большое за помощь, суть ясна =)
Только сразу возник вопрос: Если я, например, для начала поставлю условие на первые два символа, а дальше с помощью цикла буду осушествлять проверку остальных символов (например дана строка -12345... сначала проверяю -1 (является целым числом), а дальше посимвольно: 2, 3, 4, 5...), такой вариант возможен?... Сообщение отредактировано: bama_girl - 9.04.2008 19:18 |
andriano |
9.04.2008 19:45
Сообщение
#4
|
Гуру Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: 28 |
|
Michael_Rybak |
9.04.2008 20:53
Сообщение
#5
|
Michael_Rybak Группа: Модераторы Сообщений: 1 046 Пол: Мужской Реальное имя: Michael_Rybak Репутация: 32 |
Цитата Если я, например, для начала поставлю условие на первые два символа, а дальше с помощью цикла буду осушествлять проверку остальных символов (например дана строка -12345... сначала проверяю -1 (является целым числом), а дальше посимвольно: 2, 3, 4, 5...), такой вариант возможен?... Да, только учти, что во введенной строке может и не быть двух символов. А может и одного не быть. |
andriano |
10.04.2008 7:02
Сообщение
#6
|
Гуру Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: 28 |
Michael_Rybak, неправда Ваша.
Если нечто нужно проверить на валидность, то следует сначала сформулировать, что же следует считать валидным. Без этого задача не полна. А, пытаясь решать задачу с явно неполным условием, можно запросто сесть в лужу. Впрочем, каждый волен решать, как лично ему поступать в том или ином случае. Только не следует рекомендовать другим явно неправильные действия. |
Michael_Rybak |
10.04.2008 11:26
Сообщение
#7
|
Michael_Rybak Группа: Модераторы Сообщений: 1 046 Пол: Мужской Реальное имя: Michael_Rybak Репутация: 32 |
может нам еще римские цифры учитывать, а так же вербальное представление слов? и иероглифы?
по тексту автора темы совершенно очевидно, что имеется ввиду десятичная запись. более того, при желании можно и вывод такой сделать: функция val c целым аргументом обработает только десятичную запись, а ксюша говорит, что всё ок, только нужно добавить, чтоб работало с длинными числами. давайте не будем придираться к запятым в тексте, это ну совсем-совсем бессмысленно. я не говорю, вообще не придираться. просто есть какая-то мера подразумеваемости, и в данном случае очень явная, по-моему. |
andriano |
10.04.2008 21:11
Сообщение
#8
|
Гуру Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: 28 |
может нам еще римские цифры учитывать, а так же вербальное представление слов? и иероглифы? Цитата по тексту автора темы совершенно очевидно, что имеется ввиду десятичная запись. Цитата более того, при желании можно и вывод такой сделать: функция val c целым аргументом обработает только десятичную запись, а ксюша говорит, что всё ок, только нужно добавить, чтоб работало с длинными числами. Неправда Ваша.
val('$ff',i,j); Цитата давайте не будем придираться к запятым в тексте, это ну совсем-совсем бессмысленно. я не говорю, вообще не придираться. просто есть какая-то мера подразумеваемости, и в данном случае очень явная, по-моему. Я не придираюсь. Я обращаю внимание на неоднозначность в формулировке задачи.Увы, на практике очень часто оказывается, что каждый из двух беседующих подразумевает что-то свое, тогда как каждый из них уверен, что они подразумевают одно и то же. Бывают и более сложные ситуации, например, в системе "преподаватель, студент, помощник" запросто может оказаться, что преподаватель и помощник подразумевают разное, а студент, не владея материалом в достаточной мере, просто даже не подозревает о возможности такой разницы. В таком случае если помощник своевременно сможет доказать студенту необходимость уточнить условие у преподавателя, это в дальнейшем поможет избежать студенту массы неприятностей. Скажешь не жизненная ситуация? |
Michael_Rybak |
10.04.2008 22:54
Сообщение
#9
|
Michael_Rybak Группа: Модераторы Сообщений: 1 046 Пол: Мужской Реальное имя: Michael_Rybak Репутация: 32 |
вообще - согласен. в данном конкретном случае, на мой взгляд, всё предельно ясно. автор жеж божий одуванчик, такой милый и невинный. ты веришь, что от нее могут требовать шестнадцатиричную запись?
p.s. про val каюсь, но дела это не меняет. |
andriano |
11.04.2008 19:41
Сообщение
#10
|
Гуру Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: 28 |
ты веришь, что от нее могут требовать шестнадцатиричную запись? Вопрос касается не особенностей моего вероисповедания, а исключительно условия задачи, которое звучит так:Цитата Определить, является ли заданная строка "правильной записью целого числа" (возможно со знаком). Скажи честно и откровенно, шестнадцатиричное представление является правильной записью целого числа или нет? Сообщение отредактировано: andriano - 11.04.2008 19:43 |
hardcase |
11.04.2008 23:28
Сообщение
#11
|
code warrior Группа: Пользователи Сообщений: 484 Пол: Мужской Реальное имя: Славен Репутация: 8 |
ППц вы тут демагогию развели...
-------------------- ИзВ ин ИтЕ зА нЕ рОв НЫй П оч ЕРк
|
Michael_Rybak |
12.04.2008 19:37
Сообщение
#12
|
Michael_Rybak Группа: Модераторы Сообщений: 1 046 Пол: Мужской Реальное имя: Michael_Rybak Репутация: 32 |
Цитата Скажи честно и откровенно, шестнадцатиричное представление является правильной записью целого числа или нет? я уже писал про римские и иероглифы. а спрашивать об очевидном - незачем |
bama_girl |
20.04.2008 12:30
Сообщение
#13
|
Группа: Пользователи Сообщений: 4 Пол: Женский Реальное имя: Ксюша Репутация: 0 |
Ребят, возникла еще одна проблема: в эту задачу как-то надо рекурсию впихнуть...
|
Текстовая версия | 4.06.2024 1:41 |