Текст программы на языке Паскаль



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; просмотров: 161;