Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: 1 2 3 [Все]   Вниз
  Печать  
Автор Тема: Флуд из Помогите с подсчётом строк и символов (C/C++)  (Прочитано 54176 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Serg79
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« : 02-02-2009 08:48 » 

Начало здесь

https://forum.shelek.ru/index.php/topic,17902.0.html

*************


LogRus, а это будет работать? Улыбаюсь
Вроде я С++ немного знаю, но при взгляде на Твой код начинаю понимать, что С++ то оказывается не знаю и самое главное, Я слабо понимаю то что на нем написано. Улыбаюсь
« Последнее редактирование: 03-02-2009 15:26 от Джон » Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #1 : 02-02-2009 08:53 » 

Serg79, та у Логруса инстинкт - всё переделывать на STL Улыбаюсь И я даже думаю, что это работает Улыбаюсь)
Записан

Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #2 : 03-02-2009 05:15 » 

даже работает Улыбаюсь
Serg79, я тоже не знаю Улыбаюсь а выпендриваться люблю.
А написано на нём следующее:
1. создан функтор, конструктор которого принимает ссылку на счётчик
2. в функтор добавлен оператор () с одним аргументом (этот аргумент ему подсунет алгоритм)
3. использован алгоритм for_each который для каждого из элементов на интервале от str до str + sizeof(str) - 1 вызовет у переданного функтора оператор () и передаст туда элемент, в нашем случае char

Код полностью эквивалентен коду Алексей1153++ кстати кусок switch я от туда стащил Улыбаюсь
« Последнее редактирование: 03-02-2009 15:26 от Джон » Записан

Странно всё это....
Serg79
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 03-02-2009 07:37 » 

Код полностью эквивалентен коду Алексей1153++ кстати кусок switch я от туда стащил Улыбаюсь
Да, кстати 'switch' Алексей1153++ понравился, неординарный подход Улыбаюсь . Кстати, генерируемый компилятором код при этом получается самым оптимальным.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #4 : 03-02-2009 07:46 » 

оптимальный, но не наглядный - это я специально для Аполлона так сделал, пусть ещё и опечатку найдёт )
Записан

Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #5 : 03-02-2009 09:36 » 

Лёш, не только опечатку, но и ошибку. Ага
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"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."
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #6 : 03-02-2009 09:43 » 

Джон, нет, тока очепятка, алгоритм работает
Записан

Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #7 : 03-02-2009 09:49 » 

Ну он и с ошибкой работает. Ага Ошибка не влияет на результат, но это ошибка поскольку ты выбрал такой подход. Ага
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"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."
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #8 : 03-02-2009 09:50 » 

ну даже интересно стало, что за ошибка ?
Записан

Serg79
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #9 : 03-02-2009 09:52 » 

Блин, Вы меня заинтриговали, собрал исходник:
Код:
#include <stdio.h>

int main(void)
{
        int count = 0;
        int c;

        while ((c = getchar()) != EOF) {
                switch(c) {
                        case 'a': c = 'A';
                        case 'A': count++;
                }
                putchar(c);
        }

        fprintf(stderr,"\n%d\n",count);
        return 0;
}
все работает. Подмена выполняется, считает правильно.
Записан
Вад
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #10 : 03-02-2009 09:53 » 

Алексей1153++, sizeof, надо полагать Ага
Записан
Serg79
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #11 : 03-02-2009 09:54 » 

Алексей1153++, sizeof, надо полагать Ага
Не, sizeof здесь отработает правильно.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #12 : 03-02-2009 09:54 » 

Вад, что не так ? ) Статический массив, вернёт количество байт, как и положено
Записан

Вад
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #13 : 03-02-2009 09:56 » 

Serg79, здесь - да Улыбаюсь
Алексей1153++, вот именно, что он статический. Можешь представить себе задачу, где такое решение понадобится?
« Последнее редактирование: 03-02-2009 09:57 от Вад » Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #14 : 03-02-2009 09:57 » 

