trast45
?>

Сообщение, записанное буквами 32-символьного алфавита, содержит количество информации в тексте - 30 байтов. сколько символов в тексте?

Информатика

Ответы

Darya Aleksei1173
2^5=32 - i=5 бит
30 байт*8=240 бит
240 бит/5=48 символов
mikhailkirakosyan
Procedure ShellStr(var s: string);
{ сортирует символы строки методом Шелла }
var
  i, j, n, step: integer;
  c: char;
begin
  s := Trim(s);
  n := Length(s);
  step := n div 2;
  while step > 0 do
  begin
    for j := n - step downto 1 do
    begin
      i := j;
      while i <= n - step do
      begin
        if s[i] > s[i + step] then
        begin
          c := s[i];
          s[i] := s[i + 1];
          s[i + 1] := c
        end;
        i := i + step
      end
    end;
    step := step div 2
  end
end;

procedure TrimNullsLeft(var s: string);
{ Усекает левые (незначащие нули) в строке s }
var
  i, n: integer;
begin
  i := 1; n := Length(s);
  while (s[i] = '0') do i := i + 1;
  s := Copy(s, i, n - i + 1)
end;

var
  p, ns: integer;
  s, M, N: string;
  ml, nl: integer;
  f: text;

begin
  Assign(f,'input.txt');
  Reset(f);
  Readln(f,s);
  Close(f);
  Assign(f,'output.txt');
  Rewrite(f);
  ns := Length(s);
  p := Pos(' ', s);
  ml := p - 1;
  M := Copy(s, 1, ml);
  ShellStr(M);
  TrimNullsLeft(M);
  ml := Length(M);
  N := Copy(s, p + 1, ns - p);
  ShellStr(N);
  TrimNullsLeft(N);
  nl := Length(N);
  if ml < nl then Writeln(f,M)
  else if nl < ml then Writeln(f,N)
  else if M < N then Writeln(f,M) else Writeln(f,N);
  Close(f);
  Writeln('Программа завершила работу')
end.
Lenamihluk50
Const
  n = 4;
  Spring = [3..5];{ Номера весенних месяцев }

var
  ds: array[1..n] of string;
  i, d, m, y, dmax, mmax, ymax, k: integer;
  s, s1: string;

begin
  Writeln('Вводите даты в формате "день месяц год" через пробел');
  k := 0; dmax := 0; mmax := 0; ymax := 0;
  for i := 1 to n do
  begin
    Write(i, ': ');
    Readln(d, m, y);
    if (m in Spring) then
    begin
      k := k + 1;
      Str(d, s);
      Str(m, s1); s := ' ' + s + '.' + s1 + '.';
      Str(y, s1);
      ds[k] := s + s1
    end;
    if ymax < y then begin dmax := d; mmax := m; ymax := y end
    else if ymax = y then
      if mmax < m then begin dmax := d; mmax := m; ymax := y end
      else if dmax < d then begin dmax := d; mmax := m; ymax := y end
  end;
  Writeln;
  if k > 0 then
  begin
    Write('Весенние даты:');
    for i := 1 to k do Write(ds[i]);
    Writeln;
  end;
  Writeln('Самая поздняя дата ', dmax, '.', mmax, '.', ymax)
end.

Тестовое решение:

Вводите даты в формате "день месяц год" через пробел
1: 25 8 2010
2: 3 4 2013
3: 18 5 2011
4: 31 12 2012

Весенние даты: 3.4.2013 18.5.2011
Самая поздняя дата 3.4.2013

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Сообщение, записанное буквами 32-символьного алфавита, содержит количество информации в тексте - 30 байтов. сколько символов в тексте?
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

Николаевич1033
besson89
Светлана-Тигран
mikchaylovaalex
olgapotapova
Решетникова
aleksandramir90
Yuliya_Viktoriya316
Валерия Воробьева396
xobby18
manu95957
znaberd786
sharkova1443
nurtilekisakov
larinafashion829