Перевести с с++ на паскаль - Pascal ABC
Формулировка задачи:
Решение задачи: «Перевести с с++ на паскаль»
textual
Листинг программы
const
NMAX = 10000;
function BooleanReadLn(var x: Integer): Boolean;
var
Result: Boolean;
s: String;
code: Word;
begin
ReadLn(s);
Result := (Length(s) > 0);
if (Result)
then
begin
Val(s, x, code);
Result := (code = 0);
end;
BooleanReadLn := Result;
end;
var
t, i, p, q: Integer;
id: Array[0..NMAX - 1] Of Integer;
begin
for i := 0 to NMAX - 1 do
id[i] := i;
while (BooleanReadLn(p) And BooleanReadLn(q)) do
begin
t := id[p];
if (t <> id[q])
then
for i := 0 to NMAX - 1 do
if (id[i] = t)
then
id[i] := id[q];
WriteLn(' ', p, ' ', q);
end;
end.
Объяснение кода листинга программы
Данный код написан на языке Pascal ABC и выполняет следующие действия:
- Объявляет константу NMAX, которая представляет максимальное количество элементов, которое может быть обработано в коде.
- Определяет функцию BooleanReadLn, которая принимает переменную x типа Integer и возвращает значение типа Boolean. Внутри функции происходит чтение строки с помощью функции ReadLn, а затем проверяется, пустая ли строка. Если строка не пустая, то выполняется вызов функции Val, которая преобразует строку в число и сохраняет результат в переменной s. Затем проверяется, равен ли код, полученный из строки, нулю. Если это так, то выполняется выход из функции. В конце функция BooleanReadLn возвращает значение, полученное от предыдущей проверки.
- Объявляет переменные t, i, p и q типа Integer.
- Заполняет массив id значениями от 0 до NMAX-1 с помощью цикла for.
- Входим в цикл while, который будет выполняться до тех пор, пока функция BooleanReadLn(p) и функция BooleanReadLn(q) возвращают true.
- Внутри цикла выбираем элемент с индексом p из массива id и сравниваем его с элементом с индексом q. Если они не равны, то перебираем элементы массива id, начиная с индекса i=0, и для каждого элемента проверяем, равен ли он t. Если это так, то заменяем значение элемента в массиве на значение элемента с индексом q.
- После выхода из цикла while выводим на экран пробел, значения переменных p и q.
- Конец программы.