Re: Здраствуйте не поможите правельно создать процедуру

2008-11-11 Пенетрантность Кузнецов Евгений
Доброго времени суток!

On 11 нояб, 11:48, WildSery wrote:
>
> А вот контрпример к твоему правилу:
>
> while (some calculations) do
>   i = i + 1;
> begin
>   -- А тут тоже чёта делаем
> end
>
> begin, "на глазок" и с точки зрения твоего видения синтаксиса, относится к 
> while, тогда как нет, не относится.

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

--
С уважением, Евгений

Re: Здраствуйте не поможите правельно создать процедуру

2008-11-11 Пенетрантность WildSery

On Fri, 31 Oct 2008 12:24:12 +0300, Dmitri Kuzmenko <[EMAIL PROTECTED]> wrote:

> while  do begin
>   ...
>   ...
>   ... еще 10 строк
>   ...
>   ...
> end;
> 
> это я еще сюда отступов добавил. А так, ты уверен, что не проглядел в 
> середине этого текста вот такую хрень:
> if  then begin
> end;

Это вообще не аргумент. Потому что сугубо субьективен.
Да, я уверен. Потому что отступ. И мой END всегда находится на уровне того 
оператора, который завершает (WHILE).

А вот контрпример к твоему правилу:

while (some calculations) do
  i = i + 1;
begin
  -- А тут тоже чёта делаем
end

begin, "на глазок" и с точки зрения твоего видения синтаксиса, относится к 
while, тогда как нет, не относится.
Когда такое написание может быть обосновано? Да к примеру с конструкцией WHEN. 
Которая затем может быть убрана из кода. Или не убрана.

Или даже так:
while (some complicated calculations with changing values - for ex., executing 
stored proc) do;
begin
  -- А тут тоже чёта делаем
end

-- 
Сергей Смирнов.



Re: Здраствуйте не поможите правельно создать процедуру

2008-11-05 Пенетрантность Tonal


Dmitri Kuzmenko пишет:
Правильные пацаны давно составные конструкции одними отступами 
отмечают  (Python, Haskell).

то же дерьмо. я это уже кушал в Mumps.
F I=0..10 DO
.S A=I...

Из реального проекта:
  def walk_devices(self):
logging.info('Scan for timeouted device')
try:
  from reciver.save2base import _connect_curs
  curs = _connect_curs()
  dt = datetime.now() - timedelta(seconds=SEC_TIMEOUT)
  curs.execute(sel_timrout_devices, dt)
  for row in curs:
dev_id = row[0]
logging.info('Timeout for device %d', dev_id)
do_device(curs, dev_id)
  self.start()
except:
  logging.exception('Error for scan device')

П.С. И в С и в Pascal-е всегда писали и пишем именно в осуждаемом стиле. 

да никогда такого не было, чтобы begin писали на той же строке что и
if, when и так далее. Это какой-то сишник один раз применил, а потом
началось...

Я для паскаля такой стиль придумал ещё до плотного знакомства с С. :)
Именно из соображений компактности по вертикали - вспомни сколько строк 
текста вмещалось в редакторе Borland Pascal-я? ~20 а то и меньше.

Ну а в режиме отладки так вообще если строк 10 поместится - щастье.
Так что такой компактный стиль вполне оправдывался. :)
--
Александр Замараев



Re: Здраствуйте не поможите правельно создать процедуру

2008-11-04 Пенетрантность Кузнецов Евгений
Доброго времени суток!

On 5 нояб, 10:27, Dmitri Kuzmenko wrote:
>
> потому что не видишь. очень жаль. сочувствую тем, кто будет
> читать твой код (если будет).

Так и помру неучем :)
К счастью, мой код не представляет особенной ценности для потомков.

Кстати, в Обероне, насколько я в курсе, Вирт ввел обязательный END для
WHILE\IF-блоков, и BEGIN там уже не нужен. Т.е. получаем

WHILE (condition) DO


END

IF (condition) THEN

ELSE

END

или

IF (condition) THEN

ELSEIF (condition) THEN

END

Заодно и решена проблема неопределенного Else.
--
С уважением, Евгений

Re: Здраствуйте не поможите правельно создать процедуру

2008-11-04 Пенетрантность Dmitri Kuzmenko


Hello, Евгений!

Кузнецов Евгений wrote:


По while, вестимо.


звездец...


То есть? Если в любом if/while/for/repeat всегда будет begin, то не
все ли равно где - на той же строке или на следующей? Не понимаю Вашей
категоричности.


потому что не видишь. очень жаль. сочувствую тем, кто будет
читать твой код (если будет).

--
Dmitri Kouzmenko, www.ibase.ru, (495) 953-13-34




Re: Здраствуйте не поможите правельно создать процедуру

2008-11-04 Пенетрантность Dmitri Kuzmenko


Hello, Tonal!

Tonal wrote:

Правильные пацаны давно составные конструкции одними отступами отмечают 
 (Python, Haskell).

Так что и холиваров никаких из за подобных глупостей там нет. :)


то же дерьмо. я это уже кушал в Mumps.

F I=0..10 DO
.S A=I...

П.С. И в С и в Pascal-е всегда писали и пишем именно в осуждаемом стиле. 


да никогда такого не было, чтобы begin писали на той же строке что и
if, when и так далее. Это какой-то сишник один раз применил, а потом
началось...

--
Dmitri Kouzmenko, www.ibase.ru, (495) 953-13-34




