М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
YuliaG2000
YuliaG2000
26.12.2020 12:09 •  Информатика

Решите распишите как решали! на столе лежат в ряд фигуры: треугольник, ромб, круг и квадрат. цвета этих фигур - зеленый, чёрный, синий, красный. фигура красного цвета лежит между зеленой и синей, справа от чёрной фигуры лежит ромб, круг лежит правее треугольника и ромба, причем треугольник лежит не с краю и, наконец, фигура синего цвета не лежит рядом с фигурой чёрного цвета. какого цвета круг?

👇
Ответ:
Vens12
Vens12
26.12.2020
Фигура красного цвета либо вторая, либо третья справа, с краю она быть не может, так как по обеим сторонам от нее должны быть фигуры. Следовательно, фигура черного цвета лежит на краю. Так как справа от нее лежит ромб, черная фигура лежит первой слева. Круг лежит правее треугольника и ромба, то есть третьем слева, раз треугольник не лежит с краю, там находится ромб. Тогда ромб черный, квадрат синий, так как не лежит рядом с ромбом, рядом с ромбом находится зеленый треугольник, а круг - красный, так как лежит между фигурами зеленого и синего цвета.
4,8(86 оценок)
Открыть все ответы
Ответ:
bogdOJ
bogdOJ
26.12.2020
1. В СОМ-технологии маршалинг используется для чего?
Для передачи данных по значению между Com объектами
2. В СОМ-технологии информация  место нахождении находится СОМ-сервера находится где?В реестре виндовс
3. Если приложение  использует СОМ-сервер реализованный в виде DLL то это позволяет?Быстро подменять DLL на новую версию чтобы изменения быстро вступили в силу чтобы проверить как работает.Параллельную разрабтку разных компонент
4. Если приложение  использует СОМ-сервер реализованный в виде EXE то это позволяет?каждому приложению не таскать с собой DLL , обращаться к нему по имени и к одному и томуже объекту из разных мест и разных сред.Использвать ООПшный шаблон-подход фабрику.
5. В СОМ-технологии для облегчения корректного взаимодействия многопоточного клиента  и однопоточного сервера используют?Межпотоковую синхронизацию
4,6(54 оценок)
Ответ:
PROmax100
PROmax100
26.12.2020
{
Если мы попробуем кодировать точку нулем, тире - единицей, то получаем число
в двоичной системе с максимальным числом разрядов, равным 4. К сожалению,
в такой кодировке комбинации, начинающиеся с точки, будут неоднозначными,
потому что будут начинаться с незначащих нулей. Для устранения неоднозначности можно добавить еще три бита слева, которые будут указывать количество точек в коде до первого тире (0-4), но лучше добавить 4 бита и использовать для кодирования полный байт. Тогда его первая шестнадцатиричная цифра даст число незначащих нулей (точек), а вторая - сам код. Исключение - символ 'э', который кодируется 5 символами.
Для разделения слов введем еще символ пробела -...-

а .-     0001 0001 &11 = 17
б -...   0000 1000 &08 =  8
в .--    0001 0011 &13 = 19
г --.    0000 0110 &06 =  6
д -..    0000 0100 &04 =  4
е .      0001 0000 &10 = 16
ж ...-   0011 0001 &31 = 49
з --..   0000 1100 &0C = 12
и ..     0010 0000 &20 = 32
й .---   0001 0111 &17 = 23
к -.-    0000 0101 &05 =  5
л .-..   0001 0100 &14 = 20
м --     0000 0011 &03 =  3
н -.     0000 0010 &02 =  2
о ---    0000 0111 &07 =  7
п .--.   0001 0110 &16 = 22
р .-.    0001 0010 &12 = 18
с ...    0011 0000 &30 = 48
т -      0000 0001 &01 =  1
у ..-    0010 0001 &21 = 33
ф ..-.   0010 0010 &22 = 34
х    0100 0000 &40 = 64
ц -.-.   0000 1010 &0A = 10
ч ---.   0000 1110 &0E = 14
ш    0000 1111 &0F = 15
щ --.-   0000 1101 &0D = 13
ъ -..-   0000 1001 &09 =  9
ы -.--   0000 1011 &0B = 11
ь -..-   0000 1001 &09 =  9
э ..-..  0011 0100 &34 = 52
ю ..--   0010 0011 &23 = 35
я .-.-   0001 0101 &15 = 21

Конечно, можно было бы просто поместить коды в элементы массива и поиск
нужного производить поэлементым сравнением, но принятая нами кодировка позволит получать номер элемента массива сразу. Иными словами, мы построили так называемую ХЭШ-ФУНКЦИЮ для доступа к таблице перекодировки. Это очень популярное решение, которое применяется достаточно часто в различных алгоритмах кодировки и поиска.
Максимальный номер среди полученных нами = 64, минимальный - 1. Следовательно, нужно создать массив T[1..64] и поместить русские буквы в элементы с соответствующими индексами (а - в 17-й элемент, б - в 8-й и т.д.)
Получив очередное слово - "символ" азбуки Морзе, например, '..-.', выполняем
следующие шаги:
1) Если пять правых символов слова равны '..-..', искомый символ T[52];
2) Если пять правых символов слова равны '-...-', искомый символ T[63];
3) Подсчитываем k - количество точек в четырех правых символах слова
a5a6a7a8, пока не встретим тире. Вычисляем значение k:=16*k;
4) Начиная с первого слева тире заменяем в символах слова точки нулями,
тире - единицами;
5) Вычисляем сумму n=a5*8+a6*4+a7*2+a8 и увеличиваем на нее значение k.
k:=k+n
6) Искомый символ равен T[k]
Алгоритм кажется сложным, но его реализация в функции Hash проста.
}

var
  ptr: integer;

function Hash(s: string): integer;
{Возвращает номер элемента в таблице Т по коду Морзе из строки s}
var
  i, k, n, m: integer;
begin
  if s = '' then Result := 0
  else if s = '..-..' then Result := 52
  else if s = '-...-' then Result := 63
  else begin
    i := 1;
    k := 0;
    while i <= length(s) do
      if s[i] = '.' then
      begin
        i := i + 1;
        k := k + 1
      end
      else i := 5;
    n := 0;
    m := 1;
    for i := length(s) downto max(k, 1) do
    begin
      if s[i] = '-' then n := n + m;
      m := m * 2
    end;
    Result := 16 * k + n
  end
end;

function GetWord(s: string): string;
{Возвращает очередное слово строки s, начиная поиск с позиции ptr
По окончании поиска ptr устанавливается на следующий за пробелом символ или
выходит за конец строки}
var
  i: integer;
  c: string;
begin
  c := '';
  i := PosEx(' ', s, ptr);
  if i > 0 then
  begin
    Result := Copy(s, ptr, i - ptr);
    ptr := i + 1
  end
  else
  begin
    Result := Copy(s, ptr, length(s) - ptr + 1);
    ptr := length(s) + 1
  end;
end;

var
  s: string;
  n: integer;
  T: array[1..64] of char;

begin
  T[17] := 'а'; T[8] := 'б'; T[19] := 'в'; T[6] := 'г'; T[4] := 'д';
  T[16] := 'е'; T[49] := 'ж'; T[12] := 'з'; T[32] := 'и'; T[23] := 'й';
  T[5] := 'к'; T[20] := 'л'; T[3] := 'м'; T[2] := 'н'; T[7] := 'о';
  T[22] := 'п'; T[18] := 'р'; T[48] := 'с'; T[1] := 'т'; T[33] := 'у';
  T[34] := 'ф'; T[64] := 'х'; T[10] := 'ц'; T[14] := 'ч'; T[15] := 'ш';
  T[13] := 'щ'; T[11] := 'ы'; T[9] := 'ь'; T[52] := 'э'; T[35] := 'ю';
  T[21] := 'я'; T[63] := ' ';
  { для отладки
  s := '--.. -.. .-. .- .-- ... - .-- ..- .--- -...- -- .. .-.';}
  writeln('Введите строку в коде Морзе, пробел кодируется -...-');
  readln(s);
  ptr := 1;
  n := 100;
  write('Раскодировка: ');
  while n > 0 do
  begin
    n := Hash(GetWord(s));
    if n > 0 then write(T[n]);
  end;

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

Введите строку в коде Морзе, пробел кодируется -...-
--.. -.. .-. .- .-- ... - .-- ..- .--- -...- -- .. .-.
Раскодировка: здравствуй мир
  writeln
end.
4,8(93 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