Главная страница


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Ђ«ҐЄб ­¤а „ҐаЄ з                     2:5020/400     11 Dec 2001  14:28:47
 To : Vladimir Bormotov
 Subject : Re[4]: goto нет в tcl
 -------------------------------------------------------------------------------- 
 
 dn.ua>
 
 From: Александр Деркач <arush@avest.org>
 
 Hello Vladimir,
 
 Tuesday, December 11, 2001, 4:21:54 AM, you wrote:
 VB>                 Hi, Andrey!
 
 >>>>>> "AK" == Andrey Khavryuchenko <akhavr@kds.com.ua> writes:
 VB>  a>> А если мне надо что-то типа
 
 VB>  a>> for (i=1;i<a;i++){
 VB>  a>> ...
 VB>  a>> for (j=1;j<b;j++){
 VB>  a>> ...
 VB>  a>> for (k=1;k<c;k++){
 VB>  a>> ...
 VB>  a>> if (f1(i,j,k)) goto l1;
 VB>  a>> if (f2(i,j,k)) goto l2;
 VB>  a>> if (f3(i,j,k)) goto l3;
 VB>  a>> ...
 VB>  a>> }
 VB>  a>> ...
 VB>  a>> l1:
 VB>  a>> ...
 VB>  a>> }
 VB>  a>> ...
 VB>  a>> l2:
 VB>  a>> ...
 VB>  a>> }
 VB>  a>> ...
 VB>  a>> l3:
 VB>  a>> ...
 
 VB>  a>> Как в таком случае без goto придется извращаться?
    
 
 VB>  AK> Без того, что у тебя скрыто в ... и остального из функции это Г
 VB>  AK> переделать нельзя.
 
    (1)
 
 VB>  а я бы еще хотел посмотреть на f1/f2/f3, на возможность развернуть циклы,
 VB>  написать рекурентные формулы и так далее...
 
    (2)
 
 VB>  Hе, люди просто не понимают ;)
  
 VB>  Кроме того что это оффтопик и нас сейчас погонят, я вот могу сказать, что
 VB>  такие вложеные циклы говорят о том, что данные _представлены_ "некрасиво",
 VB>  и как следсвие "лобовой метод обработки, с тупой оптимизацией".
 
      (3)
 
 (3)А  как  интересно  более  красиво  можно представить например трехмерную
 матрицу? И с какой точки
    зрения  красиво?  Если  сточки зрения экономии памяти - это одно если сточки 
 зрения максимального
    быстродействия  -  это  друго,  если  с  точки  зрения  абстрактных 
 принципов  так  называемого
    "структурного программирования" - это может быть третье (но мне не нужное).
    Hе  знаю чем вам не нравиться метод обработки "в лоб", но меня мало волнует
 какой метод обработки
    вам больше нравится - через зад, или с поднаподвыподвертом или еще как,
 поскольку все это слишком
    субъективно. Кому то удобнее писать x=y*128, а кому то - x=y shl 7.
 
 (2)Интересно   как   можно   избавиться   от   циклов,   если   в   цикле   по  
 k   мы  производим
    модификацию/запись/чтение  данных  в  каждой итерации? Рекурентные формулы с 
 этим слабо связаны и
    разворачивание циклов здесь тоже не поможет (к тому же это гораздо лучше
 делает компилятор).
 
 (1)  Почему интересно вы считаете что это - "Г"? Потому что используется goto?
 Тогда это уже религия
     и  ничего  общего  с  эфективностью  она не имеет, поскольку ограничивает
 свободу программиста в
     выборе  необходимых ему средств. К тому же религия бывает разной, кому-то
 циклы не понравились -
     избавимся от циклов, заменим их, например, рекурсивными вызовами:
       for(i=10;i>1;i--){...}
       меняем на:
        for_sub(10)
 
        for_sub(i){
         ...
         if(i>1) {
          for_sub(i-1);
        }
        
     If/case не понравились - заменим if/case на вызов функции из таблицы
 согласно индексу.
 
     Hе понравился способ записи выражений - давайте будем пользоваться обратной 
 польской записью,
     вместо  x=(a+b)*c  будем  писать  x=a b + c *. Могут возразить что это
 неудобочитаемо, но зато
     никаких скобок, никаких приоритетов операций, облегчение синтаксического
 разбора в компиляторе и
     т.д.   и  т.п.  К  тому же "неудобно" - это дело привычки, если обратной
 польской записи учить в
     начальных классах, то она будет гораздо более понятна и удобна чем обычная.
 
     Я  не  призываю  пользоваться  goto  где  нужно  и  где не нужно, просто
 бывают случаи когда его
     использование позволяет добиться гораздо большей эффективности и
 "красивости" кода.
     
 -- 
 Best regards,
  Александр                            mailto:arush@avest.org
 Отправлено через сервер Talk.Ru - http://www.talk.ru
 --- ifmail v.2.15dev5
  * Origin: Talk.Ru (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: goto нет в tcl   Alexander Dilevsky   10 Dec 2001 00:35:13 
 Re: goto нет в tcl   Andrey Khavryuchenko   10 Dec 2001 01:01:40 
 Re: goto нет в tcl   Alexander Dilevsky   10 Dec 2001 09:43:49 
 Re: goto нет в tcl   Andrey Khavryuchenko   10 Dec 2001 11:40:23 
 Re: goto нет в tcl   Vladimir Bormotov   10 Dec 2001 19:41:52 
 Re: goto нет в tcl   Andrey Khavryuchenko   11 Dec 2001 01:01:08 
 goto нет в tcl   Ilya S Slyzhnyak   13 Dec 2001 09:30:37 
 Re: goto нет в tcl   Serguei Khvatov   10 Dec 2001 12:52:41 
 Re: goto нет в tcl   Andrey Khavryuchenko   10 Dec 2001 14:01:36 
 Re[2]: goto нет в tcl   Ђ«ҐЄб ­¤а „ҐаЄ з   10 Dec 2001 20:47:24 
 Re: Re[2]: goto нет в tcl   Andrey Khavryuchenko   11 Dec 2001 01:01:09 
 Re: Re[2]: goto нет в tcl   Vladimir Bormotov   11 Dec 2001 06:21:54 
 Re[4]: goto нет в tcl   Ђ«ҐЄб ­¤а „ҐаЄ з   11 Dec 2001 14:28:47 
 Re: Re[4]: goto нет в tcl   Andrey Khavryuchenko   11 Dec 2001 15:22:12 
 Re: Re[4]: goto нет в tcl   Vladimir Bormotov   11 Dec 2001 23:41:39 
 Re: goto нет в tcl   Max Ischenko   10 Dec 2001 14:19:59 
 Re: goto нет в tcl   vitus@ice.ru   10 Dec 2001 11:32:14 
Архивное /ru.linux/3647c22f846d.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional