Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Раздел 1.docx
Скачиваний:
3
Добавлен:
30.04.2019
Размер:
21.6 Mб
Скачать

Тема 1.3 Модули.

Теоретическая часть:

Массивы

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

Для обозначения используется:

Имя переменных – массива, индекс

Массив – упорядочивает набор элементов одинакового типа имеющих общее имя.

Все элементы массива пронумерованы. Номер элемента массива – индекс. Массивы должны быть обязательно описаны перед использованием в программе в разделе описания типов или в разделе описания переменных.

Массивы одномерные (для указания конкретного элемента массива, используется индекс)

Многомерные массивы (используют 2 индекса для задания элементов, то массив двумерен).

Обшив вид:

Имя - массива: array [тип], тип 2 … тип N] of тип – элемент;

Тип 1, 2, n – типа индексов.

Кол-во индексов определяет размер массива. Индексы могут любых скалярных типов кроме real;

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

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

  1. Написать программу, которая выводит с клавиатуры одномерный массив из 5 целых чисел и выводит количество не нулевых элементов.

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

  1. Найти минимальный элемент таблицы от 1 до 10.

Индивидуальное задание:

  1. Написать программу, которая выводит с клавиатуры одномерный массив из 12 целых чисел и выводит количество не нулевых элементов.

Тема 1.4 Процедуры и функции. Теоретическая часть:

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

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

В языке Паскаль имеется два вида подпрограмм - процедуры и функции.

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

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

  Описание и вызов процедур и функций

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

Формат описания процедуры имеет вид:

procedure имя процедуры (формальные параметры);

раздел описаний процедуры

begin

исполняемая часть процедуры

end;

Формат описания функции:

function имя функции (формальные параметры):тип результата;

раздел описаний функции

begin

исполняемая часть функции

end;

Формальные параметры в заголовке процедур и функций записываются в виде:

var имя параметра: имя типа

и отделяются друг от друга точкой с запятой. Ключевое слово var может отсутствовать (об этом далее). Если параметры однотипны, то их имена можно перечислять через запятую, указывая общее для них имя типа. При описании параметров можно использовать только стандартные имена типов, либо имена типов, определенные с помощью команды type.Список формальных параметров может отсутствовать.

Вызов процедуры производится оператором, имеющим следующий формат:

имя процедуры(список фактических параметров);

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

Вызов функции в Турбо Паскаль может производиться аналогичным способом, кроме того имеется возможность осуществить вызов внутри какого-либо выражения. В частности имя функции может стоять в правой части оператора присваивания, в разделе условий оператора if и т.д.

Для передачи в вызывающий блок выходного значения функции в исполняемой части функции перед возвратом в вызывающий блок необходимо поместить следующую команду:

имя функции:= результат;

При вызове процедур и функций необходимо соблюдать следующие правила:

  • количество фактических параметров должно совпадать с количеством формальных;

  • соответствующие фактические и формальные параметры должны совпадать по порядку следования и по типу.

Заметим, что имена формальных и фактических параметров могут совпадать. Это не приводит к проблемам, так как соответствующие им переменные все равно будут различны из-за того, что хранятся в разных областях памяти. Кроме того, все формальные параметры являются временными переменными - они создаются в момент вызова подпрограммы и уничтожаются в момент выхода из нее.

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

var x,y,m,n: integer;

procedure MaxNumber(a,b: integer; var max: integer);

begin

if a>b then max:=a else max:=b;

end;

begin

write('Введитеx,y ');

readln(x,y);

MaxNumber(x,y,m);

MaxNumber(2,x+y,n);

writeln('m=',m,'n=',n);

end.

Аналогичную задачу, но уже с использованием функций, можно решить так:

var x,y,m,n: integer;

function MaxNumber(a,b: integer): integer;

var max: integer;

begin

if a>b then max:=a else max:=b;

MaxNumber := max;

end;

begin

write('Введитеx,y ');

readln(x,y);

m := MaxNumber(x,y);

n := MaxNumber(2,x+y);

writeln('m=',m,'n=',n);

end.

Процедуры

Описание должно начинаться с заголовка и заканчиваться оператором end.

Procedure имя (параметр1: тип;.., параметр N: тип; var параметр M: тип;..).

Program proc;

Var

a:integer;

b:real;

c:char;

Procedure N (p1:real; p2:char; var p3:real);

Begin {Начало работы процедуры}

end; {Конец процедуры}

begin {начало работы процедуры}

Параметры, используемые в заголовке процедур (параметр 1) являются формальными.

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

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

Общий вид:

Имя (параметр 1, параметр 2,..);

Здесь параметр 1, параметр 2,..-фактические параметр.

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

Функции

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

Общий вид:

Function имя (параметр 1: тип;…параметрN: тип);

Тип функции;

Здесь в круглых скобках указан перечень формальных параметров и их типов. Тип функции характеризует тип результата, возвращаемого функции вызывающей программе.

Очистка экрана

Clrscr– полная очистка экрана.

Управление курсором

Gotoxy (x,y) – перемещает курсор в позицию, заданную координатами x,y.

Управление цветом

Textcolor (color) – устанавливает цвета выводимых символов.

Textdackground – задаёт цвет фона.

Printer – обеспечивает быстрый доступ к принтеру.

Graph – содержит пакет графических средств.

Стандартные модули языка Pascal

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

Crt– содержимое средств управления дисплеем и клавиатурой компьютера.

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

Часто в задаче требуется повторить определенную последовательность операторов в разных частях программы. Для того, чтобы описывать эту последовательность один раз, а применять многократно, в языках программирования применяются подпрограммы.  Подпрограмма - автономная часть программы, выполняющая определенный алгоритм и допускающая обращение к ней из различных частей общей программы. Использование подпрограмм позволяет реализовать один из самых современных методов программирования - структурное программирование.

В языке Паскаль существует два вида подпрограмм: процедура (PROCEDURE) и функция(FUNCTION). Процедуры и функции в Паскале объявляются в разделе описания за разделом переменных. В данном уроке приведены примеры и задачи использования процедуры и функций, а также использование рекурсии в языке Паскаль. Параметры, записываемые в обращении к подпрограммам, называются фактическими;  параметры, указанные в описании подпрограмм - формальными. Фактические параметры должны соответствовать формальным по количеству, порядку следования и типу. Параметры, объявленные в основной (главной) программе, действуют в любой подпрограмме  и называются глобальными. Параметры, объявленные в подпрограмме, действуют только в этой подпрограмме и называются локальными.