8мес



Программирование
+2(Pascal) нужно расписать решение задачи чтобы ставить в паскаль
Дан целочисленный одномерный массив, состоящий из n элементов. Найти сумму и произведение нечетных элементов, кратных 3
По дате
По рейтингу
Код:
1234567891011121314151617181920212223242526272829303132333435363738
program SumAndProductOfOddMultiplesOfThree;
const
n = 10; // Количество элементов в массиве
var
i: Integer;
arr: array[1..n] of Integer;
Sum, Product: Integer;
HasFound: Boolean;
begin
// Пример заполнения массива (можно заменить на чтение из входных данных)
for i := 1 to n do
arr[i] := Random(30) - 15; // Заполняем случайными числами от -15 до 14
Sum := 0;
Product := 1;
HasFound := False;
for i := 1 to n do
begin
if (arr[i] mod 3 = 0) and (Odd(arr[i])) then
begin
Sum := Sum + arr[i];
Product := Product * arr[i];
HasFound := True;
end;
end;
if not HasFound then
Product := 0; // Если не было найдено ни одного подходящего элемента
WriteLn('Сумма нечетных элементов, кратных 3: ', Sum);
WriteLn('Произведение нечетных элементов, кратных 3: ', Product);
Readln;
end.
Код без рандома:
12345678910111213141516171819202122232425262728293031323334353637383940414243
program SumAndProductOfOddMultiplesOfThree;
const
n = 10; // Количество элементов в массиве
var
i: Integer;
arr: array[1..n] of Integer;
Sum, Product: Integer;
HasFound: Boolean;
begin
// Ввод элементов массива с клавиатуры
WriteLn('Введите ', n, ' целых чисел:');
for i := 1 to n do
begin
Write('Элемент ', i, ': ');
Readln(arr[i]);
end;
Sum := 0;
Product := 1;
HasFound := False;
for i := 1 to n do
begin
if (arr[i] mod 3 = 0) and (Odd(arr[i])) then
begin
Sum := Sum + arr[i];
Product := Product * arr[i];
HasFound := True;
end;
end;
if not HasFound then
Product := 0; // Если не было найдено ни одного подходящего элемента
WriteLn('Сумма нечетных элементов, кратных 3: ', Sum);
WriteLn('Произведение нечетных элементов, кратных 3: ', Product);
Readln;
end.
Ну мне-то не жалко, но боюсь, засыпесси ты с таким кодом-то:
1234567891011121314151617
type
PInteger = ^integer;
procedure SumMulInt(_a: PInteger; _n: integer; var __Sum, __Mul: integer);
var
i: integer;
begin
__Sum := 0;
__Mul := 1;
for i := 1 to _n do
if (_a^ mod 3 = 0) and (_a^ and 1 = 1) then
begin
__Sum := __Sum + _a^;
__Mul := __Mul * _a^;
Inc(_a);
end;
end;