Как решить такую задачу на паскале по информатике Заданы массивы А и В по 10 элементов. Слить массивы А и В в массив С так, чтобы вначале шли элементы меньше среднего значения по всему массиву С. На паскале
program MergeArrays; const n = 10; var A, B, C: array[1..n] of integer; averageValue, sum: real; i, j, k: integer; begin sum := 0; // Заполнение массивов A и B writeln('Введите элементы массива A:'); for i := 1 to n do begin readln(A[i]); sum := sum + A[i]; end; writeln('Введите элементы массива B:'); for i := 1 to n do begin readln(B[i]); sum := sum + B[i]; end; averageValue := sum / (2 * n); // среднее значение по всему массиву C i := 1; j := 1; k := 1; // Слияние массивов A и B в массив C while (i <= n) and (j <= n) do begin if (A[i] < averageValue) and (A[i] < B[j]) then begin C[k] := A[i]; inc(i); end else begin C[k] := B[j]; inc(j); end; inc(k); end; // Добавление оставшихся элементов массива A while i <= n do begin if A[i] < averageValue then begin C[k] := A[i]; inc(k); end; inc(i); end; // Добавление оставшихся элементов массива B while j <= n do begin if B[j] < averageValue then begin C[k] := B[j]; inc(k); end; inc(j); end; // Вывод массива C writeln('Массив C:'); for i := 1 to 2 * n do begin writeln(C[i]); end; end.
В данном коде сначала вводятся и заполняются массивы A и B, затем производится слияние элементов в массив C в соответствии с условием задачи. В конце программа выводит полученный массив C.
Пример решения задачи на Паскале:
program MergeArrays;const
n = 10;
var
A, B, C: array[1..n] of integer;
averageValue, sum: real;
i, j, k: integer;
begin
sum := 0;
// Заполнение массивов A и B
writeln('Введите элементы массива A:');
for i := 1 to n do
begin
readln(A[i]);
sum := sum + A[i];
end;
writeln('Введите элементы массива B:');
for i := 1 to n do
begin
readln(B[i]);
sum := sum + B[i];
end;
averageValue := sum / (2 * n); // среднее значение по всему массиву C
i := 1;
j := 1;
k := 1;
// Слияние массивов A и B в массив C
while (i <= n) and (j <= n) do
begin
if (A[i] < averageValue) and (A[i] < B[j]) then
begin
C[k] := A[i];
inc(i);
end
else
begin
C[k] := B[j];
inc(j);
end;
inc(k);
end;
// Добавление оставшихся элементов массива A
while i <= n do
begin
if A[i] < averageValue then
begin
C[k] := A[i];
inc(k);
end;
inc(i);
end;
// Добавление оставшихся элементов массива B
while j <= n do
begin
if B[j] < averageValue then
begin
C[k] := B[j];
inc(k);
end;
inc(j);
end;
// Вывод массива C
writeln('Массив C:');
for i := 1 to 2 * n do
begin
writeln(C[i]);
end;
end.
В данном коде сначала вводятся и заполняются массивы A и B, затем производится слияние элементов в массив C в соответствии с условием задачи. В конце программа выводит полученный массив C.