Serg79
|
|
« Ответ #30 : 03-02-2009 12:11 » |
|
ОК, убедил Джон. Только я скажу за себя, когда я пишу рабочий код то break в конце switch я всегда ставлю, даже в секции default.
|
|
|
Записан
|
|
|
|
Джон
просто
Администратор
Offline
Пол:
|
|
« Ответ #31 : 03-02-2009 12:33 » |
|
Serg79, У меня в 2003 студии ещё проще, после набора switch появляется тултип, нажимаешь ввод и сразу вставляется код switch() { case : break; case : break; default: } Я же не говорю, про привычки, а только про данный конкретный случай. Ведь человеку с ЭТИМ ещё сдаваться надо.
|
|
|
Записан
|
Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома. "Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash "Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman "All science is either physics or stamp collecting." Ernest Rutherford "Wer will, findet Wege, wer nicht will, findet Gründe."
|
|
|
Вад
|
|
« Ответ #32 : 03-02-2009 12:46 » |
|
Ведь человеку с ЭТИМ ещё сдаваться надо.
Джон, в таком случае преподу ничто не мешает спросить: "а почему нету break?" Если студент ответа не знает, завалить можно многими способами
|
|
|
Записан
|
|
|
|
Джон
просто
Администратор
Offline
Пол:
|
|
« Ответ #33 : 03-02-2009 13:15 » |
|
С высказыванием "завалить можно многими способами" - согласен на все 100%, причём даже если студент знает. Аксиому "препод всегда прав" ещё никто не отменял.
Но в самом общем случае с не согласен. Это уже психология (хотя конечно существует положительная и отличная от нуля вероятность того, что ..., но тут можно тогда предположить всё что угодно).
А в самом общем случае препод видит, что break не нужен и его нет - всё в порядке. Противоречий нет. Зацепка не приходит сама на ум. А вот когда он что-то видит, что не вписывается в стандартную схему, пусть это даже и нейтрально, сразу возникает зацепка. Ага, он это написал, а почему? Просто так? Не знает? Знает? Вот уже и повод спросить. Доп. вопрос возникнет в случае наличия противоречий, например, break нужен, но его нет, или break не нужен, но он есть. Сравни свои ощущения при просмотре плохо или НЕ форматированного кода. Вроде всё на месте, всё правильно. Но ведь ты в первую очередь "докапаешься", а почему код не отформатирован?
А последствия могут быть фатальными. Поскольку задавший вопрос абсолютный ноль не имеющий достаточного опыта, как например у Лёшки, то этот простой, казалось бы, вопрос его напрочь закоротит. Никогда не забуду, как попытался помочь студенту на экзамене по автоматизации эксперимента. Ну вижу, что ступор, ну с кем не бывает, говорю ладно, какие порты ты знаешь? Ну? Ну смотри, есть параллельный, а ещё есть? - Перпендикулярный. И вот потом сидишь и думаешь, или он ваще нифига не знает, или действительно ступор полнейший и он даже своё имя не назовёт. Казалось бы мелочь. А выйти из ступора тяжело, особенно когда по предмету плаваешь. Как в данном случае. А потом последует вопрос - октуда код содрал? И всё... приплыли.
|
|
|
Записан
|
Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома. "Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash "Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman "All science is either physics or stamp collecting." Ernest Rutherford "Wer will, findet Wege, wer nicht will, findet Gründe."
|
|
|
Sla
|
|
« Ответ #34 : 03-02-2009 13:25 » |
|
Джон, отменял даже знаю такого, кто отменял - это я . К моменту сдачи экзамена, я по предмету знал больше чем препод. Но эта сцучка - все равно поставила мне четверку - нехер выпендриваться.
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
Serg79
|
|
« Ответ #35 : 03-02-2009 13:38 » |
|
А давайте выслушаем мнение аффтара темы. Apolon, Вы как считаете, break это ГУД или не ГУД в конце switch?
|
|
|
Записан
|
|
|
|
Джон
просто
Администратор
Offline
Пол:
|
|
« Ответ #36 : 03-02-2009 13:58 » |
|
Слав, я и говорю что НИКТО НЕ ОТМЕНЯЛ. Даже если студент знает больше препода, всё-равно будет как препод пожелает. Этот печальный феномен я наблюдаю со школьной скамьи, когда мне учитель по астрономии поставила за год четвёрку весь класс встал на уши. Ибо я на тот момент уже 2 года был действительным членом астрономического кружка при планетарии и даже (правда только один раз) учавствовал в слёте ВАГО по комете Галлея. Об учителе астрономии могу сказать только её же фразой запавшей мне на всю жизнь: "Вы привыкли измерять скорость в километрах в час, а в астрономии скорость измеряется в световых годах!". А в универе сплошь и рядом, даже и не рыпался. Правда не во всех случаях знал больше препода.
|
|
|
Записан
|
Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома. "Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash "Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman "All science is either physics or stamp collecting." Ernest Rutherford "Wer will, findet Wege, wer nicht will, findet Gründe."
|
|
|
Джон
просто
Администратор
Offline
Пол:
|
|
« Ответ #37 : 03-02-2009 16:54 » |
|
А можно я тоже поизвращаюсь? int _tmain(int argc, _TCHAR* argv[]) { // получаем данные, например так: char *psz = new char[64]; memset(psz,0,64); strcpy(psz,"gaajAAfjh");
int nCountA=1; while(*psz!='\0' && (nCountA+=((*psz=='a')||(*psz=='A'))?1:0) && (*psz=(*psz=='a')?'A':*psz) && psz++); nCountA--;
return 0; } Изврат с nCountA-- нужен для первого символа != 'a'
|
|
|
Записан
|
Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома. "Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash "Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman "All science is either physics or stamp collecting." Ernest Rutherford "Wer will, findet Wege, wer nicht will, findet Gründe."
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #38 : 03-02-2009 17:27 » |
|
а вот так извратов не надо for(nCountA=0 ;*psz ; *psz=='a' ? nCountA++:13, *psz=='a' ? *psz='A':13, psz++);
13 - это просто число нравится )) и не забываем, что 'A' не надо считать
|
|
« Последнее редактирование: 03-02-2009 17:31 от Алексей1153++ »
|
Записан
|
|
|
|
Антон (LogRus)
|
|
« Ответ #39 : 04-02-2009 06:46 » |
|
И это тоже тобе будет ИДЕНТИЧНАЯ запись. Но зачем это делать? Записи идентичны только с точки зрения копмилятора, но как препод я бы обязательно на зачёте спросил зачем там нужен break? Обоснование см. выше.
Зачем писать на c++? Зачем нужны шаблоны которые не разу не инстанцированы?
|
|
|
Записан
|
Странно всё это....
|
|
|
Джон
просто
Администратор
Offline
Пол:
|
|
« Ответ #40 : 04-02-2009 09:13 » |
|
Лёш, точно. Про for я и не подумал. Чёт я уже утомился. LogRus, ещё раз - "зачем это делать В ДАННОМ СЛУЧАЕ". Ты кстати тоже не написал break, хотя и говоришь, что switch взял у Лёшки. Ну и? Кому спорим?
|
|
|
Записан
|
Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома. "Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash "Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman "All science is either physics or stamp collecting." Ernest Rutherford "Wer will, findet Wege, wer nicht will, findet Gründe."
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #41 : 04-02-2009 09:40 » |
|
Джон, а я просто никогда while не использую (кроме как в начале этой темы do-while) , просто обожаю for
|
|
|
Записан
|
|
|
|
Антон (LogRus)
|
|
« Ответ #42 : 04-02-2009 09:41 » |
|
Я руководствовался эстетическими потребностями организма, а нет тем нужен он там или нет, но если наличие улучшает читаемость кода я только за. кроме фор есть еще for_each + boost::lambda если будет время обязательно напишу
|
|
|
Записан
|
Странно всё это....
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #43 : 04-02-2009 09:44 » |
|
LogRus, а форич синеньким не подсвечивается, а эстетика требует
|
|
|
Записан
|
|
|
|
Антон (LogRus)
|
|
« Ответ #44 : 04-02-2009 09:54 » |
|
у кого как
|
|
|
Записан
|
Странно всё это....
|
|
|
Джон
просто
Администратор
Offline
Пол:
|
|
« Ответ #45 : 04-02-2009 20:54 » |
|
Вот так без изврата, с подсчётом 'А': int nCountA=strlen(psz); while(*psz && (nCountA-=((*psz=='a')||(*psz=='A'))?0:1) && (*psz=(*psz=='a')?'A':*psz) && psz++);
А если 'А' не считать, то получается совсем мало букафф: int nCountA=strlen(psz); while(*psz && (nCountA-=(*psz=='a')?(*psz='A')*0:1) && psz++);
|
|
|
Записан
|
Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома. "Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash "Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman "All science is either physics or stamp collecting." Ernest Rutherford "Wer will, findet Wege, wer nicht will, findet Gründe."
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #46 : 05-02-2009 04:54 » |
|
мой ход char str[]="jfjhgsgagajdkfjkahafasgdjf"; DWORD dwdCountA=0; for(char* p=str-1; p=strchr(p+1,'a'); *p='A', dwdCountA++);
|
|
|
Записан
|
|
|
|
Антон (LogRus)
|
|
« Ответ #47 : 05-02-2009 07:15 » |
|
а вот так: using namespace boost::lambda; std::for_each(str, str + sizeof(str) - 1,( if_(_1 == 'a') [ _1 = 'A', ++var(count) ] .else_ [ if_(_1 == 'A') [++var(count)] ] ) );
или так using namespace boost::lambda; std::for_each(str, str + sizeof(str) - 1,( if_(_1 == 'a')[_1 = 'A'], if_(_1 == 'A')[++var(count)] ));
|
|
|
Записан
|
Странно всё это....
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #48 : 05-02-2009 08:09 » |
|
LogRus, жЭсть
|
|
|
Записан
|
|
|
|
Вад
|
|
« Ответ #49 : 05-02-2009 08:33 » |
|
LogRus, шикарно Я и не знал, что в бусте реализована библиотека для lambda-выражений. Красота!
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #50 : 05-02-2009 08:39 » |
|
да ну, некрасиво
|
|
|
Записан
|
|
|
|
Вад
|
|
« Ответ #51 : 05-02-2009 08:42 » |
|
Алексей1153++, кому как
|
|
|
Записан
|
|
|
|
Антон (LogRus)
|
|
« Ответ #52 : 05-02-2009 09:01 » |
|
Вад, и не одна еще есть boost.Phoenix, но я его в глаза не видел Алексей1153++, кому как и главное понятно, что делается и кстати быстро работает почти, как обычный цикл
|
|
|
Записан
|
Странно всё это....
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #53 : 05-02-2009 09:03 » |
|
LogRus, так вот как раз и непонятно нифига )
|
|
|
Записан
|
|
|
|
Serg79
|
|
« Ответ #54 : 08-02-2009 22:05 » |
|
А что бы преподаватель не задавал лишних вопросов типа "а почему сделал так а не вот так" и т.п. , приносим ему вот такие программы : #include <setjmp.h> #include <stdio.h>
#define cc(b,d) b##a##d##e #define OOoo__ 'A' #define O_O_o_ c #define c_(a,b) i##a##b #define oo_O__ ){ #define ccc_C_(f,t) t##f##s##t #define ccc(x,y) x##r##e##y##k #define cC__(a,b) a##b##( #define c_c_(z,a,b) z##e##a##b##m##p #define oo_ cc(c,s) #define cc_c__(l,e,g,m) l##u##e##c##h##g##m #define ooOO__ 'a' #define cc_Cc_(a,e) e##o##i##a #define cc__(l,x,y,z) l##x##t##c##y##z##r #define o_ c_(n,t) #define ccc_(a,o,e) o##m##p##e##u##a #define Oo_ ,c); #define __c_cc(o,e) e##a##i##o #define o_O cc_c__(p,t,a,r) #define c_c__(z,a,b) l##z##a##g##b##m##p #define oO_o_ ccc(b,a) #define ccC__(o,a,g) a##g##i##t##c##o #define OOO__ ccc_C_(l,e) #define c__CC_(x,c) c##x##t##x #define ooO__ "%d\n" #define O_o_ c_c_(s,t,j) #define c_cc__(a,b) b##O##a #define ___oOo_oOOo__ ccc_(f,j,_b) #define _cC__(a,u,y) u##p##a##i##y##t##u #define oo___ cC__(i,f) #define oo__OO_ c__CC_(o,g) #define _OoO_ __c_cc(n,m) #define ccc___(a,y,u) y##t##u##a##a #define oooo__ ccC__(h,s,w) #define ___o oo_ #define O_o c_c__(o,n,j) #define _oOooO_ cc_Cc_(d,v) #define ooo__O _cC__(r,f,n) #define oo__O_ ccc___(r,s,de) #define __ooO c_cc__(F,E) #define o_O_ cc__(g,e,h,a)
___oOo_oOOo__ O_; o_ O_O_o_ , _oo_ , oo_o ; _oOooO_ _OoO_(_oOooO_ oo_O__ oo_o=O_o_(O_); Oooo___O_____________ : oooo__ (oo_o oo_O__ oo_ 0:_oo_=o_O_ ();oO_o_;___o 1 :oo___ _oo_ == ooOO__) O_O_o_++; oO_o_; ___o 2 : oo___ _oo_ == ooOO__) _oo_ = OOoo__; oO_o_;oo_ 3: o_O (_oo_ ); oO_o_; } oo___ oo_o || _oo_ != __ooO oo_O__ oo___ ++oo_o >=4 oo_O__ oo_o = 0 ; oo__OO_ Oooo___O_____________ ; } OOO__ O_o(O_,oo_o); }ooo__O ( oo__O_ , ooO__ Oo_}
Считает 'a' и преобразует их в 'A'. Запускать вот так :
|
|
|
Записан
|
|
|
|
Finch
Спокойный
Администратор
Offline
Пол:
Пролетал мимо
|
|
« Ответ #55 : 08-02-2009 22:37 » |
|
Serg79, Сколько интересно ты времени потратил на это произведение искуства?
|
|
|
Записан
|
Не будите спашяго дракона. Джаффар (Коша)
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #56 : 09-02-2009 04:41 » |
|
класс
|
|
|
Записан
|
|
|
|
Serg79
|
|
« Ответ #57 : 09-02-2009 07:57 » |
|
Serg79, Сколько интересно ты времени потратил на это произведение искуства?
Дело было вечером, делать было нечего. На шифрование часа полтора где то.
|
|
|
Записан
|
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #58 : 09-02-2009 08:05 » |
|
Serg79, мастерски +5 Однозначно! И главное - красиво. Ведь хорошая программа должна красиво выглядеть.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Джон
просто
Администратор
Offline
Пол:
|
|
« Ответ #59 : 09-02-2009 09:02 » |
|
Я думаю, надо автоматизировать кодер и скрестить его с Лёшкиной игрушкой, будет ещё и в цвете.
|
|
|
Записан
|
Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома. "Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash "Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman "All science is either physics or stamp collecting." Ernest Rutherford "Wer will, findet Wege, wer nicht will, findet Gründe."
|
|
|
|