Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Условный операторСтр 1 из 2Следующая ⇒
Алгоритмические структуры «выбор» и «ветвление».
Программы с линейной структурой являются простейшими и используются, как правило, для реализации обычных вычислений по формулам (или других аналогичных задач, назначение которых - последовательное выполнение некоторых команд). Основная характеристика линейных алгоритмов - инструкции выполняются последовательно, одна за другой. Но линейных алгоритмов, как правило, недостаточно для реализации какой-то более сложной задачи. К примеру, требуется программа, запрашивающая у пользователя 2 числа и вычисляющая их частное (т.е. выполняющая деление одного числа на другое). Всё бы ничего, но если второе число будет нулём? В результате выполнения деления возникнет ошибка и программа экстренно закончит свою работу. Как же быть? В этом случае нужен другой алгоритм - алгоритм с ветвлениями. Ветвления (выбор) используются для выбора одного из нескольких направлений дальнейшего хода программы. Для нашего примера перед делением будет выбор из двух направлений - если исходные данные верны (т.е. второе число - не 0), то выполняется деление и выдаётся результат; но если второе число - 0, то деление выполнено не будет, а взамен, к примеру, пользователю будет выдано сообщение об ошибке. Мы рассмотрим два типа ветвления - с помощью условного оператора и оператора выбора.
Условный оператор Условный оператор, который называется IF (англ. " если") используется для выбора одного из двух направлений хода программы. Выбор последовательности инструкций осуществляется во время выполнения программы в зависимости от выполнения условия. Общий синтаксис условного оператора IF:
if {условие} then THEN - англ. " тогда". Таким образом, строка вполне переводима и на русский язык: " Если условие выполняется, тогда сделать что-то..." Здесь условие - выражение логического. Если выражение является истинным (True), т.е. условие выполняется, то выполняется последовательность команд, указанная после THEN. Если же условие не выполняется, данный блок пропускается. В случае, если команд, ассоциированных с условием, несколько, то они заключаются в BEGIN... END:
if {условие} then
Данную форму записи условного оператора можно назвать сокращённой. Есть и полная форма. Дело в том, что сокращённая форма позволяет выполнить блок команд при выполнении заданного условия, но при этом мы теряем из вида тот случай, когда условие не выполняется. Для нашего примера с делением чисел сокращённой формы недостаточно. Полная форма даёт возможность указать две последовательности команд: одну - для случая, если условие выполняется, а другую - если не выполняется. Третьего не дано... Синтаксис:
if {условие} then ELSE - англ. " иначе, в противном случае": " Если условие выполняется, то сделать что-то, а в противном случае сделать что-то другое".
if {условие} then
Ниже приведена блок схема данного алгоритма:
Составим программу для нашего примера, для чего выполним проект «Частное двух чисел».
Проект «Частное двух чисел» Требуется программа, запрашивающая у пользователя 2 числа и вычисляющая их частное. Для этого запустим Delphi и создадим новый проект:
Добавим три поля Edit, в два из них мы будем вводить числа, частное которых, нам нужно найти, а в третьем будем выводить ответ. Для выполнения алгоритма поиска решения добавим кнопку Button. Для добавления пояснительных записей вставим объекты Label:
Двойным нажатием на кнопку «Выполнить» мы перейдем в окно записи процедуры обработки, которую будет выполнять данная кнопка при нажатии на нее. Наберём следующий код:
procedure TForm1.Button1Click(Sender: TObject); begin var a, b, c: real; begin a: =StrToInt(Edit1.Text); b: =StrToInt(Edit2.Text); if b=0 then Edit3.Text: ='На 0 делить нельзя' Else Begin c: =a/b; Edit3.Text: =IntToStr(c); end; end;
end.
Расшифровав данный код, получим: если b равно 0 то выведется запись «На 0 делить нельзя», в противном случае находится частное a/b и выводится в поле Edit3. Программа дана в «Приложении №1», в папке «Условный оператор».
Задание для самостоятельной работы: Написать программу нахождения корней квадратного уравнения вида: a*x2+b*x+c=0. Напомним, что x1, x2
|