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

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

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

> Сложение/вычитание в двоичной системе
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 4

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


Сложение и вычитание в двоичной системе.
Кто поможет?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
Closed Topic Открыть новую тему 
Ответов
сообщение
Сообщение #2





Группа: Пользователи
Сообщений: 4

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


Нужно со строковыми данными...


Кой-чего я уже написал:

Код

program BinMinus;
type massiv=array[1..20] of string;
var a,b,k,x,i,BOL,BTL:integer;BO,BT:string;BOm,BTm,BThm:massiv;
begin
writeln('---------------------------------------------------');
write('Введите первое число в двоичной системе счисления: ');
readln(BO);
write('Введите второе число в двоичной системе счисления: ');
readln(BT);
for i:=1 to 20 do
           BOm[i]:=BO[i];
for i:=1 to 20 do
           BTm[i]:=BT[i];
for i:=20 downto 1 do
   begin
     if (BOm[i]='0') and  ((BTm[i]='0') or (BTm[i]=' ')) then BThm[i]:='0';
     if (BOm[i]='1') and  ((BTm[i]='0') or (BTm[i]=' ')) then BThm[i]:='1';
     if (BOm[i]='1') and  (BTm[i]='1') then BThm[i]:='0';
     if (BOm[i]='1') and  (BTm[i]='') then BThm[i]:='1';
     if (BOm[i]='0') and  (BTm[i]='1') then
        begin
          BThm[i]:='1';k:=i-1;
          repeat
            if BOm[k]='1' then
               begin
                 BOm[k]:='0';x:=0;
               end
            else begin BOm[k]:='1';k:=k-1 end;
          until x=0;
        end;
   end;
write('Результат равен: ');
for i:=1 to 20 do
   write(BThm[i]);
end.


Но получилось запутанно и работает "не совсем" :-/
Можно ли проще?

Сообщение отредактировано: volvo -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 





- Текстовая версия 12.05.2024 7:47
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name