Просмотр содержимого документа
«Решение задач на Pascal»
Задача
Найти номер и значение первого положительного элемента массива.
Решение
Данная задача решается просто, если использовать оператор break. Массив перебирается в цикле. Каждый элемент проверяется на условие "больше нуля". Как только оно будет выполнено, элемент следует вывести на экран, а цикл прервать.
const N = 20;
var
arr: array[1..N] of integer;
i: byte;
begin
randomize;
for i:=1 to N do begin
arr[i] := random(100) - 75;
write(arr[i]:4);
end;
writeln;
for i:=1 to N do
if arr[i] 0 then begin
writeln(i, ' ', arr[i]);
break;
end;
end.
Задача
Найти сумму тех элементов массива, которые одновременно имеют четные и отрицательные значения.
Например, в массиве [3, -5, -2, 4, -8, 0] отрицательными четными элементами являются числа -2 и -8. Их сумма равна -10.
Похожие задачи
Сумма положительных элементов массива
Количества отрицательных и положительных элементов в массиве
Решение
Для решения поставленной задачи надо проверить каждый элемент массива на отрицательность и на четность. Сделать это можно в заголовке оператора ветвления, используя сложное логическое выражение с оператором and. Если текущий элемент массива отрицателен (
Четность элемента в языке Паскаль можно проверить двумя способами:
С помощью оператора mod (нахождение остатка от деления). Так если при делении на 2 остаток равен нулю, то число четное.
С помощью функции odd(), которая возвращает false (ложь), если число четное.
const N = 10;
var
a: array[1..N] of integer;
i: byte;
sum: integer;
begin
randomize;
for i:=1 to N do a[i]:=random(10)-5;
for i:=1 to N do write(a[i]:4);
writeln;
sum := 0;
for i:=1 to N do begin
if (a[i]0) and (odd(a[i])=false) then
sum := sum + a[i];
end;
writeln(sum);
end.
Задача
Получить среднее арифметическое всех чётных элементов массива, стоящих на нечётных местах.
Решение
Описание переменных:
k - счетчик количества элементов, значения которых удовлетворяют условиям:
Алгоритм решения задачи:
Для каждого второго элемента, начиная с первого (нечетные элементы), проверяем условие его четности (должен делиться на 2 без остатка).
Программа на языке Паскаль:
const N = 10;
var arr: array[1..N] of integer;
i, k: byte;
sum: integer;
avr: real;
begin
writeln('Enter the ten elements of the array:');
for i:=1 to N do
read(arr[i]);
sum := 0;
i := 1;
k := 0;
while i = N do begin
if (arr[i] mod 2) = 0 then begin
sum := sum + arr[i];
k := k + 1
end;
i := i + 2
end;
writeln(sum);
if k 0 then begin
avr := sum / k;
writeln(avr)
end
else
writeln('No elements');
readln;
end.