Перейти к содержанию
    

Подскажите уебник по языку "С", желательно потолще, от азов и до сложных структур, чтоб многие аспекты программирования были охвачены, с примерами!

Имею базовые знание по Паскалю и знаю основные операторы С.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

для программирования на ПК под Windows/Linux или микропроцессоров/микроконтроллеров?

Изменено пользователем rezident
Ненужное цитирование.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Учебник по 'С' на самом деле один. K&R второе издание. Все остальное если что, уже ПОСЛЕ него читать. Ну стандарт C99 для полировки. Если кому-то "за 21 день" надо , то пофиг что, ибо там не программирование.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хоть и Керниган и Ритчи являются самыми "правильными" авторами, но читать их начинающему IMHO сложно, тем более их книга более походит на справочник, а не на учебник по программированию.

Лично мне понравилась книга "Как программировать на C" Х. М. Дейтел, П. Дж. Дейтел . Доступно написано, много примеров, есть задания после каждой главы, можно скачать в сети ссылка:). Ну а потом можно почитать K&R, чтобы все разложить по полочкам и понять общую картину.

Еще очень хорошие книги у Г. Шильдта, как по С так и многим другим языкам программирования.

Изменено пользователем ZVE

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

много примеров...

Как обычно замена цельной картины набор неких штампов-"примеров" на базе ничтожной части языка. Что-то вроде кулинарных рецептов "французской" кухни из настенного отрывного календаря. Так вот штампами потом обрастете, сначала просто надо язык почувствовать и тут K&R вне конкуренции. Хорошо написанная и достаточно тоненькая книжка. Читать просто читать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1) Т.А.Павловская "С/С++ Программирование на языке высокого уровня". Написано очень сжато и ёмко. Фактически описывается синтаксис С++ (в некоторых мелких моментах с СИ есть различия, но вы их легко потом запомните). Въехать можно очень быстро.

2) Потом чтобы уточнить те самые различия в синтаксисе между С и С++, а также углубиться в сам СИ - советую Герберт Шилдт "Полный справочник по С" (у него еще есть справочник С/С++). Тоже очень ёмко написано. Кроме того в книге рассматривается еще и стандарт С99 и его стандартная библиотека (точнее что добавилось в библиотеку С89). А также небольшой раздел по основным алгоритмам

3) Дейтел-Дейтел - там все сильно разжевано, местами настолько разжевано, что раздражает :). Хотя там задачки интересные. Так что и ее припасти стоит.

Хоть и Керниган и Ритчи являются самыми "правильными" авторами, но читать их начинающему IMHO сложно, тем более их книга более походит на справочник, а не на учебник по программированию.

Да, мне тоже кажется, что книга написана для программистов, которые переходят на язык С. Если С - твой первый язык, то с нее начинать не надо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

"K&R второе издание" вот это для начала почитаю

А вообще программировать собираюсь под микроконтроллер

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если С - твой первый язык, то с нее начинать не надо.

Ага :( зачем если и так сойдет: http://electronix.ru/forum/index.php?showtopic=51278&hl=

Начинать надо сразу правильно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ага :( зачем если и так сойдет: http://electronix.ru/forum/index.php?showtopic=51278&hl=

Начинать надо сразу правильно.

Это было два года назад. Я продолжаю учиться :).

Считаю, что в K&R своебразный стиль подачи материала (да еще приводятся сравнения с другими языками). Поэтому считаю, что сначала необходим материал в виде конспекта, некое введение. Потом читать K&R (а чем Шилдт плох?).

Может я и не прав конечно, но и вам, zltigo, скорее всего трудно будет вспомнить как вы сами начинали изучать СИ (подозреваю, что это было достаточно давно), в чем у вас были трудности и т.д. Хотя... Вы где-нибудь преподаете?

 

извиняюсь -:bb-offtopic:

1) zltigo, а как по вашему должен выглядеть курс по программированию для embedded (хотя не суть наверное)? В виде списка литературы или списка тем по очередности изучения. :)

Два года назад вы мне рекомендовали такую программу - сначала K&R, потом "Практика программирования" Кернигана, Пайка. Может сейчас вы программу немного расширите?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это было два года назад. Я продолжаю учиться :).

Я понял :). Просто привел эту устаревшую ссылку,как достаточно типичный пример того, как зная "несколько слов" пишутся "программы".

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

Считаю, что в K&R своебразный стиль подачи материала...

Да, великолепный до сих пор никем не превзойденный стиль.

..как вы сами начинали изучать СИ (подозреваю, что это было достаточно давно), в чем у вас были трудности и т.д.

Вы не поверите, но это было так давно, что не было интернета, книг и многого другого. Изучался именно на собственной шкуре по нескольким главам в учебниках, сэвовским стандартам, в сети еще встречается некий файл K&R набитый заглавными буквами под АЦПУ - вот и позже по нему. Хелпы от Борландовсого компилятора. Так-что как не надо, я знаю хорошо :).

Хотя... Вы где-нибудь преподаете?

Нет. В 90x немного халтурил, но завязал - студенток жалко - плакали :)

Два года назад вы мне рекомендовали такую программу - сначала K&R, потом "Практика программирования" Кернигана, Пайка. Может сейчас вы программу немного расширите?

Да нет, под эмбеддерство только следующим этапом немного ASMа, например ARMовского, как нынешнего майнстримиа, дабы прочувствовать работу компилятора и иметь возможность точнее выражать свои мысли. Естественно к общему курсу языка обязательно от корки до корки документацию на конкретные компиляторы. Не путать - компиляторы а не IDE с их галочками. Чтение стандарта C99(2001) уже поминал. Все остальное можно уже потом, перед сном читать - вдруг среди тонн словесной руды чего нибудь и блеснет полезное. На следующем уровне - чтение чужих исходников из интернета - то, что "лежит", к сожалению в подавляющем своем объеме гуано :(, посему к изучению всего этого надо подходить уже очень хорошо подготовленным - уж больно там плевел много. Но и идеи с приемами встречаются отличные, если глубоко копать и понимать, что перед тобой.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Согласен с zltigo, что учиться надо сразу правильно. Тем более что небольшой опыт программирования под Pascal/delphi есть, да и как работает процессор знаю. Так что K&R для начала, а потом на примерах и задачках опыта буду набираться.

Один знакомый преподаватель программирования на С посоветовал взять техническую документацию на английском какого нибудь Borland C, и по ней изучить язык. Сам он так и сделал когда то, сейчас в институте и школе преподает языки программирования.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Керниган Б, Ритчи Д. и Шилдт Г. - вне конкуренции.

 

Посмотрите также:

 

2004 Романов Е. Практикум по программированию на С++

HTML версия: http://ermak.cs.nstu.ru/cprog/HTML/index.htm

PDF версия: http://ermak.cs.nstu.ru/cbooks/Romanow.pdf

 

 

Прата С. Язык программирования С: Лекции и упражнения

Кузнецов М., Симдянов И. C++. Мастер-класс в задачах и примерах

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Читаю сейчас "Язык программирования С" Кернигана и Ритчи.

В разделе 1.5 Символьный ввод описывается работа с операторов getchar() и putchar();

Есть пример такой: "Утилита для обработки текстовых потоков подсчитывает строки, слова и символы"

 

#include <stdio.h>

#define IN 1
#define OUT 0

main()
{
    int c, nl, nw, nc, state;
    state = OUT;
    nl=nw=nc=0;
    while ((c=getchar())!=EOF) {
        ++nc;
        if (c=='\n')
            ++nl;
        if (c==' ' || c=='\n' || c=='\t')
            state = OUT;
        else if (state == OUT) {
            state = IN;
        }
    }
printf ("%d %d %d\n", nl, nw, nc);
}

 

Программу пишу под MacOSX, запускаю в терминале,

после ее запуска программа ждет чтобы я ей ввел любой текст, я ввожу,

А как заставить ее выдавать вывод printf ("%d %d %d\n", nl, nw, nc); ?????

Как резульатат работы программы увидеть? нажатие Enter приводит только к переходу на новую строку.

Изменено пользователем rezident
Оформление цитаты исходника.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

^Z

для гнутых консолей ^D

На всякий случай перевожу для вопрошающего. :)

^Z это означает сочетание клавиш CTRL+Z

^D - CTRL+D

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...