русс | укр

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

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

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

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


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

Краткие теоретические сведения


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


Очень часто ход решения задачи в практике зависит от выполнения какого-либоусловия.

Например: Требуется построить алгоритм вычисления значения функции

y=|x|. Она задается соотношением:

При решении этой задачи требуется выполнить следующие:

1) проверить больше или равен нулю x;

2) если x больше или равен 0, то присвоить y значение x(y:= x),

если x меньше 0, то присвоить у значение -x (у:=-x).

Коротко алгоритм решения этой задачи может быть запи­сан так:

если x ³0,

то у: = x,

иначе у: = -x

Эти команды называются командами ветвления (условным оператором)

Условный оператор может иметь две формы (структуры), представленные на рисунках 1 и 2. На рисунке 1 показана неполная форма условного оператора: действие выполняется только тогда, когда выполняется записанное в ромбе условие. В случае невыполнения условия происходит переход к сле­дующему оператору (выход из структуры). На рисунке 2 изо­бражена полная форма условного оператора: в случае выпол­нения условия (выход «+» из ромба) выполняется одно дейст­вие, в случае невыполнения (выход «—») — другое действие. Каждая структура имеет один вход и один выход. Программу рекомендуется строить из последовательных, логически завер­шенных блоков, не допуская передачи управления из одного блока в другой. Такая программа содержит меньше ошибок при разработке, легче проверяется на правильность выполне­ния. Неполный условный оператор имеет вид:

IF условиеTHEN оператор;

Полный условный оператор:

IF условиеTHEN оператор_1ELSE оператор_2;

Рис 1. Неполная форма условного оператора
Рис 2. Полная форма условного оператора

 

 

Если перевести на русский язык английские слова IF, THEN и ELSE, то вид условного оператора - ЕСЛИ условие,ТО оператор 1,ИНАЧЕ оператор 2;



В различных случаях после слов THEN и ELSE надо вы­полнить не один оператор, а несколько. Тогда эти операторы заключаются в так называемые операторные скобки, откры­вающая скобка которых — слово BEGIN, а закрывающая — слово END: begin

(операторы)

end;

Перед словом ELSE точка с запятой не ставится. В опера­торных скобках рекомендуется каждую пару BEGIN — END записывать в одном столбце: так легче проверить соответствие каждой открывающей скобке закрывающую.

Примеры условного оператора:

if a < bthen у: = х;

if х < 0thenх: = -х; {изменение знака переменной х}

if a + b < сthen begin

z: = х; {обмен значениями переменными х и у}

х: = у;

у: = z

end;

В качестве выполняемого в условном операторе действия может быть другой условный оператор. Например:

if sqr (х) + sqr (у) > 1then

if х > уthen z: = 0

else z: = 1;

При такой форме записи, использующей сдвиг вправо для каждого внутреннего действия, легко понять, к какому из двух слов IF относится слово ELSE. Если этот оператор записать в одну строку, то ответ будет неоднозначным. Транслятор по­ступает следующим образом. Встретив сложную конструкцию из вложенных условных операторов, он анализирует ее с кон­ца, приписывая последнее найденное ELSE первому встре­ченному при просмотре справа налево IF.

Пример программы: Пусть для двух целых чисел надо определить, являются они четными или нет. Для проверки четности используем условие: остаток от деления на 2 четного числа равен 0.

program P3;

var a, b:integer;

Begin

writeln (‘введите два целых числа’):

readln(a, b);

if a mod 2=0then writeln (‘a — четное’)

else writeln (‘a — нечетное’);

if b mod 2=0then writeln (‘b — четное’)

else writeln (‘b — нечетное’)

End.

Логические выражения. Алгоритм решения квадратного уравнения содержит проверку условия d < 0. Два значения, dи 0, связаны отношением < — меньше. Если условие выпол­няется, то говорят, что соответствующее выражение истинно, если не выполняется — выражение ложно. Речь идет о логи­ческом выражении. Для построения сложных условий в Пас­кале имеются логические операцииand (и), or (или) иnot(не). Обозначив истинное значение через 1 и ложное через 0, построим таблицы истинности для этих операций.

X Y X and Y X Y X or Y X not X
   

 

Рассмотрим примеры построения сложных логических вы­ражений.

1. Пусть требуется определить, принадлежит ли точка с ко­ординатой х отрезку [а; b]. Если записать это условие двой­ным неравенством, то читать его надо так: х меньше либо ра­вен b и больше либо равен a (а £ х £ b). Отношение «меньше либо равно» в Паскале записывается двумя знаками. Анало­гично записывается и «больше либо равно». Однако в Паскале нельзя записывать двойное неравенство. Используя логиче­скую операцию and (и), запишем:

(х ³ a)and (х £ b)

Рис. 3

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

2. Имеется прямоугольное отверстие со сторонами a и b и кирпич с ребрами х, у, z. Требуется составить условие про­хождения кирпича в отверстие (рис. 3).

Кирпич пройдет в прямоугольное отверстие, если выпол­нится сложное условие: (а ³ х)and (b ³ y)or

(а ³ у)and (b ³ x)or

(а ³ х)and (b ³ z)or

(a ³ z)and (b ³ x)or

(a ³ y)and (b ³ z)or

(a ³ z)and (b ³ y)

Для трех граней шесть условий получается потому, что можно каждую грань повернуть на 90° и проверить для каж­дой грани два случая.

3. Определить принадлежность точки фигуре. Пусть фигура задана ограничивающими ее прямыми (рис.4). Для каждой прямой определим полуплоскость, в которой находится фигура – треугольник АВС. Полуплоскость задается неравенством.

Полуплоскость, находящаяся выше оси х определяется неравенством у > 0.

Полуплоскость, находящаяся справа от прямой, соединяющей точки (—1,0) и (0,2), задается неравенством у — 2х — 2 < 0.

Полуплоскость, находящаяся слева от прямой, соединяющей точки (1,0) и (0,2), за­дается неравенством у + 1х — 2 < 0.

Условие принадлежности точки (х, у) фи­гуре:

(Y > 0)and (Y - 2*X - 2 < 0)and (Y + 2*X - 2 < 0)

4. Приведем пример программы определения существования треугольника со сторонами a, b и с. Условие существования треугольника известно из геометрии: сумма двух любых сто­рон должна быть больше третьей. Следовательно, для всех сто­рон условие «сумма двух больше третьей» должно выполняться.

program Р4;

var a, b, с:real;

Begin

writeln(‘введите длины трех сторон треугольника ‘);

readln(a. b, с);

write(‘треугольник со сторонами ‘, а, b, с);

if (a + b > с) and (b + с > a) and (a + с > b)

then write(‘существует’)

else write(‘не существует’);

Readln

End.



<== предыдущая лекция | следующая лекция ==>
Методические указания и задания к работе | Методические указания по работе и задания


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


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

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

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


 


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

 
 

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

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