|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
12.09.2008, 21:00 | #1 |
Новичок
Джуниор
Регистрация: 12.09.2008
Сообщений: 2
|
Одолели матрицы!
Помогите пожалуйста! =(
Никак не получается реализовать для класса матриц функцию поиска. Возвращаемое значение должно быть int, а вернуть нужно номер элемента. Матрица представлена в виде массива. Примерно вот такой код получается: int Matrix:: find(double z) const { double temp=0; for(int i=0;i<str;i++) for(int j=0;j<eluse;j++) if((m1+i*elstr+j)==z) temp=m1+i*elstr+j; return temp; }
Я целуюсь лучше, чем готовлю! ;)
|
18.09.2008, 04:40 | #2 | |
Новичок
Джуниор
Регистрация: 26.08.2008
Сообщений: 1,010
|
Цитата:
ромик0: Cколько получают здешние модераторы?
pu4koff: У модераторов сдельная оплата труда. Выдал предупреждение - плюс к премии. Выдал бан - лучший модератор месяца со всеми вытекающими. |
|
18.09.2008, 10:06 | #3 | |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,065
|
Цитата:
Может нужно писать: m1 + i*eluse+j ? а то судя по коду у вас количество столбцов eluse, а в формулу вычисления индекса подставляете elstr. Вообще формула подсчета адреса элемента примерно такая: указатель_на_первый элемент_массива + номер_строки*количество_столбцов + номер_столбца. только вам нужно вернуть не элемент, а его индекс, поэтому из строчки temp=m1+i*elstr+j нужно наверно удалить m1 И почему temp описан как double, а не int? |
|
18.09.2008, 10:19 | #4 |
Новичок
Джуниор
Регистрация: 26.08.2008
Сообщений: 1,010
|
знать бы че такое elstr
а вообще, ему надо вернуть номер елемента а не индекс, тогда: temp=номер_строки*количество_элемен тов_встроке-1+номер_елемента_в_его_строке+1 вроде так... предположим есть матрица 12(строк) на 8(столбцов) символов, мы нашли символ в 7 строке, в 4 элементе: темп=12*6+4+1
ромик0: Cколько получают здешние модераторы?
pu4koff: У модераторов сдельная оплата труда. Выдал предупреждение - плюс к премии. Выдал бан - лучший модератор месяца со всеми вытекающими. Последний раз редактировалось alexinspir; 18.09.2008 в 10:28. |
21.09.2008, 20:07 | #5 |
Новичок
Джуниор
Регистрация: 12.09.2008
Сообщений: 2
|
Спасибо за помощь! =) Вот получившийся рабочий вариант функции (возвращает номер элемента в массиве)
int Matrix:: find(double z) const { for(int i=0;i<str;i++) for(int j=0;j<eluse;j++) if(*(m1+i*elstr+j)==z) return (i*elstr+j+1); return -1; }
Я целуюсь лучше, чем готовлю! ;)
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Матрицы | FatalX | Помощь студентам | 21 | 17.04.2009 22:50 |
матрицы | chelsi | Паскаль, Turbo Pascal, PascalABC.NET | 13 | 25.04.2008 10:07 |
матрицы | Ensoph | Помощь студентам | 1 | 24.10.2007 09:38 |