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

, На складе, имеющем размеры N на M и разбитом на N x M одинаковых блоков

хранения передвигается робот. Вход на склад находится в верхнем левом углу склада, а

выход- в нижнем правом. Робот может перемещаться в следующий блок хранения только

вправо или вниз. Эффективным маршрутом робота называется кратчайший маршрут от

входа до выхода, при котором робот проходит хотя бы через один непустой блок хранения.
Входные данные
В первой строке вводятся размеры складаN и M через пробел
Следующие N строк содержат числа 0 или 1- задающие пустые (0) или непустые (1)
блоки хранения склада
Выходные данные
Необходимо вывести одно число- количество эффективных маршрутов робота
Пример
Входные данные
3 4
0000
0100
0010
Выходные данные
8

👇
Открыть все ответы
Ответ:
dmit0
dmit0
26.03.2020
Немного не понял, упорядочить по возрастанию снизу вверх.  Если выводить будет не так то в этой строчке изменишь знак на '>'  if podarr[i] < podarr[i+1] then

program znanija_com;
const
n = 5;
m = 3;
type
  tArray = array[1..n, 1..m] of integer;
  tPodArray = array[1..n] of real;
var
  arr : tArray;
  podarr : tPodArray;
  i,j,sum : integer;
procedure swap(var x,y: real);
  var t: real;
begin
  t := x;
  x := y;
  y := t
end;
begin
randomize;
writeln('Исходная матрица:');
for i:=1 to n do begin
  sum:=0;
  for j:=1 to m do begin
    arr[i, j]:=random(10);
    write(arr[i, j], ' ');
    sum:=sum+arr[i, j]; 
  end;
  writeln();
  podarr[i]:=sum/m;
end;
for j:=1 to n-1 do
  for i:=1 to n-j do
    if podarr[i] < podarr[i+1] then
      swap(podarr[i],podarr[i+1]);
writeln('Результирующий массив:');
for i:=1 to n do
  writeln(podarr[i], ' ');
end.
4,6(20 оценок)
Ответ:
супербятя
супербятя
26.03.2020
Задание №1

//PascalABC.NET (версия 3.1, сборка 1210 от 29.03.2016)
var
  b: array of real;
  i, n,pn: integer;
  ps,op,min:real;
begin
  write('Количество элементов массива :');readln(n);
  SetLength(b, n); // задаем длину массива
  min:=MaxReal; op:=1;
  writeln('Исходный массив:');
  for i:=0 to n-1 do begin
    repeat
      write('Введите ',i+1,' число из ',n,' : ');readln(b[i]);
    until (b[i]<=5) and (b[i]>=-20);
    if (b[i]>0) and (round(b[i]/2)*2=b[i]) then begin
      ps +=b[i];pn+=1;
      end
    else if b[i]<0 then  op *=b[i];
    if b[i]<min then min:=b[i];
  end;
  writeln;
  writeln('сумма положительных и четных элементов массива :',ps:0:3);
  writeln('Среднее положительных и четных элементов массива :',ps/pn:0:3);
  writeln('Произведение отрицательных элементов массива :',op:0:3);
  writeln('Минимальный элемент массива :',min);
  writeln('Отсортированный массив по убыванию :');
  b.sorteddescending.println;
end.

Тестовое решение:
Количество элементов массива :8
Исходный массив:
Введите 1 число из 8 : -18.5
Введите 2 число из 8 : 3.4
Введите 3 число из 8 : 4
Введите 4 число из 8 : -12
Введите 5 число из 8 : 2.2
Введите 6 число из 8 : -6.3
Введите 7 число из 8 : 2
Введите 8 число из 8 : 5

сумма положительных и четных элементов массива :6.000
Среднее положительных и четных элементов массива :3.000
Произведение отрицательных элементов массива :-1398.600
Минимальный элемент массива :-18.5
Отсортированный массив по убыванию :
5 4 3.4 2.2 2 -6.3 -12 -18.5

Задание №2
//PascalABC.NET (версия 3.1, сборка 1210 от 29.03.2016)
var
  a: array of integer;
  i,n ,max,h,k: integer;
begin
  write('Количество элементов массива :');readln(n);
  write('Число H :');readln(h);
  write('Число K :');readln(k);
  SetLength(a, n); // задаем длину массива
  max:=-MaxInt;
  writeln('Исходный массив:');
  for i:=0 to n-1 do
    repeat
      write('Введите ',i+1,' число из ',n,' : ');readln(a[i]);
      if a[i]>max then max:=a[i];
    until (a[i]<=7) and (a[i]>=-12);
  for i:=0 to n-1 do begin 
    if (a[i]>h) and (a[i]mod k=0) then
      writeln('Число ', a[i],' больше ',h,' и кратно ',k);
  end;
  writeln('Максимальный элемент массива :',max);
  writeln('Отсортированный массив по возрастанию :');
  a.sorted.println;
end.

Тестовое решение:
Количество элементов массива :8
Число H :-8
Число K :2
Исходный массив:
Введите 1 число из 8 : -10
Введите 2 число из 8 : 6
Введите 3 число из 8 : -4
Введите 4 число из 8 : 3
Введите 5 число из 8 : 1
Введите 6 число из 8 : -1
Введите 7 число из 8 : -12
Введите 8 число из 8 : 4
Число 6 больше -8 и кратно 2
Число -4 больше -8 и кратно 2
Число 4 больше -8 и кратно 2
Максимальный элемент массива :6
Отсортированный массив по возрастанию :
-12 -10 -4 -1 1 3 4 6
4,8(4 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