Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Первый семестр / Лабалаторная работа №1 / Лаболаторная работа №1 ИМС

.odt
Скачиваний:
1
Добавлен:
28.05.2022
Размер:
119.04 Кб
Скачать

МИНОБРНАУКИ РОССИИ

Санкт-Петербургский государственный

электротехнический университет

«ЛЭТИ» им. В.И. Ульянова (Ленина)

Кафедра Математического обеспечения и применения ЭВМ

отчет

по лабораторной работе №1

по дисциплине «Информационные модели и системы»

Тема: Вычисление значения функции с вводом двух переменных

Студент гр. 8802

Попов А.П.

Преподаватель

Сидоров Ю.Н.

Санкт-Петербург

2018

СОДЕРЖАНИЕ

Содержательная постановка задачи..................................................................................................2

Формальная постановка задачи.........................................................................................................3

Алгоритмизация..................................................................................................................................4

Типы структур данных.......................................................................................................................5

Текст программы................................................................................................................................5

Примеры выполнения программы в содержательной постановке................................................6

1

Содержательная постановка задачи

Требуется написать программу, вычисляющую значение выражения A=lg(³√(x)+√(y)). Все переменные и результат должны быть в области вещественных чисел Примеры решения задачи (все иррациональные числа представлены с точностью до трех знаков после запятой):

1. x=125; y=25. 2. x=-125; y=25.

A=lg(³√(125)+√(25))=lg(10)=1. A=lg(³√(-125)+√(25))=lg(0).

Десятичный логарифм от 0 не определен.

3. x=22; y=-25.

A=lg(³√(22)+√(-25)).

Квадратный корень из отрицательного числа не входит во множество вещественных чисел.

4. x=-49; y=-42.

A=lg(³√(-49)+√(-42)).

Квадратный корень из отрицательного числа не входит во множество вещественных чисел.

5. x=10; y=31.

A=lg(³√(10)+√(31))=lg(2,154+5,568)=0,888.

6. x=-36; y=8.

A=lg(³√(-36)+√(8))=lg(-3,302+2,828).

Десятичный логарифм из отрицательного числа не определен.

7. x=88; y=0. 8. x=14; y=14.

A=lg(³√(88)+√(0))=lg(4,448)=0,648. A=lg(³√(14)+√(14))=lg(2,41+3,741)=0,789.

9. x=7; y=24.

A=lg(³√(88)+√(0))=lg(1,192+4,899)=0,833.

10. x=30; y=42.

A=lg(³√(30)+√(42))=lg(3,107+6,48)=0,981.

2

Формальная постановка задачи

Дано: x,y ∈ ℝ

Найти: a ∈ ℝ, где a=lg(³√(x)+√(y))

Область значений отображения: a ∈ ℝ

Область определения отображения: a(x,y)={x,y|(x,y ∈ ℝ) ^ (y≥0) ^ (³√(x)+√(y)>0)}

3

Алгоритмизация

Сообщения, выводимые на экран, сокращены.

4

Типы и структуры данных

x- переменная вещественного типа, первая вводимая пользователем переменная

y- переменная вещественного типа, вторая вводимая пользователем переменная

AR — переменная вещественного типа. Вычисляемая в программе переменная.

если x≥0, то AR=(³√(x)+√(y)),

если x<0, то AR=(-³√(x)+√(y)).

A - переменная вещественного типа. Является результатом, который необходимо вычислить. A = lg(AR).

Текст программы.

program lab1;

var A,x,y,AR:real; {A - результат. x и y вводятся пользователем. AR - Accectable Range,переменная для проверки соответствия ОДЗ}

begin

{Приглашение на ввод начальных данных}

writeln ('Введите переменные x и y для вычисления значения A=lg((x)^1/3+√(y)). Переменные x и y вещественного типа:');

{Ввод данных}

write ('Переменная x->'); readln (x);

write ('Переменная y->'); readln (y);

{Проверка ОДЗ}

if (y<0) then writeln ('Решение лежит в области комплексных чисел') else

{при y<0 будет попытка вычислить квадратный корень из отрицательного числа, что невозможно во множестве вещественных чисел}

begin

if (x<0) then AR:=-(power(-x,1/3))+sqrt(y) else AR:=(power(x,1/3))+sqrt(y);

{Всегда можно вычислить корень третьей степени из отрицательного числа, но в связи с реализацией функции power, в Pascal это невозможно. Для обхода ограничения можно вычислить корень третьей степени из положительного числа, а позже сменить знак}

if (AR<=0) then writeln ('Выражение (x)^1/3+√(y)<=0. Невозможно вычислить lg(a), где a=0 или a<0')

{Вычисление и вывод результата}

else begin

A:=log10(AR); {Вычисление A. log10(выражение) - то же самое что и l g(выражение)}

writeln ('Значение A=',A);

end

end

end.

5

Примеры выполнения программы в содержательной постановке

1. Ввод: x=125; y=25.

Вывод: «Значение A=1»

2. Ввод: x=-125; y=25.

Вывод: «Выражение (x)^1/3+√(y)<=0. Невозможно вычислить lg(a), где a=0 или a<0»

3. Ввод: x=22, y=-25

Вывод: «Решение лежит в области комплексных чисел»

4. Ввод: x=-49; y=-42.

Вывод: «Решение лежит в области комплексных чисел»

5. Ввод: x=10; y=31.

Вывод: «Значение A=0.887740992113899»

6. Ввод: x=-36; y=8.

Вывод: «Выражение (x)^1/3+√(y)<=0. Невозможно вычислить lg(a), где a=0 или a<0»

7. Ввод: x=88; y=0.

Вывод: «Значение A=0.648160890716723»

8. Ввод: x=14; y=14.

Вывод: «Значение A=0.789002183115859»

9. Ввод: x=7; y=24.

Вывод: «Значение A=0.833268943973193»

10. Ввод: x=30; y=42.

Вывод: «Значение A=0.981726811634655»

6

Соседние файлы в папке Лабалаторная работа №1