Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы 12.doc
Скачиваний:
6
Добавлен:
01.05.2025
Размер:
15.46 Mб
Скачать

Определить число членов ряда, вошедших в сумму. Для вычисления общего члена ряда

используем рекуррентное соотношение, выразив n- й член через (n-1)-й:

; a1 = x, n = 2, 3, 4,....

Значение первого члена ряда вычислим до цикла с помощью оператора присваивания a = x, а всех последующих членов ряда по рекуррентному соотношению

в цикле.

Программа, реализованная в соответствии с этим алгоритмом, имеет вид:

PROGRAM PRIMER;

VAR X, EPS, A, S: REAL;

N: INTEGER;

BEGIN

WRITELN (‘ВВЕДИТЕ X, EPS’);

READ (X,EPS);

A:=X; S:=0; N:=1;

WHILE ABS(A) >= EPS DO

BEGIN

S:= S+A;

N:= N+1;

A:= -A*X*X/((2*N - 1)*(2*N- 1))

END;

WRITELN(‘СУММА РЯДА = ’,S:8:4);

WRITELN (‘ЧИСЛО ЧЛЕНОВ = ’, N:4)

END.

Контрольные вопросы

  1. Что такое итерационный циклический процесс? Его отличия от цикла с заданным числом повторений.

  2. Каково условие выхода из цикла при вычислении значения суммы бесконечного ряда?

  3. Какие операторы организуют цикл в программе вычисления суммы членов бесконечного ряда?

  4. Зачем используются рекуррентные соотношения для вычисления значений члена ряда?

11.4 Обработка массивов и матриц

Цель работы: 1. Овладение практическими навыками работы с массивами, особенностями их ввода и вывода, приобретение дальнейших навыков по организации программ, циклической структуры с использованием приемов программирования.

2. Овладение навыками алгоритмизации и программирования структур с вложенными циклами, навыками использования приемов программирования во вложенных циклах, способами ввода и вывода матриц.

Данные типа массив содержат фиксированное число пронумерованных элементов одного типа. Тип массив обозначается зарезервированным словом array, после которого указывается диапазон изменения номеров элементов и (после зарезервированного слова of) тип элементов массива. Ввод и вывод элементов массива следует производит с помощью цикла, параметром которого являются индексы элементов. Например, требуется создать массив Х из 20-ти элементов: For I:=1 TO 20 DO READLN (X [i]);

Ввод и вывод элементов матрицы следует производить с помощью вложенных циклов. Например, если внешний цикл производится по строкам, а внутренний по столбцам, то ввод матрицы М, состоящей из 5-ти строк и 9-ти столбцов, производится следующим образом:

FOR I:=1 TO 5 DO

FOR J:=1 TO 9 DO READLN (M[I, J]);

Аналогично производится вывод.

Задание

Изучить:

  • способы описания размеров массивов и матриц на языке программирования;

  • реализация на конкретном языке программирования приемов накопления суммы или произведения, запоминания результатов, нахождения наибольшего и наименьшего элементов массива;

  • правила организации вложенного цикла с учетом порядка перебора элементов матрицы;

  • правила использования приемов программирования в структурах с вложенными циклами.

Обработать на ЭВМ массив и матрицу в соответствии с вариантом задания, указанного в таблице 2.9.

Таблица 2.9

Вари-ант

Имя массива или матрицы

и размеры

Действия

Условия и ограни-чения

А (30)

А. Упорядочить массив сначала по убыванию, затем по возрастанию.

C (15)

A.Найти максимальный и минимальный элементы массива и поменять их местами. Вывести на печать полученный массив.

A[i]0

D (50)

A. Переписать элементы массива D в массив Е и подсчитать в них количество положительных чисел.

-1X[ i ] 1

Е (25)

А. Определить максимальный элемент массива Е и его порядковый номер.

Е [ i ] > 0

F (35)

А. Определить минимальный элемент массива F и его порядковый номер.

F [ i ] < 0

G (20)

А. Найти максимальный и минимальный элементы массива G и поменять их местами.

-

H (N)

Y (N)

А. Расположить в массиве Y сначала положительные, а затем отрицательные элементы массива Н.

N > 10

Е (25)

А. Определить максимальный элемент массива Е и его порядковый номер.

Е [ i ] > 0

F (35)

А. Определить минимальный элемент массива F и его порядковый номер.

F [ i ] < 0

U (11)

А. Элементы массива умножить на 2. Вывести полученный массив на печать.

-

V (13)

А. В массиве в порядке возрастания модулей упорядочить сначала отрицательные, затем положительные элементы.

-

W (17)

А. В массиве в порядке возрастания модулей упорядочить сначала положительные, затем отрицательные элементы.

-

Х (М, N)

Б. Упорядочить строки вещественной матрицы Х по возрастанию их наибольших элементов.

M  20

N  30

Y (25)

А. Дан символьный массив. Заменить буквы на звездочки (*), а на место цифр поставить 0. Вывести на печать.

-

F (35)

А. Дан символьный массив. Заменить буквы на 0, а на место цифр – звездочки (*). Вывести на печать.

-

А (30)

А. Дан символьный массив. Расположить сначала цифры в порядке возрастания, затем буквы.

-

В (15)

А. Вывести на печать массив в обратном порядке.

-

С (10)

А. Вывести на печать массив С, упорядочив его элементы по возрастанию.

-

D (18)

А. В массиве в порядке убывания модулей упорядочить сначала отрицательные, затем положительные элементы.

-

А(8)

А. Написать программу, которая вводит с клавиатуры массив и выводит количество ненулевых элементов. Перед вводом каждого элемента на экране должна появляться подсказка с его номером.

-

Р(N)

A. Вывести минимальный элемент введенного с клавиатуры массива целых чисел.

-

А (20)

А. Вычислите среднее арифметическое ненулевых элементов введенного с клавиатуры массива целых чисел.

-

А(n)

А. Вычислите среднюю температуру воздуха. Исходные данные вводятся во время работы программы.

-

F(20)

А. Проверить представляют ли элементы массива, введенные с клавиатуры, возрастающую последовательность.

-

R(15)

А. Проверьте, находится ли в массиве введенное с клавиатуры число.

-

T(14)

А. Определить самую длинную последовательность подряд идущих нулей в заданном одномерном массиве.

-

H(25)

А. Вычислите, сколько раз введенное с клавиатуры число встречается в массиве.

-

E(35)

А. Проверьте, есть ли во введенном с клавиатуры массиве элементы с одинаковым значением.

N(13)

А. Отсортировать, методом обмена («пузырька») по убыванию введенный с клавиатуры массив.

-

Пример выполнения работы

Задание:

А. Составить программу для нахождения наибольшего элемента массива и его порядкового номера.

Так как для данного примера значения массива В задаются оператором ввода, то в качестве начального значения наибольшего целесообразно выбрать значение первого элемента, а цикл для сравнения начать со второго значения массива. По условию, помимо значения наибольшего необходимо указать его порядковый номер (индекс). При выполнении условия Bi>Bmax следует выполнить не только оператор Bmax:=B[i], но и оператор Imax:=I. Первый элемент может оказаться наибольшим, поэтому перед циклом наряду с оператором Bmax:=B[1], следует выполнить оператор Imax:=1.

Программа имеет вид:

PROGRAM max;

CONST N=17;

VAR Bmax: real;

I, Imax: INTEGER;

B: ARRAY [1..N] OF REAL;

BEGIN

FOR I:=1 TO N DO

READ (B[I]);

Bmax:=B[1]; Imax:=1;

FOR I:=2 TO N DO

IF B[I]>Bmax THEN

BEGIN

Bmax:=B [I];

Imax=I

END;

WRITE (Bmax, Imax)

END.