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

Решите по программированию.
: одномерный японский кроссворд

не так давно петя узнал, что такое японский кроссворд. японский кроссворд — это изображение, представляемое таблицей размера a × b квадратных клеток, каждая из которых имеет либо белый, либо черный цвет. слева от строк и сверху от столбцов располагаются числа, которые шифруют данную строку или столбец. количество чисел показывает, сколько групп чёрных клеток находятся в соответствующей строке или столбце, а сами числа — сколько идущих подряд чёрных клеток содержит каждая из этих групп.

петя счел общий случай японского кроссворда слишком сложным и нарисовал строку из n клеток (то есть японский кроссворд размера 1 × n), которую он хочет зашифровать числами так же, как в японском кроссворде.

пример шифрования одной строки японского кроссворда.
петя найти числа, шифрующие нарисованную им строку кроссворда.

входные данные
в первой строке содержится целое положительное число n (1 ≤ n ≤ 100) — длина строки. во второй строке содержится строка, состоящая из n символов 'b' или 'w', ('b' соответствует черной клетке, 'w' — белой клетке в строке, нарисованной петей).

выходные данные
в первой строке должно содержаться целое неотрицательное число k — количество чисел, шифрующих строку, то есть количество групп черных клеток в строке.

во второй строке должно содержаться k целых чисел, шифрующих строку, то есть соответствующих размерам групп последовательных черных клеток в порядке слева направо.

пример:
ввод:
3
bbw
вывод:
1
2

напишите программу на языке pascalabc.net (желательно) или "c", максимально понятно и просто.

👇
Открыть все ответы
Ответ:
maina342
maina342
31.07.2021
Const 
n=5;

Var
 ar:array[1..n] of integer;
 ar2:array[1..n] of integer;
 i,k:integer;

 function prost(a:integer):boolean;
 var i:integer;
 b:boolean;
  begin
  b:=true;
   for i:=2 to a div 2 do
    if a mod i=0 then
     begin;
      b:=false;
      break;
     end;
   if a=1 then b:=false;
  prost:=b;
 end;

  begin;
 randomize;
 k:=0;
  for i:=1 to n do
   begin;
    ar[i]:=random(101);
    write(ar[i]:4);
   end;
  writeln;
  for i:=1 to n do
  if prost(ar[i]) then
   begin;
    inc(k);
    ar2[k]:=ar[i];
    write(ar2[k]:4);
   end;
end.
4,6(58 оценок)
Ответ:
topghalya228
topghalya228
31.07.2021
1) F=Av(¬A&B)
По закону дистрибутивности раскроем скобки
(Av¬A)&(AvB)
Av¬A = 1, значит остаётся AvB

2) F =A&(¬AvB)
По тому же закону раскрываем скобки
(A&¬A)v(A&B)
A&¬A = 0, значит остаётся A&B

3. (AvB)&(¬BvA)&(¬CvB)
По закону склеивания (AvB)&(¬BvA) = A , получается, что выражение принимает вид
A&(¬CvB)
Можно раскрыть скобки, получим
A&¬C v A&B

4) F =(1v(AvB))v((AC)&1) 
Скобка (1v(AvB)) = 1, так как 1 v ЧТОУГОДНО = 1
Получаем выражение
1v((AC)&1) = 1, так как 1 v ЧТОУГОДНО = 1
ответ 1
4,5(32 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