Форум программистов, компьютерный форум CyberForum.ru

Что лучше для изучения c++ - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 36, средняя оценка - 4.81
Demsol
43 / 43 / 9
Регистрация: 16.11.2011
Сообщений: 125
01.12.2011, 16:19     Что лучше для изучения c++ #1
Всем привет.
Вообщем, я скачал книгу Павловская "С++ - программирование на языке высокого уровня".
Я довольно неплохо знаю delphi, поверхностно-php, - сейчас решил что пора уже и c++ изучить. Слышал что синтаксис php и c++ схож, думаю в обучении будет легче. Хотелось бы услышать ваши отзывы об этой книге. Является ли она тем, что мне нужно, или вы можете посоветовать что-то другое.
Спасибо за ваши комментарии.

Добавлено через 3 минуты
Добавлю, что хотелось программировать на Borland C++, на Visual нет желания - недолюбливаю продукцию microsoft вообще, а после хотелось бы научиться программировать под *nix системы.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Сыроежка
Заблокирован
02.12.2011, 15:22     Что лучше для изучения c++ #41
Цитата Сообщение от co6ak Посмотреть сообщение
то, что основателем Гугла является русский не смущает?
то, что в америкосии программист считается неквалифицированным рабочим. как грузчик. там индусы и китайцы работают. процент "программистов" среди именно америкосов - мизерный.
То, что очень много специалистов, работающих в западных крупных компаниях, являются русскими, не смущает ?
Почему меня должна смущать ваша глупость?! Речь идет не о национальностях того или иного руководителя фирмы в США, а о развитии информациооных технологий и соответствующей инфраструктуре, направленной на поддержку развития этих технологий в конкретной стране. Россия в этом отношении находится на уровне банановых республик. И это очевидно. Уровень качества печатной пролдукции по информационным технологиям отечественных авторов крайне инизкий. Даже книги, которые здесь советуют читать для изучения С/С++, сплошь и рядом сотоят из англоговорящих авторов. Отечественные авторы, как правило, пишут совершенно безграмотные книги. Я сейчас посмотрел, что у меня дома на полках из книг по программированию, и нашел лишь одну, повторяю, одну книгу по теории трансляторов российского автора. Да и то эту книгу нельзя назвать книгой по практическому программированию, сколько книгой по теоретическим основам компиляторов. Нет, вру! Есть еще книга нашего автора "Ассемблер для Windows". Все, больше ничего нет. И не потому, что я не обращаю внимание на книги отечественных авторов, а потому что смотрю их и вижу, насколько там низкий уровень изложения, и в лучшем случае перекомпиляция из давно уже изданных на Западе. Какова ценность книг российских авторов по С/С++, если многие из них до сих пор не знают, как правильно объявляется функция main?!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
co6ak
Кошковед
 Аватар для co6ak
402 / 495 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
02.12.2011, 15:52     Что лучше для изучения c++ #42
Сыроежка, если ты споришь с идиотом, возможно, он в это время делает то же самое.

Начни судить о полезности еды размером сисек поварихи.
Напиши свою книгу. Будешь олицетворять подъем развития информационных технологий на руси. Все твои доводы беспочвенны по большому счету. Как человек, который называет себя программистом, может так глобально обобщать ситуацию? "Я нашел на полке у себя". да и флаг тебе в руки. как можно судить столь глобально.
Ход мыслей как у школьницы-старшеклассницы. ей богу.
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
02.12.2011, 16:03     Что лучше для изучения c++ #43
Холивары холиварами, но насчет отечественной современной литературы по программированию (как минимум по С/С++) полностью согласен с Сыроежкой.
многие из них до сих пор не знают, как правильно объявляется функция main?!
Сыроежка
Заблокирован
02.12.2011, 16:25     Что лучше для изучения c++ #44
Цитата Сообщение от co6ak Посмотреть сообщение
Сыроежка, если ты споришь с идиотом, возможно, он в это время делает то же самое.

