Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Флейм (http://www.flasher.ru/forum/forumdisplay.php?f=7)
-   -   About C & C++ (http://www.flasher.ru/forum/showthread.php?t=22451)

*JeF* 03.11.2001 23:03

About C & C++
 
Я сравнительно недавно начал учить 'C' и у меня возник такой вопрос а именно:
почему нельзя использовать "goto" по-моему очень удобная штука.....

RFMitrio 04.11.2001 00:19

А почему "нельзя"? Можно. Только не рекомендуется. :) :)

*JeF* 04.11.2001 00:26

а почему не рекомендуеться.....оч удобно вроде

Дайвер 04.11.2001 00:39

Это ламерство. Всякий процесс можно построить и без безусловных переходов.

*JeF* 04.11.2001 01:00

ду уж....я сегодня домашнее задание делал по компам так чтобы написать прогу без goto у меня в 3 раза больше места ушло да и времени тоже...

Tru-la-la 04.11.2001 06:24

А ты на ассемблере пипши, тогда и вопросов не будет :)

Countach 04.11.2001 19:38

2Дайвер
Эт не ламерство :)
2JeF
Не рекомендуют по тому, что когда твоя прога будет занимать 1000 строчек и плюс ко всему будет 200 ГОУ ТУ
ты ахренеешь врубаться какая гоуту куда ведет
Используя гоуту ты ломаешь структурированое програмирование, а это большое премущество над тем же ассемблеем где гоуту мплошь и рядом. Эт всего для того чтобы тебе было проще в будушем, а почему в маленькиъ прогах не советуют гоуту, да чтобы не привыкнуть к неправильному подходу. Эти гоуту еще спагетти называют :)
ну вообщем так ;)

сочиNetz 04.11.2001 23:45

большие и авторитетные волосатые дядьки называют это культурой программирования. И они правы. В общем то никто не запрещает goto, но это же моветон... (последнее слово- с глубоким французским прононсом:))

*JeF* 05.11.2001 00:06

A kakie al'ternativi?

Countach 05.11.2001 01:18

Ну это зависит от ситуации :)
может быть альтернативой и процедура (лишняя, да кстати лишняя процедура еще не мешала)
А может быть и
Код:

for(i=1; i++; i<k){Cout<<"Alternative\n";}
Assembly unstructured code
Код:

...
...
            MOV AX,K
NEXT:  ......
            ......
            DEC AX
            JNZ NEXT

Навеху пример нестрактурированного програмирования, и сравни, что проще??
Не используй гоуту, это усложнит ориентацию :)
А может быть и while loop, а может ,что чаще бывает, if-then-else

2сочиNetz
Ну частично согласен, ну ведь культура не просто так, потому что культура и все. Потому что так кто-то захотел :)
Люди мучались создавали струкрурированые языки не для того чтобы мы это рушили. А если пофигу структурированное, то используй ассемблей :) уверен быстро надоест.

ЗЫ и все-таки волосатые дядьки используют гоуту иногда. Когда совсем никак без этого, но очень ОЧЕНЬ ограниченно. Я бы сказал не значительно :) одну две гоуту в огромной проге, на 100 000 строк скажем, и то не всегда :)

*JeF* 05.11.2001 20:49

Spasibo vsem....teper' budu znat' :)

Countach 05.11.2001 21:04

:)
Сначала и мне как-то странно казалось, со временем все уляжется :)

Barmaglot 06.11.2001 13:05

Я программирую давно и забыл уже когда я не тоько использовал goto, а даже когда я его хотел использовать.
ИМХО реально goto почти не нужен.

ЗЫ если бы из C++ или Delphi исчез goto то я бы этого не заметил. ;)

whiteagle 06.11.2001 23:11

Цитата:

Код:

for(i=1; i++; i<k){Cout<<"Alternative\n";}

2Countach: Угадай когда завершится цикл и что выведется в стандартный поток вывода ? :) :)
Ответ: Никогда и ничего. :) :)

Код:

for(i=1;i<k;i++){cout<<"Alternative\n";}
Вот это что-нить выведет. :)

ЗЫ: Если подумать, может быть первый цикл и закончится когда-нить, зависит от типа переменной i. :)

ЗЫЫ: Я goto пользовался только когда на Спектруме что-то делал. А так, как в Паскале так и в С/С++ совершенно любой алгоритм можно реализовать без goto. Это еще дядька Кнут в свое время доказал. ;)

Countach 06.11.2001 23:36

