Який фрагмент алгоритму називають повним розгалуженням? Який фрагмент алгоритму називають неповним розгалуженням? Під час розв'язання яких завдань ви використовували розгалуження
Предполагается, что восьмеричное число записано, как символьная строка, поскольку максимальная разрядность не была оговорена в задании.
const m:array['0'..'7'] of string= ('000','001','010','011','100','101','110','111'); m1:array['1'..'7'] of string= ('1','10','11','100','101','110','111'); var s8,s2:string; i:integer; begin Write('Введите восьмеричное число: '); Readln(s8); s2:=m1[s8[1]]; for i:=2 to Length(s8) do s2:=s2+m[s8[i]]; Writeln('В двоичной системе: ',s2) end.
Тестовое решение: Введите восьмеричное число: 360721 В двоичной системе: 11110000111010001
Простейший вариант программы, предполагающий, что строка записана абсолютно верно и содержит только числа, соединенные знаком "плюс".
const digits=['0'..'9']; var s,sn:string; i,err:integer; n,sum:longint;
begin Write('Введите числа, соединяя их знаком плюс: '); Readln(s); i:=2; sn:=s[1]; sum:=0; while i<=Length(s) do begin if s[i] in digits then sn:=sn+s[i] else begin Val(sn,n,err); sum:=sum+n; sn:='' end; Inc(i) end; Val(sn,n,err); sum:=sum+n; Writeln('Сумма равна ',sum) end.
Тестовое решение: Введите числа, соединяя их знаком плюс: 21+22+3 Сумма равна 46
const
m:array['0'..'7'] of string=
('000','001','010','011','100','101','110','111');
m1:array['1'..'7'] of string=
('1','10','11','100','101','110','111');
var
s8,s2:string;
i:integer;
begin
Write('Введите восьмеричное число: '); Readln(s8);
s2:=m1[s8[1]];
for i:=2 to Length(s8) do s2:=s2+m[s8[i]];
Writeln('В двоичной системе: ',s2)
end.
Тестовое решение:
Введите восьмеричное число: 360721
В двоичной системе: 11110000111010001
const
digits=['0'..'9'];
var
s,sn:string;
i,err:integer;
n,sum:longint;
begin
Write('Введите числа, соединяя их знаком плюс: ');
Readln(s);
i:=2; sn:=s[1]; sum:=0;
while i<=Length(s) do begin
if s[i] in digits then sn:=sn+s[i]
else begin
Val(sn,n,err);
sum:=sum+n;
sn:=''
end;
Inc(i)
end;
Val(sn,n,err);
sum:=sum+n;
Writeln('Сумма равна ',sum)
end.
Тестовое решение:
Введите числа, соединяя их знаком плюс: 21+22+3
Сумма равна 46