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

9160

.pdf
Скачиваний:
0
Добавлен:
25.11.2023
Размер:
2.35 Mб
Скачать

Рис.1.7. Сохранение проекта

Рис.1.8. Указание пути сохранения проекта

5. Изменение способа ввода исходных данных (ввод с клавиатуры).

Для ввода данных с клавиатуры используйте функцию Console.ReadLine(). Примериспользования:

A = Val(Console.ReadLine()).

Здесь переменной A присваивается значение, введѐнное с клавиатуры. Функция Val() преобразует введѐнное с клавиатуры значение из текстового типа в числовой.

5.1.Самостоятельно измените текст программы так, чтобы все исходные данные вводились с клавиатуры.

5.2.Выполните сборку и запуск программы, введите исходные данные и сравните полученный результат с результатом, полученным в п.4.

ЛАБОРАТОРНАЯ РАБОТА №2

Тема: Разветвляющийся алгоритм. Вычисление суммы и произведения. Цель работы: составление программ нахождения суммы и произведения

kпервых членов числовой последовательности с использованием оператора условного перехода IF.

Варианты заданий лабораторной работы №2 приведены в таблице 2.1.

Задание (1 уровень)

1. Составить блок – схему алгоритма, находящего сумму k первых членов

последовательности ( ) при заданном k.

=1

2.Составить программу по подготовленной блок-схеме, взяв выражение для

общего члена последовательности и значения k из таблицы 2.1 в соответствии с номером своего варианта.

3.Ввести программу и выполнить ее три раза, чтобы получить решение для трех значений k, заданных в Таблице 2.1. Выписать с экрана полученные значения суммы и соответствующие значения k.

4.Повторить п.п. 1 – 3 для задачи нахождения произведения k первых

членов последовательности ( =1 ) при заданных значениях k. Выражение для общего члена последовательности и значения k взять из таблицы 2.1 в соответствии с номером своего варианта.

5.Выписать с экрана полученные значения произведения и соответствующие значения k.

 

 

 

Задание (2 уровень)

1.

Составить общую блок – схему алгоритма нахождения суммы kпервых

членов

последовательности

(

 

 

 

) и произведения k первых членов

 

 

 

 

=1

 

 

последовательности (

) при трех значениях k.

 

 

=1

 

 

 

 

 

2.

По общей блок-схеме составить программу так, чтобы за один запуск

программы была рассчитана сумма и произведение членов ряда при 3-х значениях kи результат был получен в виде:

S=

P=

приk = k1

S=

P=

приk = k2

S=

P=

приk = k3

3.Выход из программы или повторный ее запуск должны производиться по желанию пользователя с помощью ответа с клавиатуры. Выражение для

4.общего члена последовательности и , а также значения k взять из таблицы 2.1 в соответствии с номером своего варианта.

Задание (3 уровень)

Составить общую блок–схему алгоритма и программу для нахождения

суммы k первых членов последовательности (

 

 

 

) и произведения k

 

 

 

=1

 

 

первых членов последовательности (

 

) при М значениях k так, чтобы М

 

=1

 

 

 

 

 

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

S=

P=

приk = k1

S=

P=

приk = k2

…………………………………………………………………………………………………………

S= P= при k = kМ

Исходными данными программы должны быть начальное значение k – K1, количество М значений kи шаг изменения значенийk.

П р и м е р

Составить блок – схемы и программы вычисления суммы kпервых членов

последовательности

 

=

 

 

 

 

 

 

 

 

 

 

и

 

произведения kпервых членов

 

 

 

 

 

 

 

 

 

 

 

 

 

+1

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

последовательности

= (1 −

 

 

1

 

 

) для k=5, 10, 15.

 

 

 

 

 

+1 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

=

 

 

 

 

=

 

 

 

 

+

 

 

+ + (

 

 

)

 

 

 

+ 1 2

 

22

32

+ 1 2

 

=1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

1

 

1

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

=

(1 −

 

) =

 

 

1 −

 

 

1 −

 

 

… (1 −

 

)

+ 1 2

 

 

22

32

+ 1 2

=1

Порядок выполнения работы первого уровня

1. Составление блок-схемы алгоритма, находящего сумму k первых членов последовательности .

1.1. Входные данные:k– число слагаемых.

Выходные данные: S– сумма k слагаемых. 1.2. Блок – схема (рис. 2.1):

Рис. 2.1. Блок-схема алгоритма, вычисляющего сумму k первых членов последовательности

2.Составление программы по блок-схеме (рис. 2.1) из п.1.

2.1.Объявить переменные K и I целого типа (Integer) и переменную S – вещественного типа двойной точности (Double).

2.2.Вывести сообщение «Введите число слагаемых» (Console.WriteLine()).

2.3.Присвоить переменной K значение, введѐнное с клавиатуры (Console.ReadLine()), предварительно преобразовав его в число функцией Val().

2.4.Обнулить значение переменной S, приравнять к единице значение переменной I.

2.5.Вычислить значение переменной S.

2.6.Увеличить значение переменной I на единицу.

2.7.С помощью оператора IFпроверить - достигла ли переменная I значения K (I≤K). Если не достигла, то вернуться (Goto) к вычислению переменной S, иначе вывести на экран значения переменных Sи K.

Примечание: синтаксис оператора условия: IF<условие>THEN

<значение, если условие истинно>

ELSE

<значение, если условие ложно>

ENDIF

3.Выполнить программу для трѐх разных значений Kи выписать результаты в отчѐт.

4.Составление блок-схемы алгоритма, находящего произведение k первых членов

последовательности .

4.1 Входные данные: k - число сомножителей. Выходные данные: P– произведение kсомножителей.

4.2 Блок – схема (рис.2.2):

4.3Программу нахождения произведения k первых членов последовательности составить самостоятельно по аналогии с программой, описанной в п. 2.

4.4Выполнить программу для трѐх разных значений kи выписать результаты в отчѐт.

Пояснения к выполнению задания второго уровня

Выход из программы по запросу реализуется по приведѐнной блок-схеме

(рис. 2.3) с использованием функций Console.WriteLine(), Console.ReadLine(). В

случае использования текстового ответа («Да», «Нет») не забудьте указать тип проверяемой в условии переменной – String.

ЛАБОРАТОРНАЯ РАБОТА №3

Тема: Табулирование функции. Применение табулирования к решению уравнения f(x)=0.

Цель работы: составление программы табулирования функции y= f(x) и ее использование для нахождения корня уравнения f(x)=0 с заданной точностью.

Варианты заданий лабораторной работы №3 приведены в таблице 3.1.

Работа состоит из двух задач:

Задача 1. Найти таблицу значений функций y= f(x) на отрезке [a, b] с шагом h. Задача 2. Вычислить корень уравнения f(x) = 0 на отрезке [a, b] с точностью

=0,005.

Перед выполнением задания любого уровня необходимо проверить графически, что на заданном отрезке [a, b] находится корень уравнения. Если корня на заданном отрезке нет, то следует определить по графику новый отрезок, содержащий корень, и при решении задачи рассматривать его. График привести в отчѐте.

Задание (1 уровень)

1.Графически получить приближѐнное решение уравнения f(x) = 0. Уравнение взять из таблицы 3.1 в соответствии с номером своего варианта.

2.Составить блок-схему алгоритма табулирования функции f(x) на отрезке [a, b] с шагом h=0,1.

3.Составить программу табулирования функции f(x) на отрезке [a, b] с шагом h=0,1.

4.Ввести программу, выполнить еѐ, получить и выписать 11 пар значений

(x, y).

5.Для вычисления корня уравнения f(x) = 0 найти и выписать отрезок

[ , ], полученный в результатах табулирования, на концах которого f(x) имеет разные знаки.

6.Повторно запуская программу табулирования, получить таблицу значений функции f(x) на отрезке , с шагом h=0,1.

7.С экрана выписать новый отрезок [ , ], на концах которого функция f(x) имеет разные знаки. Вычислить середину этого отрезка 1 = ( + )/2 – это

ибудет приближѐнный корень уравнения f(x)=0, с точностью = 0,005.

8.Вычислить значение функции в корне. Выписать полученные результаты.

Задание (2 уровень)

1. Графически получить приближенное решение уравнения f(x) = 0. Уравнение взять из таблицы 3.1 в соответствии с номером своего варианта.

2. Изменить блок-схему задачи табулирования функции f(x), предусмотрев возможность повторного запуска алгоритма табулирования на новом интервале с новым шагом h ( = − /10). Выход из программы должен быть выполнен, если длина найденного интервала окажется меньше либо равна заданной погрешности ( − ≤ ).Перед выходом вычислить корень уравнения как середину последнего отрезка и значение функции в корне.

3.Составить программу табулирования f(x) на [a, b] с шагом hпо новой блок-схеме.

4.Запустить программу, получить результаты по табулированию функции f(x) последовательно на данном интервале [a, b] с шагом h=0,1 и на каждом новом

интервале [ , ], где функция меняет знак на противоположный, с шагом

= − /10.

5.С экрана выписать результаты табулирования на первом интервале, а для последующих результатов – выписывать две строки, где функция меняет свой знак. Выписать корень уравнения и значение функции в корне.

Задание (3 уровень)

1.Графически получить приближѐнное решение уравнения f(x) = 0. Уравнение взять из таблицы 3.1 в соответствии с номером своего варианта.

