Помощь - Поиск - Пользователи - Календарь
Полная версия: 16-ричная система счисления
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Oleg55
п-а, которая делает вычитание 16-ричной системы( это цифры 0,1,2,3,4,5,6,7,8,9 и буквы a,b,c,d,e,f).
П-а делает только вычитание цифр, но когда вводишь a,b,c,d,e,f , п-а выдаёт, что чило неправельно введено.
Помогите ошибку найти
volvo
Во-первых, у тебя процедура burti меняет исходную строку... Я ввожу 'aa123' - получаю 'II123'. Буква I не допустима, ошибка...

Во-вторых,
for i:=1 to l1 do
a:=ord(sk1[i]); { <-- Здесь }

if not ((a in [48..57]) or (a in [65..70]))
then writeln('Skaitlis ir ievadits nepareizi!'); {4islo napisano nepraveljno}
там, где я показал, в A запишется только ПОСЛЕДНИЙ символ строки, т.к. цикл состоит из одного оператора... Я бы сделал так:

repeat
writeln('Ievadiet mazinaamo:'); {vvedite umenj6aemoe}
readln(sk1);
l1:=length(sk1);
for i:=1 to l1 do begin
a:=ord(upcase(sk1[i])); { <--- Тогда тебе не нужна та самая процедура, все будет работать и без нее }
if not ((a in [48..57]) or (a in [65..70])) then begin
writeln('Skaitlis ir ievadits nepareizi!'); {4islo napisano nepraveljno}
break;
end;
end;

until ((a in [48..57]) or (a in [65..70]));
Oleg55
спасибо за совет
я попробовал, но опять что то не то....
volvo
Ты begin/end упорно не желаешь замечать? Что я написал, и что ты сделал? Сравни...

Кстати, с sk2 нужно сделать то же самое...
Oleg55
а почему разность (starpiba) все время ?
второй end п-а не принимает
Oleg55
pozalujsta,isprevtje programmu....ja uze vse 4to ugidno poproboval...nu ne tak ja silljen v pascale
мисс_граффити
а что такое, по твоей задумке, sk?
Oleg55
sk - число
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.