Перевод кода C# в Паскаль - Turbo Pascal
Формулировка задачи:
Здравствуйте! Помогите, пожалуйста, перевести этот код в Паскаль.
Решение задачи: «Перевод кода C# в Паскаль»
textual
Листинг программы
var
a:array[0..19] of real;
i,j,k:integer;
function Z(t:real):integer;
begin
if t<0 then Z:=-1 else Z:=1;
end;
begin
writeln('Enter Array:');
for i:=0 to 19 do read(a[i]);
j:=0;k:=0;
for i:=1 to 19 do
if Z(a[i])<>Z(a[k]) then begin
j:=j+1;
k:=i;
end;
writeln('original array:');
for i:=0 to 19 do writeln(a[i]:0:4);
writeln('Number of sign changes:',j);
readln;
end.
Объяснение кода листинга программы
- Создаётся переменная
aтипаarray[0..19] of real, которая представляет собой массив из 20 элементов типаreal. - Создаются три переменные
i,jиkтипаinteger, которые будут использоваться для отслеживания индексов элементов массива. - Определяется функция
Z(t:real), которая принимает один аргумент типаrealи возвращает одно значение типаinteger. Внутри функции происходит проверка: если значение аргумента меньше нуля, то возвращается -1, в противном случае возвращается 1. - Выводится сообщение
Enter Array:. - С помощью цикла
forсчитываются значения массиваa[i]от 0 до 19. - Инициализируются переменные
jиkравными 0. - Запускается цикл
for, который проходит по всем элементам массиваaот 1 до 19. - Внутри цикла происходит проверка: если значение
Z(a[i])не равно значениюZ(a[k]), то увеличивается значение переменнойjна 1, а значение переменнойkустанавливается равным текущему значениюi. - После завершения цикла выводится сообщение
original array:. - С помощью цикла
forвыводятся значения массиваa[i]от 0 до 19, представляемые в виде десятичных чисел с префиксом0:0:4. - Выводится сообщение
Number of sign changes:, которое означаетКоличество изменений знака:. - Запускается цикл
readln, который ожидает ввода пользователя и считывает его. - Цикл
forзавершается, и программа заканчивается.