Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Pascal] Двумерный массив


Автор: Mitya 17.3.2007, 16:26
Помогите, пожалуйста.
У меня задача: ввести первую строку массива [1..n,1..m] со значениями от 1 до 5. В общем, должно получиться:

 1   2     3      4      5
 1   5     9     16    25
 1   8    27    64   125
 1 16    81    256  625
 1 32   243 1024 3125

Все моя программа высчитывает, да только с выводом проблема: не подобрать индексы для записи найденных значений в массив (выделено красным цветом). Не мог бы кто-нибудь помочь? СПАСИБО.

Код

program vite_kyb;
uses crt;
const n=5; m=5;
var  mas1: array[1..n,1..m] of integer;
     i,j,j1,j4 : integer;
     k,kk: real;
Begin
clrscr;
writeln ('Введите массив из ',n,' элементов.');
for i:=1 to n-m+1 do begin
 for j:=1 to m do begin
   write ('mas1[',j,'] = '); readln (mas1[i,j]);
                 end;  end;
for i:=2 to n do begin
  for j:=1 to m do begin
                    k:=i;
                    kk:=exp(k*ln(j));
                    j1:=j;
                    j4:=trunc(kk);
                    [color=red]mas1[i,j]:=mas1[j,j4];[/color]
                    j:=j1;
                   end;end;
    for i:=1 to n do begin          
    for j:=1 to m do begin
                     write ('   ',mas1[i,j]:3);
                     If j mod 5 = 0 then writeln;
                     end;end;           
      readln;
End.


M
Alexeis
Модератор: используйте выделение кода http://forum.vingrad.ru/index.php?showtopic=126445


Автор: Rodman 17.3.2007, 19:26
Mitya, ты что то мутишь...

напиши задание...


что ты в степень возвожишь....


Код

for i:=2 to n do begin
  for j:=1 to m do begin
                    k:=i;
                    kk:=exp(k*ln(j));
                    j1:=j;
                    j4:=trunc(kk);
                    mas1[i,j]:=mas1[j,j4];
                    j:=j1;
                   end;end;


как это понимать?

Автор: Mitya 18.3.2007, 14:04
Надо ввсети первую строчку. Остальные четыре - надо написать программу. Должна получиться табличка 

 1   2     3      4      5
 1   5     9     16    25
 1   8    27    64   125
 1 16    81    256  625
 1 32   243 1024 3125

Но вся проблема у меня в том, что программа не записывает значение в массив. Это я выделил красным цветом. Главное - программа все считает, но в массив не записывает.

Автор: FireSnake 18.3.2007, 18:24
Так по какому принципу табличка то строится?!!

Автор: Strannik 18.3.2007, 18:53
Читай учебники по телепатии! 
Код

a[i,j]=a[1,j]^i


Добавлено @ 18:55 
Первая строка вводится с клавиатуры.

Добавлено @ 19:00 
Код

readln(n,m);
for i:=1 to n do
 read(a[1,i]);
for i:=2 to n do
 for j:=1 to m do
  a[i,j]:=power(a[1,j],i);


П.С. power(i,j)==i^j, если не использовать math - можно написать это вручную.

Автор: Mitya 19.3.2007, 17:12
Цитата(Strannik @  18.3.2007,  18:53 Найти цитируемый пост)
П.С. power(i,j)==i^j, если не использовать math - можно написать это вручную. 


В смысле? Как? Вот без math...

Автор: Mitya 22.3.2007, 12:54
Все гораздо проще, почему сразу не догадался - не знаю)))

Было:               mas1[i,j]:=mas1[j,j4];
Должно быть: mas1[i,j]:=j4;

Все равно всем ОГРОМНОЕ спасибо!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)