2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу 1, 2  След.
 
 программирование на "си"
Сообщение18.05.2008, 11:08 


12/05/08
10
РФ г. Норильск
подскажите пожалуйста литературу по "си" для начинающих. желательно на русском языке в электронном варианте. спасибо заранее.

 Профиль  
                  
 
 
Сообщение18.05.2008, 12:34 


08/01/08
21
Классическая книга по языку Си -- это, конечно же, "Язык программирования Си" Кернигана и Ричи. Она переведена на множество языков мира, в том числе и на русский. Изучая свой первый язык по ней, нужно особое внимание уделять упражнениям.

Если вы работаете под Windows, строго не советую использовать MS Visual Studio, так вы за мелочами (особенностями этого компилятора и кликанье в среде разработки) не увидите общей картины языка. Советую взять компилятор MinGW -- он бесплатный и свободный: http://downloads.sourceforge.net/mingw/ ... g_mirror=1

Если вы не под Windows, тогда используйте системный компилятор (команда cc) или gcc.

Текстовый редактор: если под Windows, то Notepad++ http://downloads.sourceforge.net/notepa ... g_mirror=0 или самый обычный Notepad. Если не под Windows, то любой просто-текстовый редактор (например, vim, emacs или что-нибудь с графическим интерфейсом).

 Профиль  
                  
 
 
Сообщение18.05.2008, 13:49 


21/03/06
1545
Москва
Да уже не раз отвечали на этот вопрос. Один из недавних ответов - тут.

 Профиль  
                  
 
 
Сообщение18.05.2008, 18:00 
Супермодератор
Аватара пользователя


29/07/05
8248
Москва
ipanema писал(а):
Если вы работаете под Windows, строго не советую использовать MS Visual Studio


Я бы хотел заметить, что этот компилятор используется многими фирмами, разрабатывающими ПО. Так что если Вы хотите изучать программирование не ради чистого искусства, а с целью сделать это своей профессией, то резона отказываться от этого компилятора я не вижу.

 Профиль  
                  
 
 
Сообщение18.05.2008, 19:09 


08/01/08
21
PAV писал(а):
Я бы хотел заметить, что этот компилятор используется многими фирмами, разрабатывающими ПО. Так что если Вы хотите изучать программирование не ради чистого искусства, а с целью сделать это своей профессией, то резона отказываться от этого компилятора я не вижу.


Во время обучения -- стоит. Сразу отпадает миллион вопросов, начиная от "почему в Кернигане и Ричи не говорится про какой-то stdafx.h?" и заканчивая "а в чем разница между консольной программой и оконной?" на начальном этапе обучения. Особенно если нет знаний про внутреннюю архитектуру Windows. С простым консольным компилятором проще работать. Ничего не отвлекает. Все ошибки исходят только из неправильного собственноручно написанного исходного кода, а не от неосторожного движения мышкой.

 Профиль  
                  
 
 
Сообщение18.05.2008, 22:55 
Супермодератор
Аватара пользователя


29/07/05
8248
Москва
ipanema, в общем, согласен.

 Профиль  
                  
 
 
Сообщение20.05.2008, 05:28 
Заслуженный участник
Аватара пользователя


17/10/05
3709
:evil:
Истина, как всегда, подобна радуге (IMHO). Да, разбираться, что такое консольное и что такое GUI приложение новичку на первом занятии — тяжело. Почему stdafx.h отсутствует в K&R — тоже.

Есть несколько «но»:

1) На K&R С уже давно никто не программирует. В худшем случае — ANSI C'89, в лучшем — более поздний стандарт. Поэтому учась по этой классической книжке сталкиваешься с многими неувязками в жизни. И не только stdafx.h, который легко прочитать.

2) 99% (а, точнее — больше) программ сейчас работают в GUI. Поэтому навыки только консольного программирования недостаточны.

3) Я не вижу особых сложностей в объяснении любому студенту, чем отличается консоль от GUI. Даже на первом занятии по программированию.

4) Я с огромным сожалением вынужден признать, что на данный момент Visual Studio является едва ли не лучшей средой разработки. Бог с ним, с компилятором. Среда к нему не сводится. Нужен, например, ещё и качественный отладчик. А это — на порядок более хитрый зверь. Ткните меня носом в другой приличный отладчик. Очень прошу — самому надо. Например, в Linux.

5) Чтобы меня не заподозрили в любви к мелкомягким — в Редмонде до сих пор не поняли, что реализуя язык программирования хорошим тоном является указание стандарта и в чём язык компилятора отличается от стандарта. С++ стандарт указан, а С — нет

 Профиль  
                  
 
 
Сообщение20.05.2008, 08:23 
Супермодератор
Аватара пользователя


29/07/05
8248
Москва
Вообще я совершенно убежден, что совершенно неважно, какую книгу возьмешь в руки первый раз, изучая язык программирования. На успех изучения это влияет в минимальной степени. Наиболее важным является практика. Нужно изучать его активно, делая упражнения, придумывая свои собственные, ставя перед собой достаточно сложные задачи и решая их. А по поводу учебника - зайдите в любой книжный и проведите некоторое время у стеллажа с пособиями по си. Пролистайте их, оцените стиль изложения, прочтите что-то из начала, обратите внимание на аннотацию - на какой уровень рассчитана книга. И купите ту, которая на вас глянет.

 Профиль  
                  
 
 
Сообщение20.05.2008, 18:15 


08/01/08
21
незваный гость писал(а):
Ткните меня носом в другой приличный отладчик. Очень прошу — самому надо. Например, в Linux.

gdb

 Профиль  
                  
 
 
Сообщение20.05.2008, 21:44 
Заслуженный участник
Аватара пользователя


17/10/05
3709
:evil:

1) Если не ошибаюсь, gdb — не экранный отладчик. Я не прав? Я ведь сравниваю не со своим любимым (и до сих пор используемым) debug'ом.

2) Моё (давно отставшее от жизни воспоминание), что gdb можно сконфигурировать на всё на свете. Но мне не нужно всё на свете. Мне не нужен конструктор отладчиков. Мне нужен отладчик. Есть ли готовые конфигурации, позволяющие обойтись функциональными кнопками хотя бы для простейших случаев: run, breakpoint, step, step-over, step-out, stop?

3) Поправьте, меня, пожалуйста: я не уверен, что я могу выделить в исходном коде выражение и посмотреть его текущее значение. Или могу?

4) Кстати, больное место Visual Studio — то, что breakpoints хранятся относительно начала текста, а не функции. А как в gdb — при повторном запуске слегка изменившейся программы breakpoints сползут?

5) Насколько сбивается gdb, когда имеет дело с сильно препроцессированным (слово-то какое! жуть берёт) текстом? У DIAB это было большой проблемой.

Это лишь примеры. Так или иначе интеграция отладчика, компилятора, редактора текстов и прочей ерунды в единую среду разработки — сильный шаг, повышающий продуктивность программиста. Он, кстати, позволяет не дублировать в отладчике куски компилятора (например, при вычислении выражения).

 Профиль  
                  
 
 
Сообщение20.05.2008, 21:56 
Модератор
Аватара пользователя


11/01/06
5660
Кстати, есть множество GUI оболочек для gdb (который безусловно является мощным, но консольным отладчиком) - например:
dbvi
DDD
KDbg
еще всякие: xxgdb, ups, tgdb и т.п.

 Профиль  
                  
 
 
Сообщение20.05.2008, 22:05 
Заслуженный участник
Аватара пользователя


17/10/05
3709
:evil:
(тяжёлый вздох) Я знаю о них. maxal, Вы пользовались VS'05? Которая из этих программ сопоставима (или ближе, или превосходит) по эргономике и функциональности? (Это отнюдь не риторический вопрос, я просто буду её смотреть в первую очередь.) Я не имею в виду look and feel, именно функциональность и эргономику.

Например, я студент, слушаю курс С. Мне рассказывают язык, алгоритмы. О методике отладки — ни слова. Мне нужно взять отладчик (yum, apt-get — как угодно), и начать работать. Времени и сил на конфигурирование нет. Что бы Вы порекомендовали?

 Профиль  
                  
 
 Re: программирование на "си"
Сообщение20.05.2008, 22:11 


07/12/05
240
Питер -> Ulm -> Koeln -> Ulm -> Bretten -> далее везде
leg031 писал(а):
подскажите пожалуйста литературу по "си" для начинающих. желательно на русском языке в электронном варианте. спасибо заранее.

А нужно именно C?
Или все-таки C++?
Если последний, то посоветую (по личному опыту)
Herbert Schildt - C++ from ground up

Я, правда, когда пришлось ее читать, уже уже имел опыт программирования.
Но мне кажется, она и новичку и пойдет.

А вот Страуструпа для первого(!) чтения не посоветовал бы.

P.S.
Не знаю, есть ли Schildt в русском переводе, но английская версия по сети гуляет. :wink:

 Профиль  
                  
 
 
Сообщение20.05.2008, 22:19 
Модератор
Аватара пользователя


11/01/06
5660
незваный гость писал(а):
:evil:
(тяжёлый вздох) Я знаю о них. maxal, Вы пользовались VS'05?

Видел издалека ;) С виндой да и вообще поделиями MS предпочитаю не иметь никаких дел.
незваный гость писал(а):
Например, я студент, слушаю курс С. Мне рассказывают язык, алгоритмы. О методике отладки — ни слова. Мне нужно взять отладчик (yum, apt-get — как угодно), и начать работать. Времени и сил на конфигурирование нет. Что бы Вы порекомендовали?

Я думаю, вопрос недостаточно четко поставлен. Отладка отладке - рознь. Все завивисит от того, что именно вы отлаживаете и какова цель отладки. Два крайних примера: если вы пишите какую-нибудь виндовую гуйню на VS, то и отлаживать лучше там же; а если вы, например, отлаживаете чужой бинарный код (чтобы сломать ;), то вам лучше использовать IDA. В общем, чтобы что-то советовать нужно знать: 1) под какой ОС происходит дело; 2) какой конкретно компилятор используется; 3) какого рода приложение отлаживается (консоль или гуй); 4) если гуй, то какие именно библиотеки графического интерфейса используются (методика и средства отладки могут от них зависеть - прежде всего нужно ознакомиться с рекомендациями по отладке авторов библиотеки) и т.п.

 Профиль  
                  
 
 
Сообщение20.05.2008, 22:36 
Заслуженный участник
Аватара пользователя


17/10/05
3709
:evil:
1) Под Linux (Kubuntu 8.04 и/или Fedora 9: KDE).
2) gcc
3) консоль и/или Qt
4) Мне представляется, что менять отладчик под библиотеку — это крутовато. Хотя, если задуматься — не так уж странно.

Эти вопросы верны. Но общая цель отладки — отладка учебной задачи.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 27 ]  На страницу 1, 2  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group