Освоить средства реализации разветвляющихся алгоритмов на языке Паскаль. Операции сравнения




НазваниеОсвоить средства реализации разветвляющихся алгоритмов на языке Паскаль. Операции сравнения
Дата конвертации17.05.2013
Размер445 b.
ТипПрезентации


ВЕТВЯЩИЙСЯ АЛГОРИТМ

ЦЕЛИ:

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

Освоить средства реализации разветвляющихся алгоритмов на языке Паскаль.

Операции сравнения



Логический тип данных

К логическому типу относятся данные, которые могут принимать одно из двух значений: true (истина) или false (ложь). Различают логические константы и логические переменные.

Описание логического типа данных

Соnst

cl=true;

Var

L, cl : boolean;

Begin

L:=3>5;

Writeln(‘значение логической переменной’,L);

Writeln(‘значение логической константы’,cL);

End.

В языке Паскаль не предусмотрен ввод с клавиатуры данных логического типа, но существует вывод переменных и констант логического типа, как это показано в примере.

Условное выражение

Условными выражениями называются такие выражения, которые содержат арифметические выражения, связанные операциями сравнения (отношения).

Примеры условных выражений:

(а + b) * с >= 1000;

c * d > x + (y * c) * b.

Результатом условного выражения являются логические величины false или true. Если условие выполняется, то результатом его выполнении является значение true, в противном случае - false.

Пример: при а = 4, b = 45 условное выражение а + 16 < b принимает значение true, а

условное выражение а * а = 100 + b принимает значение false.

Логические операции

Над данными логического типа определены следующие операции:

NOT - логическое НЕ – логическое отрицание;

AND - логическое И – логическое умножение;

OR - логическое ИЛИ – логическое сложение;

XOR - исключающее ИЛИ – исключающее ИЛИ, сложение по модулю 2.

Операция NOT имеет один операнд, все остальные - два операнда.

Пример:

NOT A, A OR В. Операнды А и В являются данными логического типа.

Результаты вычисления логических операций приведены в таблице 2.2, которая содержит таблицы истинности для всех описанных выше логических операций.

Результаты логических операций



Логические выражения

Логическое выражение состоит из логических элементов и логических операций. Логическое выражение, как видно из таблицы 2.2, может принимать одно из двух значений: true или false. Логический элемент, который согласно таблице 2.2. может принимать одно из двух значений true или false, должен быть одним из следующих:

- логической константой (true или false);

- логической переменной;

- условным выражением;

- логическим выражением.

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

Вычисление значения логического выражения происходит по старшинству операций и его результатом может быть значение true или false.

В Паскале определены следующие группы приоритетов логических и арифметических операций:

1) Not;

2) *, /, Div, Mod, And;

3) +, -, Or, Xor;

4) =, <>, <, >, <=, >=.

1) Not; 2) *, /, Div, Mod, And; 3) +, -, Or, Xor; 4) =, <>, <, >, <=, >=.

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

Порядок выполнения операций может быть изменен с помощью скобок, так же, как и при вычислении арифметических выражений.

Пример вычисления логического выражения: (а * b + с = х + y) and (k * b > t)

Пусть а = 3.0, b = 4.1, с = 4, х = 2.5, у = 5, k = 3, t = 10, тогда логическое выражение вычисляется в следующем порядке:

1) а * b + с равно 16.3;

2) х + у равно 7.5;

3) k * b равно 12.3;

4) (16.3 = 7.5) равно false;

5) (7.5 > 10) равно false;

6) false and false равно false.

Таким образом, результатом вычисления всего выражения будет false.

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

Примеры записи условных и логических выражений

Задача 1. На числовой оси дан отрезок [a,b] и точка с координатой х. Написать условие: точка х принадлежит отрезку [a,b].

Решение. В математике такое условие записывается так: (a≤x≤b). Вычислительная машина в каждый момент времени выполняет одно действие и записывает результат этого действия в память. Поэтому в программировании это условие записывается следующим образом: (a≤x)and(x≤b).

Задача 2. На числовой оси дан отрезок [a,b] и точка с координатой х. Написать условие: точка х не принадлежит отрезку [a,b].

Задача 2. На числовой оси дан отрезок [a,b] и точка с координатой х. Написать условие: точка х не принадлежит отрезку [a,b].

Решение. В математике такое условие записывается так: (a>x>b). В программировании это условие записывается следующим образом: (xb).

Задача 3. На плоскости в декартовой системе координат задана точка своими координатами (X, Y) и квадрат со стороной 2, центр которого расположен в начале координат. Записать логическое выражение, вычисляющее, принадлежит ли точка заштрихованной области. Решение. Если решать задачу «в лоб», то алгоритм следует записать следующим образом.

Задача 3. На плоскости в декартовой системе координат задана точка своими координатами (X, Y) и квадрат со стороной 2, центр которого расположен в начале координат. Записать логическое выражение, вычисляющее, принадлежит ли точка заштрихованной области. Решение. Если решать задачу «в лоб», то алгоритм следует записать следующим образом.

(1>x>-1), при этом мы выделяем на координатной плоскости вертикальную полосу шириной 2 бесконечной длины, И (1>y>-1), при этом на координатной плоскости выделяется горизонтальная полоса шириной 2 также бесконечной длины. На пересечении этих полос находится заданная область. Получим логическое условие (1>x>-1) И (1>y>-1), которое содержит вычисление 4-х условий и одной логической операции. Можно записать решение этой задачи иначе (│x│<1)И(│y│<1).

Ветвящийся алгоритм

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

В языке Паскаль существует три вида условных операторов: короткий условный оператор, полный условный оператор и сложный условный оператор.

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

Короткий условный оператор

Короткий условный оператор имеет следующий синтаксис.

IF <условное или логическое выражение> THEN <оператор>;

Здесь IF, THEN – ключевые (или зарезервированные) слова;

<условное или логическое выражение> - любое условное или логическое выражение, отделяется от ключевых слов пробелами;

<оператор> - простой или составной оператор языка Паскаль (кроме условного);

; - разделитель, обозначает конец оператора.

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

Полный условный оператор имеет следующий синтаксис.

IF <условное или логическое выражение> THEN <оператор 1>

ELSE <оператор 2>;

Здесь IF, THEN, ELSE – ключевые (или зарезервированные) слова;

<условное или логическое выражение> - любое условное или логическое выражение, отделяется от ключевых слов пробелами;

<оператор 1>, <оператор 2> - простой или составной оператор языка Паскаль (кроме условного);

; - разделитель, обозначает конец оператора.

Сложный условный оператор

Сложным условным оператором является один из условных операторов – короткий или полный, в котором <оператор 1> или / и <оператор 2>,<оператор> являются условными операторами.

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

В языке Паскаль существуют две разновидности оператора выбора, которые имеют следующий синтаксис:

Составной оператор

Составной оператор - это последовательность операторов программы, заключенная в операторные скобки BEGIN ... END. Для наглядности советуем эти операторные скобки размещать друг под другом, а последовательность операторов между ними сдвигать вправо.

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

BEGIN

<оператор 1>;

BEGIN

<оператор2>;

<оператор3 >;

BEGIN

<оператор4>;

<оператор5>;

END

END

END;

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

Примеры программ

Задача 1

Для заданного значения X вычислить значение функции F(X) = Y, которая определяется следующим образом:

В этом алгоритме для организации ветвления можно использовать условие X >= 0. Если это условие верно, то надо вычислять Y по формуле Y = 4Х, если не верно, то Y = 0.

Задача 4.

Задача 4.

Два прямоугольника, расположенные в первом квадранте, со сторонами, параллельными осям координат, заданы координатами своих левого верхнего и правого нижнего углов. Для первого прямоугольника это точки (xl,yl) и (х2,0), для второго - (хЗ,уЗ), (х4,0).

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

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

Нарисовать первый квадрант декартовой системы координат и пересекающиеся прямоугольники. Обозначить левую точку пересечения (а, b), правую точку (лежащую на оси X) - (c,d).

Программа на языке Паскаль.

Программа на языке Паскаль.

Var

X1,y1,x2,y2,x3,y3,x4,a,b,c,d,s:real;

Begin

Write(‘x1=’); readln(x1);{ввод данных}

Write(‘y1=’); readln(y1);

Write(‘x2=’); readln(x2);

Write(‘x3=’); readln(x3);

Write(‘y3=’); readln(y3);

Write(‘x4=’); readln(x4);

If (y1=0)or(y3=0) then begin

Writeln(‘Не верно введены данные’);

Halt; Readln;

End;

If y1 If x1>x3 then a:=x1 else a:=x3;

If x2 D:=0;

If a Writeln(‘Прямоугольники пересекаются’);

S:=(c-a)/b;

Writeln(‘Общая площадь=’,s:0:3);

End;

Readln;

End.

Задача 5.

Задача 5.

Дан треугольник ABC с координатами вершин А(Ах,Ау), В(Вх.Ву), С(Сх.Су), где числа Ах, Ay, Bx, By, Cx, Су - целые. Составьте алгоритм, определяющий, является ли этот треугольник равнобедренным. Входные данные задать с помощью датчика случайных чисел из диапазона [0,20].

Алгоритм решения задачи:

Ввести координаты вершин Ах, Ay, Bx, By, Cx, Су;

Вычислить квадраты длин сторон АВ, ВС и АС по формулам

АВ2 = (Вх-Ах)2 + (Ву-Ау)2;

ВС2 = (Сх-Вх)2 + (Су-Ву)2;

АС2 = (Ах-Сх)2 + (Ay-Су)2;

Ecли АВ2 = ВС2 или ВС2 = АС2 или АВ2 = АС2, то

Вывести на экран "Треугольник ABC равнобедренный" иначе

"Треугольник ABC не равнобедренный".

Программа на языке Паскаль:

Программа на языке Паскаль:

Const

Eps=0.00001;

Var

Ax,Ay,Bx,By,Cx,Cy : Real;

AB2,BC2,AC2 : Real; { квадраты сторон }

Begin

Randomize;

Writeln ('Координаты точки А ');

Ax:=random(20)+random;

Ay:=random(20)+random;

Writeln(‘Ax=’,Ax:0:2,’Ay’,Ay:0:2);

Writeln ('Координаты точки В ');

Bx:=random(20)+random;

By:=random(20)+random;

Writeln(‘Bx=’,Bx:0:2,’By’,By:0:2);

Writeln ('Координаты точки С ');

Cx:=random(20)+random;

Cy:=random(20)+random;

Writeln(‘Cx=’,Cx:0:2,’Cy’,Cy:0:2);

AB2 := sqr(Ax - Bx) + sqr(Ay - By);

BC2 := sqr(Cx - Bx) + sqr(Cy - By);

AC2 := sqr(Ax - Cx) + sqr(Ay - Cy);

if (abs(АВ2 - ВС2) else Writeln (Треугольник не равнобедренный ');

End.


Похожие:

Освоить средства реализации разветвляющихся алгоритмов на языке Паскаль. Операции сравнения iconСавин Александр Фомин Алексей Якушкин Олег Постановка задачи Изучение существующих алгоритмов сравнения и их реализации

Освоить средства реализации разветвляющихся алгоритмов на языке Паскаль. Операции сравнения iconПрограмма на языке программирования Pascal
Освоить технологию разработки программного продукта на языке Pascal путем создания компьютерной игры «Chapaev vs hollywood»
Освоить средства реализации разветвляющихся алгоритмов на языке Паскаль. Операции сравнения iconВоробьев Кирилл Белоусов Роман Класс 9а школа моу сош №68
Тема урока-презентации: «Турбо Паскаль: Создание языка и его создатель. Основы программирования на языке Турбо Паскаль»
Освоить средства реализации разветвляющихся алгоритмов на языке Паскаль. Операции сравнения icon"Основы программирования на языке Паскаль" Язык Паскаля
Алфавит языка Паскаль составляют буквы, цифры и специальные символы (знаки операций и ограничители). Специальный символ может быть...
Освоить средства реализации разветвляющихся алгоритмов на языке Паскаль. Операции сравнения iconРеализацию алгоритмов Хаффмана и Шеннона-Фано. Для сравнения в проект добавлена возможность равномерного кодирования текста
«Дискретная математика» для специальности «Прикладная математика» (V семестр). Продукт полностью соответствует курсу и включает в...
Освоить средства реализации разветвляющихся алгоритмов на языке Паскаль. Операции сравнения iconНам нужно не просто освоить те колоссальные средства, которые потребуются на реализацию заявленных целей, нам нужно добиться нового качества и в образовании, …
«Нам нужно не просто освоить те колоссальные средства, которые потребуются на реализацию заявленных целей, нам нужно добиться нового...
Освоить средства реализации разветвляющихся алгоритмов на языке Паскаль. Операции сравнения iconСтандартная библиотека шаблонов (stl)
Специальным типом бинарного предиката, предназначенным для сравнения значений двух аргументов, являются функции сравнения. Функции...
Освоить средства реализации разветвляющихся алгоритмов на языке Паскаль. Операции сравнения iconОткрытые задачи (пока, оценочные)
Паскаль (основные типы данных и операторы, понятие сложности алгоритмов, процедуры и функции, рекурсия, арифметические и комбинаторные...
Освоить средства реализации разветвляющихся алгоритмов на языке Паскаль. Операции сравнения iconПроект на тему: «реализация алгоритмов в среде программирования.» Исполнители
Таблицы соответствия действий, их графического представления и операторов языка программирования Турбо Паскаль
Освоить средства реализации разветвляющихся алгоритмов на языке Паскаль. Операции сравнения iconДвоичная арифметика Введение Сложение
...
Разместите кнопку на своём сайте:
dok.opredelim.com


База данных защищена авторским правом ©dok.opredelim.com 2015
обратиться к администрации
dok.opredelim.com
Главная страница