Здравствуйте Гость [ Вход | Регистрация ] | Форум в сети 6830-й день

Шановні користувачі! Запрошуємо вас до офіційного телеграм-канала 0day Community. Тут ви зможете поспілкуватися одне з одним та дізнатися про останні новини щодо роботи ресурса, поставити запитання до адміністрації, тощо. Перейти до телеграм-канала можна відсканувавши QR-код або натиснувши на посилання: @zeroday_ua

 С++ для новичков, вопросы, ответы, книги, с чего начать

pokemon4eg
Mar 1 2009, 11:37
  
Пост #1



Репутация:   1  
Дух


Группа: Пользователи
Сообщений: 13
С нами с: 16-August 08


Open in new window - Он придумал С++ hi.gif

Попробуем сделать что-то хорошее для С++ и начинающих программистов smile.gif

В описании раздела программирования есть много языков. В том числе и С++. Правда поиском по форуму по слову "С++" ничего не нашел. Вот и решил сделать тему в которой будем отвечать на вопросы и помогать друг-другу в этом не легком, а порой и очень нервном wink.gif деле smile.gif

С чего начать?
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/ software.gif

Книги:
» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «


Сообщение отредактировал pokemon4eg - Dec 3 2009, 17:23
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
2 Страницы  < 1 2  
Reply to this topicStart new topic
Ответов(20 - 39)
Logo
Apr 26 2009, 13:52
  
Пост #21


Незарегистрированный







// как сделать такой примитив
// с защито й от дурака
// чтобы CIN хавал только числа
// иначе запрашивал снова

Грубо говоря - Нужно в функцию вычисления z
передать два int аргумента x,y:
и вычислить их сумму.


» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «


Сообщение отредактировал Logo - Apr 29 2009, 14:04
Go to the top of the page
+Quote Post
ROST
Apr 26 2009, 14:44
  
Пост #22



Репутация:   45  
serrwrtet


Группа: Пользователи
Сообщений: 121
С нами с: 23-November 07


Можна зробити так:
» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «

User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Logo
Apr 26 2009, 15:20
  
Пост #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");



Знайте все ИТО злое место с Борландом - "ІЗІТ при НАУ" )))
Go to the top of the page
+Quote Post
Charge
Apr 26 2009, 17:24
  
Пост #24



Репутация:   4  
Дух


Группа: Пользователи
Сообщений: 34
С нами с: 18-March 09


Warning - не error wink.gif
Определи i как беззнаковое целое и будет тебе счастье. А вообще, существует миллион+1 честный способ проверки ввода на корректность. Не стесняйся фантазировать и придумать свой smile.gif
Первое, что пришло в голову:
int i;
if ((cin >> i).good() && cin.get() == 10)
{
корректный ввод
}
else
{
некорректный
}
Дальше думай сам. Не забывай сбрасывать флаги состояния потока после неправильного ввода, если будешь обращаться к нему снова: cin.clear()
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
The_David
May 10 2009, 22:36
  
Пост #25



Репутация:   3  
Дух


Группа: Пользователи
Сообщений: 14
С нами с: 14-November 07


Можна например так:

» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Monti_berns
Sep 30 2009, 19:07
  
Пост #26


Незарегистрированный







Ребят, я понимаю что вопрос тупой. Сори. Но я хотел бы знать, можно ли добиться чего либо в программировании если заниматься им как хобби. Тоесть, пришел с работы пописал что-то, выучил что-то... smile.gif
Go to the top of the page
+Quote Post
kerovnik
Oct 17 2009, 11:26
  
Пост #27


Незарегистрированный







(Monti_berns @ Sep 30 2009, 20:07) Перейти к цитате

Ребят, я понимаю что вопрос тупой. Сори. Но я хотел бы знать, можно ли добиться чего либо в программировании если заниматься им как хобби. Тоесть, пришел с работы пописал что-то, выучил что-то... smile.gif



Для того, щоб досягнути певного рівня у програмуванні, потрібно систематично ним займатися. Найкращі результати досягаються при щоденному написанні коду. Хобі - це справа, яка робиться для власного задоволення. Якщо вона уже приносить прибуток - то це, напевно, робота.
У будь-якому випадку, головне - це бажання самовдосконалюватися
Go to the top of the page
+Quote Post
pokemon4eg
Nov 19 2009, 1:10
  
Пост #28



Репутация:   1  
Дух


Группа: Пользователи
Сообщений: 13
С нами с: 16-August 08


(Tamplier @ Mar 20 2009, 20:18) Перейти к цитате

Наиболее часто задаваемые вопросы по С++. Реализация распространенных алгоритмов, решения типовых задач.
...



Спасибо за замечательнве примеры smile.gif
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
pokemon4eg
Nov 19 2009, 1:48
  
Пост #29



Репутация:   1  
Дух


Группа: Пользователи
Сообщений: 13
С нами с: 16-August 08


(reiten @ Mar 20 2009, 20:30) Перейти к цитате

В обоих исходниках сортировки вставками пропущено <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() у них написать не выйдет.

ну и еще в них присутсвует работа с массивами, с которыми приходится работать довольно часто. строки в С++ как известно, тоже являются массивами символов.

Конечно было бы классно проверить код на работоспособность и предоставить информацию о том, что такое шаблоны в С++...
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
pokemon4eg
Nov 19 2009, 3:15
  
Пост #30



Репутация:   1  
Дух


Группа: Пользователи
Сообщений: 13
С нами с: 16-August 08


(Logo @ Apr 26 2009, 12:17) Перейти к цитате

при вводе символа вместо цыфры программа сама пролетает в конец без второго запроса на ввод.

» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «



вылетает потому что лонг - это не строка. кучу вариантов написали... добавлю еще свой. ну или так smile.gif :

C++:
» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «


Пример можно усовершенствовать smile.gif А вообще всегда есть много способов решения проблемы...
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
pokemon4eg
Nov 19 2009, 15:16
  
Пост #31



Репутация:   1  
Дух


Группа: Пользователи
Сообщений: 13
С нами с: 16-August 08


(Logo @ Apr 26 2009, 12:17) Перейти к цитате

Друг спрашивает по С++:

Подскажите как в С++ считывать цыфры чтобы программа считывала их нормально - потому что при использовании данного кода при вводе символа вместо цыфры программа сама пролетает в конец без второго запроса на ввод.

» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «



Чтоб не пролетало читай в строку, а потом конвертируй ее в число.
void main()
{
    std::string a;
    cin >> a;
    cout << "a: " << a;
}


Сообщение отредактировал pokemon4eg - Nov 20 2009, 17:11
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
gryzovick
Oct 6 2021, 14:24
  
Пост #32



Репутация:   196  
Старожил
****

Группа: Пользователи
Сообщений: 2 105
С нами с: 18-March 09


Ап тему, в поиске информации для изучения с 0я
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
G3n3k
Oct 22 2021, 22:29
  
Пост #33



Репутация:   303  
Халявщик
***

Группа: Пользователи
Сообщений: 1 669
С нами с: 15-February 07


(gryzovick @ Oct 6 2021, 15:24) Перейти к цитате

Ап тему, в поиске информации для изучения с 0я


Классикой обучения с нуля С++ всегда остается книжка "Язык программирования С++" Страуструпа-создателя geek.png

Однако она тяжеловата - не все могут с нее начать, потому перед ней можно прочесть любую книгу по С++, из категории "С++ для чайников", после чего вернутся к книжке Страуструпа. Обзязательно.

Когда книжка Страуструпа прочитана и освоена, начинаем решать задачки с применением С++ на сайте LeetCode, и не прекращаем. Никогда smile.png

Следующими советую прочитать ВСЕ 4 книги Скотта Меерса по С++: эффективный С++, еще более эффективный С++, современный С++ и эффективный STL

Дальше настоятельно советую освоить APUE - Advanced Programming in UNIX Environment. Книга на самом деле по С, а не С++, но понимание ее содержимого ОЧЕНЬ пригождается в разработке на плюсах, т.к. дает понимание "подкапотных событий"

Дальше читаем C++ Concurrency in Action - Вильямса, шикарная книга по потокам.

Дальше полируем шаблонную магию книжечками от Александреску smile.png

Дальше читаем Банду Четырех и изучаем основные паттерны.

Ну а после, когда все вышеуказанное освоено, уже можно почитать оригинальные стандарты плюсов, и изучать уже то, что предстоит пилить. От себя еще могу добавить, что для широты развития очень полезным будет хотя-бы чутка поковырять boost, boost:asio, ZeroMQ, Qt, POSIX, WinApi, Android NDK и хотябы полистать 4-томник Кнута, чтобы понимать какие есть алгоритмы и для чего(читать не обязательно - можно сдохнуть).

В принципе, вышеуказанного уже с головой чтобы быть твердым программером и знать что читать и куда развиваться дальше smile.png

Удачи! ok.png
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Бананчик
Oct 26 2021, 13:44
  
Пост #34



Репутация:   2  
Дух


Группа: - Пользователи -
Сообщений: 13
С нами с: 24-October 21


(G3n3k @ Oct 22 2021, 23:29) Перейти к цитате

Классикой обучения с нуля С++ всегда остается книжка "Язык программирования С++" Страуструпа-создателя geek.png

Однако она тяжеловата - не все могут с нее начать, потому перед ней можно прочесть любую книгу по С++, из категории "С++ для чайников", после чего вернутся к книжке Страуструпа. Обзязательно.

Когда книжка Страуструпа прочитана и освоена, начинаем решать задачки с применением С++ на сайте LeetCode, и не прекращаем. Никогда smile.png

Следующими советую прочитать ВСЕ 4 книги Скотта Меерса по С++: эффективный С++, еще более эффективный С++, современный С++ и эффективный STL

Дальше настоятельно советую освоить APUE - Advanced Programming in UNIX Environment. Книга на самом деле по С, а не С++, но понимание ее содержимого ОЧЕНЬ пригождается в разработке на плюсах, т.к. дает понимание "подкапотных событий"

Дальше читаем C++ Concurrency in Action - Вильямса, шикарная книга по потокам.

Дальше полируем шаблонную магию книжечками от Александреску smile.png

Дальше читаем Банду Четырех и изучаем основные паттерны.

Ну а после, когда все вышеуказанное освоено, уже можно почитать оригинальные стандарты плюсов, и изучать уже то, что предстоит пилить. От себя еще могу добавить, что для широты развития очень полезным будет хотя-бы чутка поковырять boost, boost:asio, ZeroMQ, Qt, POSIX, WinApi, Android NDK и хотябы полистать 4-томник Кнута, чтобы понимать какие есть алгоритмы и для чего(читать не обязательно - можно сдохнуть).

В принципе, вышеуказанного уже с головой чтобы быть твердым программером и знать что читать и куда развиваться дальше smile.png

Удачи! ok.png
а в итоге работу не получить...
и годы непосильного труда будут спущены в унитаз...

Сообщение отредактировал Бананчик - Oct 26 2021, 13:49
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
G3n3k
Oct 29 2021, 22:19
  
Пост #35



Репутация:   303  
Халявщик
***

Группа: Пользователи
Сообщений: 1 669
С нами с: 15-February 07


(Бананчик @ Oct 26 2021, 14:44) Перейти к цитате

а в итоге работу не получить...
и годы непосильного труда будут спущены в унитаз...


Может человек для себя спрашивает?)

Мой пост - не ответ "как устроится на работу С++ником", максимум к чему его можно притянуть, это "как не завалить собеседование по С++". А чтоб не завалить, на него, да, нужно еще попасть - должен быть опыт, должны быть позиции, ХР должен обратить на вас внимание и тд - это уже совсем другая история, не про С++ вообще, а как про то "как себя продать".

И кстати, при наличии опыта, во всяком эмбеддеде на плюсовиков вполне себе спрос... Но опять же - совсем другая история)
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
kap1ec
Oct 30 2021, 8:34
  
Пост #36



Репутация:   150  
Постоялец
***

Группа: Пользователи
Сообщений: 1 121
С нами с: 18-March 09


Я бы посоветовал "Язык программирования C++" от Стивена Прата для базы взять.
User is online!Profile CardPM
Go to the top of the page
+Quote Post
Бананчик
Nov 13 2021, 21:50
  
Пост #37



Репутация:   2  
Дух


Группа: - Пользователи -
Сообщений: 13
С нами с: 24-October 21


(G3n3k @ Oct 29 2021, 23:19) Перейти к цитате
ХР должен обратить на вас внимание и тд - это уже совсем другая история, не про С++ вообще, а как про то "как себя продать".
в данном случае изучение языков программирования вообще следует отложить в долгий ящик, и даже не пытаться писать простые скрипты типа Batch, то есть вообще не думать о ЯП как таковом
и тут лучше начинать с всяких гуманитарных наук, типа психологии, бизнеса, HR-менеджмента, и кстати тоже "как себя продать" (честно не знаю как называется эта наука, может проблемы с трудоустройством у многих есть по причине того что эта наука не имеет официального названия и/или ее не преподают в ВУЗах), это нужно чтобы изучить как работает кадровая политика в многих предприятиях + плюс крутить на Ютубе видосы всяких собеседований и со сокрытыми камерами (например канал ЖИЗНЬ АНОНИМА)

я серьезно

потому что в наше время во всем мире избыток "специалистов" (как хороших, так и плохих не имеет значение) и дефицит рабочих мест, а в связи с активной автоматизацией предприятий вообще уменьшается роль человека в них

если спрашивается зачем я это запостил, то это предостережение для Вас рекомендовать людям всякую литературу по ЯП, потому что карьера программиста сейчас (примерно с 2010 года) начинается не с литературы

Сообщение отредактировал Бананчик - Nov 13 2021, 21:57
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
G3n3k
Nov 17 2021, 10:20
  
Пост #38



Репутация:   303  
Халявщик
***

Группа: Пользователи
Сообщений: 1 669
С нами с: 15-February 07


Ну, мы ж этого не знаем smile.png Может под человека уже есть позиция в дружественном предприятии "только выучи и будешь пилить", и вопрос чисто в изучении конкретного ЯП. Кстати, типичная ситуация для уже сформировавшихся синьйоров, но желающих метнутся на другой технологический стэк.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Бананчик
Nov 17 2021, 15:44
  
Пост #39



Репутация:   2  
Дух


Группа: - Пользователи -
Сообщений: 13
С нами с: 24-October 21


(G3n3k @ Nov 17 2021, 11:20) Перейти к цитате
"только выучи и будешь пилить"
это входит в ТОП-100 самых лживых фраз, а на первом месте "я тебе позвоню попозже"
понимаешь?


(G3n3k @ Nov 17 2021, 11:20) Перейти к цитате
ситуация для уже сформировавшихся синьйоров, но желающих метнутся на другой технологический стэк.
ну синьйоры это уже само собой
больше имеют проблем именно новички

ах да, чуть ли не забыл
еще очень большой ошибкой начинающих заключается в том, что знания ЯП в чистом (нативном) виде недостаточно, от слова совсем
даже под видом такого соуса - ООП
потому что многие предприятия требуют еще навыков наподобие SOLID, JQuery, SQL, Git, REST, Vulkan/OpenGL, UART, TouchGFX, всякие библиотеки, фреймворки и пр., а также всяких хитрых знаний типа низкоуровневого доступа к ядру/платформы/среды и межпроцессорного взаимодействия

Сообщение отредактировал Бананчик - Nov 17 2021, 23:10
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
tantan
Nov 28 2022, 12:04
  
Пост #40



Репутация:   0  
Дух


Группа: BANNED
Сообщений: 3
С нами с: 27-November 22


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

Сообщение отредактировал tantan - Dec 2 2022, 9:10
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

2 Страницы  < 1 2
Reply to this topicStart new topic

 



- Упрощённая версия
Сейчас: 25th November 2024 - 19:23
Сайт не розміщує електронні версії творів, а займається лише колекціонуванням та каталогізацією посилань, що публікуються нашими користувачами. Якщо Ви є правовласником якоїсь частини опублікованого матеріалу та не бажаєте, щоб посилання на нього знаходилось в нашому каталозі, зв’яжіться з нами і ми видалимо його. Файли для обміну надані користувачами сайту і адміністрація не несе відповідальності за їх вміст.