Домашние задания: Информатика
Очень нужна помощь с паскалем..
В массиве содержится последовательность из 100 целых положительных чисел. Каждое число не превышает 100. Определите и запишите в ответе сначала количество пар элементов массива, у которых разность элементов кратна 60 и хотя бы один из элементов кратен 15, затем максимальную из разностей элементов таких пар.
Вот на 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); if ( i mod 20 <> 0) then Write (A[i]:3) else WriteLn; end;
Col := 0; Raz := 0;
for var i := 1 to (n-1) do
for var j := i + 1 to (n) do
if ((A[i] mod 15 = 0) or (A[j] mod 15 = 0)) and ((A[i] - A[j]) mod 60 = 0) then
begin
Col := Col + 1; if (A[i] - A[j] > Raz) then Raz := 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); if ( i mod 20 <> 0) then Write (A[i]:3) else WriteLn; end;
Col := 0; Raz := 0;
for var i := 1 to (n-1) do
for var j := i + 1 to (n) do
if ((A[i] mod 15 = 0) or (A[j] mod 15 = 0)) and ((A[i] - A[j]) mod 60 = 0) then
begin
Col := Col + 1; if (A[i] - A[j] > Raz) then Raz := A[i] - A[j]; end;
Writeln (' Количество пар равно ' , Col);
Writeln (' Максимальная разность равна ', Raz);
end.

program task;
var
a: array[1..100] of integer;
i, j, count, maxDiff: integer;
begin
// чтение входных данных
for i := 1 to 100 do
readln(a[i]);
// поиск пар
count := 0;
maxDiff := 0;
for i := 1 to 99 do
for j := i + 1 to 100 do
if ((a[i] mod 15 = 0) or (a[j] mod 15 = 0)) and ((a[i] - a[j]) mod 60 = 0) then
begin
count := count + 1;
if (a[i] - a[j] > maxDiff) then
maxDiff := a[i] - a[j];
end;
// вывод результатов
writeln(count);
writeln(maxDiff);
end.
Сначала мы объявляем массив a, который будет содержать последовательность из 100 целых положительных чисел. Затем мы читаем эту последовательность из входных данных.
Далее мы используем два вложенных цикла for, чтобы перебрать все возможные пары элементов массива. Если разность элементов кратна 60 и хотя бы один из элементов кратен 15, то мы увеличиваем счетчик count и обновляем значение максимальной разности maxDiff.
Наконец, мы выводим результаты с помощью процедуры writeln.
var
a: array[1..100] of integer;
i, j, count, maxDiff: integer;
begin
// чтение входных данных
for i := 1 to 100 do
readln(a[i]);
// поиск пар
count := 0;
maxDiff := 0;
for i := 1 to 99 do
for j := i + 1 to 100 do
if ((a[i] mod 15 = 0) or (a[j] mod 15 = 0)) and ((a[i] - a[j]) mod 60 = 0) then
begin
count := count + 1;
if (a[i] - a[j] > maxDiff) then
maxDiff := a[i] - a[j];
end;
// вывод результатов
writeln(count);
writeln(maxDiff);
end.
Сначала мы объявляем массив a, который будет содержать последовательность из 100 целых положительных чисел. Затем мы читаем эту последовательность из входных данных.
Далее мы используем два вложенных цикла for, чтобы перебрать все возможные пары элементов массива. Если разность элементов кратна 60 и хотя бы один из элементов кратен 15, то мы увеличиваем счетчик count и обновляем значение максимальной разности maxDiff.
Наконец, мы выводим результаты с помощью процедуры writeln.
пиво.
Похожие вопросы
- Очень нужна помощь! Напечатать «столбиком» квадраты всех двухзначных чисел, используя операторы While и Repeat
- Информатика! Нужна помощь
- Нужна помощь по информатике
- Нужна помощь с задачей
- Информатика Word нужна помощь
- Нужна помощь по информатике
- Нужна помощь по Информатике!
- Написать программы с помощью паскаля. Срочно помогите!
- Помогите с дз по информатике. Паскаль. 9 класс.
- Помогите пожалуйста нужно написать программу в паскале.
Как это понимать:
// чтение входных данных
for i := 1 to 100 do
readln(a[i]);
Это человеку надо с клавиатуры вводить 100 данных?
А если далее в программе будет обнаружена ошибка? Опять вводить 100 данных при запуске??? И так далее.
И еще: БОТ не выдает программно, что значат числа в результате работы :(((