ekzamen (664995), страница 2
Текст из файла (страница 2)
Попросить газету.
Взять газету и сдачу
Отойти от ларька
1.2.2 Алгоритм с ветвлением.
В рассмотренных до сих пор алгоритмах и программах все команды выполнялись последовательно одна за другой в том порядке, в каком они были записаны. Однако таким образом может быть построен алгоритм для решения далеко не всякой задачи. В практике известны задачи, дальнейший ход решения которых зависит от выполнения каких либо условий.
Рассмотрим простой пример задачи из курса алгебры. Требуется построить алгоритм вычисления значения функции у = I x I. Она задаётся соотношением
Х при х >=0,
У =
-x при
При решении этой задачи требуется выполнить следующие условия.
-
Проверить больше или равен нулю х
-
Если х больше или равен 0, то присвоить у значение х (у:=x),
Если х меньше 0, то присвоить у значение –х(у:=-х).
Коротко алгоритм решения этой задачи может быть записан так:
Если x>=0,
ТО y:=x,
Иначе y=-x
Команды, с помощью которых записывается алгоритм подобного типа (разветвляющие алгоритмы), называются командами ветвления.
Ветвление - это такая форма организаций действий, при которой в зависимости от выполнения или невыполнения некоторого условия совершатся либо одна, либо другая последовательность действий.
Блок схемы на рисунках а, б, в, изображают соответственно последовательное выполнение действий (линейный алгоритм), ветвление в полной и неполной формах.
А) б)
В)
На рисунке изображена блок – схема алгоритма покупки билетов.
Да Нет
Данная блок схем отображает ветвление в краткой форме, когда дей ствия и дут по одной ветке.
Но существует еще ветвление с полной формой ,когда действия идут по обоим веткам
Уменьшить скорость
Проехать по 5 км отремонтированной шоссе
Проехать 10 км в объезд
пропро
Остановиться у АЗС
Для отработки составления блок схем с ветвлением я рассмотрел несколько алгоритмов и составил к ним блок схемы:
А) Присвоить х значение суммы углов А и С Четырёхугольника ABCD.
Присвоить y значение суммы углов B и D четырёхугольника ABCD.
Если х=у, то:
Построить серединный перпендикуляр к отрезку AB.
Построить серединный перпендикуляр к отрезку BC.
Найти пересечение построенных перпендикуляров.
Иначе:
Сообщить “Построение невозможно”.
Конец ветвления.
Б) Присвоить х значение суммы сторон AB и CD четырёхугольника ABCD.
Присвоить у значение суммы сторон BC и AD четырёхугольника ABCD.
Если х=у, то:
Построить биссектрису угла А.
Построить биссектрису угла В.
Найти пересечение построенных биссектрис.
Иначе:
Сообщить “Построение невозможно”.
Конец ветвления.
А
)
Присвоить х значение суммы углов А и С Четырёхугольника ABCD.
Присвоить y значение суммы углов B и D четырёхугольника ABCD.
Вывести сообщение “Построение невозмоджно”
Построить серединный перпендикуляр к отрезку BC.
Найти пересечение построенных перпендикуляров.
Построить серединный перпендикуляр к отрезку BC.
Найти пересечение построенных перпендикуляров.
Б)
II. Ветвление в Паскале
2.1 Языки программирования.
Чтобы компьютер выполнил решение какой – либо задачи, ему необходимо получить от человека инструкции, как её решать. Набор таких инструментов для компьютера, направленный на решение конкретной задачи, называемой компьютерной программой.
Современные компьютеры не настолько совершены, чтобы понимать программы, записанные на каком – либо употребляемой человеком языке – русском, английском, японским… Команды, предназначенные для ЭВМ, необходимо записать в понятной её форме. С этой целью применяются языки программирования – искусственные языки, алфавит, словарный запас и структура которых удобны человеку и понятнее компьютеру.
В самом общем смысле языком программирования называется фиксированная система обозначений и правил для описания алгоритмов
и структур данных. Языки программирования имеют как бы два лица. Одно из них обращено к человеку, использующему язык для записи своих программ, а другое адресовано ЭВМ, которая должна понимать команды.
Исходя из этого все языки программирования делятся на языки низкого, высокого и сверхвысокого уровня.
Языки низкого уровня – это средство записи инструкций компьютеру простыми приказами – командами на аппаратном уровне. Такой язык отражает структуру данного класса ЭВМ и поэтому иногда называется Машинно – ориентированным языком. Пользуясь системой команд, понятной компьютеру, можно описать алгоритм любой сложности. Правда, такая запись для сложных задач будет на столько громоздкой, что у человека будет мало шансов сделать её безошибочной, так как этот язы мало приспособлен для использования человеком, ведь запись программы на этом языке представляет собой последовательность нулей и единиц.
Существенной особенностью языков программирования низкого уровня жесткая ориентация на определённый тип аппаратуры (систему команд процессора). В стремлении приспособить язык программирования низкого уровня к человеку разработан язык символического кодирования (автокод или язык ассемблера), структура команд которого определяется форматами команд и данными Машиного языка. Программа на этом языке ближе к человеку, потому что операторы этого языка – те же команды, но они имеют мнемонические названия, а в качестве операндов используются не конкретные адреса в оперативной памяти, а их символические имена.
Более многочисленную группу составляют языки программирования высокого уровня, средства которых допускают описание задачи в наглядном, легко воспринимаемом виде. Отличной особенностью этих языков является их ориентация не на систему команд той или иной ЭВМ, а на систему операторов, характерных для записи определённого класса алгоритмов. К языкам программирования этого типа относятся: Бейсик, Фортран, Алгон, Паскаль, Си. Программа на языках высокого уровня записывается системой обозначений, близкой человеку (например, фиксированным набором слов английского языка, имеющих строго определённое назначение). Программу на языке высокого уровня проще понять и значительно легче отладить.
К языкам программирования сверхвысокого уровня можно отнести Алгон-68, при разработке которого сделана попытка формализовать описание языка, приведшая к появлению абстрактной и конкретных программ. Абстрактная программа создаётся программистом, конкретная выводится из первой. Предполагается, что при таком подходе принципиально невозможно породить неверную синтаксически ( а в идеале семантически) конкретную программу. Язык APL относят к языкам свервысокого уровня за счёт введения сверхмощных операций и операторов. Запись программ на таком языке получается компактной.
Все вышеперечисленные языки – вычислительные. Более молодые – декларативные (непроцедурные) языки, отличительная черта которых – задание связей и отношений между объектами и величинами и отсутствие определения последовательности выполнений действий. Такие языки сыграли важную роль в программировании, так как они дали толчок к разработке специализированных языков искусственного интеллекта и языков знаний.
2.2 Язык программирования Паскаль.
Язык программирования Паскаль (назван в честь выдающегося французского математика и философа Блеза Паскаля (1623 – 1662)), разработан в 1967 – 1971гг. Никлаусом Виртом, профессором, директором института информатики Швейцарской высшей политехнической школы. Язык Паскаль, созданный первоначально для обучения программированию как систематической дисциплине, скоро стал широко использован для разработки программных средств в профессиональном программировании.
Широкой популярностью Паскаля среди программистов способствовали следующие причины:
- Благодаря своей компактности, удачному первоначальному описанию Паскаль оказался достаточно лёгким для обучения.
- Язык программирования Паскаль . Отображает фундаментальные и наиболее важные концепции (идеи) алгоритмов в очевидной и легко воспринимаемой форме, что предостовляет программисту средства, помогающие проектировать программы.
- Язык Паскаль позволяет чётко реализовать идеи структурного программирования и структурной организации данных.
- Язык Паскаль сыграл большую роль в развитии методов аналитического доказательства правильности программ и позволил реально перейти от методов отладки программ к системам автоматической проверки и правильности программ.
- Применения языка Паскаль значительно подняло “планку” надёжности разрабатываемых программ за счёт требований Паскаля к описанию используемых в программе переменных при компиляции без её выполнения.
- Использование в Паскале простых и гибких структур управления: ветвлений, циклов.
2.3 Условный оператор в Паскале.
Условные операторы предназначены для выбора к исполнению одного из возможных действий ( операторов) в зависимости от некоторого условия (при этом одно из действий может быть пустым, т.е. отсутствовать) В качестве условий выбора используется значение логического выражения. В Турбо Паскале имеются два вида условных операторов: if иcase.
Оператор условиа if. Оператор условия if является одним из самых популярных средств, имеющих естественный порядок выполнения операторов программы. Синтаксическая диаграмма оператора if выглядит таким образом:














