{
$temp = 1.0; //первое слагаемое
$s = 1.0; //начальное значение суммы
$n = 1; //количество итераций на каждом шаге
$f = cos($x); //точное значение функции
//внутренний цикл - вычисление суммы ряда
while (abs($temp) > $eps)
{
//очередное слагаемое
$temp *= - $x * $x / (2.0 * $n * (2.0 * $n - 1.0));
$s += $temp; //очередная сумма
$n++; //количество итераций
}
echo"<br>";
printf("%5.3f%'.7d%'.15.6f%'.15.6f", $x, $n, $s, $f);
$x += $delta_x; //увеличение аргумента на шаг delta_x
}
while ($x <= $x_kon);
echo "<br>-----------------------------------------";
}
?>
</body>
</html>
- Компиляция, отладка, тестирование и получение результата:
Задания на лабораторную работу №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
Вариант 16
f(x)=
Вариант 17
(-π<x<π)
f(x)=
Вариант 18
f(x)=
Вариант 19
f(x)=
Вариант 20
f(x)=
Лабораторная работа № 4
Циклы с параметром
Тема: Программирование алгоритмов циклической структуры.
Цель работы: Освоить программирование циклических алгоритмов с циклами с параметром. Освоить программирование циклических алгоритмов с вложенными циклами. Освоить методы тестирования программ.
Задание на лабораторную работу
- Получить задание в соответствии с номером своего варианта.
- Составить схему алгоритма решения задачи.
- Написать код программы на языке Паскаль в среде Borland Pascal for Windows.
- Осуществить компиляцию, и отладку программы. Провести структурное тестирование программы (тестирование как белого ящика): составить тестовые наборы для тестирования
- в нормальных условиях,
|
- при граничных условиях,
- при некорректных входных данных,
- по критерию покрытия решений – результат проверки каждого условия принимал значение истина или ложь хотя бы один раз,
- по критерию покрытия условий – все возможные результаты каждой логической операции в условиях были получены хотя бы по одному разу.
- Получить результат.
- Оформить отчет по лабораторной работе.
Пример оформления работы
Задание 1.
1. Для заданного с консоли значения n определить сумму числового ряда:
Результаты вычислений вывести в виде таблицы с заголовком. Вычисленные значения ряда сравнить со значением функции f=e.
Накопление суммы производим по рекуррентной формуле – каждая последующая сумма вычисляется через предыдущую:
Общий вид слагаемого суммы может быть записан в следующем виде:
Для сокращения объема вычислений выразим его через предыдущее слагаемое:
Сомножитель , называемый переходным коэффициентом, можно определить из предыдущего соотношения:
Раскроем эту формулу:
Тогда текущий член ряда будет вычисляться по формуле:
Начальное значение находим подстановкой в формулу для общего члена значения n=0:
Начальное значение суммы можно принять равным первому члену ряда, то есть . Учитывая, что значение текущего члена ряда и суммы при n=0 уже определены, номер члена ряда n примем равным единице.
|
2. Схема алгоритма решения задачи:
3. Код программы
3.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.
3.2. На языке Си:
#include <stdio.h> //директивы препроцессора
#include <conio.h>
#include <math.h>
Int main()
{