Вад, ну так если был не статический массив, я бы sizeof не применил Улыбаюсь
Записан

Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #15 : 03-02-2009 10:03 » 

Serg79, так ты исправил ошибку. Ага
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"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."
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #16 : 03-02-2009 10:07 » 

Да не не заморачивайтесь. Тут проблема в break - 1. после него не стоит ; и 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."
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #17 : 03-02-2009 10:08 » 

Джон, break ? ) Это не ошибка

а ; - это опечатка )))
Записан

Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #18 : 03-02-2009 10:11 » 

зы Ну и ещё один момент, но тут спорный вопрос - проблема с условием. В условии не стоит, что надо подсчитывать количество 'А', а только 'а'. В этом случае решение не верно.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"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."
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #19 : 03-02-2009 10:13 » 

Джон, 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."
Serg79
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #20 : 03-02-2009 10:14 » 

Походу Джон не вкурил как это работает. Улыбаюсь
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #21 : 03-02-2009 10:33 » 

Джон, break там не мешает абсолютно, я просто по привычке ставлю, чтобы в будущий блок не залесть потом Улыбаюсь Бывало такое.

ну а насчёт подсчёта ты прав, тогда надо так:
Код:
  if(str[i]=='a')
  {
     str[i]='A';
     dwdCountA++
  }
Записан

Serg79
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #22 : 03-02-2009 10:40 » 

Ну не знаю, в задании не говориться подсчитать количество маленьких 'a', а большие 'A' не считать, там говориться Дана строка символов найти в ней   количество символов  (а)  И если они  маленькие, то перевести их в большие буквы  (А), т.е. подсчитывать все 'a' но если они маленькие то сделать их большими 'A'.

По моему так, если я все правильно понял.
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #23 : 03-02-2009 10:52 » 

Serg79, эммм даю справочку - Джон вкурил, ещё с первого раза и без проверки на компиляторе. Впрочем как и LogRus, корый в совём коде тоже break не поставил. Смотрите внимательней. Ага А наличие в программе лишнего ничего не делающего кода в моём понимании есть ошибка. Если вы так не считаете, тады ой. Ага Вобще-то программер несёт ответственность за каждую строчку, за каждую буковку и должен обосновать её наличие в программе.  Ладно ещё когда код в несколько тысяч строк и там сам чёрт ногу сломит, но в данном случае код не такой уж и большой. ИМХО разумеется.

По моему так, если я все правильно понял.

Абсолютно правильно понял - СЧИТАТЬ нужно только 'a'. А теперь добавь в строку примера 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."
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #24 : 03-02-2009 11:03 » 

Джон, я обосновал - это привычка, выработанная граблями))

например

switch(...)
{
   case 1:
   case 2://break - не поставил
}


а через год добавляем "3" с другой логикой

switch(...)
{
   case 1:
   case 2:
   case 3:
}

и глюк закопошился, если ты забыл после "2" приписать break Ага
Записан

Serg79
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #25 : 03-02-2009 11:03 » 

Ну незнаю Джон, там говориться найти в ней   количество символов  (а)  И если они  маленькие, то перевести их в большие буквы  (А), это подразумевает что a могут попадать как маленькие так и большие, но если a маленькая, то ее надо сделать большой. Улыбаюсь

Ну а break в операторе switch ни коим боком не влияет на что либо находясь в конце оператора switch. Т.е. эти записи идентичны:
Код:
switch (c) {
    case 'a':
    case 'A':
}
и
Код:
switch (c) {
    case 'a':
    case 'A':
        break;
}
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #26 : 03-02-2009 11:26 » 

По поводу условий я поэтому сразу оговорился:

тут спорный вопрос - проблема с условием.

Поэтому дальнейший спор не имеет смысла и хорошо, что теперь есть решение для обоих случаев.

Ну а break в операторе switch ни коим боком не влияет на что либо

Да нууу? Серьёзно? Ага А где я сказал что он на что-то влияет? С таким же успехом можно впендюрить куда-нить в код int nX = 345; и это тоже ни на что не повлияет. А ещё можно так записать:

Код:
switch (c) {
    case 'a':
    case 'A':
        break;
    deafult:
        break;
}
И это тоже тобе будет ИДЕНТИЧНАЯ запись. Но зачем это делать? Записи идентичны только с точки зрения копмилятора, но как препод я бы обязательно на зачёте спросил зачем там нужен break? Обоснование см. выше.

Лёш, в данном случае это не обоснование, а отмазка. Ага
« Последнее редактирование: 03-02-2009 11:31 от Джон » Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"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."
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #27 : 03-02-2009 11:44 » 

Джон, думай, как хочешь Улыбаюсь Но лично меня такие привычки только от лишней головной боли в будущем спасают. Я на автомате это пишу, а не для того, чтоб препода аффтара запутать Улыбаюсь)
Записан

Serg79
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #28 : 03-02-2009 11:47 » 

На счет писать break или не писать то это зависит от того кого читаешь, одни пишут по этому поводу, что писать break в конце является хорошей идеей, другие по этому поводу вообще ничего не говорят. Улыбаюсь Но то, что break в конце может кого то вводить в заблуждение, я об этом первый раз слышу. Улыбаюсь
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #29 : 03-02-2009 12:00 » 

Лёш, да я-то понял, что на афтамате.

Serg79, где я сказал про заблуждение? Я говорю, что он НЕ НУЖЕН в данном коде. Вот так, уже проще некуда.
Я это сразу автоматически отметил "про себя" как только увидел лёшкин код. Кстати ты его тоже в своём примере не поставил, а ведь ещё не знал, что я имею ввиду. А почему? Ага Ну и кому спорим? Ага
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"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."
Serg79
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #30 : 03-02-2009 12:11 » 

ОК, убедил Джон. Улыбаюсь
Только я скажу за себя, когда я пишу рабочий код то break в конце switch я всегда ставлю, даже в секции default. Улыбаюсь
Записан
Джон
просто
Администратор

de
Offline 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."
Вад
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #32 : 03-02-2009 12:46 » 

Ведь человеку с ЭТИМ ещё сдаваться надо.
Джон, в таком случае преподу ничто не мешает спросить: "а почему нету break?" Если студент ответа не знает, завалить можно многими способами Улыбаюсь
Записан
Джон
просто
Администратор

de
Offline 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
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #34 : 03-02-2009 13:25 » 

Джон, отменял Улыбаюсь
даже знаю такого, кто отменял - это я Улыбаюсь. К моменту сдачи экзамена, я по предмету знал больше чем препод. Но эта сцучка - все равно поставила мне четверку - нехер выпендриваться.
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Serg79
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #35 : 03-02-2009 13:38 » 

А давайте выслушаем мнение аффтара темы.
Apolon, Вы как считаете, break это ГУД или не ГУД в конце switchЧто, съел?
Записан
Джон
просто
Администратор

de
Offline 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."
Джон
просто
Администратор

de
Offline 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."
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline 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)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #39 : 04-02-2009 06:46 » 

И это тоже тобе будет ИДЕНТИЧНАЯ запись. Но зачем это делать? Записи идентичны только с точки зрения копмилятора, но как препод я бы обязательно на зачёте спросил зачем там нужен break? Обоснование см. выше.

Зачем писать на c++?
Зачем нужны шаблоны которые не разу не инстанцированы?
Записан

Странно всё это....
Джон
просто
Администратор

de
Offline 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."
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #41 : 04-02-2009 09:40 » 

Джон, а я просто никогда while не использую (кроме как в начале этой темы do-while) , просто обожаю for Улыбаюсь
Записан

Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #42 : 04-02-2009 09:41 » 

Я руководствовался эстетическими потребностями организма, а нет тем нужен он там или нет, но если наличие улучшает читаемость кода я только за. Улыбаюсь

кроме фор есть еще for_each + boost::lambda Улыбаюсь если будет время обязательно напишу Улыбаюсь
Записан

Странно всё это....
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #43 : 04-02-2009 09:44 » 

LogRus, а форич синеньким не подсвечивается, а эстетика требует  Что, съел?
Записан

Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #44 : 04-02-2009 09:54 » 

у кого как Улыбаюсь
Записан

Странно всё это....
Джон
просто
Администратор

de
Offline 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."
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline 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)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #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)]
));
Записан

Странно всё это....
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #48 : 05-02-2009 08:09 » 

LogRus, жЭсть Улыбаюсь
Записан

Вад
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #49 : 05-02-2009 08:33 » 

LogRus, шикарно Улыбаюсь Я и не знал, что в бусте реализована библиотека для lambda-выражений. Красота!
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #50 : 05-02-2009 08:39 » 

да ну, некрасиво
Записан

Вад
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #51 : 05-02-2009 08:42 » 

Алексей1153++, кому как Улыбаюсь
Записан
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #52 : 05-02-2009 09:01 » 

Вад, и не одна Улыбаюсь еще есть boost.Phoenix, но я его в глаза не видел
Алексей1153++, кому как и главное понятно, что делается Улыбаюсь и кстати быстро работает почти, как обычный цикл
Записан

Странно всё это....
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #53 : 05-02-2009 09:03 » 

LogRus, так вот как раз и непонятно нифига )
Записан

Serg79
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #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'. Запускать вот так  Отлично :
Код:
prog.exe < file.txt
Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #55 : 08-02-2009 22:37 » 

Serg79, Сколько интересно ты времени потратил на это произведение искуства?
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #56 : 09-02-2009 04:41 » 

класс Отлично
Записан

Serg79
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #57 : 09-02-2009 07:57 » 

Serg79, Сколько интересно ты времени потратил на это произведение искуства?
Дело было вечером, делать было нечего. На шифрование часа полтора где то. Улыбаюсь
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #58 : 09-02-2009 08:05 » 

Serg79, мастерски Улыбаюсь +5 Однозначно!
И главное - красиво. Ведь хорошая программа должна красиво выглядеть.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Джон
просто
Администратор

de
Offline 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."
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #60 : 09-02-2009 09:46 » 

нее, я за парсер программ на си++ не возьмусь Отлично
Записан

Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #61 : 09-02-2009 12:11 » 

Не, Лёш, ты не понял, не надо парсить, можно сделать гораздо проще. Нужно просто для каждой строчки кода придумать текстовый эквивалент в define. Только этот текст уже должен быть из комбинаций символов "псевдографики" - в кавычках потому что не настоящая псевдографика, а что там у тебя? Ща уже не помню. Ну типа такого (без цвета)

Код:
#include "stdafx.h"
#include "main_program.h"

 ______o_____
 _____ooo____
 ____oooo____
 ___oooooo___
 __oooooooo__
 _oooooooooo_
 oooooooooooo

* main_program.h (0.35 Кб - загружено 827 раз.)
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"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."
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #62 : 09-02-2009 12:15 » 

ну тогда просто - каждую строчку тупо через дефайн )
Записан

Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #63 : 09-02-2009 13:25 » 

Ну, да. Только в цвете и чтоб не повторялась.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"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."
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #64 : 09-02-2009 16:14 » 

я только про цвет не уловил - где он будет ? ) Компилироваться же перестанет
Записан

Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #65 : 09-02-2009 16:56 » 

На страничке будет цветной. Как после нормальной шелектой, а сами символы - уже дефайны. Ну типа так:

#include "stdafx.h"
#include "main_program.h"

 ______o_____
 _____ooo____
 ____oooo____
 ___oooooo___
 __oooooooo__
 _oooooooooo_
 oooooooooooo

Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"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."
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #66 : 09-02-2009 17:03 » 

1) берём исходник
2) берём картинку
3) бьём исходник на N частей, где N - количество строк в картинке
4) лепим дефайны
5) составляем из дефайнов новый исходник
5) разукрашиваем инстансы дефайнов

так ?
Записан

Serg79
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #67 : 09-02-2009 17:53 » 

А в чем прикол то?
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #68 : 09-02-2009 17:57 » 

в нехватке времени Улыбаюсь Чтоб вручную не делать 1,5 часа, чтоп за сякунду! ))))
Записан

Serg79
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #69 : 09-02-2009 18:04 » 

в нехватке времени Улыбаюсь Чтоб вручную не делать 1,5 часа, чтоп за сякунду! ))))
Да не, в том что бы цветное было. Это зачем?
Записан
Serg79
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #70 : 09-02-2009 18:05 » 

А что бы автоматом такое делать, так это я думаю дел на одни выходные.
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #71 : 09-02-2009 18:10 » 

Serg79, просто когда-то Леха сделал программу, которая генерила текст формата BB-кодов из картинки.

ShelekToy 3.5:
https://club.shelek.ru/viewfiles.php?id=3
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Serg79
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #72 : 09-02-2009 18:14 » 

Все, понял Улыбаюсь , спасибо RXL.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #73 : 09-02-2009 18:15 » 

недавно в код сунулся и ужаснулся - неужели это я писал , был пьян ? Но работает вроде ))
Записан

Serg79
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #74 : 09-02-2009 18:17 » 

RXL, заметил одну особенность, при попытки что либо скачать со страницы: https://club.shelek.ru/viewfiles.php?id=3 , у меня браузер вместо того чтобы выкинуть окошко сохранить файл, начинает загружать архивы по типу текстовых файлов. Я так понимаю, что браузер не корректно обрабатывает MIME?
Записан
Serg79
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #75 : 09-02-2009 18:20 » 

недавно в код сунулся и ужаснулся - неужели это я писал , был пьян ? Но работает вроде ))
Кстати, бывает.  Здесь была моя ладья...  Я это поборол только тогда, когда код стал просто переполнять комментариями, иногда даже такими тупыми:
Код:
exit(0); /* завершаем работу */
С ума сойти...
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #76 : 09-02-2009 18:30 » 

не в комментариях дело, у меня их всегда много было , а в постепенном выпрямлении рук )
Записан

Serg79
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #77 : 09-02-2009 18:32 » 

не в комментариях дело, у меня их всегда много было , а в постепенном выпрямлении рук )
то же верно Улыбаюсь , только что то выпрямляются они не очень быстро  Не-а...
« Последнее редактирование: 09-02-2009 18:37 от Serg79 » Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #78 : 09-02-2009 18:38 » 

Отлично
Записан

RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #79 : 09-02-2009 18:54 » 

RXL, заметил одну особенность, при попытки что либо скачать со страницы: https://club.shelek.ru/viewfiles.php?id=3 , у меня браузер вместо того чтобы выкинуть окошко сохранить файл, начинает загружать архивы по типу текстовых файлов. Я так понимаю, что браузер не корректно обрабатывает MIME?

У меня тоже. Видимо нужно прописать аапачу соответствие расширения rar и MIME. Ведь по умолчанию все они text/html...
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Serg79
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #80 : 09-02-2009 19:11 » 

Кстати, у меня для rar так же нет записи в mime.types апачевском. Я вот думаю, а не лучше ли будет сказать апаче чтобы он по дефолту отдавал как application/octet-stream? Тогда он все не распознаные файлы будет отдавать как объекты для закачки.
« Последнее редактирование: 09-02-2009 19:15 от Serg79 » Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #81 : 10-02-2009 04:08 » 

Логично. Но сомнение гложет: не зря же сделано text/html по дефолту. Может какой-нибудь подводный камень быть. Думаю, что сперва стоит поиском поработать - обоснование почитать.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Страниц: 1 2 3 [Все]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines