Omegga
1

Заполнить квадратную матрицу единицами по спирали

24.09.2008, 21:40. Показов 3330. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите решить, пожалуйста!!!

Заполнить квадратную матрицу NxN единицами ('1') по спирали (начиная с
элемента с координатами (1,1) по часовой стрелке. N ввести с клавиатуры
(1 <= N <= 10). Распечатывать матрицу после каждого изменения направления
заполнения.
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.09.2008, 21:40
Ответы с готовыми решениями:

Заполнить квадратную матрицу натуральными числами по спирали
составить программу,которая заполняет квадратную матрицу порядка n нутуральными числами...

Получить квадратную матрицу с единицами на диагоналях
народ помогите тут двумерные массивы я их не оч понимаю кк решить Получить квадратную матрицу...

Заполнить матрицу по спирали.
http://************.com/files/4x9alup5f вот ссылка на рисунок по которому заполняется матрица!!!...

Заполнить матрицу n на n по спирали
Задание : Заполнить матрицу n на n следующим образом (пустые клетки заполняются 0) Не могу...

4
6139 / 1897 / 14
Регистрация: 07.07.2008
Сообщений: 10,417
24.09.2008, 22:15 2
если не гнаться за оптимизацией, то можно заполнять верхний ряд-правый-нижний-левый-2й верхний-2й ат будет тот-же правый.... результат будет тот-же. распечатывать после заполнения каждого ряда.
можно по другому:
1)заполнить ячейку 1;1
2)n=n-1
3)от текущей ячейки не включая её заполнить n ячеек справа. распечатать
4)от текущей ячейки не включая её заполнить n ячеек вниз. распечатать
5)от текущей ячейки не включая её заполнить n ячеек влево. распечатать
6)n=n-1
if (n=0) exit
7)от текущей ячейки не включая её заполнить n ячеек вверх. распечатать
8)goto 3;
0
Почетный модератор
64291 / 47589 / 32740
Регистрация: 18.05.2008
Сообщений: 115,181
25.09.2008, 09:07 3
Я вот сделал вывод по другому, мне так больше нравится, если что переделаете.
Там правда маленький глюк есть, на некоторых участках по две единицы выводит, лень думать.
Код
uses crt;
type Tmatr=array[1..20,1..20]of byte;
var a:Tmatr;
    n,i,j:byte;
    x,y:byte;{координаты}
    add:integer;{длина отрезка от поворота до поворота}
    dir:integer;{шаг = +1 вправо и вниз, -1 влево и вверх}
procedure Vyvod(m,c,d:byte;var q:Tmatr);
begin
for c:=1 to m do
  begin
    for d:=1 to m do
    write(q[c,d]:3);
    writeln;
  end;
end;
begin
clrscr;
write('n=');readln(n);
for i:=1 to n do
for j:=1 to n do
a[i,j]:=0;
x:=0;
y:=1;
Add:=n;
dir:=1;
while (add<>0) do
begin
  i:=0;
  while (i<>Add) do
    begin
    x:=x+dir;
    a[y,x]:=1;
    clrscr;
    Vyvod(n,x,y,a);
    delay(400);
    i:=i+1;
    end;
  i:=0;
  Add:=Add-1;
  while (i<>Add) do
    begin
    y:=y+dir;
    a[y,x]:=1;
    clrscr;
    Vyvod(n,x,y,a);
    delay(400);
    i:=i+1;
    end;
  dir:=dir*(-1);
end;
readln
end.
0
Omegga
25.09.2008, 19:15 4
спасибо Вам, очень благодарна, спасли, спасли))
Почетный модератор
64291 / 47589 / 32740
Регистрация: 18.05.2008
Сообщений: 115,181
25.09.2008, 19:21 5
Но это ведь не соответствует Вашему заданию. Сами переделаете?
Вот код как в задании.
Код
uses crt;
type Tmatr=array[1..20,1..20]of byte;
var a:Tmatr;
    n,i,j:byte;
    x,y:byte;{координаты}
    add:integer;{длина отрезка от поворота до поворота}
    dir:integer;{шаг = +1 вправо и вниз, -1 влево и вверх}
procedure Vyvod(m,c,d:byte;var q:Tmatr);
begin
for c:=1 to m do
  begin
    for d:=1 to m do
    write(q[c,d]:3);
    writeln;
  end;
end;
begin
clrscr;
write('n=');readln(n);
for i:=1 to n do
for j:=1 to n do
a[i,j]:=0;
x:=0;
y:=1;
Add:=n;
dir:=1;
while (add<>0) do
begin
  i:=0;
  while (i<>Add) do
    begin
    x:=x+dir;
    a[y,x]:=1;
    i:=i+1;
    end;
   Vyvod(n,x,y,a);//вывод и поворот
   writeln;
   readln;
  i:=0;
  Add:=Add-1;
  while (i<>Add) do
    begin
    y:=y+dir;
    a[y,x]:=1;
    i:=i+1;
    end;
  Vyvod(n,x,y,a);//вывод и поворот
  writeln;
  readln;
  dir:=dir*(-1);
end;
end.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.09.2008, 19:21
Помогаю со студенческими работами здесь

Заполнить матрицу по спирали.
Добрый вечер. Нужно составить массив 7х7 из чисел от 1 до 49, вот такой. 1 2 3 4 5 6 7 24...

Заполнить квадратную матрицу
Заполнить квадратную матрицу

Заполнить квадратную матрицу
Помогите с заданием! надо заполнить квадратную матрицу пример: 1 2 3 8 9 4 7 6 5

Заполнить матрицу от центра по спирали: вниз - влево - вверх - вправо
Заполнить матрицу ЛП, от центра по спирали: вниз - влево - вверх - вправо.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru