Внимание! Сайт не обновлялся более 3х лет!
Перейти в портфолио компании

Глум над юными кодерами

10 марта 2012

Очень неприятная ситуация складывается в институтах в плане изучения искусства писать код.

Можно еще понять, если преподаватель просто ничего не знает, но когда он, ничего не зная, читает за ночь "Delphi для чайников" и идет учить с гордо поднятой головой - тут то и становится ясно в чем весь ужас ламеров.

Код, который я представил в данной статье является извращенством высшего сорта. Я не удивлюсь, если люди, которые пишут такой код не осознавая, что "что-то сдесь не так" - извращенцы редкие)))).

Итак, перейдем к делу. А точнее к коду.

 

Задача:

Написать модель работы лифта

 

Язык/средства:

Delphi

 

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

 

Начнем.

Обычная практика, "пишите лифт!". (Обычно на этом и заканчивается постановка задачи)

И вот что мы пишем в течении недели (ну или в течении 3-х бессонных суток, если вы преданы своему делу)

Около 800 строк кода

Показать код
 

Все прочитали? хД, Я не осилил и половины, тут ведь код, и ничего более)))

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

Вообщем я немного оптимизировал его, функционирует совершенно так же,

"Слегка" Оптимизированный код, выполняющий те же функции

procedure TForm1.SpeedButton1Click(Sender: TObject);
var Index, i:integer;
begin
  Index := StrToInt(Copy(TButton(Sender).Caption,
    Length(TButton(Sender).Caption)-1,1));
  if Index = TrackBar1.Position then exit;
  Caption := 'Лифт движется на '+IntToStr(Index)+' этаж!';
  if Index > TrackBar1.Position then
  begin
      for i:= TrackBar1.Position to Index do
      begin
          TrackBar1.Position := i;
          Sleep(1000);
      end;
  end else begin
      for i:= TrackBar1.Position downto Index do
      begin
          TrackBar1.Position := i;
          Sleep(1000);
      end;
  end;
  Caption := 'Лифт ожидает команды';
end;

Вся горечь и печаль заключается не в том, что они тратят непозволительно много времени на эту бурду, а в том, что многие из них навсегда формируют мнение о профессии, соответствующее вышепредставленному 800-строковому тупейшему коду. Как ни странно в группе, представитель которой набирал этот код, осталось не меньше, не больше, а ровно 5 студентов.

5 из 32!

Хотите освоить ремесло программиста? Тогда учебные заведения не для вас)))

← назад