Матрицы и массивы

Помогите пожалуйста, как сделать так, чтобы массив начинался с x(0)= 30,00, а не с х(1)=30,00.

Такую же программу я делала на python, и там я использовала

if isum: 
    result.append(increase)

Видимо здесь в этом ошибка, но я не знаю какая, либо похожая функция на append() есть в паскале, либо как-то можно сделать по-другому.

введите сюда описание изображения

program pr5;  
uses crt, sysutils;
{$R-}
type
    Tmas=^TTmas;{одна строка матрицы}
    TTmas=array[0..0] of double;
    Tmatr=^TTmatr;{матрица-массив указателей на строки}
    TTmatr=array[0..0] of Tmas;
var
    a:Tmatr;
    res: Tmas;
    val, increase : double;
    i,j, n, m, counter, len:integer;
    x:double;
    isum:boolean;
begin
    counter := 0;
    write('N=');
    readln(n);
    write('M=');
    readln(m);
    
getmem(a, sizeof(TTmas) * n * m);
    for i:=0 to n - 1 do
    getmem(a^[i], sizeof(double) * m);
    
    
    // заполняем матрицу
    for i:=0 to n - 1 do
    begin
    for j:=0 to m - 1 do
    begin
    write('x(' + IntToStr(i) + ',' + IntToStr(j) + ')=');
    readln(val);
    a^[i]^[j] := val;
    end;
    end;
    
    // выводим матрицу
    for i := 0 to n - 1 do
    begin
    for j := 0 to m - 1 do
    write(a^[i]^[j]:6:2);
    writeln;
    end;
    
    // создаем массив для результатов расчета
    if n mod 2 = 0 then
    begin
        len :=  n div 2;
        getmem(res, sizeof(double) * len);
    end
    else
    begin
        len := (n div 2) + 1;
        getmem(res, sizeof(double) * len);
    end;
    
    //произведения четных строк матрицы
    i := 0;
    j := 0;
    while(i < n)  do
    begin
        increase := 1;
        j := 0;
        isum := False;
        while(j < m) do
        begin
        x := a^[i]^[j];
        if x - Trunc(x) = 0 then
        begin
                increase := increase * x;
                inc(counter);
                isum := True;
        end;
        inc(j);
        end;
        
        if not isum  then {что-то не так с этим блоком}
        increase := 0;
        res^[Trunc(i/2)] := increase;
        
        i := i + 2;
    end;
    
    // выводим результат
    if counter = 0 then
    begin
        writeln('В матрице в четных строках только дробные числа')
        end
    else
    begin
        for i:=0 to len - 1 do 
        begin
        if res^[i] <> 0 then 
        begin 
            write('Массив: x(');
            write(i);
            write(') = ');
            write(res^[i]:4:2);
            writeln;
        end;
        end;
    end;
    
// освобождаем выделенную память
for i:=0 to n - 1 do
    freemem(a^[i], sizeof(double) * n);
    freemem(a,sizeof(TTmas) * n * m);
    if n mod 2 = 0 then
    freemem(res, sizeof(double) * n div 2)
else
    freemem(res, sizeof(double) * ((n div 2) + 1));
end.

Ответы (0 шт):