Файл: Основы программирования на языке Pascal ( ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ ПАСКАЛЬ).pdf
Добавлен: 01.04.2023
Просмотров: 101
Скачиваний: 2
Все используемые метки должны быть перечислены в разделе объявления меток, начинающемся зарезервированным словом label, например: label 1, 2, Metka;
Одной меткой можно пометить только один оператор. Метка от помеченного оператора отделяется двоеточием. Использовать оператор GOTO следует крайне осторожно. Широкое его применение без особых на то оснований ухудшает понимание логики работы программы. Безусловный переход можно осуществлять далеко не из каждого места программы и не в любое место программы. Так, нельзя с помощью этого оператора перейти из основной программы в подпрограмму или выйти из подпрограммы, не рекомендуется осуществлять переход внутрь структурированного оператора, т. к. он может дать неправильный результат, и т. д.
Пустой оператор. Пустой оператор не выполняет никакого действия и никак не отображается в программе (за исключением, быть может, метки или точек с запятыми, отделяющих пустой оператор от предыдущих или последующих операторов). Он может потребоваться для осуществления на него безусловного перехода.
Структурированные операторы. Структурированными являются такие операторы, которые включают в себя другие операторы.
К структурированным операторам относятся:
- составной оператор;
- условный оператор IF;
- условный оператор CASE;
- оператор цикла REPEAT;
- оператор цикла WHILE;
- оператор цикла FOR;
- оператор над записями WITH.
Составной оператор. Составной оператор представляет собой совокупность последовательно выполняемых операторов, заключенных в операторные скобки begin и end:
begin
<оператор 1>;
<оператор 2>;
. . .
<оператор N>
end;
Он может потребоваться в тех случаях, когда в соответствии с правилами построения конструкций языка можно использовать ОДИН оператор, а выполнить нужно несколько действий. В такой составной оператор входит ряд операторов, выполняющих требуемые действия. В дальнейшем везде, где будет указываться, что можно использовать один оператор, им может быть и составной оператор. Отдельные операторы внутри составного оператора отделяются друг от друга точкой с. Так как завершающее составной оператор слово end не является отдельным предложением, то перед ним точку с запятой можно не ставить, в противном случае компилятор будет считать, что перед словом end стоит пустой оператор. Можно считать, что и само тело программы, т. к. оно заключено в операторные скобки begin и end, тоже является составным оператором.
Условный оператор IF. Оператор IF реализует алгоритмическую конструкцию РАЗВИЛКА и изменяет порядок выполнения операторов в зависимости от истинности или ложности некоторого условия. Существует два варианта оператора:
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. Оператор цикла REPEAT организует выполнение цикла, состоящего из любого числа операторов, с неизвестным заранее числом повторений. Тело цикла выполняется хотя бы один раз. Выход из цикла осуществляется при истинности некоторого логического выражения.
Оператор цикла WHILE. Оператор цикла WHILE организует выполнение одного оператора неизвестное заранее число раз. Выход из цикла осуществляется, если некоторое логическое выражение окажется ложным. Так как истинность логического выражения проверяется в начале каждой итерации (т. е. раньше, чем выполняется тело), тело цикла может не выполняться ни разу.
Оператор цикла FOR. Оператор цикла FOR организует выполнение одного оператора заранее известное число раз. Существует два варианта оператора:
for <переменная цикла>:=<начальное значение> to <конечное значение> do <оператор>;
for <переменная цикла>:=<начальное значение> downto <конечное значение> do <оператор>;
В этих операторах:
<переменная цикла> - переменная порядкового типа;
<начальное значение> - выражение (порядкового типа), определяющее начальное значение переменной цикла;
<конечное значение> - выражение (порядкового типа), определяющее конечное значение переменной цикла (при этом значении тело цикла (т е <оператор>) выполняется последний раз);
<оператор> - выполняемый оператор.
<начальное значение> и <конечное значение> должны быть совместимы для присваивания с переменной цикла.
Цикл действует таким образом:
- Сначала вычисляются и запоминаются начальное и конечное значения.
- Далее переменной цикла присваивается начальное значение.
- Затем значение переменной цикла сравнивается с конечным значением.
Причём, пока параметр цикла меньше или равен конечному значению (в первом варианте оператора) или больше или равен конечному значению (во втором варианте), выполняется очередная итерация; в противном случае происходит выход из цикла. Выполнение очередной итерации включает в себя сначала выполнение <оператора>, а затем
- присваивание переменной цикла следующего большего значения (в первом варианте оператора) или следующего меньшего значения (во втором варианте).
Естественно, что, если в первом варианте <начальное значение> больше чем
<конечное значение> или во втором варианте меньше чем <конечное значение>,
оператор не выполняется ни разу. После выхода из цикла <переменная цикла> становится неопределенной, за исключением случая, когда выход из цикла был осуществлен с помощью оператора GOTO или стандартной процедуры Break.
Использование стандартных процедур Break и Continue в операторах циклов REPEAT, WHILE и FOR. В версии 7.0 в циклах REPEAT, WHILE и FOR можно использовать две стандартные процедуры
- Break и Continue. Процедура Break позволяет досрочно выйти из цикла, не дожидаясь выполнения условия выхода. Процедура Continue позволяет начать новую итерацию цикла, даже если предыдущая не завершена [7].
2. КЛАССИФИКАЦИЯ КОМПЬЮТЕРНЫХ ИГР
Виды компьютерных игр
Компьютерные и видеоигры могут быть классифицированы по двум признакам: жанр и количество игроков. Классификация игр по жанру. Четкая классификация затруднена из-за того, что подчас трудно отнести игру к какому-нибудь конкретному жанру. Игра может представлять собой как смешение существующих жанров, так и не относиться ни к одному из них. Несмотря на это, в ходе развития компьютерных игр сложилась следующая классификация. [8].
3D Shooter (3D-шутеры, "бродилки"). Название произошло от понятия 3D - 3 dimensions (три измерения) и shooter (англ. «стрелок»). Основной принцип состоит в изображении виртуального пространства и предметов посредством игровой программы, исполняемой на компьютере. При этом игрок может воздействовать на виртуальную игровую среду. Применяется для обозначения всех видов компьютерных игр, содержащих элементы боя в виртуальном трехмерном пространстве. В основном используется техника «шутер от первого лица» - при этом изображение на экране монитора компьютера имитирует вид из глаз игрока. С точки зрения организации игры различаются Singleplayer и Multiplayer - игра в одиночку против компьютера и игра с другими игроками.
Примеры: Doom, Quake, Counter-strike, Half-life, Unreal, Tomb Raider
Arcade (аркада). Игры, в которых игроку приходится действовать быстро, полагаясь в первую очередь на свои рефлексы и реакцию. Аркады характеризуются развитой системой бонусов: начисление очков, постепенно открываемые элементы игры и т.д. Термин «аркада» по отношению к компьютерным играм возник во времена игровых автоматов, которые устанавливались в торговых галереях (arcades). Игры на них были простыми в освоении (чтобы привлечь побольше играющих). Впоследствии эти игры перекочевали в игровые приставки и до сих пор являются основным жанром на них.
Fighting (Драки). В драках два персонажа дерутся на арене, применяя различные удары, броски и комбинации. Характеризуется большим количеством персонажей (бойцов) и ударов (иногда больше ста для каждого персонажа). Жанр мало популярен на PC из-за ориентации на совместную игру, а на клавиатуре довольно проблематично одновременно играть вдвоем. Однако данный жанр хорошо развит на игровых приставках.
Примеры: Mortal Combat, Street Fighter, Tekken
Simulation (симуляторы). Игра-симуляция. При помощи компьютера, как можно более полно, имитируется управление каким-либо сложным технической системы (например: боевым истребителем, автомобилем и т.д.).
Примеры: серия Need for Speed, Descent III, Aviator
Strategy (стратегии). Игра требующая выработки стратегии, например, для победы в военной операции. Игрок управляет не одним персонажем, а целым подразделением, предприятием или даже вселенной. Различают:
пошаговые стратегические игры (Turn-Based Strategy, TBS). Игроки поочерёдно делают ходы, и каждому игроку отводится неограниченное или ограниченное (в зависимости от типа и сложности игры) время на свой ход.
стратегические игры в реальном времени (Real Time Strategy, RTS). Все игроки выполняют свои действия одновременно, и ход времени не прерывается.
Примеры: WarCraft, StarCraft, Dune
Sport (спортивные). Как и следует из названия - имитация какой-либо спортивной игры, например футбола.
Примеры: FIFA, NBA, Tennis
Adventure (приключения), или Quest. Игра-повествование, в которой управляемый игроком герой продвигается по сюжету и взаимодействует с игровым миром посредством применения предметов, общения с другими персонажами и решения логических задач.
Примеры: Space Quest; Myst, Мор. Утопия
Puzzle (головоломки, логические)
В некомпьютерной головоломке роль арбитра, следящего за соблюдением правил, играет или сам игрок (пасьянс), или некоторое механическое устройство (кубик Рубика). С появлением компьютеров возможности головоломок расширились, так как написать компьютерную программу проще, чем сконструировать механическое устройство. Головоломки, как правило, не требуют реакции от игрока (однако многие ведут счёт времени, потраченного на решение).
Примеры: Сапёр (Minesweeper); Sokoban.
Классификация игр по количеству игроков.
Одиночные (single player). Рассчитаны на игру в одиночку, против компьютера.
Многопользовательские (multiplayer). Рассчитаны на игру нескольких человек (обычно до 32) по локальной сети, модему или Интернету.
Массовые (MMO, Massively Multiplayer Onine). Массовые игры по Интернету. Наиболее часто встречающиеся жанры - настольные и ролевые игры (т.н. MMORPG, или Massively Multiplayer Online RPG). Среди них различают также браузерные игры (игры, не требующие установки какого-либо клиента), а также текстовые онлайновые игры – жанр MUD.
Представление языков программирования может быть в виде набора спецификаций которые определяет их по синтаксису и семантику.
Для языков программирования, которые пользуются большим спросом создаются стандарты. Эти организации проводят, проверки, обновления и публикации специальных и формальных видов языка. [2, с.27]
Сами языки программирования могут строиться только по той или иной модели вычислений программирования.
Множество языков программирования больше всего уделяют внимание на императивную модель вычислений, но так же существуют и множество других подходов. Существуют языки со стековой вычислительной моделью, а так же логические и функциональные языки программирования, которые ввёл ещё советский математик Марков А.А.
В данный момент развитие берёт проблемно – ориентированные и визуальные языки программирования.
В рамки эти организаций так же входят разработки и модернизации, поддержка языков программирования которые в этом нуждаются.
Машинный язык
У каждого компьютера имеется свой машинный язык, который является индивидуальным, машинные языки являются командными. Но бывают такие виды компьютеров такие как «IMB, 370, EC ЭВМ» имеют единый язык для компьютеров у которых мощность отличается друг от друга. [14, с.27]
Подразделение языков программирование может быть компилируемыми и интерпретируемыми.
На самом компилируемом языке специальная программа под названием «компилятор» преобразует действие под машинный код, после чего записывается в исполнимый модуль, так же он может быть запущен совершенно отдельно. Одним словом, компилятор осуществляет перевод с языка высокого уровня на язык который распознаёт двоичный процессор.
Если же программа написана на языке под названием «интерпретатор», то перевод осуществлён не будет, а сразу перейдёт к выполнению. Но при этом без запуска интерпретатора программу нельзя будет запустить. Сам процессор компьютера, по сути и есть интерпретатор машинного кода.
Говоря о компиляторе, то он по сути просто переводит исходный текс программы на машинный либо сразу, либо целиком, но при этом создаётся совершенно отдельная программа, а потом уже интерпретатор будет выполнять свою работу во время выполнения процесса.
Само разделение языков на «Компилируемые» и «Интерпретируемые» называется условным. Например для языка «Паскаль» будет возможно написать интерпретатор, так как язык считает традиционным в направлении программирования. Современные интерпретаторы например не посредственно не выполняют условия языка, происходит компиляция в промежуточное время. [1, с.7]