Табулирование функции и вычисление бесконечного ряда
Автор: George Tihomirov • Февраль 10, 2019 • Лабораторная работа • 24,639 Слов (99 Страниц) • 1,329 Просмотры
Министерство образования и науки Российской Федерации
ГОУ ВПО «Ярославский государственный технический университет»
кафедра «Информационные системы и технологии»
Отчет защитил с оценкой: ________________ Руководитель, доцент: __________В.К. Маевский |
Контрольная работа
по дисциплине «Информатика»
Вариант №17
ЯГТУ 09.03.02 ЗИС (230201.65)
Работу выполнил студент группы ДСИТ-27 Тихомиров Г.Г «10» февраля 2018 г. | ||
Лабораторная работа №1
Тема: Табулирование функции и вычисление бесконечного ряда
- Составить программу вычисления и печати таблицы значений функции при заданных значениях параметров.
[pic 1]
1.1 Программный код:
public class Lab1 {
public static void task1() {
// значение кусочно- линейной функции высчитываются в цикле от начального
// значения в -4 до значения 1 с шагом 0.8
double a = -1.2137, b = -2.178, x = -4, deltaX = 0.8, t = 0;
while (x <= 1) {
if (a * x * x < b) {
t = Math.pow(Math.E, -2 * x) * Math.cos(a * x);
} else if ((a * x * x >= b) && (Math.abs(a) >= Math.pow(x, 3))) {
t = Math.log(Math.abs(a * a * x / Math.pow(b, 3)));
} else {
t = Math.pow(Math.atan(a * b * x * x), 2) - 4.7 - Math.sin(Math.abs(a - x));
}
System.out.println("x = " + x + "; t = " + t);
x += deltaX;
}
}
// функция факториал
public static int fact(int n) {
if (n == 0)
return 1;
else {
return n * fact(n - 1);
}
}
1.2 Результат выполнения программного кода:
[pic 2]
- Составить программу вычисления и печати таблицы значений функции, которая является суммой бесконечного ряда.
Для заданных значений аргумента Х вычислить значения суммы S и функции Y или Z. Вычисление S произвести с точностью E.
[pic 3]
2.1 Программный код:
public static void task2() {
double x = 0.2, deltaX = 0.05, eps = Math.pow(10, -4), S, deltaS;
int n,k = 1;
while (x <= 0.8) {
S = 0;
n = 1;
System.out.println("Сумма для значения x"+k);
do {
deltaS = (n + Math.pow(x, 4))/Lab1.fact(2*n + 1);
S += deltaS;
System.out.println("Значение суммы "+S);
n++;
} while (deltaS > eps); // цикл продолжается до тех пор
// пока значение приращения суммы будет меньше епсилон
x += deltaX;
k++;
}
}
public static void main(String[] args) {
System.out.println("Task1");
Lab1.task1();
System.out.println("Task2");
Lab1.task2();
}
}
- Результат выполнения программного кода:
[pic 4]
Лабораторная работа №2
- Даны два одномерных целочисленных массива. Произвести поиск заданного значения в первом из них – методом последовательного перебора с использованием барьерного элемента, а во втором – бинарный поиск, предварительно отсортировав этот массив методом вставки. Первый массив отсортировать затем выбором наименьшего элемента. Произвести слияние полученных массивов.
[pic 5]
1.1 Программный код:
public class Lab2 {
public static Scanner sr = new Scanner(System.in);
public static void task1(){
int ASize = 10, BSize = 10, DSize = 10, searchInA, searchInB;
...