Бочаров презентации 1 семестр / Tech_Progr_PPT_2p_2016
.pdfСписок основных операций
(продолжение)
Укороченная форма оператора присваивания
= |
Простое присваивание |
*= |
Сложное присваивание |
/= |
- " - |
%= |
- " - |
+= |
- " - |
-= |
- " - |
<<= |
- " - |
>>= |
- " - |
&= |
- " - |
^= |
- " - |
|= |
- " - |
x = y, a = b = c = d = 0
a *= b, эквивалентно a = a * b
a /= b, |
a = a / b |
a %= b, |
a = a % b |
a += b, |
a = a + b |
a -= b, |
a = a - b |
x <<= y, |
x = x<<y |
x >>= y, |
x = x>>y |
x &= y, |
x = x & y |
x ^= y, |
x = x ^ y |
x |= y, |
x = x | y |
11 |
Технология и языки программрования |
Список основных операций
(продолжение)
Условная операция
Результат = выражение1 ? выражение2 : выражение3 Если выражение1 истинно, то выполняется выражение2,
иначе выполняется выражение3.
Пример – вывод на экран значения минимальной по величине одной из двух переменных:
int a=19, b=12, c; c = (a < b)? a : b;
printf("MIN = %d\n", c);
или
int a=5, b=7;
printf("MIN = %d\n", (a < b)? a : b);
12 |
Технология и языки программрования |
Управляющие операторы
Основные алгоритмические конструкции: следование,
выбор (ветвление, альтернатива), повторение (цикл)
Управляющие операторы: условный оператор,
операторы цикла, оператор безусловного перехода
Условный оператор if (условие) оператор1 else оператор2; Если условие истинно, то выполняется оператор1,
иначе выполняется оператор2 Пример – вывод на экран значения минимальной по величине одной из двух переменных:
int a=10, b=127, c;
if (a < b) c = a; else c = b; printf("MIN = %d\n", c);
13 |
Технология и языки программрования |
Управляющие операторы
(продолжение)
Пример – ввод чисел и нахождение частного от деления одного числа на другое с проверкой деления на ноль
Блок-схема алгоритма
начало
ввод a, b
|
НЕТ |
|
|
b = 0 ? |
|
ДА |
|
||||
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
c = a/b |
|
|
|
|
|
сообщение |
|
|||
|
|
|
|
|
|
об ошибке |
|
||||
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
вывод c |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
конец
14 |
Технология и языки программрования |
Управляющие операторы
(продолжение)
Пример – ввод чисел и нахождение частного от деления одного числа на другое с проверкой деления на ноль
int main(void)
{
int a=0, b=1; double c;
printf("Enter Dividend and Divisor -> "); scanf("%d%d",&a,&b);
if (b==0) printf("\nDivision by zero! Skip...\n\n"); else
{
c = (float) a/b;
printf("\nQuotient= %10.3f\n\n", c);
}
return 0;
}
15 |
Технология и языки программрования |
Управляющие операторы
(продолжение)
Оператор цикла с постусловием
do
{
тело цикла;
}
while (условие возврата в цикл);
Вхождение в цикл безусловное, проверка выполняется в конце. Если результат проверки оказывается истинным, т.е. условие выполняется, то осуществляется переход назад – к началу цикла. Если условие не выполняется, то осуществляется переход вперед – к оператору, следующему за циклом.
16 |
Технология и языки программрования |
Управляющие операторы
(продолжение)
начало
Пример
Деление двух целых чисел с проверкой наличия ошибки деления на ноль.
Если она есть, то выдается сообщение об ошибке и выполняется возврат к вводу чисел.
|
ввод a и b |
ДА |
НЕТ |
|
b=0? |
сообщение об ошибке
c = a/b
вывод с
конец
17 |
Технология и языки программрования |
Управляющие операторы
(продолжение)
Текст программы деления. Цикл с постусловием
#include <stdio.h> int main(void)
{
int a,b; double c; do
{
printf("Enter two integer numbers: "); scanf("%d%d", &a, &b);
if (b==0)printf("\nError: division by zero. Try again\n\n");
}
while(b == 0); c = (float) a/b;
printf("\nThe result = %10.3f\n\n", c); return 0;
}
18 |
Технология и языки программрования |
Управляющие операторы
(продолжение)
Оператор цикла с предусловием
while (условие вхождения в цикл);
{
тело цикла;
}
Проверка выполняется в начале. Вхождение в цикл происходит только при выполнении условия. Если результат проверки оказывается истинным, т.е. условие выполняется, то осуществляется вход в цикл, переход к его началу. После завершения всех действий в теле цикла осуществляется переход назад к проверке условия.
Если условие не выполняется, то осуществляется переход вперед – к оператору, следующему за циклом.
19 |
Технология и языки программрования |
Управляющие операторы
(продолжение)
Два варианта алгоритма решения задачи деления. Цикл с предусловием
|
начало |
инициализация |
|
a - любое, b=0 |
|
ДА |
НЕТ |
|
b=0? |
ввод a и b |
c = a/b |
ДА |
НЕТ |
b=0? |
вывод с |
сообщение |
|
об ошибке |
|
|
конец |
|
вариант 1 |
|
начало |
|
|
ввод a и b |
|
ДА |
НЕТ |
|
|
b=0? |
|
сообщение |
c = a/b |
|
об ошибке |
||
|
||
ввод a и b |
вывод с |
|
|
конец |
|
|
вариант 2 |
20 |
Технология и языки программрования |