|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
01.03.2009, 22:16 | #1 |
Пользователь
Регистрация: 25.02.2009
Сообщений: 40
|
простая задачка, а не могу разобраться
требуется определить, является ли введенное число двоичным? Вот прога:
var a:string; b:integer; begin b:=1; while (a[b]<=length(a)) and (a[b]='0') and (a[b]='1') do begin b:=b+1; end; write ('Это число '); if b<length(a) then write (' не '); writeln (' является двоичным числом'); readln end. Компиляция ошибок не находит, но почему-то выводится сообщение выводится постоянно с "не". Почему так происходит? |
01.03.2009, 22:47 | #2 |
В тени
Старожил
Регистрация: 19.12.2008
Сообщений: 5,788
|
Во-первых, где вы вводите само число?
Добавить Код:
Код:
Код:
Код:
Код:
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем. ___________________________________ ___________________________________ _______ [=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль] Последний раз редактировалось Sazary; 01.03.2009 в 22:49. |
01.03.2009, 23:05 | #3 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
бред.
1) это даже не откомплируется из-за Код:
предполагалось: while (b<=length(a)) ... 2) но а дальше что?! [B] Код:
читаем B-й элемент строки равен нулю и этот же элемент строки равен единице! Трудно представить, чтобы один и тот же элемент строки был и нулём и единицей одновременно! поэтому - у Вас и выдаётся, что число не двоичное! |
01.03.2009, 23:14 | #4 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Sazary, коллега, извините. не обновил страничку и не увидел Вашего ответа! сорри!!
Dimanduc попробуйте такой код: Код:
|
02.03.2009, 15:06 | #5 |
Пользователь
Регистрация: 25.02.2009
Сообщений: 40
|
Спасибо за объяснение. Теперь понял, в чем ошибка: вместо and надо or, так как сравнивается один и тот же символ строки с 0 и с 1. Поменял только and на or и все работает! Еще раз отдельное спасибо!))
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Простая задачка про дефис | Кси | Помощь студентам | 4 | 06.03.2009 08:17 |
Задачка на Pascal, объясните, пожалуйста, я тут что -то не могу разобраться. | Girlo4ka | Помощь студентам | 6 | 28.12.2008 15:02 |
Простая задачка | Dukalis | Общие вопросы C/C++ | 1 | 13.01.2008 18:10 |