Program Example_12;
Var K, n, i : integer; A : array [1..30] of integer;
Begin
writeln;
write(‘Введите количество элементов массива N = ‘);
read(n);
write(‘Введите ‘, n, ‘целых чисел - элементов массива А:‘);
For i := 1 to n do
read(A[i]);
K := 0;
For i := 1 to n do
If odd(i) and (not odd(abs(A[i]))) then begin
K := K + 1;
writeln(‘A[‘, i, ’]= ‘, A[i])
end;
writeln(‘K = ’, K);
readln
end.
Рисунок 6.1 – Блок-схема алгоритма для примера 6.1
Данные для тестирования
1) Для n = 10, A = {5, 7, 8, 10, -12, 3, 1, 4, 6, 2}
ð A[3] = 8
A[5] = -12
A[9] = 6
Пример 6.2 . Дан целочисленный массив {x} размера N и целое число a. Если в массиве {x} есть хотя бы один элемент, равный a, то получить сумму всех элементов, следующих за первым таким элементом. В противном случае вывести сообщение об отсутствии такого элемента.
Решение задачи
Выберем схему решения поставленной задачи. В этой задаче требуется:
1) определить имеется ли вообще в заданном массиве элемент, равный числу а;
2) если, такой элемент имеется, то запомнить его номер;
3) вычислить сумму элементов массива, предшествующих найденному элементу или вывести сообщение об отсутствии такового.
Чтобы запомнить номер искомого элемента, введём переменную K. Первоначально зададим K = 0.
После того как будут введены все элементы массива {x} и число а, с помощью оператора цикла с параметром (for) и условного оператора организуем поиск элемента, равного а. Как только будет найден первый такой элемент, присвоим его номер переменной K и, с помощью процедуры break, прервём дальнейшее выполнение цикла for, т.е. просмотр оставшейся части массива. Если мы проверим весь массив и элемента равного а не обнаружится, то значение переменной K останется равным нулю.
После завершения просмотра массива с помощью условного оператора проверим значение переменной K – если оно осталось равным нулю, то выведем сообщение об отсутствии элемента равного а, в противном случае с помощью оператора цикла for вычислим искомую сумму и выведем её значение.
Блок-схема алгоритма – представлена на рисунке 6.2.
Текст программы на языке Паскаль
Program Example_13;
Var K, n, i, S, a : integer; x : array [1..30] of integer;
Begin
writeln;
write(‘Введите количество элементов массива N = ‘);
read(n);
write(‘Введите ‘, n, ‘целых чисел - элементов массива X:‘);
For i := 1 to n do
read(x[i]);
K := 0;
For i := 1 to n do
If x[i] = a then begin K := i; break end;
If K = 0 then writeln(‘В данном массиве нет элементов равных ’, а)
else begin S := 0;
for i := 1 to K-1 do S := S + x[i];
writeln(‘S = ’, S) end;
end.
Рисунок 6.2 – Блок-схема алгоритма для примера 6.2
Данные для тестирования
1) Для n = 10, x = {5, 7, 8, 10, -12, 3, 8, 1, 8, 2}, a = 8
ð S = 10-12+3+8+1+8+2 = 24
2) Для n = 10, x = {5, 7, 8, 10, -12, 3, 8, 1, 8, 2}, a = 4
ð В данном массиве нет элементов равных 4
Пример 6.3 . Дан целочисленный массив {ai} , i= 1,2, ..., n. Получить новый массив {bi}, выбросив из исходного массива все элементы со значением max({а i}). Определить число элементов нового массива.
Решение задачи
Выберем схему решения поставленной задачи.
После того как будут введены все элементы массива {a}, с помощью оператора цикла с параметром (for) и условного оператора организуем поиск максимального элемента. В методическом пособии [1] приведено решение задачи на нахождение минимального элемента массива. Поиск максимального элемента выполняется аналогично.
Введём переменную j – номер очередного элемента в новом массиве. Начальное значение j = 0. С помощью цикла с параметром и условного оператора «перепишем» в массив {bi} все элементы из массива {ai}, не равные максимальному.
Номер последнего элемента в массиве {bi} будет равен количеству элементов в новом массиве.
Блок-схема алгоритма – представлена на рисунке 6.3.
Дата: 2019-03-05, просмотров: 216.