Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
теория гр2.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2 Mб
Скачать

2.2. Описание кода программы написанного мной

В данной программе используется две библиотеки: SysUtils и Windows. CharToOem(PChar(aStr), PChar(Result)); Это функции библиотеки виндовс, которые изменяют язык моей программы на русский.

Что нужно применить в программе пишут после фразы uses.

Пример:

uses

Windows,

SysUtils;

В данном случае.

За uses в коде идет var, где указываются переменные. Они используются, чтобы хранить в себе определенное значение и могут иметь собственное название.

Программа начинает выполнять указанные действия после фразы begin. Здесь указаны первые переменные, необходимые для начала работы a1 и np. k используется для работы цикла, а np (node position) говорит программе какой узел использовать.

После указания необходимых переменных программа выводит нам свои данные, а затем ждет, когда пользователь все прочтет. Когда будет нажата необходимая клавиша. Чтобы это реализовать используется команда writeln и readln. Writeln позволяет вывести в окно консоли текст или переменную. Он указывается в скобках, где текст помечается кавычками. Так, например, можно вывести переменную и текст:

Writeln(‘Резулльтат:’, a)

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

Readln в программе используется как для приостановки программы, так и для запоминания программой переменных. Различить когда эта команда выполняет какое действие просто. Если написать readln;, то это пауза, а если readln(a);, то программа сначала приостановится для того, чтобы можно было ввести определенную переменную. При нажатии клавиши Enter программа продолжится, но если нужно было ввести переменную, а она не была введена, то это будет проигнорировано. Программа не продолжится, если была случайно нажата клавиша enter или другая ненужная переменная.

После этого начинается цикл.

Здесь говориться, что пока переменная F равна единице, то цикл будет работать. Его начало и конец обозначаются так:

begin

---

end;

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

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

If (np=1) then

Что значит, если переменная равна единице, то выполняется следующие действия. Но нам нужно переходить с одного узла на другой. Для этого мы спрашиваем пользователя, что делать дальше. Он вводит число, а дальше программа выполняет указанные действия.

Рассмотрим данный узел:

if (np=1) then

begin

writeln(StrAnsiToOem('Вы Мужчина(1) или Женшина(2)')); Readln(a1);

if (a1=1) then

begin

Writeln(StrAnsiToOem('Хорошо,вы потвердили что вы Мужчина! Приятного тестирования.'));

np:=2;

Readln;

end

else

if (a1=2) then

begin

Writeln(StrAnsiToOem('Хорошо,вы потвердили что вы Женчина! Приятного тестирования.'));

np:=2;

Readln;

end else

В начале вводим некоторые данные, затем спрашиваем, какое действие вы выберите. В этом случаи программа анализирует переменную d. Если она равна 1 или 2, то мы переходи на второй узел, а если 3,4, то на первый. В конце стоит else. Это обязательная часть узла. Без нее программа запутается и не сможет нормально работать. else (иначе) используется для перехода на дугой узел. В самом начале говорится, что если np=1 то делаем следующее, а else говорит, что если это не так, то сверяемся со следующим узлом. И так до конца.

Но цикл начинался не с условия if (np=1) then. До него стоят еще 2 других. Это контрольный точки в игре. Если по ходу игры вы сделали не то, что нужно, то программа перекинет вас на нужный узел (-1,0). Дальше просто. Если хотим продолжить, то выбираем да, а если нет, то выбираем нет.

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

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