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
()
Ответ на: комментарий от 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
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.