Реферат: Язык программирования Паскаль и ветвление

Введение.

Язык Паскаль был создан какучебный язык программирования в 1968 –1971г. Никлаусом Виртом. В настоящеевремя этот язык имеет более широкую сферу применения, чем предусматривалось приего создании. Целью работы Вирта было создание языка, который:

-        

-        

Допускал бы перевод программ в машинный код простымкомпилятором;

Все эти качества сделали язык очень популярным и удобнымдля применения в школе.

     Знакомясь сязыком Паскаль я выбрал для своей работы конструкцию ветвления как наиболеераспространённую и интересную.  

Цель моей работы – изучить конструкцию ветвления и еёприменение в языке программирования Паскаль. Исходя из этого я поставилследующие задачи:

1)      Изучить литературу по даннойтеме.

2)      Составить план своей работы.

3)      Изучить алгоритмическуюконструкцию ветвления.

4)      Рассмотреть её применение вПаскале.

5)      Научиться решать задачи сВетвлением.

6)      Составить пакет заданий потеме “Ветвление в Паскале”.

<st1:place w:st=«on»>I.</st1:place> Ветвление в алгоритмах.

Блок – схемы исловесное описание ветвлений.

1.1 Основныеэтапы решения задач на компьютере.

Процесс решения задач на компьютере – это совместнаядеятельность человека и ЭВМ. Этот процесс можно представить виде несколькихпоследовательных этапов. На долю человека приходятся этапы, связанные створческой деятельностью – постановкой, алгоритмизацией, программированиемзадач анализом результатов, а на долю компьютера — этапы обработки информации ссоответствии с разработанным алгоритмом.

 

Первый этап – постановка задачи. На этом этапе участвует человек, хорошопредставляющий предметную область задачи. Он должен чётко определить цельзадачи, дать словесное описание содержания задачи  и предложить общий подход к её решению. Длявычисления суммы двух целых чисел человек, знающий, как складываются числа,может описать задачу следующим образом: ввести два целых числа, сложить их ивывести сумму в качестве результата решения задачи.

Второй этап – математическое и информационное моделирование. Цель этого этапа – создатьтакую математическую модель решаемой задачи, которая может быть реализована вкомпьютере. Существует целый ряд задач, где математическая постановка сводитсяк простому перечислению формул и логических условий. Этот этап тесно связан спервым этапом, и его можно отдельно не рассматривать, однако возможно, что дляполученной модели известны несколько методов решения, и тогда предстоит выбратьлучший.

Для вышеописанной задачи данный этап сведётся кследующему: введённые в компьютер числа запомним в памяти под именами А и В, затем вычислим значение этих чиселпо формуле А+В, и результат запомним в памяти под именем Summa.

Третий этап – алгоритмизация задачи. На основе математического описаниянеобходимо разработать алгоритм решения. 

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

Пятый этап – ввод программы и исходных данных в ЭВМ. Программа и исходныеданные вводятся в ЭВМ с клавиатуры с помощью редакторов текстов, и дляпостоянного хранения осуществляется их запись на гибкий или жёсткий магнитныйдиск.

Шестой этап – тестирование и отладка программы. На этом этапе происходитисполнение алгоритма с помощью ЭВМ, поиск и исключение ошибок. При этомпрограммисту приходится выполнять рутинную работу по проверке работы программы,поиску и исключению ошибок, и поэтому для сложных программ этот этап часто требуетгораздо больше времени и сил, чем написание первоначального текста программы.

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

         Контрольныепримеры стремятся выбрать так, чтобы при работе с ними программа прошла всеосновные пути блок – схемы алгоритма, поскольку на каждом из путей могут бытьсвои ошибки, а детализация плана зависит от того, как поведёт себя программа наэтих примерах: на одном может зациклиться (т.е. бесконечно повторять одно и тоже действие); на другом – дать явно неверный или бессмысленный результат и т.д.Сложные программы отлаживаются отдельными фрагментами.

Для повышения качествавыполнения этого этапа используются специальные программы – отладчики, которыепозволяют исполнить программу “по шагам” с наблюдением за изменением значенийпеременных, выражений и других объектов программы, с отслеживанием выполняемыхоператоров.

Седьмой этап – исполнение отлаженной программы и анализ результатов. На этом этапе программистзапускает программу и задаёт исходные данные, требуемые по условию задачи.

          Полученные в результате решения выходныеданные анализируются постановщиком задачи, и на основе этого анализавырабатываются соответствующие решения, рекомендации, выводы. Например, еслипри решение задачи на компьютере результат сложения двух чисел 2 и 3 будет 4,то следует сделать вывод о том, что надо изменить алгоритм и программу.

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

  

1.2 Алгоритм.

    Слово алгоритм происходит от algorithmic – латинскойформы написания имени латинского математика IX в. Аль-Хорезми, который сформулировал правила выполнения четырёхарифметических действий над многозадачными числами. В дальнейшем алгоритм сталиназывать описание любой последовательности действий, которую следует выполнитьдля решения заданной задачи.

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

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

  Используются разные способы записи алгоритмов. Широко распространенныйсловесный способ записи: это записи рецептов приготовления различных блюд вкулинарной книге, инструкции по использованию технических устройств, правилаправописания и многие другие. Наглядно представляется алгоритм языкомблок-схем.

Например алгоритм решения задачи вычисления суммыдвух чисел на языке блок-схем будет записан, как показано на рисунке:

Начало

А, В

А+В=С

С

<img src="/cache/referats/12359/image001.gif" v:shapes="_x0000_s1174 _x0000_s1175 _x0000_s1176 _x0000_s1177 _x0000_s1178 _x0000_s1179 _x0000_s1180">


Свойства алгоритма. При составлении алгоритма необходимо обеспечить, чтобы он обладалрядом свойств.

Однозначность алгоритма, под которой понимается единственность толкованияисполнителем правил выполнения действий и порядка их выполнения. Чтобы алгоритмобладал этим свойством, он должен быть записан командами из системы командисполнителя.

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

Конечность алгоритма – обязательность завершения каждого из действий,составляющих алгоритм, и завершимость выполнения каждого алгоритма в целом.Записанный на рисунке алгоритм обладает этим свойством, так как запись действийисполнителя завершается записью об окончании алгоритма.

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

Массовость, т.е. возможность применения данного алгоритма для решения целогокласса задач, отвечающих общей постановки задачи. Так как алгоритм, показанныйна рисунке, позволяет правильно подсчитать сумму не только чисел 2 и 3, нолюбой другой пары целых чисел, он обладает свойством массовости. Для того чтобыалгоритм обладал свойством массивности, следует составлять алгоритм, используяобозначения величин и избегая конкректных значений.

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

Компьютернаяпрограмма – это план будущих работ, составленный в расчёте на его выполнениекомпьютером.

Чтобыкомпьютер смог выполнить программу, она должна быть записана в специальнойформе, доступной компьютеру; должна быть записана в соответствии со специальнымнабором правил.

Набор записикомпьютерной программы называется “алгоритмическим языком”.

                                    

                                  

                                1.2.1 Линейныеалгоритмы.

         Вычислительный процесс называется линейным (неразветвляющимся), если направление его продолжения на любом этапе вычисленийявляется единственным. Алгоритм линейного вычислительного процесса описываетдействия, последовательность выполнения которых не зависит от исходных данных ирезультатов промежуточных вычислений, т.е является постоянной. Этот процессявляется наиболее простым видом вычислений. Линейный процесс (как и другойвычислительный процесс) можно представить в виде следующих этапов: первый –задание исходных данных; второй реализация вычислений; третий – выводрезультатов счёта и поясняющей информации. Этапы отображаются на блок-схеме, азатем реализуются в ПЭВМ в указанной последовательности.

Алгоритм деления отрезка АВ пополам:

1) поставить ножку циркуля в точку А

2) установить раствор циркуля равным длине отрезкаАВ

3) провести окружность

4) поставить ножку циркуля в точку В

5) провести окружность

6) через точки пересечения окружностей провестипрямую

7) отметить точку пересечения этой прямой с отрезкомАВ

Каждое указание алгоритма предписываетисполнителю выполнить одно конкретное значения действий. Исполнитель не можетперейти следующей операции, не завершив полностью предыдущую. Предписанияалгоритма надо выполнять последовательно одно за другим, с соответствии спорядком их записи. Следование всем предписаниям гарантирует правильное решениезадачи. Данный алгоритм совершенно ясен исполнителю     

Блок-схема – алгоритм выраженный с помощью логических блоков. Блок – схема служитдля того, чтобы наглядней представлять те или иные формы организаций действий.Каждое действие алгоритма, кроме проверки условия, будем помещать впрямоугольник, а вопрос о том, выполняется ли некоторое условие, — в ромб. Ещесуществуют: параллелограмм, овал, оборванный листок,

<img src="/cache/referats/12359/image002.gif" v:shapes="_x0000_s1181">                                

                                                 – это блок ввода данных с клавиатуры.

<img src="/cache/referats/12359/image003.gif" v:shapes="_x0000_s1182">


                                       – в этомблок указывается начало или конец алгоритма

<img src="/cache/referats/12359/image004.gif" v:shapes="_x0000_s1183">


                                     — это блоквывода данных на печать.

<img src="/cache/referats/12359/image005.gif" v:shapes="_x0000_s1184">


                                        — вэтом блоке помещаются действия алгоритма.

                                      

<img src="/cache/referats/12359/image006.gif" v:shapes="_x0000_s1185">


                                       — блок вкотором помещаются условия.

Вот так выглядит блок-схема линейной функции.

Подойти к ларьку

Протянуть деньги

Попросить газету.

Взять газету и сдачу

Отойти от ларька

Конец

Начало

<img src="/cache/referats/12359/image007.gif" v:shapes="_x0000_s1186 _x0000_s1187 _x0000_s1188 _x0000_s1189 _x0000_s1190 _x0000_s1191 _x0000_s1192 _x0000_s1193 _x0000_s1194 _x0000_s1195 _x0000_s1196 _x0000_s1197 _x0000_s1198 _x0000_s1199 _x0000_s1200">


1.2.2 Алгоритм с ветвлением.

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

         Рассмотримпростой пример задачи из курса алгебры. Требуется построить алгоритм вычислениязначения функции у = I x I. Оназадаётся соотношением

                   

                             Х при х >=0,

                 У = í

                            -x при

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

1)    Проверить больше или равен нулюх

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

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

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

Если x>=0,

ТО y:=x,

Иначе y=-x

Команды, с помощью которых записывается алгоритмподобного типа (разветвляющие алгоритмы), называются командами ветвления.

      Ветвление — это такая формаорганизаций действий, при которой в зависимости от выполнения или невыполнениянекоторого условия совершатся либо одна, либо другая последовательностьдействий.

     Блоксхемы на рисунках а, б, в, изображают соответственно последовательноевыполнение действий (линейный алгоритм), ветвление в полной и неполной формах.

<img src="/cache/referats/12359/image008.gif" v:shapes="_x0000_s1102 _x0000_s1103 _x0000_s1104 _x0000_s1105 _x0000_s1106 _x0000_s1107 _x0000_s1108 _x0000_s1109 _x0000_s1110 _x0000_s1111 _x0000_s1112"> <img src="/cache/referats/12359/image009.gif" v:shapes="_x0000_s1095 _x0000_s1096 _x0000_s1097 _x0000_s1098 _x0000_s1099 _x0000_s1100 _x0000_s1101">


А)                                                               б)

<img src="/cache/referats/12359/image010.gif" v:shapes="_x0000_s1113 _x0000_s1114 _x0000_s1115 _x0000_s1116 _x0000_s1117 _x0000_s1118 _x0000_s1119 _x0000_s1120 _x0000_s1121">


                        В)

 

