Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1 Типы, операции и выражения.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
83.7 Кб
Скачать
  1. Объявления.

Все переменные необходимо объявить до их использования, хотя некоторые объявления могут быть сделаны неявно — по контексту. В объявлении указываются тип и список из одной или нескольких переменных этого типа:

int lower, upper, step;

char с, line[1000];

Переменные можно разделять по строкам произвольным образом, например:

float a;

float b;

Переменные можно инициализировать прямо в объявлениях. Если после имени поставить знак равенства и выражение, то значение этого выражения будет присвоено переменной при ее создании:

int a = 25, h = 6;

char g = 'Q', k = 'm';

float r = 1.89;

long double n = r*123;

Выясним теперь, где в тексте программы определяются данные. В языке возможны глобальные и локальные объекты. Первые определяются вне функций и, следовательно, доступны для любой из них. Локальные объекты по отношению к функциям являются внутренними. Они начинают существовать, при входе в функцию и уничтожаются после выхода из нее. Ниже показана структура программы на Си и возможные места в программе, где определяются глобальные и локальные объекты.

int a; /* Определение глобальной переменной */

int function (int b, char c); /* Объявление функции (т.е. описание

ее заголовка)*/

void main (void)

{ //Тело программы

int d, e; //Определение локальных переменных

float f; //Определение локальной переменной

}

int function (int b, char c) /* Определение функции и формальных

параметров (по существу -локальных

переменных) b и c */

{ //Тело функции

char g; //Определение локальной переменной

...

}

  1. Арифметические операции.

Арифметические операции задаются следующими символами (табл. 2): +, -, *, /, %. Последнюю из них нельзя применять к переменным вещественного типа. Например:

a = b + c;

x = y - z;

r = t * v;

s = k / l;

p = q % w;

Основными арифметическими операциями являются: сложение (‘+’), вычитание (‘-‘), умножение (‘*’) и деление (‘/’). Порядок выполнения операций в выражении соответствует их приоритету. Операции с одинаковым приоритетом в выражении выполняются слева направо.

Операция деления (‘/’) выполняется согласно типу ее операндов. Если оба операнда являются целыми числами, то деление будет целочисленным. Если один из операндов является вещественным, то и результат будет вещественным. Например, пусть переменная x имеет целочисленный тип, а y действительный тип. Следующая таблица демонстрирует результаты деления для различных операндов:

 

операция

результат

x = 7 / 3;

x = 2

y = 7 / 3;

y = 2.000000

y = 7.0 / 3;

y = 2.333333

y = (double)7 / 3;

y = 2.333333

 

Рассмотрим второй пример. При выполнении операции присваивания значения выражения переменной, сначала вычисляется значение выражения, а потом оно присваивается переменной. Поскольку операнды во втором примере являются целыми, то результатом деления 7 / 3 будет 2. Потом целочисленное значение 2 преобразовывается в действительное значение 2.000000 и присваивается действительной переменной y.

В четвертом примере перед выполнением операции деления происходит преобразование типа делимого из целого в вещественный. Поэтому деление будет производиться без потери точности.

Пример. Найти среднее арифметическое двух целых чисел a и b.

Результатом вычисления выражения (a + b) / 2 может быть действительное число. Поэтому деление должно выполняться с сохранением точности. А для этого один из операндов необходимо преобразовать в действительный тип. Например, результат можно вычислить так: res = (a + b) / 2.0. Программа имеет вид:

 

#include <stdio.h>

int a,b;

double res;

void main(void)

{

  scanf("%d %d",&a,&b);

  res = (a + b) / 2.0;

  printf("%lf\n",res);

}

Операция вычисления остатка в Си обозначается символом ‘%’. При этом остаток при делении отрицательного числа на положительное является отрицательным (хотя математически остаток при делении на число n должен лежать в промежутке от 0 до  n – 1 включительно).

 

Операция

результат

x = 6 % 3

x = 0

x = 8 % 3

x = 2

x = -6 % 3

x = 0

x = -8 % 3

x = -2