- •Иркутский государственный университет путей сообщения
- •Содержание
- •Лабораторная работа № 1 Выражения и операторы присваивания
- •Задание на лабораторную работу
- •Пример оформления работы
- •Задания на лабораторную работу №1
- •Пример оформления работы
- •Задания на лабораторную работу №2
- •Пример оформления работы
- •Int n; // целого типа
- •Задания на лабораторную работу №3
- •Пример оформления работы Задание 1.
- •Int n; // целого типа
- •Задание 2.
- •Int a, a1, a2, k, n, s; //описание переменных
- •Int a, a1, a2, n, s; // целого типа
- •Задания на лабораторную работу №4
- •Пример оформления работы
- •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
- •Лабораторная работа № 6 Массивы
- •Задание на лабораторную работу
- •Пример оформления работы Задание 1.
- •Int n, vector_min, vector_max, min, max, i_min, i_max; String input, text; // строк класса String
- •Задание 2.
- •Int n, massiv_min, massiv_max, temp; // целого типа
- •Задания на лабораторную работу №6
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 12
- •Вариант 13
- •Вариант 14
- •Вариант 15
- •Вариант 16
- •Вариант 17
- •Вариант 18
- •Вариант 19
- •Вариант 20
- •Лабораторная работа № 7 Подпрограммы
- •Задание на лабораторную работу
- •Пример оформления работы Задание 1.
- •Задание 2.
- •Задания на лабораторную работу №7
- •Вариант 1
- •Вариант 15
- •Лабораторная работа № 8 Файлы
- •Задание на лабораторную работу
- •Пример оформления работы Задание 1.
- •Задание 2.
- •Задания на лабораторную работу №8
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 12
- •Вариант 13
- •Вариант 14
- •Вариант 15
- •Лабораторная работа № 9 Рекурсия
- •Задание на лабораторную работу
- •Пример оформления работы Задание 1.
- •Задание 2.
- •Задания на лабораторную работу №9
Пример оформления работы
1. Составить алгоритм и написать код программы, вычисляющей значения суммы ряда S при заданных с консоли начальном и конечном значениях аргумента x (x_nach, x_kon), шаге его изменения delta_x и точности вычислений eps. Вычисленные значения ряда сравнить со значениями функции f=cos(x). Результаты вычислений вывести в виде таблицы с заголовком.
- разложение функцииcos(x)в ряд Тейлора.
Накопление суммы производим по рекуррентнойформуле – каждая последующая сумма вычисляется через предыдущую:
Общий вид слагаемого суммы может быть записан в следующем виде:
Для сокращения объема вычислений выразим его через предыдущее слагаемое:
Сомножитель , называемыйпереходным коэффициентом, можно определить из предыдущего соотношения:
Раскроем эту формулу:
Тогда текущий член ряда будет вычисляться по формуле:
Начальное значение находим подстановкой в формулу для общего членазначенияn=0:
Начальное значение суммы можно принять равным первому члену ряда, то есть . Учитывая, что значение текущего члена ряда и суммы приn=0 уже определены, номер члена рядаn примем равным единице.
Задачу решим вложенными циклами:
во внешнемцикле – цикле с постусловием – будем изменять значение аргумента от начального до конечного с заданным шагом,
во внутреннемцикле – цикле с предусловием – будем определять значение суммы ряда с заданной точностью для отдельных точек – значений аргумента.
Схема алгоритма решения задачи:
Код программы
3.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.
3.2. На языке Си:
#include <stdio.h> //директивы препроцессора
#include <conio.h>
#include <math.h>
int main()
{
//описание переменных
float x, s, f, x_nach, x_kon, delta_x, eps, temp;
int n;
printf("\nЛабораторная работа №3");
printf("\nВариант №0");
printf("\nПО-11-1");
printf("\nПупкин Василий\n");
printf("\nВвод исходных данных:\n"); //ввод исходных данных
printf("\nx_nach=");
scanf("%f", &x_nach); //начальное значение аргумента
printf("\nx_kon=");
scanf("%f", &x_kon); //конечное значение аргумента
printf("\ndelta_x=");
scanf("%f", &delta_x); //шаг изменения аргумента
printf("\neps=");
scanf("%f", &eps); //точность вычислений
//эхо-печать
printf("\nДля x=%5.3f до %5.3f с шагом $5.3f и точностью %5.3f\n", x_nach, x_kon, delta_x, eps);
printf("\n x n s f");
printf("\n--------------------------------------");
x = x_nach;
do //внешний цикл - изменение аргумента
{
temp = 1.0; //первое слагаемое
s = 1.0; //начальное значение суммы
n = 1; //количество итераций на каждом шаге
f = cos(x); //точное значение функции
//внутренний цикл - вычисление суммы ряда
while (fabs(temp) > eps)
{
//очередное слагаемое
temp *= - x * x / (2.0 * n * (2.0 * n - 1.0));
s += temp; //очередная сумма
n++; //количество итераций
}
printf("\n%5.3f %d %0.6f %0.6f", x, n, s, f);
x += delta_x; //увеличение аргумента на шаг delta_x
}
while (x <= x_kon);
printf("\n--------------------------------------");
return 0;
}
На языке Java:
package javaapplication3;
// Импорт библиотеки графических компонентов Swing
import javax.swing.*;
import java.util.*;
public class JavaApplication3 // задание нового класса
{
// описание главного метода main этого класса
public static void main(String[] args)
{
//описание переменных:
// действительного типа
Double x, s, f, x_nach, x_kon, delta_x, eps, temp;