![]() |
Страницы (5): [1] 2 3 4 5 » Показать все 64 сообщений этой темы на одной странице |
HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Флуд (https://hlfx.ru/forum/forumdisplay.php?forumid=11)
-- Безумно сложный язык программирования (https://hlfx.ru/forum/showthread.php?threadid=2362)
Безумно сложный язык программирования
Так уж исторически сложилось (и мне не кажется, что это правильно), что С\С++ традиционно считаются самими сложными языками высокого уровня.
Этим меня помнится пугали еще хрен знает с какого года: мол изучение новичком С++ - это как удар головой в закрытую дверь с разбегу.
Но я, как человек, непонаслышке знакомый с булевой алгеброй, и коротавший время в пятом классе за составлением таблиц истинности для очередного цифрового устройства на советских логических элементах, им не поверил. Потом мне конечно приходилось сталкиваться с другими языками и каждый раз они вызывали стойкое отторжение совершенно уродским синтаксисом. В том же делфи, меня к примеру бесит begin\end и :=. В каком-нибудь C# вообще нихрена непонятно что происходит - там конструкции совершенно немыслимые, такое ощущение, что половину кода дописывает компилятор. Но опять же - дело привычки, не спорю.
Вопрос в другом: почему С\С++ считаются самыми сложными языками для освоения? Из-за прямой работы с памятью? Или из-за отстутвия нормальных инструментов для работы со строками по умолчанию?
Те, кто осваивал язык - напишите, что вам давалось труднее всего.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
>> мол изучение новичком С++ - это как удар головой в закрытую дверь с разбегу.
У меня это именно так и происходит.
По мне бейсик куда более не понятливей нежели си.
Трудности составляют уродские учебники в которых написано одно, а в примере после пояснения половина кода вообще фиг знает от куда, безо всяких комментариев (а частенько этот код вообще компилиться не хочет), с матрицами вообще ничего не понятно на си. Да и потом с алгоритмами мало работаю, ну там задачки простенькие можно еще сделать (там посчитать то то, то то), но что то сложнее... Вообщим я еще нубище во всём этом.
Трудность разве что в понимании чужого кода.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Тоже думал пока учился в школе, что С++ очень сложный, но когда пошёл в универ и начали его изучать, вообще не понятно что там сложного, всё предельно логично)
Делфи тоже бесит, он наверное бесит всех кто не изучал его в школе
С# для меня казался непонятным, пока не начал его изучать, там действительно много таких вещей которые преобразует компилятор, но всё равно, достаточно похоже на С
Особо сложного в С++ вроде нет, но труднее всего виртуальные функции, мне кажется, но, опять же, это не так трудно разобраться с ними
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Что мне даётся труднее всего? А то, что препод. в универе несёт ахинею себе под нос, видимо считая, что всем всё понятно у всех до у до универа уже была какая-то база знаний. А при попытке одновременно втыкать какую-нибудь книгу, типа Язык программирования Си от Б. Кернингана и Д. Ритчи - получается когнитивный диссонанс и в итоге вообще ничего непонятно.
Фух, высказался.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
С++ - очень простой язык для тех, кто его не знает, и очень сложный для тех, кто его знает. Звучит как парадокс? Вовсе нет. Просто многие видят в нем "Си с структурами, в которые можно пихать функции". Если же смотреть глубже, начать работать с шаблонными классами и функциями, реализовывать в нем различные паттерны, тщательно разобраться с STL и Boost (я уж не говорю о том, чтобы попробовать самому написать шаблоны, подобные бустовским!) - приходит понимание того, что язык очень сложен. Но тот, кто разобрался во всём этом - сможет писать эффективный и (внимание!) читабельный код, который в дальнейшем легко поддерживать другим людям.
В С# все эти же вещи реализуются зачастую скрыто от пользователя, поэтому нечитабельный код на нём написать несколько сложнее
Современная замена бейсику - это вовсе не С#, а VB.Net. Но я его смотреть так и не стал. С# пришлось изучать и даже сдавать по нему экзамен, впечатление осталось примерно такое "ну java как java..."
Обжект паскаль - очень мощный язык, содержащий в себе практически весь функционал Си и при этом намного читабельнее. Но увы, ООП-надстройки его сильно изуродовали, да и видно, что не только VCL для языка, но и местами язык под VCL подгоняли
Что в С++ было сложно для меня, когда я начал его изучать? Ну вот примерный список:
1) Что такое void и почему оно встречается в таких количествах?
2) Почему нельзя просто присваивать строки? Почему надо постоянно юзать strcpy? (до этого я работал в бейсике и делфи, ну вы понели)
3) Почему конструкция for выглядит так дико?
4) Почему у массивов нет функций LBound и UBound?
5) В чем разница между указателем на константу и константным указателем?
6) Зачем нужна эта сцаная стрелка у указателей? Почему нельзя обходиться той же самой точкой?
Ну может, что-то еще было. Всего не вспомнишь
__________________
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
А может ктота посоветовать хорошый учебник ?
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
XaeroX а как выглядит конструкция с несколькими итераторами, из которых один прибавляется не по еденичке, а наоборот по нескольку.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша вложенные вот так:
for i := 0 to 10 step 2 do begin
for j := 0 to 10 do begin
...
end;
end;
For i = 0 to 10 Step 2
For j = 0 to 10
...
Next j
Next i
А несколько итераторов в одном условии - нельзя.
В том то и смысл, что в С++ конструкция for это целый блок кода, где можно какую-то логику реализовать, а в остальных языках - именно цикл "от и до" и ничего больше. Что логично и читабельно.
__________________
Тем кому C++ кажется слишком трудным для изучения - не надо пытаться сразу освоить весь язык. Пишите сначала простые программки с использованием самых простых возможностей. Когда начнете писать их уверенно - переходите к более сложному. Главное - практика. Лично я до сих пор иногда узнаю какие-нибудь новые для себя нюансы, хотя C++ начал изучать почти 5 лет назад...
Government-Man
Можешь привести пример таких задачек? Я и сам простенькое писал, но написать что то сложнее, даже в голову не пришло.
Особенно интересуют матрицы, обратные матрицы, и т.п.
Временная зона GMT. Текущее время 16:49. | Страницы (5): [1] 2 3 4 5 » Показать все 64 сообщений этой темы на одной странице |
На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024