Новые книги

Книга «Как навести порядок в своем бизнесе» – это система практических инструментов, которые позволят вам наладить бизнес. Так, чтобы он:

• приносил хорошую прибыль;

• стал более конкурентоспособным и устойчивым к кризисам;

• стабильно работал и развивался;

• практически не зависел от человеческого фактора сотрудников;

• требовал от владельца минимального контроля.

Конкретные техники и рекомендации:

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

• 123 примера и комментария от владельцев и руководителей компаний;

• 418 примеров из практики автора;

Книга – для собственников и топ-менеджеров: от крупных холдингов до средних и малых компаний. С 2010 года она стала настольной во многих организациях.

Также книга будет полезна бизнес-консультантам и тренерам.

Михаил Рыбаков (

) – бизнес-консультант, модератор стратегических сессий. Основатель команды «Михаил Рыбаков и Партнеры». В бизнесе с 1997 года. Автор двух деловых бестселлеров, фильма «От карьеры к свободе», сотен публикаций, организатор ежегодных бизнес-мероприятий в России и за рубежом. Два образования – системный аналитик (экономика, ИТ) и психолог. Помогает владельцам и управленческим командам частных рыночных компаний русскоязычного пространства.

9-е издание.

empty-line

7

empty-line

12

empty-line

15

http://www.mrybakov.ru

nofollow

www.mrybakov.ru
Книга предназначена для читателей, знакомых с понятием финансовых рынков, практикующих трейдеров, индивидуальных инвесторов и управляющих инвестиционными портфелями. Она является, по сути, конспективным изложением 12 книг в одной. 12 известных мастеров-практиков написали по одной главе в этот сборник с целью дать представление читателю о своих методах и техниках работы на финансовых рынках, а именно, на рынках акций, валют (FOREX), облигаций, опционов и фьючерсов. Оценив изюминку метода и возможные граничные условия, читатель может перейти к углубленному изучению работ конкретного автора. Из участников сборника, в русском переводе есть только четыре автора. Работы других, несмотря на их известность в США, практически неизвестны российскому читателю, хотя их методики поистине уникальны, а иногда и революционны. В книге приведено множество реальных примеров, позволяющих оценить эффективность предлагаемых подходов.

Для финансистов, инвестиционных стратегов, технических аналитиков рынка, а также индивидуальных инвесторов, самостоятельно выходящих на финансовые рынки мира и России, чтение этой книги будет чрезвычайно полезным, а может быть и просто необходимым.

Тексты программ на Паскале

Тексты программ на Паскале


  { Программа решения задачи об n ферзях перебором с возвратом }
  program BacktrackQueens;
  var
      n : integer; { размер доски }
  queen : array[1..100] of integer; { массив положений ферзей }

  { Процедура печати решения }
  procedure WriteSolution;
  var
     i : integer;
  begin
     for i := 1  to n  do
         Write(queen[i],' ');
     WriteLn
  end;

  { Функция проверки совместимости m-го ферзя с предыдущими }
  function Check(m : integer) : boolean;
  var
      i : integer;
  begin
    for i := 1  to m-1  do
      if (queen[i] = queen[m]) { совпадают горизонтали }
       Or (i+queen[i] = m+queen[m]) { нисходящие диагонали }
       Or (i-queen[i] = m-queen[m]) { восходящие диагонали }
        then begin
         Check := False; Exit;
      end;
    Check := True;
  end;

  { Процедура, осуществляющая перебор }
  procedure Backtrack(m : integer);
  var
      i : integer;
  begin
     if m > n  then { найдено решение }
         WriteSolution
     else
        for i := 1  to n  do begin
           queen[m] := i;
           if Check(m) { m-ый ферзь не бьёт предыдущих }  then
                   Backtrack(m+1);
        end;
  end;

  begin
     Write('Размер доски? '); Read(n);
     Backtrack(1)
  end.



  { Программа решения задачи об n ферзях перебором
     с распостранением ограничений и просмотром вперёд }
  program PropagateQueens;
  var
      n : integer; { размер доски }
      queen : array[1..160] of integer; { массив положений ферзей }
      space : array[1..160,1..160] of integer;{пространство перебора}
      step : array[1..160] of integer; { порядок выбора ферзей }
      cases : array[1..160] of integer; { количество вариантов }

  { Процедура печати решения }
  procedure WriteSolution;
  var
      i : integer;
  begin
     for i := 1  to n  do
         Write(queen[i],' ');
     WriteLn
  end;

  { Процедура сокращения пространства перебора }
  procedure Prune(qm,queen,m : integer);
  var i, nq : integer;
    procedure ExcludeField(queen : integer);
    begin
       if (queen >= 1) and (queen <= n)  then
          if space[nq,queen] := 0  then begin
              Dec(cases[nq]); space[nq,queen] := m;
          end;
    end;
  begin
      for i := m+1  to n  do begin
          nq := step[i];
          ExcludeField(queen); { на той же горизонтали }
          ExcludeField(queen+nq-qm); { на той же диагонали }
          ExcludeField(queen-nq+qm);
      end;
  end;

  { Процедура восстановления пространства перебора }
  procedure Restore(qm,queen,m : integer);
  var i, nq : integer;
    procedure IncludeField(queen : integer);
    begin
       if (queen >= 1) and (queen <= n)  then
          if space[nq,queen] = m  then begin
              Inc(cases[nq]); space[nq,queen] = 0;
          end;
    end;
  begin
     for i := m+1  to n  do begin
         nq := step[i];
         IncludeField(queen); { на той же горизонтали }
         IncludeField(queen+nq-qm); { на той же диагонали }
         IncludeField(queen-nq+qm);
     end;
  end;

  var minq, l : integer;
  procedure Propagate(m : integer);
  var i, qm : integer;
  begin
     if m > n  then
         WriteSolution
     else begin
        { Выбирается ферзь с наименьшим количеством вариантов }
        minq := n+1;
        for i := m  to n  do
              if cases[step[i]] <= minq  then begin
                  l := i; qm := step[l]; minq := cases[qm];
              end;
        step[l] := step[m]; step[m] := qm;
        for i := 1  to n  do
             if space[qm,i] = 0  then begin
                queen[qm] := i;
                Prune(qm,i,m);
                Propagate(m+1);
                Restore(qm,i,m);
             end;
     end;
  end;

  var i, j : integer;
  begin
  Write('Размер доски? '); Read(n);
  for i := 1  to n  do begin
     for j := 1  to n  do
         space[i,j] := 0;
     step[i] := i; cases[i] := n;
  end;
  Propagate(1)
  end.

Следующая часть, Содержание