русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Тема 3. Ветвящиеся алгоритмы. (4 ч.)


Дата добавления: 2015-07-23; просмотров: 584; Нарушение авторских прав


Содержание занятия: Использование операторов IF и CASE для программирования ветвящихся алгоритмов.

Задача. Найти значение функции:

 

1.Теория.

Найти значение функции можно, подставляя значение x в формулу для f(x), если она определена. Расчет значения функции возможен, если A=х2 - 3x - 15 > 0, при A £ 0 то функция не определена.

2) План:

а) описание переменных x, f, A

б) ввод x

в) расчет A= x2 - 3x – 15

       
   
 

г) если A > 0

да : нет :

печать ” при x = … ф-ция не определена”

печатать значения x, f

 
 

конец

3. Условный и составной операторы

Для реализации ветвления можно использовать условный оператор:

if условие then оператор1

else оператор2;

где условие – это выражение логического типа (например, а>0, (d<0) and (c=5) и другие). Если условие выполняется, то выполняется ветвь then, т.е. оператор1; если условие не выполняется – то оператор2.

Если в какой-либо ветви нужно выполнить не один, а несколько операторов, необходимо поместить эти операторы внутри составного оператора begin ... end, как в приведенной ниже программе. В этом случае последовательность операторов, объединенная в группу внутри begin ... end рассматривается как один оператор или блок. Составной оператор используется в тех случаях, когда по правилам языка допускается использовать только один оператор, а требуется выполнить несколько действий. Такой случай часто возникает при написании условных операторов, операторов выбора и цикла.

 

3) Программа:

program vetv;

varx, f, A: real;

Begin

write(‘Введите x ’);

read(x);

A:=sqr(x) – 3*x – 15;

if A>0 then

Begin

f:=1/sqrt(A);

writeln(‘f(‘,x:2:1,’)=’,f:5:3);

End

else writeln (‘при x=’,x:3:1,’ функция не определена’);



End.

Обратите внимание на то, что так как составной оператор стоит в ветви then, и после него условный оператор не заканчивается, то точка с запятой (знак конца оператора) не поставлен.

4. Усеченный условный оператор и оператор безусловного перехода.

Возможно использование усеченного условного оператора

if условие then оператор;

При этом, если условие не выполняется, то ветвь then игнорируется и управление передается следующему за if оператору. При этом часто необходимо пользоваться метками, которые отмечают некоторые нужные программисту операторы программы. Метки –это набор цифр или букв, отделяются от помечаемых операторов двоеточием (см. программу ниже). В языке Паскаль принято перед использованием метки описывать, т.е. перечислять в блоке описания label через запятую. Можно организовать переход к метке с помощью оператора goto m, где m-метка. Рассматриваемую задачу можно запрограммировать по-другому.

Другая программа:

program vetv1;

label1;

Var

x, f, A: real;

Begin

write(‘Введите x ’);

read(x);

A:=sqr(x) – 3*x – 15;

if A>0 then goto 1;

writeln (‘при x=’,x:2:1,’ функция не определена’);

exit;

1: f:=1/sqrt(A);

writeln(‘x=’,x:3:1,’ f=’,f:6:3);

end.

Однако, такая программа считается хуже предыдущей, так как использует оператор goto. В настоящее время считается возможным программировать вообще без goto.

5. Оператор выбора.

Если для решения задачи нужно организовать более двух ветвей, удобно использовать оператор выбора CASE. Общий вид оператора;

case селектор of

значение 1: оператор 1;

значение 2: оператор 2;

………

значение N: оператор N;

else оператор

end;

где селектор это переменная или выражение целого, символьного (char) типов, допустимы и некоторые другие типы. Набор значений - это конкретные значения сектора, при которых будет выполнен соответственно нужный оператор.

Работа оператора: сначала вычисляется значение селектора, если он является выражением. Затем выполняется тот оператор, который соответствует значению, совпадающему со значением селектора. Если значение сектора не совпало ни с одним из указанных значений, то выполняется ветвь else.

Рассмотренную задачу можно написать с помощью этого оператора:

 

program vetv2;

Var

x, f, A: real;

n: integer;

Begin

write(‘Введите x ’);

read(x);

A:=sqr(x) – 3*x – 15;

n:=ord(A>0); { функция ord( ) равна 1, если выражение в скобках

верно и 0 , если неверно}

case n of

0: writeln(‘ функция не определена’);

1: begin

f:=1/sqrt(A);

writeln(‘x=’,x:4:1,’ f=’,f:6:3);

end;

else writeln(‘ Такого случая нет’);

end;

end.

6.Самостоятельная работа

Каждый студент получает задачу из раздела 2 пособия «Программирование физических задач».

Требования при защите задачи.

1.Должна быть написана и отлажена программа, содержащая операторы присваивания, ввода с клавиатуры(если нужно), вывода с форматированием, оператора IF (или CASE) .

2.Студент должен придумать и отладить «контрольный пример», демонстрирующий правильную работу всех ветвей программы.

3.Студент должен легко ориентироваться в программе, по требованию преподавателя вносить в нее небольшие изменения.



<== предыдущая лекция | следующая лекция ==>
Тема 1. Линейные алгоритмы. (2 ч.) | Работа оператора


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.322 сек.