|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
05.05.2011, 22:49 | #1 |
Пользователь
Регистрация: 22.01.2009
Сообщений: 45
|
Двоичная система
Здравствуйте! Помогите , пожалуйста, создать проверку для заданной программы. Текст программы следующий:
Код:
Последний раз редактировалось Stilet; 06.05.2011 в 07:39. Причина: Ошибка |
05.05.2011, 23:28 | #2 |
Пользователь
Регистрация: 14.06.2010
Сообщений: 84
|
Первое что сразу увидел: начальное значение N не задано и соответственно запись вида "A[N]:=I;" с не заданным начальным значением N некорректна.
Далее: Массив имеет 25 элементов, а ввод в него с клавиатуры идет до нажатия Enter. Не разумно. Ставь условие until (c=Char(13)) or (N=24);. Программа после var начинается с begin и заканчивается end. begin увидел,а end? Если используешь проверку кода в val необходимо поставить директиву {$R+},тогда при недопустимом символе в представлении числа переменная Kd принимает значение номера неправильного символа, а переменная I принимает значение 0. И вообще, по сути вопрос: зачем усложнять себе жизнь так? Почему бы не организовать ввод в строку, а затем бежать по строке с case'ом и если вдруг exception тогда попросить ввести снова? |
06.05.2011, 00:04 | #3 |
Пользователь
Регистрация: 22.01.2009
Сообщений: 45
|
Это только часть всей программы, т.к. это самое главное, где мне нужно понять как проверку сделать, чтобы вводилось только число, состоящее из 1 и 0, а если в числе присутствуют другие цифры, то просят заново ввести число), а то сколько не пробовала, не получается((
*в val необходимо поставить директиву {$R+} - Не могли бы вы по подробнее об этом, я об этом я ещё незнаю)Если можете, подскажите как её записывать и куда в программу) |
06.05.2011, 03:39 | #4 |
Пользователь
Регистрация: 14.06.2010
Сообщений: 84
|
Ну смотри. Допустим число будет содержаться в строке. В начале программы мы ставим ввод её пользователем. Он вводит число. Допустим 01101001030.
Далее мы идем в цикле по строке и на несовпадение с заданным аргументом через такую штуку как case of. Если конец строки, а заданный флаг не изменился то продолжаем работу, иначе - выводим сообщение. Примерно это реализовать можно так: Код:
Удачи, если что пишите в ЛС или скайп. Последний раз редактировалось stck; 06.05.2011 в 03:44. |
06.05.2011, 04:26 | #5 |
220400
Форумчанин
Регистрация: 21.05.2010
Сообщений: 726
|
Код:
2) A[n] - массив введенных значений (0 или 1); 3) все символы, не равные 0 или 1 игнорируются; 4) ввод заканчивается после нажатия клавиши Enter; 5) если юзер набьет больше 24 знаков, то пойдет игнор юзера, пока он не нажмет клавишу Enter.
Cерьёзной помощи не ждите - помогаю в перерывах на "перекур".
Не существует ничего невозможного для человека, который не собирается ничего делать сам. Не учите человека, если вы не его учитель. |
06.05.2011, 12:30 | #6 |
Пользователь
Регистрация: 22.01.2009
Сообщений: 45
|
stck, спасибо большое за помощь и подробное описание, учту на будущее)
Sparkman, спасибо большое за помощь, всё просмотрела и поняла)) Вы мне очень помогли! |
06.05.2011, 12:32 | #7 | |
Пользователь
Регистрация: 22.01.2009
Сообщений: 45
|
Цитата:
|
|
06.05.2011, 12:59 | #8 |
Пользователь
Регистрация: 22.01.2009
Сообщений: 45
|
Если Вам не трудно, помогите, пожалуйста, с этой программой):
Создать текстовый массив А с 14 элементами длиною от 1 до 11 символов (текст вводится с клавиатуры). Создать 2 новых массива В и С, в один из них, в В вписать только те символы элементов массива А, которые не являются ни цифрами, ни буквами, а в С -всё остальное) |
06.05.2011, 16:10 | #9 |
Пользователь
Регистрация: 14.06.2010
Сообщений: 84
|
Код:
|
06.05.2011, 17:09 | #10 |
Пользователь
Регистрация: 22.01.2009
Сообщений: 45
|
Var a:array[14] of string[11];
b,c:array[154] of string[1]; - В этой части программы, Turbo Pascal просит .., поставила их туда... if s[j] not in ['A'..'Z','0'..'9'] then begin b[current_b]:=s[j]; inc(current_b); end else begin c[current_c]:=s[j]; inc(current_c); end; - А здесь он пишет Boolean expression expected.(( |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
не двоичная система счисления | МмлашкО_о | Помощь студентам | 2 | 11.01.2011 20:39 |
Двоичная Система | -=L.Morgan=- | Помощь студентам | 3 | 02.07.2009 08:35 |
двоичная система счисления | galaid | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 17.05.2009 15:42 |
двоичная система | terminadoor | Помощь студентам | 1 | 21.09.2008 23:00 |