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

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

1. Составить алгоритм и написать код программы, вычисляющей значения суммы ряда S при заданных с консоли начальном и конечном значениях аргумента x (x_nach, x_kon), шаге его изменения delta_x и точности вычислений eps. Вычисленные значения ряда сравнить со значениями функции f=cos(x). Результаты вычислений вывести в виде таблицы с заголовком.

- разложение функции cos(x) в ряд Тейлора.

Накопление суммы производим по рекуррентной формуле – каждая последующая сумма вычисляется через предыдущую:

Общий вид слагаемого суммы может быть записан в следующем виде:

Для сокращения объема вычислений выразим его через предыдущее слагаемое:

Сомножитель , называемый переходным коэффициентом, можно определить из предыдущего соотношения:

Раскроем эту формулу:

Тогда текущий член ряда будет вычисляться по формуле:

Начальное значение находим подстановкой в формулу для общего члена значения n=0:

Начальное значение суммы можно принять равным первому члену ряда, то есть . Учитывая, что значение текущего члена ряда и суммы при n=0 уже определены, номер члена ряда n примем равным единице.

Задачу решим вложенными циклами:

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

  • во внутреннем цикле – цикле с предусловием – будем определять значение суммы ряда с заданной точностью для отдельных точек – значений аргумента.

  1. Схема алгоритма решения задачи:

  1. Код программы:

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.

  1. Компиляция, отладка, тестирование и получение результата:

Задания на лабораторную работу №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

Циклы с параметром

Тема: Программирование алгоритмов циклической структуры.

Цель работы: Освоить программирование циклических алгоритмов с циклами с параметром. Освоить программирование циклических алгоритмов с вложенными циклами.

Задание на лабораторную работу

  1. Получить задание в соответствии с номером своего варианта.

  2. Составить схему алгоритма решения задачи.

  3. Написать код программы на языке Паскаль в среде Borland Pascal for Windows.

  4. Осуществить компиляцию, отладку и тестирование программы.

  5. Получить результат.

  6. Оформить отчет по лабораторной работе.

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

Задание 1.

1. Для заданного с консоли значения n определить сумму числового ряда:

Результаты вычислений вывести в виде таблицы с заголовком. Вычисленные значения ряда сравнить со значением функции f=e.

Накопление суммы производим по рекуррентной формуле – каждая последующая сумма вычисляется через предыдущую:

Общий вид слагаемого суммы может быть записан в следующем виде:

Для сокращения объема вычислений выразим его через предыдущее слагаемое:

Сомножитель , называемый переходным коэффициентом, можно определить из предыдущего соотношения:

Раскроем эту формулу:

Тогда текущий член ряда будет вычисляться по формуле:

Начальное значение находим подстановкой в формулу для общего члена значения n=0:

Начальное значение суммы можно принять равным первому члену ряда, то есть . Учитывая, что значение текущего члена ряда и суммы при n=0 уже определены, номер члена ряда n примем равным единице.

  1. Схема алгоритма решения задачи:

  1. Код программы:

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.

  1. Компиляция, отладка, тестирование и получение результата: