<em>1. Современное решение</em>
<em>// PascalABC.NET 3.2, сборка 1488 от 21.06.2017</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
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.
<u>Пример</u>
Введите строку: sdf812973j223k
S=73
<em>2. Решение на TurboPascal ("Так писали наши отцы и деды в 1983 году, так и нас сейчас учат в школе")</em>
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.
Блокнот - самой простой текстовый редактор с мизерным количеством возможностей, а wordpad более навороченный редактор с большим количеством возможностей
Var
a:array [1..10] of integer;
i,sum,kol:integer;
begin
for i:=1 to 10 do a[i]:=random(10)+1;
for i:=1 to 10 do write(a[i],' ');
writeln;
for i:=1 to 10 do
if a[i] mod 2=0 then sum:=sum+a[i] else kol:=kol+1;
writeln(sum);
writeln(kol);
end.
1)Объем на 1 странице
22 * 30 * 2¹⁰(2 в десятой - вес одного символа в битах в русском алфавите)
660 * 2¹⁰ бит = 660 * 2⁷ байт = 84480 байт
2)Объем всего словаря равен
660 * 2¹⁰ * 80 бит = 52800 * 2⁷ байт = 26400 * 2⁸ = 13200 * 2⁹ = 6600 * 2¹⁰ байт = 6600 кбайт
Или же 6600 * 1024 = 6758400 байт
Или же 6600 / 1024 ≈ 6.45 Мбайт
// PascalABC.NET 3.0, сборка 1160 от 05.02.2016
begin
var n:=ReadInteger('n=');
var a:=ArrRandom(n,10,99); a.Println;
var imin:=0;
var imax:=0;
for var i:=1 to n-1 do
if a[i]>a[imax] then imax:=i
else
if a[i]<a[imin] then imin:=i;
if imin<imax then
for var i:=imin+1 to imax-1 do a[i]:=0
else
for var i:=imax+1 to imin-1 do a[i]:=0;
a.Println
end.
<u><em>Тестовое решение:</em></u>
n= 15
38 62 15 47 50 69 74 10 62 47 68 89 28 13 50
38 62 15 47 50 69 74 10 0 0 0 89 28 13 50