Язык программирования Turbo Pascal

Автор работы: Пользователь скрыл имя, 28 Января 2013 в 18:43, курсовая работа

Описание

Цель работы - Изучить язык программирования Турбо Паскаль. Написать игру "Змейка". Правила игры: на поле размером 25*80 движется змейка, состоящая из нескольких сегментов и разбросана еда. Цель игры - двигаться по полю буквами w (вверх), s(вниз), a(влево), d(вправо) и собирать еду. Каждая собранная еда увеличивает длину змейки на один сегмент. Если змейка ударяется о стену, игра заканчивается.

Содержание

Введение
3
1 Язык программирования Turbo Pascal
5
1.1 Процедуры и функции
8
1.2 Операторы. Выражения
10
2 Лексические основы языка Pascal
12
2.1 Структура программы на языке Pascal
14
2.2 Типы данных, используемые в Pascal
18
2.3 Стандартные функции языка Pascal
23
2.4 Построение арифметических выражений
25
2.5 Встроенные константы. Элементы структурного программирования
26
3 Описание алгоритма программы
28
3.1 Структурное описание разработки
28
3.2 Функциональное описание
29
Заключение
31
Список литературы
32
Приложение

Работа состоит из  6 файлов

Презентация.ppt

— 982.00 Кб (Скачать документ)

Содержание.docx

— 12.58 Кб (Открыть документ, Скачать документ)

Титулки по кур.работе.doc

— 62.50 Кб (Открыть документ, Скачать документ)

Язык программирования Turbo Pascal.rtf

— 548.55 Кб (Скачать документ)

Type

Number=(one, two, three, four);

Согласно этим описаниям one является константой типа Number. При применении функции Ord к значению перечислимого типа Ord возвращает целое число, которое показывает, какое место по порядку занимает значение в отношении других значений этого перечислимого типа. Согласно предшествующим описаниям, Ord(one) возвращает 0, Ord(two) возвращает 1 и так далее.

Тип диапазон представляет собой совокупность значений из порядкового типа, называемого главным типом. Тип диапазон задаётся минимальной и максимальной константой порядкового типа. Обе константы должны иметь один и тот же порядковый тип. Например: a..b. При этом считают, что a меньше или равно b (0..99; -128..127). Переменная типа диапазон имеет все свойства переменных главного типа, однако ее значение на этапе выполнения должно принадлежать указанному интервалу. Разрешение использования выражений-констант там, где стандартный Pascal допускает только простые константы, приводит к некоторой синтаксической неоднозначности. В следующем описании неверно задан тип диапазон:

const

X = 50; Y = 10;

type

Scale = (A - B) * 2..(A + B) * 2;

Согласно синтаксису стандартного Pascal, если определение типа начинается с круглой скобки, то это перечислимый тип. Однако Scale предназначен для определения типа диапазона. Поэтому необходимо переупорядочить первое выражение поддиапазона или задать другую константу, равную значению данного выражения, и использовать эту константу в определении типа:

 

type

Scale = 2* (A - B)..(A + B) * 2;

 

2.3 Стандартные функции языка Pascal

 

При описании стандартных функций будет использоваться следующий синтаксис:

Имя_функции>(<аргумент:тип_аргумента>):<тип_возвращаемого_значения>

Abs (X :Real): Real - возвращает абсолютное значение аргумента (|X|);

Abs (X :Integer): Integer - возвращает абсолютное значение аргумента (|X|);

ArcTan (X:Real): Real - возвращает арктангенс аргумента (arctg X).

Chr (A :Byte): Char - возвращает символ, код которого равен A.

Cos (X :Real): Real - возвращает косинус аргумента (cos X);

Exp (X :Real): Real - возвращает экспоненту аргумента (ex);

Frac (X :Real): Real - возвращает дробную часть аргумента;

Int(X:Real):Real - возвращает целую часть аргумента;

Ln (X :Real): Real - возвращает натуральный логарифм аргумента (ln X);

Odd (A:Integer):Boolean - возвращает True, если А нечетно.

Ord (A :Char): Byte - возвращает порядковый номер символа A;

Round (X:Real): Integer - возвращает результат округления аргумента до ближайшего целого;

Random (A:Integer): Integer - возвращает случайное число из интервала [0,A];

Sqr (X:Real): Real - возвращает квадрат аргумента (X2);

Sqr (X:Integer): Integer - возвращает квадрат аргумента (X2);

Sqrt (X:Real): Real - возвращает квадратный корень аргумента(sqrt(x);

Sin (X:Real): Real - возвращает синус аргумента;

Trunc (X:Real): Integer - отбрасывает дробную часть действительного аргумента;

UpCase (A :Char):Char - превращает строчные буквы латинского алфавита в соответствующие им прописные.

Для вычисления значений других функций следует пользоваться тождествами:


 

 

 

 

 

 

 

 

 

2.4 Построение арифметических выражений

 

При построении арифметических выражений используются унарные и бинарные арифметические операции.

Для унарной операции требуется один операнд.

Например:

x:= - a; {изменение знака значения переменной a}

x:= + a; {сохранения знака значения переменной a}

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

Например:

 

 

Запись на языке Pascal будет выглядеть так:

 

x:=(Sqr(a)+Sqrt(a+Sqr(cos(b))))/(Ln(Sqr(b))/Ln(c)-Sin(a/(b+Pi))/Cos(a

/(b+Pi)))/((Cos(a)+Abs(Sin(b)))/Exp(b-a)+1);

 

Оператор " := " называется оператором присваивания. Он предписывает выполнить выражение, заданное в его правой части, и присвоить результат переменной, имя которой указано в левой его части. Переменная и выражение должны быть совместимы по типу. Его синтаксис:

Y:=2;

X:='Строка';

P:=V1;

Summa:=V2; 
где

- X, Y, P, Summa - имена переменных, описанных в разделе описания переменных;

- 2, 'Строка' - значения заданные явно (своими изображениями);

- V1,V2 - выражения, значения которых нужно вычислить.

 

2.5 Встроенные константы. Элементы структурного программирования

 

В Pascal констант значения, которых предопределены. Они называются встроенными.

Например:

MaxInt : Integer - возвращает число 32767, наибольшее значение типа Integer;

PI : Real - возвращает число П = 3.14159265358.

 

Структурированная программа - это программа, составленная из фиксированного множества базовых конструкций. На основе операций, развилок и слияний строятся базовые конструкции: следование, ветвление, цикл. Применяя только эти три конструкции, можно реализовать алгоритм решения любой задачи.

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

Конструкция, состоящая из развилки, двух операций и слияния, называется ветвлением. Одна из операций может отсутствовать.

Конструкция, имеющая линии управления, ведущие к предыдущим операциям или развилкам, называется циклом.

Конструкции следование, ветвление и цикл можно представить как операции, так как они имеют единственный вход и единственный выход.

Произвольную последовательность операций можно представить как одну операцию.

Операция может быть реализована любым оператором языка Pascal (простым или составным), либо группой операторов, за исключением оператора перехода Goto.

В языке Pascal количество базовых конструкций увеличено до шести, это:

следование;

ветвление;

цикл с предусловием;

цикл с постусловием;

цикл с параметром;

выбор.

 

 

 

 

 

 

 

 

 

 

 

 

 

3 Описание алгоритма программы

При работе в текстовом режиме экран монитора разбивается на строки, строки -- на позиции, в каждую из которых можно поместить один символ. Положение символа на экране задается двумя координатами -- вертикальной X и горизонтальной Y. X -- это номер позиции в строке, а Y -- номер строки. Модуль CRT содержит описания констант, процедур и функций, обеспечивающих управление текстовым режимом работы монитора.

ClrScr Очищает экран или окно и помещает курсор в верхний левый угол.

Delay(D: Word) Приостанавливает работу программы на указанное число D миллисекунд. Практически время задержки зависит от тактовой частоты процессора.

GotoXY(X, Y: Byte) Перемещает курсор в позицию X строки Y экрана.

TextBackGround(Color:Byte) Устанавливает цвет фона.

TextColor(Color: Byte) Устанавливает цвет символов.

В программе используются несколько процедур для реализации поставленной задачи.

 

3.1 Структурное описание разработки

Программа написана среде программирования Turbo Pascal. В ней создано контекстное меню, появляющееся вначале игры, содержащее в себе подсказку по управлению змейкой, поле, на которое помеается компонент, содержащий в себе тело змейки и «еда».

При запуске программы выполняются следующие действия:

-открывается контекстное меню со справкой об управлении передвижением тела змейки

-предлагается перейти к игре

-далее появляется появляется зеленое поле, с произвольными координатами прорисовывается еда и отображается змейка по начальным параметрам, которая начинает двигаться вправо.

Управление осуществляется клавишами:

w - осуществляет движение змейки вверх

s - вниз

a - влево

d - вправо

Координаты каждой части змейки хранятся в матрице, при нажатии определенной клавиши они меняются и змейка движется.

При совпадении координат еды и начала змейки (поедание еды змейкой) координаты еды произвольно меняются, длина змейки увеличивается на один сегмент.

Программа постоянно проверяет, нет ли пересечения змейкой границ поля. Если это случается, то выводится сообщение о проигрыше и меню с предложение вытйти из игры.

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

 

3.2 Функциональное описание

В данной программе используются:

Тип данных созданный пользователем:

spoint=record; {тип данных для точки}

Консанты:

maxwidth=10; {максимальная длина змейки}

Переменные:

width:integer;{длина змейки}

e:spoint;{координаты еды}

snakebody: array [1..maxwidth] of spoint; {координаты частей тела змейки}

i{счетчик цикла}, nx, ny:integer;{координаты головы змейки}

v:byte;{вектор направления головы змейки}

gameover:boolean;{флаг окончания игры}

key:char;{буфер клавиши}

Процедуры и функции:

function checknext (x:integer; y:integer):boolean; {проверяет свободна ли клетка и не выходит ли она за границы поля}

procedure neweat; {создает еду на поле}

procedure movesnake(x,y:integer); {перемещает змейку}

 

Заключение

 

  Завершаем рассмотрение основ программирования на  Турбо  Паскале. Среди  них  вычисления  и  обработка  информации,  использование   объектно- ориентированного  программирования  -  словом,   те   задачи,   с   которыми приходится сталкиваться профессиональному программисту.  Турбо  Паскаль  был выбран  как   наилучший   язык   программирования   для   обучения   основам профессионального программирования.

 Пакет Turbo Pascal 7.0 использует новейшие достижения в программировании. Он может быть использован практически на любой машине и относительно дешев. Язык этой версии обладает широкими возможностями, имеет большую библиотеку модулей. Среда программирования позволяет создавать тексты программ, компилировать их, находить и исправлять ошибки, компоновать программы из отдельных частей, использовать модули, отлаживать и выполнять отлаженную программу.

 Турбо Паскаль - достаточно  «старый»  программный  продукт.  Следует заметить, однако, что Паскаль - это живой язык. Известны,  используются  или находятся в стадии разработки компиляторы и  среды  разработки  программ  на Паскале  для  различных  операционных  систем,   в   том   числе   и   бурно развивающейся операционной системы Linux. Эти  системы  иногда  частично,  а иногда и в значительной мере совместимы с Турбо Паскалем,  а  следовательно, накопленный опыт может быть использован и  для  серьезной,  профессиональной работы по разработке программ.

В ходе проделанной работы был изучен текстовый режим языка программирования Turbo Pascal, рассмотрены и применены процедуры и функции.

 

 

Список Литературы

 

Епанешников А.М. Епанешников В.А. - "Программирование в среде Turbo Pascal 7.0". Москва "Диалог - МИФИ". 2000г. 368с.

Марченко А.И. Марченко Л.А. - "Программирование в среде Turbo  3 3  Pascal 7.0". Киев "Век+". 1999г. 460с

Малыхина М.П. Программирование на языке высокого уровня Turbo Pascal. - издательство «СПб:БХВ-Петербург», 2006.

Попов В.Б. - "Turbo Pascal для школьников." Москва. "Финансы и статистика". 1998г. 464с.

Павловская Т.А. Паскаль. Программирование на языке высокого уровня -- издательство Питер 2008.

Пильщиков В.Н- "Сборник упражнений по языку Паскаль". Москва.    "Наука". 1989г. 160с.

Справочник по Turbo Pascal для студентов: А. Н. Моргун -- Москва, Вильямс, 2006 г.- 608 с.

Ускова О.Ф. "Программирование на языке Паскаль. Задачник". Санкт-Петербург. "Питер". 2002г. 334с

Turbo Pascal для студентов и школьников: Г. Г. Рапаков, С. Ю. Ружецкая -- Москва, БХВ-Петербург, 2007 г.- 352 с.

Turbo Pascal. Решение сложных задач: В. В. Потопахин -- Москва, БХВ-Петербург, 2006 г.- 208 с

 

 

Приложение

 

Листинг программы

 

program zmeika;

 uses crt;

type

spoint=record

x:integer;

y:integer;

end; {тип для точки}

const

maxwidth=10; {максимальная длина змейки}

var

width: integer; {длина змейки}

 e:spoint;{координаты еды}

snakebody:array [1..maxwidth] of spoint; {массив с координатами частей тела змейки}

i,{счетчик цикла} nx,ny:integer{координаты головы змейки};

v:byte; {вектор направления головы змейки}

gameover: boolean; {флаг окончания игры}

key:char;{буфер клавиши}

{проверяет свободна ли клетка и не выходит ли она за границы поля}

Анотация.docx

— 12.87 Кб (Открыть документ, Скачать документ)

Информация о работе Язык программирования Turbo Pascal