Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Программирование на языке Pascal

Содержание:

ВВЕДЕНИЕ

Несколько слов об истории языка Паскаль стал «наследником» Алгола. Алгоритмический язык Алгол был разработан в 1950-60 гг. Его создателем был швейцарский ученый Николаус Вирт, который намеревался использовать этот язык, чтобы научить своих учеников разрабатывать компиляторы. Рождение языка Паскаль - начало 70-х годов. По сравнению с Алголом Паскаль проще и прозрачнее. Он обладает гораздо лучшими возможностями обработки данных и имеет встроенные процедуры ввода / вывода, которых не было в Algol. Turbo Pascal от Borland является расширением языкового стандарта и также включает интегрированную среду, которая значительно ускоряет и упрощает процесс разработки программ. Это программное обеспечение прошло более 6 версий до появления Turbo Pascal 7.0 [2].

Запуск программы. Будем считать, что компьютер для работы с Турбо Паскаль настроен так, как это сказано в приложении. Для начала работы с Турбо Паскаль удобнее всего поступить следующим образом:

Запустить Norton Commander;

Зайти в каталог, в котором планируется сохранять файлы с исходными текстами программы, а также вспомогательные файлы вашей программы;

Вызвать горячее меню Norton Commander (нажав клавишу F2);

Выбрать строку "Turbo Pascal 7.0";

Если окно редактирования не открылось, то открыть его через пункт меню "File" (нажать Alt+F, выбрать New). Если у вас уже есть некоторый файл с исходным текстом программы (файл с расширением pas), с которым вы хотите продолжить работу, то достаточно навести на него указатель Norton Commander и нажать Enter. В этом случае запустится Turbo Pascal и сразу откроется текст выбранной вами программы.

Окно среды разработчика. Основной экран интегрированной среды разработчика Turbo Pascal 7.0

С точки зрения функциональности выделяются три области экрана:

Строка меню активируется нажатием клавиши F10. Меню содержит следующие разделы:

Файл Позволяет выполнять все основные действия над файлами (создавать, открывать, сохранять)

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

Поиск Позволяет искать и заменять фрагменты текста.

Запуск Позволяет запустить программу, включая пошаговые инструкции.

Компиляция Позволяет вам скомпилировать программу.

Отладка Содержит команды, которые облегчают поиск ошибок в программе.

Инструменты Содержит дополнительные продукты Turbo Pascal.

Параметры Позволяет установить необходимые параметры компилятора и среды разработки.

Window. Позволяет выполнять все основные операции с окнами (открывать, закрывать, перемещать, изменять размер).

Help. Позволяет получить имеющуюся в системе справочную информацию.

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

Основные команды и горячие клавиши. Ниже приведены основные команды среды разработчика Turbo Pascal и соответствующие им горячие клавиши. Более полный список горячих клавиш можно найти в приложении.

Ctrl+F9 - запуск программы

Alt+F5 - просмотр пользовательского экрана

F2 - сохранение программы

F3 - открытие сохраненной программы

Alt+F3 - закрытие активного окна

Alt+X - выход из Турбо Паскаль

F1 - контекстная помощь

Ctrl+F1 - справка об операторе, на котором установлен курсор

Alt+Backspace - отмена последнего изменения

Ctrl+Y - удаление строки

Shift+стрелки - выделение блока текста

Ctrl+Insert - копирование выделенного блока в буфер

Shift+Insert - вставка из буфера [4].

1 ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ ПАСКАЛЬ

1.1 Структура программирования на языке Паскаль

Прежде всего, следует помнить, что изучение языка программирования - это знание формальных правил написания алгоритмов для его последующего выполнения компьютером. Эта формальность вытекает из принципов, установленных в архитектуре вычислительных устройств и жесткости математической логики. Поэтому постарайтесь воспринимать все очень строгие правила как неизбежные, чтобы подготовиться к серьезной, скрупулезной, а иногда и трудной работе. Однако не стоит бояться, раздражать и жаловаться на пункт назначения: немного точности, внимания, знания предыдущего материала - и вы уже программист [4].

Сейчас наиболее широко используются традиционные языки. В их число входят FORTRAN, Pascal, C/C++, Ada, Java и т. п. Это совокупность традиционных языков создает ошибочное впечатление о том, что на всех языках программирования почти одинаково [3].

Основные понятия. Как и любой алгоритм, который, как вы помните, представляет собой последовательность инструкций, программа Pascal состоит из команд (операторов), написанных в определенном порядке и формате. Команды позволяют получать, сохранять и обрабатывать различные типы данных (например, целые числа, символы, строки и т. Д.). Однако, помимо команд, в записи программы также принимают участие так называемые «служебные слова». Это элементы формальностей, которые организуют структуру программы. Их не так много, но их ценность трудно переоценить. Служебные слова могут использоваться только по их прямому назначению. Переопределение их не допускается. Вы уже знаете, что основная цель компьютера - облегчить работу с большим количеством информации, поэтому подавляющее большинство программ основано на одном довольно простом принципе: получение данных из внешнего мира (входные данные), обработка их с использованием соответствующего алгоритма, хранение необходимой информации и отправка их к внешнему миру результатов [4].

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

Структурированное программирование - это технология проектирования программ, основанная на строгом определении языковых инструментов и методов их использования. Языковые функции включают стандартные типы данных и операторы управления расчетами. Набор данных, определенный в программе как переменные и константы, называется структурой данных этой программы. Правильная структура структуры данных программы играет такую ​​же важную роль для ее эффективности, как и правильная структура структуры управления. Именно взаимодействие этих двух аспектов определяет программу. Теория структур данных аналогична теории структур управления. А именно, существуют базовые (стандартные) структуры, каждая из которых определяет один из способов объединения данных в структуру. В этом случае простые типы данных играют роль кирпичей, составляющих все здание. Структуры данных в Паскале, вероятно, наиболее естественным образом отражают идеологию структурного программирования.

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

Например, определения типов

Word = Array [1..20] of Char;= Record: Word;: Integer;= array [1..n] of Man;

Следует понимать, что взаимосвязь «управление данными» состоит не только и не столько в сходстве правил их построения, сколько в ориентации структур управления на обработку структур данных. Оператор присваивания использует простые типы данных. Логические данные используются для определения условий. Скалярные типы, определенные программистом, используются для описания данных индекса в массивах и селектора опций в операторе выбора. Удобно использовать оператор цикла с параметром для обработки массивов и операторы While и Repeat для обработки файлов. Записи о вариантах, естественно, обрабатываются различными инструкциями. Ссылочные (динамические) структуры естественным образом обрабатываются рекурсивно [5].

1.2 Типы данных

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

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

Стандартные типы:

логические

целые

вещественные

символьный

строковый

адресный

файловые

Типы, определяемые программистом:

Простые:

перечисляемый

интервальный

адресные

Составные:

массивы

строки

записи

множества

файлы

процедурные типы

объекты

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

Булевы типы. Основной логический тип данных Паскаля называется логическим. Значения этого типа занимают 1 байт в памяти и могут принимать только два значения: true (true) или false (false). Внутреннее представление лжи - 0 (ноль), истина - 1.

К величинам логического типа применяются логические операции and, or, xor и not. Они описаны ниже. Для наглядности вместо значения false используется 0, а вместо true - 1.

Таблица 1

a

b

a and b

a or b

a xor b

not a

0

0

0

0

0

1

0

1

0

1

1

1

1

0

0

1

1

0

1

1

1

1

0

0

Операция and - "логическое ‘И’", логическое умножение. Операция or - "логическое ‘ИЛИ’", логическое сложение. Операция xor - так называемое исключающее ‘ИЛИ’, или операция неравнозначности. Логическое отрицание not является унарной операцией. Кроме этого, величины логического типа можно сравнивать между собой с помощью операций отношения, перечисленных в таблице:

Таблица 2

Операция

Знак операции

больше

>

больше или равно

>=

меньше

<

меньше или равно

<=

равно

=

не равно

<>

Результат этих операций имеет логический тип.

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

Таблица 3

Тип

Название

Размер

Знак

Диапазон

integer

целое

2 байта

есть

-32768..32767(-215..215-1)

shortint

короткое целое

1 байта

есть

-128..127(-27..27-1)

byte

байт

1 байта

Нет

0..255(0..28-1)

word

слово

2 байта

Нет

0..65535(0..216-1)

lonight

длинное целое

4 байта

есть

-2147483648..2147483647(-231..231-1)

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

Таблица 4

Операции

Знак операции

сложение

+

вычитание

-

умножение

*

деление

div

остаток от деления

mod

Кроме того, побитовые и или xor операции не могут использоваться для целых чисел. При выполнении этих операций каждое значение представляется в виде набора двоичных цифр. Действие выполняется для каждой пары соответствующих битов операндов. Например, результатом операций 3 и 2 будет 2, поскольку двоичное представление числа 3 равно 11, число 2 равно 10. Для операций с целочисленными значениями также предназначены сдвиги влево и вправо. Слева от знака операции находится значение, по которому будет выполняться операция, а справа - если для сдвига значения требуются двоичные цифры. Например, результатом операции 12 shr 2 будет 3, потому что двоичное представление 12 равно 1100.

Реальные типы. Фактические типы данных не хранятся в памяти компьютера как целые числа. Внутреннее представление действительного числа состоит из двух частей: мантиссы и ордена, и каждая часть имеет знак. Например, число 0,087 представляется как 0,87 * 10-1, а мантисса 87 и порядок -1 сохраняются в памяти (для ясности мы упустили из виду тот факт, что данные фактически представлены в двоичной записи), и это немного сложнее). Существует несколько типов материалов, которые отличаются точностью и диапазоном представления данных. Точность числа определяется длиной мантиссы, а интервал - длиной порядка.

Таблица 5

Тип

Название

Размер

Значащих цифр

Диапазон значения

real

вещественный

6

11-12

2.9e-39..1.7e+38

single

одинарной точности

4

7-8

1.5e-45..3.4e+38

double

двойной точности

8

15-16

5.0e-324..1.7e+308

extended

расширенный

10

19-20

3.4e-4932..1.1e+4923

comp

большое целое

8

19-20

-9.22e18..9.22e18(-263..263-1)

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

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

Таблица 6

Имя

Описание

Результат

Пояснения

abc

модуль

Вещественный

|x| записывается abs(x)

arctan

арктангенс угла

Вещественный

arctg x записывается arctan(x)

cos

косинус угла

Вещественный

cos x записывается cos(x)

exp

экспонента

Вещественный

ex записывается exp(x)

frac

дробная часть аргумента

Вещественный

frac(3.1) даст в результате 0.1

int

целая часть аргумента

Вещественный

frac(3.1) даст в результате 3.0

ln

натуральный логарифм

Вещественный

logex записывается ln(x)

pi

значение числа п

Вещественный

3.1415926536

round

округление до целого

Целый

round(3.1) даст в результате 3 round(3.8) даст в результате 4

sin

синус угла

Вещественный

sin x записывается sin(x)

sqr

квадрат

Целый

x2 записывается sqr(x)

sqrt

квадратный корень

Вещественный

записывается sqrt(x)

trunc

целая часть аргумента

Целый

trunc(3.1) даст в результате 3

Символьный тип. Этот тип данных, обозначаемый ключевым словом char, служит для представления любого символа из набора допустимых символов. Под каждый символ отводится 1 байт. К символам можно применять операции отношения (<, <=, >,>=, =, <>), при этом сравниваются коды символов. Меньшим окажется символ, код которого меньше. Стандартных функций для работы с символами тоже немного:

