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

Тут можно читать онлайн Александр Цветков - Язык программирования PASCAL - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Язык программирования PASCAL
  • Автор:
  • Жанр:
  • Издательство:
    неизвестно
  • Год:
    неизвестен
  • ISBN:
    нет данных
  • Рейтинг:
    4.44/5. Голосов: 91
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

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

Язык программирования PASCAL - описание и краткое содержание, автор Александр Цветков, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

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

Язык программирования PASCAL - читать книгу онлайн бесплатно, автор Александр Цветков
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

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. Массивы

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

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

Массив – это регулярная структура данных, которая состоит из пронумерованных компонент одного и того же типа. Этот тип мы будем называть базовым типом.

Массивы могут быть одномерными:

и многомерными например двумерными С точки зрения машинной реализации - фото 20

и многомерными (например, двумерными) :

С точки зрения машинной реализации все массивы одномерные разница лишь в - фото 21

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

A : array[1..8] ofinteger;

здесь array– ключевое слово, которое и обозначает собственно массив, в квадратных скобках указан диапазон первого и единственного индекса.

В Pascal’е в качестве диапазона индекса может выступать любой отрезок перечислимого типа, например ‘A’..’H’, либо 0..7. Однако на практике чаще всего удобнее в качестве индексов использовать отрезок целого типа, причем нижний (меньший) индекс разумно выбирать единицей или нулем.

Одной из самых неприятных ошибок программирования – является ошибка обращения к несуществующему элементу массива, или как говорят, ошибка выхода индекса за допустимый диапазон. Поэтому предыдущее определение массива A лучше переписать так:

ConstN = 8;

Var A : array[1..N] ofinteger;

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

- 33 -

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

ConstN = 8;

Type TA = array[1..N] ofinteger;

Var A : TA;

Дополнительные удобства этого подхода заключаются в том, что массивы, описанные в разных местах как массивы типа TA, будут являться совместимыми по типу, а в случае описания массивов A и B одинаковым способом, но без объявления типамассива, они будут считаться несовместимыми. Например,

ConstN = 8;

Type TA = array[1..N] ofinteger;

Var A : TA;

Var B : TA;

здесь A и B – массивы одного и того же типа. А здесь:

ConstN = 8;

Var A : array[1..N] ofinteger;

Var B : array[1..N] ofinteger;

здесь A и B – массивы будут считаться разных типов. Хотя следующее описание определяет массивы одинаковых типов:

ConstN = 8;

Var A,B : array[1..N] ofinteger;

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

Интервал:

Закладка:

Сделать


Александр Цветков читать все книги автора по порядку

Александр Цветков - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




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


Отзывы читателей о книге Язык программирования PASCAL, автор: Александр Цветков. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x