Re: Здраствуйте не поможите правельно создать процедуру

2008-11-01 Пенетрантность Tonal


Dmitri Kuzmenko пишет:
Керниган идет лесом (а еще конкретнее - в задницу). Иногда очень умные 

Истину глаголешь!

Да и вообще все эти begin/end-ы и кривые скобочки не более чем 
синтаксический мусор!
Правильные пацаны давно составные конструкции одними отступами отмечают 
 (Python, Haskell).

Так что и холиваров никаких из за подобных глупостей там нет. :)

П.С. И в С и в Pascal-е всегда писали и пишем именно в осуждаемом стиле. 
Для более компактного представления алгоритма. Символов табуляции не 
используем. За коверканье отступов выговор, с занесением. :)

--
Александр Замараев



Re: Здраствуйте не поможите правельно создать процедуру

2008-11-01 Пенетрантность Кузнецов Евгений
Доброго времени суток!

On 31 окт, 12:24, Dmitri Kuzmenko wrote:
> Керниган идет лесом (а еще конкретнее - в задницу). Иногда очень умные
> люди порят полную чушь. Или, их мудрые высказывания интерпретируют ровно
> наоборот.
> Объясни мне, как ты увидишь, где начинается блок, если написано так\
>
> while  do begin
>    ...
>    ...
>    ... еще 10 строк
>    ...
>    ...
> end;

По while, вестимо.
>
> это я еще сюда отступов добавил. А так, ты уверен, что не проглядел в
> середине этого текста вот такую хрень:
> if  then begin
> end;
>
> ?

То есть? Если в любом if/while/for/repeat всегда будет begin, то не
все ли равно где - на той же строке или на следующей? Не понимаю Вашей
категоричности.
--
С уважением, Евгений

Re: Здраствуйте не поможите правельно создать процедуру

2008-10-31 Пенетрантность Михаил Самара
>
> while ... do
>    begin
>      ...
>      ...
>      if ... then
>        begin
>          ...
>          ...
>        end;
>      ...
>    end;
>
Именно так требую форматировать все программы уже мног лет.
Подобное форматирование предлагал еще Вирт - кажется он имел некое
отношение к паскалю :)
Я показываю такое форматирование потенциальному новому сотруднику и
прошу объяснить а почему собственно, если может объяснить но это
дополнительный + :)


Re: Здраствуйте не поможите правельно создать процедуру

2008-10-31 Пенетрантность Dmitri Kuzmenko


Hello, Ded!

Ded wrote:

Иногда очень умные люди порят полную чушь.


Точно-точно. Я за собой это в последнее время тоже всё чаще замечаю.


я про себя писал? тоже могу отмочить :-)

--
Dmitri Kouzmenko, www.ibase.ru, (495) 953-13-34




Re: Здраствуйте не поможите правельно создать процедуру

2008-10-31 Пенетрантность Ded


Dmitri Kuzmenko wrote:

Иногда очень умные люди порят полную чушь.


Точно-точно. Я за собой это в последнее время тоже всё чаще замечаю.


Или, их мудрые высказывания интерпретируют ровно наоборот.


А уж про это и говорить нечего.

--
Regards. Ded.



Re: Здраствуйте не поможите правельно создать процедуру

2008-10-31 Пенетрантность freemanzav


Dmitri Kuzmenko:
>Иногда очень умные люди порят полную чушь.

Они иногда и пишут так :-)

while (fb_interpret(s + 1, sizeof(s) - 1, &vector)) {
translate_cp(s);
alice_output("%s\n", s);
}

Re: Здраствуйте не поможите правельно создать процедуру

2008-10-31 Пенетрантность Kochmin Alexandr


Dmitri Kuzmenko wrote:

В общем, если форматирование ПОЗВОЛЯЕТ неверно интерпретировать 
структуру кода, то ну его нахрен такое форматирование.


ну чего вы спорите то?
У вас в редакторе нету сворачивания блоков кода и подсветки синтаксиса?
Пишите главное чтоб удобно было тому кто пишет. остальное все условности.



RE: Здраствуйте не поможите правельно создать процедуру

2008-10-30 Пенетрантность Dmitriy A. Beloshistov

Привет.

Засунь в отдельную процедуру/вьюху

for select gd.nm,gd.fprn, unt.nm as unt, gd.qinp, gd.prub as prub,sec.nm as sec 
from gd
inner join unt unt on (gd.id_unt = unt.id)
inner join sec sec on (gd.id_sec = sec.id)
Order By id_sec, gd.nm
INTO :nm,:fprn,:unt,:qinp,:prub,:sec  /* для процедуры */

Ну а в основной процедуре проверяй условия и накладывай свое дополнительное 
where.

Что-то вроде:
If (fprn>0) then 
   For select nm,unt,qinp,prub,sec 
   From subprocedure
   Where fprn=1
   Into :nm,:unt,:qinp,:prub,:sec
   Do suspend;
Else 
   For select nm,unt,qinp,prub,sec 
   From subprocedure
   Into :nm,:unt,:qinp,:prub,:sec
   Do suspend;


WBR, Dmitry Beloshistov AKA [-=BDS=-]


 

__ Eioi?iaoey io ESET NOD32 Antivirus, aa?ney aacu aaiiuo neaiaoo? 
ae?onia 3568 (20081030) __

Niiauaiea i?iaa?aii i?ia?aiiie ESET NOD32 Antivirus.

http://www.esetnod32.ru