Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.79/137: Рейтинг темы: голосов - 137, средняя оценка - 4.79
GTS
25 / 26 / 3
Регистрация: 02.04.2012
Сообщений: 293
1

Самостоятельное изучение C++

15.05.2012, 00:43. Просмотров 24838. Ответов 79
Метки нет (Все метки)

Здравствуйте! Есть потребность изучить C++ но знаний к сожалению 0.

Ситуация следующая, ни каких языков программирования я не знаю, когда то сталкивался с Delphi (в институте), но дальше небольшой программки с одной кнопкой "Закрыть" и то не без помощи более эрудированного соседа по парте. Сейчас и это скорее всего не получится сделать, разве что повезет и я в нужную строчку впишу "Close;".

Подскажите следующие:
Во первых я не могу ни где найти саму программу, с Delphi все было проще, Delphi 7 скачивай покупай, изучай и программируй.
Тут же я не могу понять что за программа и где ее взять вообще (что мне нужно Borland C++ или Microsoft Visual C++ или что то другое?), я не собираюсь делать какие то видео игры, скорее ПО типа Word, базы данных и т.д..

Ну и главное, какую литературу стоит изучать при моих знаниях, что бы в первую очередь понять что к чему, во вторых сделать это в минимальные сроки.

Чему учили в школе \ институте на информатики не помню, Pascal и тому подобное тоже не знаю, объектно ориентированное программирование то же не знаю.

И еще, вопрос может показаться глупым, все же, что лучше изучать C++ или Delphi? когда я учился в институте и нам объявили, что программировать будем на Delphi, некоторые более компетентные сокурсники подметили, зачем этот Delphi, на нем ни кто не программирует, хотя он для меня более интуитивно понятен (если конечно взять в учет то, что я C++ не видел даже), конечно на Delphi программируют но значительно меньше, соответственно литературы по Delphi меньше, полезной информации и людей способных помочь будет меньше.

Да кстати, параллельно мне еще надо изучать PHP, надо программировать некоторые модули для WordPress.

Добавлено через 5 часов 19 минут
неужели ни кто подсказать не может
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.05.2012, 00:43
Ответы с готовыми решениями:

Понятен материал учебника, но не получается самостоятельное решение задач
Здравствуйте. Читаю книжку Дейтелов, переписываю код, который дан в учебнике,...

Изучение С++
Дайте, пожалуйста, ссылку на сайт, где очень подробно описаны строки, функции...

Изучение С++
Очень загорелся в изучении с++, учусь только на втором курсе радиотехнического...

Изучение C++
Приветствую :). Решил начать изучение C++, но не знаю с какой книги начать....

Изучение С++
Добрый вечер прошу совета , что изучать далее ? Освоил книгу Джеймса Либрети ,...

79
Endiff
31 / 31 / 3
Регистрация: 19.05.2012
Сообщений: 67
19.05.2012, 15:34 41
Цитата Сообщение от GTS Посмотреть сообщение
По поводу обучения в ВУЗах, а лучше сказать ВТУЗах, я как раз закончил университет приборостроения и информатики по специальности Робототехнические системы, и то, что знаний дают 0, это абсолютно верно. Была у нас информатика, курсовик по ней у нас был - перепечатать пару страниц из книги в ворд и записать на дискету, причем пару страниц давалось сразу на 3 человека, но мы и того не сделали, взяли у кого то другого откопировали, как один потом сказал, у меня сердце прихватило когда преподаватель спросил: "Если я сейчас вставлю дискету в компьютер.. смогу ли я работать с картинками в тексте?", в итоге по информатики у меня 5. На следующем курсе у нас началось ООП, там уже естественно вел другой преподаватель, и когда ему сказали что мы не разбираемся в программирование, он взял у кого то зачетку и спросил, как же это так, у 5 за информатику. Были такие, которые уже знали язык программирования, Делфи в частности, в школе их этому не учили, т.е. выучили сами.
Это было лирическое отступление.


Подведу черту еще раз, я не знаю чем отличается Borland C++ от Visual C++ так же я не знаю что такое IDE, SDK, компилятор, #include, void, и тому подобное, т.е. знаний полный 0.
Вот какой пробел знаний мне нужно заполнить, подскажите пожалуйста книгу, только не "Прочитай все", я понимаю, если прочитать все то шансов куда больше разобраться, все ограничивается временем.


И хотелось бы все же остановиться на том, на чем больше всего программируют.
Я сам начинал с "C++ How to program" - Deitel, очень помогла в свое время, и тебе советую.
1
KristopherRobin
143 / 139 / 11
Регистрация: 11.09.2011
Сообщений: 409
19.05.2012, 17:48 42
Ничего не мешает, именно поэтому такая фича присутствует в MSVS (как для шарпа, так и для плюсов), в несколько меньшей степени в NetBeans, в Qt Creator, а также есть специальные дорогостоящие инструменты для статического анализа кода, например, PVS-Studio.
а ясно. платных не видел ниразу
а в MSVS не видел такое (подчеркивание ошибок во время набора кода для native C++), хотя я ток ставил MSVS 2008.
0
metagalaxy
7 / 7 / 2
Регистрация: 18.02.2012
Сообщений: 61
19.05.2012, 20:50 43
Цитата Сообщение от Endiff Посмотреть сообщение
Я сам начинал с "C++ How to program" - Deitel, очень помогла в свое время
на английском читал?)

Добавлено через 2 часа 42 минуты
GTS, вообщем тебе нужна книга "Как программировать на С++" Дейтела, там ты, думаю, разберешься)
1
GTS
25 / 26 / 3
Регистрация: 02.04.2012
Сообщений: 293
27.05.2012, 00:14  [ТС] 44
ну, начались первые проблемы, как всегда в самом начале, на самом первом коде.

1. изучаю по книге - Харви М. Дейтел, Пол Дж. Дейтел - Как программировать на C++ - 2008 г.
2. использую ПО - Microsoft Visual C++ 2010 Express (версия русифицирована)

первая программа в книге (если ее вообще таковой можно назвать), должно писать "Привет мир" у меня в частности должно писать : Hello world

Код

C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
 
int main()
 
{
 
std::cout<<"Hello world\n";
 
return 0;
 
}
Все написано как в книге (если я конечно не ослеп)

Далее захожу в Microsoft Visual C++ 2010 Express, создать новый проект, Консольное приложение Win32, задаю ему имя, потом ставлю галочку "Пустой проект" (если ее не ставить, то создается куча непонятных для меня и соответственно пока не нужных мне файлов), вообще все выглядит так:

1.
2.
3.

Потом я запускаю это чудо, жму F5 и появляется командная строка буквально на 1 сек и тут же пропадает, почему так? как быть? оно ведь не должно исчезать.
0
silent_1991
Эксперт С++
5009 / 3069 / 270
Регистрация: 11.11.2009
Сообщений: 7,043
Завершенные тесты: 1
27.05.2012, 00:25 45
GTS, жмите Ctrl+F5.
1
alkagolik
Заблокирован
27.05.2012, 00:36 46
Цитата Сообщение от silent_1991 Посмотреть сообщение
GTS, жмите Ctrl+F5.
не знаю насколько это поможет, лень ребутать. 2GTS, стандартный вариант для всех начинающих - добавить вызов cin.get()
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
 
int main() {
 
    std::cout<<"Hello world\n";
    std::sin.get();
 
    return 0; 
}
Добавлено через 54 секунды
GTS, еще с кириллицей будут проблемы, решение смотри в ветке c++ для начинающих в прилепленной теме.

Добавлено через 2 минуты
Цитата Сообщение от GTS Посмотреть сообщение
2. использую ПО - Microsoft Visual C++ 2010 Express (версия русифицирована)
все таки не советовал бы с нее начинать. Потом столкнешься с проблемой что привык писать не по стандарту, т.к. она подсовывает (рекомендует во всяких предупреждениях) реализации вызовов от microsoft, не являющиеся ISO reference.
0
silent_1991
Эксперт С++
5009 / 3069 / 270
Регистрация: 11.11.2009
Сообщений: 7,043
Завершенные тесты: 1
27.05.2012, 01:18 47
alkagolik, это поможет именно в Visual Studio. Фактически же мой совет всегда один и тот же: пишешь консольку - запускай из консольки.
0
instagib
122 / 85 / 16
Регистрация: 14.02.2011
Сообщений: 340
27.05.2012, 02:47 48
на счет ВУЗов, действительно лучше самообучаться. к примеру в прошлую пятницу был поток по C++ 1 курс. препод спрашивает:
кто знает чем отличается
C++
1
char *s = "hello";
и
C++
1
char s[] = "hello";
я ему говорю что мол в случае *s - hello - константа и ее изменять нельзя и еще много правильных вещей в чем был уверен на 100%, на что он мне радостно ответил что я сказал с точностью да наоборот. Решил с ним поспорить на 10 автоматом(у меня 9 автомат, 10 никому еще не хочет ставить) : он говорит мол не надо с ним спорить ибо у него уже опыт много лет и который год он именно таким образом учит студентов. вообщем я его довел, и мне принесли ноут с компилятором minGW-c++ (windows 7 32bit) . Итак вот результат:
C++
1
2
3
char *s = "hello";
s[1] = 'o';
std::cout << s;
программа скомпилировалась, но при запуске выдала крэш.
если закомментить или убрать строку s[1] = 'o', сей криминал пропал, что вызвало у него большое удивление и смех в зале. К концу пары мы с ним пошли в лабораторию, по пути к которой он мне все твердит в TurboC++ все работает. да, действительно в турбоси работало. Он твердил что это стандарт С и так все должо быть. я уже не говорю про void main () ....
----------------
Вообщем вывод таков мой, лучше чем самообразование и пинок под зад совет,направление от опытных прогаммистов не будет.
P.S могу прикрепить аудиозапись, удачно получилось записать
0
MrGluck
Модератор
Эксперт CЭксперт С++
8084 / 4941 / 1431
Регистрация: 29.11.2010
Сообщений: 13,392
27.05.2012, 03:20 49
У меня в ВУЗе все кончилось тем, что препод сказал: Раз такой умный - будешь читать лекции по С++ сам. Итог: 5 автоматом, учитывая что он никому такого подарка не делал, я прочел несколько лекций - всем понравилось. Давал на том уровне, на котором была группа.
Но спорить с преподом во-первых, опасно. Во-вторых, это должна быть дискуссия, а не базар. В-третьих, подрывать авторитет препода умышленно - некрасиво. Лучше указывать на ошибки после пары наедине. В-четвертых, ответ должен быть аргументирован, а не я знаю, я читал. Должны быть ссылки, примеры. В-пятых, если видите, что человек не терпит критику - не лезьте на рожон, вам ему экзамен сдавать, а не ему вам. Завалят и будете локти кусать, раз такой инициативный.
С нынешним преподом у меня была другая ситуация. Он допустил ошибку в блок-схеме. Я подошел после пары, пытался ему показать. Его ответ: "Я не ошибаюсь никогда". Вот с такими людьми даже смысла нет разговаривать. А на след. пару он сообщил: "Я нашел ошибку."
1
instagib
122 / 85 / 16
Регистрация: 14.02.2011
Сообщений: 340
27.05.2012, 03:26 50
MrGluck, Вы асболютно правы. Дело в том что с моей стороны это не было как цель подорвать его авторитет или базар. Все было на довольно ровном тоне. Ссылку привел на 2 источника C++ Страустрап и Павловская - Программирование на языке высокого уровня C\C++. Критика была 90% ко мне. я не критиковал, а просто попросил после пары пойти в лабораторию и все проверить.
Думаю все правильно сделал. С преподом почти на "ты". )

Цитата Сообщение от MrGluck Посмотреть сообщение
Я не ошибаюсь никогда
0
Kastaneda
Jesus loves me
Эксперт С++
4937 / 3013 / 346
Регистрация: 12.12.2009
Сообщений: 7,610
Записей в блоге: 2
Завершенные тесты: 1
27.05.2012, 07:07 51
Лучший ответ Сообщение было отмечено как решение

Решение

У нас тоже по учебе начался С++, вот как раз к сессии готовлюсь, пишу КР. Там методичка по Borland C++ (тот самый), примеры кода не то что в современном компиляторе компилироваться не будут, а даже в Borland C++. Описание С++ содержит ошибки и неточности. В общем все как надо
Помнится 2 семестра назад мы проходили основы Си, задания каждый должен был выбрать любое из предложенных. Я не стал писать писать Hello World, принес свой класс vectror, который у меня уже давно был написан. Там я, как обычно, использовал список инициализирующих значений конструктора. Меня просто убил вопрос препода: "А зачем вы члены через двоеточие инициализируете, ведь наследования нет?" Пришлось открыть ему тайну, что так делается не только в случае наличия наследования
4
silent_1991
Эксперт С++
5009 / 3069 / 270
Регистрация: 11.11.2009
Сообщений: 7,043
Завершенные тесты: 1
27.05.2012, 11:24 52
Цитата Сообщение от instagib Посмотреть сообщение
могу прикрепить аудиозапись
Сделайте одолжение, хочется послушать))
0
daslex
27.05.2012, 13:42
  #53

Не по теме:


char *S="hello";
S[1]='o';

в Turbo, в Borland, в Visual компилирует, а вот в mingw крэш, да?
нет у меня mingw, поэтому не знаю чего там и как у вас было.

Скажем так, я вообще ничего не знаю, поэтому ни в чем убеждать никого не буду. Читал пост на форуме по стадиям развития программиста, так вот независимо от того препод неправ или instagib неправ - instagib напоминает мне ту стадию звезданутости, когда программист всем и вся доказывает что он прав (не поймите неправильно). Это нейтральный взгляд и исключительно личное мнение.

0
silent_1991
27.05.2012, 13:51
  #54

Не по теме:

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

0
alkagolik
Заблокирован
27.05.2012, 14:06 55
хорошо когда вообще не учат, а дают работу на выполнение к концу сессии и в течение семестра и парочку источников для черпания информации. Ну а ты сам уже со своими сорцами ходишь и долбишь: "правильно так или так и почему"? Программированию наверное вообще невозможно "научить", а вот остальные навыки во ВТУЗе очень даже доставляют. И вариант такой же, к концу семестра предоставить чертеж и расчетную часть устройства, в течение семестра выполнить ряд работ. Где и как ты работаешь не должно интересовать препода. Его задача тебя нагрузить работой и спросить результат. Конечно если он глуп это осложняет ситуацию, но начальник всегда прав.
0
daslex
1291 / 535 / 177
Регистрация: 02.08.2011
Сообщений: 2,756
27.05.2012, 14:06 56

Не по теме:

silent_1991 , согласен. но это вопрос поведения. не нужно выставлять преподавателя идиотом и выставлять его насмех., чтобы всем доказать свою правоту в тем более если прав. Если хочешь быть правым, старайся быть правым во всем. С этим и сам instagib согласен. А правильно сделать так, чтоб препод извинился перед аудиторией и сказал свою ошибку. То о чем сказал ув. Mr.Gluck

вообщем я его довел, и мне принесли ноут с компилятором minGW-c++
что вызвало у него большое удивление и смех в зале
только из-за этих вещей и напоминает



Если же говорить по теме, то мне непонятна эта ситуация. Да, я изучаю сам, но ни разу не попадалось в глаза этого момента и не попадется многих других. А я бы сказал это реально огромный минус самостоятельного изучения и плюс такого где предмет преподают.
0
MrGluck
Модератор
Эксперт CЭксперт С++
8084 / 4941 / 1431
Регистрация: 29.11.2010
Сообщений: 13,392
27.05.2012, 14:22 57
Цитата Сообщение от daslex Посмотреть сообщение
А я бы сказал это реально огромный минус самостоятельного изучения и плюс такого где предмет преподают.
Дело в том, что программирование почти нигде правильно не преподают. За все время лично у меня исходник смотрели только во 2 семестре, и то аспирант. Это впрочем лучше, чем когда попадаются преподы самодуры. К сожалению, действительно гениальных я не встречал. То ли дело по матану

Ну согласись, неправильно, когда какой-то зеленый студент, прочитавший полкниги Дейтелов уже разбирается в программировании лучше чем человек, который по идее должен учить будущих программистов. Конечно да, главным является толкнуть в нужном направлении и дать литературу. Но проверять то тоже надо, и не ехе-шник, а смотреть на стиль, указывать на ошибки. А так у нас 75% группы еще не знает, что размер массива должен быть константой, половина, что память надо освобождать, а четверть, что индексация массива начинается с 0. А при виде их исходников волосы шевелятся на всех местах. Но оно ведь работает, и не важно, что при вводе некоторых значений происходит жесткий краш. Лабы принимают, и они остаются в полной уверенности, что умеют "кодить".
0
diagon
Higher
1937 / 1203 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
27.05.2012, 14:39 58
Цитата Сообщение от daslex Посмотреть сообщение
char *S="hello";
S[1]='o';
в Turbo, в Borland, в Visual компилирует, а вот в mingw крэш, да?
нет у меня mingw, поэтому не знаю чего там и как у вас было.
Скомпилируется-то оно в любом случае. Но при запуске программа должна сломаться.
Видимо, вы настолько начинающий, что не знаете, что константы изменять нельзя(а здесь происходит именно это).

Цитата Сообщение от daslex Посмотреть сообщение
instagib напоминает мне ту стадию звезданутости, когда программист всем и вся доказывает что он прав (не поймите неправильно)
А что в этом плохого? Из спора с интересным собеседником можно почерпнуть очень многое. Главное - не переходить на личности и уметь признавать свои ошибки.
2
alkagolik
Заблокирован
27.05.2012, 15:15 59
Цитата Сообщение от silent_1991 Посмотреть сообщение
alkagolik, это поможет именно в Visual Studio. Фактически же мой совет всегда один и тот же: пишешь консольку - запускай из консольки.
есть такая консолька Console2. Кинул ее в корень -> c:\Console2>
Интересн вопрос как написать батник. В нем прописать путь к компилятору и в качестве аргументов передать путь к исходнику и путь к выходному .exe? чтобы получить примерно такое
Код
c:\console2>make.bat "c:\\projects\\poject\\*.cpp" "c:\\projects\\project\\debug"
Насколько вообще в виндовс развит скриптовый язык?
0
daslex
1291 / 535 / 177
Регистрация: 02.08.2011
Сообщений: 2,756
27.05.2012, 15:53 60
Да. начинающий.
Знаю что константы менять нельзя.
Я ж сразу написал ничего не знаю. Я не врал.

Я это не чтобы доказывать что-то писал. Просто сам по себе момент представляет из себя всего лишь одну такую ситуацию из множества других всевозможных. Из этой ситуации можно немного взвесить за и против. (это каждому по своему). Мне повезло, да. Я попал на тему когда она актуальна, обсуждается. Увидел, прочел, закрепил. А другие самоучки? Это уже фактор везения повезет зацепит или нет. Разбирая простые примеры мне и в голову не приходило задать подобный вопрос ни себе ни кому-то другому.

По поводу спора. Вопрос не в самом споре, а в том как его поставить. Публичный спор-одно, личный спор это другое.

Цитата Сообщение от MrGluck Посмотреть сообщение
Ну согласись

Не по теме:

Уча других, мы учимся сами. Л.А.Сенека


Есть такая ситуация, что человек вынужден учится у человека который разбирается хуже. Это наверное все видели в каком-либо предмете. О чем может думать такой студент? Да я бы с радостью и не ходил сюда, но меня изначально поставили в такое положение где я впустую потрачу все свое время. (как один из вариантов мыслей)

Добавлено через 36 минут
silent_1991
я вернусь к вашим словам про заведомо неправильные вещи.
Тут вопрос еще в том, о чем вообще говорит преподаватель.
Ведь в borland c++3.1 и turbo C всё это работает, а значит там это не константное выражение. (Да это старые компиляторы, там нет стандартов и миллион веских причин еще. Я понимаю. Надо взять новые, убить тех кто использует старые и т.д и т.п.).
В новых не работает и как мне пояснил ув. diagon при запуске сломается.

И получается, что каждый о своем и каждый по своему прав.

Вот и зачем это: Ты идиот, а я умный?
0
27.05.2012, 15:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.05.2012, 15:53

Изучение
Сейчас я учу с++ и delphi, правильно ли будет учить эти язык так : например...

изучение C до C++
объязательно изучить C до изучения C++ ?

Изучение с++
Знаю основной синтаксис + ООП. Что посоветуете почитать актуального на...


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

Или воспользуйтесь поиском по форуму:
60
Закрытая тема Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru