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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.01.2014, 11:34   #1
qw475
Новичок
Джуниор
 
Регистрация: 14.01.2014
Сообщений: 2
По умолчанию Помогите убрать 2 ошибки.

Здравствуйте. В работе использовал Turbo C++, Win7 x32.


Код:
#include <stdio.h>
#include <math.h>

int main(){
const float P = 90;
const int n = 12;
float r[n+1] = {300, 275, 250, 225, 200, 175, 150, 125, 100, 75, 50, 25, 15};
float u[n+1] = {0, 3, 7, 11, 22, 36, 49, 60, 73, 75, 80, 85, 90};

int t, k, i = 0;
float f = -P;

float **mBellman = new float*[n];
float *s = new float[n+1];


// ввод данных, если не нужен, то закоментировать
for(t = 0; t <= n; t++){
  printf("\nСтоимость продукциивыпускаемой в %d году: ", t);
  scanf("%f", &r[t]);
  printf("Затраты н аобслуживание оборудования в %d году: ", t);
  scanf("%f", &u[t]);
}


s[0] = P;
for(t = 0; t <n; t++){

    mBellman[t] = new float[n];
    for(k = 0; k < n; k++)
        mBellman[t][k] = 0;

    if(t != 0) s[t] = s[t-1]*(1 - round(s[t-1]/(n-t)*10)/1000) + u[t];
}

printf("Остаточная стоимость:\n");
for(t = 0; t < n; t++)
    printf("%f\t", s[t]);
printf("\n");

for(k = 1; k <= n; k++){
    mBellman[n-1][k-1] = max(r[k], s[k] -P + r[0]);
    if (f < mBellman[n-1][k-1]){
        f = mBellman[n-1][k-1];
        i = k;
    }
}

for(t = n-1; t >= 0; t--)
    for(k = 1; k <= t; k++)
        {mBellman[t-1][k-1] = max( r[k] + mBellman[t][k],
                                  s[k] -P + r[0] + mBellman[t][0] );
         if (f < mBellman[t-1][k-1]){
             f = mBellman[t-1][k-1];
             i = k;
         }
        }

printf("Матрица Беллмана:\n");  
for(t = 0; t < n; t++){
    for(k = 0; k < n; k++)
        printf("%f\t", mBellman[t][k]);
    printf("\n");
}

printf("Выпуск продукции на %f млн. руб., на %d году", f, i);  

return 0;
}
CodeBlock в ходе компиляции выдает 2 ошибки:

Строка 44 - mBellman[n-1][k-1] = max(r[k], s[k] -P + r[0]); - 'max' ws not declared in this scope

Строка 54 - {mBellman[t-1][k-1] = max( r[k] + mBellman[t][k],
s[k] -P + r[0] + mBellman[t][0] ); - тоже самое


Что не так? Нужно включить какую-то библиотеку? Спасибо.

Последний раз редактировалось Stilet; 14.01.2014 в 11:36.
qw475 вне форума Ответить с цитированием
Старый 14.01.2014, 11:57   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Компилятор у Вас не знает, что такое за max, о чём Вам и сообщает.
вроде бы в модуле math.h в TurboC нет функции max...
кто мешает написать Вам свою функцию max?!

типа такого
Код:
float max(float x,y)
{
   if (x>y) {
      return x;
   }
   else {
      return y;
   }
}
или так:
Код:
float max(float x,y)
{
   return (x>y)?x:y;
}
Serge_Bliznykov вне форума Ответить с цитированием
Старый 14.01.2014, 12:00   #3
qw475
Новичок
Джуниор
 
Регистрация: 14.01.2014
Сообщений: 2
По умолчанию

В среде CodeBlocks тоже самое.
qw475 вне форума Ответить с цитированием
Старый 14.01.2014, 12:48   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

а чем своя функция max Вас не устроила?..
Serge_Bliznykov вне форума Ответить с цитированием
Старый 14.01.2014, 13:35   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
#include <cstdio>
#include <algorithm>
в любом более-менее современном компиле должно будет работать.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 14.01.2014, 14:52   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
Код:
#include <cstdio>
#include <algorithm>
в любом более-менее современном компиле должно будет работать.
это Turbo C++ более-менее современный компилятор?!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не знаю как убрать ошибки BoT_T Общие вопросы Delphi 4 05.10.2010 23:39
Помогите убрать ошибку !!! Marina888 Помощь студентам 2 18.11.2009 16:14
Помогите убрать текст. regfre Безопасность, Шифрование 16 28.01.2009 21:37
помогите убрать зацикливание с++,борланд Барби Помощь студентам 23 02.12.2008 10:14
Помогите убрать последствия вируса N!ckeL Безопасность, Шифрование 4 28.05.2008 16:55