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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.08.2013, 16:03   #1
hunter03
Форумчанин
 
Регистрация: 05.05.2009
Сообщений: 244
По умолчанию Работа с массивом как с прямоугольной матрицей

Добрый день!
подскажите как решить задачу:
дана матрица, которая представлена в виде вектора( например 25х16)
т.е. в нем 25х16 элементов.
как мне обнулить элементы 17 столбца и 17 строки этой матрицы?

подскажите пожалуйста, не получается никак.
hunter03 вне форума Ответить с цитированием
Старый 06.08.2013, 16:23   #2
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

какой язык, и как выводишь матрицу (что бы не напутать строки со столбцами)?
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Старый 06.08.2013, 16:26   #3
hunter03
Форумчанин
 
Регистрация: 05.05.2009
Сообщений: 244
По умолчанию

Сообщение (1) 06.08.2013 16:26 от hunter03
пытаюсь на с++ сделать.
вот как делаю ща:
Код:
char Frame[324*256];

for (int mass=0; mass<=324*256; mass++ ){
Frame[mass]=200;
}

for (int index=100*324; index<= (100*324)+324-1; index++ ){

	Frame[index]=0;
	
}
Сообщение (2) 06.08.2013 16:28 от hunter03
выводить так нада:
Код:
for (int i=0; i < 324; ++i)
{
  for (int j=0; j < 256; ++j)
  {
Frame[j+i*(324-1)]
}}
??




_________________
1) Не используйте форум как чат - не пишите несколько коротких сообщений подряд!
Есть что добавить - нажимайте кнопку "Правка/Редактировать" на своём крайнем сообщении
и изменяйте, добавляйте....

2) Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(кнопочка на панели форматирования с решёточкой #)


Прошу учесть на будущее...

Модератор.

Последний раз редактировалось Serge_Bliznykov; 06.08.2013 в 16:49.
hunter03 вне форума Ответить с цитированием
Старый 06.08.2013, 21:08   #4
hunter03
Форумчанин
 
Регистрация: 05.05.2009
Сообщений: 244
По умолчанию

Помогите найти ошибку...
целый день бьюсь - все никак

вот код, может посмотрите, кто разбирается...
Код:
char Frame[500*500];//мой массив - в него буду сохранять матрицу

for (int mass=0; mass<324*256; mass++ ){
Frame[mass]=200;// забиваю массив значениями
}


for (int index=100*324; index <= (100*324)+324-1; index++ ){ //тут пытаюсь обнулить сотую строку в двумерной матрице

	Frame[index]=0;
	
}

for (int mass2=200*324; mass2<= (200*324)+324-1; mass2++ ){//аналогично делаю с 200-ой строкой матрицы

	Frame[mass2]=0;

}

//тут пытаюсь вывести
for (int j=0; j < 324; j++)
{
  for (int i=0; i < 256; i++)
  {
    x = 0;

    os.write(reinterpret_cast<char*>(&Frame[(i-1)*324+j]),sizeof(Frame[(i-1)*324+j]));
    os.write(reinterpret_cast<char*>(&Frame[(i-1)*324+j]),sizeof(Frame[(i-1)*324+j]));
    os.write(reinterpret_cast<char*>(&Frame[(i-1)*324+j]),sizeof(Frame[(i-1)*324+j]));
    os.write(reinterpret_cast<char*>(&x),sizeof(x));
  }
}
надеюсь, проблема всего лишь в адресации к элементам двумерного массива... прошу помочь, спасибо.
hunter03 вне форума Ответить с цитированием
Старый 06.08.2013, 21:11   #5
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

тогда наверное так объявление и присваивание:
Код:
int Frame[324][256];

for (int i=0; i < 324; i++ )
  for (int j = 0; j < 256; j++)
    Frame[i][j]=5;
обнуление строк и столбцов:
Код:
// 5-ой строки
for (int i=0; i < 256; i++ )
   Frame[5][i] = 0;

// 12-го столбца
for (int i=0; i < 324; i++ )
   Frame[i][12] = 0;
вывод видимо так:
Код:
for (int i=0; i < 324; i++ ){
  for (int j = 0; j < 256; j++)
    cout<<Frame[i][j]; // вывод строки
  cout<< "\n"; // переход на след строку  
  }
p.s. не проверял... но теоретически работает..

p.p.s. char - символьный тип данных а не числовой!!!
пишу код не только за печеньки

Последний раз редактировалось VIK_aka_TOR; 06.08.2013 в 21:16.
VIK_aka_TOR вне форума Ответить с цитированием
Старый 06.08.2013, 21:16   #6
hunter03
Форумчанин
 
Регистрация: 05.05.2009
Сообщений: 244
По умолчанию

если бы матрица была двумерной - не было бы проблем...
условие - что матрица записана в виде строки в одномерный массив...
т.е. например 350 первых символов - 1 строка матрицы
с 351 по 700 - вторая строка матрицы и т.д
вот что ставит меня в тупик...не могу понять как обнулить в данном случае какую нибудь строку...
hunter03 вне форума Ответить с цитированием
Старый 06.08.2013, 21:25   #7
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

ну... одна так одна... тут на помощь придет "/" и "%", а может и не придет)
сейчас подредактирую)
Код:
int Frame[324*256];

for (int i=0; i < 324 * 256; i++ )
    Frame[i]=5;
обнуление строк и столбцов:
Код:
// 5-ой строки
for (int i=256 * (5 -1) - 1; i < 256 * 5; i++ )
   Frame[i] = 0;

// 12-го столбца
for (int i=0; i < 324 * 256; i++ )
  if (i % 256 == 11) 
    Frame[i] = 0;
вывод видимо так:
Код:
for (int i=0; i < 324; i++ ){
  for (int j = 0; j < 256; j++)
    cout<<Frame[i * 256 + j]; // вывод строки
  cout<< "\n"; // переход на след строку  
  }
пишу код не только за печеньки

Последний раз редактировалось VIK_aka_TOR; 06.08.2013 в 21:37.
VIK_aka_TOR вне форума Ответить с цитированием
Старый 06.08.2013, 21:32   #8
hunter03
Форумчанин
 
Регистрация: 05.05.2009
Сообщений: 244
По умолчанию

я думаю, я как то не так сделал в своем цикле(там де обнулял). Как то не верно выбрал диапазон или что то в этом роде...не знаю даже...
hunter03 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с матрицей и массивом чисел. Markodius Помощь студентам 3 15.06.2013 10:10
Работа с именами как с массивом tae1980 Microsoft Office Excel 2 06.01.2012 00:13
Работа с компонентами как с массивом dina13 Компоненты Delphi 7 12.01.2011 22:20
C++, Операции с прямоугольной матрицей WinterLord Помощь студентам 5 14.12.2008 04:03