- •А.И. Газейкина Основы структурного программирования на языке Паскаль
- •Тема 1. Линейные программы 4
- •Некоторые стандартные функции языка Турбо Паскаль
- •Примеры решаемых задач
- •Контрольные задания
- •Тема 2. Разветвляющиеся программы Краткое изложение теоретического материала
- •Примеры решаемых задач
- •Контрольные задания
- •Тема 3. Циклические программы Краткое изложение теоретического материала
- •Примеры решаемых задач
- •Контрольные задания
- •Тема 4. Обработка данных строкового типа Краткое изложение теоретического материала
- •Примеры решаемых задач
- •Контрольные задания
- •Тема 5. Система типов языка Паскаль Краткое изложение теоретического материала
- •Тема 6. Перечисляемый тип Краткое изложение теоретического материала
- •Тема 7. Тип-диапазон Краткое изложение теоретического материала.
- •Тема 8. Множество (множественный тип) Краткое изложение теоретического материала
- •Примеры решаемых задач
- •Контрольные задания
- •Тема 9. Массивы в языке Паскаль Краткое изложение теоретического материала
- •Примеры решаемых задач
- •Контрольные задания
- •Тема 10. Графика в языке Паскаль Краткое изложение теоретического материала
- •Контрольные задания
- •Тема 11. Подпрограммы в языке Паскаль Краткое изложение теоретического материала
- •Процедуры в языке Турбо Паскаль
- •Функции в языке Турбо Паскаль
- •Примеры решаемых задач
- •Контрольные задания
- •Тема 12. Тип данных запись (Record) Краткое изложение теоретического материала
- •Примеры решаемых задач
- •Контрольные задания
- •Тема 13. Работа с файлами в языке Паскаль Краткое изложение теоретического материала
- •Текстовые файлы
- •Примеры решаемых задач
- •Типизированные файлы
- •Примеры решаемых задач
- •Контрольные задания
- •Тема 14. Динамические переменные в языке Паскаль Краткое изложение теоретического материала Статические и динамические переменные
- •Указатели
- •Типизированные указатели
- •Нетипизированные указатели
- •Динамические структуры данных
- •Примеры решаемых задач
- •Контрольные задания
- •Список литературы
Контрольные задания
Составить программу, которая построит произвольный пейзаж.
Составить программу, которая нарисует на экране мишень из n колец.
Составить программу, которая нарисует на экране пирамидку из n уменьшающихся прямоугольников.
Составить программу, которая нарисует на экране пирамидку из n увеличивающихся прямоугольников.
Составить программу, которая нарисует на экране многоэтажный дом.
Составить программу, изображающую лодку, плывущую по реке.
Составить программу, изображающую в центре экрана отрезок длины L, вращающийся вокруг одного из своих концов.
Составить программу, изображающую на экране солнышко с n лучиками длины l.
Составить программу, изображающую на экране снежинку с n лучиками длины l.
Составить программу построения графика функции:
y = ax2;
y = sin x;
y = 1/x;
y = tg x;
Построить и подписать также оси координат.
Дополнить программу, составленную для решения задачи 10.8, движением точки по построенному графику функции.
Составить программу построения графика функции, заданной параметрически:
астроида:
x = a cos3 t,
y = a sin3 t, где t [0, 2)
кардиоида
x = a cos t (1 + cos t),
y = a sin t (1+ cos t), где a>0, t [0, 2)
спираль:
x = R cos t ,
y = R sin t , где R=t/2, <= t <= 2N
улитка Паскаля:
x = a cos2t + b cos t,
y = a cos t sin t + b sin t, где a>0, b>0, t [0, 2)
строфоида:
x = a (t 2 – 1)/(t 2 + 1),
y = at (t 2 – 1)/(t 2 + 1), где a>0, t (-, +)
эпициклоида:
x = (a + b) cos t – a cos ((a + b)t/a),
y = (a + b) sin t – a sin ((a + b)t/a),
где a>0, b>0, t [0, 2), b/a должно быть целым положительным числом
циссоида:
x = a t 2 /(1 + t 2),
y = a t 3 /(1 + t 2), где a>0, t (-, )
Составить программу, изображающую на экране модель солнечной системы: в центре должно располагаться солнце, вокруг которого с разными угловыми скоростями вращаются две – три планеты, вокруг одной из них должен обращаться спутник.
Тема 11. Подпрограммы в языке Паскаль Краткое изложение теоретического материала
Подпрограмма – это часть программы (составной оператор), имеющая собственное имя и вызываемая по этому имени из основной (головной) программы или других подпрограмм. В языке Паскаль реализованы подпрограммы двух видов: процедуры и функции. Действует правило – описание должно предшествовать вызову (т.е. подпрограмма должна быть сначала описана, а только после этого может быть вызвана).
Процедуры в языке Турбо Паскаль
Описание процедуры:
Procedure <имя> (<список параметров>); { заголовок процедуры }
<блок описаний>
Begin { начало исполняемой части процедуры}
<тело процедуры (исполняемая часть)>
End; { конец процедуры }
Структура процедуры почти полностью совпадает со структурой программы. исключения:
I. Заголовок: начинается с зарезервированного слова Procedure (а не Program), кроме того содержит список параметров. Параметры – это «средство связи» процедуры с программой и с другими процедурами, механизм обмена данными. Параметры процедуры бывают двух видов:
- параметры-значения, или входные параметры – это исходные (входные) данные, передаваемые в процедуру. Их значения после окончания работы процедуры остаются неизменившимися. Описание параметров-значений: <имя> : <тип> .
- параметры-переменные, или выходные параметры – это результаты работы процедуры, передаваемые обратно в программу или другую процедуру. Их значения после окончания работы процедуры изменяются. Описание параметров-переменных: Var <имя> : <тип> .
Например, процедура может иметь такой заголовок:
Procedure Calculate ( x, y : integer; var z : integer; var f : real );
Имя этой процедуры Calculate. Она имеет 4 параметра: два входных (или параметра значения) – это параметры x и y целого типа; два выходных (или параметра-переменных) – z целого типа и f вещественного типа. Так как типы у них различны, перед описанием каждого указано зарезервированное слово Var.
Параметры, указанные при описании процедуры (т.е. в ее заголовке) называются формальными, т.к. процедура – это по сути формальное правило получения некоторых результатов из некоторых исходных данных. Конкретным смыслом формальные параметры наполняются при вызове процедуры (см. ниже).
Можно использовать процедуры и без параметров.
II. Блок описаний может содержать те же разделы, что и блок описаний программы (Const, Type, Var, Procedure, Function), за исключением описания подключения модулей библиотек Uses (модули подключаются только в блоке описаний в основной программе!).
Данные, описанные в блоке описаний процедуры, называются локальными и могут быть использованы только в этой процедуре.
Данные, описанные в блоке описаний программы, называются глобальными и могут использоваться как в самой программе, так и во всех ее процедурах.
III. Тело процедуры также представляет собой составной оператор, но заканчивается End; (ставится точка с запятой, а не точка, как в конце программы).
Вызов процедуры:
может осуществляться из основной программы или процедуры, описанной после вызываемой. При вызове указывается имя процедуры и список фактических параметров, т.е. тех, которые будут «подставлены» на место формальных. Количество, порядок и типы фактических параметров должны совпадать с количеством, порядком и типами формальных параметров. Например, процедуру Calculate, заголовок которой был описан выше, можно вызвать следующим образом:
Calculate( a, b, c, d ); - при условии, что a, b, c имеют тип Integer, d – Real.
Calculate( 23, р+14, q, w ); - если p и q имеют тип Integer, а w – Real.
(Исходя из всего вышесказанного следует, что команды языка (например, Write, Readln) – это тоже процедуры, которые описаны в некоторых библиотеках и которые мы вызываем при написании наших программ.)