Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по программированию на C/С++

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322

Открыть новую тему     Написать ответ в эту тему

Crazy_Shrike



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Вопросы по программированию на C/С++

 
  • Справочники, книги
  • Выбор IDE (среды программирования)
     
    Постарайтесь дать как можно больше информации о возникшей проблеме - это в конце концов в ваших же интересах чтобы вам помогли.

    Решения конкретных задач собираются и обсуждаются в теме Задачи по C/С++ .

    Прежде чем просить помощи в задании...
    Если позарез надо и вы даже готовы заплатить

    Как правильно задавать вопросы, если вы хотите получить ответ.

    Полезные ссылки:
    C++(eng)

  • Всего записей: 241 | Зарегистр. 25-03-2004 | Отправлено: 13:37 06-05-2004 | Исправлено: AZJIO, 19:45 12-05-2014
    dimon0476



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    не издеваюсь! архив с программой весит 335 Мб. могу куда-нибудь скинуть. Там можно запустить Embarcadero RAD Studio XE.ехе и в интерфейсе будут и одна и другая среда. Можно каждую по отдельности отдельным файлом. Куда скинуть и как? скажите и сами посмотрите.
     
    Добавлено:
    PS: Сейчас на летитбит скину

    Всего записей: 1641 | Зарегистр. 16-04-2012 | Отправлено: 17:07 14-05-2012
    akaGM

    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    не надо ничего никуда кидать...

    Всего записей: 24056 | Зарегистр. 06-12-2002 | Отправлено: 17:12 14-05-2012
    dimon0476



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    И как мне ее тогда показать?

    Всего записей: 1641 | Зарегистр. 16-04-2012 | Отправлено: 17:18 14-05-2012
    akaGM

    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    не надо ничего показывать...
    на твой вопрос лично я ответить не могу...

    Всего записей: 24056 | Зарегистр. 06-12-2002 | Отправлено: 17:20 14-05-2012 | Исправлено: akaGM, 17:24 14-05-2012
    dimon0476



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ну, может кто другой ответит. Мне все-равно кто, главное - ответ получить. И по существу.

    Всего записей: 1641 | Зарегистр. 16-04-2012 | Отправлено: 17:21 14-05-2012
    akaGM

    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    вряд ли кто-нибудь здесь ответит...
    иди лучше в "программах" спроси:
     
    http://forum.ru-board.com/forum.cgi?forum=5
     
    по существу...

    Всего записей: 24056 | Зарегистр. 06-12-2002 | Отправлено: 17:25 14-05-2012
    alalpod



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте, у меня вопрос следующего характера:
     
    Как позволить пользователю ввести функцию типа sin(x) или там x^4+x^2?
    То есть весь вопрос в том, чтобы можно было задавать различные функции в одной программе.
     
    Для этого нужна специальная функция, или все делается через scanf и я просто туплю?

    Всего записей: 5 | Зарегистр. 23-01-2011 | Отправлено: 18:57 16-05-2012
    akaGM

    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    alalpod
    вводить можно что угодно, например, функцию в символьном виде...
    но для этого тебе придётся использовать так называемый парсер -- подпрограммы обработки символьной информации
    самому писать их уже не имеет смысла
    самый лёгкий способ: поищи пример написания простого калькулятора

    Всего записей: 24056 | Зарегистр. 06-12-2002 | Отправлено: 19:08 16-05-2012
    alalpod



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    akaGM
    Спасибо, буду изучать.

    Всего записей: 5 | Зарегистр. 23-01-2011 | Отправлено: 19:29 16-05-2012
    dvigor1981

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подробнее...

    Всего записей: 5 | Зарегистр. 19-05-2012 | Отправлено: 09:05 20-05-2012
    MihaNix

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Требуется выполнить задачу примерно такого характера:
     
    /*
    Описать класс вектор на плоскости,
    содержащий координаты его начала и
    конца, методы вывода координат на
    экране и нахождения длины. Описать
    производный класс, дополнительно содержащий
    функцию умножения вектора на число,
    скалярного произведения векторов и
    сложения двух векторов. Продемонстрировать
    работу всех созданных методов.
    Предусмотреть интерфейс работы
    пользователя с программой на основе меню.
    */
     
    #include<stdio.h>
    #include<math.h>
     
     
     
    class vector
    {
     double x,y;
     public:
     vector(double vX=0, float vY=0) { x=vX; y=vY;} // конструктор
     ~vector ();
     friend vector operator+(vector a, vector b); //сложение векторов
     friend vector operator-(vector a, vector b); //вычитание векторов
     friend vector operator*(vector a, double scalar); //умножение вектора на скаляр
     friend double operator*(vector a, vector b); //скалярное произведение векторов
     friend vector operator%(vector a, vector b); //векторное произведение векторов
     friend double abs(vector a); //модуль вектора
    };
     
    vector operator+(vector a, vector b)
    {
     vector temp;
     temp.x = a.x + b.x;
     temp.y = a.y + b.y;
     
     return temp;
    }
     
    vector operator-(vector a, vector b)
    {
     vector temp;
     temp.x = a.x - b.x;
     temp.y = a.y - b.y;
     
     return temp;
    }
     
    vector operator*(vector a, double scalar)
    {
     vector temp;
     temp.x = a.x * scalar;
     temp.y = a.y * scalar;
     
     return temp;
    }
     
    double operator*(vector a, vector b)
    {
     return a.x*b.x + a.y*b.y;
    }
     
     
    double abs(vector a)
    {
     return sqrt(a.x*a.x + a.y*a.y);
    }
    /*
    функция вызывающая ошибку
    vector operator%(vector a, vector b)
    {
     vector Ox(1,0), Oy(0,1);
     return Ox*(a.y*b.y) + Oy*(a.x*b.x);
    }
    */
    main()
    {
           
          }
    По сути непонятно как потом из ф-ции main вызывать функции класса и передавать значения переменных. Закомментированная функция вызывает ошибку - может где затупил? ну и в алгоритмах может где ляпы... Уже второй день голову ломаю - не могу понять как работают классы.
    Ну и вопрос не по теме: нафига вообще эти классы сдались? Можно ведь и так в функции все оформить, а потом обращаться - мне так намного проще было бы, но к сожалению задача на классы.
    Используемая среда Devcpp.

    Всего записей: 124 | Зарегистр. 18-06-2010 | Отправлено: 13:57 20-05-2012 | Исправлено: MihaNix, 13:59 20-05-2012
    cp58

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    MihaNix

    Цитата:
    Требуется выполнить задачу примерно такого характера:  

    Так в не реализован базовый класс, судя по заданию. Также неясно зачем делать методы через friend, или здесь какой-то сакральный смысл?
     
    Базовый класс:

    Код:
    class Vector {
            double m_x,m_y;
            public:
            inline void x(double x) { m_x=x; };
            inline double x() { return m_x; };
            inline void y(double y) { m_y=y; };
            inline double y() { return m_y; };
            Vector(double x, double y):m_x(x),m_y(y){};
            ...
    };

     
    Производный класс:

    Код:
    class ExtendedVector:public Vector {
            public:
            ExtendedVector(double x, double y):Vector(x, y) {};
            ExtendedVector &operator+(ExtendedVector &a);
            ...
    };

     
    Для примера реализация операции сложения:
     

    Код:
    ExtendedVector& ExtendedVector::operator+(ExtendedVector &a) {
            x(x()+a.x());
            y(y()+a.y());
            return *this;
    }

     

    Цитата:
    По сути непонятно как потом из ф-ции main вызывать функции класса и передавать значения переменных.


    Код:
    ExtendedVector vec1(1,2);
    ExtendedVector vec2(1,3);
    vec1 + vec2;

    Или реализовать с возвратом нового элемента, смотря как требуется.
     

    Цитата:
    Ну и вопрос не по теме: нафига вообще эти классы сдались?  

    "Холиварный" вопрос. А если интересна цель их появления, то - удобство.

    Цитата:
    Можно ведь и так в функции все оформить

    Можно, но классы удобнее.
     

    Всего записей: 295 | Зарегистр. 06-12-2011 | Отправлено: 14:50 20-05-2012
    V0lt



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Имеется код:

    Код:
    int k = ...;
    CString s;
    s.Format(_T("%+d"), k);
    // k=-5   s="-5";
    // k=0   s="+0";
    // k=0   s="+5";

    Мне перед нулем "+" не нужен. Это решаемо условием. Но возможно ли создать строку-шаблон для CString::Format, чтобы положительные числа получались со знаком "+", отрицательные с "-", а ноль без знака?

    Всего записей: 10456 | Зарегистр. 05-02-2003 | Отправлено: 00:46 21-05-2012 | Исправлено: V0lt, 00:49 21-05-2012
    cp58

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    V0lt

    Цитата:
    Это решаемо условием.

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

    Всего записей: 295 | Зарегистр. 06-12-2011 | Отправлено: 22:36 21-05-2012 | Исправлено: cp58, 22:36 21-05-2012
    YuraseK

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Код:
    /**********************************************************************
     *  s   a d j o i n
     *
     *  Adjoin an element to an assorted list.  The original list is
     *  modified.  Returns the modified list.
     **********************************************************************/
    LIST s_adjoin(LIST var_list, void *variable, int_compare compare) {
      LIST l;
      int result;
     
      if (compare == NULL)
        compare = (int_compare) strcmp;
     
      l = var_list;
      iterate(l) {
        result = (*compare) (variable, first_node (l));
        if (result == 0)
          return (var_list);
        else if (result < 0) {
          insert(l, variable);
          return (var_list);
        }
      }
      return (push_last (var_list, variable));
    }

    bcc32 при компиляции выдаёт:
    Error E2027: Must take address of a memory location in function s_adjoin(list_rec *,void *,int (*)(void *,void *))
    Что в коде не так?
     

    Код:
    class FeatureBase {
     public:    
      explicit FeatureBase(TuningParams *params): params_(params) {}
      virtual ~FeatureBase() {}
      // Compute the features for a given CharSamp
      virtual bool ComputeFeatures(CharSamp *char_samp, float *features) = 0;
      // Render a visualization of the features to a CharSamp.
      // This is mainly used by visual-debuggers
      virtual CharSamp *ComputeFeatureBitmap(CharSamp *char_samp) = 0;
      // Returns the count of features
      virtual int FeatureCnt() = 0;
     protected:
      TuningParams *params_;
    };

    Для этого кода bcc32 выдаёт:
    Error E2238: Multiple declaration for 'FeatureBase'
    Error E2344: Earlier declaration of 'FeatureBase'
    При этом на созданные на базе этого класса классы не ругается.

    Всего записей: 527 | Зарегистр. 12-12-2003 | Отправлено: 22:45 21-05-2012 | Исправлено: YuraseK, 22:51 21-05-2012
    cp58

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    YuraseK

    Цитата:
    Для этого кода bcc32 выдаёт:
    Error E2238: Multiple declaration for 'FeatureBase'
    Error E2344: Earlier declaration of 'FeatureBase'  

    Класс второй раз объявлется где-то.

    Цитата:
    result = (*compare) (variable, first_node (l));  

    Разыменовывать указатель на функцию не требуется, достаточно просто вызывать как любую другую.
    compare(variable, first_node(l)

    Всего записей: 295 | Зарегистр. 06-12-2011 | Отправлено: 23:12 21-05-2012
    YuraseK

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    cp58
    Первую проблему решил написав рядом обвёртку для strcmp, а затем использовал её, и всё скомпилировалось:

    Код:
    int strcmp2(const char *s1, const char *s2) {
      return strcmp(s1, s2);
    }
     
    {...}
      if (compare == NULL)  
         compare = (int_compare) strcmp2;
    {...}

    Чудеса.

    Цитата:
    Класс второй раз объявлется где-то.

    Всё перерыл. Класс объявлен только в одном месте.
     
    Можно ли как-то объявить такой тип, чтобы bcc32 не ругался?

    Код:
    typedef unsigned long long int uintmax_t;

    Всего записей: 527 | Зарегистр. 12-12-2003 | Отправлено: 23:33 21-05-2012 | Исправлено: YuraseK, 23:51 21-05-2012
    kotlomoy



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    YuraseK
    "Error E2344: Earlier declaration of 'FeatureBase' " - здесь обычно указывается, где именно этот earlier declaration находится. В bcc32 разве не так?

    Всего записей: 172 | Зарегистр. 06-03-2008 | Отправлено: 00:25 22-05-2012
    cp58

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    YuraseK

    Цитата:
    Всё перерыл. Класс объявлен только в одном месте.  

    В месте может и одном, но возможно этим местом является заголовочный файл, который подключается дважды и не имеющий защиты от повторного подключения
    #ifndef SOME_HEADER
    #define SOME_HEADER
    ...
    #endif
     

    Цитата:
    Можно ли как-то объявить такой тип, чтобы bcc32 не ругался?  

    typedef unsigned long long uintmax_t;

    Всего записей: 295 | Зарегистр. 06-12-2011 | Отправлено: 00:27 22-05-2012
    YuraseK

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    В месте может и одном, но возможно этим местом является заголовочный файл, который подключается дважды и не имеющий защиты от повторного подключения  
     #ifndef SOME_HEADER  
     #define SOME_HEADER  
     ...  
     #endif

    С этим всё в порядке. Дело оказалось в неподключенном iostream.h в заголовочном файле, описывающем класс CharSamp, который используется в классе FeatureBase. Уже который раз замечаю, что если используется string.h и не указан iostream.h, то возможны проблемы с компилятором.
     

    Цитата:
    typedef unsigned long long uintmax_t;

    Спасибо.

    Всего записей: 527 | Зарегистр. 12-12-2003 | Отправлено: 00:56 22-05-2012
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322

    Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по программированию на C/С++


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru