Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.04.2012, 17:15   #1
RIOs
Пользователь
 
Регистрация: 28.12.2011
Сообщений: 49
По умолчанию Сформировать матрицу (c#)

Всем доброго времени суток!
Не могу придумать алгоритм формирования такой вот матрицы:
1 2 3 4 5 6 7 8 9 10
0 1 2 3 4 5 6 7 8 9
0 0 1 2 3 4 5 6 7 8
...
0 0 0 0 0 0 0 0 0 1

Просто напишите, пожалуйста, сам алгоритм. Весь код не нужен. Задавать двумерный массив умею.
начало будет такое думаю, в циклах если i=j, то все диагональные элементы будут равны 1, а вот дальше у меня возникают трудности
RIOs вне форума Ответить с цитированием
Старый 08.04.2012, 17:37   #2
Lasur
Форумчанин
 
Аватар для Lasur
 
Регистрация: 13.10.2011
Сообщений: 143
По умолчанию

Код:
for (int i = 0; i < 10; i++) for (int j = i; j < 10; j++) arr[i, j] = j - i + 1;
Все имена, фамилии, ники, даты и события упоминаемые в моих постах, являются вымышленными. Все совпадения с реально существующими - случайны.
Lasur вне форума Ответить с цитированием
Старый 08.04.2012, 17:40   #3
RIOs
Пользователь
 
Регистрация: 28.12.2011
Сообщений: 49
По умолчанию

Спасибо. Сейчас проверю.
А еще можно как-нибудь?
чисто ради интереса
RIOs вне форума Ответить с цитированием
Старый 08.04.2012, 17:47   #4
Lasur
Форумчанин
 
Аватар для Lasur
 
Регистрация: 13.10.2011
Сообщений: 143
По умолчанию

Как-нибудь? Да масса способов есть.
Через LINQ можно, можно просто каждое число в отдельной строке инициализировать, или каждую строку/столбец...
Все имена, фамилии, ники, даты и события упоминаемые в моих постах, являются вымышленными. Все совпадения с реально существующими - случайны.
Lasur вне форума Ответить с цитированием
Старый 08.04.2012, 18:04   #5
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Конечно можно:
Код:
a[1,1]=1;
a[1,2]=2;
a[1,3]=3;
....
А если серьезно, то предложенная Lasurом формула оптимальна, более оптимизированный метод вряд ли есть. Можно конечно извратиться и копировать память напрямую, код на си:
Код:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int a[10][10],i,j;

int
main(void)
{
    for(i=0; i<10; i++)
        a[0][i]=i+1;
    for(i=1; i<10; i++)
        memcpy(&(a[i][i]),&(a[0][0]),(10-i)*sizeof(int));

    for (i=0; i<10; i++)
    {
        for (j=0; j<10; j++)
            printf("%3d",a[i][j]);
        putchar('\n');
    }
    return 0;
}
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 08.04.2012, 18:10   #6
RIOs
Пользователь
 
Регистрация: 28.12.2011
Сообщений: 49
По умолчанию

Да, формула Lasur отлична.
А мне не хватило мозгов до ее формирования
RIOs вне форума Ответить с цитированием
Старый 08.04.2012, 21:32   #7
RIOs
Пользователь
 
Регистрация: 28.12.2011
Сообщений: 49
По умолчанию

Там еще кстати в этом алгоритме нужно было указать для отрицательных чисел , чтобы они превращались в нули.
RIOs вне форума Ответить с цитированием
Старый 08.04.2012, 21:52   #8
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

RIOs, подразумевается, что массив УЖЕ инициализирован нулями. Алгоритм проходит только по половине матрицы (выше и на главной диагонали) и устанавливает значения.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
двумерные массивы. сформировать матрицу по образцу unbanned Паскаль, Turbo Pascal, PascalABC.NET 0 28.12.2011 21:10
Сформировать матрицу в Паскаль Женька Good Помощь студентам 1 03.11.2011 09:34
Сформировать матрицу по образцу (Delphi) Shenan Помощь студентам 1 22.06.2011 08:55
Создать матрицу A[1..N,1..N] из целых чисел. Сформировать одномерный массив, элементы которого - максимал spezzA Помощь студентам 2 24.11.2010 19:29
Сформировать матрицу A - первый столбец которой равен последнему столбцу исходной матрицы Вика М. Помощь студентам 3 23.12.2008 04:51