- •Содержание
- •Пример оформления работы
- •Задание 2.
- •If (c In ['0'..'9']) Then {если очередной элемент - цифра}
- •Val(s,k,error); {преобразуем строку в число}
- •Задания на лабораторную работу №5
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 12
- •Вариант 13
- •Вариант 14
- •Вариант 15
- •Задание 2.
- •Задания на лабораторную работу №6
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 12
- •Вариант 13
- •Вариант 14
- •Вариант 15
- •Вариант 16
- •Вариант 17
- •Вариант 18
- •Вариант 19
- •Вариант 20
- •Задание 2.
- •Задания на лабораторную работу №7
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 14
- •Вариант 15
- •Задание 2.
- •Задания на лабораторную работу №8
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 12
- •Вариант 13
- •Вариант 14
- •Вариант 15
- •Задание 2.
- •Задания на лабораторную работу №9
Пример оформления работы
1. Составить алгоритм и написать код программы, вычисляющей значения суммы ряда S при заданных с консоли начальном и конечном значениях аргумента x (x_nach, x_kon), шаге его изменения delta_x и точности вычислений eps. Вычисленные значения ряда сравнить со значениями функции f=cos(x). Результаты вычислений вывести в виде таблицы с заголовком.
- разложение функции cos(x) в ряд Тейлора.
Накопление суммы производим по рекуррентной формуле – каждая последующая сумма вычисляется через предыдущую:
Общий вид слагаемого суммы может быть записан в следующем виде:
Для сокращения объема вычислений выразим его через предыдущее слагаемое:
Сомножитель , называемый переходным коэффициентом, можно определить из предыдущего соотношения:
Раскроем эту формулу:
Тогда текущий член ряда будет вычисляться по формуле:
Начальное значение находим подстановкой в формулу для общего члена значения n=0:
Начальное значение суммы можно принять равным первому члену ряда, то есть . Учитывая, что значение текущего члена ряда и суммы при n=0 уже определены, номер члена ряда n примем равным единице.
Задачу решим вложенными циклами:
-
во внешнем цикле – цикле с постусловием – будем изменять значение аргумента от начального до конечного с заданным шагом,
-
во внутреннем цикле – цикле с предусловием – будем определять значение суммы ряда с заданной точностью для отдельных точек – значений аргумента.
-
Схема алгоритма решения задачи:
-
Код программы:
Program Variant_0;
Uses WinCRT;
Var x, s, f, x_nach, x_kon, delta_x, eps, t: Real;
n: Word;
Begin
WriteLn('Лабораторная работа №3');
WriteLn('Вариант №0');
WriteLn('ИС-11-1');
WriteLn('Пупкин Василий');
WriteLn;
{ввод исходных данных}
WriteLn(‘Ввод исходных данных:’);
Write('x_nach=');
ReadLn(x_nach);
Write('x_kon=');
ReadLn(x_kon);
Write('delta_x=');
ReadLn(delta_x);
Write('eps=');
ReadLn(eps);
WriteLn;
{эхо-печать}
WriteLn('Для x=', x_nach:0:3, ' до ', x_kon:0:3, ' шаг=', delta_x:0:3, ' точность=', eps:0:5);
WriteLn;
WriteLn(' x n s f');
WriteLn('-----------------------------------');
x:=x_nach;
Repeat
{внешний цикл – изменение аргумента}
t:=1.0; {первое слагаемое}
s:=1.0; {начальное значение суммы}
n:=1;
f:=cos(x); {точное значение суммы}
While (Abs(t)>eps) Do
{внутренний цикл – вычисление суммы ряда в отдельной точке}
Begin
t:=-t*x*x/(2.0*n*(2.0*n-1.0)); {очередное слагаемое}
s:=s+t; {очередная сумма}
n:=n+1;
End;
WriteLn(x:0:3, ' ', n:3, ' ', s:0:6, ' ', f:0:6);
x:=x+delta_x; {изменение значения аргумента}
Until(x>x_kon);
End.
-
Компиляция, отладка, тестирование и получение результата:
Задания на лабораторную работу №3
Вычислить значения суммы ряда S при заданных с консоли начальном и конечном значениях аргумента x (x_nach, x_kon), шаге его изменения delta_x и точности вычислений eps. Вычисленные значения ряда сравнить со значениями заданной функции f(x). Результаты вычислений вывести в виде таблицы с заголовком.
Вариант 1
Вариант 2
Вариант 3
Вариант 4
Вариант 5
Вариант 6
Вариант 7
Вариант 8
Вариант 9
Вариант 10
Вариант 11
Значения переменных a и x ввести с консоли:
Вариант 12
Вариант 13
Вариант 14
Вариант 15
Лабораторная работа № 4
Циклы с параметром
Тема: Программирование алгоритмов циклической структуры.
Цель работы: Освоить программирование циклических алгоритмов с циклами с параметром. Освоить программирование циклических алгоритмов с вложенными циклами.
Задание на лабораторную работу
-
Получить задание в соответствии с номером своего варианта.
-
Составить схему алгоритма решения задачи.
-
Написать код программы на языке Паскаль в среде Borland Pascal for Windows.
-
Осуществить компиляцию, отладку и тестирование программы.
-
Получить результат.
-
Оформить отчет по лабораторной работе.
Пример оформления работы
Задание 1.
1. Для заданного с консоли значения n определить сумму числового ряда:
Результаты вычислений вывести в виде таблицы с заголовком. Вычисленные значения ряда сравнить со значением функции f=e.
Накопление суммы производим по рекуррентной формуле – каждая последующая сумма вычисляется через предыдущую:
Общий вид слагаемого суммы может быть записан в следующем виде:
Для сокращения объема вычислений выразим его через предыдущее слагаемое:
Сомножитель , называемый переходным коэффициентом, можно определить из предыдущего соотношения:
Раскроем эту формулу:
Тогда текущий член ряда будет вычисляться по формуле:
Начальное значение находим подстановкой в формулу для общего члена значения n=0:
Начальное значение суммы можно принять равным первому члену ряда, то есть . Учитывая, что значение текущего члена ряда и суммы при n=0 уже определены, номер члена ряда n примем равным единице.
-
Схема алгоритма решения задачи:
-
Код программы:
Program Variant_0;
Uses WinCRT;
Var s, f, t: Real;
i, n: Word;
Begin
WriteLn('Лабораторная работа №4_1');
WriteLn('Вариант №0');
WriteLn('ИС-11-1');
WriteLn('Пупкин Василий');
WriteLn;
{ввод исходных данных}
WriteLn('Ввод исходных данных:');
Write('n=');
ReadLn(n);
WriteLn;
WriteLn('----------------');
WriteLn(' i s');
WriteLn('----------------');
t:=1.0;
s:=1.0;
f:=exp(1.0);
For i:=1 To n Do
Begin
t:=t/i; {очередное слагаемое}
s:=s+t; {очередная сумма}
WriteLn(i:3, ' ', s:0:6);
End;
WriteLn('----------------');
WriteLn;
WriteLn(' f=',f:0:6);
End.
-
Компиляция, отладка, тестирование и получение результата: