Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> максимальный по модулю элемент, поиск максимального по модулю элемента  
:(
    Опции темы
suse
Дата 28.5.2009, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 26.6.2008

Репутация: нет
Всего: нет



есть функции определения максимального и минимального элемента в матрице
Как сделать функцию определения максимального по модулю элемента?
Код

//Функция определения индекса большего элемента
int S_max(float *M,int N)
{int i,max_n=0;
 float max=M[0];
 for(i=1;i<N;i++)
    {if (*(M+i)>max)
    {max=*(M+i);
       max_n=i;}
   }return max_n;
}
//Функция определения индекса меньшего элемента
int S_min(float *M,int N)
{int i,min_n=0;
 float min=M[0];
for(i=1;i<N;i++)
    {if (*(M+i)<min)
    {min=*(M+i);
       min_n=i;}
   }return min_n;
}


Добавлено через 13 минут и 40 секунд
Ну можно их сравнить конечно по fabs
PM MAIL   Вверх
mes
Дата 28.5.2009, 22:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(suse @  28.5.2009,  19:36 Найти цитируемый пост)
Как сделать функцию определения максимального по модулю элемента?

Цитата(suse @  28.5.2009,  19:36 Найти цитируемый пост)
сравнить ... по fabs 

 smile , 
если уже известны минимальное и максимальное, то достаточно сравнить по фабс только их. smile



Это сообщение отредактировал(а) mes - 28.5.2009, 22:59


--------------------
PM MAIL WWW   Вверх
mrbrooks
Дата 29.5.2009, 08:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 19
Всего: 306



с давних пор прекратил собирать корявые велосипеды и другим не рекомендую. граждане! товарищи! братцы! используйте STL!

Код

#include <iostream>
#include <vector>
#include <algorithm>
#include <cmath> 

float modul(float x)
{
    return fabs(x);
} 

int main()
{
 float arr[] = {/*исходный массив - заполняем сами*/};
 std::vector<float>v;
 std::transform(arr, arr+ARRAYSIZE(arr), std::inserter(v,v.begin()), modul);
 std::cout << "Max element: " << * std::max_element(v.begin(),v.end()) << std::endl; 
 std::cin.get(); 
 return 0; 
}

PM MAIL   Вверх
mes
Дата 29.5.2009, 08:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(mrbrooks @  29.5.2009,  07:06 Найти цитируемый пост)
с давних пор прекратил собирать корявые велосипеды и другим не рекомендую. граждане! товарищи! братцы! используйте STL!

так категорично ?! a где то сказано или хотя бы есть намек, что это С++, а не С ?  smile 


Это сообщение отредактировал(а) mes - 29.5.2009, 08:55


--------------------
PM MAIL WWW   Вверх
mrbrooks
Дата 29.5.2009, 09:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 19
Всего: 306



Цитата(mes @  29.5.2009,  08:54 Найти цитируемый пост)
так категорично ?! a где то сказано или хотя бы есть намек, что это С++, а не С ? 

 smile 
ммм. ну только то что код у автора имеет подпись код С++  smile 

PM MAIL   Вверх
mes
Дата 29.5.2009, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(mrbrooks @  29.5.2009,  08:00 Найти цитируемый пост)
ммм. ну только то что код у автора имеет подпись код С++

нда.. это действительно может сбить с толку,  хотя и дается по умолчанию, при нажатии на кнопку без выбора.




--------------------
PM MAIL WWW   Вверх
mrbrooks
Дата 29.5.2009, 09:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 19
Всего: 306



Цитата(mes @  29.5.2009,  09:24 Найти цитируемый пост)
это действительно может сбить с толку,  хотя и дается по умолчанию, при нажатии на кнопку без выбора.

да блин камрад я это прекрасно знаю. должен же я хоть как то отбрехаться  smile 
хотя конечно в таких вопросах стоит всетаки указывать на чем пишешь - что бы путаницы не было.
PM MAIL   Вверх
math64
Дата 29.5.2009, 09:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 12
Всего: 72



Цитата(mrbrooks @  29.5.2009,  08:06 Найти цитируемый пост)
с давних пор прекратил собирать корявые велосипеды и другим не рекомендую. граждане! товарищи! братцы! используйте STL!

Программа выдает 2 когда максимальный элемент -2.0! (и пришлось дописывать ARRAYSIZE)
И вроде бы автору нужен ИНДЕКС максимального по модулю элемента, судя по его коду.

Добавлено через 2 минуты и 13 секунд
Цитата(mes @  29.5.2009,  09:24 Найти цитируемый пост)
нда.. это действительно может сбить с толку,  хотя и дается по умолчанию, при нажатии на кнопку без выбора.

А выбора "C" нет, есть "C++" и "C++ Borland"
PM   Вверх
kamre
Дата 29.5.2009, 09:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 330
Регистрация: 24.3.2006

Репутация: 2
Всего: 13



Цитата(mrbrooks @ 29.5.2009,  08:06)
с давних пор прекратил собирать корявые велосипеды и другим не рекомендую. граждане! товарищи! братцы! используйте STL!

[code=cpp]
 ...
 float arr[] = {/*исходный массив - заполняем сами*/};
 std::vector<float>v;
...
code]

Так здесь же в два раза больше памяти отхватили для такой примитивной задачки. Разве это нормальное решение?
PM MAIL   Вверх
mes
Дата 29.5.2009, 09:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(math64 @  29.5.2009,  08:30 Найти цитируемый пост)
А выбора "C" нет, есть "C++" и "C++ Borland" 

ух .. точно.. это же дискриминация  ! smile  smile 

Это сообщение отредактировал(а) mes - 29.5.2009, 09:36


--------------------
PM MAIL WWW   Вверх
mrbrooks
Дата 29.5.2009, 09:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 19
Всего: 306



Цитата(math64 @  29.5.2009,  09:30 Найти цитируемый пост)
Программа выдает 2 когда максимальный элемент -2.0! (и пришлось дописывать ARRAYSIZE)
И вроде бы автору нужен ИНДЕКС максимального по модулю элемента, судя по его коду.


камрад! внимательно почитаем, что пишет тс. я конечно понимаю твое стремление уличить меня в не правоте, но все же. то что он наваял - это уже другая песня.

Цитата(suse @  28.5.2009,  20:36 Найти цитируемый пост)
есть функции определения максимального и минимального элемента в матрице
Как сделать функцию определения максимального по модулю элемента?



Цитата(math64 @  29.5.2009,  09:30 Найти цитируемый пост)
А выбора "C" нет, есть "C++" и "C++ Borland" 

smile Вот с одной стороны смысла нет, а с другой есть.

Добавлено через 1 минуту и 40 секунд
Цитата(kamre @  29.5.2009,  09:35 Найти цитируемый пост)
Так здесь же в два раза больше памяти отхватили для такой примитивной задачки. Разве это нормальное решение? 


что еще скажешь? это идея, а не готовая реализация.

PM MAIL   Вверх
math64
Дата 29.5.2009, 09:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 12
Всего: 72



Цитата(mrbrooks @  29.5.2009,  09:38 Найти цитируемый пост)
камрад! внимательно почитаем, что пишет тс. я конечно понимаю твое стремление уличить меня в не правоте, но все же. то что он наваял - это уже другая песня.
Цитата(suse @  28.5.2009,  20:36)
есть функции определения максимального и минимального элемента в матрицеКак сделать функцию определения максимального по модулю элемента?

максимального по модулю элемента а не модуля максимального по модулю элемента!

PM   Вверх
zim22
Дата 29.5.2009, 09:52 (ссылка) |    (голосов:5) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Цитата(kamre @  29.5.2009,  09:35 Найти цитируемый пост)
Так здесь же в два раза больше памяти отхватили для такой примитивной задачки. Разве это нормальное решение?

Код

bool predicate(float lhs, float rhs) {
  return fabs(lhs) < fabs(rhs);
}

float a[] = {3, -5, 1, -3, 4};
float *res = std::max_element(a, a + 5, predicate);



--------------------
PM MAIL   Вверх
math64
Дата 29.5.2009, 10:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 12
Всего: 72



решение zim22 правильное, и позволяет найти индекс:
Код

cout << "Index of the element: " << (res -a);

PM   Вверх
kamre
Дата 29.5.2009, 10:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 330
Регистрация: 24.3.2006

Репутация: 2
Всего: 13



Цитата(mrbrooks @ 29.5.2009,  09:38)
Цитата(kamre @  29.5.2009,  09:35 Найти цитируемый пост)
Так здесь же в два раза больше памяти отхватили для такой примитивной задачки. Разве это нормальное решение? 


что еще скажешь? это идея, а не готовая реализация.

Странная идея заводить вектор и хранить в нем модули элементов массива. Посмотрите на решение у zim22, библиотеку stl также нужно уметь применять правильно.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0579 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.