Delphi-кодеры ачата

Discussion in 'Болталка' started by Knight_of_Darkness, 13 Sep 2007.

  1. Ni0x

    Ni0x Elder - Старейшина

    Joined:
    27 Aug 2006
    Messages:
    338
    Likes Received:
    157
    Reputations:
    37
    Нужно поступить иначе просто. Для начала взять пару человек, сформировав костяк команды, зарелизить что-то действительно стоящее и тогда люди сами захотят вступить, остается только делать отбор в команду для повышения качества. Однако, такая методика не распространяется на команды новичков, так как у них банально не хватит знаний и опыта для релизинга чего-то стоящего.
     
  2. NeXArmAor

    NeXArmAor Banned

    Joined:
    21 Apr 2007
    Messages:
    226
    Likes Received:
    161
    Reputations:
    6
    Йа кодеркО,йа умею кодить делфы,базики,асмы...сейчас пишу криптор N-Code кто со мной,вперед....
     
  3. Joker-jar

    Joker-jar Elder - Старейшина

    Joined:
    11 Mar 2007
    Messages:
    581
    Likes Received:
    205
    Reputations:
    37
    Предлагаю самым рулезным делфи-кодерам решить очень интересную задачку.

    Задача: дана шахматная доска размером N на N. Найти количество расположений N ферзей на этой доске таким образом, чтобы ни один не находился под боем.

    Пример для N=4:

    0 * 0 0
    0 0 0 *
    * 0 0 0
    0 0 * 0

    0 0 * 0
    * 0 0 0
    0 0 0 *
    0 * 0 0

    Ответ: 2

    Есть интересный факт, который я раскрою после решения кем-то ;)
     
  4. Joker-jar

    Joker-jar Elder - Старейшина

    Joined:
    11 Mar 2007
    Messages:
    581
    Likes Received:
    205
    Reputations:
    37
    Хех, я всегда знал, что такие посты заглушают волную бестолкового флуда :) Часть "кодеров" убежала прочь с этой темы, часть погрузилась в делфи, нагревая свои черепные коробки. Программирование = знание синтаксиса + искусство решения задач. Кодер, обладающий только первым компонентом, несомненно может написать текстовый редактор, калькулятор и т.п., но он никогда не решит вышезапощенную задачу. Думать алгоритмически, строить в голове путь решения задачи - вот что я считаю главным в программировании. Такие программисты пишут стойкие, быстрые и красивые алгоритмы.
     
  5. Hormold

    Hormold Banned

    Joined:
    26 Jun 2007
    Messages:
    43
    Likes Received:
    9
    Reputations:
    -14
    Я программирую =)
    Но так ;)
    Делал mail-седер и другое =)
     
  6. Knight_of_Darkness

    Knight_of_Darkness Elder - Старейшина

    Joined:
    3 Feb 2007
    Messages:
    69
    Likes Received:
    68
    Reputations:
    24
    KEZ, не нравится - не смотри.
    Joker-jar и все вменяемые: да, идей есть действительно много, но я категорически против того, как это было с Zero Byte - весь проект держался на мне. Неужели нет энтузиастов на ачате? Полно! Как раз Delphi - тот язык, в котором можно работать коллективно, и вот моя первая идея. Надеюсь, они не пройдут даром и будут замечены администрацией, которая прислушается к идее о создании раздела.

    ZeroNews
    программа берет сдирает новости с сервиса google, rss-каналов, и автоматически постит их на сайт под учеткой админа. Заточить под основные скрипты, настроить работу в режиме демона. Алгоритм таков: Сначала она грузит страницу новостей и выделяет по заданным формулам обзоры в один массив, адреса картинок ака превью в другой. Дальше загружает страницы со ссылок и аналогичным образом выдирает полные тексты и полные картинки. После либо через php-скрипт сливает на собственную новостную ленту (свой двиг), либо чередой загрузок определенных страниц логинится под своей модераторской учеткой и таким же образом постит новости. Это один цикл. Далее. Можно програму натаскать на то, чтобы каждые 30 минут она проверяла новые новости и повторяла вышеописанное. Жду ваших поправок в алгоритме, и приступим.
     
  7. Piflit

    Piflit Banned

    Joined:
    11 Aug 2006
    Messages:
    1,249
    Likes Received:
    585
    Reputations:
    31
    Наши коллеги дельфисты оживились. Не к добру это. План такой. Делаем прогу AntiZeroNews, которая будет спамить "новости с сервиса google, rss-каналы" сообщениями, которые будут переполнять буффер ZeroNews'a во время сбора новостей и тот будет уходить в офф, предварительно отсылая на php скрипт кучу непонятных запросов, которые скрипт не сможет обработать, умрет и утянет за собой весь веб сервер. А мы в это время будем потирать ладошки и злобно хихикать.

    ЗЫ даешь холивар! =))
    ЗЫЫ не воспринимайте этот пост всерьез=)
    ЗЫЫЫ хотел запостить это в тему про с++, но ее снесли=\
    ЗЫЫЫЫ какой-то я бред написал ^^
     
  8. .Slip

    .Slip Elder - Старейшина

    Joined:
    16 Jan 2006
    Messages:
    1,571
    Likes Received:
    977
    Reputations:
    783
    Жесть... что дальше, кубасик?
     
  9. Piflit

    Piflit Banned

    Joined:
    11 Aug 2006
    Messages:
    1,249
    Likes Received:
    585
    Reputations:
    31
    html
     
  10. Knight_of_Darkness

    Knight_of_Darkness Elder - Старейшина

    Joined:
    3 Feb 2007
    Messages:
    69
    Likes Received:
    68
    Reputations:
    24
    Ты это решил, глядя на циферки? И кто вообще сказал о тиме? Я предполагал раздельчик, где будут отписываться энтузиасты, это не обязывает никого к постоянному участию.
     
  11. AL Capone

    AL Capone Elder - Старейшина

    Joined:
    27 Mar 2007
    Messages:
    28
    Likes Received:
    29
    Reputations:
    5
    ну тогда уж раздельчик для всех языков...А то сторонникам других языков будет обидно.
     
  12. Knight_of_Darkness

    Knight_of_Darkness Elder - Старейшина

    Joined:
    3 Feb 2007
    Messages:
    69
    Likes Received:
    68
    Reputations:
    24
    угу, релизы на хтмл рулят! %)
     
    #32 Knight_of_Darkness, 13 Sep 2007
    Last edited: 13 Sep 2007
  13. Zitt

    Zitt Elder - Старейшина

    Joined:
    7 May 2006
    Messages:
    736
    Likes Received:
    268
    Reputations:
    59
    давайте уже роботоф для зохвата человекоф+)
     
  14. FuckоFF

    FuckоFF Banned

    Joined:
    15 Aug 2007
    Messages:
    0
    Likes Received:
    10
    Reputations:
    0
    Terminator

    надо переписать ему систему что он не убивал человекоФ,кто возьмется?
     
  15. Ni0x

    Ni0x Elder - Старейшина

    Joined:
    27 Aug 2006
    Messages:
    338
    Likes Received:
    157
    Reputations:
    37
    Zitt,
    KeDestroyTheWorld( 0 );

    Knight_of_Darkness, даже по твоему сообщению все понятно, КАК ты хочешь заниматься одним проектом в группе человек? Каждый будет писать одно и тоже? Без координации ты не сделаешь ничего, а работа с координацией и есть командная, теперь ты понимаешь, что я имел ввиду? У тебя есть только желание, но не опыт.
     
    #35 Ni0x, 13 Sep 2007
    Last edited: 13 Sep 2007
  16. Knight_of_Darkness

    Knight_of_Darkness Elder - Старейшина

    Joined:
    3 Feb 2007
    Messages:
    69
    Likes Received:
    68
    Reputations:
    24
    Правильно, это никак не значит, что я набираю команду. Я лишь могу предложить, отписать алгоритм, сказать, каких функций не хватает, собрать программу. А кто сказал, что человек, участвующий сегодня будет продолжать завтра?

    Вобщем, сказанное тобой боян - с тобой никто не пытается спорить. Были бы люди и желание с их стороны.
     
    #36 Knight_of_Darkness, 13 Sep 2007
    Last edited: 13 Sep 2007
  17. The_HuliGun

    The_HuliGun Elder - Старейшина

    Joined:
    19 May 2007
    Messages:
    191
    Likes Received:
    84
    Reputations:
    11
    Решение задачи о ферзях.
    n = |1 |2 |3 |4 |5 |6 |7 |8 |9 |10 |11 |12 |13 | |
    L= |1 |0 |0 |2 |10 |4 |40 |92 |352 |724 |2680 |14200 |73712|
    n - сторона квадрата, L - количество решений.
    Если исходить из императивного программирования, то решение задачи может оказаться очень запутанным, а если следовать засадам декларативного программирования, то решение можно найти куда легче.
    Кто не понял о чем речь, читаем доки и не спрашываем ерунды.
     
  18. Knight_of_Darkness

    Knight_of_Darkness Elder - Старейшина

    Joined:
    3 Feb 2007
    Messages:
    69
    Likes Received:
    68
    Reputations:
    24
    The_HuliGun, может всё-таки выложишь более развернутый алгоритм на народное обозрение? А что касается стороны L=14?
     
  19. The_HuliGun

    The_HuliGun Elder - Старейшина

    Joined:
    19 May 2007
    Messages:
    191
    Likes Received:
    84
    Reputations:
    11
    Читаем сначала о Прологе, предикатах, логическом программировании, потом уже обсуждаем код
    Code:
    domains
    queen    = q(integer, integer)
    queens   = queen*
    freelist = integer*
    board    = board(queens, freelist, freelist, freelist, freelist)
    facts - counter
    single counter(integer)
    predicates
    nondeterm placeN(integer,board,board)
    nondeterm place_a_queen(integer,board,board)
    nondeterm nqueens(integer SizeOfBoard,integer NumberOfQ)
    nondeterm makelist(integer, freelist)
    nondeterm findandremove(integer, freelist, freelist)
    nextrow(integer, freelist, freelist)
    nondeterm rows(integer, freelist, freelist)
    
    clauses
    nqueens(N,Q):- 
        makelist(N,L),
        Diagonal=N*2-1,
        makelist(Diagonal,LL),
        rows(Q,L,Rows),
        placeN(N,board([],Rows,L,LL,LL),Final),
        Final=board(Queens,_,_,_,_),
        write(Queens),nl,
        counter(I),I1=I+1,assert(counter(I1)),
        fail;
        true.
    
    placeN(_,board(D,[],L,D1,D2),board(D,[],L,D1,D2)):- !.
    placeN(N,Board1,Result):- 
        place_a_queen(N,Board1,Board2),
        placeN(N,Board2,Result).
    
    place_a_queen(N,board(Queens,Rows,Columns,Diag1,Diag2),
             board([q(R,C)|Queens],NewR,NewC,NewD1,NewD2)):-
        nextrow(R,Rows,NewR),
        findandremove(C,Columns,NewC),D1=N+C-R,
        findandremove(D1,Diag1,NewD1),D2=R+C-1,
        findandremove(D2,Diag2,NewD2).
    
    findandremove(X,[X|Rest],Rest).
    findandremove(X,[Y|Rest],[Y|Tail]):- findandremove(X,Rest,Tail).
    
    makelist(1,[1]).
    makelist(N,[N|Rest]):- N>1,N1=N-1, makelist(N1,Rest).
    
    nextrow(Row,[Row|Rest],Rest).
    
    rows(0,_,[]).
    rows(N,[R|L],[R|S]):- N1=N-1,rows(N1,L,S).
    rows(N,[_|L],S):- N>0,rows(N,L,S).
    
    counter(0).
    goal
    nqueens(4,2),counter(N),write(N),exit.
    
    Пример взят для Visual Prolog 5.2
     
  20. Joker-jar

    Joker-jar Elder - Старейшина

    Joined:
    11 Mar 2007
    Messages:
    581
    Likes Received:
    205
    Reputations:
    37
    Вот как эту зудучу решил я, код на Делфи (о ней же все-таки тема). Для наглядности рисую и доски, хотя это не нужно, главное - число.
    Code:
    program Ferzi;
    
    {$APPTYPE CONSOLE}
    
    uses
      SysUtils;
    
    const
      Ferz = '*';
      Empty = '1';
      War = '0';
      N=4;
    
    type
      TDoska = array[1..N, 1..N] of char;
    
    var
      Count: word;
      Dos: TDoska;
    
    function SetFerz(D: TDoska; i,k: word): TDoska;
    var
      i1,k1: word;
    begin
      result := D;
      if (i>N)or(k>N) then exit;
      if result[i,k]<>Empty then exit;
      for i1:=1 to n do
        for k1:=1 to n do
          begin
            if result[i1,k1]=Empty then
            begin
              if (i1 = i)or(k1 = k) then result[i1,k1] := War;
              if (i1-i=k1-k) then result[i1,k1] := War;
              if (k1+i1=i+k) then result[i1,k1] := War;
            end;
          end;
      result[i,k] := Ferz;
    end;
    
    procedure ShowDoska(D: TDoska);
    var
      i,k: word;
    begin
      for i := 1 to n do
        begin
          writeln;
          for k:=1 to n do
          write(D[i,k]:2);
        end;
     writeln;
    end;
    
    procedure Perestanovka(D: TDoska; h, c: integer);
    var
      i,k: word;
    begin
      if c = N then
        begin
          ShowDoska(D);
          inc(Count);
        end;
      for k := 1 to N do
        begin
          if h < N then
          if D[h+1,k]=Empty then
          Perestanovka(SetFerz(D,h+1,k),h+1,c+1);
        end;
    end;
    
    begin
      FillChar(Dos,sqr(N),Empty);
      Perestanovka(Dos, 0, 0);
      writeln(#13#10,Count);
      readln;
    end.
    
    Решал ее в прошлом году, признаюсь, поначалу никаких идей по поводу решения не было. А теперь о фактах. Эта задача была в финале чемпионата мира по программированию 1989 года :)