Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 20.07.2014
Сообщений: 41

Массивы. Заполнить зигзагом и по спирали

18.12.2014, 23:12. Показов 1677. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как заполнить зигзагом и по спирали по данным рисункам
Миниатюры
Массивы. Заполнить зигзагом и по спирали  
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.12.2014, 23:12
Ответы с готовыми решениями:

Массивы. Заполнить элементами таблицу, располагая их по спирали.
Заполнить элементами таблицу, располагая их по спирали.

Заполнить массив зигзагом
Привет .Мне нужно заполнить массив . Например есть есть такой массив 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 то он должен стать 1 2...

Заполнить двумерный массив зигзагом
На пикче просто пример. Нужно заполнить массив N на M как на пикче. Находил подобные задания, но там матрицы квадратные и зигзаги...

5
CAPITAL OF ROCK!
 Аватар для JokeR.BY
1281 / 708 / 982
Регистрация: 03.03.2010
Сообщений: 2,286
19.12.2014, 03:12
Лучший ответ Сообщение было отмечено ЕвгенияТ как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
type
    TM = Array[1..100, 1..100] Of Byte;
    TMass = record
        mass : TM;
        n, m : Byte;
    end;
 
var
    arr : TMass;
 
procedure PrintMass(const a : TMass);
var
    i, j : Byte;
begin
    WriteLn;
    with a do
        for i := 1 to n do
        begin
            for j := 1 to m do
                Write(mass[i, j]:3);
            WriteLn;
        end;
    WriteLn;
end;
 
procedure Init1(var a : TMass);
var
    i, j : Byte;
begin
    with a do
    begin
        Write('n,m='); ReadLn(n, m);
        for i := 1 to n do
            for j := 1 to m do
                if Odd(i)
                then
                    mass[i, j] := (i - 1) * m + j
                else
                    mass[i, j] := i * m - j + 1;
    end;
end;
 
procedure Init2(var a : TMass); //https://www.cyberforum.ru/pascalabc/thread455450.html
var
    i, j, l : Byte;
begin
    j := 0;
    with a do
    begin
        Write('n='); ReadLn(n);
        m := n;
        for l := 1 to 2 * n - 1 do
            if (l > n)
            then
                if Odd(l)
                then
                    for i := l - n + 1 to n do
                    begin
                        Inc(j);
                        mass[i, l - i + 1] := j;
                    end
                else
                    for i := n downto l - n + 1 do
                    begin
                        Inc(j);
                        mass[i, l - i + 1] := j;
                    end
            else
                if Odd(l)
                then
                    for i := 1 to l do
                    begin
                        Inc(j);
                        mass[i, l - i + 1] := j;
                    end
                else
                    for i := l downto 1 do
                    begin
                        Inc(j);
                        mass[i, l - i + 1] := j;
                    end;
    end;
end;
 
procedure Init3(var a : TMass);
var
    i, j : Byte;
begin
    with a do
    begin
        Write('n,m='); ReadLn(n, m);
        for j := 1 to m do
            for i := 1 to n do
                if Odd(j)
                then
                    mass[i, j] := (j - 1) * n + i
                else
                    mass[i, j] := j * n - i + 1;
    end;
end;
 
begin
    Init1(arr); PrintMass(arr);
    Init2(arr); PrintMass(arr);
    Init3(arr); PrintMass(arr);
end.
0
0 / 0 / 0
Регистрация: 20.07.2014
Сообщений: 41
19.12.2014, 12:57  [ТС]
Через циклы скорее всего нужно решить,я вот 3(зигзагом) попыталась,ошибку выдаёт
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
b,k,n,m,i,j,x,y:integer;
begin
writeln('vvedite n');read(n);
for i:=1 to 2*n-1 do
if i mod 2<>0 then
begin
x:=n;
y:=i;
for j:=1 to i do
begin if (x>0) and (x<=n) and (y>0)and (y<=n) then
begin k:=k+1;
a[x,y]:=k;end;
x:=x-1;
y:=y-1;end;end
else begin x:=n-1+1;
y:=1;
for j:=1 to i do
begin if (x>0) and (x<=n) and (y>0)and (y<=n) then
begin k:=k+1;
a[x,y]:=k;end;
x:=x+1;
y:=y+1;end;
 
write (a[i,j]:4);
 writeln;end;
 end.
 
Также есть пример по спирали
program gfh;
var a:array[0..5,0..5] of integer;
b,k,n,m,i,j,di,dj:integer;
begin i:=1;j:=1;di:=0;dj:=1;
writeln('vvedite n,m:');read(n,m);
repeat k:=k+1;
a[i,j]:=k;
if (i+di>n) or (i+di<1) or(j+dj>m) or (j+dj<1) or (a[i+di,j+dj]>0)
then begin b:=dj;
           dj:=-di;
           di:=b; end;
 i:=i+di;
 j:=j+dj;
 until a[i,j]>0;
 for i:=1 to n do begin
 for j:=1 to m do
 write (a[i,j]:4);
 writeln;end;
 end.
0
CAPITAL OF ROCK!
 Аватар для JokeR.BY
1281 / 708 / 982
Регистрация: 03.03.2010
Сообщений: 2,286
19.12.2014, 15:01
ЕвгенияТ, а моём варианте как, индусским кодом ручками?)
0
0 / 0 / 0
Регистрация: 20.07.2014
Сообщений: 41
19.12.2014, 20:43  [ТС]
тьфу ты,я имела ввиду без процедур
0
CAPITAL OF ROCK!
 Аватар для JokeR.BY
1281 / 708 / 982
Регистрация: 03.03.2010
Сообщений: 2,286
20.12.2014, 16:05
ЕвгенияТ, писал с процедурами лишь для того, чтоб отделить куски кода.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.12.2014, 16:05
Помогаю со студенческими работами здесь

Заполнить двумерный массив зигзагом по диагонали
Нужно заполнить двумерный массив n-го порядка справа-налево сверху-вниз рандомными числами (от min к max) 10 4 3 1 11 9 5 ...

Заполнить матрицу по спирали
Через ранд формируются элементы массива размер n^2 .Нужно по спирали заполнить матрицу n*n по возрастанию этими элементами. Массив по...

Заполнить матрицу по спирали
Матрицу mxn заполнить натуральными числами от 1 до mn по спирали, начинающейся в левом верхнем углу и закрученной по часовой стрелке.

паскаль.заполнить по спирали
Заполнить спираль размерность 10 на 10,из нижнего левого в право. Надеюсь на вашу отзывчивость.

Заполнить матрицу по спирали
Матрицу заполнить натуральными числами от 1 до 12 по спирали, начинающейся в левом верхнем углу и закрученной по часовой стрелке. ...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru