Текст программы на языке Паскаль
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.
Текст программы на языке Паскаль
Program Example_14;
Var n, i, j, Max : integer; A, B : array [1..30] of integer;
Begin
writeln;
write(‘Введите количество элементов массива N = ‘);
read(n);
write(‘Введите ‘, n, ‘целых чисел - элементов массива A:‘);
For i := 1 to n do
read(A[i]);
j := 0;
Max := A[1];
For i := 2 to n do
If A[i] > Max then Max := A[i];
writeln(‘Новый массив В:’);
For i := 1 to n do
If A[i] <> Max then begin j := j + 1;
B[j] := A[i]
writeln(B[j], ‘ ‘) end;
writeln(‘В новом массиве ‘, j, ‘ элементов’);
readln
end.
Рисунок 6.3 – Блок-схема алгоритма для примера 6.3
Данные для тестирования
1) Для n = 10, A = {10, 7, 8, 10, -1, 3, 8, 10, 8, 2}
ð Новый массив В: 7, 8, -1, 3, 8, 8, 2
В новом массиве 7 элементов
ВЛОЖЕННЫЕ ЦИКЛЫ
Если телом цикла является циклическая структура, то такие циклы называются вложенными. Возможно любое сочетание операторов цикла при организации вложенных циклов.
Приведём примеры решения задач с использованием вложенных циклов.
Пример 7.1. Дано n натуральных чисел a1, a2, ... , an . Найти наибольший общий делитель.
Решение задачи
Выберем схему решения поставленной задачи.
Наибольшим общим делителем называется наибольшее число, на которое делятся все заданные числа, - в данном случае, таким числом может оказаться наименьший элемент данного массива {a}.
|
|
После того как будут введены все элементы массива {a}, с помощью оператора цикла с параметром (for) и условного оператора организуем поиск минимального элемента. Решение задачи на нахождение минимального элемента массива приведено в методическом пособии [1].
Затем, с помощью оператора цикла с параметром (for) будем перебирать в порядке убывания значения от min({a}) до 1. Во вложенном цикле на каждом шаге для всех элементов массива будем проверять кратность элемента очередному числу. Для осуществления такой проверки воспользуемся операцией mod (остаток от деления), а в качестве индикатора успешного результата введём логическую переменную t, первоначально на каждом шаге присваивая ей значение True (истина).
Если все элементы массива окажутся кратны очередному значению параметра внешнего цикла (значение переменной t останется True), то с помощью процедуры break выходим из цикла и выводим результат – значение параметра внешнего цикла на том шаге, на котором он был прерван.
Блок-схема алгоритма
Дата добавления: 2018-04-04; просмотров: 415; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!