Начни судить о полезности еды размером сисек поварихи.
Напиши свою книгу. Будешь олицетворять подъем развития информационных технологий на руси. Все твои доводы беспочвенны по большому счету. Как человек, который называет себя программистом, может так глобально обобщать ситуацию? "Я нашел на полке у себя". да и флаг тебе в руки. как можно судить столь глобально.
Ход мыслей как у школьницы-старшеклассницы. ей богу.
Я вам отвечу словами киногероя из комедии "Иван Васильевич меняет профессию": "По-моему вы несете бред!"
ValeryLaptev
Эксперт C++
1005 / 784 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
02.12.2011, 19:44     Что лучше для изучения c++ #45
Цитата Сообщение от Сыроежка Посмотреть сообщение
Дело в том, что вам надо в одномерном пространстве, которым является память представить многомерные объекты. Даже на листке бумаги еще можно нарисовать двухмерный массив, но если речь пойдет о трехмерном, то вы столкнетесь со сложностью, так как вам нужно будет третье измерение. Поэтому ничего удивительного в том нет, что в памяти хранятся массивы, как массивы массивов. Но это связано лишь с их физическим представлением, а не с семантикой С/С++. В С/С++ есть тип многомерные массивы, которые в С++ вы можете даже передавать по ссылке.
Эта семантика пришла из С. Ссылок в С не было.

Добавлено через 3 минуты
Цитата Сообщение от greeezz Посмотреть сообщение

Не по теме:

Хотелось бы добавить. Посмотрите сколько в "западных" конторах работает специалистов из бывшего союза. Я вам как житель заатлантического континета со всей ответвенностью заявляю. Все дело в грамотном менеджменте. Тут ходит среди многих работадателй такая поговорка. Не один раз слышал. "Берешь на работу программера, убедись что он "русский" ". Под "русский" подразумевают всех кто с бывшего союза.

Не по теме:

Я знаю, поскольку моих выпускников-дипломников за рубежом достаточно много. И в Европе, и в Америке, и даже в Австралии. Причем, даже наши троечники без проблем устраивались за бугром.

Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
02.12.2011, 19:46     Что лучше для изучения c++ #46
Цитата Сообщение от ValeryLaptev Посмотреть сообщение

Не по теме:

Я знаю, поскольку моих выпускников-дипломников за рубежом достаточно много. И в Европе, и в Америке, и даже в Австралии. Причем, даже наши троечники без проблем устраивались за бугром.

Не по теме:

Возьмите меня в ученики

Сыроежка
Заблокирован
02.12.2011, 20:17     Что лучше для изучения c++ #47
Цитата Сообщение от ValeryLaptev Посмотреть сообщение
Эта семантика пришла из С. Ссылок в С не было.
А вы внимательно прочитали, что я написал?! Я спрашиваю это потому, что эта ваша реплика неуместна. В моем сообщении все ясно сказано.

Процитирую себя, любимого, еще раз: "В С/С++ есть тип многомерные массивы, которые в С++ вы можете даже передавать по ссылке."
ValeryLaptev
Эксперт C++
1005 / 784 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
02.12.2011, 23:29     Что лучше для изучения c++ #48
Цитата Сообщение от Сыроежка Посмотреть сообщение
А вы внимательно прочитали, что я написал?! Я спрашиваю это потому, что эта ваша реплика неуместна. В моем сообщении все ясно сказано.

Процитирую себя, любимого, еще раз: "В С/С++ есть тип многомерные массивы, которые в С++ вы можете даже передавать по ссылке."
А вы ВНИМАТЕЛЬНО и МЕДЛЕННО прочитайте мою фразу. Повторю большими буквами: СЕМАНТИКА ОДНОМЕРНЫХ МАССИВОВ УНАСЛЕДОВАНА ОТ С. Это - по стандарту, между прочим, на который вы так любите ссылаться...
В С - не было многомерных массивов и ссылок - не было.
greeezz
02.12.2011, 23:55
  #49

Не по теме:

ValeryLaptev

Я знаю, поскольку моих выпускников-дипломников за рубежом достаточно много. И в Европе, и в Америке, и даже в Австралии. Причем, даже наши троечники без проблем устраивались за бугром.
ну так я просто ваши слова и подтвердил

Сыроежка
Заблокирован
03.12.2011, 03:50     Что лучше для изучения c++ #50
Цитата Сообщение от ValeryLaptev Посмотреть сообщение
А вы ВНИМАТЕЛЬНО и МЕДЛЕННО прочитайте мою фразу. Повторю большими буквами: СЕМАНТИКА ОДНОМЕРНЫХ МАССИВОВ УНАСЛЕДОВАНА ОТ С. Это - по стандарту, между прочим, на который вы так любите ссылаться...
В С - не было многомерных массивов и ссылок - не было.
Увы, вы не исправимы. Я думаю, что вы не внимательно читаете то, что япишу, именно из-за уязвленного самолюбия, что указали вам, что вы не знаете ни С, ни С++!

Я ясно написал, что "В С/С++ есть тип многомерные массивы, которые в С++ вы можете даже передавать по ссылке." Спечиально для вас выделяю жирным шрифтом часть фразы. Заметили, что в выделенной части фразы говорится лишь про С++? Или опять будете делать вид (а может бытьи не вид, а вы действительно не понимааете, что вам пишут), что вы не заметили словочетание "которые в С++".

Но это мелочи по сравнению с тем. что вы даже не знаете, что в С есть многомерные массивы! Я вам настоятельно советую почитать книгу автора языка С Дегниса Ритчи "Язык программирования С", в которой есть параграф, котоырй прямо так и называется "5.7 Многомерные массивы". Если вы не поняли, то я повторю, что эта книга о С, а не о С++! В С++ не изобретали многомерные массивы, как вы наивно думаете.

А самое главное - видите дискуссию корректно! Я нигде не говорил, что в С есть ссылки. Это вы за меня сочиняете, а затем свои фантазии приписываете мне. Надо сохранять, как говорят японцы, лицо, даже если вы безнадежно проигрываете .
ValeryLaptev
Эксперт C++
1005 / 784 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
03.12.2011, 09:01     Что лучше для изучения c++ #51
Цитата Сообщение от Сыроежка Посмотреть сообщение
1. Увы, вы не исправимы. Я думаю, что вы не внимательно читаете то, что япишу, именно из-за уязвленного самолюбия, что указали вам, что вы не знаете ни С, ни С++!

2. Но это мелочи по сравнению с тем. что вы даже не знаете, что в С есть многомерные массивы! Я вам настоятельно советую почитать книгу автора языка С Дегниса Ритчи "Язык программирования С", в которой есть параграф, котоырй прямо так и называется "5.7 Многомерные массивы". Если вы не поняли, то я повторю, что эта книга о С, а не о С++! В С++ не изобретали многомерные массивы, как вы наивно думаете.

3. А самое главное - видите дискуссию корректно! Я нигде не говорил, что в С есть ссылки. Это вы за меня сочиняете, а затем свои фантазии приписываете мне. Надо сохранять, как говорят японцы, лицо, даже если вы безнадежно проигрываете .
0. Я специально пронумеровал, чтобы было понятно, на какую фразу я отвечаю.
1. Это - грубый и хамский наезд - переход на личности. Я вам такого повода не давал.
2. Цитирую Кернигана и Ричи (2001 года, 3-е издание, исправленное и дополненное),
параграф 5.7, стр. 147, второе предложение:
Строго говоря, в Си двумерный массив рассматривается как одномерный массив, каждый элемент которого - также массив.
Будете спорить с Ричи?
3. Опять переход на личности. Причем безосновательный.
Надо сохранять, как говорят японцы, лицо, даже если вы безнадежно проигрываете .
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
03.12.2011, 09:38     Что лучше для изучения c++ #52
Что касается языка Си, то двумерный массив рассматривается как одномерный массив массивов. Например, матрица int a[M][N] будет рассматриваться как одномерный массив из M элементов, а элементами являются одномерные массивы int a[N]. Поэтому мы может пробежать все элементы матрицы a таким образом:
for(i = 0; i < M*N; i++)
*(*a + i)
Здесь *a - адрес самого первого элемента матрицы (в виде одномерного массива). Если бы матрица не являлась одномерным массивом массивов, то такой код был бы невозможен.

Про то, что матрица рассматривается как одномерный массив и У Ритчи есть, и у Стивена Прата.
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
03.12.2011, 11:02     Что лучше для изучения c++ #53
Цитата Сообщение от Thinker Посмотреть сообщение
Если бы матрица не являлась одномерным массивом массивов, то такой код был бы невозможен.
То, что элементы хранятся последовательно, ничего не доказывает.
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
03.12.2011, 11:25     Что лучше для изучения c++ #54
Цитата Сообщение от fasked Посмотреть сообщение
То, что элементы хранятся последовательно, ничего не доказывает.
А я ничего не доказываю, делать мне больше нечего, просто привожу факты. И если элементы хранятся всегда последовательно и их ровно M*N штук, не массив ли это размера M*N, при условии что мы знаем адрес его начала?
По определению, массив это набор однотипных объектов, последовательно располагающихся в оперативной памяти. А мы именно это и имеем! Ну и какие возражения после этого будут?
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
03.12.2011, 12:03     Что лучше для изучения c++ #55
Цитата Сообщение от Thinker Посмотреть сообщение
И если элементы хранятся всегда последовательно и их ровно M*N штук, не массив ли это размера M*N
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
struct s {
    int item1;
    int item2;
    /* ... */
    int itemn;
};
 
int main() {
   struct s seq;
   int i;
   
   for (i = 0; i < 3; ++i) {
      *((int *)(&seq + i)) = i;
   }
   
   for (i = 0; i < 3; ++i) {
      printf("%d, ", *((int *)(&seq + i)));
   }   
}
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
03.12.2011, 12:06     Что лучше для изучения c++ #56
fasked, структура это обобщение массивов. Мой риторический вопрос касался по поводу соотношения понятия матрицы и массива в языке Си, не зря там число M*N фигурирует)
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
03.12.2011, 12:22     Что лучше для изучения c++ #57
Цитата Сообщение от Thinker Посмотреть сообщение
не зря там число M*N фигурирует
C
1
2
3
4
5
6
struct s {
    int item1[M];
    int item2[M];
    /* ... */
    int itemN[M];
};
Цитата Сообщение от Thinker Посмотреть сообщение
структура это обобщение массивов.
Так мы опять скоро придем к тому, что все есть глупые безымянные байты.
Цитата Сообщение от Thinker Посмотреть сообщение
Мой риторический вопрос касался по поводу соотношения понятия матрицы и массива в языке Си
А я говорю о том, что если данные хранятся последовательно в памяти, то это не значит, что они обязательно сформированы в массив.
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
03.12.2011, 12:27     Что лучше для изучения c++ #58
Цитата Сообщение от fasked Посмотреть сообщение
А я говорю о том, что если данные хранятся последовательно в памяти, то это не значит, что они обязательно сформированы в массив.
Это да, но матрицу мы можем рассматривать как одномерный массив, уж так она хранится. К чему это я. К тому, что некоторые алгоритмы работы с матрицами легче прописать, если обращаться к ее элементам так:
*(*a + i), i=0,...,M*N-1
Мне это важно именно для написания быстрых алгоритмов, а в вопросы, связанные с понятием определения и способом хранения лезть не хочется. Мне важно, что такое обращение к элементам матрицы всегда будет верным, а это зависит от того как матрица хранится.
Сыроежка
Заблокирован
03.12.2011, 16:24     Что лучше для изучения c++ #59
Цитата Сообщение от ValeryLaptev Посмотреть сообщение
0. Я специально пронумеровал, чтобы было понятно, на какую фразу я отвечаю.
1. Это - грубый и хамский наезд - переход на личности. Я вам такого повода не давал.
2. Цитирую Кернигана и Ричи (2001 года, 3-е издание, исправленное и дополненное),
параграф 5.7, стр. 147, второе предложение:

Строго говоря, в Си двумерный массив рассматривается как одномерный массив, каждый элемент которого - также массив.
Будете спорить с Ричи?
3. Опять переход на личности. Причем безосновательный.

Надо сохранять, как говорят японцы, лицо, даже если вы безнадежно проигрываете .
Проблема в том, что я дискуссирую не с Ритчи, а с вами, который не знает языков С/С++ и при этом выдергивает фразы из книги Ритчи, не понимая их смысла.
Давайте разбираться с тем, что вы цитируете без понимания смысла. Во-первых, у меня нет данной книги 2001 года, а есть ее издание 2006 года. И в этой книге фраза звучит несколько по иному "В языке С двумерный массив - это фактически одномерный массив, каждый элемент которого в свою очередь является массивом". О чем здесь говорится? О размещении в памяти двумерного массива. Но самое главное здесь ясно сказано о двумерном массиве. Когда чего-то в языке нет. то об этом не говорят. Какой смысл использовать некорректный термин "двумерный массив", если его в С просто нет? Такая простая мысль вам в голову не приходила?! А что тогда делать с трехмерными масивами, четырехмерными массивами и т.д.? Денис Ритчи для таких, как вы, которые не в состоянии самостоятельно разобраться в вопросе подробно объясняет физическую архитектуру размещения в памяти многомерных массивов. Я вам уже сказал, что в одномерном пространстве, которым является память компьютера многомерные массивы можно только так и расположить. Разве лишь заменив линейное расположение по строкам, расположением по столбцам массива.
Поэтому вы цитируете Дениса Ритчи, а не понимаете. что он пишет. Но это уже вопросы не языка С, а вашего интеллектуального уровня.
Что касается языка С, то в этой же книге есть приложение А "Справочное руководство по языку С", в котором в параграфе Ф.8.6.2 "Описатели массивов" говорится о многомерных массивах и приводится в частности пример трехмерного массива

static int x3d[3][5][7];

Обратите на название идентификатора массива x3d. Значете, что оно означает? Оно означает, чтто массив имеет 3 размерности (d - это от английского слова dimension)
И к этому примеру в книжке дан поясняющий текст (опять-таки заметьте, это Денис Ритчи писал, на которого вы так безграмотно ссылаетесь!):

"Аналогично, следующее объявление создает статический трехмерный массив целых чисел размером 3х5х7.

В отношении же вас проблема связана не с языком С, а с вашим уровнем интеллекта. Просто задайтесь вопросом, если в С нет многомерных массивов, то что означает запись

x3d[3][5][7] ? Спросите любого ребенка, он видет разницу между записью x3d[105] и записью x3d[3][5][7] ? А после того, как ребенок вам ответит, то задайте уже себе вопрос: а зачем придумана запись x3d[3][5][7] если можно записать x3d[105] ? Значит, наверное, первая форма записи несет в себе некоторую смысловую нагрузку, которая отличает ее от второй формы записи, не так ли?

Но, честно признаюсь, мне вообще смешно, что взрослому человеку приходится объяснять банальные вещи на уровне ребенка! В конце-концов, есть стандарт языка С, в котором говорится о многомерных массивах и утверждается, что int x3d[3][5][7] [/B] и int x3d[105] - это два разных типа, где первый тип - это тип трехмерного массива (заметьте, не одномерного и даже не двумерного, а трехмерного!), а второй тип - это тип одномерного массива.

Далее не имеет смысла с вами продолжать дискуссию, так как это уже напоминает комедию, или общение с крайне не адекватным человеком, который даже не в состоянии отдавать себе отчет, что означают фразы, которые он читает. То есть читать вы умеете, но понимать смысл того, что написано не в состоянии. Поэтому я бы вам мог посоветовать открыть стандарт языка С и просто поискать в нем по ключевому слову multidimensional array, но я не вижу в этом смысла, так как вы, как показывает ваше сообщение, все равно не понимаете то, что читаете. Вы все равно будете заявлять, что это просто другое название одномерного массива.

Меня лично не беспокоит ваша безграмотность в вопросах С/С++. Это лично вас должно беспокоить то, что свою безграмотность вы выносите на всеобщее посмешище. Любой квалифицированный грамотный программсит С/С++ вас скажет, что вы несете глупость и задаст простой вопрос: напишите синтаксис объявления многомерного массива и синтаксис объявления олномерного массива. Разницу видите?А теперь попробуйте самостоятельно догадаться без моей помощи, если в С/С++ нет многомерных массивов, то откуда появился такой синтаксис?!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.12.2011, 17:08     Что лучше для изучения c++
Еще ссылки по теме:

Что выбирать для дальнейшего изучения Windows 7 c Win32 или Windows 8 c WinRt? C++
C++ Что лучше использовать для работы со строками класс wstring или wchar_t напрямую?
C++ Что делать после изучения C++ на базовом уровне?

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

Или воспользуйтесь поиском по форуму:
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
03.12.2011, 17:08     Что лучше для изучения c++ #60
из сообщения
Цитата Сообщение от ValeryLaptev
Цитата Сообщение от Сыроежка
C
1
int m[2][2] = { 1, 1, 2, 2 };
Простая синтаксическая ошибка - отсутствие скобок {} вокруг строк.
это не ошибка
наличие скобок - просто хороший стиль, так же, как и скобки в логических выражениях (которые требует gcc, например)
Yandex
Объявления
03.12.2011, 17:08     Что лучше для изучения c++
Закрытая тема Создать тему
Опции темы

Текущее время: 17:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru