ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #41  
Старый 25.12.2009, 23:07
Аватар для cheater_man
cheater_man
Постоянный
Регистрация: 13.11.2009
Сообщений: 437
Провел на форуме:
709575

Репутация: 17
По умолчанию

Goto использовать можно!НО, как считают программисты после использоватья этого оператора код становится менее читабельным. От этого оператора уже отказались в 90-е года.Но всетаки он присутствует в языках высокого уровня. И наиболее часто используется в assembler, он там как jmp.
Вывод: этот оператор лучше всего не использовать если хочешь казаться современным
 
Ответить с цитированием

  #42  
Старый 26.12.2009, 00:07
Аватар для Retimiled
Retimiled
Banned
Регистрация: 24.12.2009
Сообщений: 141
Провел на форуме:
487460

Репутация: 45
По умолчанию

имидж ничто жажда ВСЕ!
 
Ответить с цитированием

  #43  
Старый 26.12.2009, 00:58
Аватар для cupper
cupper
Постоянный
Регистрация: 06.06.2007
Сообщений: 575
Провел на форуме:
1180737

Репутация: 180


По умолчанию

бред мне в уши...
Загляните в ядро линукса, там этих goto пруд пруди, и все они юзаются только с одной благородной целью, и делают код намного удобней чем что либо другое
 
Ответить с цитированием

  #44  
Старый 26.12.2009, 01:27
Аватар для scrat
scrat
Постоянный
Регистрация: 08.04.2007
Сообщений: 853
Провел на форуме:
5812656

Репутация: 1540


Отправить сообщение для scrat с помощью ICQ
По умолчанию

В примере с матрицами можно было бы заюзать класс матрицы, вместо int[,].
Объекты этого класса могли бы проверять сами себя и бросаться исключениями.
Конечно же, всё зависит от задачи.

Цитата:
бред мне в уши...
Загляните в ядро линукса, там этих goto пруд пруди, и все они юзаются только с одной благородной целью, и делают код намного удобней чем что либо другое
Ага, и этот код очень легко читать и понимать.
 
Ответить с цитированием

  #45  
Старый 26.12.2009, 01:33
Аватар для Retimiled
Retimiled
Banned
Регистрация: 24.12.2009
Сообщений: 141
Провел на форуме:
487460

Репутация: 45
По умолчанию

писалось в стиле Аля-Си.... а там скорее

int *mass;
mass =new int[n][k];

... типа чето делаю не относясь к задаче алгола

delete[] mass;

чем классная лабуда с конструкторами деструкторами и исключениями лучше... попробуйте обьяснить человеку пишущему на ассмблере но не знающеего Си чему соответствуют исключения и что это далеко не Goto ... боюсь он со смехом вам диззассемблирует! 8))
а по поводы простоты .... можно взять человека с улицы и обьяснить ему код с классами и в стиле Аля-Си, результат о том какой код он поймет предсказуем!

Последний раз редактировалось Retimiled; 26.12.2009 в 08:13..
 
Ответить с цитированием

  #46  
Старый 26.12.2009, 02:18
Аватар для razb
razb
Постоянный
Регистрация: 24.03.2009
Сообщений: 670
Провел на форуме:
2868783

Репутация: 414


Отправить сообщение для razb с помощью ICQ
По умолчанию

Цитата:
бред мне в уши...
Загляните в ядро линукса, там этих goto пруд пруди, и все они юзаются только с одной благородной целью, и делают код намного удобней чем что либо другое
Если ты внимательно смотрел, то должен был заметить что в основном он используется для обработки ошибок, что вполне допустительно для С. В таких языках как С++, Java, C#, есть исключения которые избавляют программера использовать метки для обработки ошибок.

В случае кода Algol'a, можно было бы поступить более изящней, как написал nerezus и Qwazar. Случай же с глубокой вложенностью циклов не более чем классический и часто можно встретить в "goto холиварах", а вот на практике встречается не так часто ибо можно переписать без использования последнего.
 
Ответить с цитированием

  #47  
Старый 26.12.2009, 10:53
Аватар для nerezus
nerezus
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме:
6490435

Репутация: 2290


Отправить сообщение для nerezus с помощью ICQ
По умолчанию

Код:
public TcpClient Connect(IPEndPoint host)
        {
            TcpClient client = new TcpClient();
            int maxTryCount = 5;
            while(true) {
                try
                {
                    client.Connect(host);
                    return client;
                }
                catch (SocketException) {
                    if(0 == --maxTryCount) {
                        throw;
                    }
                }
            }
        }
Вот вроде рабочий вариант без goto. Не проверял на синтаксис, но работать должно )
 
Ответить с цитированием

  #48  
Старый 26.12.2009, 11:30
Аватар для Algol
Algol
Регистрация: 29.05.2002
Сообщений: 1,793
Провел на форуме:
2050916

Репутация: 0


По умолчанию

Цитата:
Сообщение от nerezus  
Вот вроде рабочий вариант без goto. Не проверял на синтаксис, но работать должно )
Да, это рабочий вариант. Но проще ли он ?
Любой алгоритм можно реализовать без goto. Вопрос в том, будет ли он проще для восприятия.
 
Ответить с цитированием

  #49  
Старый 26.12.2009, 11:43
Аватар для Algol
Algol
Регистрация: 29.05.2002
Сообщений: 1,793
Провел на форуме:
2050916

Репутация: 0


По умолчанию

Цитата:
Сообщение от razb  
В случае кода Algol'a, можно было бы поступить более изящней, как написал nerezus и Qwazar.
Почему-то никто не отреагировал на критику такого подхода. На всякий случай повторю:
1)Падение производительности
2)Необходимость передачи в функцию большого числа параметров.
3)Код начинает изобиловать кучей малопонятных функций, с неопределенной семантикой.

Конечно это крайние случаи. Но и я в первом постинге и пишу про карйние случаи. В 90% случаев конечно я тоже выношу участки кода в отдельные функции. Но остаются еще 10% где это не рационально. И там я применяю тот подход который сделает код быстрее и понятнее, а не разбиваю лоб об стену, но пишу "правильный" код.
 
Ответить с цитированием

  #50  
Старый 26.12.2009, 12:03
Аватар для nerezus
nerezus
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме:
6490435

Репутация: 2290


Отправить сообщение для nerezus с помощью ICQ
По умолчанию

Цитата:
Но проще ли он ?
Кода меньше.
А можно просто твой вариант заменить, исправив гото на цикл и break.

Цитата:
Вопрос в том, будет ли он проще для восприятия.
как минимум - не сложнее.

Цитата:
1)Падение производительности
На сколько процентов? Я думаю, что на 0%
Цитата:
2)Необходимость передачи в функцию большого числа параметров.
Не большего, чем у тебя
Цитата:
3)Код начинает изобиловать кучей малопонятных функций, с неопределенной семантикой.
Субъективно, причем большинство так думает именно о goto.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как настроить две сетки для сервера CyberPank Windows системы 2 16.07.2009 07:55
Bat Micr0b Windows 2 25.04.2006 19:49



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