Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.58/19: Рейтинг темы: голосов - 19, средняя оценка - 4.58
9 / 9 / 0
Регистрация: 14.02.2010
Сообщений: 126

Функция min

15.03.2012, 11:05. Показов 4040. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Перевожу код из Студии в Builder. Возник вопрос.
В этом коде
C
1
2
for (int i = k1*x0; i <= min(k1*(x0+1),n1-1); ++i)
                    for (int j = k2*y0; j <= min(k2*(y0+1),m1-1); ++j)
Вылетает ошибка Call of nonfunction
Я так понимаю, это про min?
В студии все работало отлично, никаких ошибок, ни предупреждений.
Вроде как эта функция была описана то ли в cmath, то ли в math.h, обе подключаю, толку нет.
Не подскажете, в чем дело?
-----------
И имеет ли эта функция большое различие с написанным мной например кодом
C
1
2
3
int min( int a, int b ) {
 return a < b? a: b;
 }
//Этот код тоже вызывает ту же ошибку.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.03.2012, 11:05
Ответы с готовыми решениями:

Функция для вычисления выражения (min(c+d,m,k)+min(k,c,m))/(3+min(k,d-m,c+m))
Даны значения c d m k . Напишите функцию min для вычисления выражения (min(c+d,m,k)+min(k,c,m))/(3+min(k,d-m,c+m)).

Даны действительные числа a, b. Рассчитать Y=min(a,b), Y1=min(min(a*b,a+b), min(a2 –b*a,b3-3*a), Y2=min(Y12+Y
Даны действительные числа a, b. Рассчитать Y=min(a,b), Y1=min(min(a*b,a+b), min(a2 –b*a,b3-3*a)), Y2=min(Y12+Y,5.25), где min(x,x1)...

Массив: Получить min(a1;a2;a3)+min(a4;a5;a6)+min(a7;a8;a9)+min(a10;a11;a12) .
Заполнить массив а1,а2,а3...а12 случайными числами от 0 до 20. Получить min(a1;a2;a3)+min(a4;a5;a6)+min(a7;a8;a9)+min(a10;a11;a12) .

17
 Аватар для gumi250
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
15.03.2012, 12:12
C++
1
2
3
4
5
6
#include <Math.hpp>
extern PACKAGE int __fastcall Min(const int A, const int B)/* overload */;
extern PACKAGE __int64 __fastcall Min(const __int64 A, const __int64 B)/* overload */;
extern PACKAGE float __fastcall Min(const float A, const float B)/* overload */;
extern PACKAGE double __fastcall Min(const double A, const double B)/* overload */;
extern PACKAGE System::Extended __fastcall Min(const System::Extended A, const System::Extended B)/* overload */;
1
9 / 9 / 0
Регистрация: 14.02.2010
Сообщений: 126
15.03.2012, 12:50  [ТС]
То же самое. Ууу, как меня достала эта ошибка.... Ведь в 2008 студии все прекрасно работало.
Может код выложить? Он небольшой, строчек 90

Добавлено через 13 минут
Нет, не то же самое, написал функцию с большой буквы.
Ошибка новая
E2015 Ambiguity between '_fastcall Math::Min(const int,const int)' and '_fastcall Min(const int,const int)'
0
 Аватар для gumi250
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
15.03.2012, 12:52
C++
1
2
3
4
5
#include <Math.hpp>
int k1=1; int x0=1; int n1=1; int k2=1; int y0=1; int m1=1;
for (int i = k1*x0; i <= Min(k1*(x0+1),n1-1); ++i)
for (int j = k2*y0; j <= Min(k2*(y0+1),m1-1); ++j)
int a=i+j;
прекрасно компилится в ХЕ
1
9 / 9 / 0
Регистрация: 14.02.2010
Сообщений: 126
15.03.2012, 12:56  [ТС]
gumi250, У меня CBuilder 6. Неужели от компилятора может не работать такой несложный код?
0
Модератор
 Аватар для vxg
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,461
15.03.2012, 13:02
min это макрос вида #define min(a, b) (((a) < (b)) ? (a) : (b)) из windef.h но его сложно подключить в VCL приложении - он с каким-то еще макроопределением из недр VCL сражается
0
 Аватар для gumi250
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
15.03.2012, 13:09
E2015 Ambiguity between '_fastcall Math::Min(const int,const int)' and '_fastcall Min(const int,const int)'
Ну либо пишите ::Min либо Math::Min
1
9 / 9 / 0
Регистрация: 14.02.2010
Сообщений: 126
15.03.2012, 13:18  [ТС]
Я в этом совсем новый, не подскажете, где написать ::Min?
0
 Аватар для gumi250
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
15.03.2012, 13:22
min это макрос вида #define min(a, b) (((a) < (b)) ? (a) : (b)) из windef.h
Каким это образом это может быть макрос? Ведь значения параметров ф-ции min(k1*(x0+1),n1-1) не известно на момент работы препроцессора. Здесь min может быть только компилируемой ф-цией.

Добавлено через 2 минуты
Я в этом совсем новый, не подскажете, где написать ::Min?
Или не подключать Math.hpp и тогда
C++
1
2
3
4
int k1=1; int x0=1; int n1=1; int k2=1; int y0=1; int m1=1;
for (int i = k1*x0; i <= Min(k1*(x0+1),n1-1); ++i)
for (int j = k2*y0; j <= Min(k2*(y0+1),m1-1); ++j)
int a=i+j;
или подключать Math.hpp и тогда
C++
1
2
3
4
5
#include <Math.hpp>
int k1=1; int x0=1; int n1=1; int k2=1; int y0=1; int m1=1;
for (int i = k1*x0; i <= ::Min(k1*(x0+1),n1-1); ++i)
for (int j = k2*y0; j <= ::Min(k2*(y0+1),m1-1); ++j)
int a=i+j;
или
C++
1
2
3
4
5
#include <Math.hpp>
int k1=1; int x0=1; int n1=1; int k2=1; int y0=1; int m1=1;
for (int i = k1*x0; i <= Math::Min(k1*(x0+1),n1-1); ++i)
for (int j = k2*y0; j <= Math::Min(k2*(y0+1),m1-1); ++j)
int a=i+j;
1
9 / 9 / 0
Регистрация: 14.02.2010
Сообщений: 126
15.03.2012, 13:28  [ТС]
gumi250, Спасибо, Math::Min вот это сработало.
::Min - это, кстати, нет...
0
Модератор
 Аватар для vxg
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,461
16.03.2012, 15:23
Цитата Сообщение от gumi250 Посмотреть сообщение
Каким это образом это может быть макрос
загляните в windef и увидите
0
 Аватар для gumi250
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
16.03.2012, 15:42
загляните в windef и увидите
Я глянул. Если вы напишите min(3,5), то препроцессор сможет найти минимальное значение, но если вы пишите min(x,1), то препроцессор не сможет найти минимальное значение, т.к. х просто неизвестен на момент работы препроцессора.
0
872 / 448 / 35
Регистрация: 25.10.2011
Сообщений: 910
16.03.2012, 17:09
Цитата Сообщение от gumi250 Посмотреть сообщение
Я глянул. Если вы напишите min(3,5), то препроцессор сможет найти минимальное значение, но если вы пишите min(x,1), то препроцессор не сможет найти минимальное значение, т.к. х просто неизвестен на момент работы препроцессора.
FALSE
0
 Аватар для gumi250
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
16.03.2012, 17:13
DefineTrueFalse, мило и оригинально, но если вы не согласны с чем то, то обычно приводят доводы.
0
872 / 448 / 35
Регистрация: 25.10.2011
Сообщений: 910
16.03.2012, 17:25
Цитата Сообщение от gumi250 Посмотреть сообщение
DefineTrueFalse, мило и оригинально, но если вы не согласны с чем то, то обычно приводят доводы.
C++
1
2
3
4
5
6
7
8
#include "math.hpp"
// ...
void __fastcall TForm3::Button1Click(TObject *Sender)
{
    int x = Edit1->Text.ToInt();
    int y = Edit2->Text.ToInt();
    ShowMessage(IntToStr(Math::Min(x,y)));
}
C++
1
2
3
4
5
6
7
8
#define min(x, y) ((x) < (y) ? (x) : (y))
// ...
void __fastcall TForm3::Button1Click(TObject *Sender)
{
    int x = Edit1->Text.ToInt();
    int y = Edit2->Text.ToInt();
    ShowMessage(IntToStr(min(x,y)));
}
C++
1
2
3
4
inline int __fastcall min(int x, int y)
{
    if (x > y) return y; else return x;
}
1
 Аватар для gumi250
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
16.03.2012, 17:40
DefineTrueFalse, а действительно вы правы. Что то я не внимательно глянул, ф-ция min() не вычисляется препроцесором, а просто подменяется выражением ((x) < (y) ? (x) : (y)). Забавно. не знал что компилятор с++ поддерживает такой синтаксис.
0
Модератор
 Аватар для vxg
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,461
16.03.2012, 21:47
Цитата Сообщение от gumi250 Посмотреть сообщение
если вы пишите min(x,1), то препроцессор не сможет найти минимальное значение
от чего же если он подменит вызов на
C++
1
(((x) < (1)) ? (x) : (1))
и переменная x будет видна в точке подмены?
0
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
16.03.2012, 23:20
Цитата Сообщение от Eugene THE BEST Посмотреть сообщение
Вроде как эта функция была описана то ли в cmath, то ли в math.h, обе подключаю, толку нет.
Стандартная функция std::min описана в <algorithm>.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.03.2012, 23:20
Помогаю со студенческими работами здесь

Даны действительные числа a, b. Рассчитать Y=min(a,b), Y1=min(min(a*b,a+b), min(a2 –b*a,b3-3*a)
Даны действительные числа a, b. Рассчитать Y=min(a,b), Y1=min(min(a*b,a+b), min(a2 –b*a,b3-3*a)), Y2=min(Y12+Y,5.25), где min(x,x1)...

Даны действительные числа x,y,z. Вычислить (min(x,y)+min(y,z)+min(x,z))/min(x,y,z)
Даны действительные числа x,y,z. Вычислить (min(x,y)+min(y,z)+min(x,z))/min(x,y,z). Подскажите, пожалуйста, ход решения.

Даны значения c, d, m, k. Напишите функцию min для вычисления значения следующего выражения: (min(c+d,m,k)+min(k,c,m))/(3+min(k,d-m,c+m)).
Даны значения c, d, m, k. Напишите функцию min для вычисления значения следующего выражения: ...

Найти min элемент в А и min элемент в B, если min A < min B, то обнулить главную диагональ в А, иначе в В
Ребят помогите пожалуйста с задачей, не понимаю как ее решить, завтра за нее голову отрубят.. Найти min элемент в А и min элемент в B,...

Рассчитать значение z=min(2a,b+a)+min(2a-b,b) определив и использовав функцию Min(x,y) - минимальное из двух чисел
Рассчитать значение z=min(2a,b+a)+min(2a-b,b) определив и использо- вав функцию Min(x,y) – минимальное из двух чисел. С++ Есть код, но...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
1С: Программный отбор элементов справочника Номенклатура по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор под наименованию группы (на. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника Сотрудники по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru