Тут размещают свои топики новички в С/С++.

Тема в разделе "LANGS.C", создана пользователем nitrotoluol, 4 мар 2007.

  1. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Ошибся, надо искать не максимум соседей, а минимум. Но принцип верен. ^)
     
  2. dag

    dag New Member

    Публикаций:
    0
    Регистрация:
    17 авг 2004
    Сообщения:
    446
    Код (Text):
    1. matrix[10][10]={....};
    2. count=0;
    3. for (int x=0;x<11;x++)
    4.   for (int y=0;y<11;y++)
    5.     for (int i=x-1;i<=x+1;i++)
    6.       for (int j=y-1;j<=y+1;j++)
    7.         if (i>-1 && j>-1 && i<11 && j<11)
    8.           if (matrix[i][j]>matrix[x][y])
    9.             i=j=12
    10.           else
    11.             if (i==x+1 && j==y+1)
    12.               count++;
    Найди ошибки исправь и сдавай
     
  3. DoubleOn

    DoubleOn New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2009
    Сообщения:
    62
    dag
    вот что то такое я начинал делать...

    Booster
    интересный способ надо будет разобрать после сна
     
  4. dag

    dag New Member

    Публикаций:
    0
    Регистрация:
    17 авг 2004
    Сообщения:
    446
    DoubleOn
    Ну так в чём загвоздка то ? Приведенный пример не охватит только часть матрицы достаточно либо расширить матрицу (тебеже не запретили это делать) и подправить коэффиценты или всеголишь добавить в конец существующее условие =)
     
  5. DoubleOn

    DoubleOn New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2009
    Сообщения:
    62
    dag

    смутно я понял.загвоздка в том что к сожалению С++ для меня очень далек.А в универе его требуют.По этому попытаюсь разобрать код и понять в чем суть.Спасибо Boosterи dag
     
  6. dag

    dag New Member

    Публикаций:
    0
    Регистрация:
    17 авг 2004
    Сообщения:
    446
    Код (Text):
    1. int matrix[10][10]={
    2.              { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9},
    3.              {10,11,12,13,14,15,16,17,18,19},
    4.              {20,21,22,23,24,25,26,27,28,29},
    5.              {30,31,32,33,34,35,36,37,38,39},
    6.              {40,41,42,43,44,45,46,47,48,49},
    7.              {50,51,52,53,54,55,56,57,58,59},
    8.              {60,61,62,63,64,65,66,67,68,69},
    9.              {70,71,72,73,74,75,76,77,78,79},
    10.              {80,81,82,83,84,85,86,87,88,89},
    11.              {90,91,92,93,94,95,96,97,98,99}
    12.            };
    13. long count=0;
    14. long summ=0;
    15. for (int y=0;y<10;y++)                                                                        
    16.   for (int x=0;x<10;x++)
    17.   {
    18.     if (x>y) summ+=matrix[y][x];
    19.     for (int j=y-1;j<=y+1;j++)
    20.       for (int i=x-1;i<=x+1;i++)
    21.         if ((i>-1 && i<10) && (j>-1 && j<10) && (i!=x || j!=y) && matrix[j][i]<=matrix[y][x])
    22.           i=j=12;
    23.         else
    24.           if (j==y+1 && i==x+1)
    25.             count++;
    26.   }
    Ok вот те полный вариант твоей задачи с подсчётом суммы
     
  7. DoubleOn

    DoubleOn New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2009
    Сообщения:
    62
    СкомпилировалюВроде все правильно Спасибо большое dag
    теперь буду експереминировать :mad:
     
  8. dmicarus

    dmicarus New Member

    Публикаций:
    0
    Регистрация:
    25 май 2009
    Сообщения:
    17
    Всем привет.
    У меня вопрос касающийся IDE. Есть ли msvc функции автоматической установки зависимостей разрабатываемых одновременно проектов из одной среды. Например один проект это библиотека, второй - ехе модуль использующий код этой библиотеки. Т.е. нужно чтобы среда сама следила за изменениями в заголовочных файлах и lib'ах без их ручного обновления. Спасибо.
     
  9. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
    Project Dependies
     
  10. dmicarus

    dmicarus New Member

    Публикаций:
    0
    Регистрация:
    25 май 2009
    Сообщения:
    17
    Разобрался. В солюшн можно добавлять-убирать проекты, выставлять зависимости.
     
  11. MirrorBlack

    MirrorBlack Алексей

    Публикаций:
    0
    Регистрация:
    21 июн 2008
    Сообщения:
    249
    Адрес:
    Moscow
    Есть структура FILETIME содержащая 2 DWORD, и надо вычесть некое значение.
    И вот не могу разобраться как сделать вычитание с заёмом.
    На что меня пока хватило:

    int lw = ft.dwLowDateTime;
    int hw = ft.dwHighDateTime;
    if ((lw -= 55) < 0)
    hw--;
    hw -= 10;
    (чушня конечно)

    Как написать чтоб скомпилировалось:
    sub ft.dwLowDateTime,55
    sbb ft.dwHighDateTime,10
     
  12. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    http://msdn.microsoft.com/en-us/library/ms724284(VS.85).aspx

     
  13. MirrorBlack

    MirrorBlack Алексей

    Публикаций:
    0
    Регистрация:
    21 июн 2008
    Сообщения:
    249
    Адрес:
    Moscow
    Booster
    Всё это конечно здорово (я даже создал структуру FILETIMEUI)
    Но как быть в случаях когда 3, 10 , 20 входных DWORD?
     
  14. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    MirrorBlack
    Делать свою алгебру.
     
  15. MirrorBlack

    MirrorBlack Алексей

    Публикаций:
    0
    Регистрация:
    21 июн 2008
    Сообщения:
    249
    Адрес:
    Moscow
    Booster
    Шутку понял, смешно...
     
  16. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    MirrorBlack
    Никаких шуток - это как раз самый оптимальный путь позволяющий максимально адаптировать кучу возможных вариантов к своему ТЗ :))
    Но можно и уподобится дельфисту и поискать готовый компонент: Google <- длинная арифметика С++
     
  17. MirrorBlack

    MirrorBlack Алексей

    Публикаций:
    0
    Регистрация:
    21 июн 2008
    Сообщения:
    249
    Адрес:
    Moscow
    Позвольте ещё вопросик.
    После изменения структуры FILETIME в WinDef.h на:
    typedef union _FILETIME {
    struct{
    DWORD dwLowDateTime; /* low 32 bits */
    DWORD dwHighDateTime; /* high 32 bits */
    };
    ULONGLONG QuadPart;
    } FILETIME, *PFILETIME, *LPFILETIME;

    В структуре WIN32_FIND_DATA поле ftCreationTime изменило своё смещение на +8 (должно быть +4)
    Почему?
     
  18. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Потому что данные в структурах выравниваются в целях оптимизации так, чтобы доступ к любому члену был выровнен. ULONGLONG - 64 бита и доступ к нему должен быть выровнен на эту же величину.
     
  19. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    MirrorBlack
    Вообще фигню затеял, не стоит менять FILETIME. ^)
     
  20. MirrorBlack

    MirrorBlack Алексей

    Публикаций:
    0
    Регистрация:
    21 июн 2008
    Сообщения:
    249
    Адрес:
    Moscow
    Booster
    Может конечно и фигню, но всё равно интересно, почему пошёл сдвиг по "фазе".