Составить программу, которая заполняет квадратную матрицу порядка п натуральными числами 1, 2, 3, …, n2, записывая их в нее «по спирали».
Например, для п = 5 получаем следующую матрицу:
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
14 12 11 10 9
Ответ эксперта
const
nmax=20;
var
a: array[1..nmax,1..nmax] of byte;
n,i,j,c,k: byte;
begin
repeat
write(‘Введите размер матрицы n: ‘);
readln(n);
until n =1+c) do
begin
a[i,j]:=k;
dec(j);
inc(k);
end;
//вверх
inc(c); inc(j); dec(i);
while (k =1+c) do
begin
a[i,j]:=k;
dec(i);
inc(k);
end;
inc(j); inc(i);
until k>n*n;
writeln(‘Матрица по спирали:’);
for i:=1 to n do
begin
for j:=1 to n do
write(a[i,j]:4);
writeln;
end;
end.
Источник: xn--b1aai8acvc.xn--p1acf
Python Заполнить матрицу числами. Вывод столбца, сумма элементов которого есть наибольшей
6.7. Задания по теме «Двумерные массивы» Вариант № 1.
1. Сформировать квадратную матрицу порядка по заданному образцу:
2. Дана вещественная матрица размером .Переставляя ее строки и столбцы, добиться того, чтобы наибольший элемент (один из них) оказался в верхнем левом углу.
3. Пусть дана действительная матрица размера . Требуется преобразовать матрицу: поэлементно вычесть последнюю строку из всех строк, кроме последней.
4. Составить программу, которая заполняет квадратную матрицу порядка натуральными числами 1, 2, 3, . n 2 , записывая их в нее «по спирали». Например, для
получаем следующую матрицу:
1. Сформировать квадратную матрицу порядка nпо заданному образцу:
2. Дана целочисленная квадратная матрица. Найти в каждой строке наибольший элемент и поменять его местами с элементом главной диагонали.
3. Определить номера строк матрицы , хотя бы один элемент которых равен
и элементы этих строк умножить наd.
Решение задачи acmp № 196 Спираль
4. Составить программу, которая заполняет квадратную матрицу порядка nнатуральными числами 1, 2, 3, . n 2 , записывая их в нее последовательно по строкам. Например, дляполучаем следующую матрицу:
1. Сформировать квадратную матрицу порядка nпо заданному образцу:
2. Задана матрица размером . Найти максимальный по модулю элемент матрицы. Переставить строки и столбцы матрицы таким образом, чтобы максимальный по модулю элемент был расположен на пересечении k-йстроки иk-го столбца.
3. Найти наибольший и наименьший элементы прямоугольной матрицы и поменять их местами.
4. Составить программу, которая заполняет квадратную матрицу порядка nнатуральными числами 1, 2, 3, . n 2 записывая их в нее «по спирали». Например, дляполучаем следующую матрицу:
1. Дан линейный массив . Получить действительную квадратную матрицу порядкаn:
2. Дана квадратная матрица. Записать на место отрицательных элементов матрицы нули, а на место положительных –единицы. Вывести на печать нижнюю треугольную матрицу в общепринятом виде.
3. В данной действительной квадратной матрице порядка найти сумму элементов строки, в которой расположен элемент с наименьшим значением. Предполагается, что такой элемент единственный.
4. Составить программу, которая заполняет квадратную матрицу порядка nнатуральными числами 1, 2, 3, . n 2 записывая их в нее «по спирали». Например, дляполучаем следующую матрицу:
1. Дана действительная матрица размерностью ,все элементы которой различны. В каждой строке выбирается элемент с наименьшим значением, затем среди этих чисел выбирается наибольшее. Указать индексы элемента с найденным значением.
2. Сформировать квадратную матрицу порядка nпо заданному образцу:
3. Определить номера тех строк целочисленной матрицы , которые совпадают с массивом
. Если таких строк нет, выдать соответствующее сообщение.
4. Составить программу, которая заполняет квадратную матрицу порядка nнатуральными числами 1, 2, 3, . n 2 записывая их в нее «по спирали» вдоль диагонали. Например, дляполучаем следующую матрицу:
Источник: studfile.net
Заполнение квадратичной матрицы
Прошу помочь составить программу, которая заполняет квадратичную матрицу порядка n2 натуральными числами 1, 2, 3 . n2, записывая их в неё «по спирали»!
P.S: Помоги кто может пожалуйста в составлении такой программы на Delphi (С описанием)
10.01.2010, 03:06
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,718
Вы сказали Спасибо: 4
Поблагодарили 277 раз(а) в 263 сообщениях
Репутация: 52347
Предлагаю обмен. Вы мне помогаете кран отремонтировать, я вам помогаю программу написать.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
10.01.2010, 03:47
Регистрация: 29.10.2009
Сообщения: 446
Вы сказали Спасибо: 0
Поблагодарили 5 раз(а) в 2 сообщениях
Репутация: 271
Интересная задачка)
uses SysUtils; type TDirection = (dRight, dDown, dLeft, dUp); const CCOLSROWS = 5; var A:Array [1..CCOLSROWS, 1..CCOLSROWS] of Integer; Len, i, Index, x, y, c:Integer; Direction:TDirection; begin //Подготовимся Index:=1; Len:=CCOLSROWS-1; x:=1; y:=1; Direction:=dRight; A[x,y]:=Index; c:=0; //заполняем массив while (Len > 0) do begin for i:=1 to Len do begin Inc(Index); case Direction of dRight: Inc(x); dDown: Inc(y); dLeft: Dec(x); dUp: Dec(y); end; A[x,y]:=Index; end; Inc(c); if c = 3 then begin Dec(Len); c:=1; end; if Direction = dUp then Direction:=dRight else Direction:=Succ(Direction); end; //и выводим результат for y:=1 to CCOLSROWS do begin for x:=1 to CCOLSROWS do Write(StringOfChar(‘ ‘,5-Length(IntToStr(A[x,y])))+IntToStr(A[x,y])); Writeln; end; Readln; end.
10.01.2010, 07:30
Регистрация: 22.08.2009
Сообщения: 41
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
«Asinkrit» спасибо вам за наглядный пример, а можно побольше описаний и комментарий?
Просто мне для курсовой надо.
10.01.2010, 13:01
Регистрация: 29.10.2009
Сообщения: 446
Вы сказали Спасибо: 0
Поблагодарили 5 раз(а) в 2 сообщениях
Репутация: 271
Что тебе конкретно непонятно? Тут и разжовывать то нечего..
10.01.2010, 22:48
Регистрация: 22.08.2009
Сообщения: 41
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
«Asinkrit» я это и сам понимаю, но препод докопался до всякой мелочи.
Можешь предоставить «Алгоритм (Блок схему с описаниями)».
10.01.2010, 23:09
Регистрация: 29.10.2009
Сообщения: 446
Вы сказали Спасибо: 0
Поблагодарили 5 раз(а) в 2 сообщениях
Репутация: 271
Я же не могу делать всю работу за тебя, так у тебя ничего не останется в голове от этой работы, если ты понимаешь алгоритм, то нарисовать план-схему для тебя будет нетрудно, ты начни, а я помогу.
Сам алгоритм прост, заполняем массив отрезками в определенном направлени, начиная с верхнего левого элемента, после заполнения каждого отрезка, меняем направление по часовой стрелке, попутно вычисляя длину следущего отрезка, до тех пор, пока длина отрезка не станет нулевой.
« Предыдущая тема | Следующая тема »
Опции просмотра |
Линейный вид |
Комбинированный вид |
Древовидный вид |
Источник: delphisources.ru