Домашние задания: Информатика
Информатика. Паскаль. Помогите
В массиве 100 целых положительных чисел, каждое число не превышает 10 000. Определите и запишите в ответе сначала количество пар элементов массива, у которых разность элементов кратна 45 и хотя бы один из элементов кратен 18, затем максимальную из разностей элементов таких пар.
const
N = 100;
var
a: array[1..N] of integer;
i, j, count, max_diff: integer;
begin
// Чтение элементов массива
for i := 1 to N do
read(a[i]);
count := 0;
max_diff := 0;
// Проверка каждой пары элементов
for i := 1 to N - 1 do
for j := i + 1 to N do
if ((abs(a[i] - a[j]) mod 45 = 0) and ((a[i] mod 18 = 0) or (a[j] mod 18 = 0))) then
begin
count := count + 1;
if abs(a[i] - a[j]) > max_diff then
max_diff := abs(a[i] - a[j]);
end;
// Вывод результата
writeln(count, ' ', max_diff);
end.
В этом коде мы инициализируем массив чисел и затем считываем значения из ввода пользователя. Затем мы проходим через каждую пару чисел в массиве. Если разность между двуми числами кратна 45 и хотя бы одно из чисел кратно 18, мы увеличиваем счетчик и проверяем, больше ли разность текущих чисел максимальной найденной разности. В конце мы выводим количество подходящих пар и максимальную разность.PascalABC:
const n = 100;
var A : array[1..n] of integer; Col, Raz: integer;
begin
WriteLn (' Исходный массив:');
for var i := 1 to n do
begin
A[i] := 1 + Random (n*n); if ( i mod 20 <> 0) then Write (A[i]:6) else WriteLn; end;
Col := 0; Raz := 0;
for var i := 1 to (n-1) do
for var j := i + 1 to (n) do
if ((abs(A[i] - A[j]) mod 45 = 0) and ((A[i] mod 18 = 0) or (a[j] mod 18 = 0))) then
begin
Col := Col + 1; if abs(A[i] - A[j]) > Raz then Raz := abs (A[i] - A[j]); end;
Writeln (' Количество пар равно ' , Col);
Writeln (' Максимальная разность равна ', Raz);
end.
const n = 100;
var A : array[1..n] of integer; Col, Raz: integer;
begin
WriteLn (' Исходный массив:');
for var i := 1 to n do
begin
A[i] := 1 + Random (n*n); if ( i mod 20 <> 0) then Write (A[i]:6) else WriteLn; end;
Col := 0; Raz := 0;
for var i := 1 to (n-1) do
for var j := i + 1 to (n) do
if ((abs(A[i] - A[j]) mod 45 = 0) and ((A[i] mod 18 = 0) or (a[j] mod 18 = 0))) then
begin
Col := Col + 1; if abs(A[i] - A[j]) > Raz then Raz := abs (A[i] - A[j]); end;
Writeln (' Количество пар равно ' , Col);
Writeln (' Максимальная разность равна ', Raz);
end.

Похожие вопросы
- Информатика, паскаль. помогите пж, прогу делал, но все равно что-то не так
- Помогите с дз по информатике. Паскаль. 9 класс.
- Помогите срочно!!!!Информатика ПАСКАЛЬ
- Помогите пожалуйста с информатикой! (паскаль)
- Помогите информатика паскаль!
- Информатика язык:Паскаль. Помогите пожалуйста!!
- Помогите с информатикой (паскаль)
- Помогите, пожалуйста, с информатикой, паскаль
- ПОМОГИТЕ СРОЧНО!! ИНФОРМАТИКА ПАСКАЛЬ!!
- Помогите, пожалуйста, с информатикой, паскаль.