}
В результате работы программы вначале на экране появится текст:
Введите строку символов,
после чего следует ввести какую-либо строку символов. Эта информация при помощи оператора gets будет присвоена элементам символьного массива q. Оператор puts выведет строку символов.
1.4 Операторы и выражения
Выражения широко используются в программах на языке СИ и представляют собой формулы для вычисления переменных. Они состоят из операндов (переменные, константы и др.), соединенных знаками операций (сложение, вычитание, умножение и др.). Порядок выполнения при вычислении значения выражения определяется их приоритетами и может регулироваться с помощью круглых скобок. Наиболее часто арифметические выражения используются в операторе присваивания. Этот оператор заменяет значение переменной в левой части оператора на значение выражения, стоящего в правой части, и имеет следующую форму:
переменная = выражение;
В языке СИ может быть использован модификатор const, запрещающий какие бы то ни было переопределения константы: ее уменьшение, увеличение и т.п. Модификатор const, используемый отдельно, эквивалентен const int. Приведем примеры:
const float a=3.5;
const j=47;
В таблице 1 приведены арифметические операции, используемые в языке СИ.
Таблица 1
Знак операции | Выполнение действия |
+ | Сложение |
– | Вычитание |
* | Умножение |
/ | Деление |
% | Деление по модулю |
Результатом деления по модулю является остаток от деления. Например, если b=5, c=2, то при выполнении операции
а=b%c,
переменная а получит значение 1.
Широкое распространение находят также выражения с еще одной нетрадиционной терпарной операцией ?: . В выражении
у=х?а: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) |
log 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>
main()
{
float z,f,k; /*объявление вещественных переменных z,f,k*/
double y,a,b,c,d,x; /*объявление переменных y,a,b,c,d,x переменными двойной точности*/
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(“%lf %lf %ef %lf”, a, b, c, y); /*вывод на экран значений переменных a,b,c,y*/
}
Следует обратить внимание на то, что при вычислении переменной с, выражение, стоящее в правой части, представлено как 5√(d+ex), поэтому применена функция pow. Еще одно замечание. Следует осторожно подходить к делению целых чисел. Если оба операнда целые, то результат тоже будет целым, а дробная часть отбрасывается. таким образом, при выполнении операции 1/5, результат будет равен нулю. Для того чтобы сохранить дробную часть, хотя бы один из операндов должен быть вещественным. Это условие выполнено при вычислении 1./5 .
Из таблицы 3 взять задание по варианту и написать программу для вычисления выражения на языке СИ.
Таблица 3
№ варианта | Задание | Исходные данные |
1 |
x = 4,5 y = 8,5 i = 3 j = 6 | |
2 |
n = 10,2 x = 4,3 i = 5 m = 2 | |
3 |
m = 8,1 w = 4,2 x = 10 y = 4 | |
4 |
t = 4,7 z = 0,8 p = 6,2 k = – 4 m = 6 | |
5 |
t = 4,1 p = 3,2 w = 8,7 j = 3 i = 7 | |
6 |
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 |