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

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

как и раздел описаний     |
|основной программы (описание процедур и функций - в том числе). Однако все |
|описанные здесь объекты "видимы" лишь в этой процедуре. Они здесь локальны |
|также, как и имена формальных параметров. Объекты, описанные ранее в       |
|разделе описаний основной программы и не переопределенные в процедуре,     |
|называются глобальными для этой подпрограммы и доступны для использования. |
|Легко заметить схожесть структуры программы целиком и любой из ее процедур.|
|Действительно, ведь и процедура и основная программа реализуют некий       |
|алгоритм, просто процедура не дает решения всей задачи. Отличие в заголовке|
|и в знаке после End.                                                       |
|Формат описания функции:                                                   |
|Function <Имя функции> (<Имя форм. параметра 1>:<Тип>;                     |
|< Имя форм. параметра 2>:<Тип>?) : <Тип результата>;                       |
|<Раздел описаний>                                                          |
|Begin                                                                      |
|<Тело функции>                                                             |
|End;                                                                       |
|В теле функции обязательно должна быть хотя бы команда присвоения такого   |
|вида: <Имя функции>:=<Выражение>;                                          |
|Указанное выражение должно приводить к значению того же типа, что и тип    |
|результата функции, описанный выше.                                        |
|Вызов процедуры представляет в программе самостоятельную инструкцию:       |
|<Имя процедуры>(<Фактический параметр 1>, < Фактический параметр 2>?);     |
|Типы фактических параметров должны быть такими же, что и у соответсвующих  |
|им формальных.                                                             |
|Вызов функции должен входить в выражение. При вычислении значения такого   |
|выражения функция будет вызвана, действия, находящиеся в ее теле, будут    |
|выполнены, в выражение будет подставлено значение результата функции.      |
|Приведем простейший пример использования подпрограммы.                     |
|Задача: "Найти максимальное из трех введенных чисел". Для решения          |
|воспользуемся описанием функции, принимающей значение максимального из двух|
|чисел, которые передаются в нее в виде параметров.                         |
|Program Fn;                                                                |
|Var                                                                        |
|A,B,C :Real;                                                               |
|Function Max(A,B:Real):Real; {Описываем функцию Max с формальными}         |
|Begin {параметрами A и B, которая принимает }                              |
|If A>B Then Max:=A {значение максимального из них }                        |
|Else Max:=B {Здесь A и B - локальные переменные }                          |
|End;                                                                       |
|Begin                                                                      |
|Writeln('Введите три числа');                                              |
|Readln(A,B,C);                                                             |
|Writeln('Максимальным из всех является ', Max(Max(A,B),C))                 |
|End.                                                                       |
|Обратите внимание на краткость тела основной программы и на прозрачность   |
|действий внутри функции. Формальные параметры A и B, используемые в        |
|подпрограмме, не имеют никакого отношения переменным A и B, описанным в    |
|основной программе.                                                        |
|Существует два способа передачи фактических параметров в подпрограмму: по  |
|значению и по ссылке. В первом случае значение переменной-фактического     |
|параметра при вызове подпрограммы присваивается локальной переменной,      |
|являющейся формальным параметром подпрограммы. Что бы потом ни происходило |
|с локальной переменной, это никак не отразится на соответствующей          |
|глобальной. Для одних задач это благо, но иногда требуется произвести в    |
|подпрограмме действия над самими переменными, указанными в качестве        |
|фактических параметров. На помощь приходит второй способ. Происходит       |
|следующее: при обращении к подпрограмме не происходит формирования         |
|локальной переменной-формального параметра. Просто на время выполнения     |
|подпрограммы имя этой локальной переменной будет указывать на ту же область|
|памяти, что и имя соответствующей глобальной переменной. Если в этом случае|
|изменить локальную переменную, изменятся данные и в глобальной.            |
|Передача параметров по ссылке отличается тем, что при описании подпрограммы|
|перед именем переменной-формального параметра ставится служебное слово Var.|
|Теперь использование в качестве фактических параметров выражений или       |
|непосредственных значений уже не допускается - они должны быть именами     |
|переменных.                                                                |
|Еще один классический пример. Задача: "Расположить в порядке неубывания три|
|целых числа".                                                              |
|Program Pr;                                                                |
|Var                                                                        |
|     S1,S2,S3 :Integer;                                                    |
|Procedure Swap(Var A,B: Integer);{Процедура Swap с параметрами-переменными}|
|                                                                           |
|Var C : Integer; {C - независимая локальная переменная}                    |
|Begin                                                                      |
|      C:=A; A:=B; B:=C {Меняем местами содержимое A и B}                   |
|End;                                                                       |
|Begin                                                                      |
|Writeln('Введите три числа');                                              |
|Readln(S1,S2,S3);                                                          |
|If S1>S2 Then Swap(S1,S2);                                                 |
|If S2>S3 Then Swap(S2,S3);                                                 |
|If S1>S2 Then Swap(S1,S2);                                                 |
|Writeln('Числа в порядке неубывания:V',S1,S2,S3)                           |
|End.                                                                       |
|                                                                           |
|Работа с файлами                                                           |
|Тип-файл представляет собой последовательность компонент одного типа,      |
|расположенных на внешнем устройстве (например, на диске). Элементы могут   |
|быть любого типа, за исключением самого типа-файла. Число элементов в файле|
|при описании не объявляется. Работа с физическими файлами происходит через |
|так называемые файловые переменные.                                        |
|Для задания типа-файла следует использовать зарезервированные слова File и |
|Of, после чего указать тип компонент файла.                                |
|Пример:                                                                    |
|Type                                                                       |
|N = File Of Integer; {Тип-файл целых чисел}                                |
|C = File Of Char; {Тип-файл символов}                                      |
|Есть заранее определенный в Паскале тип файла с именем Text. Файлы этого   |
|типа называют текстовыми.                                                  |
|Введя файловый тип, можно определить и переменные файлового типа:          |
|Var                                                                        |
|F1 : N;                                                                    |
|F2 : C;                                                                    |
|F3 : Text;                                                                 |
|Тип-файл можно описать и непосредственно при введении файловых переменных: |
|Var                                                                        |
|     Z : File Of Word;                                                     |
|Файловые переменные имеют специфическое применение. Над ними нельзя        |
|выполнять никаких операций (присваивать значение, сравнивать и т.д.). Их   |
|можно использовать лишь для выполнения операций с файлами (чтение, запись и|
|т.д.).                                                                     |
|Элементы файла считаются расположенными последовательно, то есть так же,   |
|как элементы линейного массива. Отличие же состоит в том, что, во-первых,  |
|размеры файла могут меняться, во-вторых, способ обращения к элементам      |
|совсем другой: невозможно обратиться к произвольному элементу файла;       |
|элементы его просматриваются только подряд от начала к концу, при этом в   |
|каждый момент времени доступен только один элемент. Можно представить себе,|
|что для каждого файла существует указатель, показывающий в данный момент на|
|определенный компонент файла. После проведения операции чтения или записи  |
|указатель автоматически передвигается на следующий компонент.              |
|Перед тем, как осуществлять ввод-вывод, файловая переменная должна быть    |
|связана с конкретным внешним файлом при помощи процедуры Assign.           |
|Формат:                                                                    |
|     Assign(<Имя фа
Пред.1112
скачать работу

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

 

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

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


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