Const n=50; var f:Text; s:string; ss:array of string; a:array[1..n] of string; i,j:integer; begin Assign(f,'input.txt'); Reset(f); j:=0; while not Eof(f) do begin Readln(f,s); ss:=s.Split(' '); for i:=0 to Length(ss)-1 do if Length(ss[i])>1 then if RightStr(ss[i],2)='of' then begin Inc(j); a[j]:=ss[i] end; end; Close(f); for i:=1 to j do Write(a[i],' '); Writeln end.
Тестовое решение: 123of asdfdsof dasof
Есть решение и покороче, но совсем не уровня начинающих: uses System.Text.RegularExpressions; const n=50; var f:Text; s:string; a:array[1..n] of string; i,j:integer; begin Assign(f,'input.txt'); Reset(f); j:=0; while not Eof(f) do begin Readln(f,s); foreach var m:Match in Regex.Matches(s,'\b\S+of\b') do begin Inc(j); a[j]:=m.Value end; end; Close(f); for i:=1 to j do Write(a[i],' '); Writeln end.
1) При использовании 16384 цветов для хранения одной точки требуется log(2)16384 = 14 бит. Количество точек рисунка = 9696*8 / 14 ≈ 5540
2) При использовании палитры из 65536 цветов для хранения одной точки требуется log(2)65536 = 16 бит = 2 байта. Объем видеопамяти = 1024*768*2 байт = 1024*768*2/1024 Кбайт = 1536 Кбайт = 1536/1024 Мбайт = 1,5 Мбайт
3) При использовании палитры из 16 цветов для хранения одной точки требуется log(2)16 = 4 бита. Необходимый объем видеопамяти = 640*480*4 бит = 640*480*4/8 байт = 320*480 байт = 320*480/1024 Кбайт = 150 Кбайт. ответ: 256 достаточно для работы
1) При использовании 16384 цветов для хранения одной точки требуется log(2)16384 = 14 бит. Количество точек рисунка = 9696*8 / 14 ≈ 5540
2) При использовании палитры из 65536 цветов для хранения одной точки требуется log(2)65536 = 16 бит = 2 байта. Объем видеопамяти = 1024*768*2 байт = 1024*768*2/1024 Кбайт = 1536 Кбайт = 1536/1024 Мбайт = 1,5 Мбайт
3) При использовании палитры из 16 цветов для хранения одной точки требуется log(2)16 = 4 бита. Необходимый объем видеопамяти = 640*480*4 бит = 640*480*4/8 байт = 320*480 байт = 320*480/1024 Кбайт = 150 Кбайт. ответ: 256 достаточно для работы
n=50;
var
f:Text;
s:string;
ss:array of string;
a:array[1..n] of string;
i,j:integer;
begin
Assign(f,'input.txt'); Reset(f);
j:=0;
while not Eof(f) do begin
Readln(f,s);
ss:=s.Split(' ');
for i:=0 to Length(ss)-1 do
if Length(ss[i])>1 then
if RightStr(ss[i],2)='of' then
begin Inc(j); a[j]:=ss[i] end;
end;
Close(f);
for i:=1 to j do Write(a[i],' ');
Writeln
end.
Тестовое решение:
123of asdfdsof dasof
Есть решение и покороче, но совсем не уровня начинающих:
uses
System.Text.RegularExpressions;
const
n=50;
var
f:Text;
s:string;
a:array[1..n] of string;
i,j:integer;
begin
Assign(f,'input.txt'); Reset(f);
j:=0;
while not Eof(f) do begin
Readln(f,s);
foreach var m:Match in Regex.Matches(s,'\b\S+of\b') do
begin Inc(j); a[j]:=m.Value end;
end;
Close(f);
for i:=1 to j do Write(a[i],' ');
Writeln
end.