Всё сдал! - помощь студентам онлайн Всё сдал! - помощь студентам онлайн

Реальная база готовых
студенческих работ

Узнайте стоимость индивидуальной работы!

Вы нашли то, что искали?

Вы нашли то, что искали?

Да, спасибо!

0%

Нет, пока не нашел

0%

Узнайте стоимость индивидуальной работы

это быстро и бесплатно

Получите скидку

Оформите заказ сейчас и получите скидку 100 руб.!


Процедуры и функции в языке Паскаль

Тип Реферат
Предмет Информатика
Просмотров
726
Размер файла
50 б
Поделиться

Ознакомительный фрагмент работы:

Процедуры и функции в языке Паскаль

Лабораторная работа №5

Тема: Процедуры и функции в языке Паскаль

Цель работы: изучить работу процедуры и функции и обрести навык написания

программ с применением процедур и функций.

1. Основные понятия.

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

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

1.1 Описание процедуры.

Процедуры описываются в специальном разделе описательной части программы вслед за разделом переменных.

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

Заголовок процедуры представляет собой:

PROCEDURE <ИМЯ> (<СПИСОК ПАРАМЕТРОВ>);

Где PROCEDURE – служебное слово,

ИМЯ – имя процедуры,

СПИСОК ПАРАМЕТРОВ - перечень имен для обозначения исходных данных и результатов работы процедуры с указанием их типов. Параметры, перечисленные в списке, называются формальными. Допускается описание процедуры, несодержащей формальных параметров:

PROCEDURE <ИМЯ>;

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

Пример:

Оформить в виде процедуры алгоритм вычисления степени y=xn c натуральным показателем n.

PROCEDURE STEP1 (N:INTEGER;X:REAL;VAR Y:REAL;)

VAR I:INTEGER;

BEGIN

Y:=1;

FOR I:=1 TO N DO

Y:=Y*X;

END;

В заголовке процедуры с именем STEP1 перечислены параметры X, N, определяющие исходные данные процедуры, и параметр Y, обозначающий значение исходной степени – результат выполнения процедуры. Указан также тип всех формальных параметров.

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

Для получения результатов в основной программе используются параметры-переменные. Эти параметры перечисляются после служебного слова VAR с обязательным указанием типа.

Тело процедуры состоит:

1) Из описательной части, где определена переменная I, необходимая и имеющая смысл только внутри данной процедуры и называемая локальной переменной (значение локальной переменной недоступно в основной программе);

2) Из составного оператора BEGIN-END, реализующего алгоритм вычисления степени действительного числа с натуральным показателем.

Это то же вычисление оформим в виде процедуры без параметров:

PROCEDURE STEP2;

VAR I:INTEGER;

BEGIN

Y:=1;

FOR I:=1 TON DO Y:=Y*X;

END;

В этом случае процедура STEP2 не содержит списка формальных параметров и работает с локальной переменной I, описанной в блоке процедуры, и переменными X, N, Y называются глобальными по отношению к процедуре STEP2. Значение глобальных переменных доступны и могут быть использованы в любой точке основной программы (в частности, внутри данной процедуры).

1.2 Функция.

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

Описание функции аналогично описанию процедуры и состоит из заголовка и блока. Заголовок функции имеет вид:

FUNCTION <ИМЯ> (<СПИСОК ПАРАМЕТРОВ>):<ТИП>;

Где FUNCTION – служебное слово,

ИМЯ – имя функции,

СПИСОК ПАРАМЕТРОВ – перечень формальных параметров (исходных

данных) с указанием их типов,

ТИП – тип результата: значение, которое должно приобретать имя функции.

Допускается описание функции без параметров:

FUNCTION <ИМЯ>: <ТИП>;

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

Пример:

Оформить в виде функции алгоритм вычисления степени Y=Xn :

FUNCTION STEP3 (N:INTEGER; X:REAL) : REAL;

VAR I:INTEGER;

Y:REAL;

BEGIN

Y:=1;

FOR I:=1 TO N DO

Y:=Y*X;

STEP3:=Y

END;

В заголовке функции с именем STEP3 перечислены параметры N,X, определяющие ее исходные данные. Результат выполнения функции (значение локальной переменной Y) присваивается ее имени STEP3. Тип результата (тип функции) – REAL, который указывается в заголовке функции при ее описании. Введение локальной переменной Y не обязательно, но придает описанию функции более наглядный вид.

1.3 Обращение к подпрограммам.

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

<ИМЯ> (<СПИСОК АРГУМЕНТОВ>);

Где ИМЯ – имя процедуры, к которой происходит обращение,

СПИСОК АРГУМЕНТОВ – перечень конкретных значений (выражений) и имен, подставляемых на место формальных параметров процедуры при ее выполнении.

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

Пример:

Cоставить программу вычисления степени Z=An, где n – целое число и A<>0. Степень с целым показателем определяется следующим образом:

Учитывая, что 1/An = (1/A)n и используя процедуру STEP1, описанную в пункте 1.1, составим алгоритм рис.1 а), б) и программу.

{ Определение степени с целым показателем }

PROGRAM STEP4;

VAR M:INTEGER;

A,Z:REAL;

{ Вычисление степени с натуральным показателем }

PROCEDURE STEP1 (N:INTEGER;X:REAL;VAR Y:REAL);

VAR I:INTEGER;

BEGIN

Y:=1;

FOR I:=1 TO N DO

Y:=Y*X;

END; {STEP1}

BEGIN

READ (A,M);

IF M=0 THEN Z:=1

ELSE IF M>0 THEN STEP1(M,A,Z) {Вызов процедуры}

ELSE STEP1(M,1/A,Z); {Вызов процедуры}

WRITELN(A:8:3,’В степени ’,M:3,’ равно ’,Z)

END.






б)

нет да

STEP1

(m,1/a,z)

STEP1

(m,a,z)


а)

Рис. 1

В программе оператор процедуры использован дважды, и каждый раз он вызывает из описательной части программы процедуру STEP1. В теле процедуры произойдет замена формальных параметров N,X,Y на фактические M,A,Z первый раз и на M,1/A,Z второй раз. Затем выполняется совокупность действий, предусмотренных операторами процедуры, и в программу будет возвращен результат Z. Возврат осуществляется к оператору программы STEP4, следующему за оператором вызова процедуры. Очень важно понимать суть и механизм замены формальных параметров фактическими.

Формальные параметры – это переменные, фиктивно (формально) присутствующие в процедуре и определяющие тип и место подстановки фактических параметров.

Фактические параметры – это реальные объекты (программы, заменяющие в теле процедуры при ее вызове формальные параметры). Над этими объектами и производятся действия, предусмотренные операторами тела процедуры.

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

Обращение к функции осуществляется аналогично обращению к стандартным функциям (sin, cos, tan и т.д.) и является разновидностью операнда в выражениях в отличие от вызова процедуры, являющегося разновидностью оператора. В этом месте выражения, где это необходимо, записывается имя функции, вслед за которым в скобках перечисляются фактические параметры. Если вызывается функция без параметров, то указывается только ее имя.

Пример:

Составить программу вычисления

,

используя функцию STEP3, описанную в п. 1.2., (Aдействительное, n - целое).

{ Пример вычисления функции }

PROGRAM STEP6;

VAR M: INTEGER;

A, Z, R: REAL;

{ Функция вычисления степени }

FUNCTION STEP3(N: INTEGER; X: REAL): REAL;

VAR M: INTEGER;

Y: REAL;

BEGIN {STEP3}

Y:=1;

FOR I:=1 TO N DO

Y:=Y*N;

SYEP3:=Y

END; {STEP3}

BEGIN

READ (A,M);

WRITELN (‘A=’, A, ‘M=’, M);

Z:=STEP3(5,A)+STEP3(5, 1/A);

IF M=0 THEN R:=1

ELSE IF M>0 THEN R:=STEP3(M,A)

ELSE R:=STEP3(M,1/A);

Z:=Z/(2*R);

WRITELN(‘Z=’, Z)

END.

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

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

Даны два вектора: А, состоящий из трех элементов, и В, состоящий из четырех элементов. Возвести каждый элемент вектора в квадрат и найти сумму элементов. Действия над векторами оформить в виде процедуры.

PROGRAM SUMMA;

TYPE MAX=ARRAY[1..4] OF REAL;

VAR S1, S2: REAL;I: INTEGER;

A,B: MAX;

PROCEDURE PR(N: INTEGER;VAR S: REAL;VAR C: MAX );

VAR I: INTEGER;

BEGIN

S:=0;

FOR I:=1 TO N DO

BEGIN

C[I]:=SQR(C[I]);

S:=S+C[I]

END;

BEGIN

FOR I:=1 TO 3 DO

READLN(A[I]);

FOR I:=1 TO 4 DO

PR(3,S1,A);

PR(4,S2,B);

WRITELN(S1,S);

FOR I:=1 TO 3 DO

WRITE(A[I]);

FOR I:=1 TO 3 DO

WRITE(B[I]);

END.

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.

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

uses crt;

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

Begin

If a<b then Min:=a

else Min:=b

End;

Var x, y, z: integer;

BEGIN

write (‘Первое число- ’);

readln (x);

write (‘Второе число- ’);

readln (y);

z:=Min(x, y);

writeln (‘Меньшее из двух чисел- ’,z);

END.

Программа, содержащая описание процедуры удвоения аргументов.

Uses crt;

Procedure Double (var x, y: integer);

Begin

x:=x+x;

y:=y+y;

End;

Var a, b: integer;

BEGIN

write (‘Введите исходные данные’)’

readln (a);

readln (b);

double (a, b);

wrteln (‘Полученные данные- ’,a ,b);

END.

Таблица 3

1. Опишите функцию нахождения наибольшего из трёх чисел..

2. Опишите функцию нахождения гипотенузы по двум катетам.

3. Опишите функцию нахождения катета по его гипотенузе и второго катета

4. Опишите функцию разность косинусов двух углов.

5. Опишите функцию сумму синусов двух углов.

6. Опишите функцию вычисления куба числа.

7. Опишите функцию суммы квадратов двух чисел.

8. Опишите функцию разности квадратов двух чисел.

9. Опишите функцию определения среднего значения из трёх введенных

10. Опишите функцию нахождения наименьшего из трёх чисел.

Таблица 4

1.Опишите процедуру, которая находит квадрат разности двух чисел.

2.Опишите процедуру, которая вычисляет площадь прямоугольного треугольника.

3.Опишите процедуру, которая вычисляет периметр прямоугольника.

4.Опишите процедуру, которая переводит угол из градусов в радианы.

5.Опишите процедуру, которая вычисляет сумму по модулю двух чисел

6.Опишите процедуру, которая вычисляет разность по модулю двух чисел

7.Опишите процедуру, которая вычисляет произведение по модулю двух чисел

8.Опишите процедуру, которая вычисляет сумму кубов двух чисел.

9.Опишите процедуру, которая вычисляет разность кубов двух чисел.

10.Опишите процедуру, которая вычисляет произведение кубов двух чисел.


Нет нужной работы в каталоге?

Сделайте индивидуальный заказ на нашем сервисе. Там эксперты помогают с учебой без посредников Разместите задание – сайт бесплатно отправит его исполнителя, и они предложат цены.

Цены ниже, чем в агентствах и у конкурентов

Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит

Бесплатные доработки и консультации

Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки

Гарантируем возврат

Если работа вас не устроит – мы вернем 100% суммы заказа

Техподдержка 7 дней в неделю

Наши менеджеры всегда на связи и оперативно решат любую проблему

Строгий отбор экспертов

К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»

1 000 +
Новых работ ежедневно
computer

Требуются доработки?
Они включены в стоимость работы

Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован

avatar
Математика
История
Экономика
icon
140073
рейтинг
icon
3053
работ сдано
icon
1328
отзывов
avatar
Математика
Физика
История
icon
138198
рейтинг
icon
5838
работ сдано
icon
2643
отзывов
avatar
Химия
Экономика
Биология
icon
93478
рейтинг
icon
2008
работ сдано
icon
1262
отзывов
avatar
Высшая математика
Информатика
Геодезия
icon
62710
рейтинг
icon
1046
работ сдано
icon
598
отзывов
Отзывы студентов о нашей работе
52 025 оценок star star star star star
среднее 4.9 из 5
Сибирский государственный университет науки и технологий им. академика М.Ф. Решетнева
Работа выполнилось достаточно быстро и качественно, если были вопросы,быстро получала на н...
star star star star star
СЗГМУ им. И.И. Мечникова
Работа была сделана досрочно! Все соответствует требованиям! Спасибо большое, Вениамин!
star star star star star
я бедный студент, работающий работу 27/8 и не всегда успевающий что-то написать. помогите.
Замечательная девушка, вежливая, сделала такую хорошую работу! Всё чётко и по делу, подроб...
star star star star star

Последние размещённые задания

Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн

Решение задач по предмету «Основы экономической грамотности»

Решение задач, Основы экономической грамотности

Срок сдачи к 18 мая

только что
1 минуту назад

написать сочинение 250 слов с цитатами

Сочинение, Литература

Срок сдачи к 5 мая

6 минут назад

Решить задачу по бюджетному праву

Решение задач, Бюджетное право

Срок сдачи к 5 мая

7 минут назад

7. Задача коммивояжера

Решение задач, исследование операций

Срок сдачи к 16 мая

9 минут назад

Контрольная

Контрольная, Технология конструкционных материалов

Срок сдачи к 13 мая

11 минут назад

Курсовое проектирование

Курсовая, Детали машин и основы конструирования

Срок сдачи к 20 мая

11 минут назад

Выполнить задания

Тест дистанционно, Химия

Срок сдачи к 8 мая

11 минут назад

Добрый день! Обучаюсь на курсах профессиональной переподготовки на...

Курсовая, Горный электромеханик, электротехника

Срок сдачи к 7 мая

11 минут назад

Выполнить работы

Тест дистанционно, Физика

Срок сдачи к 8 мая

11 минут назад

Написание дипломной работы по методичке, с имеющимся содержанием

Диплом, Экономическая безопасность

Срок сдачи к 10 мая

11 минут назад

Маркетинг на транспорте

Курсовая, Маркетинг

Срок сдачи к 5 мая

11 минут назад

Описать схему как она работает и для чего...

Реферат, Элнктротехника

Срок сдачи к 6 мая

11 минут назад

Выполнить практическую 26

Другое, Обществознание

Срок сдачи к 5 мая

11 минут назад

6. Поиск минимального пути в графе

Решение задач, исследование операций

Срок сдачи к 17 мая

11 минут назад

Решить задачу

Решение задач, Высшая математика

Срок сдачи к 7 мая

11 минут назад

8. Задача о рюкзаке

Решение задач, исследование операций

Срок сдачи к 14 мая

11 минут назад
planes planes
Закажи индивидуальную работу за 1 минуту!

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

«Всё сдал!» — безопасный онлайн-сервис с проверенными экспертами

Используя «Свежую базу РГСР», вы принимаете пользовательское соглашение
и политику обработки персональных данных
Сайт работает по московскому времени:

Вход
Регистрация или
Не нашли, что искали?

Заполните форму и узнайте цену на индивидуальную работу!

Файлы (при наличии)

    это быстро и бесплатно