Формально перевод десятичного числа D в двоичное B делается так: Исходное число делится с остатком на 2 при этом частное запоминаем для дальнейших операций, а остаток записываем в младший бит двоичного числа. Затем частное снова делится на 2 и остаток записывается в следующий разряд И так до тех пор, пока не получится такой результат - частное равно 0 а остаток равен 1. Разберем пример с десятичным числом 2001 2001/2=1000 ост 1 (1й остаток младший разряд (крайний справа)) 1000/2=500 ост 0 500/2=250 ост 0 250/2=125 ост 0 125/2=62 ост 1 62/2=31 ост 0 31/2=15 ост 1 15/2=7 ост 1 7/2=3 ост 1 3/2=1 ост 1 1/2=0 ост 1 (Старший разряд (крайний слева))
Теперь "Вписываем" остатки, в разряды двоичного числа, начиная с 1-го младшего: 11111010001
//PascalABC.Net function DelWord(s:string):string; var i,n:integer; begin n:=length(s); i:=n; repeat if i>=1 then Dec(i); until s[i]=' '; Delete(s,i+1,n-i); DelWord:=s end;
var st:string; begin Write('Введите строку: '); Readln(st); Writeln('Результат: ',DelWord(st)) end.
Тестовое решение: Введите строку: А роза упала на лапу Азора Результат: А роза упала на лапу
//PascalABC.Net function DescDigits(s:string):boolean; var desc:boolean; i,n:integer; c1,c2:char; begin n:=length(s); desc:=true; c1:='A'; { главное, чтобы символ был "старше" любой цифры } i:=1; repeat c2:=s[i]; if c2 in ['0'..'9'] then if c2<c1 then c1:=c2 else desc:=false; Inc(i) until (i>n) or (not desc); DescDigits:=desc end;
var s:string; begin Write('Введите строку: '); Readln(s); if DescDigits(s) then Writeln('true') else Writeln('false') end.
Тестовое решение: Введите строку: Пример строки с цифрами 98 по убыванию 7 6,5, так4тоже1можно! true
Вариант первой программы для Borland Pascal 7.01 uses Crt; function DelWord(s:string):string; var i,n:integer; begin n:=length(s); i:=n; repeat if i>=1 then Dec(i); until s[i]=' '; Delete(s,i+1,n-i); DelWord:=s end;
var st:string; begin ClrScr; Write('Введите строку: '); Readln(st); Writeln('Результат: ',DelWord(st)); ReadKey end.
begin
I:=1;
s:=0;
while i < 12 do
begin
read(a);
s:=s+sqrt(a);
end;
write(s);
end.