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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    karakurt2



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    SIgor33, совершенно аналогично. Я так подозреваю, это стандартное представление даты, не зависящее от языка программирования. Вот статья из Microsoft Developer Network по этому вопросу.

    Всего записей: 733 | Зарегистр. 06-12-2003 | Отправлено: 17:15 03-11-2009 | Исправлено: karakurt2, 17:15 03-11-2009
    akaGM

    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    а, например, в сях юникса с 1 января 1970г., которое так и называется "unix-time"
    ---
    вернее, "юникс-эпоха":
    http://ru.wikipedia.org/wiki/UNIX-%D0%B2%D1%80%D0%B5%D0%BC%D1%8F

    Всего записей: 24053 | Зарегистр. 06-12-2002 | Отправлено: 17:21 03-11-2009 | Исправлено: akaGM, 17:26 03-11-2009
    Infinite Retrieval

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Вот задали поиграться с конструкторами копии, и не компилится мой код. Ошибку пометил в коментарии. Заранее спасибо.

    Код:
     
    #include <iostream>
    #include <string.h>
    #include <windows.h>
    class CMyString
    {
        char *pStr;
    protected:
        static int Q_OBJ;
    public:
        CMyString();
        static char CON_C[100], DES[100], ADR[100], ADR_C[100], ADR_T[100], CON[100];
        static int ShowNumberOfObj() { return Q_OBJ; }
        static void Qpp() { Q_OBJ++; }
        static void Qmm() { Q_OBJ--; }
         
     
        CMyString(const CMyString &);
        ~CMyString();
        void Set(char *);
    };
     
    int CMyString::Q_OBJ = 0;
     
    char CMyString::CON[100] = "The constructor of new object was called, now the number of objects is ";
    char CMyString::CON_C[100] = "The constructor of copy was called, now the number of objects is ";
    char  CMyString::DES[100] = "The destructor was called, now the number of objects is ";
    char CMyString::ADR[100] = "The adress of new object is ";
    char CMyString::ADR_C[100] = "This constructor of copy was called by the object with the adress ";  
    char CMyString::ADR_T[100] = "The adress of temprary object, that was created by the constructor of copy is ";
     
     
    CMyString::CMyString()
    {
        char buf[20];
        pStr = new char[1];
        Qpp();
        strcat(CON, itoa(ShowNumberOfObj(), buf, 10));
        MessageBoxA(NULL, CON, "Constructor", MB_OK);
        CON[72] = 0; //72 is lenth of CON
     
     
    }
    CMyString::~CMyString()
    {
        char buf[20];
        Qmm();
        strcat(DES, itoa(ShowNumberOfObj(), buf, 10));
        MessageBoxA(NULL, DES, "Destructor", MB_OK);
        DES[57] = 0; //57 is lenth of DES
     
        delete pStr;
         
    }
    void CMyString::Set(char *pNewStr)
    {
        int i, s;
        s = strlen(pNewStr);
        delete pStr;
        pStr = new char[s+1];
        for(i=0; i<=s; i++)
            *(pStr + i) = *(pNewStr + i);
    }
    CMyString::CMyString(const CMyString &Source)
    {
        char buf[20], q_str[12];
        Qpp();
        strcat(CON_C, itoa(ShowNumberOfObj(), buf, 10));
        MessageBoxA(NULL, CON_C, "Constructor of copy", MB_OK);
        CON_C[65] = 0; //65 is lenth of CON
     
        strcat(ADR_C, itoa((int)(&Source), buf, 16));
        MessageBoxA(NULL, ADR_C, "Constructor of copy", MB_OK);
        ADR_C[67] = 0;
     
        strcat(ADR_T, itoa((int)this, buf, 16));
        MessageBoxA(NULL, ADR_T, "Constructor of copy", MB_OK);
        ADR_T[79] = 0;
     
        pStr = new[strlen(Source.pStr)]; //          ОШИБКА!!!!!!!!!!!!!! ПОЧЕМУ?
        strcpy(pStr, Source.pStr);
         
    }
     void swap(int &x, int &y)
     {
         int temp = x;
         x = y;
         y = temp;
     }
     
     int main()
     {
         CMyString obj1;
         CMyString obj2 = obj1;
         return 0;
     }
     

    Всего записей: 707 | Зарегистр. 22-02-2008 | Отправлено: 23:12 03-11-2009 | Исправлено: Infinite Retrieval, 23:13 03-11-2009
    Abs62



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

    Цитата:
    pStr = new[strlen(Source.pStr)]; //          ОШИБКА!!!!!!!!!!!!!! ПОЧЕМУ?

    Может, всё-таки new char[strlen(Source.pStr)]?

    ----------
    0 программистов ругал сердитый шеф
    Потом уволил одного, и стало их FF

    Всего записей: 6077 | Зарегистр. 22-10-2005 | Отправлено: 23:20 03-11-2009
    Infinite Retrieval

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

    Цитата:
    Может, всё-таки new char[strlen(Source.pStr)]?

    Ё-маё..... башка уже не варит, спасибо.
    Да, раз уж вы тут, не подскажите, как можно генерировать в студии код, чтобы пихнуть его в первый сектор жёсткого диска, тобишь как написать собственный загрузщик? Давно хотел с этим поиграться, привез ненужный системник. Насколько я понимаю, нужно просто сгенерировать bin файл с нулевым смещением и то, что атм написанно будет исполняться пи загрузке. Общение с пользователем можно проводить только через прерывания клавиатуры? На экран выводить можно только через тоже соотвествующее прерывание? Наверника же подобные программы пишутся не на fasm, а на C. Каким образом общаются с пользователем? Через какую-нибудь библиотеку общения с портами? Вообщем подскажите с чего начать и как делать. Для начала хочу просто понять как по шагам добиться исполнения собственного кода в начала загрузки, а уж дальше можно передавть джампы на системы.

    Всего записей: 707 | Зарегистр. 22-02-2008 | Отправлено: 23:36 03-11-2009
    Abs62



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

    Цитата:
    Насколько я понимаю, нужно просто сгенерировать bin файл с нулевым смещением и то, что атм написанно будет исполняться пи загрузке.

    Да. Надо только учитывать, что там ещё и таблица разделов должна находиться.

    Цитата:
    Общение с пользователем можно проводить только через прерывания клавиатуры? На экран выводить можно только через тоже соотвествующее прерывание?

    Разумеется, работать можно только с BIOS. Int 10h - вывод на экран, int 16h - клавиатура, int 13h - работа с диском.

    Цитата:
    Наверника же подобные программы пишутся не на fasm, а на C.

    Уж MBR-то точно на ассемблере пишется.

    ----------
    0 программистов ругал сердитый шеф
    Потом уволил одного, и стало их FF

    Всего записей: 6077 | Зарегистр. 22-10-2005 | Отправлено: 00:14 04-11-2009
    Infinite Retrieval

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    000h 446 Код загрузчика  
    1BEh 64 Таблица разделов  
     16 Раздел 1  
    1CEh 16 Раздел 2  
    1DEh 16 Раздел 3  
    1EEh 16 Раздел 4  
    1FEh 2 Сигнатура (55h AAh)  
     
     
     
    00h 1 Признак активности раздела  
    01h 1 Начало раздела — головка  
    02h 1 Начало раздела — сектор (биты 0-5), дорожка (биты 6,7)  
    03h 1 Начало раздела — дорожка (старшие биты 8,9 хранятся в байте номера сектора)  
    04h 1 Код типа раздела  
    05h 1 Конец раздела — головка  
    06h 1 Конец раздела — сектор (биты 0-5), дорожка (биты 6,7)  
    07h 1 Конец раздела — дорожка (старшие биты 8,9 хранятся в байте номера сектора)  
    08h 4 Смещение первого сектора  
    0Ch 4 Количество секторов раздела  
     
     
    Код файловой системы используемой на данном разделе. В случае расширенного раздела принимает значение 05h.
    А если обычный????
     
     
     
    тобишь я должен уместить свой код до 1BE.
     
    обишь я пишу прогу общения, затем пишу
     
    org 0x1BE
    db 1;
    db 1; //как выбрать головку?
    db 00000001b; // 1ый сектор (нулевой уже занят) нулевая дорожка
     и так далее
     
    Помогите, пожалуйста, каким-нибудь примером заглушкой.

    Всего записей: 707 | Зарегистр. 22-02-2008 | Отправлено: 13:10 04-11-2009
    Abs62



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Infinite Retrieval
    Я такие вещи не писал. Погугли, найти, думаю, не так уж сложно. Например, вот ссылка на первой же странице.

    ----------
    0 программистов ругал сердитый шеф
    Потом уволил одного, и стало их FF

    Всего записей: 6077 | Зарегистр. 22-10-2005 | Отправлено: 13:26 04-11-2009
    Infinite Retrieval

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ведь можно взять и дизасеблить свой диск!!!!!

    Всего записей: 707 | Зарегистр. 22-02-2008 | Отправлено: 13:38 04-11-2009 | Исправлено: Infinite Retrieval, 13:38 04-11-2009
    Lyrik

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Infinite Retrieval
    в данной теме, это оффтоп, имхо.

    Цитата:
    А если обычный????

    что значит обычный? это код устанавливается в зависимости от файловой системы

    Цитата:
    Помогите, пожалуйста, каким-нибудь примером заглушкой.

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

    Всего записей: 388 | Зарегистр. 04-04-2006 | Отправлено: 13:44 04-11-2009
    Infinite Retrieval

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

    Цитата:
    в данной теме, это оффтоп, имхо.  

    Именно, оффтоп. Просто тут есть Abs62, а он частенько овечает на мои вопросы. Написал бы в личку - не увидели бы другие потенциальные ответчики, а сосздал бы отдельную тему- Abs62 бы не увидел. Так что я разместил тут вопрос из эгоистических соображений.
     

    Всего записей: 707 | Зарегистр. 22-02-2008 | Отправлено: 14:38 04-11-2009
    optimized

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    киньте пожалуйста ссылки на теорию по разработке контроллера, никак ничего дельного найти не могу (теги по теме Разработка модели контроллера для управления очередностью
    выполнения процессов; диспетчер ресурсов)

    Всего записей: 125 | Зарегистр. 18-10-2008 | Отправлено: 16:54 04-11-2009
    Vilian

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Народ, что посоветуете из учебников. рекомендуется с самого начала, т.е. с нуля. Так же интересуют учебники по визуальному программированию.  
    p.s. Знаю только некоторые азы c++.

    Всего записей: 42 | Зарегистр. 23-07-2009 | Отправлено: 13:52 07-11-2009 | Исправлено: Vilian, 13:58 07-11-2009
    Abs62



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Vilian
    Для начала стоит полистать эту тему.

    ----------
    0 программистов ругал сердитый шеф
    Потом уволил одного, и стало их FF

    Всего записей: 6077 | Зарегистр. 22-10-2005 | Отправлено: 14:31 07-11-2009
    eightysix

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите пожалуйста, мне нужно смоделировать поведение толпы, ну например пользователь кидает в толпу палку колбасы или какое-то другое действие,нужно сделать наглядную модль этого процесса,подскажите с чего мне начать,что взять за основу!!!Пожалуйста,очень прошу!

    Всего записей: 2 | Зарегистр. 07-11-2009 | Отправлено: 15:26 07-11-2009
    RFTP



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    eightysix, в простейшем случае за основу следует взять двумерный массив символов, который будет отображаться на экране и обновляться при нажатии клавиши или прошествии какого-либо времени. Например, символ "1" будет означать колбасу, "0" - человека, а пробел - пустое пространство. При формировании следующего "кадра" определяется на какую клетку может перейти каждый человек таким образом, чтобы он не столкнулся с другим и одновременно стремился убежать подальше от брошенной палки колбасы.

    Всего записей: 26 | Зарегистр. 24-10-2009 | Отправлено: 20:38 07-11-2009
    C4rn1v0r4



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    подскажите, пожалуйста, вот такой код:
    Код:
    someClass::someClass(int variable)
    {
    some_otherClass.method();
    some_classVariable1=5;
    some_classVariable2=variable;
    }

    полностью равносилен такому:
    Код:
    someClass::someClass(int variable):
    some_otherClass.method(),
    some_classVariable1(5),
    some_classVariable2(variable)
    { }

    или же есть какие-то существенные различия?
     
    P.S. /me чувствует, что вопрос может быть глупым, потому /me уже стыдно, но узнать надо, а умение формировать запросы в гугл почему-то подводит.

    Всего записей: 9 | Зарегистр. 30-11-2008 | Отправлено: 20:35 11-11-2009 | Исправлено: C4rn1v0r4, 20:43 11-11-2009
    Lyrik

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

    Цитата:
    или же есть какие-то существенные различия?

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

    Код:
    someClass::someClass(int variable) :  
    some_otherClass(),
    some_classVariable1(),
    some_classVariable2(),
    {  
    some_otherClass.method();
    some_classVariable1=5;  
    some_classVariable2=variable;  
    }

    Всего записей: 388 | Зарегистр. 04-04-2006 | Отправлено: 00:11 12-11-2009
    C4rn1v0r4



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

    Всего записей: 9 | Зарегистр. 30-11-2008 | Отправлено: 01:22 12-11-2009
    Denchik



    Двоечник
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Lyrik
    небольшое уточнение, не придирки ради

    Цитата:
    т.е. компилятор сгенерирует такой код:

    Код:
    someClass::someClass(int variable) :  
    some_otherClass(),  
    ...
     

    some_otherClass уже должен быть сконструирован где-то, поэтому его конструктор не будет вызываться

    Всего записей: 8889 | Зарегистр. 06-02-2002 | Отправлено: 12:57 12-11-2009
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 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