Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
| neZvezda |
18.05.2006 20:45
Сообщение
#1
|
|
Новичок ![]() Группа: Пользователи Сообщений: 19 Пол: Женский Репутация: 0 |
Есть функция ToDec (перевод из любой сист. счисления в 10ричную).
function ToDec(n:string; radix:longint):longint; По ней есть вопрос, когда она в программу внедрена. Ошибку дает, когда есть одно определенное условие. Думаю, у знающего человека займет не более 10 минут. help есть вектор А и Б. Состоят из единиц и двоек. Заносятся в матрицу. Для этого идет перевод в двоичную систему, все 2ки из векторов заменяются на 1, 1цы из векторов - на 0. Далее при помощи функции ToDec производится преобразование в десятичное представление. Так вот, если имеется вектор, состоящий из единиц, 11111. Тогда при переводе в двоичное число, будет 00000. А строка программы while n[1]='0' do delete(n,1,1); из строки n удаляет один символ, начиная с первого. Если там все нули, тогда удаляет строку вобще всю! И идет ошибка в программе. перед while надо сделать условие? типа того for i:= 1 to 5 do begin я так понимаю, что если все элементы вектора равны 0, тогда не удалять? или как все это реализовать)) запуталась. |
![]() ![]() |
| volvo |
18.05.2006 21:20
Сообщение
#2
|
|
Гость |
Ну, тогда приводи код ПРОГРАММЫ, если нужна помощь... К процедуре перевода ToDec претензий быть больше не может, она будет работать...
Вопрос теперь в том, КАК ты ее вызываешь, и что делаешь ПЕРЕД вызовом... Цитата все же склоняюсь к тому, чтобы перед вайл было условие не удаления строки, если там все 0 А это без разницы: что '000' выдаст 0 в результате конвертации, что '0' выдаст тот же 0. А вот согласно логике твоей программы может потребоваться, чтобы '111' и '1111' выдавали разные результаты (если ты делаешь что-то типа хеша, например) - тогда такой подход в корне неверен...Так что условие и программу - в студию |
neZvezda функция Todec, вопрос по ней, когда она в программу внедрена 18.05.2006 20:45
Malice Тогда вот так:
while (n[1]='0... 18.05.2006 20:57
neZvezda
Тогда вот так:
while (n[1]='0... 18.05.2006 21:08
neZvezda
Так что условие и программу - в студию :)
эм..он... 18.05.2006 21:36
volvo Первое, что бросилось в глаза -
For i := 1 to 8... 18.05.2006 23:46![]() ![]() |
|
Текстовая версия | 8.12.2025 19:18 |