Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.98/48: Рейтинг темы: голосов - 48, средняя оценка - 4.98
43 / 43 / 14
Регистрация: 16.11.2011
Сообщений: 125
1

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

01.12.2011, 16:19. Показов 9445. Ответов 60
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет.
Вообщем, я скачал книгу Павловская "С++ - программирование на языке высокого уровня".
Я довольно неплохо знаю delphi, поверхностно-php, - сейчас решил что пора уже и c++ изучить. Слышал что синтаксис php и c++ схож, думаю в обучении будет легче. Хотелось бы услышать ваши отзывы об этой книге. Является ли она тем, что мне нужно, или вы можете посоветовать что-то другое.
Спасибо за ваши комментарии.

Добавлено через 3 минуты
Добавлю, что хотелось программировать на Borland C++, на Visual нет желания - недолюбливаю продукцию microsoft вообще, а после хотелось бы научиться программировать под *nix системы.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.12.2011, 16:19
Ответы с готовыми решениями:

Какой учебник лучше для изучения С++
Л. Джонс - С++ за 21 день Р.Лафоре 4е издание - Объектно-ориентированное программирование в С++...

Выбрал для изучения С++,что дальше?
Доброго дня всем.Сразу просьба к модераторам или к тому кто следит за порядком на форуме. Т.к я...

Что почитать для углубленного изучения C++?
прочитал книгу "освой c++ за 21 день" Джесс Либерти. не знаю что читать дальше. помогите!! как-то...

Какие книги посоветуйте для изучения для изучения STL, C++
Попробовал Страуструп но видимо сложновато пока.

60
Заблокирован
02.12.2011, 15:22 41
Author24 — интернет-сервис помощи студентам
Цитата Сообщение от co6ak Посмотреть сообщение
то, что основателем Гугла является русский не смущает?
то, что в америкосии программист считается неквалифицированным рабочим. как грузчик. там индусы и китайцы работают. процент "программистов" среди именно америкосов - мизерный.
То, что очень много специалистов, работающих в западных крупных компаниях, являются русскими, не смущает ?
Почему меня должна смущать ваша глупость?! Речь идет не о национальностях того или иного руководителя фирмы в США, а о развитии информациооных технологий и соответствующей инфраструктуре, направленной на поддержку развития этих технологий в конкретной стране. Россия в этом отношении находится на уровне банановых республик. И это очевидно. Уровень качества печатной пролдукции по информационным технологиям отечественных авторов крайне инизкий. Даже книги, которые здесь советуют читать для изучения С/С++, сплошь и рядом сотоят из англоговорящих авторов. Отечественные авторы, как правило, пишут совершенно безграмотные книги. Я сейчас посмотрел, что у меня дома на полках из книг по программированию, и нашел лишь одну, повторяю, одну книгу по теории трансляторов российского автора. Да и то эту книгу нельзя назвать книгой по практическому программированию, сколько книгой по теоретическим основам компиляторов. Нет, вру! Есть еще книга нашего автора "Ассемблер для Windows". Все, больше ничего нет. И не потому, что я не обращаю внимание на книги отечественных авторов, а потому что смотрю их и вижу, насколько там низкий уровень изложения, и в лучшем случае перекомпиляция из давно уже изданных на Западе. Какова ценность книг российских авторов по С/С++, если многие из них до сих пор не знают, как правильно объявляется функция main?!
0
Кошковед
521 / 509 / 63
Регистрация: 12.04.2010
Сообщений: 1,390
02.12.2011, 15:52 42
Сыроежка, если ты споришь с идиотом, возможно, он в это время делает то же самое.

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

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

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

Не по теме:

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

Не по теме:

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

0
Эксперт С++
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
02.12.2011, 19:46 46
Цитата Сообщение от ValeryLaptev Посмотреть сообщение

Не по теме:

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

Не по теме:

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

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

Процитирую себя, любимого, еще раз: "В С/С++ есть тип многомерные массивы, которые в С++ вы можете даже передавать по ссылке."
0
Эксперт С++
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
02.12.2011, 23:29 48
Цитата Сообщение от Сыроежка Посмотреть сообщение
А вы внимательно прочитали, что я написал?! Я спрашиваю это потому, что эта ваша реплика неуместна. В моем сообщении все ясно сказано.

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

Не по теме:

ValeryLaptev

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

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

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

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

А самое главное - видите дискуссию корректно! Я нигде не говорил, что в С есть ссылки. Это вы за меня сочиняете, а затем свои фантазии приписываете мне. Надо сохранять, как говорят японцы, лицо, даже если вы безнадежно проигрываете .
0
Эксперт С++
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
03.12.2011, 09:01 51
Цитата Сообщение от Сыроежка Посмотреть сообщение
1. Увы, вы не исправимы. Я думаю, что вы не внимательно читаете то, что япишу, именно из-за уязвленного самолюбия, что указали вам, что вы не знаете ни С, ни С++!

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

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

