
- •Дисциплина:
- •История создания языка C
- •Характеристика языка C
- •Элементы языка C
- •Элементы языка C
- •Элементы языка C
- •Элементы языка C
- •Элементы языка C
- •Простейшая программа на языке
- •Препроцессор
- •Программа с разветвлениями
- •Способы записи условных выражений
- •Примеры записи условных
- •Простейшая программа с разветвлением
- •Простейшая программа с разветвлением (2)
- •Простейшая программа с разветвлением (для целочисленных переменных)
- •Использование составного оператора в if
- •Вложенные инструкции if
- •Пример логической ошибки в программе
- •Множественные разветвления
- •Пример задачи с множественными разветвлениями
- •Циклы в C
- •Цикл while
- •Цикл do while
- •Цикл for
- •Задача о табулировании функции
- •Инструкция continue
- •Вычисления по рекуррентным формулам
- •Вычисления по рекуррентным формулам (2)
- •Вложенные циклы
- •Инструкция goto
- •Итог: управляющие инструкции языка C
Вложенные инструкции if
int num = -10; if (num > 0)
printf (''Положительное число\n''); else
if (num < 0)
printf (''Отрицательное число\n'');
else
printf (''Нуль\n'');
Пример логической ошибки в программе
int a=17, b=5; if (a>10)
b++; if (a <=5)
b+=a; else
b*=2;
Множественные разветвления
switch (переменная-селектор)
{
case A1: <действие 1>; break; case A2: <действие 2>; break;
case AN: <действие N>; break;
default: <действие, выполняемое по умолчанию>;
}
Пример задачи с множественными разветвлениями
Задача: по порядковому номеру занятия (пары) в расписании вывести время начала и окончания занятия.
План решения: введем переменную num для обозначения порядкового номера пары. Тип переменной — целочисленная (int).
Циклы в C
for — цикл с заранее определенным количеством повторений
while — цикл с предусловием
do while — цикл с постусловием
цикл : заголовок цикла + тело цикла итерация : однократный проход цикла

Цикл while
while (условие)
{
<тело цикла>
}
Пример: int n = 2; while (n<20)
{
n = n*2; printf(''%d\n'',n);
}
Условие
Тело цикла

Цикл do while
Тело цикла
Условие
int i = 1; do
{
i++;
printf (''\n%d'',i);
}
while (i<4);

Цикл for
1 |
2 |
for (выражение инициализации; условное выражение;
3 выражение приращения)
4 <действие>;
i=1 to 10 step 2
тело цикла
int i, s = 0; for(i=1; i<10; i+=2)
{
s+= i; printf(''\n%6d%8d'',i,s);
}

Задача о табулировании функции
На интервале [a,b] числовой оси требуется вычислить значения функции f(x) в N равноудаленных точках.
Анализ: алгоритм — циклический, количество итераций — N, упраляющая циклом
переменная - x.
N = 3
x начальное = a
x конечное = b |
a |
b |
приращение dx = количеству интервалов |
||
разбиения числовой оси |
dx = (b-a)/(N-1) |
Инструкция continue
- прерывает текущую итерацию цикла. int i;
for(i=8; i>0; i--)
{
if (i%2) continue; printf (''%8d'', i);
}