Основы программирования на языке Паскаль
|
|<оператор #2>; |
|<оператор #3>; |
|. . . |
|Until <условие>; |
| Читается так: "Выполнять оператор #1, оператор #2. : до выполнения |
|условия". |
| Здесь не требуется использование составного оператора, потому, что |
|сами слова Repeat и Until являются операторными скобками. |
| |
|Цикл "С параметром". |
| В данном случае параметром будет являться целочисленная переменная, |
|которая будет изменяться на единицу при каждой итерации цикла. Таким |
|образом, задав начальное и конечное значения для такой переменной, можно |
|точно установить количество выполнений тела цикла. Нарисовать блок-схему |
|такой структуры вы сможете сами после некоторых пояснений. |
| Форматов у этого вида цикла предусмотрено два: |
| For <И.П.>:=<Н.З.> To <К.З.> Do <оператор>; |
| For <И.П.>:=<Н.З.> Downto <К.З.> Do <оператор>; |
| Здесь И.П. - имя переменной-параметра, Н.З. - его начальное значение, |
|К.З. - соответственно конечное значение параметра. В качестве начального и |
|конечного значений |
| Читается данная структура так: "Для переменной (далее следует ее имя) |
|от начального значения до конечного выполнять оператор (являющийся телом |
|цикла)". Иногда цикл с параметром даже называют "Для" или "For". В первом |
|случае параметр с каждой итерацией увеличивается на единицу, во втором - |
|уменьшается. |
| Выполняется этот цикл по следующему алгоритму: |
| 1. переменной-параметру присваивается начальное значение; |
| 2. выполняется тело цикла; |
| 3. переменная-параметр автоматически увеличивается на 1 (в первом |
|случае формата); |
| 4. если параметр превышает конечное значение, то происходит выход из |
|цикла, иначе - переход к пункту 2. |
| Примечание: при использовании Downto параметр автоматически |
|уменьшается на 1, а выход из цикла происходит тогда, когда параметр |
|становится меньше конечного значения. |
| Таким образом, в отличие от первых двух видов цикла, этот цикл |
|используется тогда, когда известно необходимое количество выполнений тела |
|цикла. |
| Вообще говоря, цикл "Пока" является универсальным, то есть любая |
|задача, требующая использования цикла, может быть решена с применением этой|
|структуры. Циклы "До" и "С параметром" созданы для удобства |
|программирования. |
| Пример. |
| Найти сумму квадратов всех натуральных чисел от 1 до 100. |
| Решим эту задачу с использованием всех трех видов циклов. |
|I. С использованием цикла "Пока". |
|Program Ex1; |
|Var |
| A : Integer; |
| S : Longint; |
|Begin |
|A:=1; S:=0; |
|While A<=100 Do |
|Begin |
|S:=S+A*A; |
|A:=A+1 |
|End; |
|Writeln(S) |
|End. |
|II. С использованием цикла "До". |
|Program Ex2; |
|Var |
| A : Integer; |
| S : Longint; |
|Begin |
|A:=1; S:=0; |
|Repeat |
|S:=S+A*A; |
|A:=A+1 |
|Until A>100; |
|Writeln(S) |
|End. |
|III. С использованием цикла "С параметром". |
|Program Ex3; |
|Var |
| A : Integer; |
| S : Longint; |
|Begin |
|S:=0; |
|For A:=1 To 100 Do S:=S+A*A; |
|Writeln(S) |
|End. |
| Теперь вам известны все основные алгоритмические структуры языка |
|Паскаль. Комбинируя их, возможно запрограммировать решение любой задачи, |
|конечно, если таковое существует. Тем не менее, изучение языка на этом не |
|закачивается, так как для написания хороших программ по утверждению |
|уважаемого Никлауса Вирта (за время моей работы у меня не появилось |
|оснований в этом сомневаться) нужны кроме алгоритмических, еще удобные |
|структуры данных. В рассматриваемом языке таких структур множество, для |
|каждого вида определены свои команды и операции. К их рассмотрению мы и |
|переходим. |
| |
|Строковые операции |
| До сих пор мы с вами рассматривали программы, реализующие алгоритмы |
|обработки числовых данных. Однако хоть ЭВМ изначально и были созданы только|
|для этой цели, по мере развития аппаратной части появилась возможность |
|оцифровывать данные других типов, хранить их в памяти машины, |
|перерабатывать, выводить во внешний по отношению к компьютеру мир. Проще |
|всего можно было так поступить с текстовой информацией. Если не ставить |
|перед машиной задачу "понимания" смысла текста, то задача оцифровки |
|сводится к установлению правил замены символов (литер) при вводе в |
|компьютер на их коды и обратной замены при выводе информации на экран или |
|принтер. Такие правила, конечно же, были составлены. Как водится, сначала |
|их было множество (вспомните разнообразие таблиц кодировки), затем весь мир|
|остановился на ASCII. |
| Все языки программирования высокого уровня имеют средства работы с |
|литерными величинами. Паскаль - не исключение. Как вам уже известно, в |
|стандарте языка описаны два типа переменных для литерных величин. Это - |
|String и Char. Напомню - переменная типа Char может содержать в себе только|
|один единственный символ, тип String предназначен для хранения строковых |
|величин до 255 символов длиною. Кстати, вы знаете не все о типе String. При|
|описании переменной этого типа вы можете сами указать максимальное число |
|символов, которое можно занести в нее. Конечно же, это число не должно |
|превышать 255. Делается это так: |
|Var |
|S : String[30]; |
| Для чего это нужно? |
| Дело в том, что при компиляции для каждой переменной отводится свой |
|участок памяти. Если мы будем выделять для всех переменных типа String по |
|256 байт, то это приведет к тому, что при использовании достаточно большого|
|их количества, памяти может и не хватить? Но если в переменной мы |
|собираемся хранить, например, фамилию пользователя, то тридцати символов |
|(тридцати байт) для этого вполне достаточно. Таким образом, экономитс
| | скачать работу |
Основы программирования на языке Паскаль |