![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
t45t
Участник клуба
Регистрация: 20.03.2012
Сообщений: 1,849
|
![]()
Здравствуйте, не работает код по паритету, данные вводятся в edit1. Если допустим пользователь введет такое число в двоичной системе счисления: 10010111, то в ричедит должно вывестись такое значение:
1+0=1; 1+0=1; 1+1=0; 0+0=0; 0+1=1; 1+1=0; 0+1=1; и последнее полученное число должно добавится к введенному пользователем числу, то есть тут пользователь ввел 10010111, при паритетном кодировании вышла единичка, значит выводится решение, а затем 100101111, вот так, вот мой код, но прежде 2 слова по той же задаче, но другому алгоритму, я его смог реализовать, но он мне не подходит: сравнивать первый и последующие символы с '1', если есть еденица, то наращивается байтовая переменная, затем определяется четность этой переменной, если значение в переменной четное, то к введенному код прибавляется 0 иначе 1, а вот код первого алгоритма, должно вывестись с решением: Код:
from dark to light)
|
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 26.04.2008
Сообщений: 2,645
|
![]()
1) цикл от 2
2) переменную l инициализировать перед циклом как l := Edit1.Text[1]; 3) richedit1.lines.add(k); надо сразу после k:=s+'+'+m; 4) но вместо k:=s+'+'+m; надо k:=l+'+'+s; 5) а после этого вставить l:=m; 6) все условия это выполнение операции XOR, чтобы меньше писать можно переписать как str(integer(not (l=s)),m); ну или дельфийскими преобразованиями в которых букв больше )) 7) в конце вывести edit1.text+l; |
![]() |
![]() |
![]() |
#3 |
t45t
Участник клуба
Регистрация: 20.03.2012
Сообщений: 1,849
|
![]()
Спасибо, смог написать только так
Код:
напишите пожалуйста код с XOR
from dark to light)
|
![]() |
![]() |
![]() |
#4 |
t45t
Участник клуба
Регистрация: 20.03.2012
Сообщений: 1,849
|
![]()
Хотя нет, сам сделал, и оптимизировал как мог, но есть способ написать еще меньше строк кода?
Код:
from dark to light)
|
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 26.04.2008
Сообщений: 2,645
|
![]()
Можно и короче (пункт 6)
Код:
|
![]() |
![]() |
![]() |
#6 |
t45t
Участник клуба
Регистрация: 20.03.2012
Сообщений: 1,849
|
![]()
спасибо, все работает, а как складывать двоичные числа в цикле? на теме обсуждается код по Хемингу, там у меня почти ничего не получилось
from dark to light)
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Не работает код | ctpz | PHP | 11 | 20.09.2012 14:03 |
Не работает код | Sylar9 | Общие вопросы C/C++ | 1 | 03.04.2012 19:32 |
Не работает код | hello19 | Общие вопросы C/C++ | 11 | 08.08.2011 16:08 |
Код не работает в IE | asdasdasdasd | HTML и CSS | 5 | 24.08.2010 19:36 |
Не работает код. | Messer | Общие вопросы Delphi | 0 | 15.05.2010 21:11 |