2.Составить блок-схему и программу, реализующие алгоритм вычисления корня уравнения f(x)=0 на интервале [a, b] с заданной точностью . Для нахождения корня использовать алгоритм табулирования функции f(x),

последовательно уменьшая в 10 раз интервал поиска [ , ], где

 

< 0

 

 

 

 

 

 

 

 

 

пока не выполнится условие:

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

Замечания:

 

 

 

 

 

 

 

 

а) на каждом отрезке ,

 

проводить не более 10 вычислений значений

 

 

 

 

 

 

 

 

 

 

функции f(x);

 

 

 

 

 

 

 

 

 

б) приближенным решением уравнения считать середину последнего

отрезка 1 = ( + )/2.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3. Ввести

программу,

выполнить еѐ и получить

результат.

На

экран

вывести границы каждого нового интервала поиска корня, корень уравнения, заданную точность и значение функции в корне.

П р и м е р

Задача 1.Найти таблицу значений функций y= f(x) на отрезке [a, b] с шагом h=0.1,

где = lg − 2, a=1, b=2.

Задача 2. Найти корень уравнения f(x) = 0 на отрезке [a, b] с точностью

= 0.005.

Порядок выполнения задания (1 уровень)

1. Решение уравнения графическим методом.

1.1. Проверим графически, что на заданном отрезке [a, b] есть корень уравнения f(x)= 0, т.е.

− 2= 0.

(1)

Перепишем уравнение (1): = 2

 

Построим два графика 1 = и

2 = 2(рис. 3.1)

Графики пересекаются друг с другом в точке М. Абсцисса точки М (X*)– есть корень уравнения − 2= 0.

1.2.Если на заданном в условии отрезке графики не пересекаются, то это означает, что данный отрезок не содержит корня уравнения. В этом случае следует определить по графику новый отрезок, содержащий корень, и при решении задачи рассматривать его.

2.Составление блок-схемы задачи табулирования.

2.1.Входные данные: a, b – границы отрезка, h - шаг.

Выходные данные: 11 пар значений (x, y).

2.2.Блок – схема (рис. 3.2):

Рис. 3.2. Блок-схема алгоритма табулирования

3. Составление программы по блок-схеме из п.2.

3.1. Объявить переменные A, B, H, Y, Xодинарной точности вещественного типа (Single).

3.2.Запросить ввод исходных данных с клавиатуры (Console.WriteLine()).

3.3.Открыть цикл для вычисления значения функции Yдля аргумента X, изменяющегося от Aдо B с шагом H (ForX = ATo В StepH).

3.4.В цикле вычислить и вывести на экран значение функции Y(X) и соответствующего аргумента X.

3.5.Закрыть цикл (NextX) и завершить программу.

4.Выполнить программу и выписать результаты в отчѐт (по аналогии с рис. 3.3).

x = 1

y = - 0.5

x = 1.1

y = - 0.425

x = 1.2

y = - 0.356

x = 1.3

y = - 0.292

x = 1.4

y = - 0.232

x = 1.5

y = - 0.177

x = 1.6

y = - 0.126

x = 1.7

y = - 0.77

x = 1.8

y = - 0.032

x = 1.9

y = 1.08 E-02

x = 2

y = 5.10 E-02

Рис. 3.3. Результаты: 11 пар значений (x, y)

5.Из таблицы значений, полученной в п.4, найти и выписать отрезок, на котором функцияf(x) меняет свой знак. В данном случае это отрезок [1.8, 1.9], т.к. f(1.8)<0, а f(1.9)>0.

6.На найденном отрезке [1.8, 1.9] запустить программу табулирования функции f(x) с шагом h =0.01.

7.Из полученных результатов найти и выписать две строки, где функция f(x) меняет знак:

x = 1.87

y = - 1.732Е-08

f(x) <0

x = 1.88

y= 2.474Е-03

f(x) >0

8. Вычислить середину выбранного отрезка [1.87, 1.88]: X1=(1.87+1.88)/2 = 1.875 и значение функции в корне X1: у = ( 1) − 2−1 (y=3.743E-04).

9. Выписать результаты: значение корня (X1), значение функции в корне

(y(X1)).

Вывод: значение X1=1.875 является приближѐнным значением корня уравнения с точностью = 0,005.

Пояснения к выполнению задания второго уровня

Для реализации выхода из программы выполнить проверку длины найденного отрезка ( − ≤ ). Если это условие не выполняется, то программа должна запросить границы следующего отрезка, на котором функция имеет разные знаки на концах отрезка. Взять границы отрезка с экрана из результатов табулирования на предыдущем отрезке. Если условие выполняется, то

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]