Допомагаємо ЗСУ!

С+ нужен совет по изучению.

🟠 19:10 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
Статус: Offline
Реєстрація: 21.11.2010
Повідом.: 38
  • 🟠 19:10 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #1
С++ нужен совет по изучению.

Здравствуйте! Хочу учить с++, изучил консоль, файловые операции, но хочется большего. Накачал целую кучу книг, и теперь не знаю с чего начать (API, MFC, MSDN, драйвера, и т.д.), так, что бы не закопаться и не забить в итоге. Подскажите правильный порядок изучения этого зверя. И если не жалко - дайте ссылочки на хорошие книги или статьи, а то в нете мусора много, а копаться времени не хватает.
ЗЫ. Кодю в MVS 2010
 
  • 🟠 19:10 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #2
на MFC точно не стоит тратить время
 
  • 🟠 19:10 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #3
Гради Буч
Объектно-ориентированный анализ и проектирование
с примерами приложений на С++
 
  • 🟠 19:10 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #4
Если ты собираешься заниматься системным програмированием, вычислительно-обрабатывающими процессами, задачами где важны скорость/надёжность/размер, то изучай API, драйвера, различные библиотеки с открытым исходным кодом. А если твой конёк чистое прикладное ПО, то лучше переходи сразу на C#. Про MFC действительно забудь. MVS 2010 использовать для С++ можно если уж очень шустрая тачка. Я до сих пор сижу на MVS 6.0(1998), хотя пробовал все до MVS 2010 и ничего для себя там супер-бупер нужного не нашёл.
 
  • 🟠 19:10 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #5
для начала читай книги чисто по с++. потом API (разные MFC там на нем базируются)
а вобще если тянет к системному программированию, то стоит курить книги по устройству компьютера, ОС и т.п. К примеру книги Таненбаума "Архитектура компьютера", "Современные ОС", а потом уже можно спускаться к конкретным операционкам, пытаться драйвера писать.. по крайней мере хоть будешь понимать как оно работает вплоть до прнципиальных элек. схем :))
 
  • 🟠 19:10 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #6
Да, действительно, совсем забыл, для хорошего программиста Сишника знание или хотя бы понимание асемблера практически обязательно. А также знание принципов работты процессора, кэша, памяти. Вот тебе сразу вопрос на засыпку:
почему при обработке больших картинок цикл
for( y= 0; y<YY; y++)
for( x= 0; x<XX; x++)
{
...
}
работает в разы быстрее, чем цикл
for( x= 0; x<XX; x++)
for( y= 0; y<YY; y++)
{
...
}
 
Останнє редагування:
  • 🟠 19:10 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #7
Да, действительно, совсем забыл, для хорошего программиста Сишника знание или хотя бы понимание асемблера практически обязательно. А также знание принципов работты процессора, кэша, памяти. Вот тебе сразу вопрос на засыпку:
почему при обработке больших картинок цикл
for( y= 0; y<YY; y++)
for( x= 0; x<XX; x++)
{
}
работает в разы быстрее, чем цикл
for( x= 0; x<XX; x++)
for( y= 0; y<YY; y++)
{
}

дайте угадаю, в первом случаев внешний цикл компилятор транслирует в комманду loop, поэтому при переходе на следущую итерацию не происходит сброса конвеера?
 
  • 🟠 19:10 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #8
дайте угадаю, в первом случаев внешний цикл компилятор транслирует в комманду loop, поэтому при переходе на следущую итерацию не происходит сброса конвеера?
Не, это копейки, даже доли копеек. Причина совсем в другой плоскости лежит :)
PS: Имеется ввиду что циклы не пустые, а есть внутри несколько строк по работе с картинкой.
 
  • 🟠 19:10 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #9
Не, это копейки, даже доли копеек. Причина совсем в другой плоскости лежит :)
PS: Имеется ввиду что циклы не пустые, а есть внутри несколько строк по работе с картинкой.

Прикольно. Задать вопрос, ответ на который не лежит в плоскости задаваемого вопроса... Уже можно начинать когнитивно диссонировать? :D
 
  • 🟠 19:10 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #10
Да, действительно, совсем забыл, для хорошего программиста Сишника знание или хотя бы понимание асемблера практически обязательно. А также знание принципов работты процессора, кэша, памяти. Вот тебе сразу вопрос на засыпку:
почему при обработке больших картинок цикл
for( y= 0; y<YY; y++)
for( x= 0; x<XX; x++)
{
...
}
работает в разы быстрее, чем цикл
for( x= 0; x<XX; x++)
for( y= 0; y<YY; y++)
{
...
}

потому шо компилятор больше любит букву "х"?
кроме имен переменных твои примеры ничем не отличаются, а значит откомпилируются в идентичный код.
 
  • 🟠 19:10 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #11
потому шо компилятор больше любит букву "х"?
кроме имен переменных твои примеры ничем не отличаются, а значит откомпилируются в идентичный код.
Но скорость будет отличаться в разы. Вот поэтому и плодятся в основном большие, неповоротливые и глючные программы, т. к. Программистов с большой буквы осталось совсем мало. :(
 
  • 🟠 19:10 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #12
Но скорость будет отличаться в разы. Вот поэтому и плодятся в основном большие, неповоротливые и глючные программы, т. к. Программистов с большой буквы осталось совсем мало. :(

Ну расскажи уже! Интересно - же!

а если быквы были бы "z" и "x" то какая быстрее?
 
  • 🟠 19:10 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #13
Ну расскажи уже! Интересно - же!

а если быквы были бы "z" и "x" то какая быстрее?
Координаты z в двумерном массиве, коим является картинка, не существует. Ваши мысли, как и мысли dr_mousefly, принадлежат кодировщику, вы даже не пытались вникнуть в суть программы.

Исходные данные: картинка хранится в файле в основном построчно, а в памяти компьютера практически всегда. Для доступа к линейному массиву в памяти используется формула y*XX+x. Как вы догадались XX и YY это ширина и высота кртинки.

Вывод: В первом случае мы будем перебирать элементы линейного массива картинки последовательно и каждый блок памяти будет загружен в кэш процессора по одному разу. Во втором случае мы будем прыгать по массиву туда-сюда несколько раз и каждый блок памяти будет загружен в кэш процессора XX раз, т. е. от кэша не будет никакой пользы, а наоборот - вред.
 
  • 🟠 19:10 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #14
я думал истина гдето глубже :-)
где сказано что мы работаем с массивами?
 
  • 🟠 19:10 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #15
Координаты z в двумерном массиве, коим является картинка, не существует. Ваши мысли, как и мысли dr_mousefly, принадлежат кодировщику, вы даже не пытались вникнуть в суть программы.

Исходные данные: картинка хранится в файле в основном построчно, а в памяти компьютера практически всегда. Для доступа к линейному массиву в памяти используется формула y*XX+x. Как вы догадались XX и YY это ширина и высота кртинки.

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

какой феерический бред..
 
  • 🟠 19:10 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #16
Спасибо всем! Читал архитектуру компьютеров Поворотнюка, про процы, память и т.д. как я заметил - пишут почти во всех книгах по глубокому изучению С (у меня, как я сказал выше, штуки 4 или 5 припасено).
mr. HASH - Его не читал, ща скачаю, спасибо.
avbua - я хоть до графики пока не дошел, но сразу подумал про строчную развертку.
 
  • 🟠 19:10 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #17
Cтрауструпа почитай - полезное дело..
 
  • 🟠 19:10 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #18
Скотт Майерс "Эффективный С++" и "Более эффективный С++". Потом читаешь "Эффективное использование STL".

По прочтении понимаешь, что ты нифига не знаешь С++ :)
 
  • 🟠 19:10 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #19
Ubivetz
Всмысле? Непонятно и бесполезно написано? Или по прочтении становишся реально умником?
 
  • 🟠 19:10 Загроза ударних БпЛАЗагроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #20
Скотт Майерс "Эффективный С++" и "Более эффективный С++". Потом читаешь "Эффективное использование STL".

По прочтении понимаешь, что ты нифига не знаешь С++ :)

Потом читаешь "Искусство программирования" Кнута и понимаешь, что ты нифига не знаешь ни математику, ни программирование
 
Назад
Зверху Знизу