Операторы и выражения
Выражения широко используются в программах на языке СИ и представляют собой формулы для вычисления переменных. Они состоят из операндов (переменные, константы и др.), соединенных знаками операций (сложение, вычитание, умножение и др.). Порядок выполнения при вычислении значения выражения определяется их приоритетами и может регулироваться с помощью круглых скобок. Наиболее часто арифметические выражения используются в операторе присваивания. Этот оператор заменяет значение переменной в левой части оператора на значение выражения, стоящего в правой части, и имеет следующую форму:
переменная = выражение;
В языке СИ может быть использован модификатор const, запрещающий какие бы то ни было переопределения константы: ее уменьшение, увеличение и т.п. Модификатор const, используемый отдельно, эквивалентен const int. Приведем примеры:
const float a=3.5;
const j=47;
В таблице 1 приведены арифметические операции, используемые в языке СИ.
Таблица 1
Знак операции
| Выполнение действия
| +
| Сложение
| –
| Вычитание
| *
| Умножение
| /
| Деление
| %
| Деление по модулю
|
Результатом деления по модулю является остаток от деления. Например, если b=5, c=2, то при выполнении операции
а=b%c,
переменная а получит значение 1.
Широкое распространение находят также выражения с еще одной нетрадиционной терпарной операцией?:. В выражении
у=(х!=0)?а:b,
у=а, если х не равно нулю, и у=b, если х равно нулю. Следующее выражение
у=(а>b)?a:b;
позволяет присвоить переменной y значение большей переменной (а или b), т.е. y=max(a,b).
В таблице 2 приведены некоторые функции, применяемые при программировании на СИ.
Таблица 2
Математическая запись
| Запись на языке СИ
| | X |
| int abs(int X)
| | X |
| float fabs(float X)
| arccos X
| double acos(double X)
| arcsin X
| double asin(double X)
| arctg X
| double atan(double X)
| cos X
| double cos(double X)
| sin X
| double sin(double X)
| tg X
| double tan(double X)
| eX
| double exp(double X)
| ln X
| double log(double X)
| lg X
| double log10(double X)
| √X
| double sqrt(double X)
| XY
| double pow(double X, double Y)
|
Перед аргументом и функцией указан допустимый тип (при программировании эта запись типа опускается).
В программах на языке СИ важная роль отводится комментариям, которые повышают наглядность и удобство чтения программ. Они могут быть записаны в любом месте программы и обрамляются символами /* и */.
Рассмотрим пример программы на языке СИ.
Требуется вычислить:
Для работы с математическими функциями необходимо перед функцией main поместить строку:
#include <math.h>
#include <stdio.h>
#include <math.h>
#include <conio.h>
#include <iostream.h>
main()
{
float z,f,k; /*объявление вещественных переменных z,f,k*/
double y,a,b,c,d,x; /*объявление переменных y,a,b,c,d,x переменными двойной точности*/
printf("Input z, f, k, d, x\n");
scanf(“%f %f %f %lf %lf”, &z, &f, &k, &d, &x); /* ввод с клавиатуры переменных z,f,k,d,x*/
a=log(x)+(z+f)/k;
b=sin(x)+tan(x);
c=pow(d+exp(x),1./5);
y=(a+b)/c;
printf("a=%lf b=%lf c=%lf y=%lf", a, b, c, y); /*вывод на экран значений переменных a,b,c,y*/
getch ();
return 0;
}
Следует обратить внимание на то, что при вычислении переменной с, выражение, стоящее в правой части, представлено как 5√(d+ex), поэтому применена функция pow. Еще одно замечание. Следует осторожно подходить к делению целых чисел. Если оба операнда целые, то результат тоже будет целым, а дробная часть отбрасывается. таким образом, при выполнении операции 1/5, результат будет равен нулю. Для того чтобы сохранить дробную часть, хотя бы один из операндов должен быть вещественным. Это условие выполнено при вычислении 1./5.
Задание
Из таблицы 3 взять задание по варианту и написать программу для вычисления выражения на языке СИ.
Таблица 3
№ варианта
| Задание
| Исходные данные
|
|
| x = 4,5
y = 8,5
i = 3
j = 6
|
|
| n = 10,2
x = 4,3
i = 5
m = 2
|
|
| m = 8,1
w = 4,2
x = 10
y = 4
|
|
| t = 4,7
z = 0,8
p = 6,2
k = – 4
m = 6
|
|
| t = 4,1
p = 3,2
w = 8,7
j = 3
i = 7
|
|
| x = 5,7
y = 1,9
k = 8
m = 2
| 7
|
| m = 5,6
n = 9,4
i = 4
j = 9
| 8
|
| q = 1,7
p = 2,3
i = 9
j = 4
| 9
|
| n = 2,6
m = 3,7
p = 6
k = 2
| 10
|
| t = 1,1
p = 2,4
k = 4
i = 5
| 11
|
| x = 3,7
y = 2,1
i = 3
j = 4
| 12
|
| t = 1,5
p = 4,8
i = 2
m = 6
| 13
|
| z = 2,4
m = 5,8
n = 4
j = 5
| 14
|
| x = 9,5
y = 3,6
j = 2
i = 5
| 15
|
| x = 6,4
y = 1,7
k = 5
m = 7
|
Литература
1. Подбельский В.В. Язык Cu ++: Учебное пособие. - М.: Финансы и статистика,1995, - 560 с.
2. Страуструп Б. Язык программирования Сг ++. - М.: Радио и связь, 1991. - 352 стр.
3. Собоцинский В.В. Практический курс Turbo Cu ++. Основы объктно- ориентированного программирования. - М.: Свет, 1993. - 236 с.
4. Романов В.Ю. Программирование на языке Cu ++. Практический подход. - М.: Компьтер, 1993. - 160 с.
5. Уинер Р. Язык турбо Cu. - М.: Мир, 1991. - 384 с.
6. Юлин В.А., Булатова И.Р. Приглашение к Cu. - Мн.: Высш. Шк., 1990,- 224 с.
7. Котлинская Г.П., Галиновский О.И. Программирование на языке Cu. -Мн.: Высш. Шк., 1991. - 156 с. 1 | 2 | 3 | Поиск по сайту:
|