Форум программистов, компьютерный форум CyberForum.ru

Алгоритмы. Поиск верного решения задачи. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Куда двигаться дальше?? http://www.cyberforum.ru/cpp-beginners/thread339469.html
Доброй ночи всем! Вот с грехом пополам основы С++ приблизительно прошел. Простые консольные приложения могу делать. А дальше что?? На одной консоли ведь не выедешь. Пытался понять, в какую сторону двигаться. Запутался окончательно в этих MFC winapi, windows forms, базах данных. Посоветуйте, что дальше учить, чтобы скаканий туда сюда без толку не было))
C++ Ресурсы. Как достать и скопировать файл. У меня такой вопрос как из ресурса достать кокой то файл и скопировать его в какую нибудь директорию? http://www.cyberforum.ru/cpp-beginners/thread339462.html
C++ Как сделать и включить в проект иконку приложения
Здравствуйте! В win 7 многие приложения имеют иконки, которые не теряют качество при масштабировании (векторные скорее всего). Как сделать такую для своего приложения (в какой программе), сделанного на C++, и включить ее в проект? Заранее спасибо! P.S.: Извините, если не в тему, но прошу не удалять хотя бы некоторое время этот пост, а то уже весь инет перерыл, ничего найти на эту тему не...
компилятор нашёл ошибку C++
Ввёл всё как в книге, но компилятор нашёл ошибку. Помогите пжалуйста. И ещё, в спец. теме, пытался понять - как же быть с русскими буквами в среде? Читпл, но ничего не понял. Если нек сложно - подскажите, или дайте ссылку, где об этом попроще написанно. (У меня ХР)
C++ Как скрыть какую либо програму с панели пуск? http://www.cyberforum.ru/cpp-beginners/thread339433.html
Как скрыть какую либо програму с панели пуск? Пример: вот у меня на пуске висит игра, как её скрыть зная HWND?
C++ getline в string как сделать getline в string. ну чтобы считывало в string до нажатия enter с пробелами подробнее

Показать сообщение отдельно
Сыроежка
Заблокирован
07.08.2011, 19:28     Алгоритмы. Поиск верного решения задачи.
Цитата Сообщение от diagon Посмотреть сообщение
Вот это самооценка Уважаю!


Во-первых, не пытаюсь - написал.
Во-вторых, приведите мне код, который делает то же самое.
Я крайне сомневаюсь, что он получится в одну строку.
Вопрос - зачем так извращаться, если мне нужна одна элементарная функция, которая по сложности приблизительно равна а + б?



Где-то я это уже слышал... Но аргументов так и не дождался.


Возможно, потому, что задача в процедурном стиле?
Заметьте, в формулировке фигурировало слово "функция".


Да, вы правы. Я думаю, все оттого, что с++ неодушевлен. Я пытался его разговорить, но это действительно так.
Ваш подход - это сто раз писать сто различных функций и один раз их использовать. Почему один раз? Да потому что как только изменится условие задачи, вам придется писать сто первую функцию! Фактически, вы поступаете следующим образом. Вы всю стандартную библиотеку С++ выкидываете в мусорное ведро и начинаете для частного случая писать частную функцию, которая совершенно не пригодна для ее обобщения.

Давайте рассмотрим, какие могут возникнуть задачи. Например,
1. Это исходная задача - найти максимальную цифру.
Далее могут возникнуть задачи
2. Найти минимальную цифру
3. Найти сумму цифр числа
4. Найти частичные суммы цифр числа
5. Найти произведение цифр числа
6. Найти частичные произведения цифр числа
7. Подсчитать количество четных цифр в числе
8. Подсчитать количество нечетных цифр в числе
10. Найти в числе заданную цифру
11 записать цифра числа в контейнер
12 Получить все перестановки цифр числа
13. Найти первую цифру в числе, которая входит в заданный набор цифр.
и т.д. и т.д.

Для каждой этой задачи вы пишите свою функцию. Даже написание сотни очень простых функций чревато возникновением ошибок. Но все, что я перечислили и мог бы перечислить, уже сделано! Например, чтобы подсчитать количество четных или нечетных цифр в числе, если бы вы имели итератор, можно сделать с помощью алгоритма std::count. Найти заданную цифру в числе можно с помощью алгоритма std::find или std::find_if. Переписать цифры в контейнер можно с помощью алгоритма std::copy и т.д. То есть если бы вы имешли входной итератор, то перед вами открываются неограниченные возможности.

То есть в от личии от вашего подхода, когда вы пишите сто различных функций и один раз их используете, при написании соответсвующего итератора вы один пишите код и используете его неограниченное число раз! Так как в вашем распоряжении уже написанная библиотека различных сьтандартных алгоритмов. Как говорится, почувствуйте разницу!

Добавлено через 59 секунд
Цитата Сообщение от silent_1991 Посмотреть сообщение
Сыроежка, зачем писать итератор, когда можно воспользоваться строковыми потоками и получить то же самое?

Хорошая идея, мне она в голову сразу же не пришла.

Добавлено через 5 минут
Цитата Сообщение от IIIa66uMEM6eP Посмотреть сообщение
это к той самой теме, где 50 способов написания "Hello world"

Добавлено через 2 минуты

Расскажите это преподавателю в вузе, лично нас за это ругают) Всячески отучают программировать мышкой. Если это есть - замечательно, нужно самому написать и понять суть.

Добавлено через 2 минуты

увы, не оценил, я не счетаю это более рациональным решением данной задачи.. мало книг? Да они мне снятся уже, у меня книжная полка плюсами обставлена, не счетая электронной библиотеки.
Вас преподаватели ругают, потому что от вас требуют практических занятий, чтобы вы на простых примерах изучали язык. А не оценили вы мою идею именно потому, что решая эти многочисленные задачи, вы за "тремя деревяьми не видите леса"! То есть вы не в состоянии мыслить абстрактно и не понимаете те возможности, которые предоставляет С++. ВЫ сразу же бросаетесь в "рукопашное программирование". То есть, как я уже сказал, у вас отсутствует объектно-ориентированное мышление. В виду слабой квалификации как программиста, вам даже не приходит в голову мысль, как воспользоваться тем арсеналом С++, который имеется в вашем распоряжении, как сделать так, чтобы извлечь максимальную пользу из кода, сделать его универсальным и наделить его той силой, которой обладает С++.
 
Текущее время: 16:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru