Я пытаюсь заставить Dep_Code читаться как строка после выбора заданных вариантов (1, 2 или 3). Сначала я установил целое число в своей первой программе (я думаю), и смог заставить его считывать параметры, указанные в виде слов (счета ACC или другие). Однако он был случайно удален. Я пробовал разные способы настроить Dep_Code как строку, но это не работает, и я продолжаю получать множество ошибок. Кстати, я не знаком с программированием, поэтому я знаю, что следующий код совершенно неверен... но я надеюсь, что вы все можете помочь. Спасибо!
REPEAT
writeln ('Please enter the Department Code:- ');
writeln;
writeln ('1. Accounts (ACC)');
writeln ('2. Human Resources (HR)');
writeln ('3. Operations (OP)');
writeln;
readln (Dep_Code);
IF Dep_Code = 1 THEN
Dep_Code := ('Accounts (ACC)')
ELSE IF Dep_Code = 2 THEN
Dep_Code := ('Human Resources(HR)')
ELSE IF Dep_Code = 3 THEN
Dep_Code := ('Operations (OP)');
UNTIL ((Dep_Code >= 1) AND (Dep_Code <= 3));
Спасибо, проверю ?


Это невозможно. Паскаль — строго типизированный язык, и что-то не может быть Integer а также строкой одновременно, и переменные тоже не могут менять тип:
IF Dep_Code = 1 THEN
Dep_Code := ('Accounts (ACC)')
Но вам вообще не нужна строка. Держите его целым числом. Функции, которые обрабатывают различные отделы, могут записывать или определять такие строки, если это необходимо. Ваша логика для меню не нуждается в строковой переменной.
Сделайте что-нибудь вроде:
procedure HandleAccounts(var Error: Boolean);
begin
...
end;
// Skipped the other functions to keep this answer short ...
var
Dep_Code: Integer;
AllFine: Boolean;
// Skip the rest of the necessary code ...
repeat
// Skipped the Writelns to keep this answer short ...
Readln(Dep_Code);
Error := False;
case Dep_Code of
1: HandleAccounts(Error);
2: HandleHumanResources(Error);
3: HandleOperations(Error);
else
Error := True;
end;
until not Error;
Выше я пропустил часть кода. Вы можете заполнить пробелы, я думаю.
Большое спасибо!
@LuQinxin: Поблагодарите не только меня, но и принять ответ, если это действительно помогло.
Извини за это. Я не знала, что должна поставить галочку?
Ну, ты все-таки узнал. Спасибо.
«Кстати, я не знаком с программированием». Тогда я предлагаю вам получить хороший учебник по Паскалю и следовать приведенным там примерам, прежде чем вы начнете делать что-то подобное. Рекомендация: Основной Паскаль Марко Канту. Или его аналогичная книга об Object Pascal.