- •Программирование на языке паскаль
- •Введение
- •2.4. Контрольные задания
- •Лабораторная работа № 3 Условный оператор If
- •3.1. Цели работы
- •3.2. Краткие теоретические сведения
- •3.3. Примеры решения типовых задач
- •3.4. Контрольные задания
- •4.3. Примеры решения типовых задач
- •4.4. Контрольные задания
- •5.3. Примеры решения типовых задач
- •5.4. Контрольные задания
- •6.3. Примеры решения типовых задач
- •6.4. Контрольные задания
- •7.4. Контрольные задания
- •Лабораторная работа № 8
- •8.4. Контрольные задания
- •Простые типы данных языка паскаль
- •Целые типы данных
- •Действительные (вещественные) типы данных
- •Функции для величин порядкового типа
- •Функции преобразования типа
- •Логические операции. Арифметические операции и функции
- •Логические операции
- •Арифметические операции
- •Арифметические функции
- •Приоритеты действий при вычислении выражений
- •Структура программы
- •Программирование на языке паскаль
- •394006 Воронеж, ул. 20-летия Октября, 84
6.3. Примеры решения типовых задач
1. Вычислить значения квадратного корня из числа Х по итерационной формуле Ньютона Yi+1 = (Yi + X / Y i ) / 2 с точностью |Yi+1 – Yi| ≤ ε . Начальное приближение Y0 = A является параметром.
program Example_6_3_1;
uses
WinCrt;
var
X : Real; { аргумент }
A : Real; { начальное приближение }
Y0 : Real; { предыдущее приближение }
Y1 : Real; { очередное приближение }
Eps : Real; { точность вычисления }
begin
WriteLn(' Введите значения A, Eps, X ');
ReadLn(A, Eps, X);
if X > 0 then
begin
Y1 := A;
repeat
Y0 := Y1;
Y1 := (Y0 + X / Y0) / 2;
until Abs (Y1 – Y0) < Eps;
WriteLn (' Y1= ', Y1:7:5 , ' при X= ', X:5:2);
end
else WriteLn (' Число ', X:5:2, ' меньше нуля ');
end.
2. Для заданного x проверить справедливость следующего разложения:
и оценить скорость сходимости, найдя число слагаемых, необходимое для достижения заданной погрешности ε.
(Здесь , n! = 1. 2. 3 .... n ).
program Example_6_3_2;
uses
WinCrt;
const
Limit = 100; {ограничение на число шагов}
var
x, Eps, y, s, u : Real;
n : Integer;
begin
WriteLn (' Задай аргумент x и погрешность 0<Eps<=1 ');
ReadLn (x, eps);
y := Ехр(– х); { левая часть }
u := 1; { первое слагаемое }
s := u; { частичная сумма }
n := 0; { число шагов }
repeat
u := – x / (n + 1) * u; { очередное слагаемое }
s := s + u;
n := n + 1;
until (Abs (y – s) <= Eps) or (n >= Limit);
if n >= Limit then
WriteLn (n, ' шагов не хватило для достижения точности ', Eps)
else
begin
WriteLn (' Левая часть: ', y:15:12);
WriteLn (' Правая часть: ', s:15:12);
WriteLn (' Погрешность ' , Eps:10:6, ' достигнута за ', n, ' шагов');
end;
end.
6.4. Контрольные задания
1. Найти как предел последовательности , где , а каждое следующее получается из предыдущего по формуле:
2. При некоторых заданных x, N и E, определяемых вводом, вычислите сумму N слагаемых заданного вида, а также сумму тех слагаемых, которые по абсолютной величине больше E. Для второго случая выполните суммирование для двух значений E, отличающихся на порядок, и при этом определите количество слагаемых, включенных в сумму. Сравните результаты с точным значением функции, для которой данная сумма определяет приближенное значение при x, лежащем в интервале (–R, R).
.
3. Пусть дано натуральное число n. Найдите наименьшее среди чисел
4. Пусть дано натуральное число n. Найдите , где ,
5. Проверить численно замечательные пределы:
a) первый: , задавая значения до тех пор, пока исследуемое выражение будет отличаться от 1 менее, чем на заданную величину погрешности .
b) второй: , задавая значения При каком n исследуемое выражение будет отличаться от е менее, чем на заданную величину погрешности ?
Лабораторная работа № 7
Одномерные массивы
7.1. Цели работы
Научиться правильно описывать одномерные массивы, уметь инициализировать массивы, распечатывать содержимое массива. Научиться решать задачи на использование одномерных массивов.
7.2. Краткие теоретические сведения
Массив – это структурированный тип данных, который используется для описания упорядоченной совокупности фиксированного числа элементов одного типа, имеющих общее имя. Для обозначения элементов массива используются имя переменной-массива и индекс.
Перед выполнением работы необходимо изучить правила описания и использования переменных типа массив, типизированных констант типа массив.
7.3. Примеры решения типовых задач
1. Дан массив X(N), Получить новый массив Y(N) такой, что в нем сначала идут положительные числа, затем нулевые, и затем отрицательные из X.
program Example_7_3_1;
uses
WinCrt;
var
N, i, k : Integer;
X, Y: array [1 .. 20] of Real;
begin
Write (' Введите N = ');
ReadLn (N);
for i := 1 to N do
begin
Write (' X [ ', i, ' ] = ');
ReadLn (X [i])
end;
k := 0;
for i := 1 to N do
if X [i] > 0 then
begin
k := k + 1;
Y [k] := X [i]
end;
for i := 1 to N do
if X [i] = 0 then
begin
k := k + 1;
Y [k] := X [i]
end;
for i := 1 to N do
if X [i] < 0 then
begin
k := k + 1;
Y [k] := X [i]
end;
Write (' О т в е т : полученный массив ');
for i := 1 to N do
Write (Y [i] : 5 : 1, ' ':1);
end.
2. Найти наибольший элемент числового массива A = (a1, a2 , ... , aN ), и его номер.
program Example_7_3_2;
uses
WinCrt;
type
Mas = array [1 .. 20] of Real;
var
A: Mas;
i, N, imax: Integer;
Amax : Real;
begin
Write (' Введите N = ');
ReadLn (N); { ввод количества элементов массива А }
Write (' Введите элементы массива A ');
for i := 1 to N do
begin
Write (' A [ ', i , ' ] = ');
ReadLn (A [i]) { ввод значений элементов массива А }
end;
{ Поиск максимального элемента }
Amax := A [1];
imax := 1; { номер элемента с максимальным значением }
for i := 2 to N do
if A [i] > Amax then
begin
Amax := A [i];
imax := i
end;
WriteLn;
{ Вывод результата }
WriteLn (' Наибольший элемент ' , imax , ' -й ');
WriteLn (' Его значение ', Amax : 5 : 1);
end.