5 / 5 / 3
Регистрация: 29.12.2010
Сообщений: 146
|
|
1 | |
Начинающий си/си++ программист29.12.2010, 21:30. Показов 20104. Ответов 110
Метки нет (Все метки)
Я вот собираюсь начать учить язык си а впоследствии си++. У меня есть книга Б.Керниган, Д.Ритчи "Язык программирования си". Мне нравится как там написано, да и отзывы об этом учебнике неплохие. У меня проблема с компиляторами, я не могу понять какой лучше закачал наконец DEV-C++ вроде отличный интерфейс, русский. Дошло до написания первой программы, написал как в учебнике написано, первый пример. Должна была получится программа, которая писала бы - Здравствуй мир, но компилятор почему то комментарий Здравствуй мир выделил красным цветом, я этому значения не придал, скомпилировал программу, и нажал на запуск. При запуске появляется окно на долю секунды и исчезает. В учебнике написано, что у них примеры для UNIX системы, для других систем - надо консультироваться со специалистами. Подскажите пожалуйста как писать на виндовсе. Буду также рад любой информации по языку си, так как я только начинающий. Заранее спасибо
0
|
29.12.2010, 21:30 | |
Ответы с готовыми решениями:
110
Начинающий программист Начинающий программист Начинающий программист С++ хочет учиться Что должен знать начинающий программист? |
5 / 5 / 3
Регистрация: 29.12.2010
Сообщений: 146
|
|
13.01.2011, 15:20 [ТС] | 41 |
Вот спасибо. Только учебник Б.Керниган, Д.Ритчи "Язык программирования си" написан нетак, у меня он есть, там программирование под unix и часто функции несовпадают с виндой
0
|
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
13.01.2011, 15:23 | 42 |
Flynn84, а зачем начинать с Си, а потом учить Си++? Си и Си++ - два разных языка, поэтому сказать "начать с Си, потом перейти на Си++" - то же самое, что сказать, например, "начать с Паскаля, потом перейти на Си++". Лучше сразу учить плюсы, поскольку синтаксис у Си и Си++ очень похож, и эти языка расходятся в главном - в подходе к программированию. И объектно-ориентированный подход, надо сказать, сейчас котируется намного больше, нежели чисто процедурный.
1
|
0 / 0 / 0
Регистрация: 13.01.2011
Сообщений: 8
|
|
13.01.2011, 16:47 | 43 |
Странно, но ты же сам хвалишь этот учебник в первом сообщении?
Добавлено через 8 минут Ну ты говоришь, что синтаксис очень похож. Значит все-таки не совсем тоже самое, что перейти с Паскаля на ++ . Если уже знаешь Си, то изучить плюсы видимо проще, чем если знаешь только Паскаль. Другой вопрос, насколько будет востребован в ближайшем будущем простой Си. Ты заставил меня задуматься. Недели две назад я читал в инете различные обзоры и рейтинги востребованности языков. Мне показалось, что все-таки для Си еще не все потеряно. Еще интересно, почему никто не сказал об этом автору темы в самом начале? А только сейчас мне
0
|
5 / 5 / 3
Регистрация: 29.12.2010
Сообщений: 146
|
|
13.01.2011, 16:52 [ТС] | 44 |
Я говорил что хорошо написана. но там нету многих вещей, к примеру нету функции getch и библеотеке к ней
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
13.01.2011, 18:01 | 45 |
Flynn84, Си более низкоуровневый язык. Он используется для написания не прикладного ПО, а в основном системного + программ для микроконтроллеров и т.п. В СИ все делается через работу с памятью, в С++ можно обойтись без явной работы с памятью, используя все его плюсы (оригинальная игра слов получилась). + на основе С++ сделаны Java и C#. Так что думайте)
Добавлено через 1 минуту sly444, А какой смысл использовать getch? Как ни странно в Unix раньше все компилировалось и запускалось через коммандную строку (да и сейчас это вполне неплохо) следовательно getch тупо не нужен)
0
|
silent_1991
|
13.01.2011, 18:04
#46
|
1
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
|||||||||||
13.01.2011, 20:38 | 47 | ||||||||||
Да, с адресами работать круто. Отладка на порядок быстрее идёт. А в C++ необходимо пользоваться классами. Так, если надо узнать какой элемент находится по адресу такому-то, всё приплыл.
Например
С другой стороны, надо испльзовать всю мощь C++, который я рассматриваю как средство для написания СОБСТВЕННОГО синтаксиса для выполнения РАЗНЫХ заданий. Так, я теперь перегоняю текстовый файл в память одним движением
Но хорошо всё-таки, что я сначала изучил С (имея ввиду именно работу с памятью), хотя если бы я не изучил его, а сразу начал с высокоуровневого программирования, может время бы зря не потерял, кто его знает.
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||
13.01.2011, 21:22 | 48 | |||||
1
|
5 / 5 / 3
Регистрация: 29.12.2010
Сообщений: 146
|
|
13.01.2011, 22:06 [ТС] | 49 |
0
|
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
13.01.2011, 22:11 | 50 |
sly444, а что, кроме этого, вам мешает читать K&R? Всё остальное совпадает (да и это бы совпадало, если бы вы в виндах компилировали из консоли и тут же из консоли запускали, как это происходить в линуксе).
0
|
5 / 5 / 3
Регистрация: 29.12.2010
Сообщений: 146
|
|
13.01.2011, 22:12 [ТС] | 51 |
silent_1991, Да я сейчас коментарии почитал, наверно лучше учить си++
0
|
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
13.01.2011, 22:21 | 52 |
sly444, не беспокойтесь, изучая Си++, вы всё равно никуда не денетесь от процедурного программирования (вернее от самого понятия "процедура"), просто, возможно, не узнаете сильно низкоуровневых вещей, которые нужны в Си, но без которых можно обойтись в Си++. А может и узнаете, но при необходимости. Я сам начинал с чистого Си, и переход на плюсы для меня болезненным не был (по мне, объектно-ориентированный подход куда более естественный в плане того, что с объектами мы, по сути, сталкиваемся каждый день: стул - объект, кровать - объект и т.д.), но я слышал, что многим сложно переучиваться с Си на Си++, поскольку приходится кардинально менять всю философию программирования, которая у программиста на Си уже въелась в кору мозга))).
0
|
5 / 5 / 3
Регистрация: 29.12.2010
Сообщений: 146
|
|
13.01.2011, 22:23 [ТС] | 53 |
silent_1991, Я согласен.
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||
14.01.2011, 00:37 | 54 | |||||
silent_1991, Ну дык я полагаю что в Си ты не уходил в чисто низкоуровневое программирование и системное программирование под Unix. Хедеров же стандартных под Юникс дофига просто, где действительно требуется низкоуровневое программирование.
Более того читая сейчас Страуструпа - он описывает либу производную от либы FLTK граф. интерфейс. Ну и там от работы с указателями и т.п. никуда не деться, при реализации по-крайней мере. Про вывод адреса я кстати был не прав. Вот так выводит адрес
0
|
silent_1991
|
14.01.2011, 00:41
#55
|
Не по теме: Это зря))) Я ж не программист, у меня специальность "Вычислительные машины, комплексы, системы и сети". Соответственно был предмет "Операционные системы". И там мы достаточно на низкий уровень уходили, и именно в лине))) Правда сейчас уже ни черта не помню, но помню, что это было жёстко))
1
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
||||||
14.01.2011, 00:54 | 56 | |||||
Чё-то не то ВЫ написали
НО вообще имея ввиду vector<int> сие сделать нетрудно А вот у меня vector<string> v; Как узнать адрес нулевого элемента? Работая с С я бы написал так:
А вот как мне адрес этого элемента узнать? vector<string> v; v[0] Это раз. И второе: c итераторами возня. А адрес берётся просто. Просто прибавляется & к имени переменной и всё. Вот это я и называю "на порядок дольше" Добавлено через 1 минуту Ну инициализация p это один из вариантов только представлен, можно, конечно по-разному
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|||||||||||
14.01.2011, 00:57 | 57 | ||||||||||
kravam,
0
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
||||||
14.01.2011, 01:09 | 58 | |||||
А у меня компилятору неизвестно имя
_Myptr Добавлено через 1 минуту
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||||||||||||
14.01.2011, 01:24 | 59 | |||||||||||||||
kravam, Хм. Оно может на3ываться по-другому. видимо это просто 3адрочки MSVS
Но я опять же говорил уже в этой теме или в другой, что С++-классы не предназначены для работы с памятью напрямую... Добавлено через 4 минуты И да...
И еще одно да...
Ну и так на всякий случай преимущество С++...
0
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
|||||||||||
14.01.2011, 01:31 | 60 | ||||||||||
Не пойдёт. Первый код не прассматривал, а я про второй. Это частный случай.
У меня vector<string> v инициализируется данными в процессе программы
Не по теме: Смотрим 1-ый канал! Добавлено через 1 минуту Перефразируя Довлатова: "О вреде пьянства сказано много, теперь поговорим о его пользе" Я не говорю о неоспоримых достоинствах С++, я о недостатках щас. Добавлено через 3 минуты ПО поводу последнего кода- в С тоже функции применяются. Только я не буду писать функцию для взятия адреса чего-нибудь. Я напишу
0
|
14.01.2011, 01:31 | |
14.01.2011, 01:31 | |
Помогаю со студенческими работами здесь
60
Начинающий программист: с какой программы начать? Начинающий программист Начинающий программист С++ Начинающий программист Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |