Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 14.11.2012, 22:05   #1071
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,865
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Хотя процедура - это такое же goto по сути.
Это gosub

Цитата:
Сообщение от Smitt&Wesson Посмотреть сообщение
А я вот, что имел в виду.
Код:
flag1 = <усл1>;
flag2 = <усл2>;
swith ( true ) {
  case flag1 && ! flag2 : <оператор1>;
  case ! flag1          : <оператор2>;
  default               : <оператор3>;
}
Arigato вне форума
Старый 14.11.2012, 22:21   #1072
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от Arigato Посмотреть сообщение
Код:
flag1 = <усл1>;
flag2 = <усл2>;
swith ( true ) {
  case flag1 && ! flag2 : <оператор1>;
  case ! flag1          : <оператор2>;
  default               : <оператор3>;
}
Можно и так. Но добавляются две булевы переменные, что уже не айс.
А вот как с готом:

Код:
  if()
  {
    if()goto m1;
    {
    блок1;
    }
  }  
  блок2;
m1:
  блок3
  return
Просто, дёшево и сердито.
И, в конечном итоге, меня выгнали из той фирмы .
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума
Старый 14.11.2012, 22:43   #1073
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,865
По умолчанию

Ну и пусть добавляются, в чем проблема? Зато операторы четко идут один за другим и никаких скачков туда-сюда.
Arigato вне форума
Старый 14.11.2012, 22:52   #1074
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

Smitt&Wesson

не надо никаких наворотов, декомпозиция рулит:

Код:
if ()
{
	if ()
	{
		f3();
	}
	else
	{
		f1();
		f2();
		f3();
	}
}
else
{
	f2();
	f3();
}
все чётко и понятно.

...если эта конструкция находится глубоко во-вложенных циклах, например в 3-м и со счётчиками не менее 1000...

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

Последний раз редактировалось Rififi; 14.11.2012 в 22:55.
Rififi вне форума
Старый 14.11.2012, 23:43   #1075
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от Arigato Посмотреть сообщение
Ну и пусть добавляются, в чем проблема? Зато операторы четко идут один за другим и никаких скачков туда-сюда.
В принципе, это дело вкуса. Но я, лично, предпочитаю один гот, чем засорять листинг непонятными переменными.

Rififi, и ничего не понятно. Вот, блок-схема, которую Вы представили операторами.
Ничего общего с моей она не имеет.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 15.11.2012 в 00:36.
Smitt&Wesson вне форума
Старый 14.11.2012, 23:44   #1076
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
декомпозиция рулит:
Ага, даже если под f..() подразумеваются сотни строк кода, которые при декомпозиции просто по размеру после компиляции в контроллер не влезут

Цитата:
Вот, блок-схема, которую Вы представили операторами.
Чет не сходится... Не это уже другая схема.
I'm learning to live...
Stilet вне форума
Старый 14.11.2012, 23:50   #1077
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Чет не сходится... Не это уже другая схема.
Не понял, что не сходится? Внимательнее присмотритесь.
Это схема алгоритма, который предоставил rififi.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума
Старый 15.11.2012, 00:05   #1078
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
else
{
f2();
f3();
}
Где это у тебя на блок-схеме?
I'm learning to live...
Stilet вне форума
Старый 15.11.2012, 00:13   #1079
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Где это у тебя на блок-схеме?
По-первым буквам блоков.
В принципе работать будет, но по быстродействию... В худшем случае будут вызываться три функции. Т.е. будет три обращения к стеку, а это очень сильно тормозит, особенно в глубоких циклах. И это всё в угоду сомнительной "структурности", которая и нужна только, для лучшего понимания программы, человеком. Да, тьфу, на эту структурированность!
К тому-же взгляните на мою блок-схему. Все блоки идут в порядке выполнения. И всего-то один оператор goto, который передаёт управление вперёд по алгоритму. Чем Вам не структурированность?
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 15.11.2012 в 00:27.
Smitt&Wesson вне форума
Старый 15.11.2012, 00:19   #1080
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

После f2() идет вызов f3()
Либо я чего-то не догоняю, либо на втоорой схеме этого нет.
Обрати внимание - код Рифифи предполагает обязательный вызов F3() а по блоксхеме последней его можно пропустить.
I'm learning to live...
Stilet вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
рассылка "клуб программистов" Hallo О форуме и сайтах клуба 130 29.03.2015 10:20
CR-Team ищет программистов для проeкта "Дальний Свет" Ha3aP Фриланс 6 22.10.2009 19:28
Шесть задач на "Бой программистов" Влада Помощь студентам 2 08.11.2008 17:48