Главная    Почта    Новости    Каталог    Одноклассники    Погода    Работа    Игры     Рефераты     Карты
  
по Казнету new!
по каталогу
в рефератах

Основы программирования на языке Паскаль

   Writeln('Площадь круга радиусом ',R,' равна ',S)                        |
|End.                                                                       |
|     Эта программа запрашивает у пользователя значение радиуса круга,      |
|обеспечивает возможность ввести его значение, рассчитывает и выводит на    |
|экран величину площади круга с таким радиусом. Таким образом, появляется   |
|возможность, не внося изменений в текст программы, вводить различные       |
|значения радиуса и получать, соответствующие им значения площади круга. Для|
|этого достаточно несколько раз запустить программу. Также эта программа    |
|демонстрирует следующее правило: выдача результатов должна быть            |
|прокомментирована так, чтобы был ясен смысл напечатанных чисел.            |
|Действительно, ведь можно было бы ограничиться Writeln(S), но значение     |
|выведенного программой числа в этом случае было бы ясно только тому, кто   |
|эту программу написал.                                                     |
|                                                                           |
|Метки. Оператор безусловного перехода.                                     |
|     Каждый дом на улице имеет свой номер, все люди имеют собственные      |
|имена, даже ячейки памяти компьютера имеют каждая свой адрес. Все это      |
|принято для того, чтобы иметь возможность однозначно указать на            |
|определяемый объект. Точно также, для указания на операторы в программах   |
|применяются метки.                                                         |
|     Метка в стандарте языка Паскаль представляет собой целое              |
|неотрицательное число. Все используемые в программе метки должны быть      |
|перечислены в разделе описания меток, начинающемся служебным словом Label, |
|например:                                                                  |
|      Label 1, 2, 8;                                                       |
|     Одной меткой можно пометить только один оператор. Метка от помеченного|
|оператора отделяется двоеточием.                                           |
|Пример:                                                                    |
|     6: Writeln(14/2);                                                     |
|     Во всех приведенных ранее программах операторы выполнялись один за    |
|другим в том порядке, в котором они были записаны в тексте. Такая          |
|алгоритмическая структура называется прямым следованием. Однако, в языке   |
|Паскаль изначально существует оператор, нарушающий прямолинейное выполнение|
|программы, передающий управление в произвольную ее точку. Такая инструкция |
|называется безусловным переходом и имеет такой формат:                     |
|     Goto <метка>;                                                         |
|     Оператор, к которому происходит переход должен быть помечен данной    |
|меткой.                                                                    |
|     Использовать оператор безусловного перехода следует крайне осторожно  |
|во избежание получения ошибочных результатов или полного "зацикливания"    |
|программы. Вообще, употребление данной команды среди программистов         |
|считается дурным тоном. Как вы убедитесь, всегда существует возможность    |
|обойтись без него.                                                         |
|                                                                           |
|Условный оператор                                                          |
|Одной из основных алгоритмических структур является ветвление              |
|(альтернатива).                                                            |
|     Если условие выполняется, то будет выполнена инструкция "1", если нет,|
|то - инструкция "2". Несмотря на то, что в схеме присутствуют два действия,|
|выполнено будет только одно, так как условие либо ложно, либо истинно.     |
|Третьего не дано. Такая схема позволяет решать задачи, в которых в         |
|зависимости от сложившихся обстоятельств требуется совершить то или иное   |
|действие. Нет никакого сомнения, что число задач такого рода огромно. Более|
|того, очень сложно придумать реально значимое задание, алгоритм выполнения |
|которого содержал бы в себе простое прямое следование команд. Даже         |
|примитивный пример, взятый из курса математики, как вы увидите, не может   |
|быть решен без использования ветвления. Итак, необходимо вычислить значение|
|выражения y=1/x. Вам известно, что данная функция не всегда имеет значение,|
|то есть не для всех значений аргумента существует значение результата. Наша|
|задача так составить алгоритм, чтобы исполнитель ни в коем случае не встал |
|в тупик, даже при получении нуля в качестве аргумента. Сформулировать это  |
|на естественном языке не трудно:                                           |
|1. Получить значение x.                                                    |
|2. Если x=0, то сообщить, что выражение значения не имеет, иначе -         |
|вычислить y как 1/x.                                                       |
|     Таким образом используется приведенная выше алгоритмическая структура.|
|Она может быть выражена простыми словами:                                  |
|     Если <усл.>                {Если выполняется условие}                 |
|     то <действие 1>         {то выполнить действие № 1 }                  |
|     иначе <действие 2>   {иначе - выполнить действие № 2 }                |
|все                                                                        |
|     Как это записать на Паскале? Да точно так же, только по-английски.    |
|     Формат условного оператора на языке Паскаль:                          |
|     If <условие>                                                          |
|     Then <оператор 1>                                                     |
|     Else <оператор 2>;                                                    |
|     Обратите внимание на то, что в Then- и Else- части стоит только один  |
|оператор. Но что делать, чтобы решить задачу, в которой по выполнению или  |
|невыполнению условия нужно совершить не одно, а несколько действий? Здесь  |
|приходит на помощь уже известный вам составной оператор. В операторные     |
|скобки можно заключить любое количество операторов.                        |
|     Вариант условного оператора в этом случае:                            |
|If <условие>                                                               |
|Then Begin <группа операторов 1> end                                       |
|Else Begin < группа операторов 2> end;                                     |
|     Знак "точка с запятой" не ставится перед служебным словом Else, но    |
|операторы в группах, естественно, отделяются друг от друга этим знаком.    |
|     Теперь поговорим об условиях. В программах на языке Паскаль условия   |
|представляют собой выражения, значением которых является величина          |
|логического (Boolean) типа. Это может быть как просто переменная указанного|
|типа, так и сложная последовательность высказываний, связанных логическими |
|операциями.                                                                |
|     В простых условиях могут применяться знаки операций сравнения:        |
|>(больше), <(меньше), =(равно), <>(не равно), >=(больше или равно),        |
|<=(меньше или равно).                                                      |
|     Примеры простых условий:      A=5 {Значение переменной А равно 5}     |
|     (C+D3)>=(D1*(45-2)) {Значение выражения в левой части больше либо     |
|равно значению выражения из правой части}                                  |
|     S<>'ABC' {Значение переменной S не равно строковой константе 'ABC'}   |
|     Приведем пример решения еще одной задачи: "Из двух чисел выбрать      |
|наибольшее".                                                               |
|     На первый взгляд решение очевидно, но оно не столь тривиально, как    |
|кажется.                                                                   |
|Program Example;                                                           |
|Var A,B,C : Real; {A,B - для хранения аргументов, C - результат}           |
|Begin                                                                      |
|Writeln('Введите два числа');                                              |
|Readln(A,B);                            {Вводим аргументы с клавиатуры}    |
|If A>B Then C:=A Else C:=B; {Если A>B, то результат - A, иначе результат - |
|B}                                                                         |
|Writeln(C);                               {Выводим результат на экран}     |
|End.                                                                       |
|     Еще один классический пример: "По заданным коэффициентам решить       |
|квадратное уравнение". Эта задача сложнее, поэтому перед тем как писать    |
|программу составим алгоритм, записав его в виде блок-схемы.                |
|Сначала вводим коэффициенты, затем вычисляем дискриминант. Теперь возникает|
|две возможности: либо отсутствие действительных корней в случае            |
|отрицательного дискриминанта, либо эти корни можно все-таки вычислить и    |
|вывести на экран в случае неотрицательного дискриминанта (случай равенства |
|дискриминанта нулю входит сюда же, корней - два, только они одинаковые J). |
|     При записи алгоритма на языке программирования следует учесть, что в  |
|ветви "нет" не одно действие, а три, поэтому следует применить составной   |
|оператор. Арифметические выражения не забывайте записывать в соответствии с|
|правилами языка Паскаль. В остальном, эта программа не сложнее предыдущей. |
| 
12345След.
скачать работу

Основы программирования на языке Паскаль

 

Отправка СМС бесплатно

На правах рекламы


ZERO.kz
 
Модератор сайта RESURS.KZ