На рисунке изображена блок – схема алгоритма покупкибилетов.

<div v:shape="_x0000_s1026">

          Подойти  к  кассе

                                 

    Билеты на 12.00 имеются? имеются

<img src="/cache/referats/12359/image011.gif" v:shapes="_x0000_s1028 _x0000_s1033 _x0000_s1034 _x0000_s1035 _x0000_s1036">


                          Да                                                    Нет

Протянуть кассиру деньги

Назвать сеанс и количество билетов

     Получить билеты

        Отойти от кассы

<img src="/cache/referats/12359/image012.gif" v:shapes="_x0000_s1029 _x0000_s1030 _x0000_s1031 _x0000_s1032 _x0000_s1037 _x0000_s1038 _x0000_s1039 _x0000_s1040 _x0000_s1041 _x0000_s1042 _x0000_s1044 _x0000_s1045 _x0000_s1047 _x0000_s1048">


Данная блоксхем отображает  ветвление в краткойформе, когда дей ствия и дут по одной ветке.

         Носуществует еще ветвление с полной формой, когда действия идут по обоим веткам

Уменьшить скорость

Ремонт участка закончен

Проехать по  5 км отремонтированной шоссе

Проехать 10 км в объезд

<img src="/cache/referats/12359/image013.gif" v:shapes="_x0000_s1122 _x0000_s1123 _x0000_s1124 _x0000_s1125 _x0000_s1128 _x0000_s1129 _x0000_s1130 _x0000_s1131 _x0000_s1132">


пропро

<img src="/cache/referats/12359/image014.gif" v:shapes="_x0000_s1133"> <img src="/cache/referats/12359/image015.gif" v:shapes="_x0000_s1135">


<img src="/cache/referats/12359/image016.gif" v:shapes="_x0000_s1134"><img src="/cache/referats/12359/image016.gif" v:shapes="_x0000_s1136"><div v:shape="_x0000_s1126">

Остановиться у АЗС

                                  

Для отработки составленияблок схем с  ветвлением я  рассмотрел несколько алгоритмов и составил кним блок схемы:

А) Присвоить х значение суммы углов А и СЧетырёхугольника ABCD.

Присвоить y значение суммы углов B и Dчетырёхугольника ABCD.

Если х=у, то:

Построить серединный перпендикуляр к отрезку AB.

Построить серединный перпендикуляр к отрезку BC.

Найти пересечение построенных перпендикуляров.

Иначе:

Сообщить “Построение невозможно”.

Конец ветвления.

Б) Присвоить х значение суммы сторон AB и CDчетырёхугольника ABCD.

Присвоить у значение суммы сторон BC и ADчетырёхугольника ABCD.

Если х=у, то:

Построить биссектрису угла А.

Построить биссектрису угла В.

Найти пересечение построенных биссектрис.

Иначе:

Сообщить “Построение невозможно”.

Конец ветвления.

  Начало <img src="/cache/referats/12359/image017.gif" v:shapes="_x0000_s1137">А)

Если Х=У

Построить серединный перпендикуляр к отрезку BC.

Найти пересечение построенных перпендикуляров.

Вывести сообщение “Построение невозмоджно”

Конец

Построить серединный перпендикуляр к отрезку BC.

Найти пересечение построенных перпендикуляров.

Присвоить y значение суммы углов B и D четырёхугольника ABCD.

ABCD

Присвоить х значение суммы углов А и С Четырёхугольника ABCD.

<img src="/cache/referats/12359/image018.gif" v:shapes="_x0000_s1139 _x0000_s1141 _x0000_s1142 _x0000_s1144 _x0000_s1146 _x0000_s1147 _x0000_s1148 _x0000_s1149 _x0000_s1150 _x0000_s1151 _x0000_s1152 _x0000_s1153 _x0000_s1154 _x0000_s1155 _x0000_s1156 _x0000_s1158 _x0000_s1159 _x0000_s1160 _x0000_s1161 _x0000_s1162 _x0000_s1163 _x0000_s1165">


 Б)  

 SHAPE * MERGEFORMAT

    Начало

       ABCD

Присвоить х значение суммы сторон AB и CD четырёхугольника ABCD.

Присвоить у значение суммы сторон BC и AD четырёхугольника ABCD.

     X=Y

Построить биссектрису угла А.

Построить биссектрису угла В.

Найти пересечение построенных биссектрис.

Вывести сообщение “построение невозможно”

Конец

Конец

<img src="/cache/referats/12359/image019.gif" v:shapes="_x0000_s1294 _x0000_s1293 _x0000_s1295 _x0000_s1296 _x0000_s1297 _x0000_s1300 _x0000_s1301 _x0000_s1302 _x0000_s1303 _x0000_s1304 _x0000_s1305 _x0000_s1306 _x0000_s1307 _x0000_s1308 _x0000_s1309 _x0000_s1310 _x0000_s1311 _x0000_s1312 _x0000_s1313 _x0000_s1314 _x0000_s1315 _x0000_s1316 _x0000_s1317 _x0000_s1318 _x0000_s1319">

               

   II. Ветвление в Паскале

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

Чтобы компьютер выполнил решение какой – либозадачи, ему необходимо получить от человека инструкции, как её решать. Набортаких инструментов для компьютера, направленный на решение конкретной задачи,называемой компьютерной программой.

         Современные компьютеры не настолькосовершены, чтобы понимать программы, записанные на каком – либо употребляемойчеловеком языке – русском, английском, японским… Команды, предназначенные дляЭВМ, необходимо записать в понятной её форме. С этой целью применяются языкипрограммирования – искусственные языки, алфавит, словарный запас и структуракоторых удобны человеку и понятнее компьютеру.

         В самом общем смысле языкомпрограммирования называется фиксированная система обозначений и правил для  описания алгоритмов

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

         Исходя из этого все языкипрограммирования делятся на языки низкого, высокого и сверхвысокого уровня.

Языки низкого уровня – это средство записиинструкций компьютеру простыми приказами – командами на аппаратном уровне.Такой язык отражает структуру данного класса ЭВМ и поэтому иногда называется Машинно– ориентированным языком. Пользуясь системой команд, понятной компьютеру, можноописать алгоритм любой сложности. Правда, такая запись для сложных задач будетна столько громоздкой, что у человека будет мало шансов сделать еёбезошибочной, так как этот язы мало приспособлен для использования человеком,ведь запись программы на этом языке представляет собой последовательность нулейи единиц.

         Существенной особенностью языковпрограммирования низкого уровня жесткая ориентация на определённый тип аппаратуры(систему команд процессора). В стремлении приспособить язык программированиянизкого уровня к человеку разработан язык символического кодирования (автокодили язык ассемблера), структура команд которого определяется форматами команд иданными Машиного языка. Программа на этом языке ближе к человеку, потому чтооператоры этого языка – те же команды, но они имеют мнемонические названия, а вкачестве операндов используются не конкретные адреса в оперативной памяти, а ихсимволические имена.

         Более многочисленную группу составляютязыки программирования высокого уровня, средства которых допускают описаниезадачи в наглядном, легко воспринимаемом виде. Отличной особенностью этихязыков является их ориентация не на систему команд той или иной ЭВМ, а на системуоператоров, характерных для записи определённого класса алгоритмов. К языкампрограммирования этого типа относятся: Бейсик, Фортран, Алгон, Паскаль, Си.Программа на языках высокого уровня записывается системой обозначений, близкойчеловеку (например, фиксированным набором слов английского языка, имеющихстрого определённое назначение). Программу на языке высокого уровня прощепонять и значительно легче отладить.

         К языкам программирования сверхвысокогоуровня можно отнести Алгон-68, при разработке которого сделана попыткаформализовать описание языка, приведшая к появлению абстрактной  и конкретных программ.  Абстрактная программа создаётсяпрограммистом, конкретная выводится из первой. Предполагается, что при такомподходе принципиально невозможно породить неверную синтаксически ( а в идеалесемантически) конкретную программу. Язык APL относят к языкамсвервысокого уровня за счёт введения сверхмощных операций и операторов. Записьпрограмм на таком языке получается компактной.

         Все вышеперечисленные языки –вычислительные. Более молодые – декларативные (непроцедурные) языки,отличительная черта которых – задание связей и отношений между объектами ивеличинами и отсутствие определения последовательности выполнений действий.Такие языки сыграли важную роль в программировании, так как они дали толчок кразработке специализированных языков искусственного интеллекта и языков знаний.

