3. Пример решения задачи
Условие задачи: дан целочисленный массив А, состоящий из n элементов. Проверить, есть ли в нем элементы, равные нулю. Если есть, найти номер первого и последнего из них; если нет, то вывести текст “нули отсутствуют”.
Метод и алгоритм решения задачи.
Введем следующие обозначения: i - порядковый номер (индекс) элемента массива; a[i] - элемент массива с индексом i; n - число элементов массива; x - номер первого нулевого элемента массива; t - номер последнего нулевого элемента массива.
Рис.1. Блок-схема алгоритма
В алгоритме и программе будем использовать досрочную процедуру выхода из цикла BREAK [2,c.31]. Алгоритм решения задачи представлен на рис.1.
Текст программы на языке Паскаль следующий:
PROGRAM PR4;
VAR i,n,x,t:integer ;
a:array [1..100] of integer;
BEGIN
WRITELN(‘Введите число элементов’);
READLN(n);
FOR i:=1 TO n DO
BEGIN
WRITE(‘a[‘,i,’]=’);
READLN(a[i])
END;
x:=0;
FOR i:=1 TO n DO
IF a[i]=0 THEN
BEGIN
x:=i;
BREAK
END;
FOR i:=n DOWNTO 1 DO
IF a[i]=0 THEN
BEGIN
t:=i;
BREAK
END;
IF x<>0 THEN WRITELN(‘1 индекс=’,x,’ последний индекс=’,t)
ELSE WRITELN(‘В массиве нулевых элементов нет.’)
END.
4. Задачи, выносимые на практические занятия
Для каждой из перечисленных ниже задач предлагается разработать алгоритм и программу.
1. Дан одномерный массив А размерностью m. Сформировать на его основе массивы X и Y, содержащие соответственно положительные и отрицательные элементы массива А.
2. Даны одномерные массивы А, В, С. Составить программу формирования массива Z, элементы которого отвечают условию: Zi=min{|ai|, bi, ln|ci|}. Длина всех массивов равна n.
3. Найти сумму элементов последовательности из n любых чисел, предшествующих первому отрицательному элементу этой последовательности.
4. Дан массив из n чисел. Подсчитать, сколько раз в нем встречается максимальный по величине элемент.
5. Найти минимальный элемент среди m элементов массива А. Сформировать новый массив В, исключив этот элемент.
6. Дан одномерный массив чисел В, содержащий n элементов. Подсчитать количество элементов массива, не попадающих в интервал [p,q], p<q. Найти сумму этих элементов.
7. Даны два одномерных массива А и В, содержащие соответственно n и m элементов. Подсчитать количество чисел, одновременно встречающихся в массивах А и В. Вывести эти числа на печать. В каждом массиве не встречается одинаковых чисел.
8. Вычислить сумму кубов всех элементов целочисленного одномерного массива Р длиной n за исключением элементов, кратных 3 или 5.
9. Дана
неубывающая последовательность n
чисел a1,
a2, ,
an и
некоторое число q.
Найти тот член последовательности,
для которого выполняется условие
ak-1<q<ak;
определить его порядковый номер и
подсчитать сумму квадратов всех
предшествующих членов
.
Значение q должно отвечать
условию a1<q<an.
10. На плоскости даны 100 точек, эти точки попарно соединены отрезками. Написать программу вычисления длины наибольшего из отрезков. Считать координаты i-й точки суть xi, yi и что задана последовательность действительных чисел x1, y1, x2, y2, ... , x100, y100.
11. Написать программу вычисления коэффициентов многочлена c0 + c1x + ... + c20x20, являющегося произведением многочленов a0 + a1x + ... + a5x5 и b0 + b1x + ... + b15x15. Считать, что задана последовательность действительных чисел a0, ..., a5, b0, ..., b15.
12. В матрице R(k,n), k20, n10 найти наибольший и наименьший элементы и поменять их местами.
13. В матрице S(25,8) ввести исходные данные в первые 24 строки и первые 7 столбцов. Вычислить среднее арифметическое значение элементов каждой строки и записать его в 8-й столбец, а также среднее арифметическое каждого столбца и записать его в 25-ю строку. Отпечатать полученную матрицу в общепринятом виде.
14. В матрице T(n,m), n20, m15 найти строку с наибольшей и наименьшей суммой элементов. Вывести на печать найденные строки и суммы их элементов.
15. Упорядочить по возрастанию элементы каждой строки матрицы V(8,7). Отпечатать полученную матрицу в общепринятом виде.
