Учебная работа. Реферат: Процедуры и функции в языке Паскаль
Тема:
Процедуры и функции в языке Паскаль
Цель работы:
изучить работу процедуры и функции и обрести навык написания
программ с применением процедур и функций.
1.
Главные понятия.
Обширно всераспространена в программках форма повторяемости, когда одна и та же последовательность действий обязана производиться на разных шагах инфы. В программках такового рода в разных местах встречаются фрагменты, однообразные по выполняемым действиям и различающиеся лишь в значениях начальных данных. При составлении программки приходиться задавать одну и ту же группу операторов, подобающую любому из циклических фрагментов. Для наиболее действенного программирования схожих повторений в языке введено понятие
. Циклическая группа операторов оформляется в виде самостоятельной единицы – подпрограммы, записывается однократно, а в соответственных местах программки обеспечивает только воззвание к ней. Внедрение аппарата подпрограммы дозволяет уменьшить размер и сделать лучше структуру программки исходя из убеждений наглядности и читаемости. Подпрограмма быть может рассмотрена как самостоятельная программка (со своими входными и выходными данными).
В языке Паскаль подпрограммы реализуются в виде
и
, которые вводятся в программку при помощи собственного описания.
1.1 Описание процедуры.
Процедуры описываются в особом разделе описательной части программки вослед за разделом переменных.
Неважно какая процедура состоит, аналогично программке, из заголовка процедуры и блока.
Заголовок процедуры представляет собой:
Где
– служебное слово,
– имя процедуры,
— список имен для обозначения начальных данных и результатов работы процедуры с указанием их типов. Характеристики, перечисленные в перечне, именуются
. Допускается описание процедуры, несодержащей формальных характеристик:
Содержательная часть процедуры представляет собой блок и состоит, как следует, из раздела описаний (меток, констант, типов, переменных, процедур, и функций) и раздела операторов, представляющего из себя составной оператор
. Завершается блок процедуры точкой с запятой.
Пример:
Оформить в виде процедуры метод вычисления степени y=xn
c натуральным показателем
.
END;
В заголовке процедуры с именованием
перечислены характеристики
определяющие начальные данные процедуры, и параметр
, обозначающий
Если в заголовке процедуры характеристики указаны без слова
, то это параметры-значения. Характеристики-значения могут изменяться снутри процедуры, но для наружной программки это изменение окажется незамеченным.
Для получения результатов в главный программке употребляются параметры-переменные. Эти характеристики перечисляются опосля служебного слова
с неотклонимым указанием типа.
тело процедуры состоит:
1)
Из описательной части, где определена переменная
, нужная и имеющая смысл лишь снутри данной процедуры и именуемая локальной переменной (
2)
Из составного оператора BEGIN-END, реализующего метод вычисления степени реального числа с натуральным показателем.
Это то же вычисление оформим в виде процедуры без характеристик:
В этом случае процедура
не содержит перечня формальных характеристик и работает с локальной переменной
, описанной в блоке процедуры, и переменными
именуются глобальными по отношению к процедуре
.
1.2 Функция.
Функция
это подпрограмма, итог выполнения которой есть единственное скалярное значения ее характеристик.
Описание функции аналогично описанию процедуры и состоит из заголовка и блока. Заголовок функции имеет вид:
Где
– служебное слово,
имя функции,
список формальных характеристик (начальных
данных) с указанием их типов,
тип результата:
Допускается описание функции без характеристик:
В содержательной части программы-функции имени обязано быть присвоено некое значение (части некого оператора присваивания.
Пример:
Оформить в виде функции метод вычисления степени Y=Xn
:
В заголовке функции с именованием
перечислены характеристики
, определяющие ее начальные данные. Итог выполнения функции (Y
) присваивается ее имени
. Тип результата (тип функции) –
который указывается в заголовке функции при ее описании. Введение локальной переменной
не непременно, но присваивает описанию функции наиболее приятный вид.
1.3 Воззвание к подпрограммам.
Описание процедуры (либо функции), расположенное в разделе описаний, {само по себе} никакого деяния не вызывает. Чтоб исполнить функцию (либо функцию), нужно в подходящем месте программки поместить воззвание к ней. Воззвание к процедуре делается при помощи оператора процедуры, имеющего вид:
Где
имя процедуры, к которой происходит воззвание,
список определенных значений (выражений) и имен, подставляемых на пространство формальных характеристик процедуры при ее выполнении.
При вызове процедуры формальные характеристики, обозначенные в заголовке, заменяются аргументами в порядке их следования: первому слева параметру в перечне ставится в соответствие 1-ый аргумент, второму – 2-ой и т.д. Аргументы, перечисленные в операторе процедуры, именуются также фактическими параметрами. Число, тип и порядок следования формальных и фактических характеристик обязано совпадать. структура программки, содержащей функцию, имеет вид:
Пример:
Cоставить программку вычисления степени Z=An
, где n – целое число и A<>0. Степень с целым показателем определяется последующим образом:
Беря во внимание, что 1/An
= (1/A)n
и используя функцию
описанную в пт 1.1, составим метод рис.1 а), б) и программку.
FOR I:=1 TO N DO
{
}
б)
нет да
STEP1
(m,1/a,z)
STEP1
(m,a,z)
а)
Рис. 1
В программке оператор процедуры применен два раза, и всякий раз он вызывает из описательной части программки функцию
. В теле процедуры произойдет подмена формальных характеристик
на фактические
1-ый раз и на
2-ой раз. Потом производится совокупа действий, предусмотренных операторами процедуры, и в программку будет возвращен итог
. Возврат осуществляется к оператору программки
, последующему за оператором вызова процедуры. Весьма принципиально осознавать сущность и механизм подмены формальных характеристик фактическими.
– это переменные, фиктивно (формально) присутствующие в процедуре и определяющие тип и пространство подстановки фактических характеристик.
это настоящие объекты (программки, заменяющие в теле процедуры при ее вызове формальные характеристики). Над этими объектами и выполняются деяния, предусмотренные операторами тела процедуры.
Имена формальных и фактических характеристик целенаправлено выбирать разными, что сделает программку наиболее приятной.
Воззвание к функции осуществляется аналогично воззванию к обычным функциям (
и т.д.) и является разновидностью операнда в выражениях в отличие от вызова процедуры, являющегося разновидностью оператора. В этом месте выражения, где это нужно, записывается имя функции, вослед за которым в скобках перечисляются фактические характеристики. Если вызывается функция без характеристик, то указывается лишь ее имя.
Пример:
Составить программку вычисления
,
используя функцию
описанную в п. 1.2., (
действительное,
целое).
Функция
вызывается четыре раза для разных значений фактических характеристик. Определение фактических и формальных характеристик, локальных и глобальных переменных для функций и процедур совсем идентично.
Процедуры могут работать не только лишь с ординарными переменными, да и с массивами. В качестве примера разглядим последующую задачку.
Даны два вектора: А, состоящий из 3-х частей, и В, состоящий из 4 частей. Возвести любой элемент вектора в квадрат и отыскать сумму частей. Деяния над векторами оформить в виде процедуры.
2. Задание
2.1
Из таблицы 1. По номеру компа взять задание и составить программку,
иcпользуя подпрограмму- функцию.
2.2
Из таблицы 2 по номеру компа взять задание и составить программку, ис
пользуя подпрограмму FUNCTION.
2.3
Из таблицы 3 по номеру компа взять задание и составить программку, ис
пользуя подпрограмму FUNCTION.
2.4
Из таблицы 4. По номеру компа взять задание и составить программку, ис
пользуя подпрограмму- функцию
3. Содержание Отчёта
отчет ДОЛЖЕН СОДЕРЖАТЬ:
1) Задание к работе;
2) Программку;
3) Блок- схему метода;
4) Результаты расчётов;
4. Контрольные вопросцы:
1.
Заголовок процедуры и функции.
2.
Что заходит в тело процедуры?
3.
Отличия процедуры и функции.
4.
Понятия локальной и глобальной переменной.
5.
Воззвание к подпрограммам.
6.
Какие характеристики являются фактическими, какие формальными?
7.
Характеристики процедур и функций.
8.
Соответствие меж формальными и фактическими параметрами.
5. Литература
1. Новичков В.С. ПАСКАЛЬ – В.С. Новичков, Н.И. Парфилов, А.Н. Пылькин — М.: Высш. школа, 1990г. 223 стр.
2. Савельев А.Я. ЯЗЫКИ ПРОГРАММИРОВАНИЯ (Паскаль, ПЛ/М). – М.:Высш. школа. 1987г. –143 стр.
3. Боон К. ПАСКАЛЬ ДЛЯ ВСЕХ. – М.- Энергоатомиздат, 1988г.- 190 стр.
тут применены последующие процедуры:
GoToXY (X, Y:Byte) — перемещает курсор к элементу экрана с данными координатами, беря во внимание, что размер экрана в текстовом режиме 25 строк по 80 знаков.
TextBackGround (Color : Byte) – задает цвет фона.
TextColor (Color : Byte) – задает цвет знаков.
uses crt;
var s1,s2,s3:string;
c1,c2,c3:byte;
procedure pr(s:string;x,y,c:byte);
begin
textcolor(c);
gotoxy(x,y);writeln(s);
end;
begin
writeln(‘введите оценку по арифметике’);readln(s1);
writeln(‘введите оценку по физике’);readln(s2);
writeln(‘введите оценку по истории‘);readln(s3);
clrscr;
pr(‘матемаитка’+s1,1,1,5);{на первом месте текст, столбец, строчка, цвет печати}
pr(‘физика’+s2,40,10,8); {физика+ оценка, столбец 40, строчка 10, цвет 8(сероватый)}
pr(‘история’+s3,70,23,12); {история+, столбец 70, строчка 23, цвет 12(св крас)}
repeat until keypressed;
end.
Таблица
1
N
вар.
Содержание задания
1
.
Процедура запрашивает три фамилии и выводит текст в данном месте экрана.(употреблять модуль crt)
2.
Процедура запрашивает имена трёх человек и выводит их различным цветом.(употреблять модуль crt) красноватый голубий голубой)
3
.
Процедура запрашивает оценки по трём предметам и цвет и выводит данным цветом.(употреблять модуль crt)(красноватый голубий голубой)
4.
Процедура запрашивает частоту обновления трёх марок мониторов и выводит их мерцающим цветом. (употреблять модуль crt)
5
.
Процедура запрашивает частоту трёх марок микропроцессора и выводит их по главной диагонали. (употреблять модуль crt)
6.
Процедура запрашивает три объёма памяти разных марок видео карт и выводит их по побочной диагонали. (употреблять модуль crt)
7
.
Процедура запрашивает частоты трёх марок материнских плат микропроцессора и выводит их сверху, в центре, понизу средней части экрана. (употреблять модуль crt)
8
.
Процедура запрашивает скорость трёх марок машин и выводит их в центре экрана сначала посреди и в конце строчки. (употреблять модуль crt)
9.
Процедура запрашивает массу подъёмную трёх марок грузовых авто и выводит их в конце строчки в на 1 , в центре, в конце строчки. (употреблять модуль crt)
10.
Процедура запрашивает количество мест трёх марок автобуса и выводит красноватым цветом в нижней строке экрана по очереди. (употреблять модуль crt)
Таблица 2
N
вар.
Содержание задания
1
.
при а=4,5; b=0,7; c=6,2; А x воспринимает значения 0,2; 0,56; 0,83
2.
, при a=0,8; b=0,16; c=0,4;
a=0,6; b=0,4; c=1,2;
a=0,47; b=0,1; c=0,5.
3
, при a=0,15; b=1,5;
a=1,7; b=0,1.
4.
, при x=1,4; y=0,8;
x=0,9; y=0,6;
x=2,9; y=0,4; a d=5,3, при всех значениях x,y.
5.
, при x=0,4; y=1,2;
x=0,25; y=1,3;
a=0,54; b=1 при всех значениях x, y
6.
, при a=10,7; b=6,3; y=0,35; a x воспринимает значения 0,6; 0,51; 0,42.
7.
, при x=3; y=4;
x=1,6; y=5,8;
x=4,5; y=2,7; a=7,1; b=2,4 при всех значениях x, y
8.
, при x=0,1; y=0,7;
x=0,4; y=0,6
x=0,5; y=0,2; a=2; b=0,1 при всех значениях x, y
9.
, при a=9,7; b=2,7, a x воспринимает значения 4,8; 9,6; 0,44.
10.
, при x=0,35; y=0,1;
x=0,82; y=0,12;
x=0,67; y=0,3, a=0,24;
b=4,9 при всех значениях x, y.
программка, содержащая описание функции выбора наименьшего из 2-ух аргументов.
программка, содержащая описание процедуры удвоения аргументов.
Таблица 3
1. Опишите функцию нахождения большего из трёх чисел..
2. Опишите функцию нахождения гипотенузы по двум катетам.
3. Опишите функцию нахождения катета по его гипотенузе и второго катета
4. Опишите функцию разность косинусов 2-ух углов.
5. Опишите функцию сумму синусов 2-ух углов.
6. Опишите функцию вычисления куба числа.
7. Опишите функцию суммы квадратов 2-ух чисел.
8. Опишите функцию разности квадратов 2-ух чисел.
9. Опишите функцию определения среднего значения из трёх введенных
10. Опишите функцию нахождения меньшего из трёх чисел.
Таблица 4
1.Опишите функцию, которая находит квадрат разности 2-ух чисел.
2.Опишите функцию, которая вычисляет площадь прямоугольного треугольника.
3.Опишите функцию, которая вычисляет периметр прямоугольника.
4.Опишите функцию, которая переводит угол из градусов в радианы.
5.Опишите функцию, которая вычисляет сумму по модулю 2-ух чисел
6.Опишите функцию, которая вычисляет разность по модулю 2-ух чисел
7.Опишите функцию, которая вычисляет произведение по модулю 2-ух чисел
8.Опишите функцию, которая вычисляет сумму кубов 2-ух чисел.
9.Опишите функцию, которая вычисляет разность кубов 2-ух чисел.
10.Опишите функцию, которая вычисляет произведение кубов 2-ух чисел.
]]>