С++ для новичков, вопросы, ответы, книги, с чего начать |
Здравствуйте Гость [ Вход | Регистрация ] | Форум в сети 6729-й день
![]() |
Шановні користувачі! Запрошуємо вас до офіційного телеграм-канала 0day Community. Тут ви зможете поспілкуватися одне з одним та дізнатися про останні новини щодо роботи ресурса, поставити запитання до адміністрації, тощо. Перейти до телеграм-канала можна відсканувавши QR-код або натиснувши на посилання: @zeroday_ua |
С++ для новичков, вопросы, ответы, книги, с чего начать |
pokemon4eg |
![]()
Пост
#1
|
Репутация: ![]() ![]() Дух Группа: Пользователи Сообщений: 13 С нами с: 16-August 08 ![]() |
![]() ![]() Попробуем сделать что-то хорошее для С++ и начинающих программистов ![]() В описании раздела программирования есть много языков. В том числе и С++. Правда поиском по форуму по слову "С++" ничего не нашел. Вот и решил сделать тему в которой будем отвечать на вопросы и помогать друг-другу в этом не легком, а порой и очень нервном ![]() ![]() С чего начать? C++ wiki: http://ru.wikipedia.org/wiki/C%2B%2B Вам понадобится 3 вещи: 1) Google 2) IDE (интегрированная среда разработки) 3) Книга: С++ для чайников: http://forum.0day.kiev.ua/index.php?showtopic=103405 IDE: » Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... « Первая программа. Hello C++: » Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... « Бесплатные технологи для С++ : » Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... « По возможности буду выкладывать примеры вот сюда: http://github.com/k0ndr0ng1thub/0dayForumC...er/CppExamples/ ![]() Книги: » Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... « Сообщение отредактировал pokemon4eg - Dec 3 2009, 17:23 |
![]() ![]() |
Logo |
Пост
#21
|
Незарегистрированный ![]() |
// как сделать такой примитив
// с защито й от дурака // чтобы CIN хавал только числа // иначе запрашивал снова Грубо говоря - Нужно в функцию вычисления z передать два int аргумента x,y: и вычислить их сумму. » Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... « Сообщение отредактировал Logo - Apr 29 2009, 14:04 |
ROST |
Пост
#22
|
Репутация: ![]() ![]() serrwrtet Группа: Пользователи Сообщений: 121 С нами с: 23-November 07 ![]() |
Можна зробити так:
» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... « |
Logo |
Пост
#23
|
Незарегистрированный ![]() |
Отлично в Visual Studio 2008 , Но в Borland С++ Builder 6 -
[C++ Warning] Unit1.cpp(19): W8012 Comparing signed and unsigned values на этот кусок - for(int i=1; i<s.size(); i++) Почему Я не могу юзать VS: 1. в институте , зав кафедры , хочет только сырцы а компилить она будет в Borland С++ Builder 6 2. далее нужно будет прикрутить графику- и вызывать вот ИТО - initgraph (&gd, &gm, "d:\\bc\\bgi"); Знайте все ИТО злое место с Борландом - "ІЗІТ при НАУ" ))) |
Charge |
Пост
#24
|
Репутация: ![]() ![]() Дух Группа: Пользователи Сообщений: 34 С нами с: 18-March 09 ![]() |
Warning - не error
![]() Определи i как беззнаковое целое и будет тебе счастье. А вообще, существует миллион+1 честный способ проверки ввода на корректность. Не стесняйся фантазировать и придумать свой ![]() Первое, что пришло в голову: int i; if ((cin >> i).good() && cin.get() == 10) { корректный ввод } else { некорректный } Дальше думай сам. Не забывай сбрасывать флаги состояния потока после неправильного ввода, если будешь обращаться к нему снова: cin.clear() |
The_David |
Пост
#25
|
Репутация: ![]() ![]() Дух Группа: Пользователи Сообщений: 14 С нами с: 14-November 07 ![]() |
Можна например так:
» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... « |
Monti_berns |
Пост
#26
|
Незарегистрированный ![]() |
Ребят, я понимаю что вопрос тупой. Сори. Но я хотел бы знать, можно ли добиться чего либо в программировании если заниматься им как хобби. Тоесть, пришел с работы пописал что-то, выучил что-то...
![]() |
kerovnik |
Пост
#27
|
Незарегистрированный ![]() |
Ребят, я понимаю что вопрос тупой. Сори. Но я хотел бы знать, можно ли добиться чего либо в программировании если заниматься им как хобби. Тоесть, пришел с работы пописал что-то, выучил что-то... ![]() Для того, щоб досягнути певного рівня у програмуванні, потрібно систематично ним займатися. Найкращі результати досягаються при щоденному написанні коду. Хобі - це справа, яка робиться для власного задоволення. Якщо вона уже приносить прибуток - то це, напевно, робота. У будь-якому випадку, головне - це бажання самовдосконалюватися |
pokemon4eg |
Пост
#28
|
Репутация: ![]() ![]() Дух Группа: Пользователи Сообщений: 13 С нами с: 16-August 08 ![]() |
|
pokemon4eg |
Пост
#29
|
Репутация: ![]() ![]() Дух Группа: Пользователи Сообщений: 13 С нами с: 16-August 08 ![]() |
В обоих исходниках сортировки вставками пропущено <class T> после template. И вообще, зачем копипастить реализации неэффективных алгоритмов сортировки на форум? Особенно с учетом того, что есть std::sort(). я считаю, что ты прав. не стоит изобретать велосипед... надо стараться использовать готовые решения по мере возможностей. но и он тоже прав. сейчас попробую обьяснить на примере почему. как не крути, а в чистом С++ работа со строками прихрамывает если я не ошибаюсь: http://www.cplusplus.com/reference/clibrary/cstring/ наблюдаем "колосальный" набор функций для работы со строками. и еще чуть : http://www.edcc.edu/faculty/paul.bladek/c_...g_functions.htm ну и если поднапрячься, то можно найти еще парочку. но дейсвительно ли их просто использовать? все ли есть в С++ для работы со строками? - нет. ну и сравнить это все с клаасом QString замечательной бибилиотеки Qt: http://qt.nokia.com/doc/4.5/qstring.html Просто ли использовать QString и все ли тут есть? В сочетании в регулярными выражениями - практически все. 2 класса QString и QRegExp делают практически любую работу со строками... То чего нет, можно легко и просто дописать чего не скажешь про С++. К чему я это все? Возвращаясь к std::sort()... Была реальная жизненная ситуация. Делали адрессную книгу которая хранилась в базе. Для того чтоб добавить запись про сотрудника в базу надо было сгенерировать строку с особым форматом из его имени и фамилии. Все что было - это исходник функции на руби который никто не осилил) я посомтрел на формат и решил накодить вручную так, как другого выхода не было. Qt + QRegexp и за пол часа функция готова) std::sort() - это хорошо, но зная примеры которые предоставил Tamplier можно написать свою сортировку, возможно какаую-то спецефическую. а если люди будут пользоваться только std::sort(), то вполне возможно что свою сортировку или чет другое, посложнее std::sort() у них написать не выйдет. ну и еще в них присутсвует работа с массивами, с которыми приходится работать довольно часто. строки в С++ как известно, тоже являются массивами символов. Конечно было бы классно проверить код на работоспособность и предоставить информацию о том, что такое шаблоны в С++... |
pokemon4eg |
Пост
#30
|
Репутация: ![]() ![]() Дух Группа: Пользователи Сообщений: 13 С нами с: 16-August 08 ![]() |
при вводе символа вместо цыфры программа сама пролетает в конец без второго запроса на ввод. » Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... « вылетает потому что лонг - это не строка. кучу вариантов написали... добавлю еще свой. ну или так ![]() C++: » Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... « Пример можно усовершенствовать ![]() |
pokemon4eg |
Пост
#31
|
Репутация: ![]() ![]() Дух Группа: Пользователи Сообщений: 13 С нами с: 16-August 08 ![]() |
Друг спрашивает по С++: Подскажите как в С++ считывать цыфры чтобы программа считывала их нормально - потому что при использовании данного кода при вводе символа вместо цыфры программа сама пролетает в конец без второго запроса на ввод. » Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... « Чтоб не пролетало читай в строку, а потом конвертируй ее в число. void main() { std::string a; cin >> a; cout << "a: " << a; } Сообщение отредактировал pokemon4eg - Nov 20 2009, 17:11 |
gryzovick |
Пост
#32
|
Репутация: ![]() ![]() Старожил ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 2 102 С нами с: 18-March 09 ![]() |
Ап тему, в поиске информации для изучения с 0я
|
G3n3k |
Пост
#33
|
Репутация: ![]() ![]() Халявщик ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 669 С нами с: 15-February 07 ![]() |
Ап тему, в поиске информации для изучения с 0я Классикой обучения с нуля С++ всегда остается книжка "Язык программирования С++" Страуструпа-создателя ![]() Однако она тяжеловата - не все могут с нее начать, потому перед ней можно прочесть любую книгу по С++, из категории "С++ для чайников", после чего вернутся к книжке Страуструпа. Обзязательно. Когда книжка Страуструпа прочитана и освоена, начинаем решать задачки с применением С++ на сайте LeetCode, и не прекращаем. Никогда ![]() Следующими советую прочитать ВСЕ 4 книги Скотта Меерса по С++: эффективный С++, еще более эффективный С++, современный С++ и эффективный STL Дальше настоятельно советую освоить APUE - Advanced Programming in UNIX Environment. Книга на самом деле по С, а не С++, но понимание ее содержимого ОЧЕНЬ пригождается в разработке на плюсах, т.к. дает понимание "подкапотных событий" Дальше читаем C++ Concurrency in Action - Вильямса, шикарная книга по потокам. Дальше полируем шаблонную магию книжечками от Александреску ![]() Дальше читаем Банду Четырех и изучаем основные паттерны. Ну а после, когда все вышеуказанное освоено, уже можно почитать оригинальные стандарты плюсов, и изучать уже то, что предстоит пилить. От себя еще могу добавить, что для широты развития очень полезным будет хотя-бы чутка поковырять boost, boost:asio, ZeroMQ, Qt, POSIX, WinApi, Android NDK и хотябы полистать 4-томник Кнута, чтобы понимать какие есть алгоритмы и для чего(читать не обязательно - можно сдохнуть). В принципе, вышеуказанного уже с головой чтобы быть твердым программером и знать что читать и куда развиваться дальше ![]() Удачи! ![]() |
Бананчик |
Пост
#34
|
Репутация: ![]() ![]() Дух Группа: - Пользователи - Сообщений: 13 С нами с: 24-October 21 ![]() |
Классикой обучения с нуля С++ всегда остается книжка "Язык программирования С++" Страуструпа-создателя ![]() Однако она тяжеловата - не все могут с нее начать, потому перед ней можно прочесть любую книгу по С++, из категории "С++ для чайников", после чего вернутся к книжке Страуструпа. Обзязательно. Когда книжка Страуструпа прочитана и освоена, начинаем решать задачки с применением С++ на сайте LeetCode, и не прекращаем. Никогда ![]() Следующими советую прочитать ВСЕ 4 книги Скотта Меерса по С++: эффективный С++, еще более эффективный С++, современный С++ и эффективный STL Дальше настоятельно советую освоить APUE - Advanced Programming in UNIX Environment. Книга на самом деле по С, а не С++, но понимание ее содержимого ОЧЕНЬ пригождается в разработке на плюсах, т.к. дает понимание "подкапотных событий" Дальше читаем C++ Concurrency in Action - Вильямса, шикарная книга по потокам. Дальше полируем шаблонную магию книжечками от Александреску ![]() Дальше читаем Банду Четырех и изучаем основные паттерны. Ну а после, когда все вышеуказанное освоено, уже можно почитать оригинальные стандарты плюсов, и изучать уже то, что предстоит пилить. От себя еще могу добавить, что для широты развития очень полезным будет хотя-бы чутка поковырять boost, boost:asio, ZeroMQ, Qt, POSIX, WinApi, Android NDK и хотябы полистать 4-томник Кнута, чтобы понимать какие есть алгоритмы и для чего(читать не обязательно - можно сдохнуть). В принципе, вышеуказанного уже с головой чтобы быть твердым программером и знать что читать и куда развиваться дальше ![]() Удачи! ![]() и годы непосильного труда будут спущены в унитаз... Сообщение отредактировал Бананчик - Oct 26 2021, 13:49 |
G3n3k |
Пост
#35
|
Репутация: ![]() ![]() Халявщик ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 669 С нами с: 15-February 07 ![]() |
а в итоге работу не получить... и годы непосильного труда будут спущены в унитаз... Может человек для себя спрашивает?) Мой пост - не ответ "как устроится на работу С++ником", максимум к чему его можно притянуть, это "как не завалить собеседование по С++". А чтоб не завалить, на него, да, нужно еще попасть - должен быть опыт, должны быть позиции, ХР должен обратить на вас внимание и тд - это уже совсем другая история, не про С++ вообще, а как про то "как себя продать". И кстати, при наличии опыта, во всяком эмбеддеде на плюсовиков вполне себе спрос... Но опять же - совсем другая история) |
kap1ec |
Пост
#36
|
Репутация: ![]() ![]() Постоялец ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 094 С нами с: 18-March 09 ![]() |
Я бы посоветовал "Язык программирования C++" от Стивена Прата для базы взять.
|
Бананчик |
Пост
#37
|
Репутация: ![]() ![]() Дух Группа: - Пользователи - Сообщений: 13 С нами с: 24-October 21 ![]() |
ХР должен обратить на вас внимание и тд - это уже совсем другая история, не про С++ вообще, а как про то "как себя продать". в данном случае изучение языков программирования вообще следует отложить в долгий ящик, и даже не пытаться писать простые скрипты типа Batch, то есть вообще не думать о ЯП как таковоми тут лучше начинать с всяких гуманитарных наук, типа психологии, бизнеса, HR-менеджмента, и кстати тоже "как себя продать" (честно не знаю как называется эта наука, может проблемы с трудоустройством у многих есть по причине того что эта наука не имеет официального названия и/или ее не преподают в ВУЗах), это нужно чтобы изучить как работает кадровая политика в многих предприятиях + плюс крутить на Ютубе видосы всяких собеседований и со сокрытыми камерами (например канал ЖИЗНЬ АНОНИМА) я серьезно потому что в наше время во всем мире избыток "специалистов" (как хороших, так и плохих не имеет значение) и дефицит рабочих мест, а в связи с активной автоматизацией предприятий вообще уменьшается роль человека в них если спрашивается зачем я это запостил, то это предостережение для Вас рекомендовать людям всякую литературу по ЯП, потому что карьера программиста сейчас (примерно с 2010 года) начинается не с литературы Сообщение отредактировал Бананчик - Nov 13 2021, 21:57 |
G3n3k |
Пост
#38
|
Репутация: ![]() ![]() Халявщик ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 669 С нами с: 15-February 07 ![]() |
Ну, мы ж этого не знаем
![]() |
Бананчик |
Пост
#39
|
Репутация: ![]() ![]() Дух Группа: - Пользователи - Сообщений: 13 С нами с: 24-October 21 ![]() |
"только выучи и будешь пилить" это входит в ТОП-100 самых лживых фраз, а на первом месте "я тебе позвоню попозже"понимаешь? ситуация для уже сформировавшихся синьйоров, но желающих метнутся на другой технологический стэк. ну синьйоры это уже само собойбольше имеют проблем именно новички ах да, чуть ли не забыл еще очень большой ошибкой начинающих заключается в том, что знания ЯП в чистом (нативном) виде недостаточно, от слова совсем даже под видом такого соуса - ООП потому что многие предприятия требуют еще навыков наподобие SOLID, JQuery, SQL, Git, REST, Vulkan/OpenGL, UART, TouchGFX, всякие библиотеки, фреймворки и пр., а также всяких хитрых знаний типа низкоуровневого доступа к ядру/платформы/среды и межпроцессорного взаимодействия Сообщение отредактировал Бананчик - Nov 17 2021, 23:10 |
tantan |
Пост
#40
|
Репутация: ![]() ![]() Дух Группа: BANNED Сообщений: 3 С нами с: 27-November 22 ![]() |
Привет, я сам по себе охотник и очень люблю на охоте готовить разные блюда с каши, и вот как и вы не знал нормального рецепта, но через некоторое время мне мой товарищ тоже кстати охотник посоветовал вот этот сайт с рецептами рисовая каша в мультиварке тут очень много разных рецептов и последнее время все очень все вкусные, так что советую вам тут.
Сообщение отредактировал tantan - Dec 2 2022, 9:10 |
![]() ![]() |
![]() |
Упрощённая версия | Сейчас: 17th August 2024 - 5:31 |
Сайт не розміщує електронні версії творів, а займається лише колекціонуванням та каталогізацією посилань, що публікуються нашими користувачами. Якщо Ви є правовласником якоїсь частини опублікованого матеріалу та не бажаєте, щоб посилання на нього знаходилось в нашому каталозі, зв’яжіться з нами і ми видалимо його. Файли для обміну надані користувачами сайту і адміністрація не несе відповідальності за їх вміст. |