Цель и задачи работы, требования к результатам ее выполнения

Цель работы состоит в овладении навыками разработки программ на языке Си, имеющих линейную структуру, и программ, реализующих разветвляющиеся алгоритмы, т.е. использующих условный оператор и (или) оператор- переключатель. Для достижения цели необходимо выполнить следующие задачи:

- изучить необходимые учебные материалы, посвященные константам и переменным, а также условному оператору и переключателю языка Си [1, 3];

- разработать программы на языке Си для решения заданных вариантов заданий;

- отладить программы;

- выполнить решение контрольного примера с помощью программы и выполнить ручной расчет контрольного примера;

- подготовить отчет по лабораторной работе.

Краткая характеристика объекта изучения

Понятие переменной и типа данных

Одним из основных понятий, используемых в процедурных языках программирования, является понятие переменной. Переменная — поименованная, либо адресуемая иным способом область памяти, адрес которой можно использовать для осуществления доступа к данным. Данные, находящиеся в переменной (то есть по данному адресу памяти), называются значением этой переменной. Переменная принадлежит определённому типу данных.

Тип данных определяет:

– внутреннее представление данных в памяти компьютера;

– множество значений, которые могут принимать величины этого типа;

– операции и функции, которые можно применять к величинам этого тина.

Переменная используется для хранения данных в процессе выполнения программ. Значение переменной можно изменить с помощью операции- присваивания.

Стандартные типы языка Си

В языке Си существуют стандартные типы, которым могут принадлежать переменные.

В Си стандарта ANSI классификация типов имеет следующий вид, также указана размерность переменной типа в оперативной памяти:

• целые:

– беззнаковые:

unsigned char – переменная типа занимает в памяти 8 бит;

unsigned short – 16 бит;

unsigned int - 32 бита (в Win32);

unsigned long – 32 бита (в Win32);

– знаковые:

char – 8 бит;

short – 16 бит;

int - 32 бита (в Win32);

long – 32 бита (в Win32);

• вещественные:

float – 32 бита;

double – 64 бита;

long double – 80 бит.

Назначение и диапазоны стандартных типов представлено в таблице 1.

Следует отметить особенность типа char (unsigned char) в языке Си. Язык Си язык со слабой типизацией, поэтому символьный тип используется двояко. С одной стороны он может использоваться для хранения кодов символов в кодировке ASCII, а с другой стороны, для хранения целых чисел в заданном диапазоне.

Дополнительно компанией Microsoft введены, так называемые, платформенно- независимые целые типы, по сути это новые имена для уже существующих типов, но их размерность не будет меняться при переходе к другим платформам (размерность этих типов в битах явным образом присутствует в названии):

__int8 unsigned __int8

__int16 unsigned __int16

__int32 unsigned __int32

__int64 (long long) unsigned __int64 (unsigned long long)

Кроме того в последние версии продуктов Microsoft дополнительно введены следующие типы, имена которых являются ключевыми словами:

bool – 1 байт, возможные значения true (1) и false (0);

wchar_t – 2 байта (соответствует типу unsigned short), обычно используется для хранения кодов символов в кодировке Unicode (1 символ кодируется 2 байтами).

Таблица 1 – Назначение и диапазоны стандартных типов

Тип данных Размер, бит Диапазон значений Назначение типа
unsigned char 0...255 Небольшие целые числа без знака и коды символов
char -128...127 Небольшие целые числа со знаком и ASCII-коды
unsigned short 0...65535 Целые числа без знака
short -32768...32767 Целые числа со знаком
unsigned int 0...4294967295 Большие целые без знака
int -2147483648... ...2147483647 Большие целые со знаком
unsigned long 0...4294967295 Большие целые без знака
long -2147483648... ...2147483647 Большие целые со знаком
float 3.4Е-38…... 3.4Е+38 Научные расчеты (7 значащих цифр)
double 1.7Е-308... …..1.7Е+308 Научные расчеты (15 значащих цифр)
long double 3.4Е-4932... ...1.1Е+4932 Финансовые расчеты (19 значащих цифр)