Задача, которую я имею, требует, чтобы я создал две подпрограммы, одна из которых считывает данные из терминала, а другая выводит данные в терминал, и еще две подпрограммы, которые используют массив для циклического прохождения этих двух подпрограмм, чтобы выполнить их несколько раз ,
Проблема, с которой я столкнулся, заключается в том, что терминал падает после одного прогона функции ReadComputer
вместо многократного зацикливания. Компилятор также выдает мне следующее предупреждение:
«Предупреждение: переменная результата функции управляемого типа не инициализирована»
хотя после обширных исследований и из-за того, что никто не использует паскаль, я не могу найти решение. Любая помощь высоко ценится! :)
Я предоставил копию своего кода здесь для справки:
program CompupterProgram;
uses TerminalUserInput;
type
Computer = Record
id: integer;
manafacturer: String;
year: integer;
warranty: integer;
end;
type Computers = Array of Computer;
function ReadComputer(): Computer;
begin
ReadComputer.id := ReadInteger('PLease Enter Computer Id:');
ReadComputer.manafacturer := ReadString('PLease Enter Computer Manafacturer:');
ReadComputer.year := ReadInteger('PLease Enter Computer Year:');
ReadComputer.warranty := ReadInteger('PLease Enter Computer Warranty:');
result := ReadComputer;
end;
procedure WriteComputer(c: Computer);
begin
WriteLn('Computer ID: ', c.id);
WriteLn('Computer Manafacturer ', c.manafacturer);
WriteLn('Computer Year ', c.year);
WriteLn('Computer Warranty ', c.warranty);
ReadLn();
end;
function ReadAllComputers(count: Integer): Computers;
var i: Integer;
begin
for i := 0 to count do
begin
ReadAllComputers[i] := ReadComputer();
end;
result := ReadAllComputers;
end;
procedure WriteAllComputers(computerArray: Computers);
var i: Integer;
begin
for i:= 0 to (length(computerArray)) do
begin
WriteComputer(computerArray[i]);
end;
end;
procedure Main();
var computers: Array of Computer;
index: Integer;
begin
computers := ReadAllComputers(3);
WriteAllComputers(computers);
end;
begin
Main();
end.