Записать в виде блок схемы алгоритм решения : 1) определить сумму степеней числа 2, если показателями являются цифры введённого трёхзначного числа или эту 2) вычислить количество точек с целочисленными координатами, находящихся в круге с радиусом r
Выполнить деление исходного числа на 2. Если результат деления больше или равен 2, продолжать делить его на 2 до тех пор, пока результат деления не станет равен 1
2). Выписать результат последнего деления и все остатки от деления в обратном порядке в одну строку.
3) выполняем инверсию всех битов
4) к результату добавляем 1
Получается:
1) делим -89 на 2 = 44, остаток 1 - пишем -1, т. к. остаток 1
2) 44/2=22, без остатка, пишем 0
3) 22/2=11, без остатка, пишем 0
4) 11/2=5, остаток 1, пишем 1
5) 5/2=2, остаток 1, пишем 1
6) 2/2=1, без остатка, пишем 0
7) 1/2=0, остаток 1, пишем 1
Записываем в обратном порядке полученные 7 цифр 1011001
var t: array [1..100] of string; p, s, r: string; f, i, j, k: integer;
begin p := ' ,.!?;:-'; readln(s); k := 0; r := ''; for i := 1 to length(s) do begin f := 0; for j := 1 to length(p) do if s[i] = p[j] then f := 1; if f = 0 then r := r + s[i] else begin k := k + 1; t[k] := r; r := ''; end; if i=length(s) then begin k := k + 1; t[k] := r; end; end; for i := k downto 1 do write(t[i], ' '); end.
1011010
Объяснение:
Алгоритм перевода в двоичную систему:
1)
Переводим модуль числа в двоичную систему
Выполнить деление исходного числа на 2. Если результат деления больше или равен 2, продолжать делить его на 2 до тех пор, пока результат деления не станет равен 1
2). Выписать результат последнего деления и все остатки от деления в обратном порядке в одну строку.
3) выполняем инверсию всех битов
4) к результату добавляем 1
Получается:
1) делим -89 на 2 = 44, остаток 1 - пишем -1, т. к. остаток 1
2) 44/2=22, без остатка, пишем 0
3) 22/2=11, без остатка, пишем 0
4) 11/2=5, остаток 1, пишем 1
5) 5/2=2, остаток 1, пишем 1
6) 2/2=1, без остатка, пишем 0
7) 1/2=0, остаток 1, пишем 1
Записываем в обратном порядке полученные 7 цифр 1011001
3) 0100110
4) 0100110
+ 1
получаем 1011010
1)
var
s,r:string;
i:integer;
begin
readln(s);
r:='';
for i:=1 to length(s) do
if s[i]<>'a' then r:=r+s[i];
writeln(r);
end.
2)
текст разделяем знаками препринания
var
t: array [1..100] of string;
p, s, r: string;
f, i, j, k: integer;
begin
p := ' ,.!?;:-';
readln(s);
k := 0;
r := '';
for i := 1 to length(s) do
begin
f := 0;
for j := 1 to length(p) do
if s[i] = p[j] then f := 1;
if f = 0 then r := r + s[i]
else
begin
k := k + 1;
t[k] := r;
r := '';
end;
if i=length(s) then
begin
k := k + 1;
t[k] := r;
end;
end;
for i := k downto 1 do
write(t[i], ' ');
end.