Оформление массивов

Тема в разделе "Pascal and Delphi", создана пользователем tarn, 5 май 2010.

  1. tarn

    tarn Гость

    Помогите, пожалуйста, разобраться:
    нужно процедуру umnojeniye выполнить 81x81 (6561) раз, "пермножив" ею массивы 0000,0001,...,2221,2222 каждый на каждый.
    Код (Delphi):
    program Diskret;
    uses sysutils;

    procedure umnojeniye(a,b:array[1..4] of byte);
    var i,j,k,g,w:byte;
    rezumn,pr,polin,rzn:array[1..10]of byte;
    s:array[1..10,1..10]of byte;

    begin
    for i:=1 to 4 do
    for j:=1 to 4 do
    s[i,j]:=(a[i]*b[j])mod 3;

    for i:=1 to 4 do
    for j:=1 to 4 do
    for k:=1 to 7 do
    if i=k-j+1 then
    rezumn[k]:=(rezumn[k]+s[i,j])mod 3;

    polin[1]:=2; polin[2]:=1;polin[3]:=2;polin[4]:=2;polin[5]:=1;

    g:=0;
    repeat
    for i:=0 to 2 do
    if (((i*polin[1])mod 3)+rezumn[1])mod 3 = 0 then
    begin
    for j:=1 to 5 do
    begin
    pr[j]:=(polin[j]*i)mod 3;
    rzn[j]:=(rezumn[j]+pr[j])mod 3;
    end;
    g:=g+1;
    for w:=1 to 4 do
    rezumn[w]:=rzn[w+1];
    rezumn[5]:=rezumn[5+g];
    break;
    end;
    until g>2;
    for i:=2 to 5 do
    Write(rzn[i],' ');
    end;


    var i,j,k,l:byte;
    m:array[1..100,1..4]of byte;
    ch:word;

    begin
    ch:=0;
    for i:=0 to 2 do
    begin
    for j:=0 to 2 do
    begin
    for k:=0 to 2 do
    begin
    for l:=0 to 2 do
    begin
    ch:=ch+1;
    m[ch,1]:=i;
    m[ch,2]:=j;
    m[ch,3]:=k;
    m[ch,4]:=l;
    end;
    end;
    end;
    end;

    for i:=1 to 81 do
    for j:=1 to 81 do
    begin
    umnojeniye(m[i],m[j]); {здесь компилятор противится}
    writeln;
    end;
    ReadLn;ReadLn;
    end.
    Проблема в этом моменте:
    Код (Delphi):
    for i:=1 to 81 do
    for j:=1 to 81 do
    begin
    umnojeniye(m[i],m[j]); {здесь компилятор противится}
    writeln;
    end;
    В Lazarus всё собирается, но работает некорректно (первый элемент должен получиться 0000, последний 2200).
    Наверно, таким образом m одномерный массив из двумерного нельзя делать, как исправить подскажите, пожалуйста.
     
  2. Over

    Over Well-Known Member

    Регистрация:
    4 июл 2007
    Сообщения:
    116
    Симпатии:
    0
    "Компилятор противится" - хотелось бы увидеть, что компилятор пишет.
    Ответы "пишет чего-то непонятное" не устроят.
     
Загрузка...

Поделиться этой страницей