2.2 Языкпрограммирования Паскаль.

Язык программирования Паскаль (назван в честьвыдающегося французского математика и философа Блеза Паскаля (1623 – 1662)),разработан в 1967 – 1971гг. Никлаусом Виртом, профессором, директором институтаинформатики Швейцарской высшей политехнической школы. Язык Паскаль, созданныйпервоначально для обучения программированию как систематической дисциплине,скоро стал широко использован для разработки программных средств впрофессиональном программировании.

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

— Благодаря своей компактности, удачному первоначальному описанию Паскальоказался достаточно лёгким для обучения.

— Язык программирования Паскаль. Отображает фундаментальные и наиболее важныеконцепции (идеи) алгоритмов в очевидной и легко воспринимаемой форме, чтопредостовляет программисту средства, помогающие проектировать программы.

— Язык Паскаль позволяет чётко реализовать идеи структурного программирования иструктурной организации данных.

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

— Применения языка Паскаль значительно подняло “планку” надёжностиразрабатываемых программ за счёт требований Паскаля к описанию используемых впрограмме переменных при компиляции без её выполнения.

— Использование в Паскале простых и гибких структур управления: ветвлений,циклов.

                                        2.3 Условный оператор в Паскале.

 

Условные операторыпредназначены для выбора к исполнению одного из возможных действий (операторов) в зависимости от некоторого условия (при этом одно из действийможет быть пустым, т.е. отсутствовать) В качестве условий выбора используетсязначение логического выражения. В Турбо Паскале имеются два вида условныхоператоров: if иcase.

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

 SHAPE * MERGEFORMAT

IF

Выражение

Then

Оператор

else

оператор

<img src="/cache/referats/12359/image020.gif" v:shapes="_x0000_s1202 _x0000_s1201 _x0000_s1203 _x0000_s1204 _x0000_s1205 _x0000_s1206 _x0000_s1207 _x0000_s1208 _x0000_s1209 _x0000_s1210 _x0000_s1211 _x0000_s1212 _x0000_s1213 _x0000_s1214 _x0000_s1215 _x0000_s1216 _x0000_s1217 _x0000_s1218">

Операторы условия ifвыполняются следующим образом. Сначала выражается выражение, записанное вусловии. В результате его вычисления получается значение булевского типа. Впервом случае, если значение выражения есть true (истина), выполняется<оператор 1>, указанный после слова Then (то). Если результатвычисления выражений в условии естьFalse (ложь), то выполняется<оператор 2>. Во втором – если результат выражения true, товыполняется <оператор>, если false – оператор, следующий сразуза оператором if. Операторы if могут быть вложенными.

Read(Ch);

IfCh=’N’ then parol:= True

ElseParol := False;

Read(x);

IfParol = True then

If x= 100 then Writeln (‘пароль и код правельны’)

Elsebegin

Writeln(‘Ошибка в коде’);

End;

В данном примере склавиатуры считывается значение переменной символьного типа Ch.Затем проверяется условие Ch=’N’. Если оно выполняется, топеременной Parol булевского типа присваеватся значение True,если условие не выполняется, False. Затем с клавиатурысчитывается значение кода  Х. Далееоператор проверяет условие Parol = True. Если оно имеет значение True, товыполняется проверка введённого пароля оператором if X=100.Если условие Х=100 имеет значение True, то выводится сообщение“Пароль и код правельны”, и управление в программе передаётся на оператор,следующий за словом end, если оно имеет значение False, выполняется соствнойоператор, стоящий после слова else, который выводит на экранвидеомонитора сообщение “ошибка в коде”, и вызывает стандартную процедуру Halt(1)для остановки программы.

