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



Program Example_11;

Var  k, n, znak : integer; x, S, sl, st, E : real;

Begin

writeln;

write(‘Введите значение х = ‘);

read(х);

write(‘Введите количество слагаемых суммы  N = ‘);

read(n);

write(‘Введите точность вычисления суммы  Е = ‘);

read(Е);

S := 0;

znak := 1;

st := 1;

For k := 1 to n do begin

st := st*x;

S := S + znak*cos(k*x) / sqr(2*k-1) / st;

znak := - znak

end;

writeln(‘Вариант а) S = ’, S:6:5);

S := 0;

znak := 1;

st := 1;

k := 1;

repeat

st := st*x;

sl := cos(k*x) / sqr(2*k-1) / st;

S := S + znak * sl;

k := k + 1;

znak := - znak

until abs(sl) < E;

writeln(‘Вариант б) S = ’, S:6:5);

readln

end.

Данные для тестирования

1) Для x = 1,  n = 3, Е = 0,04

2) Для x = 2, n = 4, Е = 0,0005     

Для вычисления значений подобных выражений и подбора подходящих значений переменной х очень удобно пользоваться электронными таблицами Excel (рисунок 5.1).

Рисунок 5.1 – Вычисление отдельных слагаемых и суммы в Microsoft Excel

ЗАДАЧИ С ИСПОЛЬЗОВАНИЕМ МАССИВОВ

Массивом называется тип данных, состоящий из фиксированного числа элементов, имеющих один и тот же тип. Каждый элемент массива имеет свой номер (индекс) для одномерных массивов и совокупность номеров для многомерных. Индексы представляют собой выражения, чаще всего целого типа.

Все задачи этой темы делятся на два подраздела: лёгкие задачи и задачи средней сложности. Поскольку, при работе с массивом количество элементов в нём известно по условию задачи, то для обработки массивов наиболее часто используется оператор цикла с параметром (for).   

Приведём примеры решения задач с использованием массивов.

Пример 6.1. Дан целочисленный массив А размера N. Вывести все содержащиеся в данном массиве четные числа, расположенные на нечетных местах в порядке возрастания их индексов, а также их количество K.

Решение задачи

Выберем схему решения поставленной задачи.

После того как будут введены элементы массива, с помощью оператора цикла с параметром (for) и условного оператора организуем проверку номера элемента на нечетность и значения элемента на четность. Для этого можно воспользоваться стандартной функцией языка Паскаль odd(x), которая возвращает истину, если х – нечетно, и ложь, если х – четное.

Если обозначить i – номер очередного элемента массива, тогда заданное в задаче условие можно записать с помощью логического выражения:

odd(i) and (not odd(abs(A[i])))

Если результатом этого выражения будет истина, то к переменной K прибавляем 1 и такой элемент массива выводим на экран. По окончании цикла на экран выводим получившееся К.

Блок-схема алгоритма – представлена на рисунке 6.1.

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

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.


Дата добавления: 2018-04-04; просмотров: 182;