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

Для клетки с координатами (x , y) в таблице размером m x n выведите координаты ее соседей. соседними называются клетки, имеющие общую сторону.
даны натуральные числа m, n, x, y(1< =x< =m< =109, 1< =y< =n< =109). в выходной файл выведите пары координат соседей этой клетки в произвольном порядке.
написать программу на языке python.

Показать ответ
Ответ:
dianaTe
dianaTe
08.06.2020 02:51
Задание 1

const
  n=10;
var
  a:array[1..n] of integer;
  i,k,t,imin,imax:integer;
begin
  randomize; { инициализация датчика пчевдослучайных чисел }
  Writeln('*** Исходный массив ***');
  for i:=1 to n do begin
    a[i]:=random(20); { интервал [0;19] }
    Write(a[i]:4)
    end;
  Writeln;
  { 1. меняем местами правую и левую половины }
  Writeln('*** 1 ***');
  k:=n div 2;
  for i:=1 to k do begin
    t:=a[i]; a[i]:=a[i+k]; a[i+k]:=t
    end;
  for i:=1 to n do Write(a[i]:4);
  Writeln;
  { 2. Элементы массива, большие 10, заменяем на 100 }
  for i:=1 to k do
    if a[i]>10 then a[i]:=100;
  Writeln('*** 2 ***');
  for i:=1 to n do Write(a[i]:4);
  Writeln;
  { 3. Удаляем максимальный элемент, вставляем 0 перед минимальным }
  { замороченная задача ! }
  Writeln('*** Исходный массив ***');
  for i:=1 to n do begin
    a[i]:=random(50)+1; { интервал [1;49] }
    Write(a[i]:4)
    end;
  Writeln; Writeln('*** 3 ***');
  imin:=1; imax:=1;
  for i:=2 to n do
    if a[i]>a[imax] then imax:=i
    else
      if a[i]<a[imin] then imin:=i;
  if imin < imax then begin { минимальный встречается раньше максимального }
    { подвигаем вправо на 1 все элементы от imin и до imax }
    for i:=imax-1 downto imin do a[i+1]:=a[i];
    a[imin]:=0 { вставляем 0 в позицию imin }
    end
  else begin { минимальный встречается позже максимального }
    { подвигаем влево на 1 элементы от imax до imin -1 }
    for i:=imax to imin-1 do a[i]:=a[i+1];
    a[imin-1]:=0; { вставляем 0 в позицию перед imin }
    end;
  for i:=1 to n do Write(a[i]:4);
  Writeln  
end.

Пример
*** Исходный массив ***
  14   1  11   7  14   8  12   8   1  14
*** 1 ***
   8  12   8   1  14  14   1  11   7  14
*** 2 ***
   8 100   8   1 100  14   1  11   7  14
*** Исходный массив ***
  24  36  25   4  42  42  16  39  45  44
*** 3 ***
  24  36  25   0   4  42  42  16  39  44

Задание 2

const
  n=10;
var
  a:array[1..n] of integer;
  i:integer;
begin
  randomize; { инициализация датчика пчевдослучайных чисел }
  Writeln('*** Исходный массив ***');
  for i:=1 to n do begin
    a[i]:=random(20); { интервал [0;19] }
    Write(a[i]:4)
    end;
  Writeln;
  { 1. выводим нечетные элементы }
  Writeln('*** 1 ***');
  for i:=1 to n do
    if a[i] mod 2 <>0 then Write(a[i]:4);
  Writeln;
  { 2. Элементы на четных позициях обнуляем }
  i:=2;
  while i<=n do begin
    a[i]:=0;
    i:=i+2
    end;
  Writeln('*** 2 ***');
  for i:=1 to n do Write(a[i]:4);
  Writeln
end.

Пример
*** Исходный массив ***
  12   0  14   8  13  17   3   1  12  17
*** 1 ***
  13  17   3   1  17
*** 2 ***
  12   0  14   0  13   0   3   0  12   0

Замечание:
Третью подзадачу решить в такой постановке невозможно.
В самом деле, требуется удалить последний нечетный элемент, а перед третьим элементом вставить ноль. Что делать, если этим последним нечетным окажется третий?
0,0(0 оценок)
Ответ:
BroKeNxHeArT
BroKeNxHeArT
30.09.2020 17:16

Пояснение:

Сумма будет максимальной в том случае, если будут суммированы два самых больших числа в массива. То есть необходимо их найти и вывести их индексы. Программа снизу как раз это и вычисляет через два прохода цикла for

a = [] #объявление списка    

n = 10 #кол-во элементов в списке

for i in range(0,n): #заполнение списка

   a.append(int(input('Введите ['+ str(i) + "] элемент: ")))

max_number = 0 #устанавливаем начальный индекс макс. эл.

for i in range(n-1): #поиск индекса макс. эл.

   if(a[max_number] < a[i+1]):

       max_number = i+1

       

if(max_number == 0): #если индекс макс. эл = 0

   pre_max_number = 1 #начальный индекс второго макс. эл. = 1

else: pre_max_number = 0 #иначе 0

for j in range(n-1): #поиск индекса второго макс. эл.

   if(j+1 != max_number and a[pre_max_number] < a[j+1]):

       pre_max_number = j+1

       

print(max_number, pre_max_number) #вывод их на экран

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота