Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Задача про 8-ми битовое число

Автор: necks 10.01.2008 22:30

Вводится восьми-битовое число. Вводится номер бита. Вводится удалить или нет. Вывести результат.

Такое вот задание задал лично одногрупнику наш препод. Целой группой гадаем вообще о чем идет речь, никто не знает...

Автор: Tan 10.01.2008 23:08

Бит это 0 либо 1. То есть у вас есть число состоящие из 8 битов, каждый из которых представляет 0 либо 1. Храните его в строке, после того как удалите (или не удалите определённый бит) переводите из бинарной в десятичную систему счисления (если это подразумевается под ответом). Алгоритмов в FAQ достаточно. Если не так понял, объясните поподробней в чём загвоздка.
Добавлено : появилось немного времени, я попробовал свои мысли озвучить примером (он очень сухой, но показывает как я понял условие) :
(алгоритм перевода взят из FAQ)

Uses crt;
var s,s1 : string;
ch : char;
num,j : integer;
function ToDec(n:string; radix:longint):longint;
var
m, i: longint;
const
digit: string[16]='0123456789ABCDEF';
begin
m:=0;
while (n[1]='0') and (length(n) > 1) do delete(n,1,1);
for i:=1 to length(n) do m:=m*radix+pos(n[i],digit)-1;
ToDec:=m;
end;
begin
Clrscr;
s1 := '';
writeln ('Vvedite 8-bitnoje cislo :');
readln (s);
writeln ('Vvedite nomer bita, kotorij hotite udalitj');
readln (num);
writeln ('Tochno udaljajem?');
readln (ch);
if ( ch = 'y') or (ch = 'Y') then
begin
for j := 1 to Length(s) do if j <> num then s1 := s1 + s[j];
end
Else s1 := s;
writeln ('Cislo posle operacii : ', s1);
write (s1,' v binarnoj = ', ToDec (s1,2), ' v desjatichnoj');
readkey;
end.