Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Fortran > Массив улитка


Автор: SNekros 19.11.2012, 07:24
Ребят, помогите пожалуйста нужно оформить массив m,n  и закрутить его улиткой.

Пример 5,5

  1   2   3   4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9


Есть на паскале: Если кто поможет переписать или написать буду благодарен smile
Код

Код:

var
  a:array[1..100,1..100]of integer;
  i,imax,imin,j,jmax,jmin,k,m,n:integer;
begin
  write('Vvedite 4islo strok: ');
  readln(m);
  write('Vvedite 4islo stolbcov: ');
  readln(n);
  jmin:=1;
  jmax:=n;
  imin:=2;
  imax:=m;
  k:=0;
  repeat
    for j:=jmin to jmax do
    begin
      inc(k);
      a[imin-1,j]:=k;
    end;
    for i:=imin to imax do
    begin
      inc(k);
      a[i,jmax]:=k;
    end;
    dec(jmax);
    for j:=jmax downto jmin do
    begin
      inc(k);
      a[imax,j]:=k;
    end;
    dec(imax);
    for i:=imax downto imin do
    begin
      inc(k);
      a[i,jmin]:=k;
    end;
    inc(imin);
    inc(jmin);
  until k>=m*n;
  for i:=1 to m do
  begin
    writeln;
    for j:=1 to n do write(a[i,j]:3);
  end;
  readln;
end.

Автор: FCM 19.11.2012, 09:46
Псевдопример с некотрыми вариантами циклов в Фортране
Код

PROGRAM TEST_1
    IMPLICIT NONE
    INTEGER(4) :: A(1:100, 1:100), I, IMIN, IMAX , J, JMIN, JMAX, K, M, N
    WRITE(*,*) "Enter NUMBER of lines"
    READ(*,*)  M
    ...
    IMIN = 1
    ...
    ! пример цикла
    DO I = IMIN, IMAX, 1                     ! Или DO I = IMAX, IMIN, -1
      ...
    ENDDO

    ! еще пример цикла с предусловием
    DO WHILE(condition)
      ...
    ENDDO
    ! еще пример цикла с выходом по условию в произвольном месте тела цикла
    DO 
       ...
       IF(condition) EXIT                        !  Или IF(.NOT.condition)  EXIT 
      ...
    ENDDO
END PROGRAM


ps.
Обращение к (I,J)-элементу массива как A(I,J) 

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