Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Результаты опроса: Понравилась ли вам загадка
Афтар, давай исчё 4 15.38%
Надо бы тоже попробывать 4 15.38%
А-а-а, нафиг. Пофиг 11 42.31%
Кому это надо? 6 23.08%
КГ/АМ 1 3.85%
Голосовавшие: 26. Вы ещё не голосовали в этом опросе

Ответ
 
Опции темы Поиск в этой теме
Старый 24.09.2010, 22:01   #1
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,281
Подмигивание Что же я написал?

Тема - загадка. Возростные ограничения (для среднестатистического человека): от 14 до 50 лет.

Петя программист в одной солидной фирме занимающейся *******. Однажды его срочно вызвали на работу в воскресенье. Ему позвонил начальник, и умолял приехать. В понедельник нужно было сдавать работу заказчику, а как на зло ударила молния, и погарели сервера. Один из модуле восстановить не удалось.
Начальник был уверен, что никто кроме Пети до завтра модуль написать заного не успеет. Петя был добрым человеком и не смог отказать. Проблема была в том, что Петя очень весело проводил выходные и был бухой.
Но выработанная годами привычка кодить под шафэ дала свои плоды.
За успешно выполненую работу начальник угостил Петю хорошим коньяком. От чего Петя вышел на работу только в среду. Его все благодарили, говорили какой он молодец. А он не мог вспомнить даже то, куда он поехал с вечеринки в воскресенье. Потом он вкупился в суть происходящего и побежал в кабинет. Запустил комп, открыл проект и увидел это
Код:
unit Unit2;

interface

uses
  SysUtils;

type
  TType1 = record
    F1: Real;
    F2: Int64;
    F3: Int64;
  end;

  TType2 = record
    F1: String;
    F2: String;
    F3: Cardinal;
  end;

TCardinalArray = array of Cardinal;

TType2Array = array of TType2;

procedure Proc1 (v: TType1; var s1, s2: String);

function Func1 (a: TType1): TType1;

function Func2 (a, b: TType1): TType1;

function Func3 (a, b: TType1): TType1;

function Func4 (n: String): TType2;

var
  Type2Array: TType2Array;

implementation

function Func4 (n: String): TType2;
var
  i1, i2: Integer;
begin
  Result.F1 := #127;
  Result.F2 := 'NoName';
  Result.F3 := 0;

  i2 := Length (Type2Array) - 1;
  for i1 := 0 to i2 do begin
    if Type2Array[i1].F1 = n then begin
      Result.F1 := n;
      Result.F2 := Type2Array[i1].F2;
      Result.F3 := Type2Array[i1].F3;
      Break;
    end;
  end;
end;

procedure Proc1 (v: TType1; var s1, s2: String);
var
  i1, i2, i3: Integer;
  c1: Cardinal;
  i4, i5: Int64;
begin
  i4 := v.F2;
  i5 := v.F3;

  if i5 = 0 then begin
    s1 := 'Error';
    s2 := 'Error';
    Exit;
  end;

  if (i4 = 0) or (v.F1 = 0) then begin
    s1 := '';
    s2 := '';
    Exit;
  end;

  s1 := '';
  s2 := '';

  i2 := Length (Type2Array) - 1;
  for i1 := 0 to i2 do begin
    c1 := Type2Array[i1].F3;
    i3 := 0;
    while (i4 mod c1) = 0 do begin
      i3 := i3 + 1;
      i4 := i4 div c1;
    end;
    case i3 of
      0: ;
      1: s1 := s1 + #183 + Type2Array[i1].F1;
      else
        s1 := s1 + #183 + Type2Array[i1].F1 + '^' + IntToStr(i3);
    end;
    i3 := 0;
    while (i5 mod c1) = 0 do begin
      i3 := i3 + 1;
      i5 := i5 div c1;
    end;
    case i3 of
      0: ;
      1: s2 := s2 + #183 + Type2Array[i1].F1;
      else
        s2 := s2 + #183 + Type2Array[i1].F1 + '^' + IntToStr(i3);
    end;
  end;

  s1 := Copy (s1, 2, Length(s1)-1);
  s2 := Copy (s2, 2, Length(s2)-1);
end;

function Func2 (a, b: TType1): TType1;
begin
  a := Func1 (a);
  b := Func1 (b);

  if (a.F2 = b.F2) and (a.F3 = b.F3) then begin
    Result.F1 := a.F1 + b.F1;
    Result.F2 := a.F2;
    Result.F3 := a.F3;
  end
  else begin
    Result.F1 := 0;
    Result.F2 := 0;
    Result.F3 := 0;
  end;
end;

function Func3 (a, b: TType1): TType1;
begin
  Result.F1 := a.F1 * b.F1;
  Result.F2 := a.F2 * b.F2;
  Result.F3 := a.F3 * b.F3;
  Result := Func1 (Result);
end;

function Func1 (a: TType1): TType1;
var
  i1, i2: Integer;
  c1: Cardinal;
begin
  if (a.F3 = 0) then begin
    Result.F1 := 0;
    Result.F2 := 0;
    Result.F3 := 0;
    Exit;
  end;

  if (a.F1 = 0) or (a.F2 = 0) then begin
    Result.F1 := 0;
    Result.F2 := 0;
    Result.F3 := 1;
    Exit;
  end;

  Result.F2 := 1;
  Result.F3 := 1;

  i2 := Length (Type2Array) - 1;
  for i1 := 0 to i2 do begin
    c1 := Type2Array[i1].F3;
    while (a.F2 mod c1) = 0 do begin
      if (a.F3 mod c1) = 0 then begin
        a.F2 := a.F2 div c1;
        a.F3 := a.F3 div c1;
      end
      else begin
        Result.F2 := Result.F2 * c1;
        a.F2 := a.F2 div c1;
      end;
    end;
    while (a.F3 mod c1) = 0 do begin
      Result.F3 := Result.F3 * c1;
      a.F3 := a.F3 div c1;
    end;
  end;

  Result.F1 := a.F1 * a.F2 / a.F3;
end;

end.
Бли-и-ин!!! Ни одного мнемонического имени. Что же я написал?

З.Ы.: Убедительная просьба. Если вы найдете решение очень быстро, скиньте ответ мне в личку. Я потом здесь обязательно правильный ответ напишу.
Sibedir вне форума Ответить с цитированием
Старый 24.09.2010, 22:13   #2
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Ему нужно на Джаву переходить, старшим обфускатором
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 24.09.2010, 22:20   #3
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,281
По умолчанию

Ага, и зарплату ему выдавать бухлом.
Хи-хи, mutabor, тут ваша подпись очень кстати.
Sibedir вне форума Ответить с цитированием
Старый 24.09.2010, 22:25   #4
Vikenty
Заслуженный флудер
Участник клуба
 
Аватар для Vikenty
 
Регистрация: 31.03.2010
Сообщений: 1,473
По умолчанию

Хороший анекдот
Vikenty вне форума Ответить с цитированием
Старый 24.09.2010, 22:40   #5
vasek123
Заблокирован
 
Регистрация: 21.11.2008
Сообщений: 4,988
Сообщение

Пора ему реабилитироваться и переходить на кефир...
vasek123 вне форума Ответить с цитированием
Старый 24.09.2010, 22:40   #6
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,033
По умолчанию

Недавно у меня в твиттере красовался твит:
Цитата:
Комментирую код пока не забыл как он работает. #govnokod #delphi #refactoring
... появились комменты:
Цитата:
//!TODO Убрать эту ****** в релизе
Цитата:
//Тут нуна в радианах, но мне лень переводить, процессору тоже.
и еще
Цитата:
//А вообще вместо этой штуки должна быть загрузка инфы из файла, эх мечты мечты...

Последний раз редактировалось Levsha100; 24.09.2010 в 22:49.
Levsha100 вне форума Ответить с цитированием
Старый 24.09.2010, 23:33   #7
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Простите за оффтоп, но раз уж затронули комментарии. Дословно не помню, изложу суть:

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

// будущему мне - Извини...
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 24.09.2010, 23:41   #8
Vikenty
Заслуженный флудер
Участник клуба
 
Аватар для Vikenty
 
Регистрация: 31.03.2010
Сообщений: 1,473
По умолчанию

Цитата:
Сообщение от mutabor Посмотреть сообщение
Простите за оффтоп, но раз уж затронули комментарии. Дословно не помню, изложу суть:

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

// будущему мне - Извини...
собака здесь лишняя

Последний раз редактировалось Vikenty; 24.09.2010 в 23:46.
Vikenty вне форума Ответить с цитированием
Старый 24.09.2010, 23:50   #9
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,281
По умолчанию

Раз уж речь о коментах пошла, вот, есть и такое мнение
http://www.gunsmoker.ru/2010/07/blog-post_31.html
Sibedir вне форума Ответить с цитированием
Старый 24.09.2010, 23:55   #10
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,033
По умолчанию

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

Цитата:
собака здесь лишняя
Есть собаки миллионеры, так что не надо.

Последний раз редактировалось Levsha100; 25.09.2010 в 00:08.
Levsha100 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написал прогу в паскаль в ответ после запуска выдает ошибку.Что не так? sawel23 Паскаль, Turbo Pascal, PascalABC.NET 5 27.05.2010 15:37
Написал редактор карт sasha1993 Gamedev - cоздание игр: Unity, OpenGL, DirectX 8 18.07.2009 21:31
вот задачка на массив не сложная.я написал но не хочет рабатать что то BERT Помощь студентам 4 10.03.2009 18:23
Написал прогу в паскале... deu4er Помощь студентам 2 19.11.2008 20:08
Написал бэкдор, оцените KORN Софт 7 18.11.2007 08:55