![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Прошу помощи в решении следующей задачи:
Оформить программу формирования матрицы по её внешнему виду для любогшо заданного порядка nXn (n-нечетное): 13 14 15 16 17 12 3 4 5 18 11 2 1 6 19 10 9 8 7 20 25 24 23 22 21 Просто нужно написать ее на С++ и на Delphi... Вот во вторым у меня познания очень скудные... Если надо, могу предоставить листинг программы для С++ |
|
#2
|
||||
|
||||
|
а дайка исходники на С++, попробую переделать на Delphi
![]() |
|
#3
|
||||
|
||||
|
скинь исходник в частности сам цикл и за 10 минут переведу
![]() |
|
#4
|
|||
|
|||
|
Код:
setlocale(2,"rus");
int i, j, k, n, p; // n - размер матрицы, j - вспомогательный индекс
printf("Введите размер квадратной матрицы: ");
fflush(stdin);
scanf("%d", &n); // ввод числа в n
int **A = new int*[n];
for(i=0; i<n; i++) A[i] = new int[i];
i = n*n; // i-текущее число
p = n/2; // p - центральный элемент
for(k=1; k<=p; k++) // к - номер витка
{
for(j=k-1; j<n-k+1; j++) A[n-k][j] = i--; // снизу
for(j=n-k-1; j>=k-1; j--) A[j][n-k] = i--; // справа
for(j=n-k-1; j>=k-1; j--) A[k-1][j] = i--; // сверху
for(j=k; j<n-k; j++) A[j][k-1] = i--; // слева
}
if(n%2==1) A[p][p]=1; // центральный элемент для нечётных n
// далее вывод
for(i=0;i<n;i++)
{
printf("\n");
for(j=0;j<n;j++) printf(" %4d ",A[i][j]);
}
printf("\n\nНажмине любую клавишу для выхода...");
getch();
return 0;Последний раз редактировалось Admin, 23.02.2010 в 13:02. |