LINUX.ORG.RU
ФорумTalks

Вопросы по изучению C

 ,


0

2

Итак, нужно довольно быстро (счёт идёт на недели) ознакомиться с C. Задача, которая стоит передо мной: создание моделей биологического нейрона и нейросетей. Поэтому C мне нужен не для написания драйверов и компиляторов, а для максимальной производительности, которую требуют эти модели. А вопросы следующие:

  1. Какой посоветуете учебник, желательно не слишком объёмный, для новичков (до этого немного программировал в Delphi, да и давно это было)? Поковыряв ЛОР, обнаружил, что все просто в восторге от книги Кернигана и Ритчи «Язык программирования C». Пойдёт ли она для моих целей?
  2. Существует ли в природе учебник, обучающий одновременно C и C++?
  3. В чём лучше писать программы? Опять-таки, на изучение Emacs'а времени мало, нужно что-нибудь попроще. Присмотрелся к Anjuta, поделитесь впечатлениями, желательно в сравнении с другими IDE (например, Eclipse). Кстати, есть ли какой-нибудь учебник или руководство по Anjuta на русском языке?
★★★★★

Найди старшекурсника-погромиста. Ему диплом (ну или курсач) и тебе польза.
Если денег предложишь, так к тебе целая очередь выстроится.

Deleted
()

В чём лучше писать программы?

В текстовом редакторе.

Yareg ★★★
()

K&R + Qt-Creator то, что тебе нужно. В K&R около 500 стр., меньше там и не получится. Хотя если ты не знаком с арифметикой указателей, то будет очень не просто.

Norgat ★★★★★
()

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

Существует ли в природе учебник, обучающий одновременно C и C++?

Если и существует, то уж точно не нужен. Это разные языки.

thesis ★★★★★
()
Ответ на: комментарий от Norgat

Ах да, бери C++, если не будешь наворачивать классов (чего ты в принципе не можешь сделать при своём уровне знаний), то разницы в скорости для тебе не будет.

Norgat ★★★★★
()
Ответ на: комментарий от eugeno

Как уже сказали, сам синтаксис достаточно прост и можно изучить за 2-3 дня.
А почему не с++? Разницы в скорости практически нет.

ymuv ★★★★
()

создание моделей биологического нейрона и нейросетей

Очевидно, потребуется и визуализация всей этой радости? Справишься ли сам?

static_lab ★★★★★
()
Ответ на: комментарий от ymuv

А почему не с++? Разницы в скорости практически нет.

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

eugeno ★★★★★
() автор топика
Ответ на: комментарий от thesis

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

+1. И чтобы достичь этой мифической «максимальной производительности», нужно сначала стать огого каким гуру не только в си, но и еще во многих вещах. Подумай, стоит ли тебе учить си? Быть может, хватит Делфи?

hibou ★★★★★
()

ФОРТРАН90

и С++ !=С по производительности.

для изучения C Керниган/Ритчи.

Slackware_user ★★★★★
()
Ответ на: комментарий от static_lab

Очевидно, потребуется и визуализация всей этой радости? Справишься ли сам?

Пока ничего особо сложного не планируется, будут простые графики зависимостей потенциала мембраны от времени, диаграммы «номер нейрона — время», где точками указаны спайки (потенциалы действия), и т. п.

eugeno ★★★★★
() автор топика
Ответ на: комментарий от eugeno

по С++ Страуструп.

только если надо производительность то чтоб получить ее на C++ надо его знать на уровне существенно превышающем средний.

Slackware_user ★★★★★
()

Кернигана и Ритчи «Язык программирования C». Пойдёт ли она для моих целей?

Вполне. По языку Си вообще много хороших книг.

Существует ли в природе учебник, обучающий одновременно C и C++?

http://harmful.cat-v.org/software/c /

В чём лучше писать программы?

Подойдёт любой текстовый редактор, emacs и vim хороши тем, что они расширяемы и для них много чего написано.
Но можно просто использовать geany.

quantum-troll ★★★★★
()

1. Конечно, бери K&R. Вполне подойдет
2. Вроде бы есть учебники, которые объясняют вещи одинаковые в C/C++, но книги, которая будет обучать одновременно тому и другому языку нет, да она и не нужна.
3. Если потратить полтора часа на знакомство освоение и прикручивание нужных плагинов к Emacs/Vim не хочется/нет времени, то возьми Geany

HerrWeigel ★★★★
()

В твоем случае производительность, которую можно выжать из C может быть не так актуальна, тебе бы саму задачу сначала решить. Может быть есть смысл посмотреть на что-то более высокоуровневое. По поводу среды разработки для C, я бы конечно посоветовал Eclipse, но думаю и qtcreator вполне сгодится.

m0rph ★★★★★
()

Не думаю что си будет оптимальным вариантом. К тому же что подразумевается под нейросетью? Модель нейрона с передачей импульса по аксону etc и компьютерные нейросети это две большие разницы. Если нужно второе гугли на тему profnet.Nтам биндинги даже к пых-пыху есть.

DNA_Seq ★★☆☆☆
()
Ответ на: комментарий от DNA_Seq

К тому же что подразумевается под нейросетью? Модель нейрона с передачей импульса по аксону etc и компьютерные нейросети это две большие разницы.

Именно биологическая нейросеть, со всеми особенностями генерации и распространения импульсов.

eugeno ★★★★★
() автор топика

K&R (наверняка уже не раз назвали, но зачем читать!) книга действительно удивительна и являет собой образец (ИМХО) как нужно писать такие книги

nerfur ★★★
()
Ответ на: комментарий от eugeno

Ну тогда во-первых соболезную ибо студентов обычно просят помоделировать что-то на компьютере именно из-за отсутствия финансов. И соответсвенно, все нарывать придется самому. А во вторых кастую Axon, он вроде с этим как-то связан, подозреваю что работал в ИТЭБ.

DNA_Seq ★★☆☆☆
()

По третьему - подозреваю что IDE нафиг не нужны при таком раскладе, редактор вроде greany был бы гораздо полезнее

DNA_Seq ★★☆☆☆
()
Ответ на: комментарий от DNA_Seq

Я с этим связан с другой стороны, я живые мозги изучаю, а не гипотетические. И, честно говоря, матмодели - не самая сильная моя сторона.

подозреваю что работал в ИТЭБ.

Почти. :-) В ИБК.

Axon ★★★★★
()
Ответ на: комментарий от Axon

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

DNA_Seq ★★☆☆☆
()
Ответ на: комментарий от DNA_Seq

Да я с ними как-то не особенно пересекался, так что даже имён не припомню. В мой круг общения никто из моделистов не попал.

Axon ★★★★★
()

Поэтому C мне нужен не для написания драйверов и компиляторов

epic fail + double facepalm

dimon555 ★★★★★
()
Ответ на: комментарий от aleks13

Если нужны нейросети, то стоит глянуть на готовые реализации из матлаба.

С сетями никаких проблем, есть отличные программы, причём свободные: NEURON на C++ и Brian на Python. Но мне надо написать свою программу, во-первых, чтобы лучше понять, как работают нейроны, во-вторых, нужно будет решать узкоспециализированные задачи.

eugeno ★★★★★
() автор топика
Ответ на: комментарий от DNA_Seq

Хотя... Вроде, у Зинченко кто-то этим занимался. Можно среди его многочисленной молодёжи клич кинуть.

Axon ★★★★★
()

K&R в переводе Штаркмана (издательство Невский Диалект). Если будете качать из интернета - учтите, что сканы весьма говённые, поэтому достаньте оригинал на английском для сверки кода.

Правда, я сильно сомневаюсь, что Си даст вам какую-нибудь выгоду по сравнению с Дельфи. Для этого нужно использовать особые методы программирования, многопоточность, ассемблерные вставки, расчёты на видеокарте, может быть даже распределённые вычисления на основе BOINC.

Nebuchadnezzar ★★★★
()

нужно довольно быстро (счёт идёт на недели) ознакомиться с C
Какой посоветуете учебник

«Замедление времени для профессионалов».

mopsene ★★★
()

K&R либо http://c.learncodethehardway.org/

вкурить что индексная адресация (масивы фортрана)- это указатели и их арифметика - вкурит что карта не територия а имя(имянующее) не имянуемое , так же курнуть про имяславие

2. да - это печально.

в редакторе. ed либо anjuta(много подобно дельфи служебных файлов) джини . гугли.

qulinxao ★★☆
()

В чём лучше писать программы?

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

Reset ★★★★★
()
Ответ на: комментарий от Slackware_user

только если надо производительность то чтоб получить ее на C++ надо его знать на уровне существенно превышающем средний.

что верно и для Си

Reset ★★★★★
()

1. Да, Керниган и Ричи пойдёт, правда, в некоторых деталях он устарел.

2. Си и C++ - это два разных языка, хоть один и произошёл от другого. Поэтому и изучать их лучше по разным книгам. Кстати, классическая книжка по C++ от Страуструпа подразумевает, что Си Вы уже знаете, иначе нихрена не понятно.

3. Попроще емакса - mcedit+gcc+make. Я абсолютно серьёзно говорю. Если нужно не лепить GUI и не поддерживать проекты большого размера, а почувствовать сам язык - самое то.

Если этот вариант кажется чересчур хардкорным, то есть хорошая IDE, не привязанная к тулкитам - Code::Blocks. Слова «не привязанная к тулкитам» я подчёркиваю потому, что тут двое уже порекомендовали Qt Creator, а он будет Вам навязывать Qt во все поля, что при начальном изучении языка недопустимо. Я уж не говорю о такой «мелочи», что Qt основана на C++, а не на Си.

Правильная последовательность изучения, на мой взгляд, такова:

1) Си (консольные программы);

2) C++ (консольные программы);

3) Qt и прочие инструменты для рисования GUI (при необходимости).

Насмотрелись уже во времена расцвета Delphi на быдлокодеров, которые ловко научились таскать компоненты на форму мышкой, а преобразования типов и элементарное структурирование кода не освоили...

hobbit ★★★★★
()
Ответ на: комментарий от eugeno

C++ тоже нужен, это я для себя решил начать с изучения C, дабы лучше осознать различия в языках.

Это кстати, правильно, поддерживаю.

Поэтому и спрашиваю об учебнике по обоим языкам.

Не, не нужен тебе такой учебник. Просто как доберёшься до плюсов - возьми Страуструпа. Он как раз своё детище описывает через призму отличий от старого доброго Си.

hobbit ★★★★★
()

Писать в Нетбинз однозначно

nutz ★★
()
Ответ на: комментарий от Quasar

Да, для быстрых расчетов самое оно :) хотя там математический модуль был какой-то быстырй, это да

nutz ★★
()
Ответ на: комментарий от Norgat

В K&R около 500 стр., меньше там и не получится.


300, из них 200 - сама книга и 100 - справочник по стандартной библиотеке.

Dragon59 ★★
()

создание моделей биологического нейрона

Нелинейные сумматоры со взвешенными связями будете рисовать? :) Скучно.

Sadler ★★★
()

1. да

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

3. Выбирать Eclipse или Netbeans (мне больше нравится последний). Anjuta, когда я ее последний раз пробовал, даже рефакторинги элементарные не умела.

Deleted
()
Ответ на: комментарий от Slackware_user

на C сложнее грохнуть производительность всеже:)

Очень просто грохнуть производительность, достаточно вместо tree.h начать использовать контейнеры из glib и всё просядет.

на Фортране еще сложнее, особенно на 77.

Ога, когда вместо абстрагирования и декомпозиции выходит лапша, то в качестве побочного эффекта вылазит чуть большая производительсность :)

Reset ★★★★★
()
Ответ на: комментарий от ymuv

QtCreator - хорошая, но слишком узкоспециализированная IDE. И ТС спрашивал про C, а не C++.

Deleted
()
Ответ на: комментарий от Norgat

А если буду, откуда она возьмется?

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.