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

Составить блок-схему. program lol; uses crt; const nmax=20; //максимальный размер матрицы var a: array[1..nmax,1..nmax] of integer; //тип матрицы n,m,i,j: byte; //переменные - размеры матрицы, счетчики циклов sm,b: integer; //сумма, переменная для чтения чисел s1,s2: set of byte; //множества чисел от 0 до 255 begin clrscr; //очищаем экран randomize; //генерация псевдо-случайных чисел repeat write('количество строк='); readln(m); until m in [1..nmax]; //проверяем правильность ввода repeat write('количество столбцов='); readln(n); until n in [1..nmax]; writeln('исходная матрица: '); for i: =1 to m do//выводим матрицу по строкам begin for j: =1 to n do begin a[i,j]: =random(20); //случайные числа от 0 до 19 write(a[i,j]: 4); end; writeln; end; writeln; writeln('множество s1: '); s1: =[]; //пустое множество for i: =1 to m do begin b: =random(m)+1; //наполняем случайными числами от одного до количества строк s1: =s1+[b]; //записываем в множество end; for i: =1 to m do if i in s1 then write(i,' '); //выводим элементы множества на экран writeln; writeln('множество s2: '); s2: =[]; for i: =1 to n do begin b: =random(n)+1; s2: =s2+[b]; end; for i: =1 to n do if i in s2 then write(i,' '); writeln; writeln; sm: =0; //сумма пока ноль for i: =1 to m do//идем по матрице for j: =1 to n do if(i in s1)and(j in s2) then sm: =sm+a[i,j]; {если номер строки и номер столбца есть в соответствующих им множествам, суммируем} write('сумма=',sm); //выводим сумму на экран readln; end.

👇
Ответ:
linabananchik
linabananchik
17.12.2021

Вот как-то так.

 

p.s. кружочки - это вроде разрыва, мне сложно было все в один столбик :)


Составить блок-схему. program lol; uses crt; const nmax=20; //максимальный размер матрицы var a: arr
4,5(91 оценок)
Открыть все ответы
Ответ:
Reginmdms
Reginmdms
17.12.2021

ответ: FIRSTTHINGSFIRST

Примечание: "шаг X" означает таблицу на рисунке, которая совпадает с номером X.

1. Рисуем квадрат 4x4 и заполняем известными значениями (шаг 1).

2. Видим, что в диагонали отсутствует одно число. Но мы знаем, что сумма чисел в диагонали магического квадрата равна константе, которая вычисляется по формуле:

M = \frac{n(n^2 + 1)}{2}

Подставляем в формулу известные значения:

M = \frac{4(4^2+1)}{2} = 34

Теперь вычитаем известные значения в диагонали: 34 - 13 - 11 - 4 = 6.

Подставляем в пустую клетку это значение (шаг 2).

3. Так же есть свойство магического квадрата 4x4: квадраты 2x2 на углах квадрата 4x4 тоже "равны" константе. Нам известен левый нижний угол. Если сложить все числа, получится 34. В правом верхнем квадрате нам не известно одно число. Вычитаем известные значения из константы: 34 -2 -13 - 11 = 8. Подставляем в пустую клетку значение 8 (шаг 3).

4. Шаг 4.

В условии сказано, что это нормальный магический квадрат, то есть в нем должны быть числа от 1 до 16. Выпишем справа числа, которых еще нет в магическом квадрате. Также над каждой колонкой и рядом с каждой строкой запишем количество, которого не хватает до 34-х.

Видим две колонки, которым не хватает 21-го. 21 из имеющихся чисел можно получить добавив либо 16 + 5, либо 14 + 7. Записываем о одну колонку 16 и 5, а в другую 14 и 7. Как мы видим, по столбцам все правильно, так как над ними написан 0. А вот по строкам не сходится. К первой строке и ко второй надо добавить те числа, которые у нас есть в наборе, но вот 5 и 8 уже есть в квадрате, значит что-то мы сделали неправильно (шаг 5).

5. Тогда попробуем поменять местами в 3-ей колонке 14 и 7 (шаг 6). Теперь мы видим, что можем поставить в каждую строку недостающее значение из оставшихся чисел (шаг 7). Получился магический квадрат для расшифровки.

6. Подставляем оставшиеся числа из списка. И проверяем, расшифровывая сообщение. После расшифровки получится фраза FIRSTTHINGSFIRST. Эта фраза осмысленная, потому что если добавить пробелы, получится выражение FIRST THINGS FIRST.


Информатика 11 класс олимпиада информационная безопасность
4,7(1 оценок)
Ответ:

ответ: Тут в задание опечатка скорее всего

Если делать по примеру из задания, будет такой код:

for i in range(20):

   n = i

   n = bin(n)[2:]

   sum = 0

   if int(n) % 2 == 0:

       sum = str(n).count('1')

       sum = bin(sum)[2:]

       r = n + sum

   else:

       r = '11' + n + '00'

   r = int(r, 2)

   if r > 215:

       print(i)

Если делать по условию задание, будет такой код:

for i in range(30):

   n = i

   n = bin(n)[2:]

   sum = 0

   if int(n) % 2 == 0:

       sum = str(n).count('1')

       sum = bin(sum)[2:]

       r = n + sum

   else:

       r = '1' + n + '00'

   r = int(r, 2)

   if r > 215:

       print(i)

4,6(99 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика

MOGZ ответил

Полный доступ к MOGZ
Живи умнее Безлимитный доступ к MOGZ Оформи подписку
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