Нужно 8 бит. 129 словам присваиваем номера от 0 до 128 в десятичной системе. 0(10)=0(2), 128(10)=10000000(2). Если словам присваивать номера от 1 до 129, то понадобится тоже 8 бит, только 129(10)=10000001(2) Для перевода можно пользоваться простым методом 129/2 = 64 с остатком, записываем 1 64/2 =32 без остатка, записываем 0 32/2 =16 без остатка, записываем 0 16/2 =8 без остатка, записываем 0 8/2 =4 без остатка, записываем 0 4/2 =2 без остатка, записываем 0 2/2 =1 без остатка, записываем 0 1/2 =0 с остатком, записываем 1 Т.е. делим каждое частное на 2 и записываем наличие остатка в конец двоичной записи в виде остаток есть-1, остатка нет-0. Деленим до тех пор, пока в частном не будет 0. Результат записывается справа налево.
Программу надо сформатировать и тогда её структура будет видна лучше. А чтобы понять, как идет выполнение, в нужных точках ставим промежуточную выдачу - это называется "трассировкой".
var s, k: integer; label met; begin s:=-12; k:=90; Writeln('s=',s,', k=',k); s:=s+10; Writeln('s=',s); met: Writeln('Метка met:'); k:=k+10; Write('k=',k); if k<200 then s:=50 else s:=s+k; Writeln(', s=',s); if k<200 then goto met; Writeln('Результат: s=',s) end.
Var s:string; n,k,i:integer; begin for n:=1 to 2 do begin writeln('Введите строку ',n,':'); readln(s); k:=0; for i:=1 to length(s) do begin case s[i] of '[': k:=k+1; ']': k:=k-1; end; end; if k=0 then writeln('В строке ',s,' количество [ и ] одинаково') else writeln('В строке ',s,' количество [ и ] не одинаково'); end; end.
Пример: Введите строку 1: c:=a[imax,j]; a[imax,j]:=a[imin,j]; a[imin,j]:=c В строке c:=a[imax,j]; a[imax,j]:=a[imin,j]; a[imin,j]:=c количество [ и ] одинаково Введите строку 2: Просто [ пример ]] со [[ скобками В строке Просто [ пример ]] со [[ скобками количество [ и ] не одинаково
Для перевода можно пользоваться простым методом
129/2 = 64 с остатком, записываем 1
64/2 =32 без остатка, записываем 0
32/2 =16 без остатка, записываем 0
16/2 =8 без остатка, записываем 0
8/2 =4 без остатка, записываем 0
4/2 =2 без остатка, записываем 0
2/2 =1 без остатка, записываем 0
1/2 =0 с остатком, записываем 1
Т.е. делим каждое частное на 2 и записываем наличие остатка в конец двоичной записи в виде остаток есть-1, остатка нет-0. Деленим до тех пор, пока в частном не будет 0. Результат записывается справа налево.