Элементы языка СИ

Содержание

Слайд 2

C и C++ C++ C Объектно-ориентированное программирование некоторые новые возможности программирования

C и C++

C++

C

Объектно-ориентированное программирование

некоторые новые возможности программирования (перегрузка функций, пространства имен,

…)

Элементы из других алгоритмических языков (паскаля): замена формального параметра на фактический по ссылке, подход к работе со строками)

Слайд 3

Краткая история языка С и его диалекты 1969-1973 годы- Деннис Ритчи

Краткая история языка С и его диалекты

1969-1973 годы- Деннис Ритчи создал

язык С
1978 г. -  Брайан Керниган1978 г. -  Брайан Керниган и Деннис Ритчи опубликовали первую редакцию книги «Язык программирования Си» (K&R)
1989 – ANSI C (или C89)
1990 – ISO ANSI C (С90)
С99 и С11
Слайд 4

Язык С++ 1983 г. – Бьёрн (Бьерне) Страуструп создал С++ 1985

Язык С++

1983 г. – Бьёрн (Бьерне) Страуструп создал С++
1985 г. -

 вышло первое издание «Языка программирования C++»
Последний стандарт ISO C++ - C++11 (2011 г.)
Слайд 5

Литература Б. Керниган, Д. Ритчи. Язык программирования Си (The C programming

Литература

Б. Керниган, Д. Ритчи. Язык программирования Си (The C programming language).

– M.: Вильямс. 2007. – 304 с.
Б. Страуструп. Язык программирования С++ (The C++ programming language). – M.: Бином-Пресс. 2007. – 1104 с.
Слайд 6

ВАЖНО НЕ НА КАКОМ ЯЗЫКЕ ПРОГРАММИРОВАТЬ, А КАКИЕ ЗАДАЧИ РЕШАТЬ! Структура

ВАЖНО НЕ НА КАКОМ ЯЗЫКЕ ПРОГРАММИРОВАТЬ, А КАКИЕ ЗАДАЧИ РЕШАТЬ!

Структура простейшей

программы.
.Типы и структуры данных, имеющиеся в алгоритмическом языке, их описание, допустимые операции.
.Операторы преобразования данных:присваивания (преобразования внутренних данных), операторы ввода и вывода.
Правила записи алгоритма - программирование основных алгоритмических структур.

Сведения, необходимые для написания простейшей программы:

Слайд 7

Структура простейшей программы на любом алгоритмическом языке Заголовок ограничитель описания -

Структура простейшей программы на любом алгоритмическом языке

Заголовок ограничитель
описания - неисполняемые инструкции

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

Структура простейшей СИ-программы

Структура простейшей СИ-программы

Слайд 9

ТИПЫ ДАННЫХ В СИ БАЗОВЫЕ ТИПЫ: int - целый float -

ТИПЫ ДАННЫХ В СИ

БАЗОВЫЕ ТИПЫ: int - целый float - вещественный одинарной точности double

- вещественный двойной точности char - символьный

КВАЛИФИКАТОРЫ: short - короткий long - длинный signed - со знаком unsigned - без знака

Слайд 10

ТИПЫ ДАННЫХ В СИ

ТИПЫ ДАННЫХ В СИ

Слайд 11

ТИПЫ ДАННЫХ В СИ

ТИПЫ ДАННЫХ В СИ

Слайд 12

ТИПЫ ДАННЫХ В СИ

ТИПЫ ДАННЫХ В СИ

Слайд 13

Описания в Си Пример описания: float a, b=1.5, _b=0.5, b1; int

Описания в Си

Пример описания:
float a, b=1.5, _b=0.5, b1; int n=10,i=0, j,

ik=1;

Имя - идентификатор.
Идентификатор - последовательность букв, цифр и знаков подчеркивания, начинающаяся с буквы или знака подчеркивания.

Слайд 14

КОНСТАНТЫ В СИ

КОНСТАНТЫ В СИ

Слайд 15

ВЫРАЖЕНИЯ В СИ Выражения - это операнды, соединенные знаками операций. Операнды:

ВЫРАЖЕНИЯ В СИ

Выражения - это операнды, соединенные знаками операций.

Операнды: переменные, константы,

результаты обращения к функциям; выражения, заключенные в круглые скобки.
Слайд 16

ОПЕРАЦИИ СИ

ОПЕРАЦИИ СИ

Слайд 17

Некоторые операции Си Две формы инкремента: ++имя_переменной - префиксная (увеличение операнда

Некоторые операции Си

Две формы инкремента: ++имя_переменной - префиксная (увеличение операнда до

использования) имя_переменной++ - постфиксная (увеличение операнда после использования)

Пример. int i=1,c;

Слайд 18

Некоторые операции Си sizeof вычисляет размер в байтах для типа операнда.

Некоторые операции Си

sizeof вычисляет размер в байтах для типа операнда. Две

формы: sizeof (выражение) и sizeof (тип). Использование: для построения алгоритмов, обрабатывающих выражения различных типов.

Операция (тип) выражение - приведение выражения к типу, указанному в скобках. Пример: (float)i/(float)j

Слайд 19

Тип результата выражения Смешивание в выражении операндов разного типа допустимо, но

Тип результата выражения

Смешивание в выражении операндов разного типа допустимо, но правила

автоматического приведения типа сложны - лучше использовать операцию (тип).
Если операнды имеют одинаковый тип, то результат имеет тот же тип: 5/2→2
Слайд 20

Некоторые операции Си Присваивание: имя переменной=выражение; - не только оператор, но

Некоторые операции Си

Присваивание: имя переменной=выражение; - не только оператор, но и операция⇒ допустима

цепочка: a=b=c=d=0

Составное присваивание: операция= Пример: S+=a; ⇔ S=S+a; P*=a; ⇔ P=P*a;

Слайд 21

БАЗОВЫЕ АЛГОРИТМИЧЕСКИЕ СТРУКТУРЫ

БАЗОВЫЕ АЛГОРИТМИЧЕСКИЕ СТРУКТУРЫ

Слайд 22

БАЗОВЫЕ АЛГОРИТМИЧЕСКИЕ СТРУКТУРЫ Ветвь «Нет» пустая⇒else и оператор 2 отсутствуют.

БАЗОВЫЕ АЛГОРИТМИЧЕСКИЕ СТРУКТУРЫ

Ветвь «Нет» пустая⇒else и оператор 2 отсутствуют.

Слайд 23

БАЗОВЫЕ АЛГОРИТМИЧЕСКИЕ СТРУКТУРЫ Разветвление (развилка) Если развилка является структурной, то: Оператор1

БАЗОВЫЕ АЛГОРИТМИЧЕСКИЕ СТРУКТУРЫ

Разветвление (развилка)
Если развилка является структурной, то:
Оператор1 и оператор2 не

имеют связей.
Существует четко определенная точка соединения ветвей.
Слайд 24

БАЗОВЫЕ АЛГОРИТМИЧЕСКИЕ СТРУКТУРЫ Разветвление (развилка) фигурные скобки позволяют объединить несколько операторов в один составной

БАЗОВЫЕ АЛГОРИТМИЧЕСКИЕ СТРУКТУРЫ

Разветвление (развилка)

фигурные скобки позволяют объединить несколько операторов в один

составной
Слайд 25

БАЗОВЫЕ АЛГОРИТМИЧЕСКИЕ СТРУКТУРЫ Цикл ПОКА (с предусловием) Тело цикла - один

БАЗОВЫЕ АЛГОРИТМИЧЕСКИЕ СТРУКТУРЫ

Цикл ПОКА (с предусловием)

Тело цикла - один оператор, простой

или составной.
Тело цикла может не выполниться ни разу.

Кодирование на Си:
while (условие)
тело цикла;

Слайд 26

БАЗОВЫЕ АЛГОРИТМИЧЕСКИЕ СТРУКТУРЫ ЦИКЛ ДО (с постусловием) Кодирование на Си: Do

БАЗОВЫЕ АЛГОРИТМИЧЕСКИЕ СТРУКТУРЫ

ЦИКЛ ДО (с постусловием)

Кодирование на Си: Do
тело цикла;
while (условие);

Тело

цикла выполняется хотя бы один раз.
Слайд 27

БАЗОВЫЕ АЛГОРИТМИЧЕСКИЕ СТРУКТУРЫ Если цикл является структурным, то: Цикл имеет один

БАЗОВЫЕ АЛГОРИТМИЧЕСКИЕ СТРУКТУРЫ

Если цикл является структурным, то:
Цикл имеет один блок анализа

на выход из (продолжение) цикла.
Блок анализа на выход из (продолжение) цикла стоит либо в начале (цикл ПОКА), либо в конце (цикл ДО) цикла.
Ветвь «обратной связи» не содержит операторов.
Слайд 28

БАЗОВЫЕ АЛГОРИТМИЧЕСКИЕ СТРУКТУРЫ Принцип Дейкстры. Для построения любого алгоритма достаточно иметь

БАЗОВЫЕ АЛГОРИТМИЧЕСКИЕ СТРУКТУРЫ

Принцип Дейкстры.
Для построения любого алгоритма достаточно иметь три базовых

структуры: следование, ветвление, цикл (безразлично -ПОКА или ДО).
Слайд 29

Метод нисходящего проектирования Разбиение алгоритма на части и установлении между ними

Метод нисходящего проектирования

Разбиение алгоритма на части и установлении между ними связей.

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

Метод нисходящего проектирования

Метод нисходящего проектирования