В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
Tahir353
Tahir353
14.11.2021 19:51 •  Информатика

. На бесконечном поле имеется стена, длины отрезков стены неизвестны. Стена состоит из одного вертикального и трёх горизонтальных отрезков (отрезки стены
расположены буквой «Е»). Все отрезки неизвестной длины. Робот находится в клетке,
расположенной непосредственно над верхней стеной. На рисунке указан один из
возможных расположения стен и Робота (Робот обозначен буквой «»).
Напишите для Робота алгоритм, закрашивающий все клетки, расположенные справа у
вертикальной стены в верхней части буквы «Е». Робот должен закрасить только
клетки, удовлетворяющие данному условию. Например, для приведённого справа
рисунка Робот должен закрасить следующие клетки (см. рисунок).
Конечное расположение Робота может быть произвольным. При исполнении алгоритма
Робот не должен разрушиться. Алгоритм должен решать задачу для произвольного
размера поля и любого допустимого расположения стен ссылка на задание ниже
https://f1.school.mosreg.ru/get.aspx/52/1f26810c2fd74932afab16d26ae59e1e.pdf

ТОМУ КТО ПРАВИЛЬНО И БЫСТРО РЕШИТ НАКИНУ

Показать ответ
Ответ:
D202
D202
22.05.2023 00:21
// PascalABC.NET 3.0, сборка 1156 от 30.01.2016
function Avg(a:array[,] of integer):real;
begin
  var s:=0; var k:=0;
  foreach var e:integer in a do
    if e>0 then begin s+=e; Inc(k) end;
  if k>0 then Result:=s/k else Result:=1e-100;
end;

begin
  var A:=MatrixRandom(4,4,-50,50); Writeln(A);
  Writeln('Среднее арифметическое положительных равно ',Avg(A):0:3);
  var B:=MatrixRandom(5,5,-30,30); Writeln(B);
  Writeln('Среднее арифметическое положительных равно ',Avg(B):0:3);
  var C:=MatrixRandom(4,5,-25,38); Writeln(C);
  Writeln('Среднее арифметическое положительных равно ',Avg(C):0:3);
end.

Тестовое решение:
[[35,35,5,-47],[14,34,35,-13],[25,-5,35,-29],[-7,10,-12,12]]
Среднее арифметическое положительных равно 24.000
[[-12,-17,-10,19,14],[20,17,-27,-2,16],[-3,-21,30,2,10],[5,-3,-17,-3,18],[0,-26,29,1,-22]]
Среднее арифметическое положительных равно 15.083
[[-5,-11,17,-4,15],[15,17,-24,36,15],[-8,-3,-22,28,-25],[-21,6,12,31,-1]]
Среднее арифметическое положительных равно 19.200
0,0(0 оценок)
Ответ:
Zhenya13551
Zhenya13551
09.03.2022 03:55
Не самый лёгкий, но работающий

const  n = 10000;//Не изменяемая по ходу программы переменная
var  a: array[1..n] of integer;  b: array[1..10]of integer;  c: array[1..10]of integer;  i, s, v: integer;
begin  for i := 1 to 10 do //Заполнение массива с числами от 1 до 10    c[i] := i;  for i := 1 to n do //Заполнение массива    a[i] := random(10) + 1; //Делается для того чтобы в массиве не было нулей  for i := 1 to n do    case a[i] of      1: b[1] := b[1] + 1;      2: b[2] := b[2] + 1;      3: b[3] := b[3] + 1;      4: b[4] := b[4] + 1;      5: b[5] := b[5] + 1;      6: b[6] := b[6] + 1;      7: b[7] := b[7] + 1;      8: b[8] := b[8] + 1;      9: b[9] := b[9] + 1;      10: b[10] := b[10] + 1;    End;    for i := 1 to 10 do    for s := 1 to 9 do      if b[s] > b[s + 1] then begin        v := b[s];        b[s] := b[s + 1];        b[s + 1] := v;        v := c[s];        c[s] := c[s + 1];        c[s + 1] := v;      end;  writeln(c[10], ' - их ', b[10]);    end.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота