IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> 16-ричная система счисления, найти ошибку
Oleg55
сообщение 28.10.2006 18:18
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Мужской
Реальное имя: Oleg

Репутация: -  0  +


п-а, которая делает вычитание 16-ричной системы( это цифры 0,1,2,3,4,5,6,7,8,9 и буквы a,b,c,d,e,f).
П-а делает только вычитание цифр, но когда вводишь a,b,c,d,e,f , п-а выдаёт, что чило неправельно введено.
Помогите ошибку найти


Прикрепленные файлы
Прикрепленный файл  VI4ITANE.PAS ( 1.92 килобайт ) Кол-во скачиваний: 209
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 28.10.2006 18:38
Сообщение #2


Гость






Во-первых, у тебя процедура 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
сообщение 28.10.2006 20:47
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Мужской
Реальное имя: Oleg

Репутация: -  0  +


спасибо за совет
я попробовал, но опять что то не то....


Прикрепленные файлы
Прикрепленный файл  ISPR.PAS ( 1.22 килобайт ) Кол-во скачиваний: 171
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 21.07.2025 20:07
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"