Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Удобочитаемый код  (Прочитано 611 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Napitok

  • Автор темы
  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
    • Мой блог
Удобочитаемый код
« : 07 Март 2010, 20:43:21 »
Я учусь программировать на паскале. Хочу сразу учится писать "в хорошем стиле" и сходя из этого возникает просьба:  посмотрите код ниже и скажите достаточно ли удобно его читать и какие вещи сразу мне следует учитывать. Сам код очень простой и задачка очень простая, это я знаю, но меня интересует именно как вид записи можно считать "хорошим стилем".

var
a,b,c: real;
begin
writeln ('Задача: Ответить на вопрос: правда ли, что данные отрезки могут образовать треугольник?');
writeln ('Введите длину первого отрезка ');
readln (a);
if a<=0 then begin
writeln ('Вы ввели недопустимое значение. Программа завершает работу.')
end
else begin writeln ('Введите длину второго отрезка ');
readln (b);
if b<=0 then begin
  writeln ('Вы ввели недопустимое значение. Программа завершает работу.')
  end
else begin writeln ('Введите длину третьего отрезка ');
  readln (c);
  if c<=0 then begin
   writeln ('Вы ввели недопустимое значение. Программа завершает работу.')
   end
  else begin if a>=b+c then begin
writeln ('Не правда')
end
   else if b>=a+c then begin
             writeln ('Не правда')
   end
          else begin
               if c>=a+b then begin
      writeln ('Не правда')
      end
                     else begin
                          writeln ('Правда')
                                      end;
                        end;
                end;
end;
end;                        
writeln ('Для завершения программы нажмите клавишу "Enter".');
readln
end.

Оффлайн БТР

  • Заслуженный пользователь
  • Модератор форума
  • Старожил
  • *
  • Сообщений: 5116
    • Просмотр профиля
Re: Удобочитаемый код
« Ответ #1 : 07 Март 2010, 21:13:50 »
Плохой код.
Названия программы нет, ни одного комментария, невообразимая табуляция.
Это я не касаясь реализации, чисто внешне.

Оффлайн axe

  • Старожил
  • *
  • Сообщений: 1203
    • Просмотр профиля
Re: Удобочитаемый код
« Ответ #2 : 07 Март 2010, 21:25:56 »
С точки зрения оформления кода все терпимо. В крошечной программе, выполняющей очевидное, комментарии и не нужны - достаточно self-documenting code.

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

То, что ты написал, я бы назвал классическим "китайским" кодом - когда все делается на совесть, но без малейших попыток оптимизации и мыслей о качестве кода с точки зрения "идеалов" :).

Я вижу здесь как минимум 2 логических блока:
1) Получение одной стороны треугольника от пользователя, проверка введенного значения на допустимость.
2) Собственно назначение программы: проверка, образуют ли 3 введенных значения стороны треугольника (тут, кстати, я уверен, тоже возможна оптимизация. На вскидку - достаточно проверить, что наибольшая сторона меньше суммы других, а не проверять все подряд)
Соответственно, в хорошей программе здесь должно быть 2 функции и main, которая организует взаимодействие с пользователем.
« Последнее редактирование: 07 Март 2010, 22:02:16 от axe »

Оффлайн Napitok

  • Автор темы
  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
    • Мой блог
Re: Удобочитаемый код
« Ответ #3 : 07 Март 2010, 21:56:36 »
Спасибо,буду учится дальше :)

Оффлайн БТР

  • Заслуженный пользователь
  • Модератор форума
  • Старожил
  • *
  • Сообщений: 5116
    • Просмотр профиля
Re: Удобочитаемый код
« Ответ #4 : 07 Март 2010, 21:59:41 »
Спасибо,буду учится дальше :)

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

 

Страница сгенерирована за 0.056 секунд. Запросов: 24.