autofilters27
?>

За 3 секунды со скоростью 2 800 бит/с было передано сообщение длиной 1400 символов. оцените размер алфавита, если кодирование равномерное.

Информатика

Ответы

Элизбарян
Если правильно помню школьную программу то вот так
За 3 секунды со скоростью 2 800 бит/с было передано сообщение длиной 1400 символов. оцените размер а
AleksandraRuslan504
Var
  m, n: integer;
  s1, s2, s3: string;
  ms: array[1..9] of string;
  md: array[1..9] of string;
  m1: array[11..19] of string;
  me: array[1..9] of string;
  flag: boolean;

begin
 
  flag := false; { Пока ничего не выведено }
  s1 := 'рубль';
  s2 := 'рубля';
  s3 := 'рублей';
  ms[1] := 'сто'; ms[2] := 'двести'; ms[3] := 'триста'; ms[4] := 'Четыреста';
  ms[5] := 'пятьсот'; ms[5] := 'пятьсот'; ms[6] := 'шестьсот'; ms[7] := 'семьсот';
  ms[8] := 'восемьсот'; ms[9] := 'девятьсот';
  md[1] := 'десять'; md[2] := 'двадцать'; md[3] := 'тридцать'; md[4] := 'сорок';
  md[5] := 'пятьдесят'; md[6] := 'шестьдесят'; md[7] := 'семьдесят';
  md[8] := 'восемьдесят'; md[9] := 'девяносто';
  m1[11] := 'одиннадцать'; m1[12] := 'двенадцать'; m1[13] := 'тринадцать';
  m1[14] := 'четырнадцать'; m1[15] := 'пятнадцать'; m1[16] := 'шестнадцать';
  m1[17] := 'семнадцать'; m1[18] := 'восемнадцать'; m1[19] := 'девятнадцать';
  me[1] := 'один'; me[2] := 'два'; me[3] := 'три'; me[4] := 'четыре'; me[5] := 'пять';
  me[6] := 'шесть'; me[7] := 'семь'; me[8] := 'восемь'; me[9] := 'девять';
 
  Write('Введите целое число от 1 до 1000: ');
  Readln(m);
  if (m < 1) or (m > 1000) then Writeln('Шутки шутим?')
  else
  if m = 1000 then Writeln('Одна тысяча ' + s3)
    else
  begin
      { сотни }
    n := m div 100;
    if n > 0 then
    begin
      Write(ms[n]);
      flag := true
    end;
      { десятки }
    m := m mod 100;
    if m = 0 then Writeln(' ', s3)
    else
    begin
      if (m > 10) and (m < 20) then
      begin
        if flag then Write(' ');
        Writeln(m1[m], ' ', s3)
      end
      else
      if m > 0 then
      begin
        n := m mod 10;
        m := m div 10;
        if m > 0 then
        begin
          if flag then Write(' ') else flag := true;
          Write(md[m])
        end;
        if n <> 0 then
        begin
          { единицы }
          if flag then Write(' ');
          Write(me[n], ' ');
          case n of
            1: Writeln(s1);
            2..4: Writeln(s2);
          else Writeln( s3)
          end
        end
        else Writeln(' ', s3)
      end
    end
  end
end.

Тестовое решение:
Введите целое число от 1 до 1000: 314
триста четырнадцать рублей
lemoh

program spk;

var i,s,k:integer;

p:real;

a:array [1..10] of integer;

begin

for i:=1 to 10 do a[i]:=random(81)-30;

for i:=1 to 10 do write(a[i],'  ');

for i:=1 to 10 do if i mod 2 = 0 then s:=s+a[i];

p:=1;

for i:=1 to 10 do if a[i] < 0 then p:=p*a[i];

for i:=1 to 10 do if a[i] mod 2 <> 0 then k:=k+1;

write('s = ',s,'   p = ',p,'   k = ',k);

end.

Объяснение:

program spk;

var a:array [1..10] of integer;

i,s,k:integer;

p:real;

begin

p:=1;

write('Массив: ');

for i:=1 to 10 do

begin

a[i]:=random(81)-30;

write(a[i],'  ');

if i mod 2 = 0 then s:=s+a[i];

if a[i] < 0 then p:=p*a[i];

if a[i] mod 2 <> 0 then k:=k+1

end;

writeln;

writeln('Сумма элементов массива, с четными номерами, равна ',s);

writeln('Произведение отрицательных элементов равно ',p);

writeln('Количество нечётных элементов равно ',k)

end.

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

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

За 3 секунды со скоростью 2 800 бит/с было передано сообщение длиной 1400 символов. оцените размер алфавита, если кодирование равномерное.
Ваше имя (никнейм)*
Email*
Комментарий*

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

smalltalkcoffee5
grishin
Tatyana_Minullina
dentob72
gigbes
Plotnikovangav
pelagia-kola2658
Татьяна_Вологжин
Выбери верный адрес ячейки. 39 PP E 54
extremhunter
Иванов1813
nailya-abdulova25
v79150101401
artbogema2016
nurtilekisakov
lenalevmax7937