Александр Цветков - Язык программирования PASCAL

Здесь есть возможность читать онлайн «Александр Цветков - Язык программирования PASCAL» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: Детская образовательная литература, Прочая околокомпьтерная литература, Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Язык программирования PASCAL: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Язык программирования PASCAL»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Язык программирования PASCAL — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Язык программирования PASCAL», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

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

Unit MyGraph;

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

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

// MyGraph.pas, иначе главая программа его не найдет!

UsesGraphABC; // Модули могут использовать другие модули

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

// Эта процедура находится в модуле MyGraph

begin

line(x1,y1,x2,y2);

line(x2,y2,x3,y3);

line(x3,y3,x1,y1);

end;

end. // Этот оператор – завершение модуля.

Теперь главная программа будет выглядеть так:

ProgramUseProc;

UsesGraphABC, MyGraph; // Использование стандартного и собственного модуля

begin

SetWindowSize(500,500); // Эта процедура описана в GraphABC

Triangle (100,200,400,300,250,150); // Эта процедура описана в MyGraph

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

end.

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

Задание 10

2. Сформируйте модуль с вашими собственными графическими процедурами (5 баллов)

- 30 -

Тема №11. Способ передачи параметров

Параметры-значения и параметры-переменные

Каким образом подпрограмма может вернуть главной программе какую-либо информацию?

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

Для примера напишем подпрограмму, которая должна вычислить длину окружности

( L = 2πr ) и площадь круга ( S = πr 2) по заданному радиусу.

ProgramProcUse;

UsesCRT;

// вычисление длины окружности и площади круга

Procedure Pr(R,L,S:real);

begin

L:=2*PI*R;

S:=PI*sqr(R);

end;

// ГЛАВНАЯ ПРОГРАММА

var rad, len, area : real;

begin

write('Введите радиус '); readln(rad);

Pr(rad, len, area);

writeln('Длина окружности ', len);

writeln('Площадь круга ', area);

end.

Попробуйте выполнить данную программу. Вы обнаружите странный результат: какое бы значение радиуса вы не вводили, результат будет один и тот же: длина окружности и площадь круга будут равны 0! В чем дело?

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

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

- 31 -

Второй способ называется передача параметров по ссылке. Изменим заголовок процедуры Pr на следующий:

Procedure Pr(R: real; var L,S:real);

Обратите внимание на появившееся ключевое слово var. Оно говорит о том, что два последних параметра процедуры будут являться изменяемыми. Для таких параметров используется другой способ сопоставления с фактическими (передаются на самом деле адреса параметров). В связи с этим необходимо запомнить, что в качестве формальных параметров, соответствующих параметрам переменным, могут использоваться только переменные, но не константы! Т.е. вызов Pr(5,6,7) ошибочен, возможно, лишь Pr(5,a,b), где a и b – вещественные переменные. Первый параметр мы оставили, как и раньше, обычным параметром, передаваемым по значению.

Выполним теперь программу. Работает!

Задание 11

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

(3 балла) 2. Напишите процедуру, аналогичную процедуре Pr, которая вычисляла бы периметр и площадь квадрата со стороной r и а также объем куба с тем же самым ребром r.

(2 балла)

- 32 -

Тема №12. Массивы

Тема имеет исключительно важное значение

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

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Язык программирования PASCAL»

Представляем Вашему вниманию похожие книги на «Язык программирования PASCAL» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Язык программирования PASCAL»

Обсуждение, отзывы о книге «Язык программирования PASCAL» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x