2.3.1     Составной оператор (операторварианта).

 

         Условный оператор позволяет осуществитьветвление программы только по двум направлениям, одно из которых соответствуетвыполнению проверяемого условия. Если для переменной необходимо осуществить ряддействий, зависящих от других условий, то надо записывать либо вложенныеусловные операторы, либо несколько операторов подряд. Для такой операции удобноиспользовать оператор варианта.

Вход в структуру содержитвычисление или ранее полученное значение переменной (индекса варианта). Этозначение может совпасть с меткой, стоящей перед оператором на одной из ветвейпереключаются. В таком случае выполняется оператор, помеченный этой меткой, ипроисходит выход из структуры. Оператор бывает простым или составным,ограниченым операторными скобками begin … end;  Если значение индекса варианта не совпало нис одной из меток, то выполняется оператор с номером n + 1 из строки else. Еслиоператор варианта содержит строку else, то это — полная формаоператора, если такой строки нет, то используется сокращённая форма оператораварианта.

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

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

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

Рассмотрим простой пример задачи из курса алгебры.Требуется построить алгоритм вычисления значений функции у = |х|. Она задаётсясоотношением:

<img src="/cache/referats/12359/image021.gif" v:shapes="_x0000_s1078">              

                                   Y =

    

На языке Паскаль оператор варианта имеет вид:

 

Case индекс варианта of

Метка 1: оператор1;

Метка 2: оператор2;

Метка n: оператор n;

Else оператор n + 1

End;

Пример:

Составить программу-решатель.

Дано: молярная масса вещества М, плотность данного вещества Р, масса R илиобъём V. Требуется найти число молекул К: 1) в единице массы вещества; 2) втеле заданной массой: 3) в единице объёма вещества; 4) в теле заданным объёмом.Для решения задачм воспользуемся формулой:

                                      K = (NА/M)R,

Где NA = 6,022 * 10²³г/моль – число Авогадро.

 

На основании этой формулыполучаем расчётные формулы для программы:

1)K=NA/M; 2)K=NAR; 3)K=NAPV/M 4)K=NAP/M.

Программа имеет вид:

Program E20;

ConstNA = 6.022 E20;

VarN: integer; M, R, P, V, K: real;

Begin

Writeln (‘зная постоянную Авогадро,Плотность P данного вещества’);

Writeln (‘и его молярную массу М,можно найти число молекул в’);

Writeln (‘1. в единице массывещества’);

Writeln (‘2. в теле массой R’);

Writeln (‘3. в единице объёма’);

Writeln (‘4. в теле объёмом V’);

Write (‘введите номер решающейзадачи’);

Readln (N);

Write (‘введите исходные данные:М =’);

Readln(M);

CaseN of

1:K: = NA / M;

2:begin

Write(‘R = ‘);

Readln(R);

K: =NA *R/M;

End;

3:begin

write (‘плотность вещества Р =’);

Readln(P);

Write(‘V = ‘);

Readln(V);

K: =NA *P*V/M;

End;

4:begin write (‘плотность вещества P = ’);

Readln(P);

K: =NA *P/V

End;

End;

Write (‘число молекул K = ’, K’);

End.

                                   2.3.2    Вложенные условия.

  

  Существуютзадачи в которых по одной из ветки ветвления нужно рассмотреть ещё одноусловие.

Рассмотрим задачу: сравнить 3 целых числа и вывестина печать максимальное.

Programchisla;

Vara, b, c: integer;

Begin

Writeln (‘Введите три числа’);

Read(a, b, c);

Ifa<b then

Ifa>c then writeln (‘ максимально число ’, a)

Elseif b>c then writeln (b  максимальн

еще рефераты
Еще работы по программированию, базе данных