![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
Gal78rus |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 19.10.2008 Репутация: нет Всего: нет |
Здравствуйте
Мне один товарищ посоветовал начать обучение С++ с идеи создания собственной программы, какую я ума не приложу, посоветуйте что придумать. Вопрос второй; как лучше читать учебник по С++? От корки до корки? или по мере нужды? и надо ли перепечатовать все примеры из книги в Visual С++?(мне не лень, просто думаю что время зря трачу) Посоветовали книгу по программированию, нашего русского автора женщины, а как зовут забыл. Ваши советы по изучению С++: |
|||
|
||||
barin_Student |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 488 Регистрация: 10.8.2007 Где: Казахстан , Алмат ы Репутация: нет Всего: 2 |
Какие нибудб другие языки хоть чуть чуть знаешь?
И какие? -------------------- Нехорошо блин!!! |
|||
|
||||
IKM2007 |
|
|||
![]() Зима близко ![]() ![]() Профиль Группа: Участник Сообщений: 702 Регистрация: 26.4.2008 Где: olmedreca Репутация: 3 Всего: 40 |
Начни с Дейтела. Прочти внимательно, а не так, как будто план делаешь. Будут вопросы, пиши на форуме.
Изучи базовые знания, без них врядли сможешь представить архитектуру программы на C++. -------------------- "К чёрту обстоятельства, я создаю возможности." Брюс Ли |
|||
|
||||
Gal78rus |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 19.10.2008 Репутация: нет Всего: нет |
barin_Student,
Qbasic в школе ![]() IKM2007, Читаю Герберт Шилдт "С++ руководство для начинающих" пока дочитал до 1 глава 2 модуль Это нормально что от фраз "исключающее ИЛИ" становится страшно и ничего не понятно? ![]() По математике 3 с натягом ![]() на самом деле очень хочется научится ![]() |
|||
|
||||
Tobuk |
|
|||
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 20.11.2008 Репутация: нет Всего: нет |
Лучшая книга для начала изучения С++ это "Язык программирования С".
Написана она великолепно + справочник по библиотеке С. Начинать со всяких cout << "Hello world"; Не зная ни о пространствах имен, ни о классах, ни о перегруженных операциях. |
|||
|
||||
Gal78rus |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 19.10.2008 Репутация: нет Всего: нет |
Tobuk,
Даже сам что то писал #include <iostream> using namespace std; int main() { double lun; double zem; int counter; counter = 0; for(lun = 1.0; lun <= 100; lun++) { zem = lun / 17; cout << lun << "Gravitacia luni ravna " << zem << "zemnih.\n"; counter++; if(counter == 25) { cout << "\n"; counter = 0; } } return 0; } |
|||
|
||||
IKM2007 |
|
|||
![]() Зима близко ![]() ![]() Профиль Группа: Участник Сообщений: 702 Регистрация: 26.4.2008 Где: olmedreca Репутация: 3 Всего: 40 |
А что тут непонятного? НУ, если вообще не слышал об "исключающее ИЛИ", то все нормально, если что-то непонятно, погугли. Ну, если в алгоритмах разбираешься, то все впереди. Да, повесится легче, но не полезнее. Тогда должно быть и интерес есть, что главное. -------------------- "К чёрту обстоятельства, я создаю возможности." Брюс Ли |
|||
|
||||
afanp |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 25.11.2008 Репутация: нет Всего: нет |
Gal78rus, я начал программировать только когда начал учится в универе - тоесть 2 с небольшим месяца назад. Могу тебе посоветовать найти в инете несколько книжек разных авторов, тк. в каждой из них какието вещи описаны проще и доступнее, но другие замудрены. Конеш нужен Лафоре(там уйма элементарных примеров) ну а как дополнеине Либерти - освой си за 21 день, там както объясняется механизм работы. А посоветовали тебе наверное Павловскую, ниче хорошего о ней сказать не могу :(
|
|||
|
||||
taiven |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 302 Регистрация: 30.6.2008 Репутация: 2 Всего: 9 |
Игру "крестики-нолики" в консоли ![]()
да первый раз прочитать от корки до корки, а потом "по мере нужды" периодически перечитывать. А вот перепечатывать чужие исходники.... изучать да, а вот перепечатывать не советую. Это сообщение отредактировал(а) taiven - 27.11.2008, 22:28 |
||||
|
|||||
J0ker |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 986 Регистрация: 17.9.2008 Репутация: 9 Всего: 14 |
начинать с темы "что такое компьютер и как он работает"
|
|||
|
||||
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 27 Всего: 154 |
вон из профессии ![]() шутка начать нужно не с языка программирования с++ а с теории: математики, особенно дискретной, а так-же с теории вероятностей, потом изучить алгоритмы и структуры данных, а потом уже учить какой-нибудь язык программирования |
|||
|
||||
Goliaf777 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 70 Регистрация: 19.11.2008 Репутация: нет Всего: нет |
Ну у кого как я раньше тож не соображал а когда всю книгу прочел понял))) 7 классе и изучаю С++ пока все по маслу.Канеш я мудился с подборкой литературы много качал но теперь все ок))))Я делаю так : вижу пример проги которую надо скомпилировать беру ее за основу и создаю более крутую прогу.Например была прога по нахождению квадрата числа я откапал функцию возведения в степень и дополнил свое)
Это сообщение отредактировал(а) Goliaf777 - 28.11.2008, 13:08 |
|||
|
||||
mekhanikus |
|
|||
Вольноопределяющийся ![]() Профиль Группа: Участник Сообщений: 186 Регистрация: 16.6.2008 Где: Спасск-Дальний Репутация: нет Всего: 1 |
Могу подкинуть идею.
Один мой приятель начал освоение С++ с сугубо прагматичной задачи - расчета графика работы. Он работает 2 суток через 2-е. Задача программы - при введении даты вычислить какой это будет день - рабочий или выходной. За точку отсчета можно взять 1,2 января 2008г - выходные дни. Приятель с задачей справился, а Вам слабо? |
|||
|
||||
Tobuk |
|
|||
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 20.11.2008 Репутация: нет Всего: нет |
Не согласен. Если вы не увлекаетесь 3D графикой, вам не понадобятся кватернионы, матрицы и вектора. Алгоритмы и структуры данных это хорошо, но современный программист может использовать STL и не знать как он работает. Его знания алгоритмов и структур пригодятся лишь для создания собственных контейнеров, всяких деревьев и т.д., что бывает не часто. И как теория вероятности относится к программированию? |
|||
|
||||
mekhanikus |
|
|||
Вольноопределяющийся ![]() Профиль Группа: Участник Сообщений: 186 Регистрация: 16.6.2008 Где: Спасск-Дальний Репутация: нет Всего: 1 |
Отклмпилится - не откомпилится? Заработает - не заработает? Какова вероятность? ![]() |
|||
|
||||
Frog |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 11.3.2006 Где: The swamp Репутация: нет Всего: нет |
Доброго времени всем. Мне нужна рекомендация по книгам о сетевом программировании на С/С++ для Windows - желательно с полными листингами рабочих примерoв. Под VC 2005. Уровень - для начинающих и среднячков. На русском или английском языках. Спасибо
![]() |
|||
|
||||
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 27 Всего: 154 |
Рандомизироваными алгоритмами и вероятностным анализом.
Если ты кнопки на формах рисуешь, то да. Если ты пишешь программу, которая обрабатывает данные, то тебе как минимум нужно знать сложность выполнения того или иного алгоритма над контейнером того или иного типа. И в каком случае какой контейнер использовать. Например, тебе нужно проиндексировать кучу текстовых файлов, от того какой контейнер ты выберешь зависит, будет это работать в течении секунд, часов, или суток ![]() |
|||
|
||||
J0ker |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 986 Регистрация: 17.9.2008 Репутация: 9 Всего: 14 |
самое смешное, что большинство таких умозаключений можно сделать исходя чисто из здравого смысла - и порой это бывает полезней тупого заучивания формулы для каждого вида контейнера. Понимание принципа работы - 90% успеха. Но безусловно сложные алгоритмы требуют знания математики, хотя-бы исключительно прикладной |
|||
|
||||
SABROG |
|
||||||||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 1 Всего: 91 |
Это тот стимул, который подталкивает изучать язык. Естественно сама программа тебе должна быть интересна, должно "загореться" ее сделать. По мере возникновения трудностей и препятствий начнешь понимать, что эту программу уже писать не хочется. Но хоть какие-то знания ты уже получишь к этому времени.
Я переходил на C++ с ассемблера, года 2-3 читал книжку по C++, но задач, которые я бы не мог решить с помощью асма не возникало. У меня выработалось стойкое чувство отвращения к языку, из-за того, что программы получались большими и тащили за собой то, что мне совсем было не нужно. А еще эта омерзительная надпись внутри exeшника "Borland compiler". Тему классов я вообще не понимал, да и сейчас полно пробелов. Более менее начал понимать, когда стал использовать готовые чужие классы, приходилось их наследовать и попутно изучать свойствах. Я не советую читать книжку от корки до корки как учебник в школе. Во-первых это скучно, во вторых не терпится уже начать писать что-то свое. А пробелы в знаниях можно восполнять открытием нужной главы. Как правило все тянется по цепочке и начав что-то изучать придется в любой случае возвращаться к истокам. Т.ч. только беглое ознакомление, а потом выборочно то, что интересно.
Я задавался этим вопросом раньше. При чтении книжки все было понятно, понимал исходники, где что делается. Но когда начинал сам писать исходник с нуля, то банально не помнил как прописывать заголовок #include в кавычках или угловых скобках, какие параметры у main и как писать: using namespace std; или просто namespace std;. Забывал ставить точку с запятой, какие параметры у цикла for и как писать switch(){case:}. Т.ч. лучше перепечатывать, чтобы пальцы запомнили расположение часто используемых клавиш.
Мне до сих пор страшно от такой фразы, но я понимаю что это всего-лишь какая-то операция с битами и я знаю где найти ответ. Нас в колледже по информатике учили как переводить цифры из одной системы счисления в другую. Но, т.к. я этим не занимался каждый день, то естественно забыл. А раз мне это не нужно было, значит эта информация бесполезна. Главное знать, что такие вещи существуют и ты сможешь их найти если возникнет желание стать гуру, который пишет программы на листке бумаги без книжек и интернета, а потом все написанное компилится с первого раза, т.к. ты учел даже такую мелочь как разную реализацию стандарта в компиляторах. Аналогично. В связи с этим у меня было 3 неловких момента, когда я почувствовал себя ущербным. Первый случай, когда я пытался заставить крутится вокруг своей оси карточку. Там надо было периодически уменьшать карточку по координате X до тех пор пока она не принимала отрицательной значение и не показывалась ее оборотная сторона. А потом также увеличивать. Человек из мирка мне тогда посоветовал использовать толи синус, толи косинус. До сих пор не помню что именно. Вроде синус... Все работало и до того, но теперь была одна единственная функция без своего цикла. Второй случай был с определением номера строки в массиве. В памяти даже текстовый файл это всего-лишь длинная линия байтов. Не помню точно как все было, все уже работало. Но в какой-то момент я понял, что единственное что делает мой код это берет остаток от деления и несколько строк кода заменилось на "%". Третий случай это работа с трехмерными объектами. Все что касается координат чего-либо. Я как-то писал бота для игры, у меня был массив координат с месторождением ископаемых. Я поставил себе задачу узнать количество шагов, которое необходимо мне сделать, чтобы достигнуть точки. По сути все сводилось к тому, чтобы найти длину гипотенузы прямоугольного треугольника. Честно, взял учебник по геометрии со шкафа, хотя школу закончил 10 лет назад, чтобы посмотреть формулу. Я ее забыл через месяц. Я математику начал понимать только в 9ом классе, когда начал программировать. Уж много параллелей проводилось. Я просто тупо начал понимать, что функции типа логарифмов, синусов, суммы, интегралы и т.п. просто краткая запись математической программы, которая сокрыта за значками, но на самом деле внутри находятся все те же простые математические операции, которые не нужно проводить человеку самостоятельно, потому что великие математики уже сами вычислили возможные результаты и запихнули в таблицу, чтобы ученику не пришлось каждый раз проводить вычисления вновь и вновь. А для тех цифр, которых нет в таблице придумали калькулятор. А алгоритмы в учебник не включили. Я например не помню, чтобы в учебнике была формула вычисления числа Пи с точностью до любого знака. Хотя она и существует. |
||||||||
|
|||||||||
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 27 Всего: 154 |
Ну вообще, для новичка, с++ не лучий выбор. Для обучения лучше использовать простой язык программирования, который позволяет сосредоточится на проблеме, а не на тонкостях и ньюансах самого языка программирования. Это как велосипед, никто ведь не учится кататься сразу на дорогом навороченом велосипеде, все в детстве начинают с 3-х колесного
![]() |
|||
|
||||
taiven |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 302 Регистрация: 30.6.2008 Репутация: 2 Всего: 9 |
||||
|
||||
IKM2007 |
|
|||
![]() Зима близко ![]() ![]() Профиль Группа: Участник Сообщений: 702 Регистрация: 26.4.2008 Где: olmedreca Репутация: 3 Всего: 40 |
Лучше оставвить ассемблер, в инете полно инфы. Хотя бы в википедии. Здесь про 2-ичную систему и про битовых операции -------------------- "К чёрту обстоятельства, я создаю возможности." Брюс Ли |
|||
|
||||
taiven |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 302 Регистрация: 30.6.2008 Репутация: 2 Всего: 9 |
||||
|
||||
Kallikanzarid |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 240 Регистрация: 9.11.2008 Репутация: 2 Всего: 3 |
Изучи хотя бы булеву алгебру. А вообще лучше, в том числе и для мозга в общем, изучить также остальные начала дискретной математики, классический вещественный анализ (полезно для мозга + больше будешь знать про О-нотацию), линейную алгебру и аналитическую геометрию. А пока ты все это учишь, начни с более простых языков - Ruby, например. Это сообщение отредактировал(а) Kallikanzarid - 29.11.2008, 10:40 |
|||
|
||||
taiven |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 302 Регистрация: 30.6.2008 Репутация: 2 Всего: 9 |
ИМХО это для уже знающего какой-то язык программиста может показаться, что тот или иной язык проще для изучения, а для новичка всё одинаково сложно. |
||||
|
|||||
ilyuha |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 111 Регистрация: 10.7.2007 Репутация: нет Всего: нет |
имхо, С++ для новичка в программировании будет очень сложен. как уже сказал Lazin, надо начинать с чего-то попроще(например, с того же паскаля), что позволит сосредоточится на основных структурах данных, и базовых алгоритмах, не забивая голову фичами самого языка. разве сможет новичек понять конструкцию вида while(*p++=*q++)?
![]() при должном рвении, можно попробовать начать с С. тогда дальнейший переход на С++ будет проще |
|||
|
||||
Dmi3ev |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 13 Всего: 41 |
![]()
![]() ты похоже понимаешь ![]() ![]() ![]() -------------------- |
|||
|
||||
taiven |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 302 Регистрация: 30.6.2008 Репутация: 2 Всего: 9 |
ты хочешь сказать, что после изучения паскаля конструкция вида while(*p++=*q++), станет более понятной..? Разве С++ обязывает использовать именно такие конструкции? Я кстати начинал именно с плюсов. Это сообщение отредактировал(а) taiven - 29.11.2008, 15:24 |
|||
|
||||
ilyuha |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 111 Регистрация: 10.7.2007 Репутация: нет Всего: нет |
Dmi3ev,
![]() не иронизируй ![]() ![]() Добавлено через 4 минуты и 30 секунд taiven, нет. не хочу я так сказать. но.... ммм... после "разворачивания" подобных конструкций, все будет более понятно ![]() |
|||
|
||||
IKM2007 |
|
|||
![]() Зима близко ![]() ![]() Профиль Группа: Участник Сообщений: 702 Регистрация: 26.4.2008 Где: olmedreca Репутация: 3 Всего: 40 |
Я конкретно начинал с C++, до этого в школе "проходили" Pascal, так и не выучил ![]() ![]() И вообще, так можно спорить вечность, каждый начал по-своему, у думает что так правильно. ![]() -------------------- "К чёрту обстоятельства, я создаю возможности." Брюс Ли |
|||
|
||||
ilyuha |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 111 Регистрация: 10.7.2007 Репутация: нет Всего: нет |
||||
|
||||
Dmi3ev |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 13 Всего: 41 |
Конечно, это все субъективно. Я могу рассказать вам свою историю. В школе программировал на Pascal, но делал только то, что надо, не больше. Сортировал массивы, находил максимальные и минимальные элементы, рисовал разные фигуры и тд. Потом, когда столкнулся с программированием в институте, захотелось научиться. Установил себе компилятор Turbo C++ 3.1 от Borland, Builder 6, VS и погнал шпарить. Очень понравилось мне тогда в билдере работать, пара движений руками, ноль понимания, но раз, два и уже вполне хорошее приложение получалось. Это меня очень заинтересовало, потом начали появляться ситуации, когда нужно было действительно подумать и почитать литературу по языку, дальше таких ситуаций становилось больше, приходилось изучать, сейчас таких ситуаций полно, и я изучаю по мере потребностей. Конечно хорошо знать все функции с++, свободно ими пользоваться, знать все библиотеки и алгоритмы, но это НЕВОЗМОЖНО. Поэтому я изучаю с++ по мере поступления трудностей, а что не могу понять сам спрашиваю на форумах, пока не встречал не решаемых задач. Рано или поздно находил решения, иногда даже они были уже не актуальны (сделал по-другому и все тут). Вообщем, каждый должен сам решить. Мне было важно, чтобы язык заинтересовал, поэтому я работал в билдере, там мне было проще, не вникал в указатели, классы, структуры и тд, а потом понял, что пользоваться всем этим делом можно и нужно. Начал изучать... Изучаю... Уже два года... Надеюсь, интерес не пропадет)))
-------------------- |
|||
|
||||
Kallikanzarid |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 240 Регистрация: 9.11.2008 Репутация: 2 Всего: 3 |
Точку с запятой забыл ;) Я, кстати, тоже из Делфи пришел, еще в восьмом классе тогда был, ЕМНИП. Помню, как безуспешно пытался разобраться в коде MFC ![]() Это сообщение отредактировал(а) Kallikanzarid - 30.11.2008, 08:01 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |