ответ: до сих пор вы использовали линейные алгоритмы, т.е. алгоритмы, в которых все этапы решения выполняются строго последовательно. сегодня вы познакомитесь с разветвляющимися алгоритмами.
определение. разветвляющимся называется такой алгоритм, в котором выбирается один из нескольких возможных вариантов вычислительного процесса. каждый подобный путь называется ветвью алгоритма.
признаком разветвляющегося алгоритма является наличие операций проверки условия. различают два вида условий - простые и составные.
простым условием (отношением) называется выражение, составленное из двух арифметических выражений или двух текстовых величин (иначе их еще называют ), связанных одним из знаков:
< - меньше,
> - больше,
< = - меньше, или равно
> = - больше, или равно
< > - не равно
= - равно
например, простыми отношениями являются следующие:
в примерах первые два отношения включают в себя переменные, поэтому об истинности этих отношений можно судить только при подстановке конкретных значений:
если х=25, у=3, то отношение x-y> 10 будет верным, т.к. 25-3> 10
если х=5, у=30, то отношение x-y> 10 будет неверным, т.к. 5-30< 10
проверьте истинность второго отношения при подстановке следующих значений:
k=5, a=1, b=-3, c=-8
k=65, a=10, b=-3, c=2
определение. выражение, о котором после подстановки в него значений переменных можно сказать, истинно (верно) оно или ложно (неверно), называется булевым (логическим) выражением.
примечание. название “булевы” произошло от имени джорджа буля, разработавшего в xix веке булеву логику и логики.
определение. переменная, которая может принимать одно из двух значений: true (правда) или false (ложь), называется булевой (логической) переменной. например,
к: =true;
flag: =false;
second: =a+sqr(x)> t
рассмотрим пример.
. вычислить значение модуля и квадратного корня из выражения (х-у).
для решения этой нужны уже знакомые нам стандартные функции нахождения квадратного корня - sqr и модуля - abs. поэтому вы уже можете записать следующие операторы присваивания:
koren: =sqrt(x-y);
modul: =abs(x-y)
в этом случае программа будет иметь вид:
program znachenia;
uses
crt;
var
x, y : integer;
koren, modul : real;
begin
clrscr;
write ('введите значения переменных х и у через пробел ');
readln (x, y);
koren: =sqrt(x-y);
modul: =abs(x-y);
write ('значение квадратного корня из выражения (х-у) равно ', koren);
write ('значение модуля выражения (х-у) равно ', modul);
readln;
end.
казалось бы, решена. но мы не учли области допустимых значений для нахождения квадратного корня и модуля. из курса вы должны знать, что можно найти модуль любого числа, а вот значение подкоренного выражения должно быть неотрицательно (больше или равно нулю).
поэтому наша программа имеет свою допустимую область исходных данных. найдем эту область. для этого запишем неравенство х-у> =0, то есть х> =у. значит, если пользователем нашей программы будут введены такие числа, что при подстановке значение этого неравенства будет равно true, то квадратный корень из выражения (х-у) извлечь можно. а если значение неравенства будет равно false, то выполнение программы закончится аварийно.
. наберите текст программы. протестируйте программу со следующими значениями переменных и сделайте вывод.
х=23, у=5;
х=-5, у=15;
х=8, у=8.
каждая программа, насколько это возможно, должна осуществлять контроль за допустимостью величин, участвующих в вычислениях. здесь мы сталкиваемся с разветвлением нашего алгоритма в зависимости от условия. для реализации таких условных переходов в языке паскаль используют операторы if и case, а также оператор безусловного перехода goto.
рассмотрим оператор if.
для нашей нужно выполнить следующий алгоритм:
если х> =у,
то вычислить значение квадратного корня,
иначе выдать на экран сообщение об ошибочном введении данных.
Никто не знает точно, где и когда возникла письменность. мы можем только предполагать, как она развивалась с древнейших времен. человек начал рисовать картинки, повествующие об охоте и войне, о жизни племен. картинки использовались также для передачи сообщений. изображение солнца означало день. две отметки рядом с солнцем обозначали два дня. такие значки называются пиктограммами. с развитием цивилизации этот метод письма был ускорен путем картинок. египтяне прибегали к волнистой линии для обозначения воды. китайцы рисовали ухо между двумя дверьми, что имело значение «слушать». такие знаки назывались идеографами или идеограммами. древние египтяне пользовались системой, которую мы называем иероглифами. сначала это была полностью идеографическая система. но в ходе веков египтяне создали и фонетическую систему, то есть такие знаки, которые означали звуки речи, а не только изображали предметы или явления. с развитием цивилизации возникла потребность в большом количестве знаков. так возник метод написания слов в соответствии с их звучанием. знаки, звуки, называются фонемами. слова при этом могут делиться на слоги. следующей стадией развития письменности стало создание алфавита. древние египтяне и жители вавилона знали, как писать алфавитным способом. по их методу были созданы греческий и латинский алфавиты, которыми широко пользуются в мире, за исключением азиатских стран.
ответ: до сих пор вы использовали линейные алгоритмы, т.е. алгоритмы, в которых все этапы решения выполняются строго последовательно. сегодня вы познакомитесь с разветвляющимися алгоритмами.
определение. разветвляющимся называется такой алгоритм, в котором выбирается один из нескольких возможных вариантов вычислительного процесса. каждый подобный путь называется ветвью алгоритма.
признаком разветвляющегося алгоритма является наличие операций проверки условия. различают два вида условий - простые и составные.
простым условием (отношением) называется выражение, составленное из двух арифметических выражений или двух текстовых величин (иначе их еще называют ), связанных одним из знаков:
< - меньше,
> - больше,
< = - меньше, или равно
> = - больше, или равно
< > - не равно
= - равно
например, простыми отношениями являются следующие:
x-y> 10; k< =sqr(c)+abs(a+b); 9< > 11; ‘мама’< > ‘папа’.
в примерах первые два отношения включают в себя переменные, поэтому об истинности этих отношений можно судить только при подстановке конкретных значений:
если х=25, у=3, то отношение x-y> 10 будет верным, т.к. 25-3> 10
если х=5, у=30, то отношение x-y> 10 будет неверным, т.к. 5-30< 10
проверьте истинность второго отношения при подстановке следующих значений:
k=5, a=1, b=-3, c=-8
k=65, a=10, b=-3, c=2
определение. выражение, о котором после подстановки в него значений переменных можно сказать, истинно (верно) оно или ложно (неверно), называется булевым (логическим) выражением.
примечание. название “булевы” произошло от имени джорджа буля, разработавшего в xix веке булеву логику и логики.
определение. переменная, которая может принимать одно из двух значений: true (правда) или false (ложь), называется булевой (логической) переменной. например,
к: =true;
flag: =false;
second: =a+sqr(x)> t
рассмотрим пример.
. вычислить значение модуля и квадратного корня из выражения (х-у).
для решения этой нужны уже знакомые нам стандартные функции нахождения квадратного корня - sqr и модуля - abs. поэтому вы уже можете записать следующие операторы присваивания:
koren: =sqrt(x-y);
modul: =abs(x-y)
в этом случае программа будет иметь вид:
program znachenia;
uses
crt;
var
x, y : integer;
koren, modul : real;
begin
clrscr;
write ('введите значения переменных х и у через пробел ');
readln (x, y);
koren: =sqrt(x-y);
modul: =abs(x-y);
write ('значение квадратного корня из выражения (х-у) равно ', koren);
write ('значение модуля выражения (х-у) равно ', modul);
readln;
end.
казалось бы, решена. но мы не учли области допустимых значений для нахождения квадратного корня и модуля. из курса вы должны знать, что можно найти модуль любого числа, а вот значение подкоренного выражения должно быть неотрицательно (больше или равно нулю).
поэтому наша программа имеет свою допустимую область исходных данных. найдем эту область. для этого запишем неравенство х-у> =0, то есть х> =у. значит, если пользователем нашей программы будут введены такие числа, что при подстановке значение этого неравенства будет равно true, то квадратный корень из выражения (х-у) извлечь можно. а если значение неравенства будет равно false, то выполнение программы закончится аварийно.
. наберите текст программы. протестируйте программу со следующими значениями переменных и сделайте вывод.
х=23, у=5;
х=-5, у=15;
х=8, у=8.
каждая программа, насколько это возможно, должна осуществлять контроль за допустимостью величин, участвующих в вычислениях. здесь мы сталкиваемся с разветвлением нашего алгоритма в зависимости от условия. для реализации таких условных переходов в языке паскаль используют операторы if и case, а также оператор безусловного перехода goto.
рассмотрим оператор if.
для нашей нужно выполнить следующий алгоритм:
если х> =у,
то вычислить значение квадратного корня,
иначе выдать на экран сообщение об ошибочном введении данных.
объяснение: