Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Структура процедуры и функции.



 

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

 

Procedure имя процедуры (параметры);

Label

Метки;

Const

Объявление констант;

Type

Объявление типов данных;

Var

Объявление переменных;

Procedure, function;

Begin

Тело главной процедуры;

End.

 

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

 

Function имя функции (параметры): тип данных;

 

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

- процедуры и функции имеют заголовок procedure или function, соответственно, а не program;

- процедуры и функции заканчиваются точкой с запятой (;), а не точкой (.).

Процедуры и функции могут иметь описание своих констант, типов данных, переменных и свои процедуры и функции. Но все эти элементы могут быть использованы только в тех процедурах и функциях, где они объявлены.

 

 

Пример программы.

 

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

 

Program DoRatio;

Var

A, B: Integer;

Ratio: Real;

 

Procedure GetData (var X, Y: Integer);

Begin

Writeln (‘Введите два числа:’);

Readln (X, Y);

End;

 

Function GetRatio (I, J: Real);

Begin

GetRatio := I / J;

End;

 

Begin

GetData (A, B);

Ratio:= GetRatio (A, B);

Writeln (‘Отношение равно’, Ratio);

End.

 

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

После компиляции и запуска программы первым выполняется оператор GetData (A, B). Этот тип оператора известен как вызов процедуры. При обработке вызова выполняются операторы в GetData, при этом X и Y (формальные параметры) заменяются на А и В (фактические параметры). Ключевое слово var перед X и Y в операторе вызова GetData говорит о том, что фактические переменные должны быть переменными и что значения переменных могут быть известны и возвращены вызывающей программе. При завершении работы GetData управление возвращается в главную программу на опрератор, следующий за вызовом GetData.

Следующий оператор – вызов функции GetRatio. Отметим некоторые отличия. Во-первых, GetRatio возвращает значение, которое должно быть использовано; в этом случае оно присваивается Ratio. Во-вторых, значение присваивается GetRatio в главной программе, этим функция определяет, какое значение возвращается. В-третьих, нет ключевого слова var перед формальными параметрами I и J. Это означает, что они могут быть любыми целочисленными выражениями, такими как Ratio:= GetRatio (A+B, 300); и что если даже их значения будут изменены в функции, то новые значения не возвратятся обратно в вызывающую программу. Кстати, это не является отличием процедуры от функции. Можно использовать оба типа параметров для обоих типов программ.

 

 

Комментарии.

 

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

Комментарий начинается левой фигурной скобкой ({). Она указывает компилятору: игнорировать все, пока не встретится правая фигурная скобка (}).

Комментарий может занимать несколько строк:

 

{Это пример

     длинного комментария,

     занимающего

     несколько строк}

 

Кроме того, существует альтернативная форма комментария. Начинается “(*” и заканчивается “*)”. Комментарий, начинающийся с “(*” игнорирует все фигурные скобки, и наоборот.

 

КОНТРОЛЬНЫЕ ЗАДАНИЯ

 

 

Вариант №1

1.1 Составить программу определения катета прямоугольного треугольника по известным значениям гипотенузы и второго катета В.

2.1 Разработать программу вычисления функции

Предусмотреть вывод данных на экран.

3.1. Вычислить функцию у = 2х2 - 8Sinх (-2< х >3). Найти ее минимум и максимум. Вывести в виде таблицы результаты вычислений.

4.1. С клавиатуры задается последовательность чисел. Найти сумму чисел, предшествующих первому отрицательному в задаваемой последовательности. Вывести сумму чисел, а также те из них, которые лежат в интервале от 1 до 5. Найти число таких чисел.

 

Вариант№2

1.2 Составить программу вычисления объема полого цилиндра с внешним радиусом R и внутренним r. Высота цилиндра H.

2.2 Ввести с клавиатуры 3 числа, найти среди них наименьшее. Предусмотреть выводы данных на дисплей.

3.2. Вычислить функцию у = Sin 3х (-p< х < p). Предусмотреть вывод данных в виде таблиц.

4.2. Дано положительное число e, и последовательность а1, а2, а3. . . , образованная по следующему закону:

 

Найти первый член последовательности, для которого выполняется условие: abs(an-an-1)<e. Вывести на экран an и n.

 

Вариант №3

1.3 Составить программу для определения расстояния пройденного физическим телом за время t. Тело движется с постоянным ускорением А и имеет начальную скорость V.

2.3 Ввести с клавиатуры 4 числа. Найти среди них числа, больше полусуммы введенных чисел. Предусмотреть выводы данных на дисплей.

3.3. Вычислить функцию у = Cos2x (-p< х < p). Предусмотреть вывод данных в виде таблиц.

4.3. Начав тренировки, спортсмен в первый день пробежал х км. Каждый следующий день он увеличивал норму на 10 % от предыдущего дня. Через сколько дней спортсмен будет пробегать больше у км.?

 

Вариант №4

1.4 Составить программу для определения площади поверхности цилиндра с радиусом основания R и высотой H.

2.4 Ввести с клавиатуры 7 чисел. Вывести на дисплей четные и нечетные числа, указать число четных и нечетных чисел.

3.4. Вычислить функцию у = 2х2 - 6Sinх (-2< х >3). Найти ее минимум и максимум. Вывести таблицу функции.

4.4 Составить таблицу степеней числа 3:

3n, n=1, 2, 3...i

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

 

Вариант №5

1.5 Составить программу для определения расстояния на плоскости между двумя точками М11, у1) и М22, у2).

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

3.5. Задать двумерный массив размером 4*3. Просуммировать элементы его столбцов. Результаты представить в виде одномерного массива размером 3. Вывести исходный массив в виде таблицы, полученный в виде строки.

4.5.В очередном году урожайность ячменя составила 20ц с гектара. В среднем каждые два года урожайность увеличивается на 5%. Определить через сколько лет урожайность превысит Nц с га.

 

Вариант №6

1.6 Составить программу расчета гипотенузы прямоугольного треугольника по известным значениям катетов А и В.

2.6 Ввести с клавиатуры 4 числа, найти среди них наибольшее и наименьшее. Предусмотреть выводы данных на дисплей.

3.6. Задать двумерный массив размером 4*4. Вывести массив в виде таблицы. Предусмотреть вывод элементов задаваемого столбца и задаваемой строки массива.

4.6.Среди последовательности чисел

1, 1+1/2, 1+1/2+1/3, . . .

найти первое , большее заданного числа а. Вывести на экран само число и его номер.

 

Вариант №7

1.7 Разработать программу вычисления объема цилиндра с радиусом основания R и высотой H.

2.7 Ввести с клавиатуры 3 числа. Найти среди них число, расположенное между наименьшим и наибольшим. Предусмотреть выводы данных на дисплей.

3.7. Задать двумерный массив размером 5*5. Вывести массив в виде таблицы. Предусмотреть вывод элементов задаваемого столбца и задаваемой строки массива.

4.7.Вычислить сумму последовательности натуральных чисел. Вычисления прекратить, когда сумма превысит заданное значение N. Вывести сумму и число натуральных чисел, вошедших в вычисленную сумму.

 

Вариант №8

1.8 Составить программу для определения площади трапеции с высотой h, основанием a и противолежащей стороной b.

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

ax2+bx+c=0.

3.8. Вычислить функцию у = Sin 3х (-p< х < p). Предусмотреть вывод данных в виде трех таблиц.

4.8. Вычислять произведение последовательности натуральных чисел. Вычисления прекратить, когда произведение превысит заданное значение N. Вывести значение произведения и количество натуральных чисел, вошедших в произведение.

 

Вариант №9

1.9 Составить программу вычисления площади квадрата, вписанного в окружность радиусом r.

2.9 Ввести с клавиатуры три пары чисел. Определить сумма какой из пар чисел больше. Предусмотреть выводы данных на дисплей.

3.9. Вычислить функцию у = Cos2x (-p< х < p). Предусмотреть вывод данных в виде трех таблиц.

4.9. Цена некоторого изделия ежемесячно возрастает на n%. Определить через сколько месяцев она возрастет в P раз.

 

Вариант №10

1.10 Составить программу вычисления площади равностороннего треугольника, вписанного в окружность радиусом r.

2.10 Ввести с клавиатуры три пары чисел. Найти произведение каждой пары и определить какое из них минимально. Предусмотреть выводы данных на дисплей.

3.10. Вычислить функцию у = Sin 3х (-3p< х < 3p). Вывести данные в виде таблицы.

4.10. Дано действительное b. Найти среди чисел

1, 1+1/2, 1+1/3....

первое большее b. Определить номер этого числа.


Поделиться:



Последнее изменение этой страницы: 2019-05-08; Просмотров: 154; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.034 с.)
Главная | Случайная страница | Обратная связь