2 whiteagle
Что массовое придиранее началось??? :( :confused: :eek: :rolleyes:
Я же не собираюсь тебе ничего доказывать здесь, что я знаю и чего нет.
и по поводу первого цикла, неужели ты подумал что я не знаю последовательности??? не ну неужели ты думаешь что я такой лох. Или ты так хочешь думать???
Просто запарился и не придал значения.
Ты бы еще поправил и сказал что К надо задекларировать, и все такое :) или просто придраться надо...
К вопросу почему for loop как пример к гоу ту. Да просто я срвнивал structure Vs Unstructured. C++ Vs Assembly
В ассеблеи фор луп чаще выполняют с помощью гоуту, или как его называют conditional & unconditional jumps.
Можно конечно с помощью LOOP, но и JNE OR JE OR .....

Насчет любого алгоритма без гоу ту согласен, но иногда В ОЧЕНЬ ПРИ ОЧЕНЬ больших прогах люди облегчают себе судьбу. И все-таки используют гоуту раз или два. Ну бывает. Хотя некто не спорит, что без гоуту нельзя, просто иногда удобно.

whiteagle 07.11.2001 13:51

2Countach:
да расслабься ты, чтож ты всегда так напрягаешься ? я же не говорил что ты чего-то не знаешь, я просто чуть-чуть поправил. :)

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

Countach 08.11.2001 00:30

Не думай что только ты зануда или занят. У меня на следующей недели 5 экзаменов, а я не знаю что такое partial fractions, да вообще за метематику не садился.
Дел по самую Ж*пу
бошка пухнет все тетради резко исписались. Ну и хрен бы с ними вот только на экзамене.
-Какой алгоритм CPU scheduling использует UNIX O/S
Round robin with priorities :)
-Multiprocessor WIN NT????
И тут мне кранты :(

Funtik 08.11.2001 11:39

2Countach.....: Ну если в програмасе ты пару раз используешь Go to, То ни чего страшного не будет.... и иногда использовать go to бывает проще чем писать дополнительную процедуру...
С уважением Funtik ;)

Countach 08.11.2001 16:03

2Шпунтик
У тя че база (данных) упала.????? :mad:
Я ЧТО ПИШУ????????? ЛЮБОЙ ПРОФИ УСПОЛЬЗУЕТ ГОУ ТУ, НО ТОЛЬКО В ОГРАНИЧЕННЫХ КОЛ-ВАХ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ЧИТАЙ ВСЕ СНАЧАЛА, А ПОТОМ ДЕЛАЙ ПРИДУРКА И ЧЕЛОВЕКА!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

ПРИТОМ Я НЕ ФАНАТ ГОУТУ!!! БЕЗ ЭТОГО ОЧНЬ УДОБНО!!!
ГОУТУ ЧАСТО ИСПОЛЬЗУЮТ В ОГРОМНЫХ ПРОЕКТАХ КОГДА ИСПРАВЛЯЮТ БАГИ, КОГДА УЖЕ ВСЕ НАПИСАНО, И ТЫКАТЬ ЛИШНИЕ ПРЦЕДУРЫ БОЛЬШОЙ ГЕМОРОЙ, А ТАКЖЕ ВОЗМОЖНА ПРИЧИНА ПОЯВЛЕНИЯ НОВЫХ БАГОВ. ОГРОМНЫЕ ПРОЕКТЫ ПИШУТ МНОГО ЛЮДЕЙ, А НЕ ОДИН. ИСПОЛЬЗУЮТ И МЕНЬШИХ ПРОЕКТАХ, НО ОЧЕНЬ РЕДКО, И ПРИВЫКАТЬ К ЭТОМУ ОЧЕНЬ ПЛОХО. НАДО ИСКАТЬ ДРУГИЕ РЕШЕНИЯ!!!!

ЗЫ как в рекламе ИЖ - машина для тех кто понимает(или умеет читать предыдущие посты) :(

Countach 08.11.2001 16:05

Да кстати тож с уважением ;)

*JeF* 08.11.2001 21:55

Da uj.....4uvstvuu bol'noi vopros zadel....ne nado tak nervni4at' narod ;) :p :)

Countach 08.11.2001 23:41

Вопрос не больной, а очень интересный на мой взгляд. И не говорю, что все знаю. И не пытаюсь ВСЁ знать. Просто приходят люди с умным видом
copy(my post) -> paste
И типа мне умную вещь говорят. И даже если они знали это, но повторять - тупо ИМХО.
А вообще побольше бы таких дискуссий. именно о серьёзном програмировании. Чем ближе к плате тем интересней, но опасно что мозги начинают жить по другим законам.
1+1=0 & 1 в CF (CARRYout Flag)
А по другому это может звучать как 10!!!
Тупо да? Но ты перестраиваешься, когда чаще для тебя 1+1=10, чем 1+1=2
:)


Часовой пояс GMT +4, время: 12:24.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.