Элементы языка СИ Средства для написания простейших программ
ВАЖНО НЕ НА КАКОМ ЯЗЫКЕ ПРОГРАММИРОВАТЬ, А КАКИЕ ЗАДАЧИ РЕШАТЬ! Структура простейшей программы..Т ипы и структуры данных, имеющиеся в алгоритмическом языке, их описание, допустимые операции..О ператоры преобразования данных:присваивания (преобразования внутренних данных), операторы ввода и вывода. Правила записи алгоритма - программирование основных алгоритмических структур. Сведения, необходимые для написания простейшей программы:
Структура простейшей программы на любом алгоритмическом языке Заголовок ограничитель описания - неисполняемые инструкции языка операторы - исполняемые инструкции языка ограничитель
Структура простейшей СИ-программы
ТИПЫ ДАННЫХ В СИ БАЗОВЫЕ ТИПЫ: int - целый float - вещественный одинарной точности double - вещественный двойной точности char - символьный КВАЛИФИКАТОРЫ: short - короткий long - длинный signed - со знаком unsigned - без знака
ТИПЫ ДАННЫХ В СИ
Описания в Си тип список_имен_переменных; тип имя1, имя2,…,имяi,…, имяN; имя=значение/*инициализация*/ Пример описания: float a, b=1.5, _b=0.5, b1; int n=10,i=0, j, ik=1; Имя - идентификатор. Идентификатор - последовательность букв, цифр и знаков подчеркивания, начинающаяся с буквы или знака подчеркивания.
КОНСТАНТЫ В СИ Обозначенные (именованные) const тип имя_конст=значение конст; Явные Целые Десятичные Восьмеричные Шестнадцатеричные 0х2АА -0х111 0ХF4 +0X4D -0XF Вещественные E-9 Символьные a + \n \t \0 \040 \0x20 Текстовыестрока a защита от записи
ВЫРАЖЕНИЯ В СИ Выражения - это операнды, соединенные знаками операций. Операнды: переменные, константы, результаты обращения к функциям; выражения, заключенные в круглые скобки.
ОПЕРАЦИИ СИ
Некоторые операции Си Две формы инкремента: ++имя_переменной - префиксная (увеличение операнда до использования) имя_переменной++ - постфиксная (увеличение операнда после использования) Пример. int i=1,c;
Некоторые операции Си sizeof вычисляет размер в байтах для типа операнда. Две формы: sizeof (выражение) и sizeof (тип). Использование: для построения алгоритмов, обрабатывающих выражения различных типов. Операция (тип) выражение - приведение выражения к типу, указанному в скобках. Пример: (float)i/(float)j
Тип результата выражения Смешивание в выражении операндов разного типа допустимо, но правила автоматического приведения типа сложны - лучше использовать операцию (тип). Если операнды имеют одинаковый тип, то результат имеет тот же тип: 5/2 2
Некоторые операции Си Присваивание: имя переменной=выражение; - не только оператор, но и операция допустима цепочка: a=b=c=d=0 Составное присваивание: операция= Пример: S+=a; S=S+a; P*=a; P=P*a;
БАЗОВЫЕ АЛГОРИТМИЧЕСКИЕ СТРУКТУРЫ Оператор 1 Оператор 2 Следование Кодирование на Си: Оператор 1; Оператор 2;
БАЗОВЫЕ АЛГОРИТМИЧЕСКИЕ СТРУКТУРЫ Условие? НетДа Оператор 2 Оператор 1 Разветвление (развилка) Кодирование на Си: if (условие) оператор 1; else оператор 2; Ветвь «Нет» пустая else и оператор 2 отсутствуют.
БАЗОВЫЕ АЛГОРИТМИЧЕСКИЕ СТРУКТУРЫ Разветвление (развилка) Если развилка является структурной, то: Оператор1 и оператор2 не имеют связей. Существует четко определенная точка соединения ветвей.
БАЗОВЫЕ АЛГОРИТМИЧЕСКИЕ СТРУКТУРЫ Разветвление (развилка) фигурные скобки позволяют объединить несколько операторов в один составной
БАЗОВЫЕ АЛГОРИТМИЧЕСКИЕ СТРУКТУРЫ Цикл ПОКА (с предусловием) Тело цикла Условие? Да Нет Тело цикла - один оператор, простой или составной. Тело цикла может не выполниться ни разу. Кодирование на Си: while (условие) тело цикла;
БАЗОВЫЕ АЛГОРИТМИЧЕСКИЕ СТРУКТУРЫ Тело цикла Условие? Да Нет ЦИКЛ ДО (с постусловием) Кодирование на Си: Do тело цикла; while (условие); Тело цикла выполняется хотя бы один раз.
БАЗОВЫЕ АЛГОРИТМИЧЕСКИЕ СТРУКТУРЫ Если цикл является структурным, то: Цикл имеет один блок анализа на выход из (продолжение) цикла. Блок анализа на выход из (продолжение) цикла стоит либо в начале (цикл ПОКА), либо в конце (цикл ДО) цикла. Ветвь «обратной связи» не содержит операторов.
БАЗОВЫЕ АЛГОРИТМИЧЕСКИЕ СТРУКТУРЫ Принцип Дейкстры. Для построения любого алгоритма достаточно иметь три базовых структуры: следование, ветвление, цикл (безразлично -ПОКА или ДО).
Метод нисходящего проектирования Разбиение алгоритма на части и установлении между ними связей. При установлении связей очень важно, чтобы каждая часть имела один вход и один выход, так что нисходящее проектирование успешно сочетается с использованием базовых структур алгоритмов. Каждая часть в свою очередь разбивается на части, и процесс повторяется. Можно сказать, что нисходящее проектирование алгоритма состоит в иерархической последовательной разработке алгоритма от сложного к простому.
Метод нисходящего проектирования
БАЗОВЫЕ АЛГОРИТМИЧЕСКИЕ СТРУКТУРЫ Да Тело цикла i