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

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

                                                                          |
|                                                                           |
|                                                                           |
|Program Sq1;                                                               |
|Var A, B, C, D, X1, X2 : Real;                                             |
|Begin                                                                      |
|Writeln ('Введите коэффициенты квадратного уравнения');                    |
|Readln (A,B,C);                                                            |
|D:=B*B-4*A*C;                                                              |
|If D<0 Then Writeln ('Корней нет! ')                                       |
|Else                                                                       |
|Begin                                                                      |
|X1:=(-B+SQRT(D))/2/A;                                                      |
|X2:=(-B-SQRT(D))/2/A;                                                      |
|Writeln ('X1=', X1:8:3, ' X2=',X2:8:3)                                     |
|End                                                                        |
|End.                                                                       |
|     Интересно, что в качестве оператора, который выполняется по выполнению|
|или невыполнению условия, может выступать условный же оператор. В этом     |
|случае говорят о вложенности условных операторов. Я настоятельно рекомендую|
|при решении такого рода задач составлять блок-схему алгоритма в тетради.   |
|Только потом, при составлении программы, вам остается лишь аккуратно       |
|прописывать сначала всю Then- часть, а затем переходить к Else- части.     |
|Обычно при записи условных операторов на языке Паскаль (особенно при       |
|множественных ветвлениях) команды записывают уступом вправо и вниз. Это    |
|повышает наглядность, и, поверьте, снижает потери времени на отладку.      |
|     Для иллюстрации решим еще одну задачу: "решить уравнение вида A*x^2 + |
|B*x + C = 0". Прошу не путать с квадратным уравнением, для которого нам    |
|было известно, что коэффициент А не равен нулю. Здесь же коэффициенты могут|
|быть любыми числами. Исходя из элементарных математических рассуждений,    |
|получаем следующий алгоритм:                                               |
|[pic]                                                                      |
|Program Sq2;                                                               |
|Var A, B, C, D, X, X1, X2 : Real;                                          |
|Begin                                                                      |
|Writeln ('Введите коэффициенты уравнения (A, B, C) ');                     |
|If A=0 Then                                                                |
|    If B=0 Then                                                            |
|If C=0 Then Writeln('X - любое число')                                     |
|Else Writeln('Корней нет! ')                                               |
|    Else Begin X:=-C/B; Writeln('X=',X:8:3) End                            |
|Else                                                                       |
|Begin                                                                      |
|D:=B*B-4*A*C;                                                              |
|If D<0 Then Writeln ('Корней нет! ')                                       |
|Else                                                                       |
|Begin                                                                      |
|X1:=(-B+SQRT(D))/2/A;                                                      |
|X2:=(-B-SQRT(D))/2/A;                                                      |
|Writeln ('X1=', X1:8:3, ' X2=',X2:8:3)                                     |
|End                                                                        |
|End                                                                        |
|End.                                                                       |
|                                                                           |
|Цикл. Виды Циклов.                                                         |
|     Циклом называется многократное повторение однотипных действий. Телом  |
|же цикла будем называть те самые действия, которые нужно многократно       |
|повторять.                                                                 |
|     Как вы понимаете, повторять одни и те же действия можно и при помощи  |
|оператора безусловного перехода. Если записать эти действия в программе    |
|одно за другим, а в конце поставить оператор перехода к началу этого блока.|
|Однако таким образом можно получить только программу, которая работает     |
|вечно (зацикливается). Этого можно избежать, используя совместно с         |
|оператором перехода условный оператор, поставив выполнение перехода в      |
|зависимость от выполнения некого условия. Таким образом, мы получим        |
|структуру условного перехода и возможность организации конечного цикла.    |
|Вообще говоря, так мы можем решить практически любую задачу, требующую     |
|реализации циклического алгоритма. Конечно же, при помощи одного только    |
|топора можно построить дом. Поставим перед собой вопросы: "А будет ли этот |
|дом красив? Сколько времени и сил можно сэкономить, используя всевозможные |
|специальные инструменты?". Создатель языка Паскаль Никлаус Вирт также      |
|задался этими вопросами и решил их в пользу расширения языка тремя         |
|специальными возможностями организации циклов. Для чего? - Для удобства,   |
|краткости, простоты чтения программы и, не побоюсь этого слова, красоты.   |
|Итак, существует три вида цикла, имеющих собственные операторы на языке    |
|Паскаль для их записи. Эти виды имеют собственные условные названия:       |
|"Пока", "До", "С параметром". Друг от друга они несколько отличаются и     |
|используются каждый для своего класса задач.                               |
|                                                                           |
|Цикл "ПОКА"                                                                |
|Группа операторов, называемая "телом цикла", судя по этой схеме, будет     |
|выполняться пока истинно условие цикла. Выход из цикла произойдет, когда   |
|условие перестанет выполняться.                                            |
|     Если условие ложно изначально, то тело цикла не будет выполнено ни    |
|разу. Если условие изначально истинно и в теле цикла нет действий, влияющих|
|на истинность этого условия, то тело цикла будет выполняться бесконечное   |
|количество раз. Такая ситуация называется "зацикливанием". Прервать        |
|зациклившуюся программу может либо оператор (нажав Ctrl+C), либо аварийный |
|останов самой программы, в случае переполнения переменной, деления на ноль |
|и т.п., поэтому использовать структуру цикла следует с осторожностью,      |
|хорошо понимая, что многократное выполнение должно когда-нибудь            |
|заканчиваться.                                                             |
|     На языке Pascal структура цикла "Пока" записывается следующим образом:|
|                                                                           |
|     While <условие> Do <оператор>;                                        |
|     Правда, лаконично? По-русски можно прочитать так: "Пока истинно       |
|условие, выполнять оператор". Здесь, так же как в формате условного        |
|оператора, подразумевается выполнение только одного оператора. Если        |
|необходимо выполнить несколько действий, то может быть использован         |
|составной оператор. Тогда формат оператора принимает такой вид:            |
|While <условие> Do                                                         |
|Begin                                                                      |
|<оператор #1>;                                                             |
|<оператор #2>;                                                             |
|<оператор #3>;                                                             |
|. . .                                                                      |
|End;                                                                       |
|                                                                           |
|Цикл "ДО"                                                                  |
|     Этот вид цикла отличается от предыдущего в основном тем, что проверка |
|условия повторения тела цикла находится не перед ним, а после. Поэтому цикл|
|"До" называют циклом "с постусловием", а "Пока" - "с предусловием".        |
|     Обратите также внимание на то, что новая итерация (повторное          |
|выполнение тела цикла) происходит не тогда, когда условие справедливо, а   |
|как раз тогда, когда оно ложно. Поэтому цикл и получил свое название       |
|(выполнять тело цикла до выполнения соответствующего условия).             |
|     Интересно, что в случае, когда условие цикла изначально истинно, тело |
|цикла все равно будет выполнено хотя бы один раз. Именно это отличие "до"  |
|от "пока" привело к тому, что в программировании они не подменяют друг     |
|друга, а используются для решения задач, к которым они более подходят.     |
|     Формат цикла на языке Pascal:                                         |
|Repeat                                                                     |
|<оператор #1>;                                           
12345След.
скачать работу

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

 

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

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


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