1+1=10 (ноль пишем, 1 - переходит в старший разряд) Вообще все можно представить так - 1-самая старшая цифра в двоичной с.с. (В десятичной - это 9. При прибавлении в десятичной с.с. к 9 мы получаем 10, так происходит во всех с.с. Только в двоичной самая старшая 1 и, при прибавлении к ней 1 мы получаем также 10) 101011 +101010 1010101 Аналогично при вычитании. Представим число в десятичной с.с, например,1000. Если из него нужно вычесть 1, то мы заберем нужный нам разряд у 1. Тогда последний 0 превратится в 10, а все остальные 0 в 1. 11101 - 1111 1110 Ну, а умножение - это тот же процесс сложения. 10110 1111 10110 + 10110 10110 10110 101001010
Вообще все можно представить так - 1-самая старшая цифра в двоичной с.с. (В десятичной - это 9. При прибавлении в десятичной с.с. к 9 мы получаем 10, так происходит во всех с.с. Только в двоичной самая старшая 1 и, при прибавлении к ней 1 мы получаем также 10)
101011
+101010
1010101
Аналогично при вычитании. Представим число в десятичной с.с, например,1000. Если из него нужно вычесть 1, то мы заберем нужный нам разряд у 1. Тогда последний 0 превратится в 10, а все остальные 0 в 1.
11101
- 1111
1110
Ну, а умножение - это тот же процесс сложения.
10110
1111
10110
+ 10110
10110
10110
101001010
Ошибки в программе:
Program primer - не хватает точки с запятой
Var a,b: integer;
Begin ; - не ошибка, необязательная точка с запятой
ReadLn( a,b); - не ошибка, лишний пробел после скобки, здесь и дальше не хватает пробелов между аргументами функций, знаками
s=a+b; - не хватает двоеточия в :=
m:=a*b;
d:=a:b; - переменная d не была описана; деление - это /
WriteLn(s);
WriteLn(m);
WriteLn(d)
End - не хватает точки.
Исправленная программа:
Program primer;
Var a, b: integer;
d: real;
Begin
ReadLn(a, b);
s := a + b;
m := a * b;
d := a / b;
WriteLn(s);
WriteLn(m);
WriteLn(d)
End.