Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/19: Рейтинг темы: голосов - 19, средняя оценка - 5.00
134 / 106 / 10
Регистрация: 22.05.2010
Сообщений: 533
1

Простое начинание

11.10.2013, 20:50. Показов 3693. Ответов 53

Author24 — интернет-сервис помощи студентам
Сразу прошу - не бросайтесь кирпичами.

Предисловие (можно пропустить).
С Си++ знаком очень давно, по сути - это первый язык программирования, с которым я стал более менее серьёзно программировать. От консольных утилит и курсовых с GUI, до игр и серьзных проектов с ассемблером. И за это время я узнал не мало о языке, о его возможностей. Что-то мне в нём нравиться, что-то нет. Но есть очень много новичков, которые хотели бы овладеть этим безусловно очень мощным инструментом (в умелых руках). Поэтому мне вдруг (на самом деле - очень давно) захотелось бы написать небольшое... руководство. С опорой на опыт, а не на рефернсы. Конечно, я не джедай и мне далеко до него. Но так уж получилось, что часто приходилось разных людей учить программированию, а точнее - Си++. Очень разных. Есть небогатый опыт.

Просьба (можно начать отсюда).
Таким образом мне хотелось бы составить список тем, которые требовалось бы осветить. Зачем? Последний сезон Breaking Bad вышел не так уж давно (да, я слоупок) и есть 15 минут, пока сезон скачается байтики соберуться из числа Пи в нужную последовательность, но в голове у меня каша. И таких моментов возникает не мало. Снова сбиваюсь с темы.
Собственно. Темы должны быть полными. При этом хотелось бы, чтобы последовательность изложения была удобной для чтения. Приятной и удобной. Не скучно и эффективно. Прошу здешних форумчан помочь составить базовый список тем Си++, владея которым на уровне, можно было бы считать себя отличным Си++ программистом. К тому же, в свете Си++11 и Си++14, появились определённые новшества, которые, возможно, сильно преобразуют обычный Си++ код. В добавок, хотелось бы сделать уклон в сторону ООП и описать техники, которые позволят избежать очередной пули в ногу. У Вас наверняка есть пара тузов в рукаве.

Что хотелось бы (это так же можно пропустить).
Собственно, в идеале талмуд должен быть интересен как новичкам в Си++, так и новичкам в программировании вообще. Было бы замечательно, если бы описанное было интересно и старичкам. Текст будет (если что получиться) полностью свободным. Приветствуется кооперативное авторство.

Что есть сейчас (это будет обновляться).
Предисловие) Начать хотелось бы с небольшого предисловия о роли языка Си++ в совремнном мире, небольшая справка о историческом значении и субъективный прогноз на будущее.
0) Введение в программирование. Наверное, важная часть, освещающая программирование в целом. Как строятся алгоритмы, что есть структорное программирование (и какие есть альтернативы). Немного о том, как связана математика, схемотехника и информатика. Вообще, какие науки (понятно, что все) изучают программирование и с какой стороны.
1) Базовый синтаксис. Проекция информации из введения в уловные обозначения Си++. То есть, каким образом реализуется структурное программирование в Си++, какова его объектная модель. Никаких сравнений с другими языками программирования.
2) Стандартные алгоритмы. Немного про стандартные алогритмы. В основном - практика.
3) Расширенные возможности. Дополнительные возможности. Всё, что не укладывается в базовый синтаксис по теореме Бома-Якопини.
4) Нетривиальные возможности. Возможности, выходящие за те возможности, которые предоставляет синтаксис с компилятором. Другими словами - какие крутые базовые блоки можно слепить из других базовых блоков.
5) Практика. Вот здесь я уже обессилил. Не представляю, что можно изучить в рамках практики с применением всех возможностей языка. В идеале требуется показать этакий best practice. Боюсь, это будет без всех возможностей.
inf) Приложения. Здесь все дополнения, которые выбиваются из общей канвы повествования.

Заранее благодарю.

P.S. Вполне возможно, из этого ничего и не выйдет. Я просто подумал, что было бы не плохо попробовать. К тому же, вполне вероятно я сам научусь чему-то новому. А если у меня получиться научить кого-то, то это будет просто прекрасно.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.10.2013, 20:50
Ответы с готовыми решениями:

Помощь в начинание Объектно ориентированного програмирования
Суть такая что не знаю ничего про: Конструкторы Классы Объекты класса Дружественные ф-ции ...

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

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

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

53
Антикодер
1804 / 869 / 48
Регистрация: 15.09.2012
Сообщений: 3,081
11.10.2013, 23:46 41
Лучший ответ Сообщение было отмечено как решение

Решение

Author24 — интернет-сервис помощи студентам
AnyOne697, я боюсь когда нибудь встретиться с вашими учениками и прочитать их код
1
134 / 106 / 10
Регистрация: 22.05.2010
Сообщений: 533
12.10.2013, 00:10  [ТС] 42
Цитата Сообщение от XRuZzz Посмотреть сообщение
я боюсь когда нибудь встретиться с вашими учениками и прочитать их код
А что не так. Если бы я знал, что могу сам, этого топика не было бы. Я не просто прошу помочь. А оффтоп не плохо хотя бы выделять в тег [OFF]
0
Антикодер
1804 / 869 / 48
Регистрация: 15.09.2012
Сообщений: 3,081
12.10.2013, 00:33 43

Не по теме:

оффтоп я только собираюсь писать сейчас, придумал название для вашей книги:
"Антипаттерный generic-объектный подход от AnyOne697"
честное слово, я бы купил, только за одно название :)


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

Мне бы хотелось видеть учебник в формате "некое математическое понятие, затем конкретный пример его применения" ни как у Кнута тяжелые для восприятия формулы и алгоритмы, а относительно простые понятия, и реальная польза от них в жизни. Интегралы, дифференциальные уравнения, статистика. То есть как базовые математические навыки, могут например сократить время в пути, делать оценки по прогнозированию простых ситуаций, следить за собственным здоровьем(в этом смысле у Дейтела(издание 2011 года) понравились задачи типа как "написать программу для расчета Body Mass Index" и т п)
0
134 / 106 / 10
Регистрация: 22.05.2010
Сообщений: 533
12.10.2013, 00:36  [ТС] 44
Цитата Сообщение от XRuZzz Посмотреть сообщение
"некое математическое понятие, затем конкретный пример его применения"
Ещё один плюс в сторону математики.
Правда, начать следует, наверное, с дискретной математики. А подробней по тема? Что именно осветить. Чтобы люди не сильно знакомые осилили, а те кто в темы быстро поняли, что им требуется пропустить.

К слову, я надеюсь, что не сильно заразился Корменами и Кнутами. Одно время очень тяжело их воспринимал, сейчас же с лёгкостью ориентируюсь в книгах.
0
Антикодер
1804 / 869 / 48
Регистрация: 15.09.2012
Сообщений: 3,081
12.10.2013, 00:42 45
студенты не понимают для чего им дают понятия, которые они нигде не могут применить. Помню в универе нам говорили - "просто выучите, а понимание придёт потом". Тока зачем учить если не понимаешь зачем оно надо?
0
134 / 106 / 10
Регистрация: 22.05.2010
Сообщений: 533
12.10.2013, 01:18  [ТС] 46
Цитата Сообщение от XRuZzz Посмотреть сообщение
студенты не понимают для чего им дают понятия, которые они нигде не могут применить. Помню в универе нам говорили - "просто выучите, а понимание придёт потом". Тока зачем учить если не понимаешь зачем оно надо?
К слову, лично со мной сработало. Некоторые дисциплины я совершенно не понял. Но потом, когда внезапно возникла потребность в знаниях, мне потребовалось совсем немного времени на поиски информации и я в ней обитал свободно. И понимал. Понимал, зачем мне это сейчас требуется.

Я к тому, что теория нередко бывает сильно оторвана от практики. Понимание приходит именно с ней. За 6 лет сложно получить и теорию (всестороннюю более менее) и практику. Да и вообще в РФ очень неплохое теоретическое образование, с практикой не очень. Хотя... понимание - это вопрос даже ближе к философии. Что это такое? Когда мы понимаем? А когда нет? А что, если нам кажется, что мы не понимаем? И наоборот - кажется, что понимания нет, а на самом деле оно есть. Это проблема жизни. Понятийный аппарат человека слабо изучен, и хотя есть такое слово - понимание, не совсем понятно, как понять, понимаешь ты или нет. Закрутил...

С знанием проще. Ты либо знаешь что-то, либо нет. Знание оперирует фактами. А их можно проверить банальным тестом.
0
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
12.10.2013, 01:53 47
Цитата Сообщение от AnyOne697 Посмотреть сообщение
понимание - это вопрос даже ближе к философии. Что это такое? Когда мы понимаем? А когда нет? А что, если нам кажется, что мы не понимаем? И наоборот - кажется, что понимания нет, а на самом деле оно есть. Это проблема жизни. Понятийный аппарат человека слабо изучен, и хотя есть такое слово - понимание, не совсем понятно, как понять, понимаешь ты или нет. Закрутил...
Да к какой там философии. Понимание - это когда ты можешь знания применить на практике, например ты знаешь как строиться бомба но на практике ее сделать не можешь потому что ты не понимаешь. А от если понимаешь, то и на практике ее сможешь построить. Понимаешь - это означает что ты знаешь полностью тему досконально как что работает.

Себя ж ты не обманиш, если не понимаешь, то сам прекрасно знаешь, что не понимаешь, а если понимаешь, то ясно что понимаешь еще лучше. Ты и правда чуток закрутил.
0
Форумчанин
Эксперт CЭксперт С++
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
12.10.2013, 02:07 48
AnyOne697, возможно вы это уже знаете, но попробую дать совет: если все-таки надумаете публиковать свои труды, то этот раздел для вас.
Вполне возможно, что вы сможете объяснить базовые вещи понятным языком. Главное почаще сверяйте свое мнение со стандартом и мнением сообщества (не только форума), чтобы не оказалось например так, что люди будут отвергать паттерны, свято веря, что это ересь. Можете указывать, например, рядом со своим мнением, мнение сообщества.

Труд вы взялись брать колоссальный, подходов тут масса, всем возможным пользователям не угодишь и про все не расскажешь. Надеюсь, пользу это волонтерство принесет, желаю удачи.
1
В астрале
Эксперт С++
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
12.10.2013, 02:11 49
Лучший ответ Сообщение было отмечено как решение

Решение

Господа ninja и AnyOne, вам обоим не хватит опыта и знаний на более-менее приличную книгу. ninja меня уже начинает раздражать, являясь в каждой бочке затычкой и создавая темы по учебнику Страуструпа, даже не пытаясь подумать, но считая себя гуру. Про Вас, AnyOne я был лучшего мнения, однако в последнее время вы начинаете равняться с ninja. Книги, видеоуроки, да даже простые статьи, которые предназначены для ИЗУЧАЮЩИХ язык должны писать профессионалы, которые хорошо вникают в эту тему, которые знают язык, знают положительные/отрицательные стороны различных вещей. Очень сомневаюсь, что практически кто-либо из тех у кого репутация переваливает за 1к в С++ решил бы написать КНИГУ. В большинстве случаев появляются произведения, которых полно на ютубе, которые учат, что goto нужно использовать везде, макросы наше всё и прочее-прочее-прочее. Если вы решите конечно написать свою книгу - вперед, только выложите ее на форуме, прежде чем пускать в широкие массы - вас подправят и скажут что не так знающие люди. Успехов и спасибо за внимание, я очень надеюсь что подобных тем больше не будет и что ninja научится в конце концов писать грамотно на русском языке (давайте не забывать, что офф. язык форума - русский, а не тарабарский). Вцелом, если есть желание - вперед, однако присоединяюсь к предыдущему сообщению по поводу данной темы, читайте стандарт, спрашивайте людей и не высказывайте свое мнение, как истину последней истанции.
4
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
12.10.2013, 02:15 50
Цитата Сообщение от ForEveR Посмотреть сообщение
и что ninja научится в конце концов писать грамотно на русском языке
Ну я суржик знаю, русский не сильно, я и так пытаюсь хоть без ошибок писать, щас уже меньше ошибок делаю, чем раньше.
0
Антикодер
1804 / 869 / 48
Регистрация: 15.09.2012
Сообщений: 3,081
12.10.2013, 09:38 51
помоему, если человек не применяет паттерны и не знает стандарта, но у него включен мозг, то он вполне может написать интересную вещь. Правда вероятность ниже. Не понимаю почему нет. Тока не называть тогда статью (книгу) "как выучить C++", а "Мои подходы к разработке ПО"
0
134 / 106 / 10
Регистрация: 22.05.2010
Сообщений: 533
12.10.2013, 13:50  [ТС] 52
Цитата Сообщение от ForEveR Посмотреть сообщение
Вцелом, если есть желание - вперед, однако присоединяюсь к предыдущему сообщению по поводу данной темы, читайте стандарт, спрашивайте людей и не высказывайте свое мнение, как истину последней истанции.
Стараюсь. И начал писать уже. Не просто так этот топик есть. Он есть именно для того, что составить "список вопросов", требующих освещения. Понятно, что все темы просто невозможно охватить. Что-то будет пропущено. Но стараться к оптимальному решению по моему должен каждый программист.
Цитата Сообщение от XRuZzz Посмотреть сообщение
помоему, если человек не применяет паттерны и не знает стандарта, но у него включен мозг, то он вполне может написать интересную вещь. Правда вероятность ниже. Не понимаю почему нет. Тока не называть тогда статью (книгу) "как выучить C++", а "Мои подходы к разработке ПО"
Вообще, замечаю непонимание. Это не совсем книга. Это именно сборник разных подходов начиная с азов программирования как такого, заканчивая сложными техниками программирования на Си++.
И было бы не плохо, если бы сообщество мне помогло. От ссылок и списков тем, до вычитки, правки и статей. Было бы отлично систематизировать разбросанный по Интернетам материал. Поэтому это не мой труд. Это труд сообщества.

Окей. Собственно, я начал писать введение. Пытался ввести в понятие алгоритм как на интуитивном уровне, так и со строгим определением. Получается не густо. Что стоит рассмотреть в этой части. Какие вопросы, может быть есть теоремы. Мне кажется, было бы не плохо ввести понятия алогоритма, структурного программирования (с теоремой), продемонстрировать универсальную машину Тьюринга. Что ещё?

Также, встал вопрос о форматировании. Так как текст многогранный, часто придётся переходить от темы к теме. Резкий переход - не есть быть удобным для чтения. Может быть использовать врезки и сноски. Часть переносить в приложения. Но может придумаем ещё что-нибудь интересное?..

К тому же, встаёт вопрос о самопроверке и практических заданиях. Это очень важная часть, но тогда это больше учебник, чем талмуд. Но с другой стороны, можно давать практические задания прямо в ходе повествования. И каким-то образом их выделять, чтобы читатель мог их решать сначала сам, а потом сверять с ходом решения в тексте.
0
Антикодер
1804 / 869 / 48
Регистрация: 15.09.2012
Сообщений: 3,081
12.10.2013, 14:58 53
если вы согласны со опредениями в вики "программирования", и "алгоритма", то ставьте просто ссылки. Если нет, то ссылки я бы всё равно поставил, но написал бы что с ними не согласен.
0
134 / 106 / 10
Регистрация: 22.05.2010
Сообщений: 533
12.10.2013, 15:05  [ТС] 54
Цитата Сообщение от XRuZzz Посмотреть сообщение
если вы согласны со опредениями в вики "программирования", и "алгоритма", то ставьте просто ссылки. Если нет, то ссылки я бы всё равно поставил, но написал бы что с ними не согласен.
Зачем ссылки? Я и сам прекрасно помню определение алогоритма, программирования. Википедия - это конечно хорошо. Но не всегда определения там качественные. Впрочем, это не значит что я не пользуюсь ей.
Да и дело не в определениях. Дело в понятиях. Понятийный уровень - это не только строгое определение, но и интуитивное представление с логическим объяснением. Вообще, было бы не плохо научить (и научиться) программировать на интуитивном уровне.
0
12.10.2013, 15:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.10.2013, 15:05
Помогаю со студенческими работами здесь

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

Дано простое число N. Найти следующие простое число используя do while
простая задача с использованием do while на с++

легко(начинание)
1. программист разместил на форме компонент Edit и, изменив значение свойства Text, получил новый...

Начинание проекта по snort
Доброго времени суток! Скажу заранее, в этом сообщении я не прошу сделать что-либо за меня. Я...

Задание по делфи. Начинание. Найти ошибки в коде
1. программист разместил на форме компонент Edit и, изменив значение свойства Text, получил новый...

Дано n чисел. Для каждого из них определяется, простое ли оно. Если простое, выводится 1, иначе 0.
Здравствуйте! Помогите, пожалуйста. Нужно уменьшить время выполнения программы, как это можно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
54
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru