Слайд 1АЛГОРИТМИЧЕСКИЙ ЯЗЫК ПРОГРАММИРОВАНИЯ С
Слайд 2Общая характеристика языка С
Язык C - это стандартизованный процедурный
язык программирования, был разработан ещё в начале 70-х годов Кеном
Томпсоном и Денисом Ритчи, сотрудниками компании Bell Labs и является продолжением языка B (читается "би").
Язык C изначально был создан для программирования под операционную систему UNIX и в последствии был перенесён на множество других операционных систем и стал одним из самых популярных языков программирования.
Написание хороших программ требует ума, вкуса и терпения.
Б. Страуструп
Слайд 3С ценится за эффективность.
На С пишется большинство системного программного обеспечения
и прикладных программ.
С широко используется для подготовки специалистов, хотя изначально
разрабатывался не для новичков, как тот же Паскаль.
Слайд 4ОБЩАЯ ХАРАКТЕРИСТИКА ЯЗЫКА С.
Изначально язык С был придуман, чтобы заменить
Ассемблер в написании операционных систем.
код С легко переносится с
одной платформы на другую.
В настоящее время большинство ОС написано на С.
но применение языка С не ограничивается только написанием операционных систем.
С имеет массу достоинств, он прост в изучении и лаконичен.
элементы языка максимально приближены к архитектуре компьютеров.
Слайд 5ОБЩАЯ ХАРАКТЕРИСТИКА ЯЗЫКА С.
Язык С позволяет программисту полностью контролировать компьютер,
средствами самого же языка.
Так, например, указатель - это адрес
памяти, массив - непрерывная область памяти и т.д.
Многие языки взяли за основу синтаксис С.
Для языка С характерны лаконичность, современный набор конструкций управления потоком выполнения, структур данных и большой набор операций.
На сегодняшний день С и языки основанные на синтаксисе С наиболее популярны в практическом программировании.
например, C++, Java, C#.
Слайд 6ОБЩАЯ ХАРАКТЕРИСТИКА ЯЗЫКА С.
С удобен для написания программ обработки текста
и графики, в различных инженерных расчётах.
Объектно-ориентированные языки, основанные на
С, хорошо подходят для программирования в оконных средах.
Слайд 7Состав языка
В тексте на любом естественном языке можно выделить четыре
основных элемента: символы, слова, словосочетания и предложения.
Подобные элементы содержит
и алгоритмический язык, только слова называют лексемами (элементарными конструкциями), словосочетания — выражениями, а предложения — операторами.
Слайд 8Состав языка.
лексемы образуются из символов,
выражения — из лексем и
символов,
операторы — из символов, выражений и лексем
операторы
выражения
символы
лексемы
Слайд 9Состав языка.
Алфавит
это основные неделимые знаки, с помощью которых пишутся
все тексты на языке.
Лексема
минимальная единица языка, имеющая самостоятельный смысл.
Выражение
задает
правило вычисления некоторого значения.
Оператор
задает законченное описание некоторого действия.
Слайд 10Состав языка.
Операторы могут быть объединены в составной оператор, или блок.
Блоком
в языке C считается последовательность операторов, заключенная в фигурные скобки
{}
Операторы бывают исполняемые и неисполняемые.
Исполняемые операторы задают действия над данными.
Неисполняемые операторы служат для описания данных, поэтому их часто называют операторами описания или просто описаниями.
Слайд 11Этапы создания исполняемой программы.
Для того чтобы выполнить программу, требуется перевести
ее на язык, понятный процессору —
в машинные коды.
Этот
процесс в языке C состоит из нескольких этапов
Слайд 12Этапы создания исполняемой программы.
Слайд 13Этапы создания исполняемой программы.
Слайд 14Алфавит языка
прописные и строчные латинские буквы и знак подчеркивания;
арабские
цифры от 0 до 9;
специальные знаки: " { } ,
. ! # % & [ ] ( ) + - / * : ? < = > ;
пробельные символы: пробел, символы табуляции, символы перехода на новую строку.
Слайд 15Алфавит языка.
Из символов алфавита формируются лексемы языка:
идентификаторы
ключевые слова
знаки операций
константы
разделители
Границы
лексем определяются другими лексемами, такими, как разделители или знаки операций.
Слайд 16Алфавит языка.
Идентификаторы
Идентификатор — это имя программного объекта.
В идентификаторе могут использоваться
латинские буквы, цифры и знак подчеркивания.
Прописные и строчные буквы различаются.
Первым
символом идентификатора может быть буква или знак подчеркивания, но не цифра.
Пробелы внутри имен не допускаются.
Длина идентификатора по стандарту не ограничена, но некоторые компиляторы и компоновщики налагают на нее ограничения.
Слайд 17Алфавит языка.
Ключевые слова
это зарезервированные идентификаторы, которые имеют специальное значение для
компилятора.
Их можно использовать только в том смысле, в котором они
определены.
Интерпретация или компиляция ключевого слова всегда вызывает вполне определенное действие компьютера.
Слайд 18Ключевые слова.
Список ключевых слов C
Слайд 19Алфавит языка.
Знаки операций
Знак операции — это один или более символов,
определяющих действие над операндами
Внутри знака операции пробелы не допускаются.
Слайд 20Знаки операций.
Операции делятся на унарные, бинарные и тернарную
по количеству
участвующих в них операндов
Один и тот же знак может интерпретироваться
по-разному
в зависимости от контекста
Все знаки операций представляют собой отдельные лексемы
за исключением [ ], ( ) и ? :
Большинство стандартных операций может быть переопределено (перегружено)
Слайд 21Алфавит языка.
Константы
В языке C существуют целые, вещественные, символьные и строковые
константы.
Компилятор, выделив константу в качестве лексемы, относит ее к одному
из типов по ее внешнему виду.
Программист может задать тип константы самостоятельно.
Слайд 22Целые константы.
Форматы целых констант
Слайд 23Вещественные константы.
Форматы вещественных констант
Слайд 24Символьные и строковые константы.
Форматы символьных и строковых констант
Слайд 25Символьные константы.
Символьные константы, состоящие из одного символа, занимают в памяти
один байт и имеют стандартный тип char
Двухсимвольные константы занимают два
байта
и имеют тип int
первый символ размещается в байте с меньшим адресом
Пустая символьная константа недопустима.
Слайд 26Символьные константы.
Символ обратной косой черты используется для представления:
кодов, не имеющих
графического изображения
например, \a — звуковой сигнал, \n — перевод
курсора в начало следующей строки
символов апострофа ( ' ), обратной косой черты ( \ ), знака вопроса (?) и кавычки ( " )
любого символа с помощью его шестнадцатеричного или восьмеричного кода
например, \073,\0xF5
значение должно находиться в диапазоне от 0 до 255
Слайд 27Символьные константы.
Последовательности символов, начинающиеся с обратной косой черты, называют управляющими,
или escape-последовательностями
Управляющая последовательность интерпретируется как одиночный символ.
Если непосредственно за обратной
косой чертой следует символ, не предусмотренный таблице, результат интерпретации не определен.
Если в последовательности цифр встречается недопустимая, она считается концом цифрового кода.
Слайд 28Допустимые значения escape-последовательностей.
Слайд 29Строковые константы.
Управляющие последовательности могут использоваться и в строковых константах, называемых
иначе строковыми литералами.
Например, если внутри строки требуется записать кавычку, ее
предваряют косой чертой, по которой компилятор отличает ее от кавычки, ограничивающей строку: "Фирма \"IVK\""
Все строковые литералы рассматриваются компилятором как различные объекты.
Слайд 30Строковые константы.
Строковые константы, отделенные в программе только пробельными символами, при
компиляции объединяются в одну.
Длинную строковую константу можно разместить на
нескольких строках, используя в качестве знака переноса обратную косую черту, за которой следует перевод строки.
Эти символы игнорируются компилятором, при этом следующая строка воспринимается как продолжение предыдущей.
Слайд 31Строковые константы.
Например, строка
"Никто не доволен своей \
внешностью, но все
довольны \
своим умом"
полностью эквивалентна строке
"Никто не доволен своей внешностью,
но все довольны своим умом"
Слайд 32Строковые константы.
В конец каждого строкового литерала компилятором добавляется нулевой символ,
представляемый управляющей последовательностью \0.
Поэтому длина строки всегда на единицу
больше количества символов в ее записи.
Таким образом, пустая строка "" имеет длину 1 байт.
Обратите внимание на разницу между строкой из одного символа и символьной константой.
например, "А" и 'А'.
Слайд 33Алфавит языка.
Комментарии
Комментарий либо начинается с двух символов «косая черта» (//)
и заканчивается символом перехода на новую строку, либо заключается между
символами-скобками /* и */.
Внутри комментария можно использовать любые допустимые на данном компьютере символы, а не только символы из алфавита языка C, поскольку компилятор комментарии игнорирует.
Вложенные комментарии-скобки
стандартом не допускаются,
хотя в некоторых компиляторах разрешены.
Слайд 34Комментарии.
Рекомендуется использовать для пояснений //-комментарии,
а скобки /* */ применять
для временного исключения блоков кода при отладке.