Адаптер — аппаратное устройство или программный компонент, преобразующий передаваемые данные из одного представления в другое. Представляемыми данными может быть, к примеру, сообщение, отправляемое между разными объектами в приложении, или пакет, передаваемый по сети.В современных персональных компьютерах почти все периферийные устройства используют адаптер для связи с системной шиной, например:видеокарта, адаптер дисплея — используется для передачи сигнала к монитору;адаптеры универсальной последовательной шины среди прочего для принтеров, клавиатур или «мыши»сетевой адаптер, требуемый для подключения к любой сети;адаптер контроллера для подключения жёсткого диска или других накопителей.
// PascalABC.NET 3.2, сборка 1488 от 21.06.2017 // Внимание! Если программа не работает, обновите версию!
function From5to10(Self:sequence of string):sequence of integer; extensionmethod; // Перевод последовательности заданных на строках пятиричных чисел // в последовательность целых десятичных чисел begin foreach var s in Self do begin var r:=0; var pa:=1; foreach var c in s.Reverse do begin r+=c.ToDigit*pa; pa*=5 end; yield r end end;
begin var s:=ReadlnString('Введите строку:').MatchValues('[0-4]+').From5To10; if s.Count=0 then Writeln('S=-1') else Writeln('S=',s.Sum) end.
Пример Введите строку: sdf812973j223k S=73
2. Решение на TurboPascal ("Так писали наши отцы и деды в 1983 году, так и нас сейчас учат в школе")
uses Crt;
function From5to10(n:string):integer; { Перевод из пятиричного числа в строковом представлении в целое десятичное } var i,pa,s:integer; begin s:=0; pa:=1; for i:=Length(n) downto 1 do begin s:=s+pa*(Ord(n[i])-Ord('0')); pa:=pa*5 end; From5to10:=s end;
var s,w:string; i,k,r:integer; begin ClrScr; Write('Введите строку: '); Readln(s); w:=''; r:=0; k:=0; for i:=1 to Length(s) do begin if Pos(s[i],'01234')>0 then begin if w='' then k:=k+1; w:=w+s[i] end else if w<>'' then begin r:=r+From5to10(w); w:='' end end; if k=0 then Writeln('S=-1') else Writeln('S=',r); ReadKey end.
Адаптер — аппаратное устройство или программный компонент, преобразующий передаваемые данные из одного представления в другое. Представляемыми данными может быть, к примеру, сообщение, отправляемое между разными объектами в приложении, или пакет, передаваемый по сети.В современных персональных компьютерах почти все периферийные устройства используют адаптер для связи с системной шиной, например:видеокарта, адаптер дисплея — используется для передачи сигнала к монитору;адаптеры универсальной последовательной шины среди прочего для принтеров, клавиатур или «мыши»сетевой адаптер, требуемый для подключения к любой сети;адаптер контроллера для подключения жёсткого диска или других накопителей.
// PascalABC.NET 3.2, сборка 1488 от 21.06.2017
// Внимание! Если программа не работает, обновите версию!
function From5to10(Self:sequence of string):sequence of integer;
extensionmethod;
// Перевод последовательности заданных на строках пятиричных чисел
// в последовательность целых десятичных чисел
begin
foreach var s in Self do begin
var r:=0;
var pa:=1;
foreach var c in s.Reverse do begin
r+=c.ToDigit*pa; pa*=5
end;
yield r
end
end;
begin
var s:=ReadlnString('Введите строку:').MatchValues('[0-4]+').From5To10;
if s.Count=0 then Writeln('S=-1')
else Writeln('S=',s.Sum)
end.
Пример
Введите строку: sdf812973j223k
S=73
2. Решение на TurboPascal ("Так писали наши отцы и деды в 1983 году, так и нас сейчас учат в школе")
uses Crt;
function From5to10(n:string):integer;
{ Перевод из пятиричного числа в строковом представлении
в целое десятичное }
var
i,pa,s:integer;
begin
s:=0;
pa:=1;
for i:=Length(n) downto 1 do begin
s:=s+pa*(Ord(n[i])-Ord('0'));
pa:=pa*5
end;
From5to10:=s
end;
var
s,w:string;
i,k,r:integer;
begin
ClrScr;
Write('Введите строку: ');
Readln(s);
w:='';
r:=0;
k:=0;
for i:=1 to Length(s) do begin
if Pos(s[i],'01234')>0 then begin
if w='' then k:=k+1;
w:=w+s[i]
end
else
if w<>'' then begin
r:=r+From5to10(w);
w:=''
end
end;
if k=0 then Writeln('S=-1')
else Writeln('S=',r);
ReadKey
end.