Вычислить сумму нечётных элементов и удвоить чётные элементы массива - Turbo Pascal
Формулировка задачи:
Дан произвольный одномерный массив (элементы вводятся с клавиатуры). Формирование элементов массива, обработку и если нужно вывод массива оформить отдельными подпрограммами. Вычислить сумму нечетных элементов, а все остальнве удвоить.
Решение задачи: «Вычислить сумму нечётных элементов и удвоить чётные элементы массива»
textual
Листинг программы
const
n = 10; {количество элементов массива}
type
vector = array [1..n] of integer;
var
myArr : vector;
{процедура ввода массива}
procedure initArray(var v : vector);
var a : integer;
begin
writeln('ВВОД МАССИВА');
for a := 1 to n do
begin
write('введите ', a, '-й элемент массива >>');
readln(v[a])
end
end;
{процедура вывода массива}
procedure outputArray(v : vector);
var a : integer;
begin
writeln('ВЫВОД МАССИВА');
for a := 1 to n do
write(v[a] : 5);
writeln
end;
{функция суммирования нечетных}
function sumOdd(v : vector) : integer;
var a, s : integer;
begin
s := 0;
for a := 1 to n do
if v[a] mod 2 <> 0 then s := s + v[a];
sumOdd := s
end;
{процедура удвоения четных}
procedure doubleEven (var v : vector);
var a : integer;
begin
for a := 1 to n do
if v[a] mod 2 = 0 then v[a] := v[a] * 2
end;
{Главная программа}
BEGIN
initArray(myArr);{ввод массива}
outputArray(myArr); {вывод массива}
doubleEven(myArr); {удваиваем четные}
outputArray(myArr); {вывод массива снова}
writeln('Сумма нечетных элементов массива = ', sumOdd(myArr));
readln
END.
Объяснение кода листинга программы
- В процедуре initArray введен массив myArr, который будет использоваться для хранения введенных пользователем данных.
- В процедуре outputArray выводятся данные из массива myArr.
- Функция sumOdd принимает массив myArr и возвращает сумму всех нечетных элементов.
- В процедуре doubleEven каждый четный элемент массива myArr удваивается.
- В главной программе сначала выполняется ввод массива, затем вывод массива до и после удвоения четных элементов, и, наконец, выводится сумма нечетных элементов.