Основы программирования на языке Pascal(История развития языка Pascal)
СОДЕРЖАНИЕ
1.1. История развития языка Pascal 4
1.2. Основные символы и структура построения программы 4
1.3. Этапы разработки программы 6
1.4. Алгоритмы и алгоритмизация 8
1.5. Структура программ на Pascal 9
2. ПРОГРАММИРОВАНИЕ ОСНОВНЫХ КОНСТРУКЦИЙ ЯЗЫКА 11
ВВЕДЕНИЕ
Первые программы заключались в установке ключевых переключателей на передние панели вычислительного устройства. К концу 60-х годов в связи с ростом сложности программы и дальнейшим развитием программных средств, и необходимостью увеличить производительность труда программистов привело к разработке структурного программирования.
Актуальность исследования: На сегодняшний день существует большое количество языков программирования. Они подразделяются на языки программирования низкого и высокого уровня, а также специализированные языки программирования. В данной курсовой работе рассматривается один из наиболее популярных языков программирования высокого уровня Pascal, который позволяет решать широкий круг задач. В основе языка программирования Pascal лежит определенная совокупность символов, образующих алфавит языка. PascalABC актуален тем, что позволяет выводить на экран рисунки, чертежи, графики функций, диаграммы.
Цель исследования: изучить основы языка программирования.
Задачи исследования:
- изучить структуру программы;
- основы языка программирования;
- решение задач на языке Pascal.
Объект исследования: программа PascalABC.
Предмет исследования: графика в PascalABC.
Структура курсовой работы: рассмотреть историю развития языка, его возможности. Привезти описание различных функций и процедур. Включить специальные задачи и решить их.
Для этой курсовой работы я прибегла в основном к книге Н. Культина Turbo Pascal, так как этой книгой я пользуюсь очень давно и с ее помощью я достигла тех результатов, которые у меня есть сейчас. Но для сравнения я выбрала еще два источника, на мой взгляд они показались оптимальными, что я выбрала из них можно узнать по библиографическим ссылкам.
1. ОЗНАКОМЛЕНИЕ С ЯЗЫКОМ PASCAL
1.1. История развития языка Pascal
Язык Паскаль, названный в честь французского математика и философа Блеза Паскаля (1623-1662), был создан как учебный язык программирования в 1968-71 годах швейцарским ученым Никлаусом Виртом на кафедре информатики Стэнфордского университета (Цюрих). В настоящее время это язык имеет более широкую сферу применения, чем предусматривалось при его создании. Свое признание Паскаль получил с появлением пакета Турбо Паскаль (Turbo Pascal). Этот язык отличается простотой понимания, стройностью и структурностью алгоритмов, быстротой компилятора и удобными средствами создания и отладки программ [4].
Достоинствами языка Паскаль являются:
- Простой синтаксис языка. Небольшое число базовых понятий. Программы на Паскале достаточно легко читаемы.
- Достаточно низкие аппаратные и системные требования как самого компилятора, так и программ, написанных на Паскале.
- Универсальность языка. Язык Паскаль применим для решения практически всех задач программирования.
- Поддержка структурного программирования, программирования "сверху-вниз", а также объектно-ориентированного программирования.
В настоящем пособии рассматривается Turbo Pascal v7.0. Данная версия разработана фирмой Borland и является последней в линейке компиляторов Pascal для DOS. Дальнейшее развитие Паскаль получил в Delphi - системе разработки программ для Windows [4].
1.2. Основные символы и структура построения программы
Основные символы языка - буквы, цифры и специальные символы - составляют его алфавит [6].
Pascal включает следующий набор основных символов:
- 26 латинских строчных и 26 латинских прописных букв;
- знак подчеркивания (_);
- 10 цифр (от 0 до 9);
- знаки операций (+ - * / = <> <> <=> =: = @);
- ограничители (., ' () [] (.) {} (* *).: ;);
- спецификаторы (^ # $);
- служебные (зарезервированные слова) – cм. табл.1.2.1.
Кроме перечисленных, в набор основных символов входит пробел. Пробелы нельзя использовать внутри сдвоенных символов и зарезервированных слов [6].
Таблица 1.2.1.
Зарезервированные слова языка Pascal
absolute |
Абсолютный |
label |
метка |
and |
Логическое И |
library |
библиотека |
array |
Массив |
mod |
Остаток от деления |
asm |
Ассемблер |
nil |
Отсутствие |
begin |
Начало блока |
not |
Логическое НЕ |
case |
Вариант |
or |
Логическое ИЛИ |
const |
Константа |
of |
Из |
constructor |
Конструктор |
object |
Объект |
div |
Деление нацело |
packed |
Упакованный |
goto |
Переход на |
procedure |
Процедура |
do |
Выполнять |
program |
Программа |
downto |
Уменьшить до |
record |
Запись |
destructor |
Деструктор |
repeat |
Повторять |
else |
Иначе |
set |
Множество |
end |
Конец блока |
shl |
Сдвиг разрядов влево |
exports |
Экспорт |
shr |
Сдвиг разрядов вправо |
external |
Внешний |
string |
Строка |
file |
Файл |
then |
То |
for |
Для |
to |
Увеличивая |
Окончание таблицы 1.2.1 |
|||
forward |
Опережающий |
type |
Тип |
function |
Функция |
unit |
Модуль |
if |
Если |
until |
До |
implementation |
Реализация |
uses |
Использовать |
in |
В (входит в ...) |
var |
Переменная |
inline |
Основной |
while |
Пока |
interrupt |
Прерывание |
with |
С |
interface |
Интерфейс |
xor |
Исключающее ИЛИ |
inherited |
Наследование |
Источник: Зубок Д.А., Маятин А.В., Краснов С.В. Основы программирования в среде Turbo Pascal. Учебное пособие. Санкт-Петербург, 2009.
1.3. Этапы разработки программы
В процессе создания любой программы можно выделить несколько этапов:
- постановка задачи;
- анализ, формальное описание задачи, выбор модели;
- выбор и разработка алгоритма решения задачи;
- проектирование общей структуры программы;
- кодирование;
- отладка и верификация программы;
- получение результата;
- публикация или передача заказчику результата работы;
- сопровождение программы.
Описание каждого из перечисленных этапов:
Постановка задачи выполняется заказчиком, в качестве которого может выступать внешняя организация, организация в которой работает программист, начальник программиста, преподаватель, сам программист. На этом этапе задача, которую необходимо решить посредством составления программы для компьютера, формулируется на естественном языке.
Анализ задачи включает определение входных и выходных данных, выявление возможных ограничений на их значения и обычно завершается формализованным описанием задачи, которое часто предполагает её математическую формулировку.
Выбор и разработка алгоритма и численного метода решения задачи имеют важнейшее значение для успешной работы над программой. Тщательно проработанный алгоритм решения задачи - необходимое условие эффективной работы по составлению программы.
Проектирование общей структуры программы. На этом этапе происходит "архитектурная" проработка проекта. Определяются те части алгоритма, которые целесообразно оформить в виде подпрограмм, модулей. Определяется и способ хранения информации - в виде набора простых переменных, массивов или других структур.
Кодирование - это запись алгоритма на языке программирования. Если алгоритм решения задачи, структура программы и структура данных тщательно продуманы и аккуратно записаны, затраты времени на кодирование уменьшаются, а вероятность ошибок на этом этапе снижаются.
Отладка и верификация программы представляют собой очень важную часть процесса разработки программы. Отладка заключается в устранении ошибок программирования, ошибок перевода алгоритма на язык программирования. Верификация - доказательство того, что программа работает "правильно", дает правильный результат.
Получение результата - сравнить результаты наблюдений и результаты компьютера. Результат может отличаться от требуемого. В этом случае, возможно, придется изменить саму модель, сделав ее более реалистичной.
Публикация или передача заказчику результата работы - момент рождения качественной программы. В научных исследованиях значение имеют результаты моделирования, которые публикуются в научных журналах. В нашем случае это сама программа, которая передается заказчику для дальнейшей эксплуатации или выкладывания на ftp - сервер для свободного распространения.
Сопровождение программы - предполагают консультации заказчику по работе программы, устранение замеченных в процессе ее эксплуатации недостатков, обучение пользователей работе с программой.
1.4. Алгоритмы и алгоритмизация
Алгоритм – это четкое описание последовательности действий, которые необходимо выполнить для решения поставленной задачи.
Алгоритмизация – процесс разработки и описания алгоритма решения какой-либо задачи.
Алгоритм должен удовлетворять определенным требованиям:
- наличие ввода исходных данных;
- наличие вывода исходных данных.
- однозначность;
- общность - алгоритм предназначен для решения некоторого класса задач;
- корректность - алгоритм должен давать правильное решение задачи;
- конечность - решение задачи должно быть получено за конечное число шагов;
- эффективность - для решения задачи должны использоваться ограниченные ресурсы компьютера (процессорное время, объем оперативной памяти).
Для разработки структуры программы удобнее пользоваться записью алгоритма в виде блок-схемы. Для изображения основных алгоритмических структур и блоков на блок-схемах используют специальные графические символы:
Таблица 1.4.1.
Графические символы блок-схемы
Данные |
|
Продолжение теблицы 1.4.1 |
|
Ручной ввод |
|
Дисплей |
|
Процесс |
|
Решение |
|
Соединитель |
|
Терминатор |
|
Комментарий |
Источник: ГОСТ 19.701 – 90. ЕСПД. Схемы алгоритмов, программ данных и систем. Обозначения условные и правила выполнения. Москва, 2010.
1.5. Структура программ на Pascal
Программа на языке Паскаль состоит из заголовка, разделов описаний и раздела операторов [7].
Program имя программы;
Uses подключаемые модули;
Блок описания:
Меток
Констант
Типов
Переменных
Процедур
Функций
Begin
Тело программы.
Исполняемая часть.
End.
Строка программы может иметь максимальную длину 127 символов. Если строка будет длиннее, ее часть, выходящая за пределы 127 символов, будет компилятором игнорироваться.
Комментарии заключаются в фигурные скобки {……}.
В разделе ознакомление с языком Pascal мне удалось выяснить историю развития языка Pascal, узнать о его достоинствах. Так же я построила основные символы и зарезервированные слова и этапы разработки программы. Для себя я поняла, что главное с самого начала разобраться с поставленной задачей и составить алгоритм. Для решения задач на языке Pascal наиболее подходит алгоритм в виде блок-схемы, он более наглядный и понятный.
2. ПРОГРАММИРОВАНИЕ ОСНОВНЫХ КОНСТРУКЦИЙ ЯЗЫКА
2.1. Основы Pascal
Приступая к решению задач следует помнить, что
- каждая переменна программы должна быть объявлена;
- объявление переменных перемещают в раздел, который начинается словом var;
-основными числовыми типами являются integer(целый) и real(дробный);
- инструкции write и writeln предназначены для вывода на экран монитора сообщений и значений переменных;
- для ввода с клавиатуры во время работы программы исходных данных (значений переменных) предназначена инструкция readln [1].
Pascal - это гибкий язык, в котором имеется большое число различных типов. Все имеющиеся в Паскале типы принято делить на группы. Типы, принадлежащие одной группе, имеют сходство. Прежде всего, выделяют простые и структурные типы. Простые типы, в свою очередь, подразделяют на порядковые и вещественные типы [4].
Таблица 2.1.1.
Типы данных
Иденти-фикатор |
Длина (байт) |
Диапазон значений |
Операции |
Целые типы |
|||
integer |
2 |
-32768..32767 |
+,-,/,*,Div,Mod,>=, <=, =, <>, <, > |
byte |
1 |
0..255 |
+,-,/,*,Div,Mod,>=, <=, =, <>, <, > |
word |
2 |
0..65535 |
+,-,/,*,Div,Mod,>=, <=, =, <>, <, > |
shortint |
1 |
-128..127 |
+,-,/,*,Div,Mod,>=, <=, =, <>, <, > |
longint |
4 |
-2147483648.2147483647 |
+, -, /, *, Div, Mod, >=, <=, =, <>, <, > |
Вещественные типы |
|||
real |
6 |
2,9x10-39 - 1,7x1038 |
+, -, /, *, >=, <=, =, <>, <, > |
Окончание таблицы 2.1.1. |
|||
Иденти-фикатор |
Длина (байт) |
Диапазон значений |
Операции |
single |
4 |
1,5x10-45 - 3,4x1038 |
+,-,/,*, >=, <=, =, <>, <, > |
double |
8 |
5x10-324 - 1,7x10308 |
+,-,/,*,>=, <=, =, <>, <, > |
extended |
10 |
3,4x10-4932 - 1,1x104932 |
+,-,/,*,>=, <=, =, <>, <, > |
Логический тип |
|||
boolean |
1 |
true, false |
Not,And,Or,Xor,>=, <=, =, <>, <, > |
Символьный тип |
|||
char |
1 |
Все символы кода ASCII |
+, >=, <=, =, <>, <, > |
Источник: Учебное пособие. Изучаем Паскаль. Л. Усольцева, Б. П. Зотьева, И. С. Сергеевой, В. Л. Лецко. Волгоградский государственный педагогический университет. Кафедра алгебры, геометрии и информатики.
Допустимые значения порядковых типов представляют собой множество, состоящее из конечного числа элементов. В этом множестве есть первый и последний элементы. Кроме того, каждый элемент порядкового типа имеет предшествующий ему и следующий за ним элементы.
В Паскале имеется пять вещественных типов. Вещественные типы различаются диапазоном и точностью связанных с ними значений. Действия над типами с одинарной, двойной и повышенной точностью, а также над сложным типом могут выполняться только при наличии математического сопроцессора.
2.2. Линейная структура
Простейшей алгоритмической структурой является линейная последовательность операций, которые выполняются по очереди и именно в том порядке, в котором они записаны. Линейные алгоритмы и линейные программы обычно предназначены для решения относительно простых задач, в которых не предусмотрен выбор из нескольких возможных альтернатив или циклических повторений каких-либо операций.
В Паскале имеются две реализации одной из основных алгоритмических структур - ветвления. Операторы ветвления позволят на основе анализа некоторого условия выбрать нужный вариант продолжения вычислительного процесса. К операторам ветвления относится условный оператор и оператор выбора. Условный оператор if позволяет проверить некоторое условие и в зависимости от результата проверки выполнить то или иное действие. Условный оператор имеет вид:
if <логическое выражение>
then
<Оператор1>
[else
<Оператор 2>]
Оператор выбора case дает возможность выполнить одно из нескольких действий. В общем случае оператор ыбора имеет седующий вид:
Case <селектор> of
<список меток варианта>:< оператор 1>;
<список меток варианта>:< оператор 2>;
<список меток варианта>:< оператор 3>;
…
[else
<ОператорN>]
end;
2.3. Циклы
Оператор программы — это единое и неделимое предложение выполняющее какое-либо действие, типичный простой оператор – это оператор присваивания. Под любым оператором подразумевается действие. Составной оператор — это последовательность операторов перед которой стоит слово begin, а после end. Составной оператор может содержать любое количество простых операторов.
Одной из важнейших алгоритмических структур является цикл. Цикл представляет собой последовательность операторов, которая выполняется неоднократно. В программах, связанных с обработкой данных или вычислениями, часто приходиться выполнять циклические повторяющиеся действия.
В языке программирования Паскаль имеется три разновидности цикла - цикл со счетчиком, цикл с предусловием и цикл с постусловием.
Операторы цикла:
- оператор While;
- оператор Repeat;
- оператор For.
При использовании оператора while условие повторения цикла запрашивается в начале цикла:
while выражение do оператор
Выражение после while должно быть логическим выражением. Оператор после do выполняется, если логическое выражение имеет значение true. Если после do, т.е. в цикле, должны быть выполнены несколько операторов, их следует поместить в операторные скобки begin и end. Если логическое выражение в начале имеет значение false, цикл вообще не выполняется.
Число повторений оператора repeat определяется ходом выполнения программы [1]. Оператор выполняется до тех пор, пока условие, стоящее после слова until, ложно.
repeat оператор until выражение
Выражение после repeat должно быть логическим выражением. Выражение после repeat выполняются до тех пор, пока логическое выражение после until не примет значение true [1]. Итак, построенный с помощью оператора repeat цикл выполняется по крайней мере один раз.
Оператор For используется для организации циклов с фиксированным, определяемым во время разработки программы числом повторений. Количество повторений цикла определяется начальным и конечным значениями переменной-счетчика. Переменная-счетчик должна быть целого типа (integer) [1].
for переменная: = выражение to выражение do оператор
Переменная цикла и оба выражения должны иметь одинаковый тип, который должен быть порядковым. Первое выражение является начальным значением, второе - конечным. При выполнении to начальное значение увеличивается каждый раз, пока не достигнет конечного значения.
2.4. Символы и строки
Каждому символу соответствует число – код символа. Получить доступ к отдельному символу строки, можно указав его номер в квадратных скоках после имени переменной (строки) [1].
2.5. Массивы
Массив – это структура дынных, представляющая собой совокупность элементов одного типа. Массив должен быть объявлен в разделе объявления переменных. При объявлении массива удобно использовать именованные константы. Доступ к элементу массива осуществляется путем указания индекса (номера) элемента, в качестве которого можно использовать выражение целого типа, например, целую константу или переменную типа integer. Для ввода, вывода и обработки массивов удобно применять инструкции циклов (for, while, repeat) [1].
2.6. Процедуры и функции
Подпрограмма - это именованная логически законченная группа операторов языка, которую можно вызвать для выполнения любое количество раз из различных мест программы [5]. Каждая подпрограмма определяется уникальным именем. В языке Паскаль существуют два типа подпрограмм - процедуры и функции. Главное отличие процедуры от функции заключается в том, что результатом функции является одно единственное значение. Все процедуры и функции языка Pascal подразделятся на два класса: стандартные и определенные пользователем.
Процедура и функция - это именованная последовательность описаний и операторов. При использовании процедур или функций Паскаль - программа должна содержать текст процедуры или функции и обращение к процедуре или функции. Тексты процедур и функций помещаются в раздел описаний процедур и функций.
Процедура может содержать такие - же разделы описаний, что и Паскаль - программа, а именно: разделы описания модулей, меток, констант, типов, переменных, процедур и функций.
Для передачи данных в функцию надо использовать только параметры (глобальные переменные, т.е. переменные, объявленные вне функции, применять не рекомендуется). Среди выполняемых инструкций функции обязательно должна быть инструкция присваивания значения функции. Тип каждого фактического параметра (константы или переменной) в инструкции вызова функции должен быть таким же, как тип соответствующего формального параметра, указанного при объявлении функции. Если в операторе объявления функции перед именем формального параметра не стоит слово var, то при вызове функции можно использовать в качестве формального параметра константу или переменную соответствующего типа. Если слово var указано, то формальным параметром может быть только переменная. Если параметры функции используются для возврата результата в программу, вызвавшую функцию, то в объявлении функции перед именем соответствующего параметра должно присутствовать слово var [1].
Для передачи информации в процедуру следует использовать параметры, а не глобальные переменные, т.е. объявленные вне процедуры. Тип каждого фактического параметра (константы или переменной) в операторе вызова процедуры должен соответствовать типу соответствующего формального параметра, указанного при объявлении функции. Если в операторе объявления процедуры перед именем формального параметра нет слова var, то в качестве формального параметра в инструкции вызова процедуры можно использовать константу или переменную соответствующего типа. Если слово var присутствует в инструкции, то формальным параметром можно назначить только переменную. Если аргумент процедуры применяется для возврата результата в программу, вызвавшую эту процедуру, то перед именем аргумента нужно поставить слово var [1].
2.7. Графика
В графическом режиме экран представляет собой совокупность точек, каждая из которых может быть окрашена в один из 16 цветов. Координаты точек возрастают слева направо и сверху вниз, левая верхняя точка имеет координаты (0,0), а правая нижняя – (63,479). Для того, чтобы программа могла выводить на экран графические примитивы (линии, окружности, прямоугольники), необходимо инициализировать графический режим [1].
Модуль растровой графики GraphABC обходится без объектов, хотя его возможности практически совпадают с графическими возможностями Borland Delphi. Он доступен в не событийных программах и позволяет легко создавать анимацию без мерцания. Модуль GraphABC содержит константы, типы, процедуры, функции и классы рисования в графическом окне. Они подразделяются на следующие группы:
-графические примитивы;
-действия с цветом;
-действия с пером;
- действия с кистью;
-действия со шрифтом;
-действия с графическим окном;
- задание режимов вывода.
2.8. Файлы
Текстовый файл – это файл, состоящий из компонентов, являющихся строками. Длина строки может изменяться от 0 до 255. Каждая строка завершается маркером конца строки.
Для описания файловых переменных текстового типа используется стандартный идентификатор text.
Для работы с текстовыми файлами предназначены следующие процедуры и функции:
Assign (FV, Str)-присваивание имени текстовому файлу.
Rewrite (FV) – открытие для создания нового текстового файла.
Reset (FV)-открытие уже существующего текстового файла.
Close (FV) – закрытие текстрового файла.
Read (FV, Ch) – считывание символа в Ch из текстового файла FV.
Write (FV, Ch) – занесение символьной переменной Ch в файл FV.
Readln (FV, Str) – чтение из файла FV строки Str.
Частный случай записи процедура: readln(FV); При этом пропускаются все символы, включая пробелы и маркер конца строки, т.е. происходит переход на новую строку. Такой вид записи процедуры может использоваться для подсчета количества компонентов в файле.
Writeln (FV, Str) – запись в файл FV строки Str. Частный случай написания процедуры: writeln (FV); применяется для записи в файл пустой строки, т.е. записывается только маркер конца строки. Это свойство используется для внесения в документы, инструкции, деловые письма строк-пробелов.
Append (FV) – открыть файл и установить указатель на маркер конца файла. Используется только для добавления новых компонентов в текстовые файлы.
Elon (FV) – функция возвращает булевское значение True, если указатель файла достиг маркера конца строки. В противном случае возвращает значение False.
SeekElon (FV) – функция, аналогичная предыдущей, но указатель файла переходит все пробелы и знаки табуляции. Возвращает значение True при достижении маркера конца строки.
SeekEof (FV) – функция возвращает значение True, если указатель файла находится на маркере конца файла.
2.9. Рекурсия
Программа, которая в процессе работы вызывает саму себя, по меньшей размерности называется рекуррентной.
В Pascal нельзя сделать рекуррентной саму программу, но можно написать рекуррентную подпрограмму, такая подпрограмма будет содержать в своём теле хотя бы один вызов подпрограммы с точно таким же именем [8].
Любое рекурсивное определение состоит из двух частей. Данные части называют базовой и рекурсивной. Базовая часть является не рекурсивной и задает определение для некоторой фиксированной части объектов. Рекурсивная часть определяет понятие через его же и записывается так, чтобы при цепочке повторных переменных она сводилась бы к базовой части.
Свойства рекурсивных объектов:
- простота построения;
- несхожесть конечного результата с начальными данными;
- внутреннее само подобие.
В данной главе я разработала, написала, повторила и изучила основные конструкции языка. Я затронула такие темы, как: линейная структура, циклы, символы и строки, массивы, процедуры и функции, графику, файлы и рекурсию. Для меня они кажутся самими основными, если более углубленно изучать Pascal, то откроется еще множественный ряд тем, понятий и терминов.
В данном разделе мне хотелось бы закрепить весь изученный материал решая задачи в PascalABC.NET. Тем самым, решив ряд программ мы повторим, закрепим практическую часть языка Pascal.
Задача с использованием линейной структуры. Вычисление параллелограмма.
Решение:
Рис.3.1.
Решение задачи с использованием линейной структуры
Задача и использованием цикла while. Вычисление наибольшего общего делителя двух целых чисел.
Решение:
Рис.3.2.
Решение задачи с использованием цикла while
Задача и использованием цикла repeat. Вычисление среднего арифметического положительных чисел.
Решение:
Рис.3.3.
Решение задачи с использованием цикла repeat
Задача и использованием цикла for. Таблица степеней двойки.
Решение:
Рис.3.4.
Решение задачи с использованием цикла for
Задача на символы и строки. Приветствие.
Решение:
Рис.3.5.
Решение задачи символы и строки
Задача на решение одномерного массива. Подсчет количества ненулевых элементов массива.
Решение:
Рис.3.6.
Решение задачи на одномерный массив
Задача с использованием функции. Функция, которая проверяет является ли символ гласной буквой.
Решение:
Function Glasn(sim:char): boolean;
const
ListOfGlasn:string ='АаЕеИиОоУуЫыЭэЮюЯя';
var
p: byte;
begin
p:=Pos(sim,ListOfGlasn);
if p <> 0
then Glasn:=True
else Glasn:=False;
end;
Задача нарисовать олимпийский флаг с помощью модуля GraphABC.
Решение:
Рис.3.7.
Решение задачи с использованием GraphABC
Задача с использованием файлов.Cсоздаёт на диске файл и записывает в него 5 целых чисел, введённых пользователем
Решение:
Рис.3.3.
Решение задачи с использованием файлов
Задача на рекурсию. Рекурсивная функция факториал.
Решение:
Рис.3.3.
Решение задачи с использованием рекурсивной функции
В данной главе я попыталась закрепить материал повторяемый в главе программирование основных конструкций языка. Решая задачи, я сталкивалсь с некоторомы трубностями, но к счастью мне удалось найти решения. На данный момент я считаю, что материал изучен полностью.
ЗАКЛЮЧЕНИЕ
Язык программирования Pascal относительно легкий в освоении, прекрасно подходит для тех, кто хочет изучить программирование с нуля.
Без основ языка Pascal будет тяжело изучать другие языки программирования, так как в любом другом языке, что-то взято из языка Pascal.
Этот язык учит дисциплинировать, так как даже малейший недочет в программе и тут же выдается ошибка (не компилирует программу).
В данной курсовой работе, я пыталась изложить все основы языка Pascal, которые нужны для изучения и дальнейшего написания программ. Используя эту теорию, можно научиться создавать решения для математических задач, создавать файлы, рисовать различные фигуры, любых форм и размеров.
Написав данную курсовую работу, я получила навык работы в PascalABC, научилась применять правильно различные процедуры и функции, циклы и модули, точно определять и задавать координаты различных линий, эллипсов, окружностей, прямоугольников и т.д. Так же я поняла, что научиться программировать можно только программируя, т.е. решая задачи. Чем больше времени потратить, решая задачи и делая работу над ошибками, тем большему я учусь.
Так же хочу отметить, что все поставленные задачи были выполнены: изучили структуру написания программ на языке Pascal, познакомились и изучили основы языка Pascal, разработали некоторые программы на решения задач.
Для себя могу выделать некоторые плюсы PascalABC: простота и понятность интерфейса программы (программа не требуют дополнительного обучения), легкость ввода и отслеживания.
Проделанная работа позволяет любому пользователю с легкостью создавать большие объемы информации, обрабатывать их, редактировать, делать выборки по определенным критериям и т.д. Использование такой программы значительно облегчает деятельность человека.
1.Культин Н.Б. Turbo Pascal в задачах и примерах. – СПБ.:. БХВ-Петербург, 2006. -256с.: ил. - 9,31,32,41,44,47,53,55,56 с.
2. Зубок Д.А., Маятин А.В., Краснов С.В. Основы программирования в среде Turbo Pascal. Учебное пособие. Санкт-Петербург, 2009.
3.ГОСТ 19.701 – 90. ЕСПД. Схемы алгоритмов, программ данных и систем. Обозначения условные и правила выполнения. Москва, 2010.
4.Учебное пособие. Изучаем Паскаль. Л. Усольцева, Б. П. Зотьева, И. С. Сергеевой, В. Л. Лецко. Волгоградский государственный педагогический университет. Кафедра алгебры, геометрии и информатики. – 3, 16 с.
5.Cамоучитель по программированию на Free Pascal и Lazarus. Алексеев Е.Р., Чеснокова О.В., Кучер Т.В – 164 с.
6. Информатика и информационные технологии: конспект лекций. Авторы: А. Цветкова – 8 с.
7. Алгоритмический язык Паскаль. Учебное пособие по дисциплине «Программирование и основы алгоритмизации» / Моск. гос. ин-т электроники и математики; Сост. В.Г. Кулаков. М., 2010. - 11 с.
8. Паскаль для школьников. 2-е изд. Ушаков Денис Михайлович, Юркова Татьяна Анатольевна – СПб.: Питер, 2013. – 283 с.
Таблица 1.
Типы переменных и объем памяти
Тип переменной |
Занимаемая память, байт |
Диапазон значений |
CHAR |
1 |
Любой диапазон |
STRING |
256 |
Строка до 256 символов |
STRING [N] |
1 x n |
Строка до n символов |
BYTE |
1 |
0-255 |
WORD |
2 |
0-65 535 |
INTEGER |
2 |
-32 768-32 767 |
LONGITN |
4 |
-2 147 483 648 – 2 147 483 647 |
REAL |
6 |
2.9E-39-1.7e38 |
SINGLE |
4 |
1.5E-45-3.4e38 |
DOUBLE |
8 |
5.0E-324-1.7e308 |
EXTENDED |
8 |
3.4E-4932-1.1e4932 |
Источник: Культин Н.Б. Turbo Pascal в задачах и примерах. – СПБ.:. БХВ-Петербург, 2006. -256с.: ил.
Таблица 2.
Процедуры и функции обработки строк
Процедура/Функция |
Описание |
Delete (St, Poz, N) |
Удаление N символов строки St, начиная с позиции Poz |
Insert (Str1, Str2, Poz) |
Вставка строки Str1 d cnhjre Str2, начиная с позиции Poz |
Str (IBR,St) |
Преобразование числового значения величины IBR и перемещение результата в строку St |
Продолжение таблицы 2. |
|
Процедура/Функция |
Описание |
Val (St,IBR,Cod) |
Преобразует значение St в величину целочисленного или вещественного типа и помещает результат в IBR. Значение St не должно содержать незначащих пробелов в начале и в конце. Cod – целочисленная переменная, в которой содержится 0, если ошибки не обнаружено, и номер позиции первого ошибочного символа, если произошла ошибка. Значение IBR в этом случае не определено. |
Copy (St,Poz,N) |
Выделяет из строки St подстроку N символов, начиная с позиции Poz. Poz N- целочисленные выражения. |
Concat (Str1, Str2,…StrN) |
Выполняет сцепление строк Str1, Str2,…StrN в том порядке, в каком они указаны в списке параметров |
Length(St) |
Вычисляет текущую длину в символах строки St. Результат имеет целочисленный тип. |
Pos(Str1,Str2) |
Обнаруживает первое появление в строке Str2 подстроки Str1. Результат имеет целочисленный тип и равен номеру той позиции, где находится первый символ подстроки Str1. Если в Str2 подстроки Str1 не найдено, то результат равен нулю |
UpCase(Ch) |
Преобразует строчную букву в прописную. Параметр и результат имеют литерный тип. |
Таблица 3.
Цвета для ввода текста
Константа |
Цвет |
Номер цвета |
Black |
Черный |
0 |
Blue |
Синий |
1 |
Green |
Зелёный |
2 |
Cyan |
Бирюзовый |
3 |
Red |
Красный |
4 |
Magenta |
Сиреневый |
5 |
Brown |
Коричневый |
6 |
LightGray |
Белый |
7 |
DarkGrey |
Серый |
8 |
LightBlue |
Голубой |
9 |
LightGreen |
Светло-зеленый |
10 |
LightCyan |
Свето-бирюзовый |
11 |
LightRed |
Светло-красный (алый) |
12 |
LightMagenta |
Светло-сиреневый |
13 |
Yellow |
Желтый |
14 |
White |
Белый, яркий |
15 |
Источник: Культин Н.Б. Turbo Pascal в задачах и примерах. – СПБ.:. БХВ-Петербург, 2006. -256с.: ил.
Таблица 4.
Стили заполнения области
Константа |
Стиль заполнения области |
EmptyFill |
Без заливки (сплошная заливка цветом фона) |
SolidFill |
Сплошная заливка текущим цветом |
LineFill |
Горизонтальная штриховка |
LtSlashFill |
Штриховка под углом 45 влево тонкими линиями |
SlashFill |
Штриховка под углом 45 влево |
Продолжение таблицы 4. |
|
Константа |
Стиль заполнения области |
BkSlashFill |
Штриховка под углом 45 вправо тонкими линиями |
LtBkSlashFill |
Штриховка под углом 45 вправо |
HatchFill |
Штриховка клеткой |
XhatchFill |
Штриховка под углом 45 редкой косой клеткой |
InterleaveFill |
Штриховка под углом 45 частой косой клеткой |
WideDotFill |
Заполнение редкими точками |
CloseDotFill |
Заполнение частыми точками |
UserFill |
Тип заполнения определяется программистом |
Источник: Культин Н.Б. Turbo Pascal в задачах и примерах. – СПБ.:. БХВ-Петербург, 2006. -256с.: ил.
Таблица 5.
Шрифты Pascal
Константа |
Значение |
Шрифт |
DefaultFont |
0 |
Стандартный. Каждый выводимый символ формируется в квадрате размером 8 на 8 пикселей. |
TriplexFont |
1 |
Triplex шрифт |
SmallFont |
2 |
Мелкий |
SansSerifFont |
3 |
SansSerif шрифт |
GothicFont |
4 |
Готический |
Источник: Культин Н.Б. Turbo Pascal в задачах и примерах. – СПБ.:. БХВ-Петербург, 2006. -256с.: ил.
*в шрифтах, отличных от стандартного (DefaultFont), букв русского алфавита нет.
- Органы государственного управления (Теоретические основы системы государственных органов РФ)
- ОСОБЕННОСТИ НАСЛЕДОВАНИЯ АВТОРСКИХ ПРАВ
- Понятие и границы суверенитета государства (Характеристика суверенитета государства)
- Дизайн-концепция часов с разработкой торговой марки и серийной упаковки (с промо-материалами)
- Правовые основы организации нотариата (Общая характеристика нотариата в Российской Федерации)
- Понятие и значение приватизации (Понятие и становление приватизации)
- Теория и практика разделения властей (Исторические аспекты теории разделения властей)
- Теории происхождения государства ( Основные причины многообразия теорий происхождения государства)
- Разработка модуля для выполнения операций с натуральными числами в 16-ричной системе счисления (Виды позиционных систем счисления)
- Разработка модуля для выполнения операций с натуральными числами в 16-ричной системе счисления (Теоретически основы выполнения вычислительных операций в 16-ричной системе счисления)
- Юридическая ответственность (ПОНЯТИЕ, ПРИЗНАКИ И ПРИНЦИПЫ ЮРИДИЧЕСКОЙ ОТВЕТСТВЕННОСТИ)
- МЕСТО УПРАВЛЕНЧЕСКОГО УЧЕТА В СИСТЕМЕ БУХГАЛТЕРСКОГО УЧЕТА СОВРЕМЕННЫХ ПРЕДПРИЯТИЙ