Язык программирования ABC PASCAL - [10]

Шрифт
Интервал

3. Проанализируйте пример и постройте аналогичную программу, вычисляющую площади круга (по формуле s = πr>2). (2 балла)

4. Напишите программу, которая вводила бы с клавиатуры значения времени и скорости, вычисляла бы пройденный путь. (3 балла)

5. Напишите программу, которая вводила бы с клавиатуры 10 вещественных чисел и вычисляла бы их среднее арифметическое. (5 баллов)

6. * Напишите программу, которая вводила бы градусы, минуты и секунды дуги переводила их в градусы и его десятичные доли.

- 26 -

Тема №9. Подпрограммы-функции


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


>Program Table;

>Uses CRT; // Подключение модулей

> // Описания функций, требующихся в программе

>function cube(x:real):real; // возведение в куб

>begin

> cube:=x*x*x; // имени функции присваивается значение

>end;

>function sign(x:real):integer; // вычисление знака числа

>begin

>if x>0 then sign:=1

>else if x=0 then sign:=0

>else sign:=-1;

>end;

> // ==== Начало главной программы ==========

> var a : real; // блок описания переменных

> const a1 = -5.0; // блок описания констант (постоянных)

> a2 = +5.0;

> st = 0.5;

>begin

> a:=a1;

>while (a<=a2) do

>begin

> writeln(a:4:1,cube (a):10:3,sign(a):3); // вызов функций

> a:=a+st;

>end;

>end.


Обратите внимание, что внутри тела функции (заключенного в операторные скобки beginend) вы обязаны хотя бы один раз имени функции присвоить значение. В этой программе также используется новый материал, не связанный с функциями, – это константы. Значение констант задается через знак равенства (а не присваивания). Тип константы определяется из типа присваиваемого значения. Константы, в отличие от переменных, не могут менять свое значение.

- 27 -


Рассмотрим еще один пример, в котором функция имеет два параметра разного типа.


>Program Power2;

>Uses CRT;

>function power(x : real; n : integer) : real; // возведение в степень

> var i : integer; // локальные переменные r : real;

>begin

> r:=1.0;

>for i:=1 to n do r:=r*x; // накопление произведения

> power:=r; // результат присвоить имени функции

>end;

> // ==== Начало главной программы ================

> var i : integer; // блок описания переменных

>begin

>for i:=1 to 10 do

> writeln(i:2,power (2.0,i):6:0);

>end.


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


Задание 9 1. Модифицируйте последний пример таким образом, чтобы функция power вычисляла правильно не только натуральные степени, но и отрицательные.

Напоминание:

x>-n = 1 / x>n.

Подсказка: следует использовать оператор if, а также функцию abs(n), которая вычисляет модуль числа.

(5 баллов)

2. Напишите функцию, вычисляющую факториал числа n! =1•2•3• ... •n.

Подсказка: ее несложно сделать, путем модификации функции power.

(5-8 баллов)


- 28 -

Тема №10. Подпрограммы-процедуры


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


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


>Program UseProc;

>Uses GraphABC;

> Procedure Triangle(x1,y1,x2,y2,x3,y3:integer);

> // Процедура рисует треугольник

>begin

> line(x1,y1,x2,y2);

> line(x2,y2,x3,y3);

> line(x3,y3,x1,y1);

>end;

> // Главная программа

>begin

> SetWindowSize(500,500);

> Triangle(100,200,400,300,250,150);

> Triangle(10,20,30,40,50,10);

>end.


Как мы видим, процедура Trianlge имеет шесть целочисленных параметров и вызывает функции трижды функции Line для соединения точек. Создав такую процедуру, мы можем использовать ее столько раз, сколько нам надо в главной программе.


Задание 10

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

- 29 -

Модули (Units)


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


Поместим описание процедуры Triangle в модуль MyGraph.


Unit MyGraph;

// Заголовок модуля. Имя файла модуля должно совпадать

// с именем модуля! Т.е. в нашем случае оно должно быть


Рекомендуем почитать
Технология редакционно-издательского процесса

Рассмотрен современный редакционно-издательский процесс и про–анализирована роль редактора на каждом из его этапов. Особое внимание уде–лено подготовке рукописи к изданию, анализу композиции и содержания произведения, редактированию нетекстовых элементов, таких как формулы, таблицы, иллюстрации. Даны характеристики аппарата книжных и жур–нальных изданий. Освещена тема взаимоотношений автора и редактора.Для студентов высших учебных заведений, получающих образование по направлениям (специальностям) «Книжное дело», «Издательское дело и редактирование», «Литературное творчество».


Перестройка в церковь

Слово «миссионер» привычно уже относить к католикам или протестантам, американцам или корейцам. Но вот перед нами книга, написанная миссионером Русской Православной Церкви. И это книга не о том, что было в былые века, а о том, как сегодня вести разговор о вере с тем, кто уже готов спрашивать о ней, но еще не готов с ней согласиться. И это книга не о чужих победах или поражениях, а о своих.Ее автор — профессор Московской Духовной Академии, который чаще читает лекции не в ней, а в светских университетах (в год с лекциями он посещает по сто городов мира)


Административное право России в вопросах и ответах

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


Общие основы педагогики

Непосредственной сдаче экзамена или зачета по любой учебной дисциплине всегда предшествует достаточно краткий период, когда студент должен сосредоточиться, систематизировать свои знания. Выражаясь компьютерным языком, он должен «вывести информацию из долговременной памяти в оперативную», сделать ее готовой к немедленному и эффективному использованию. Специфика периода подготовки к экзамену или зачету заключается в том, что студент уже ничего не изучает (для этого просто нет времени): он лишь вспоминает и систематизирует изученное.Содержание и структура пособия соответствуют требованиям Государственного образовательного стандарта высшего профессионального образования.Издание предназначено студентам педагогических вузов.


Концепции современного естествознания

В учебнике, написанном коллективом преподавателей РГПУ им. Герцена под руководством Л. А. Михайлова – декана факультета безопасности жизнедеятельности, лауреата премии Президента РФ, представлены новейшие концепции всех естественных наук: биологии, генетики, физики, химии, математики, информатики, биохимии, геологии, антропологии и других. В книге раскрываются социальные последствия новых научных открытий, даются современные технологии обучения в области концепций современного естествознания.Учебник полностью соответствует Государственному образовательному стандарту и имеет гриф УМО.


Экономика фирмы

Объектом изучения данного курса лекций является фирма как единая система, которая функционирует в условиях рыночной экономики. Рассматриваются организационно-правовые формы фирм, основные условия обеспечения экономической стабильности фирмы, принципы ее управления и организационная структура, порядок обеспечения кадрами, модель функционирования фирмы в рыночной среде. Описана комплексная система обеспечения ресурсами (трудовые ресурсы, основные и оборотные средства), система показателей для оценки эффективности их применения.Этот курс лекций предназначен для студентов, аспирантов и преподавателей экономических факультетов университетов и экономических вузов.