Российский госномер транспортного средства содержит три буквы и три цифры. сколько информации содержится в госномере, если в номере используются только те буквы алфавита, начертание которых есть в латинском алфавите?
1. Определяем размер алфавита, который используется для записи госномера. Используются 10 цифр (0,1,2,..9) и 11 букв (А,В,Е,К,М,Н,О,Р,С,Т,Х) - итого 21 символ. Воспользуемся формулой Хартли. У нас m символов из алфавита мощностью 21 символ. (бит)
Const n=5;m=10; var b:array[1..n,1..m]of integer; i,j,k,buf,l:integer; begin for i:=1 to n do begin writeln; for j:=1 to m do begin b[i,j]:=random(50); write(b[i,j]:4); end; end; writeln; for j:=1 to m do begin k:=0; for i:=1 to n-1 do if b[i,j]<b[i+1,j]then k:=k+1; if k=n-1 then buf:=buf+1; end; k:=0; for l:=2 to m do if l mod 2=0 then for i:=1 to n-1 do for j:=i+1 to n do if b[i,l]>b[j,l]then begin k:=b[i,l]; b[i,l]:=b[j,l]; b[j,l]:=k; end; writeln('увеличилось ',m div 2-buf); for i:=1 to n do begin writeln; for j:=1 to m do write(b[i,j]:4); end; end.
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.
Используются 10 цифр (0,1,2,..9) и 11 букв (А,В,Е,К,М,Н,О,Р,С,Т,Х) - итого 21 символ.
Воспользуемся формулой Хартли. У нас m символов из алфавита мощностью 21 символ.