Теоретический материал

Требования к знаниям

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ 1

Тема: «Разработка алгоритмов с процедурами»

Цели:

- закрепление изученного материала по основным операторам языка Pascal;

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

 

Характер занятия: поисковый.

Форма организации: фронтальная.

Обеспечение занятия:ПЭВМ, ОС Windows, Borland Pascal, ручка, карандаш, линейка, тетрадь для практических работ.

Перед выполнением практической работы студент должен

знать:

- основные элементы IDE Borland Pascal и принципы работы в ней;

- основные операторы языка Pascal.

 

после выполнения практической работы студент должен

уметь:

- разрабатывать алгоритмы с использованием процедур.

 

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

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

Вспомогательный алгоритм тоже может вызывать другие вспомогательные, длина такой цепочки вызовов теоретически не ограничена.

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

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

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

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

При составлении подпрограмм с параметрами надо соблюдать следующие правила:

1) каждая подпрограмма имеет свое имя и список формальных параметров;

2) процедура из основной программы вызывается командой вызова, которая по форме ничем не отличается от вызова команды исполнителя. Результат присваивается одной или нескольким переменным, которые находятся в списке формальных параметров. Результатом могут быть не только значения переменных, но какое либо действие, выполненное ЭВМ.

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

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

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

Пример 1.

Nod(Abs(E), F, G);

 

Значение каждого фактического параметра при вызове процедуры передаётся формальному параметру. Временно управление передаётся процедуре. После завершения работы процедуры управление возвращается в основную программу.

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

В качестве фактических параметров могут быть константы, переменные, выражения, массивы. В качестве формальных параметров могут быть только переменные(константы и выражения недопустимы).

Пример 2. (оформление отчета при выполнении практической работы)

1. Условие задачи.

Составить программу вычитания дробей (a, b, c, d — натуральные числа). Результат представить в виде обыкновенной несократимой дроби.

2. Постановка задачи.

Для организации выполнения программы определим целочисленные переменные A, B, C, D (вводимые переменные) для обозначения числителей и знаменателей обыкновенных дробей. Чтобы найти разность обыкновенных дробей надо привести их к общему знаменателю. При этом числитель результата будет вычисляться по формуле E=A*D-B*C, а знаменатель - F=B*D, где E,F также принимают целочисленные значения. Для сокращения полученной дроби необходимо найти наибольший общий делитель (НОД) числителя и знаменателя результата вычитания. Для нахождения НОД можно использовать процедуру. E, F, G - целочисленные параметры основной программы, M, N, K - целочисленные параметры процедуры. G и K – параметры для передачи НОД. Для нахождения НОД можно использовать цикл с предусловием и условный оператор. После нахождения НОД числитель и знаменатель результата сокращаются путем целочисленного деления их на НОД.

В результате ответ выводится в виде обыкновенной несократимой дроби.

3. Текст программы.

Program Sub;

Var A, B, C, D, G, E, F : Integer;

Procedure Nod(M, N : Integer; Var K : Integer);