Таблица 7

Имя

Описание

Результат

Пояснения

ord

порядковый номер символа

Целый

ord('b') даст в результате 98 ord('ю') даст в результате 238

chr

преобразование в символ

Символьный

chr(98) даст в результате 'b' chr(238) даст в результате 'ю'

pred

предыдущий символ

Символьный

pred('b') даст в результате 'a'

succ

последующий символ

Символьный

pred('b') даст в результате 'a'

upcase

перевод в верхний регистр

Символьный

upcase('b') даст в результате 'B'

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

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

Стандартная функция Ord может быть применена к любому порядковому типу, который в результате возвращает порядковый номер определенного значения в этом типе.

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

к любому порядковому типу могут быть применены стандартные функции Low и High, которые возвращают наименьшее и наибольшее значения величин данного типа [6].

1.3 Операторы языка

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

Простые операторы. Операторы, которые не содержат других операторов, просты. К ним относятся:

оператор присваивания;

ссылка на процедуру;

GOTO оператор безусловного перехода;

пустое заявление.

Оператор присваивания. С помощью этого оператора переменной или функции присваивается значение выражения. Для этого используется знак присваивания :=, слева от которого записывается имя переменной или функции, которой присваивается значение, а справа - выражение, значение которого вычисляется перед присваиванием. Допустимо присваивание значений переменным и функциям любого типа, за исключением типа файл. Тип выражения и тип переменной (или функции) должны быть совместимы для присваивания. Пример:

:= Y;:= А + В;:= (I>0) and (I<100);:= Sqr(J) + I*К;

Оператор безусловного перехода GOTO. Использование меток

Оператор GOTO позволяет изменить стандартный последовательный порядок выполнения операторов и перейти к выполнению заданного оператора. Оператор, на который происходит переход, должен быть помечен меткой. Эта же метка должна быть указана и в операторе GOTO. Метки, используемые в Turbo Pascal, могут быть двух типов:

целым числом в пределах от 0 до 9999;

обычным идентификатором.

Все используемые метки должны быть перечислены в разделе объявления меток, начинающемся зарезервированным словом label, например: label 1, 2, Metka;

Только один оператор может быть помечен тегом. Метка отделяется двоеточием от помеченного оператора. Использование оператора GOTO должно быть чрезвычайно осторожным. Его широкое использование без какой-либо конкретной причины ухудшает понимание логики программы. Безусловный переход может быть выполнен в любом месте программы, а не в любом месте программы. Следовательно, вы не можете использовать этот оператор для переключения из основной программы в подпрограмму или выхода из подпрограммы; не рекомендуется вводить структурированный оператор, так как это может дать неправильный результат и т. д.

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

Структурированные операторы. Структурированными являются такие операторы, которые включают в себя другие операторы.

К структурированным операторам относятся:

составной оператор;

условный оператор IF;

условный оператор CASE;

оператор цикла REPEAT;

оператор цикла WHILE;

оператор цикла FOR;

оператор над записями WITH.

Составной оператор. Составной оператор представляет собой совокупность последовательно выполняемых операторов, заключенных в операторные скобки begin и end:

begin

<оператор 1>;

<оператор 2>;

. . .

<оператор N>

end;

Это может быть необходимо в тех случаях, когда в соответствии с правилами создания языковых структур вы можете использовать ОДИН оператор и выполнять несколько действий. Такой составной оператор включает в себя ряд операторов, которые выполняют требуемые действия. Если в будущем будет указано, что оператор может использоваться, он также может быть составным оператором. Отдельные операторы в составном операторе отделены друг от друга точкой c. Поскольку составной оператор в конце конца слова не является отдельным предложением, вы можете опустить точку с запятой раньше, в противном случае компилятор предполагает, что перед словом стоит пустой оператор. Можно предположить, что основная часть самой программы, поскольку она заключена в круглые скобки оператора начала и конца, также является составным оператором.

Условный оператор IF. Оператор IF реализует алгоритмическую конструкцию FORKING и изменяет порядок выполнения операторов в зависимости от истинности или ложности конкретного условия. Есть два варианта оператора:

if S then A

else В; {полная развилка}

и

if S then А; {укороченная развилка}

В этих операторах:

S - Некоторое логическое выражение, истинность которого проверяется;

A - Оператор, который выполняется, если выражение S истинно;

B - Оператор, который выполняется, если выражение S ложно.

Так как условный оператор IF является единым предложением, ни перед then, ни перед else точку с запятой ставить нельзя. Примеры использования оператора:

if X < 0 then X := -Y;

if X < 1.5 then Z := X + Y else Z := 1.5;

ПОВТОРНАЯ инструкция цикла. Оператор цикла REPEAT организует выполнение цикла, состоящего из любого количества инструкций с неизвестным числом повторений. Тело цикла выполняется как минимум один раз. Выход из цикла выполняется, если логическое выражение истинно.

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

Оператор цикла FOR. Оператор цикла FOR организует выполнение одного оператора заданное количество раз. Есть два варианта оператора:

for <переменная цикла>:=<начальное значение> to <конечное значение> do <оператор>;

for <переменная цикла>:=<начальное значение> downto <конечное значение> do <оператор>;

В этих операторах:

<переменная цикла> - переменная порядкового типа;

<начальное значение> - выражение (порядкового типа), определяющее начальное значение переменной цикла;

<конечное значение> - выражение (порядкового типа), определяющее конечное значение переменной цикла (при этом значении тело цикла (т е <оператор>) выполняется последний раз);

<оператор> - выполняемый оператор.

<начальное значение> и <конечное значение> должны быть совместимы для присваивания с переменной цикла.

Цикл работает следующим образом:

Сначала начальные и конечные значения рассчитываются и сохраняются.

Затем переменная цикла получает начальное значение.

Затем значение переменной цикла сравнивается с окончательным значением.

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

присвоение переменной цикла следующему наибольшему значению (в первой версии оператора) или следующему наименьшему значению (во второй версии).

Конечно, если первый вариант 4 или второй вариант меньше, чем 2,

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

Использование стандартных процедур Break и Continue в операторах циклов REPEAT, WHILE и FOR. В версии 7.0 в циклах REPEAT, WHILE и FOR можно использовать две стандартные процедуры

Break и Continue. Процедура Break позволяет досрочно выйти из цикла, не дожидаясь выполнения условия выхода. Процедура Continue позволяет начать новую итерацию цикла, даже если предыдущая не завершена [7].

2 КЛАССИФИКАЦИЯ КОМПЬЮТЕРНЫХ ИГР

2.1 Виды компьютерных игр

Компьютерные и видеоигры можно классифицировать по двум критериям: пол и количество игроков. Классификация игр по жанрам. Четкая классификация затруднена из-за того, что иногда сложно отнести игру к определенному жанру. Игра может быть смесью существующих жанров и не распространяется ни на один из них. Несмотря на это, при разработке компьютерных игр. [8].

3D Shooter (3D-шутеры, "RPG"). Название происходит от концепции 3D - 3 измерения (три измерения) и шутер (английский «шутер»). Основным принципом является визуализация виртуального пространства и объектов с помощью программы для компьютерной игры. В этом случае проигрыватель может работать в виртуальной игровой среде. Используется для обозначения всех типов компьютерных игр, содержащих элементы битвы, в виртуальном трехмерном пространстве. В основном используется техника шутера от первого лица - изображение на экране компьютера имитирует вид игрока. Одиночная и многопользовательская игры выделяются из организации игры - они играют в одиночку против компьютера и играют с другими игроками.

Примеры: Doom, Quake, Counter-Strike, Half-Life, Unreal, Tomb Raider

Игры (аркада). Игры, в которых игрок должен действовать быстро, полагаясь прежде всего на рефлексию и реакцию. Аркада характеризуется развитой системой бонусов: подсчет очков, постепенное открытие игровых элементов и т. Д. Термин «аркада» по отношению к компьютерным играм появился во времена игровых автоматов, которые устанавливались в торговых центрах (аркадах). Игры на них были просты в освоении (чтобы привлечь больше игроков). Затем эти игры были перенесены на игровые приставки и до сих пор являются для них основным жанром.

Бой (бой). Во время боя два героя сражаются на арене, используя различные удары, броски и комбинации. Характеризуется большим количеством персонажей (воинов) и ударами (иногда более сотни за каждого персонажа). Этот жанр не очень популярен на ПК из-за сосредоточенности на совместной игре, а играть на клавиатуре довольно проблематично. Однако этот жанр хорошо развит на игровых приставках.

Примеры: Mortal Combat, Street Fighter, Tekken

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

Примеры: Жажда скорости, Спуск III, Серия Авиатор

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

пошаговые стратегические игры (Turn-Based Strategy, TBS). Игроки делают ходы попеременно, и каждому игроку дается неограниченное или ограниченное время (в зависимости от типа и сложности игры) для их хода.

Стратегии в реальном времени (Real Time Strategy, RTS). Все игроки выполняют свои действия одновременно, и ход времени не прерывается.

Примеры: WarCraft, StarCraft, Dune

Sport (спортивные). Как и следует из названия - имитация какой-либо спортивной игры, например футбола.

Примеры: FIFA, NBA, Tennis

Adventure (приключения), или Quest. Игра-повествование, в которой управляемый игроком герой продвигается по сюжету и взаимодействует с игровым миром посредством применения предметов, общения с другими персонажами и решения логических задач.

Примеры: Space Quest; Myst, Мор. Утопия

Puzzle (головоломки, логические)

В некомпьютерной головоломке роль судьи, который следит за соблюдением правил, играет либо игрок (один), либо механическое устройство (кубик Рубика). С появлением компьютеров возможности головоломок расширились, поскольку написание компьютерной программы проще, чем создание механического устройства. Головоломки, как правило, не требуют реакции от игрока (однако многие отслеживают время, потраченное на решение).

Примеры: тральщик (минный тральщик); Sokoban.

Классификация игр по количеству игроков.

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

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

Massive (MMO, Massively Multiplayer Onine). Массовые интернет игры. Наиболее распространенными жанрами являются настольные и ролевые игры (так называемые многопользовательские онлайн-игры MMORPG или RPG). Среди них есть также браузерные игры (игры, не требующие установки какого-либо клиента), а также текстовые онлайн-игры - жанр MUD.

3 ИГРЫ НА ЯЗЫКЕ ПАСКАЛЬ

3.1 Угадай число

Задача:

Отгадать целое число, которое "загадал" компьютер в определенном диапазоне.

Описание переменных:

x - число, "загаданное" компьютером;

y - Очередное число, вводимое пользователем.

Алгоритм решения задачи:

Программа генерирует псевдослучайное число, которое записывается в переменную x. Пока число x не совпадет с номером y, пользователю будет предложено ввести следующий номер. Кроме того, если x> y, то на экране будет отображаться сообщение «Ваш номер меньше ожидаемого». В противном случае условие x <y будет проверено. Если оно будет положительным, появится сообщение «Ваш номер больше ожидаемого», в противном случае появится сообщение «Вы правильно угадали».

Нетрудно понять, что если у не больше или меньше х, это означает х. В этом случае логическое выражение while возвращает false и цикл прерывается.

Паскаль программа:

Program Ugaday_chislo;

label 1,2;x,y,k: ineger;

begin

writeln ('Компьютер задумал число от 1 до 10, угадай это число');

writeln ('У тебя есть 5 попыток');

k:=5; randomize; x:=random (10);

: writeln ('Введи число от одного до десяти');

readln (y); if k<>0 then beginx=y then begin writeln ('Вы угадали!');1;begin if y>x then ('Ваше число больше задуманного')

else writeln ('Ваше число меньше задуманного');

k:=k-1;2;begin writeln ('Число попыток истекло'); 1;

end;

:readln;

end.

Примечания: Угадать число всегда можно не более чем через 5 попыток.

2.2 Тир

Программа Tire - это игровая программа. Цель в «тире» имеет круглую форму. Программа отображает приглашение: «Добро пожаловать в тир». После этого пользователю предлагается сделать фотографию или вставить значимые x и y. Появится сообщение «Ваш снимок, введите значимый x, y». Если это значение соответствует условию x2 + y2 <= R2, пользователь поразит цель, в противном случае - нет. При промахе программа отображает сообщение о промахе: «Мисс, попробуйте еще раз» и предлагает пользователю снова выстрелить. Паскаль программа:

Program Tir;1,2;R,x,y:integer;

Begin

Writeln (‘Добро пожаловать в тир’);

:writeln (‘Ваш выстрел, введи значимое x, y’);

Readln(x, y); R:=10;SQR(x) + SQR(y)<R*R then begin(‘Попадание, вы выиграли’);; end Else begin writeln (‘Промах? Попробуй еще раз’);2; end; 1Readln; End.

ЗАКЛЮЧЕНИЕ

В ходе курса были рассмотрены основные вопросы об основах структурного программирования в среде Turbo Pascal. Turbo Pascal является одним из самых популярных языков программирования, которые используются для обучения студентов основам алгоритмизации и программирования. Он был создан Николаусом Виртом для обучения студентов в 70-х годах прошлого века, но по-прежнему популярен среди начинающих программистов благодаря своей простоте и способности создавать простые программы для сложных многострочных кодов.

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

В практической части курсовой работы вопросы, связанные с созданием программ на языке Pascal, рассматривались как игровые программы, выбирались игровые программы. Таких как Tier и Guess the Number. Язык программирования Pascal предоставляет возможность создавать игровые программы различного типа.

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

В программе «Угадай число» датчик случайных чисел использовался компьютером для «угадывания» числа. Изначально у пользователя было пять попыток угадать. Если пользователь не может угадать число, рассчитанное компьютером в пять попыток, он проигрывает.

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

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

Список используемой литературы

1. PASCAL-XSC. Язык численного программирования / Р. Клатте и др. - М.: НИЦ "Регулярная и хаотическая динамика", 2016. - 352 c.
2. Абрамов, В. Г. Введение в язык паскаль / В.Г. Абрамов, Н.П. Трифонов, Г.Н. Трифонова. - М.: Наука, 2013. - 320 c.
3. Андреева, Т. А. Программирование на языке Pascal / Т.А. Андреева. - М.: Интернет-университет информационных технологий, Бином. Лаборатория знаний, 2013. - 240 c.
4. Арсак, Ж. Программирование игр и головоломок / Ж. Арсак. - М.: Главная редакция физико-математической литературы издательства "Наука", 2016. - 224 c.
5. Аручиди, Н. А. Компьютер в работе бухгалтера / Н.А. Аручиди. - М.: Феникс, 2016. - 368 c.
6. Гагарина, Л. Г. Компьютерный практикум для менеджеров / Л.Г. Гагарина, Е.М. Портнов, И.С. Холод. - М.: Финансы и статистика, 2014. - 352 c.
7. Грызлов, В. И. Турбо Паскаль 7.0 / В.И. Грызлов, Т.П. Грызлова. - М.: ДМК, 2016. - 416 c.
8. Епанешников, А. М. Программирование в среде Turbo Pascal 7.0 / А.М. Епанешников, В.А. Епанешников. - М.: Диалог-Мифи, 2011. - 368 c.
9. Зеленяк, О. П. Современный задачник по Турбо Паскалю / О.П. Зеленяк. - М.: ДМК Пресс, 2014. - 312 c.
10. Карпов, Александр Постановка и автоматизация управленческого учета / Александр Карпов. - М.: Результат и качество, 2011. - 504 c.
11. Касторнова, В. А. Структуры данных и алгоритмы их обработки на языке программирования Паскаль / В.А. Касторнова. - М.: БХВ-Петербург, 2016. - 304 c.
12. Кашаев, С. М. Паскаль для школьников. Подготовка к ЕГЭ (+ CD-ROM) / С.М. Кашаев, Л.В. Шерстнева. - М.: БХВ-Петербург, 2011. - 336 c.
13. Кашаев, С. М. Паскаль для школьников. Подготовка к ЕГЭ / С.М. Кашаев, Л.В. Шерстнева. - М.: БХВ-Петербург, 2011. - 336 c.
14. Кетков, А. Практика программирования Бейсик, Си, Паскаль / А. Кетков, Ю. Кетков. - М.: БХВ-Петербург, 2011. - 480 c.
15. Кетков, Александр Практика программирования: Бейсик, Си, Паскаль. Самоучитель (+ дискета) / Александр Кетков , Юлий Кетков. - М.: БХВ-Петербург, 2013. - 480 c.
16. Кетков, Ю. Л. Свободное программное обеспечение. FREE PASCAL для студентов и школьников (+ CD) / Ю.Л. Кетков, А.Ю. Кетков. - М.: БХВ-Петербург, 2011. - 376 c.
17. Кетков, Ю. Л. Свободное программное обеспечение. FREE PASCAL для студентов и школьников / Ю.Л. Кетков, А.Ю. Кетков. - М.: БХВ-Петербург, 2011. - 384 c.
18. Климова, Л. М. Pascal 7.0. Практическое программирование. Решение типовых задач / Л.М. Климова. - М.: КУДИЦ-Образ, 2014. - 528 c.
19. Кореневская, О. В. Турбо Паскаль 7.0 / О.В. Кореневская. - М.: НТ Пресс, 2014. - 144 c.
20. Культин, Н. Turbo Pascal в задачах и примерах / Н. Культин. - М.: БХВ-Петербург, 2012. - 256 c.
21. Культин, Н. Программирование в Turbo Pascal 7.0 и Delphi / Н. Культин. - М.: БХВ-Петербург, 2011. - 400 c.
22. Культин, Никита Программирование в Turbo Pascal 7.0 и Delphi (+ CD-ROM) / Никита Культин. - М.: БХВ-Петербург, 2012. - 390 c.
23. Малыхина, М. П. Программирование на языке высокого уровня Turbo Pascal / М.П. Малыхина. - М.: БХВ-Петербург, 2012. - 544 c.
24. Моргун, А. Н. Решение задач средствами языка Turbo Pascal 7.0 / А.Н. Моргун. - М.: Юниор, 2011. - 216 c.
25. Перминов, О.Н. Язык программирования Паскаль. Справочник / О.Н. Перминов. - М.: Радио и связь, 2015. - 128 c.
26. Рапаков, Г. Turbo Pascal для студентов и школьников / Г. Рапаков, С. Ржеуцкая. - М.: БХВ-Петербург, 2012. - 352 c.
27. Семашко, Г. Л. Программирование на языке паскаль / Г.Л. Семашко, А.И. Салтыков. - М.: Главная редакция физико-математической литературы издательства "Наука", 2015. - 128 c.
28. Фаронов, В. В. Программирование на персональных ЭВМ в среде Турбо-Паскаль / В.В. Фаронов. - М.: МГТУ, 2011. - 448 c.
29. Филатова, В. Практическая бухгалтерия на Excel 2007 для малого бизнеса / В. Филатова. - М.: Питер, 2016. - 192 c.
30. Харитонов, С. А. Налог на прибыль: методология учета в 1С:Бухгалтерии 7.7 / С.А. Харитонов. - М.: 1С-Паблишинг, 2011. - 376 c.