Аллина

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

08.06.2008, 21:46. Показов 9519. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
составить программу,которая заполняет квадратную матрицу порядка n нутуральными числами 1,2,3,...n,записывая их в нее "по спирали"
например,для n=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
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.06.2008, 21:46
Ответы с готовыми решениями:

Прямоугольную матрицу заполнить последовательными чётными натуральными числами "по спирали" .
а) составить блок-схему алгоритма решения; б) написать реализующую алгоритм программу на языке Pascal Данную прямоугольную...

Заполнить квадратную матрицу единицами по спирали
Помогите решить, пожалуйста!!!=-O Заполнить квадратную матрицу NxN единицами ('1') по спирали (начиная с элемента с координатами...

Заполнить массив натуральными числами
Заполнить массив различными натуральными числами, квадраты которых заканчиваются данными числами. Например, 62 = 36,252 = 625.

9
Эксперт С++
 Аватар для XuTPbIu_MuHTAu
2256 / 771 / 25
Регистрация: 27.05.2008
Сообщений: 1,496
08.06.2008, 21:53
По-моему,надо говорить "пожалуйста".
https://www.cyberforum.ru/visu... d3621.html
То же самое на си.
0
Аллина
08.06.2008, 22:00
извини пожалуйста!я с си не разбираюсь!мне нужно на паскале!сделай если не сложно !пожалуйста
Эксперт С++
 Аватар для XuTPbIu_MuHTAu
2256 / 771 / 25
Регистрация: 27.05.2008
Сообщений: 1,496
08.06.2008, 22:15
Извини,но мне это сложно.мало времени.Я переделал синтаксис,удали комментарии сама - я не помню,как они выглядят в паскале.А может,я вообще все неправильно сделал,я на паскале не работаю.

int A[n][n];
int i:=1,j,k,p:=n/2;
for k:=1 to p do begin/*Цикл по номеру витка*/
for j:=k-1 to n-k do begin i:=i+1; A[k-1][j]:=i; end/*Определение значений верхнего гор столбца*/
for j:=k to n-k do begin i:=i+1; A[j][n-k]:=i; end/* --//-- По правому вертикальному столбцу*/
for j:=n-k-1;downto k-1 do begin i:=i+1; A[n-k][j]:=i; end;/* --//-- по нижнему горизонтальному столбцу*/
for j:=n-k-1;downto k do begin i:=i+1; A[j][k-1]:=i;/* --//-- по левому вертикальному столбцу*/
end
if (n mod 2 =1) A[p][p]=n*n;
0
Аллина
08.06.2008, 22:18
ну ладно!если будут проблемы по си можно обратиться?
Эксперт С++
 Аватар для XuTPbIu_MuHTAu
2256 / 771 / 25
Регистрация: 27.05.2008
Сообщений: 1,496
08.06.2008, 22:20
о,да,я точно все сделал все неправильно. забыл,что в паскале все нумеруется с единицы,а не с нуля.Жди,может,кто-нибудь другой переделает,я занят

Добавлено через 43 секунды
Обратиться с проблемами по си можно,если ты не будешь вопить "реши срочно"
ICQ 200-885-014
0
Почетный модератор
 Аватар для Puporev
64312 / 47609 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
08.06.2008, 22:55
Вот на Паскале для любого размера. Сначала матрица заполняется по порядку, потом величина элементов увеличивается или уменьшается по определенным правилам. Разбирайся.
Code
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
[SIZE=2]
uses crt;
var a:array[1..20,1..20]of integer;
n,i,j:integer;
x,y,number,add,direction:integer;
begin
clrscr;
write('n=');readln(n);
for i:=1 to n do
for j:=1 to n do
a[i,j]:=i*10+j;
x:=0;
y:=1;
number:=1;
Add:=n;
direction:=1;
while (add<>0) do
begin
i:=0;
while (i<>Add) do
begin
x:=x+direction;
a[y,x]:=number;
number:=number+1;
i:=i+1;
end;
i:=0;
Add:=Add-1;
while (i<>Add) do
begin
y:=y+direction;
a[y,x]:=number;
number:=number+1;
i:=i+1;
end;
direction:=direction*(-1);
end;
for i:=1 to n do
begin
for j:=1 to n do
write(a[i,j]:4);
writeln;
end;
readln
end.
[/SIZE]
0
Аллина
09.06.2008, 16:32
помоги разобраться а то препод придрался к каждой переменой!помоги разобраться пожалуйста
Почетный модератор
 Аватар для Puporev
64312 / 47609 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
09.06.2008, 21:24
Очень трудно заочно рассказать этот алгоритм, его надо пошагово показывать на реальной матрице. Попробую пояснить суть переменных на примере матрицы 5х5
var a:array[1..5,1..5]of integer;//сама матрица
n:integer; //размерность матрицы
i,j:integer; //счетчики при создании массива
x– номер столбца
y– номер строки
number– числа в матрице 1,2,3 . . . 25
add– длина пути по строке или по столбцу.
Сначала она = 5 в первой строке, потом = 4 вниз по последнему столбцу, влево по последней строке, потом = 3 вверх по первому столбцу и влево по второй строке потом =2 вниз по 4 столбцу и влево по четвертой строке потом =1 это числа 24 и 25.
Direction– это шаг, равный +1, если идем вправо по строке, или вниз по столбцу, и -1, если идем влево по строке, или вверх по столбцу. При каждом шаге, хоть +1, хоть -1, увеличивается number, от 1 до 25, а в зависимости чему на данный момент равны х и у, следующее число попадает на нужное место.
Счетчик i во второй части программы, не то что в первой, он управляет величиной add, когда счетчик i становится равным add, мы поворачиваем на 90 градусов. Ну больше не знаю как написать. Нарисуйте пустую матрицу и с программой в руках по одному числу заполните матрицу, как показывает программа, сколько шагов и в какую сторону сделать. Иначе не сможете объяснить.
0
Аллина
09.06.2008, 21:30
большое спасибо за помощь!просто огромное спасибо!выручил
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.06.2008, 21:30
Помогаю со студенческими работами здесь

Заполнить массив первыми N натуральными числами
Напишите подпрограмму, которая заполняет массив первыми N натуральными числами. Размер массива заранее задан константой N. Используйте...

Заполнить матрицу по спирали.
http://************.com/files/4x9alup5f вот ссылка на рисунок по которому заполняется матрица!!! ПАЖАЛУСТО ОЧ НУЖНО САМ НУ НЕ КАК НЕ МОГУ...

Заполнить матрицу по спирали.
Добрый вечер. Нужно составить массив 7х7 из чисел от 1 до 49, вот такой. 1 2 3 4 5 6 7 24 25 26 27 28 29 8 23 40 41 42 43 30 9 ...

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

Заполните матрицу n×n числами от 1 до n2 по спирали из файла
Ребят,помогите пожалуйста. Хотел бы на паскале... 1.Заполните матрицу n×n числами от 1 до n2 по спирали, по часовой стрелке,...


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

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

Новые блоги и статьи
Настройка гиперпараметров с помощью Grid Search и Random Search в Python
AI_Generated 15.05.2025
В машинном обучении существует фундаментальное разделение между параметрами и гиперпараметрами моделей. Если параметры – это те величины, которые алгоритм "изучает" непосредственно из данных (веса. . .
Сериализация и десериализация данных на Python
py-thonny 15.05.2025
Сериализация — это своего рода "замораживание" объектов. Вы берёте живой, динамический объект из памяти и превращаете его в статичную строку или поток байтов. А десериализация выполняет обратный. . .
Чем асинхронная логика (схемотехника) лучше тактируемой, как я думаю, что помимо энергоэффективности - ещё и безопасность.
Hrethgir 14.05.2025
Помимо огромного плюса в энергоэффективности, асинхронная логика - тотальный контроль над каждым совершённым тактом, а значит - безусловная безопасность, где безконтрольно не совершится ни одного. . .
Многопоточные приложения на C++
bytestream 14.05.2025
C++ всегда был языком, тесно работающим с железом, и потому особеннно эффективным для многопоточного программирования. Стандарт C++11 произвёл революцию, добавив в язык нативную поддержку потоков,. . .
Stack, Queue и Hashtable в C#
UnmanagedCoder 14.05.2025
Каждый опытный разработчик наверняка сталкивался с ситуацией, когда невинный на первый взгляд List<T> превращался в узкое горлышко всего приложения. Причина проста: универсальность – это прекрасно,. . .
Как использовать OAuth2 со Spring Security в Java
Javaican 14.05.2025
Протокол OAuth2 часто путают с механизмами аутентификации, хотя по сути это протокол авторизации. Представьте, что вместо передачи ключей от всего дома вашему другу, который пришёл полить цветы, вы. . .
Анализ текста на Python с NLTK и Spacy
AI_Generated 14.05.2025
NLTK, старожил в мире обработки естественного языка на Python, содержит богатейшую коллекцию алгоритмов и готовых моделей. Эта библиотека отлично подходит для образовательных целей и. . .
Реализация DI в PHP
Jason-Webb 13.05.2025
Когда я начинал писать свой первый крупный PHP-проект, моя архитектура напоминала запутаный клубок спагетти. Классы создавали другие классы внутри себя, зависимости жостко прописывались в коде, а о. . .
Обработка изображений в реальном времени на C# с OpenCV
stackOverflow 13.05.2025
Объединение библиотеки компьютерного зрения OpenCV с современным языком программирования C# создаёт симбиоз, который открывает доступ к впечатляющему набору возможностей. Ключевое преимущество этого. . .
POCO, ACE, Loki и другие продвинутые C++ библиотеки
NullReferenced 13.05.2025
В C++ разработки существует такое обилие библиотек, что порой кажется, будто ты заблудился в дремучем лесу. И среди этого многообразия POCO (Portable Components) – как маяк для тех, кто ищет. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru