Вопрос задан 01.05.2021 в 04:06. Предмет Информатика. Спрашивает Евдасёв Илья.

Помогите решить задачу по Pascal. Дано числа A1, A2,..., A9; B1, B2,..., B11. Максимальный

элемент первой последовательности заменить на максимальный элемент второй последовательности и наоборот. ПРОГРАММУ ОФОРМИТЬ В ВИДЕ !!!!"ПРОЦЕДУРЫ"!!!!
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Лобода Игорь.
// PascalABC.NET 3.3, сборка 1573 от 04.11.2017
// Внимание! Если программа не работает, обновите версию!

procedure AB(a,b:array of integer);
begin
  var (iaMax,ibMax):=(a.IndexMax,b.IndexMax);
  var t:=a[iaMax]; a[iaMax]:=b[ibMax]; b[ibMax]:=t
end;

begin
  var a:=ArrRandom(9,-99,99);
  Write('A: '); a.Println;
  var b:=ArrRandom(11,-99,99);
  Write('B: '); b.Println;
  AB(a,b);
  Write('A: '); a.Println;
  Write('B: '); b.Println;
end.

Пример
A: -46 -76 98 -83 84 8 -14 46 8
B: 29 -36 37 78 -20 35 -77 -23 80 -50 -55
A: -46 -76 80 -83 84 8 -14 46 8
B: 29 -36 37 78 -20 35 -77 -23 98 -50 -55
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Конечное решение должно выглядеть как процедура на языке Pascal, которая будет иметь два параметра: массив A из 9 элементов и массив B из 11 элементов. Процедура должна заменить максимальный элемент массива A на максимальный элемент массива B и наоборот.

Вот решение на языке Pascal:

pascal
procedure ReplaceMax(var A: array of Integer; var B: array of Integer); var maxA, maxB, indexA, indexB, i: Integer; begin // поиск максимального элемента в A maxA := A[0]; indexA := 0; for i := 1 to Length(A) - 1 do begin if A[i] > maxA then begin maxA := A[i]; indexA := i; end; end; // поиск максимального элемента в B maxB := B[0]; indexB := 0; for i := 1 to Length(B) - 1 do begin if B[i] > maxB then begin maxB := B[i]; indexB := i; end; end; // замена максимальных элементов A[indexA] := maxB; B[indexB] := maxA; end;

Эта процедура принимает два параметра: массив A и массив B. Первый цикл ищет максимальный элемент в массиве A и сохраняет его значение и индекс в переменные maxA и indexA. Аналогично, второй цикл ищет максимальный элемент в массиве B и сохраняет его значение и индекс в переменные maxB и indexB. Наконец, процедура заменяет максимальный элемент в массиве A на maxB и максимальный элемент в массиве B на maxA.

Чтобы вызвать эту процедуру из основной программы, достаточно передать ей два массива:

pascal
var A: array[0..8] of Integer = (1, 2, 3, 4, 5, 6, 7, 8, 9); B: array[0..10] of Integer = (10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20); begin ReplaceMax(A, B); // здесь A и B уже изменены end.

Эта программа создает два массива A и B, вызывает процедуру ReplaceMax с этими массивами и затем может использовать измененные массивы.

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос