Читаем Конец холивара. Pascal vs C полностью

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

Структура процедуры или функции имеет только два различия от структуры обычной программы: процедуры и функции начинаются с заголовка PROCEDURE или FUNCTION, а не с заголовка PROGRAM, и заканчиваются не точкой, а точкой с запятой.

Процедуры и функции могут иметь свои собственные константы, типы данных, переменные и даже собственные процедуры и функции. Но все эти элементы, которые называются локальными, могут использоваться только в тех процедурах и функциях, в которых они определены. Константы, типы и переменные объявленные в программе имеющей процедуру или функцию называются глобальными. Они могут быть доступны, то есть предоставлять или изменять свои значения внутри тел процедур или функций, объявленных в этой программе. Локальные элементы позволяют работать над подпрограммами разным программистам, не боясь, что, например, они могут дать имена переменным аналогичные именам переменных в других подпрограммах или в основной программе – это не повлияет на работу других подпрограмм, или основной программы.

На этом, в том числе, базируется структурное программирование. По данной методологии любая программа строится без использования оператора безусловного перехода (goto) из трёх базовых управляющих структур: последовательность, ветвление и цикл. Кроме того, используются подпрограммы. Притом, разработка программы ведётся пошагово, методом “сверху вниз”. Методология структурного программирования появилась, как следствие возрастания сложности решаемых на компьютерах задач и усложнения программ.

3.1. Функции

Пример 1.7: Функция вычисляющая факториал.


VAR A, Y : INTEGER;

FUNCTION FAKTORIAL (N : INTEGER) : INTEGER;

VAR F, K : INTEGER;

BEGIN

F := 1;

FOR K := 1 TO N DO

F := F * K;

FAKTORIAL := F

END;

BEGIN

WRITELN (‘ВВЕДИТЕ ЦЕЛОЕ ПОЛОЖИТЕЛЬНОЕ ЧИСЛО’);

READLN (A);

Y := FAKTORIAL (A);

WRITELN (‘N!=’, Y);

READLN;

READLN

END.


Обратите внимание на то, что в описании функции обязательно содержится оператор присваивания в котором слева от знака присваивания помещено имя функции.

3.2. Процедуры

Пример 1.8: Процедура вычисляет корни квадратного уравнения


AX2+BX+C=0


PROGRAM KU (INPUT, OUTPUT);

VAR A, B, C, D, X1, X2 : REAL;

PROCEDURE KVUR (A, B, C: REAL; VAR D, X1, X2: REAL);

BEGIN


D:=SQR (B) -4*A*C;


IF D = 0 THEN X1:= (-B) / (2*A)

ELSE

IF D> 0 THEN

BEGIN

X1:= ((-B) – SQRT (D)) / (2*A);

X2:= ((-B) + SQRT (D)) / (2*A)

END

END;

BEGIN


WRITE (‘Введите A=’);

READLN (A);

WRITE (‘Введите B=’);

READLN (B);

WRITE (‘Введите C=’);

READLN (C);


KVUR (A, B, C, D, X1, X2);


IF D <0 THEN WRITELN (‘Действительных корней нет’)

ELSE

IF D = 0 THEN WRITELN (‘X=’, X1)

ELSE

BEGIN

WRITELN (‘X1=’, X1);

WRITELN (‘X2=’, X2)

END;

READLN;

READLN


END.


Где SQR – квадрат числа, а SQRT – корень квадратный.

4. Массивы и индексированные переменные

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

Типичные действия с массивами: ввод и вывод массивов, поиск в массиве заданного элемента, поиск максимального или минимального элемента, сортировка.

Массивы бывают одномерные (например: VAR A : ARRAY [1..100] OF INTEGER;) и двумерные (например: VAR B : ARRAY [1..10, 1..10] OF INTEGER;). Двумерный массив – это таблица.


ARRAY (массив), OF (из) – ключевые слова.


Доступ к элементам массива удобно производить с помощью циклов с параметрами. Для двумерных массивов нужны вложенные циклы.


Пример 1.9: Программа генерирует таблицу умножения и оформляет вывод результатов в матрицу 10 на 10 используя двумерный массив.


VAR A : ARRAY [1..9, 1..9] OF INTEGER;

I, K : INTEGER;

BEGIN

FOR I := 1 TO 9 DO

FOR K := 1 TO 9 DO

A [I, K] := I * K;

FOR I := 1 TO 9 DO

Перейти на страницу:

Похожие книги

97 этюдов для архитекторов программных систем
97 этюдов для архитекторов программных систем

Успешная карьера архитектора программного обеспечения требует хорошего владения как технической, так и деловой сторонами вопросов, связанных с проектированием архитектуры. В этой необычной книге ведущие архитекторы ПО со всего света обсуждают важные принципы разработки, выходящие далеко за пределы чисто технических вопросов.?Архитектор ПО выполняет роль посредника между командой разработчиков и бизнес-руководством компании, поэтому чтобы добиться успеха в этой профессии, необходимо не только овладеть различными технологиями, но и обеспечить работу над проектом в соответствии с бизнес-целями. В книге более 50 архитекторов рассказывают о том, что считают самым важным в своей работе, дают советы, как организовать общение с другими участниками проекта, как снизить сложность архитектуры, как оказывать поддержку разработчикам. Они щедро делятся множеством полезных идей и приемов, которые вынесли из своего многолетнего опыта. Авторы надеются, что книга станет источником вдохновения и руководством к действию для многих профессиональных программистов.

Билл де Ора , Майкл Хайгард , Нил Форд

Программирование, программы, базы данных / Базы данных / Программирование / Книги по IT
Программирование. Принципы и практика использования C++ Исправленное издание
Программирование. Принципы и практика использования C++ Исправленное издание

Специальное издание самой читаемой и содержащей наиболее достоверные сведения книги по C++. Книга написана Бьярне Страуструпом — автором языка программирования C++ — и является каноническим изложением возможностей этого языка. Помимо подробного описания собственно языка, на страницах книги вы найдете доказавшие свою эффективность подходы к решению разнообразных задач проектирования и программирования. Многочисленные примеры демонстрируют как хороший стиль программирования на С-совместимом ядре C++, так и современный -ориентированный подход к созданию программных продуктов. Третье издание бестселлера было существенно переработано автором. Результатом этой переработки стала большая доступность книги для новичков. В то же время, текст обогатился сведениями и методиками программирования, которые могут оказаться полезными даже для многоопытных специалистов по C++. Не обойдены вниманием и нововведения языка: стандартная библиотека шаблонов (STL), пространства имен (namespaces), механизм идентификации типов во время выполнения (RTTI), явные приведения типов (cast-операторы) и другие. Настоящее специальное издание отличается от третьего добавлением двух новых приложений (посвященных локализации и безопасной обработке исключений средствами стандартной библиотеки), довольно многочисленными уточнениями в остальном тексте, а также исправлением множества опечаток. Книга адресована программистам, использующим в своей повседневной работе C++. Она также будет полезна преподавателям, студентам и всем, кто хочет ознакомиться с описанием языка «из первых рук».

Бьерн Страуструп , Бьёрн Страуструп , Валерий Федорович Альмухаметов , Ирина Сергеевна Козлова

Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT