Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.12.2008, 11:30   #1
enot27
 
Регистрация: 04.12.2008
Сообщений: 6
Лампочка Массив,прогу написал,сделайте её меньше

Уважаемые программисты,посмотрите програмку:дан массив 5х5,заполненный числами от 1 до 25 по порядку...нужно написать прогу,которая выводила бы массив в виде "пружинки от угла" т.е так
1 2 6 7 15
3 5 8 14 16
4 9 13 17 22
10 12 18 21 23
11 19 20 24 25
саму прогу написал,вот только сильно длинно,препод сказал что это можно выполнить с помощью 3-х циклов..Посмотрите)))
Код:
program gg2;
uses crt;
var a: array [1..5,1..5] of integer;
    k,i,j,t,z: integer;
begin
  clrscr;
  z:=1;
  t:=5;
  k:=1;
  for i:=1 to 5 do
    for j:=1 to 5 do
      begin
   if (j+i=2)
   then a[i,j]:=k;
      end;
  k:=k+1;
  for i:=1 to 5 do
    begin
      for j:=1 to 5 do
   begin
     if (j+i=3)
     then a[i,j]:=k;
   end;
      k:=k+1;
    end;
  k:=k-3;
  for i:=1 to 5 do
    begin
      for j:=1 to 5 do
   begin
     if (i+j=4)
     then a[j,i]:=k
   end;
      k:=k+1;
    end;
   k:=k-2;
   for i:=1 to 5 do
     begin
       for j:=1 to 5 do
    begin
      if (i+j=5)
      then a[i,j]:=k;
    end;
       k:=k+1;
     end;
   k:=k-1;
   for i:= 1 to 5 do
     begin
       for j:= 1 to 5 do
    begin
      if (j+i=6)
      then a[j,i]:=k;
    end;
       k:=k+1;
     end;
   k:=k-1;
   for i:=1 to 5 do
     begin
       for j:=1 to 5 do
    begin
      if (j+i=7)
      then a[i,j]:=k;
    end;
       k:=k+1;
     end;
   k:=k-2;
   for i:=1 to 5 do
     begin
       for j:=1 to 5 do
    begin
      if (j+i=8)
      then a[j,i]:=k;
    end;
       k:=k+1;
     end;
   k:=k-3;
   for i:=1 to 5 do
     begin
       for j:=1 to 5 do
    begin
      if (j+i=9)
      then a[i,j]:=k;
    end;
       k:=k+1;
     end;
   k:=k-4;
   for i:=1 to 5 do
     begin
      for j:=1 to 5 do
   begin
     if (j+i=10)
     then a[j,i]:=k
   end;
      k:=k+1;
    end;
 for i:=1 to 5 do
   begin
   for j:=1 to 5 do
 write(a[i,j]:3);
 writeln;
 end;
 readln;
 end.
Прога рабочая,только нужно её сократить))Подскажите кто может.....

Последний раз редактировалось Alex21; 08.12.2008 в 18:51.
enot27 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написал прогу в паскале... deu4er Помощь студентам 2 19.11.2008 20:08
Помогите решить одну задачку! Никак не врубаюсь. На завтра надо. Сделайте подарок на день рождения:) Женек Помощь студентам 2 01.10.2008 19:48
Написал бэкдор, оцените KORN Софт 7 18.11.2007 08:55
ПОМОГИГЕ(СДЕЛАЙТЕ исходники) Игры типа БК но посетке BopoH Свободное общение 2 15.07.2007 03:51