Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Пример контрольных вопросов
1. Что такое ветвления применительно к алгоритмам и программам решения задач? 2. С помощью каких блоков можно организовать ветвления в блок-схеме? 3. Какая программа называется циклической разветвляющейся? 4. С помощью каких операторов можно организовать ветвления в программах на языке Паскаль? 5. Что называют особыми точками (при решении расчетных задач)? 6. Как разбивается интервал существования функции на подинтервалы с учетом исходных условий при изображении схемы областей существования функции? 7. Как отображают на схеме областей существования функции знаки < =, > =, <, >? 8. Какая точка называется особой и как она отображается на схеме областей существования функции? 9. Формат условного оператора if. 10. Что такое составной оператор? 11. Какие операторы в Паскале называются сложными (структурированными)?
Рекомендуемая литература 1. Сердюченко В.Я. Розробка алгоритмiв та програмування на мовi Turbo-Pascal / Укр. мовою - Х: ВКП " Парiтет" ЛДТ, 1995. 2. А.И. Марченко. Программирование в среде Borland Pascal 7.0. -К: ЮНИОР, 1996 3. Turbo-Pascal 7.0 -К.: Торгово-издательское бюро BHV, 1996
ПРИМЕР ВЫПОЛНЕНИЯ ЗАДАНИЯ
Условие задания Составить блок-схему алгоритма и программу решения задачи вычисления значений функции y=f(x), заданной на интервале х=[-2; 2] несколькими аналитическими выражениями, с шагом изменения аргумента при расчетах h=0, 5. Вид функции:
Выполнение задания
На рис 2. представлено разбиение области существования функции Y на подинтервалы существования функций f1(x), f2(x), f3(x). Граничная точка х=-2 входит (исходый расчетный интервал – закрытый), а граничная точка х=0 не входит в область существования функции f1 (с учетом первого условия “если”). Граничная точка х=0 входит в область существования функции f2(x), а граничная точка х=1 не входит в области существования функций ни f1(x), ни f3(x) по условиям “если”, следовательно, точка х=1 является особой точкой по условиям, а если присмотреться к расчетным формулам f2(x) и f3(x), то она является особой точкой и по смыслу выражений (деление на ноль). Граничная точка х=2 входит в область существования функции f3 (исходый расчетный интервал – закрытый).
f1(x) f2(x) f3(x) X x=-2 x=0 x=1 x=2
Рис. 2 – Наглядная схема области существования функции y=f(x)
Один из ряда возможных вариантов блок-схемы алгоритма вычислительного процесса представлен на рис. 3. В блок-схеме можно увидеть четыре ветви внутри расчетного цикла, определяющего множественные расчеты на заданном интервале с шагом: три ветви – расчетные, еще одна – для выдачи сообщения об отсутствии решения в особой точке. Ветвления в блок-схеме внутри цикла организованы с помощью блоков-ромбиков с логическими условиями внутри и с двумя выходами, один из которых перечеркнут (выход по “нет”), а другой без перечеркивания (выход по “да”). В программе эти блоки реализуются операторами if … then … else …. Циклический процесс с предусловием в блок-схеме также организован с помощью блока-ромбика в начале процесса, на который осуществляется передача управления после формирования очередного нового значения аргумента х и который определяет либо продолжение работы цикла, либо выход из цикла по завершению перебора значений аргумента на заданном интервале. В программе такой конструкции подходит специальный оператор цикла с предусловием while … do …. Текст программы, соответствующий разработанной блок-схеме, приводится после блок-схемы, вместе с каркасом протокола работы.
Рис. 3 – Блок-схема алгоритма разветвляющегося процесса расчета y=f(x). Текст программы на языке Pascal
Program Zadacha2; Uses crt; var x, xn, xk, h, y: real; Begin clrscr; writeln('введите значения xn, xk, h'); readln(xn, xk, h); x: =xn; while (x< =xk+h/2) do begin if x=1 then writeln('x=', x: 4: 2, ' особая точка') else begin if x< 0 then y: =sin(x)/x else if x< 1 then y: =2*x/(1-x) else y: =x/(x-1); writeln('x=', x: 4: 2, ' y=', y: 10: 3) end; x: =x+h end writeln('Конец работы программы’); writeln (‘Нажмите Enter для выхода из окна результатов'); readln; End.
|