Про то, что матрица рассматривается как одномерный массив и У Ритчи есть, и у Стивена Прата.
0
Эксперт С++
5043 / 2622 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 1
03.12.2011, 11:02 53
Цитата Сообщение от Thinker Посмотреть сообщение
Если бы матрица не являлась одномерным массивом массивов, то такой код был бы невозможен.
То, что элементы хранятся последовательно, ничего не доказывает.
0
Эксперт С++
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
03.12.2011, 11:25 54
Цитата Сообщение от fasked Посмотреть сообщение
То, что элементы хранятся последовательно, ничего не доказывает.
А я ничего не доказываю, делать мне больше нечего, просто привожу факты. И если элементы хранятся всегда последовательно и их ровно M*N штук, не массив ли это размера M*N, при условии что мы знаем адрес его начала?
По определению, массив это набор однотипных объектов, последовательно располагающихся в оперативной памяти. А мы именно это и имеем! Ну и какие возражения после этого будут?
0
Эксперт С++
5043 / 2622 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 1
03.12.2011, 12:03 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)));
   }   
}
0
Эксперт С++
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
03.12.2011, 12:06 56
fasked, структура это обобщение массивов. Мой риторический вопрос касался по поводу соотношения понятия матрицы и массива в языке Си, не зря там число M*N фигурирует)
0
Эксперт С++
5043 / 2622 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 1
03.12.2011, 12:22 57
Цитата Сообщение от Thinker Посмотреть сообщение
не зря там число M*N фигурирует
C
1
2
3
4
5
6
struct s {
    int item1[M];
    int item2[M];
    /* ... */
    int itemN[M];
};
Цитата Сообщение от Thinker Посмотреть сообщение
структура это обобщение массивов.
Так мы опять скоро придем к тому, что все есть глупые безымянные байты.
Цитата Сообщение от Thinker Посмотреть сообщение
Мой риторический вопрос касался по поводу соотношения понятия матрицы и массива в языке Си
А я говорю о том, что если данные хранятся последовательно в памяти, то это не значит, что они обязательно сформированы в массив.
1
Эксперт С++
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
03.12.2011, 12:27 58
Цитата Сообщение от fasked Посмотреть сообщение
А я говорю о том, что если данные хранятся последовательно в памяти, то это не значит, что они обязательно сформированы в массив.
Это да, но матрицу мы можем рассматривать как одномерный массив, уж так она хранится. К чему это я. К тому, что некоторые алгоритмы работы с матрицами легче прописать, если обращаться к ее элементам так:
*(*a + i), i=0,...,M*N-1
Мне это важно именно для написания быстрых алгоритмов, а в вопросы, связанные с понятием определения и способом хранения лезть не хочется. Мне важно, что такое обращение к элементам матрицы всегда будет верным, а это зависит от того как матрица хранится.
0
Заблокирован
03.12.2011, 16:24 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, но я не вижу в этом смысла, так как вы, как показывает ваше сообщение, все равно не понимаете то, что читаете. Вы все равно будете заявлять, что это просто другое название одномерного массива.

Меня лично не беспокоит ваша безграмотность в вопросах С/С++. Это лично вас должно беспокоить то, что свою безграмотность вы выносите на всеобщее посмешище. Любой квалифицированный грамотный программсит С/С++ вас скажет, что вы несете глупость и задаст простой вопрос: напишите синтаксис объявления многомерного массива и синтаксис объявления олномерного массива. Разницу видите?А теперь попробуйте самостоятельно догадаться без моей помощи, если в С/С++ нет многомерных массивов, то откуда появился такой синтаксис?!
1
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
03.12.2011, 17:08 60
из сообщения
Цитата Сообщение от ValeryLaptev
Цитата Сообщение от Сыроежка
C
1
int m[2][2] = { 1, 1, 2, 2 };
Простая синтаксическая ошибка - отсутствие скобок {} вокруг строк.
это не ошибка
наличие скобок - просто хороший стиль, так же, как и скобки в логических выражениях (которые требует gcc, например)
0
03.12.2011, 17:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.12.2011, 17:08
Помогаю со студенческими работами здесь

Что следует ЗНАТЬ для начала изучения C++?
IQ 118, но все равно мозги не доходят. Открываю любой видео урок по c++ и сразу много непонятного...

Что используете для изучения языков программирования и технологий тд?
День добрый! При изучении(обучения) языков программирования и технологий тд какие источники и...

Что посоветуете для углубления изучения c++?
Выучил c++ по книге Объектно-ориентированное программирование в c++ по Лафоре . Что посоветуете для...

Глобальные и локальные переменные: что лучше (или что для чего и в чем конкретная разница)?
Что лучше (или как надо (или что для чего и в чем конкретная разница)): 1. // объявление в...


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

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