Содержание
- 2. Основные операции Sizeof формат: sizeof ( ) примеры: sizeof(void*); sizeof double* a; sizeof a; Арифметические бинарные:
- 3. Основные операции Инкремент и декремент формат: ++ инкремент -- декремент имеют префиксную и постфиксную формы примеры:
- 4. Основные операции Присваивания n = n + 1; ⬄ n++; i = i + 2; ⬄
- 5. Основные операторы Условный оператор формат: if ( ) [ else ] примеры: множественный выбор: Если истинно
- 6. Основные операторы Операторы цикла формат: while ( выражение ) цикл с предусловием do while ( выражение
- 7. Основные операторы Операторы цикла. Примеры Обработка только положительных элементов массива for ( i=o; i if (
- 8. Основные операторы Переключатели формат: switch ( ) { case : case : ………………………………. case : default:
- 10. Скачать презентацию
Основные операции
Sizeof
формат: sizeof (<имя-типа>) примеры: sizeof(void*);
sizeof <имя-объекта> double* a;
sizeof a;
Арифметические
бинарные: +, -, *, /,
Основные операции
Sizeof
формат: sizeof (<имя-типа>) примеры: sizeof(void*);
sizeof <имя-объекта> double* a;
sizeof a;
Арифметические
бинарные: +, -, *, /,
унарные: +, - n % m;
операции возведения в степень в языке нет!
Отношения
бинарные: >, >=, <, <=, ==, != примеры: a==0 ⬄ !a
унарная: !
Логические связки
&& и || выражения с логическими связками вычисляются слева направо и вычисления останавливаются, когда результат становится ясен
Преобразования типа (кастинг)
формат: ( <имя-типа> ) <выражение> примеры: long a, b;
(char*) (a+b);
Основные операции
Инкремент и декремент
формат: ++ инкремент -- декремент имеют префиксную и постфиксную
Основные операции
Инкремент и декремент
формат: ++ инкремент -- декремент имеют префиксную и постфиксную
примеры: int x, n=10;
x = ++n; /* x = 11; n = 11; */ x = --n; /* x =9; n = 9; */
x = n++; /* x = 10; n = 11; */ x = n--; /* x = 10; n = 9; */
обработка массива Pascal: обработка массива Cи:
s[n] := p[m]; n := n +1; m := m +1; s[n++] = p[m++];
Побитовые
бинарные: &, |, ^, <<, >> примеры:
унарная: ~ инверсия
таблица истинности: int x = 07;
x << 3; сдвиг влево
x >> 1; сдвиг вправо
x = n & 017; маскирование
x = n | 017; установка битов
x = n ^ 017; сброс единиц
~x; инверсия битов
Основные операции
Присваивания
n = n + 1; ⬄ n++; i = i +
Основные операции
Присваивания
n = n + 1; ⬄ n++; i = i +
Пусть @ - бинарная операция, тогда
например: a = a >> 2; ⬄ a >>= 2;
Косвенная адресация, получение адреса
Примеры: char x; ptr = &x; int a[10];
char *ptr; *ptr ⬄ x; a[i] ⬄ *(a+i)
*(&x) ⬄ x;
Условная операция
формат:
пример: if (a > b) z = a;
else z = b; ⬄ z = (a>b) ? a : b;
Операция «запятая»
формат:
выражения вычисляются слева направо, результат операции есть значение последнего вычисленного выражения
Основные операторы
Условный оператор
формат: if (<выражение>)
<оператор-1>
[ else
<оператор-2> ]
примеры:
множественный выбор:
Если истинно (выражение-i), то выполняется
Основные операторы
Условный оператор
формат: if (<выражение>)
<оператор-1>
[ else
<оператор-2> ]
примеры:
множественный выбор:
Если истинно (выражение-i), то выполняется
Если ни одно из (выражений-i) не истинно, то выполняется <оператор-n>
if (a)
if (b) a=1
z = a; b=0
else z=?
z = b;
if ( g==0 ) … ⬄ if ( !g ) …
If ( h!=0 ) … ⬄ if ( h ) …
If ( выражение-1 ) <оператор-1>
else if (выражение-2 ) <оператор-2>
else if (выражение-3 ) <оператор-3>
…………………………
else if (выражение-n-1 ) <оператор-n-1>
else <оператор-n>
Основные операторы
Операторы цикла
формат: while ( выражение ) <оператор> цикл с предусловием
do <оператор>
Основные операторы
Операторы цикла
формат: while ( выражение ) <оператор> цикл с предусловием
do <оператор>
for ( выражение-1 ; выражение-2 ; выражение-3 ) <оператор>
⬄
<выражение-1>;
while ( выражение-2 ) {
<оператор>
<выражение-3>; }
оператор break вызывает немедленный выход из охватывающего его цикла
оператор continue завершает текущую итерацию и переходит к проверке условного
выражения в операторах «while» и «do» и к вычислению (выражения-3) в операторе «for»
примеры:
for ( ; ; ) { …. } бесконечный цикл
for ( i=0; i
int main() { цикл почти всегда можно
int c; (но не всегда нужно) заменить рекурсией
putchar ( c = getchar ( ) );
if ( c != EOF ) main(); что делает эта функция main ?
}
Основные операторы
Операторы цикла. Примеры
Обработка только положительных элементов массива
for ( i=o; ii++ ) {
if ( a[ i ] < 0 ) continue;
<обработка положительных элементов>
}
Реверсирование строки на месте
reverse (char* s) {
int c, n, m; два индекса бегут
for ( n=o, m=strlen(s) -1; n c = s[n]; s[n] = s[m]; s[m] = c; } переставляем символы
}
Нужен ли оператор go to ?
for ( … ) { например, для аварийного выхода
for ( … ) { из глубоко вложенных циклов?
while ( … ) {
if ( … ) goto error; нет, не нужен, т.к. в таких ситуациях
} } } применяются объекты-исключения
Основные операторы
Операторы цикла. Примеры
Обработка только положительных элементов массива Реверсирование строки на месте Нужен ли оператор go to ?
for ( i=o; i
if ( a[ i ] < 0 ) continue;
<обработка положительных элементов>
}
reverse (char* s) {
int c, n, m; два индекса бегут
for ( n=o, m=strlen(s) -1; n
}
for ( … ) { например, для аварийного выхода
for ( … ) { из глубоко вложенных циклов?
while ( … ) {
if ( … ) goto error; нет, не нужен, т.к. в таких ситуациях
} } } применяются объекты-исключения
Основные операторы
Переключатели
формат: switch ( <целое-выражение> ) {
case <константа-1> : <оператор-1>
case <константа-2> :
Основные операторы
Переключатели
формат: switch ( <целое-выражение> ) {
case <константа-1> : <оператор-1>
case <константа-2> :
……………………………….
case <константа-k> : <оператор-k>
default: <оператор-n> }
пример:
Подсчет цифр, пробелов и прочего
int digits, whites, others, c;
digits = whites = others = 0;
while ( ( c = getchar() ) != EOF )
switch ( c ) {
case ‘0’ :
case ‘1’ :
…………..
case ‘9’ : digits++; break; это цифра
case ‘ ‘ : whites++; break; это пробел
default : others++; это прочее
}