Web-studio46.ru

Обучение и образование
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Самоучитель язык си для программирования

Язык программирования Си

практический курс

Что это такое?

В свое время (1991-1992 года), выбрав язык Си в качестве основного языка программирования для математических классов, автор столкнулся с проблемой отсутствия нормальных учебников, которые можно было бы рекомендовать школьникам. Это вынудило его написать свой конспект лекций, который можно было бы назвать «Практический курс программирования на Си» — в него вошли те сведения, которые действительно требовались автору на практике. Многолетний опыт преподавания показал, что конспект действительно востребован и широко используется как школьниками, так и выпускниками.

В качестве среды разработки используется бесплатно распространяемая оболочка Dev-C++ с открытым исходным кодом, включающая компилятор GCC.

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

Лицензионное соглашение

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

Скачивание материалов означает, что вы приняли условия этого лицензионного соглашения.

Скачать

Конспект распространяется свободно в формате PDF. Для просмотра требуется бесплатный просмотрщик Acrobat Reader. Конспект курса условно разбит на 4 части:

  1. Введение в программирование на языке Си (860 Кб)29.03.2014
    Изучение основных конструкций языка и приемов написания программ.
  2. Xранение и обработка данных (792 Кб)21.11.2013
    Язык Си: массивы, матрицы, структуры, символьные строки, структуры, рекурсия.
  3. Разработка программ на языке Си (937 Кб)01.03.2014
    Приемы проектирования программ, структурное программирование, целочисленные алгоритмы, численные методы, моделирование.
  4. Динамические структуры данных в языке Си (666 Кб)11.06.2009
    Списки, стеки, деревья, графы.

Презентации

Для преподавателей и учащихся могут быть полезны презентации, построенные на основе этого конспекта. Их можно скачать на странице Презентации.

Методика

В программе предусмотрено изучение языка Си в 7-11 классах:

Часть I представляет собой расширенный конспект курса 7 класса. Введение в язык Си строится на базе алгоритмической подготовки, которую дети получили в 6 классе, работая с исполнителями.

Основная задача — познакомить учащихся с основными конструкциями языка Си: циклами, условными операторами, процедурами. Весьма успешно проходит изучение разделов, связанных с графикой, анимацией.

Для работы с графикой через браузер можно использовать онлайн-сервис Антона Деникина.

Программа включает следующие разделы (в скобках указана часть конспекта): Массивы (II), Работа с файлами (II), Символьные строки (II), Вращение объектов (III), Моделирование (III). Особое внимание уделяется изучению алгоритмов работы с массивами, в том числе поиска, сортировки и т.п. Дается понятие об эффективности вычислительных методов.

Основное внимание уделяется изучению методов разработки программ на языке Си. Учащиеся выполняют индивидуальное задание, в ходе которого учатся строить графики на экране, знакомятся с преобразованиями систем координат, изучают методы решения уравнений, знакомятся с численными методами, учатся правильно оформлять программы (разделы 1-2 части III). Одно из заданий посвящено использованию метода Монте-Карло для вычисления площади сложной фигуры. Из новых разделов изучаются также Матрицы (II), Массивы символьных строк (II). Вводится понятие указателей и изучаются простейшие операции с ними.

Изучения языка Си выходит на более серьезный уровень. Основные темы — Управление памятью (II), Рекурсия (II), Структуры (II). Предусмотрено изучение языка Паскаль в качестве второго языка программирования. С этого момента алгоритмы на теоретических занятиях записываются поочередно на двух языках.

Изучаются не столько особенности языков, сколько алгоритмы. Основные разделы — Численные методы (III), Моделирование (III), Динамические структуры данных (IV).

Введение в язык программирования C

C — это достаточно «древний» язык программирования, он сформировался в начале 70-х. Не смотря на это, C — живой язык в том смысле, что он активно применяется в настоящее время. Он был придуман, использовался и используется для написания существенных частей программного кода Unix-подобных операционных систем. Также на нем пишут утилиты, компиляторы и реже прикладные программы. Поэтому C называют системным языком программирования.

Его живучесть можно объяснить тем, что принципы работы операционных систем относительно универсальны, они не подвержены тому прогрессу и разнообразию, которые можно наблюдать в среде десктопного и мобильного ПО, Web-приложений. C не является языком достаточно высокого уровня, он ближе к архитектуре компьютера. В результате программы на C получаются компактными и быстрыми.

C не поддерживает объектно-ориентированного программирования. Поддержка ООП реализована в C++. Хотя последний возник на основе языка C, он не является его «продолжением», а представляет собой отдельный язык, который можно изучать, не зная C. Однако изучение C полезно перед знакомством с его «продвинутым младшим братом», т.к. синтаксис языков похож, C не перегружает мозг начинающего программиста сверхвозможностями и приучает к пониманию сути происходящего.

Подходит ли C для первого знакомства с программированием? Если вы не обучаетесь в вузе по специальности, связанной с IT, то нет. C предполагает понимание организации и принципов работы аппаратного обеспечения, в частности – памяти. Здесь многое делается с помощью указателей, они играют ключевую роль; эта тема достаточно сложная для понимания и обычно не изучается в школе.

Читать еще:  Бесплатное изучение программирования

Конечно, с помощью C можно изучать основы программирования и не изучать при этом указатели. Однако человек будет думать, что знает C, мало зная о нем по существу. Язык C был создан разбирающимися в устройстве «железа» профессиональными программистами для написания операционной системы UNIX. Его не задумывали как язык для обучения начинающих.

Среды и компиляторы для программирования на C

Если вы пользуетесь одним из дистрибутивов GNU/Linux, вам подойдет любой текстовый редактор с подсветкой синтаксиса, также понадобятся GCC и терминал.

Существуют редакторы для программистов, включающие различные дополнения, в том числе терминал, просмотр каталогов и др. Например, Geany или Atom.

C – компилируемый язык программирования. В GNU/Linux для получения исполняемых файлов используется GCC – набор компиляторов, включающий в том числе компилятор для C. Чтобы из исходного файла (обычно таким файлам дают расширение *.с) получить исполняемый, надо выполнить в терминале команду примерно следующего вида:

, где gcc — команда, запускающая программу, выполняющую компиляцию и иные действия; -o – ключ, сообщающий, что мы вручную указываем имя исполняемого файла; hello – имя получаемого исполняемого файла; hello.c – имя файла с исходным кодом. Имя исполняемого файла можно не указывать:

В этом случае исполняемый файл будет иметь имя по умолчанию a.out.

Для Windows существует свой набор компиляторов – MinGW. Его можно использовать самостоятельно, однако он входит в состав простой среды разработки Dev-C++, которая может оказаться хорошим выбором для обучения программированию на языках C и С++.

При сохранении выбирайте тип файла «C source files (*.c)». Компиляция и запуск программы выполняется при нажатии клавиши F9. После исполнения программа сразу закрывается и результат невозможно увидеть. Чтобы этого не происходило, прописывают две дополнительные строки: #include и getch(). (Возможно это не актуально для более новой версии Dev-C++.)

«Hello World» в GNU/Linux:

«Hello World» в Windows:

С другой стороны, существует большое количество кроссплатформенных сред разработки. Например, Eclipse + модуль CDT, KDevelop, CLion. Последняя платна, выпускается компанией JetBrains – лидером в разработке IDE, однако имеет 30-ти дневный триальный период, чего может быть достаточно для обучения. CLion удобнее других IDE.

«Hello World» на C

На примере простейшей программы сразу отметим некоторые особенности языка программирования C.

В языке C роль основной ветки программы берет на себя функция main(). Эта функция всегда должна присутствовать в законченной программе на языке C, и исполнение программы начинается именно с нее. Однако объявленные внутри нее переменные не являются глобальными, их область видимости простирается только на main(). Тем не менее в языке программирования C почти весь программный код заключается в функции, и функция main() является главной и обязательной.

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

Функция printf() предназначена для вывода данных. Ее назначение аналогично процедуре write() языка Pascal и функции print() в Python. Функция printf() после вывода не выполняет переход на новую строку. Поэтому для перехода используется специальный символ, который обозначается комбинацией n. Законченные выражения на языке C разделяются точкой с запятой.

В языке C функции ввода-вывода не являются частью языка. Например, в Python нам не надо импортировать никакой модуль, чтобы пользоваться функциями print() и input(). В C же мы не можем просто вызвать функцию printf(), т.к. в самом C ее просто нет. Эту функцию, а также ряд других, можно подключить с помощью заголовочного файла stdio.h. Именно для этого в начале программы прописана строка #include . Include с английского переводится как «включить», а stdio есть сокращение от «стандартный ввод-вывод (input-output)».

В заголовочных файлах (они оканчиваются на *.h) обычно содержаться объявления тех или иных функций. Объявление — это просто описание функции: какие параметры она принимает и что возвращает. Сам код функции (определение) находится не в заголовочном файле, а в библиотеках (других файлах), которые могут быть уже скомпилированы и расположены в системных каталогах. Перед компиляцией программы запускается препроцессор языка C. Помимо прочего он включает в начало файла программы содержимое указанных в ней заголовочных файлов.

Практическая работа

Закомментируйте 1 первую строчку кода программы HelloWorld. Попробуйте скомпилировать программу. Удалось ли получить исполняемый файл? Какое предупреждение выдал компилятор?

1 // — однострочный комментарий на языке C; /* … */ — многострочный комментарий на языке C.

Читать еще:  Язык программирования руби

C++ с нуля

Этот самоучитель создан для тех, кто хочет освоить основы программирования на C++. Уроки рассчитаны, в первую очередь на новичков, но будут полезны и тем, кто уже имеет небольшой опыт в программировании. Мы начнем с основных принципов и закончим данный курс уже на более сложных примерах.

Первая программа на C++ — урок 1

В качестве среды разработки под Windows автор советует использовать Visual Studio 2008 (800 Мб), если у вас Windows XP, Visual Studio 2013 (6.5 Гб) для Windows 7 и выше, или Dev C++ 5 (41 Мб) для тех, у кого слишком медленный интернет для загрузки Visual Studio. Пользователям Unix-подобных систем, потребуется компилятор GCC и любой текстовый редактор, например Vim.

После того, как вы установили все необходимое, приступим к написанию первой программы.

Переменные и типы данных в C++ — урок 2

Из школьного курса математики мы все знаем, что такое переменные. В программировании принципы довольно схожи. Переменная — это «ячейка» оперативной памяти компьютера, в которой может храниться какая-либо информация.

Конструкция ветвления в C++ — урок 3

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

К примеру, мы вводим с клавиатуры целое число. Если это число больше десяти, то программа должна выполнить одно действие, иначе — другое. Реализуем этот алгоритм на C++ с помощью конструкции ветвления.

Циклы в C++ — урок 4

Иногда необходимо повторять одно и то же действие несколько раз подряд. Для этого используют циклы. В этом уроке мы научимся программировать циклы на C++, после чего посчитаем сумму всех чисел от 1 до 1000.

Массивы в C++ — урок 5

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

Возьмем группу студентов из десяти человек. У каждого из них есть фамилия. Создавать отдельную переменную для каждого студента — не рационально. Создадим массив, в котором будут храниться фамилии всех студентов.

Функции в C++ — урок 6

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

Указатели в C++ — урок 7

При выполнении любой программы, все необходимые для ее работы данные должныбыть загружены в оперативную память компьютера. Для обращения к переменным, находящимся в памяти, используются специальные адреса, которые записываются в шестнадцатеричном виде, например 0x100 или 0x200 .

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

Динамические массивы в C++ — урок 8

В пятом уроке мы разобрали понятие массива. При объявлении, мы задавали массиву определенный постоянный размер.

Параметры командной строки в C++ — урок 9

При запуске программы из командной строки, ей можно передавать дополнительные параметры в текстовом виде.

Классы в C++ — урок 10

Весь реальный мир состоит из объектов. Города состоят из районов, в каждом районе есть свои названия улиц, на каждой улице находятся жилые дома, которые также состоят из объектов.

Практически любой материальный предмет можно представить в виде совокупности объектов, из которых он состоит. Допустим, что нам нужно написать программу для учета успеваемости студентов. Можно представить группу студентов, как класс языка C++. Назовем его Students .

Книги по языку Си для начинающих и не только

Книги по языку Си для начинающих и не только

  • Книги , 21 марта 2017 в 21:09
  • Иван Бирюков

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

The C Book

Книга «The C Book» предназначена для тех, кто уже имеет опыт программирования на высокоуровневых языках. Она посвящена моментам, характерным именно для Си.

  • Введение в Си.
  • Переменные и арифметика.
  • Логические выражения и условные операторы.
  • Функции.
  • Массивы и указатели.
  • Структуры данных.
  • Препроцессор.
  • Особенности Си.
  • Библиотеки.
  • Примеры программ.

Программирование на С для начинающих

«Программирование на С для начинающих» — учебник для максимально быстрого освоения языка, содержащий в себе много практического материала. Изложение четкое и простое, вы узнаете, как организовать программу, хранить и отображать данные, работать с переменными, операторами, вводом/выводом, указателями, массивами, функциями и многими другими вещами.

Пособие содержит всё самое важное, что вам нужно знать для программирования на C:

  • Структура программы.
  • Логические операторы и выражения.
  • Переменные.
  • Циклы.
  • Встроенные функции.
  • Массивы и указатели.
  • Тестирование программ.

C Elements of Style

«C Elements of Style» — это полезное руководство, описывающее основы хорошего стиля программирования. Оно научит вас писать код, который будет легко читать, понимать и поддерживать.

В книге вы найдёте советы по написанию комментариев, именованию переменных, форматированию, организации каталогов, созданию сборочных файлов и другим темам.

Изучаем программирование на C

Книга из серии Head First, которая использует те же подходы, что и другие книги цикла. Материал подается в достаточно игровой форме и с использованием огромного количества иллюстраций. В книге рассматриваются:

  • основы языка Си;
  • динамическое управление памятью;
  • указатели и арифметические операции с ними;
  • многопоточность;
  • сетевое программирование.

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

Программирование на C для начинающих

Еще один хороший учебник по Си. Рассчитан на читателей, никогда не писавших кода и стремящихся начать свое знакомство с программированием именно с Си. Написан доступным языком. Из-за нацеленности на новичков книга охватывает не все аспекты языка. Из минусов можно выделить опечатки в тексте и программном коде. Но для настоящих кодеров такое никогда не было проблемой!

Build Your Own Lisp

Изучайте язык Си и одновременно пишите свой язык программирования — минималистскую версию Lisp — меньше чем за 1000 строк кода.

Эта книга предназначена для тех, кто хочет изучить Си и / или написать свой язык программирования. Однако вам явно потребуется какой-то опыт написания кода, поэтому в качестве первой книги мы её не рекомендуем.

The GNU C Reference Manual

«The GNU C Reference Manual» — это шпаргалка по языку Си стандартов C89 ANSI, C99 ISO и расширениям GNU. Она точно не нужна начинающим программистам.

  • Лексические элементы.
  • Типы данных.
  • Выражения и операции.
  • Операторы.
  • Функции.
  • Структура программы и области видимости.
  • Пример программы.

The GNU C Programming Tutorial

Руководство «The GNU C Programming Tutorial» понятным образом объясняет читателю основы языка. Оно подробно описывает все основные элементы Си и рассказывает, как писать на нём программы, делая акцент на компиляторе GNU/Linux.

Рассматриваются такие темы, как функции, переменные и их объявление, области видимости, операторы, указатели, циклы, массивы, строки, а также многие другие.

Essential C

Эта книга — небольшая методичка, составленная в Стэнфорде. Она вкратце описывает все основы языка Си. Из-за сжатых объяснений рекомендуется, чтобы у читателя уже был опыт программирования.

Затрагиваются такие темы: переменные, операторы, циклы, функции, ссылки, указатели, структуры, препроцессор и стандартная библиотека.

  • Вступление.
  • Базовые типы и операторы.
  • Условные операторы.
  • Сложные типы данных.
  • Функции.
  • Препроцессор.
  • Массивы и указатели.
  • Стандартная библиотека.

Beej’s Guide to C Programming

Книга «Beej’s Guide to C Programming» пытается вывести читателя из состояния полного непонимания Си и дать ему понять, что Си — это лучший язык программирования.

  • Основы программирования.
  • Переменные, выражения и операторы.
  • Возвращение к основам.
  • Функции.
  • Переменные, часть 2.
  • Указатели.
  • Структуры.
  • Массивы.
  • Строки.
  • Динамическая память.
  • Продвинутые фичи.
  • Стандартная библиотека ввода / вывода.
  • Управление строками.
  • Математика.

Modern C

«Modern C» стремится мотивировать читателя повысить свой уровень знания языка. Книга разделена на 5 уровней:

  • Первый уровень предоставляет читателю базовые знания о программах Си, их целях и структуре.
  • Второй уровень описывает основные принципы и фичи, такие как условные операторы, типы данных и функции.
  • Третий уровень ведёт к сердцу Си. Он рассказывает об указателях, модели памяти языка и его стандартной библиотекеe.
  • Четвёртый уровень затрагивает такие продвинутые темы, как производительность, атомарность, потоки, и другие.
  • Пятый уровень — в нём автор описывает своё видение развития языка.

An Introduction to GCC

Руководство «An Introduction to GCC» рассказывает о C и C++ компиляторах GNU, gcc and g++, являющихся частью GNU Compiler Collection (GCC).

  • Вступление.
  • Компиляция Си-программы.
  • Опции компиляции.
  • Использование препроцессора.
  • Компиляция для отладки.
  • Компиляция с оптимизацией.
  • Компиляция CPP-программы.
  • Платформо-специфические опции.
  • Решение проблем.
  • Инструменты.
  • Принципы работы компилятора.
  • Изучение скомпилированных файлов.
  • Типичные ошибки.
  • Дополнительные материалы.

Вот ещё несколько бесплатных книг по языку Си:

И, разумеется, не стоит забывать про каноничную книгу Кернигана и Ритчи: The C Programming Language. Сложная, не для начинающих, но по праву признана шедевром.

Ссылка на основную публикацию
Adblock
detector
×
×