Форум: "Прочее";
Текущий архив: 2007.12.23;
Скачать: [xml.tar.bz2];
ВнизОцените код 2 Найти похожие ветки
← →
@!!ex © (2007-11-23 13:48) [0]Собственно по моему коду все уже опнятно, занимаюсь исправлением идиотских мест.
Интересно было бы услышать комменты по этому коду:procedure delet (var l:spisok; m: string);
var a,b : spisok;
begin bl:=false;
if l<>nil then begin
if l^.info=m then begin
a:=l;
l:=l^.next; bl:=true;
dispose(a);
end
else begin
b:=l;
while (bl=false) and (b^.next<>nil) do begin
if b^.next^.info=m then begin
a:=b^.next;
b^.next:=a^.next; bl:=true;
dispose(a);
end
else
b:=b^.next;
end;
end;
end;
end;
← →
turbouser © (2007-11-23 13:56) [1]1) a,b,l,m,bl - дать адекватные имена
2) begin bl:=false; разнести на 2 строчки
3) if l<>nil then begin if l^.info=m then begin можно и в одну строку сделать
← →
Котик Б (2007-11-23 14:04) [2]Я так понимаю в лице Мастеров Delphi Вы нашли бесплатный рефакторинг ?
← →
homm © (2007-11-23 14:04) [3]> [1] turbouser © (23.11.07 13:56)
> if l<>nil then begin if l^.info=m then begin можно и в
> одну строку сделать
А лучше не делать
> if l<>nil then begin
> if l^.info=m then begin
Не желей пробеловif l <> nil then begin
if l^.info = m then begin
Что такое spisok? Это указатель? Плохое имя для указателя. PSpisok.
Зачем var l, если это и так указтель? Если хочеш вернуть значение, сделай функцию. А то хорошо плучается, передал список, указал удалить и он невалидный стал.
← →
Zeqfreed © (2007-11-23 14:08) [4]
procedure Delete(var list : PMyList; m : String);
var
tmp, node : PMyList;
begin
bl := false; //Глобальная переменная с таким говорящим названием?
if not Assigned(list) then Exit;
node := list;
while Assigned(node^.next) and (node^.next^.info <> m) do
node := node^.next;
if Assigned(node^.next) and (node^.next^.info = m) then begin
tmp := node^.next^;
node^.next := tmp^.next;
Dispose(tmp);
bl := true;
end;
end;
Примерно так я бы написал.
← →
homm © (2007-11-23 14:11) [5]> [4] Zeqfreed © (23.11.07 14:08)
> var list
Вар можно убрать теперь :)
← →
Zeqfreed © (2007-11-23 14:11) [6]> homm © (23.11.07 14:11) [5]
Даже нужно :)
← →
@!!ex © (2007-11-23 14:12) [7]> [2] Котик Б (23.11.07 14:04)
1) Это не мой код.
2) Мне код не рефакторили, а указывали на неправильные места, если вы внимания не обратили.
3) Вы тут никакого участия не принимаете, чего возмущаетесь?
← →
Zeqfreed © (2007-11-23 14:15) [8]И вообще, bl надо убрать и возвращать булев результат из функции.
← →
Anatoly Podgoretsky © (2007-11-23 14:32) [9]> @!!ex (23.11.2007 13:48:00) [0]
Какие то странные имена, какие то глобальные переменные. Код трудно читаемый и трудно понимаемый для постороннего глаза. Нет отступов в блоках.
← →
DrPass © (2007-11-23 15:20) [10]...и еще пора избавляться от дурацкой студенческой привычки писать begin в той же строке, что и предыдущий оператор
← →
@!!ex © (2007-11-23 15:56) [11]> [10] DrPass © (23.11.07 15:20)
Разве это плохо?
Я наоборот всю жизнб писал на следующей строчке, а в ВУЗе переучили ставить на туже строчку...
← →
Anatoly Podgoretsky © (2007-11-23 16:02) [12]> @!!ex (23.11.2007 15:56:11) [11]
Не знаю, никогда не видел рекомендаций писать два оператора на одной строке, странный какой то ВУЗ - беги ты оттуда, плохому научат.
> l:=l^.next; bl:=true;
← →
homm © (2007-11-23 16:07) [13]> [10] DrPass © (23.11.07 15:20)
> ...и еще пора избавляться от дурацкой студенческой привычки
> писать begin в той же строке, что и предыдущий оператор
Не надо. Незачем раздувать код во вертикали, вставая бессмысленные элементы. Стоит там begin или не вполне видно по следующей строке, если взять за правило всегда ставить перенос строки и деать отступ после begin.
← →
@!!ex © (2007-11-23 16:16) [14]> > l:=l^.next; bl:=true;
Я так не пишу никогда. Это ИМХО очень не читабельно.
А вот против begin на той же строчке не вижу ничего плохого...
Буду благодарен, если расскажите, почему плохо это плохо...
← →
DVM © (2007-11-23 16:28) [15]
> Не надо. Незачем раздувать код во вертикали, вставая бессмысленные
> элементы.
В VCL везде с новой строки ставят.
← →
@!!ex © (2007-11-23 16:31) [16]> [15] DVM © (23.11.07 16:28)
И что это значит?
← →
J_f_S (2007-11-23 16:33) [17]
> Не надо. Незачем раздувать код во вертикали, вставая бессмысленные
> элементы. Стоит там begin или не вполне видно по следующей
> строке, если взять за правило всегда ставить перенос строки
> и деать отступ после begin.
Вот экономить на символах перевода строк и пробелах не надо точно. Читаемость текста повышается в разы.
← →
clickmaker © (2007-11-23 16:35) [18]C vs Delphi
if (true)
{
}
if true then
begin
end
или
if (true) {
}
if true then begin
end
← →
DVM © (2007-11-23 16:37) [19]
> @!!ex © (23.11.07 16:31) [16]
> И что это значит?
Это значит, что begin ставят с новой строки. Лучше придерживаться традиций.
← →
J_f_S (2007-11-23 16:39) [20]Не в обиду, но код из 0 действительно напоминает "код" студента из среднестатистического ВУЗа...
Граммитические ошибки в английских словах, транслит (это жесть), экономия на пробелах и переодах строк, несколько опереаторов в одной строке, отсутствие комментариев, имена вспомогательных переменных типа a,b,c...
← →
Anatoly Podgoretsky © (2007-11-23 16:40) [21]> @!!ex (23.11.2007 16:16:14) [14]
Чего рассказывать то?
Я пишу на одной строке с if что бы получить структуру
if ... then begin
..
else begin
..
end"
Но могу написать и
if ... then
begin
..
end;
Если будут требования, то буду писать по требованиям.
← →
@!!ex © (2007-11-23 16:40) [22]> [19] DVM © (23.11.07 16:37)
Традиции везде разные.
← →
J_f_S (2007-11-23 16:40) [23]Граммитические = Грамматические
;)
← →
Kolan © (2007-11-23 16:41) [24]> Интересно было бы услышать комменты по этому коду:
Полное гэ. (одно название че стоит), такое лучьше никому не показывать, элеметарные ошибки из прошлой ветки мог бы и исправить…
← →
DVM © (2007-11-23 16:41) [25]
> Традиции везде разные.
это понятно, но, думаю никто не будет против, если твой код будет подражать во всем VCL.
← →
@!!ex © (2007-11-23 16:43) [26]Итак. Собственно почему я создал вторую тему с кодом.
Я подрабатываю репетитором информатики. Преподаю в основном всякую начальную ерунду, тем кто совсем не в теме.
После разборов в теме "Оцените код" у меня появились большие сомнения в том, что я имею право кому то что-то преподавать...
Код приведенный в данной теме - написано официальным ПРЕПОДАВАТЕЛЕМ ВУЗа, причем ВУЗа выдающего дипломы международного образца...
← →
homm © (2007-11-23 16:44) [27]> [17] J_f_S (23.11.07 16:33)
> Вот экономить на символах перевода строк и пробелах не надо
> точно. Читаемость текста повышается в разы.
Я не предлагаю экономить, я говорю «не раздувать бесдумно» разница есть.
> [19] DVM © (23.11.07 16:37)
> Лучше придерживаться традиций.
Жертвоприношение знаем? тоже лучше?
> [25] DVM © (23.11.07 16:41)
> это понятно, но, думаю никто не будет против, если твой
> код будет подражать во всем VCL.
Предлагаю подрожать во всем, кроме этого ;)
← →
Германн © (2007-11-23 16:45) [28]
> Anatoly Podgoretsky © (23.11.07 16:02) [12]
А вот так пишу я:
adr:=o2;bdc;wrc:=$84;ind2;
if(scala=1) then begin
adr:=co*10;adr:=adr div 8;
end else adr:=co;
bdc;wrc:=$8f;ind1;
adr:=co2;bdc;wrc:=$c4;ind2;
:)))
← →
DVM © (2007-11-23 16:45) [29]
> @!!ex © (23.11.07 16:43) [26]
печально
← →
Dennis I. Komarov © (2007-11-23 16:46) [30]> [21] Anatoly Podgoretsky © (23.11.07 16:40)
+1
← →
homm © (2007-11-23 16:46) [31]> [28] Германн © (23.11.07 16:45)
> А вот так пишу я:
Это вырезка из скомпилиного экзешника? Нет? А похожа %)
← →
Германн © (2007-11-23 16:49) [32]
> Это вырезка из скомпилиного экзешника?
Да.
← →
DVM © (2007-11-23 16:49) [33]
> Германн © (23.11.07 16:45) [28]
Так не лучше?
Adr := o2;
Bdc;
Wrc := $84;
Ind2;
if Scala = 1 then
begin
Adr := co * 10;
Adr := Adr div 8;
end
else
Adr := co;
Bdc;
Wrc := $8f;
Ind1;
Adr := co2;
Bdc;
Wrc := $c4;
Ind2;
← →
DVM © (2007-11-23 16:50) [34]
> Это вырезка из скомпилиного экзешника?
это скриншот окна скомпиленного экзешника кверху ногами.
← →
Kolan © (2007-11-23 16:50) [35]> Код приведенный в данной теме — написано официальным ПРЕПОДАВАТЕЛЕМ
> ВУЗа, причем ВУЗа выдающего дипломы международного образца…
Ну и че, все преподы что я знал так пишут, они не профессионалы, это как семинар Лебедева/Горбунова и пребод по дизайну в универе разница огромна.
← →
Германн © (2007-11-23 16:58) [36]
> DVM © (23.11.07 16:49) [33]
>
>
> > Германн © (23.11.07 16:45) [28]
>
>
> Так не лучше?
>
Неа.
А знаешь какая жаба меня душила, когда я делал отступ после в блоке begin end?
← →
Anatoly Podgoretsky © (2007-11-23 17:00) [37]> @!!ex (23.11.2007 16:43:26) [26]
Международного образца - то есть печать.
← →
Anatoly Podgoretsky © (2007-11-23 17:01) [38]> Германн (23.11.2007 16:45:28) [28]
Жалко, столько строчек испортил, не мог обойтись одной?
← →
Германн © (2007-11-23 17:04) [39]
> Anatoly Podgoretsky © (23.11.07 17:01) [38]
Не мог. Все-таки хоть как-то нужно это читать.
:-)
Но мой вариант таки на 30 лучше, чем вариант [33].
← →
Anatoly Podgoretsky © (2007-11-23 19:05) [40]> Германн (23.11.2007 16:58:36) [36]
Пробелы было жалко?
Страницы: 1 2 вся ветка
Форум: "Прочее";
Текущий архив: 2007.12.23;
Скачать: [xml.tar.bz2];
Память: 0.55 MB
Время: 0.044 c