Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лабораторные работы / Лабораторная работа1

.doc
Скачиваний:
31
Добавлен:
28.01.2014
Размер:
68.1 Кб
Скачать

Лабораторная работа №1

По технологии программирования

Работа с переменными в программе

Основные понятия

Переменная – именованная область памяти, значение которой можно получить или изменить.

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

В языке программирования С++ необходимо, чтобы имя переменной и ее тип был указан до того, как переменная фактически использовалась. Это связано с тем, что нужно правильно выделить место в оперативной памяти для хранения переменной.

Рассмотрим основные типы данных переменных:

  • Числовые

    • Целые числа (20, 256897)

    • Вещественные числа (12.66 или 12458789.251)

    • Положительные числа

    • Отрицательные числа

    • Строковые

    • Логические значения

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

int – целочисленный тип. Этот тип данных позволяет хранить толь целые значения из диапазона -32768…32767. Переменные этого типа занимают в памяти 16 бит. Если попытаться присвоить переменной типа int значение, выходящее за границы диапазона, то результат будет заведомо неверным.

float – используется для хранения значений с плавающей точкой. Переменные этого типа данных занимают в памяти 32 бита и могут хранить вещественные числа с точностью до 6-го знака.

double – используется для хранения значений с плавающей точкой. Переменные этого типа данных занимают в памяти 64 бита и могут хранить вещественные числа с точностью до 18-го знака.

char – используется для представления символьной информации. Переменные этого типа занимают в памяти 1 байт.

void – специальный тип данных, предназначенный для указания отсутствия данных любого типа. Например, этот тип данных можно использовать для указания, что функция не возвращает никакого значения.

Модификаторы типов

В С используется 4 модификатора типов. Это signed, unsigned, short и long. Все эти модификаторы применимы к целочисленным и символьным типам данных. Модификатор long также можно использовать с типом данных double.

По умолчанию все переменные являются знаковыми. Поэтому применение модификатора signed на практике сильно ограничено.

Модификатор unsigned позволяет переменным работать только с положительными значениями. Этот модификатор можно использовать только с порядковыми типами (int и char).

При применении модификатора unsigned длина положительного диапазона удваивается за счет отрицательной части. Так, диапазонов типа unsigned int будет 0…65535, а не -32768…32767 как для int.

Модификатор longиспользуется для увеличения стандартного диапазона в 2 раза.

Модификатор short является базовым и на практике практически не используется (например, для типа short int диапазон будет таким же, как и для int).

В таблице 1 представлены основные типы данных языка С с использованием модификаторов.

Таблица 1 – основные типы данных языка С

Тип

Размер в битах

Диапазон значений

char

8

-128…127

unsigned char

8

0…255

signed char

8

-128…127

int

16

-32768…32767

unsigned int

16

0…65535

signed int

16

-32768…32767

short int

16

-32768…32767

unsigned short int

16

0…65535

signed short int

16

0…65535

long int

32

-2147483647…2147483647

signed long int

32

-2147483647…2147483647

unsigned long int

32

0…4294967295

float

32

(3.410-38…3.41038)

double

64

(1.710-308…1.710308)

long float

64

(1.710-308…1.710308)

long double

80

(3.410-4932…1.1104932)

В С возможно преобразование типов. Причем данное преобразование происходит от "большего к меньшему". Старшинство типов данных представлено на рисунке 1.

Рис.1. Старшинство типов данных в языке С

То есть, если объявлены переменные a и b типа int, а переменная с типа float, то результат вычисления c=a/b будет преобразован к типу int.

Переменные в С могут быть локального и глобального типа.

Локальная переменная представляет собой переменную, определенную внутри функции. Такая переменная называется локальной, потому что ее известность ограничена данной функцией. Вы объявляете локальные переменные в начале функции после открывающей фигурной скобки:

void some_function(void)

{    int count;    float result; }

дополнение к локальным переменным C++ позволяет вашим программам объявлять глобальные переменные, которые известны на протяжении всей программы (глобально для всех функций). Чтобы объявить глобальную переменную, следует просто поместить объявление переменной в начало вашей программы вне какой-либо функции:

int some_global_variable;                  ---> Объявление глобальной переменной

void main(void)

{    // Здесь должны быть операторы программы }

По мере возможности следует избегать использования в программах глобальных переменных. Однако если ваша программа должна использовать глобальную переменную, то может случиться, что имя глобальной переменной конфликтует с именем локальной переменной. При возникновении такого конфликта C++ предоставляет приоритет локальной переменной. Другими словами, программа предполагает, что в случае конфликта каждая ссылка на имя соответствует локальной переменной.

Технология работы

В данной работе необходимо провести анализ переменных, используемых в программе.

Например, необходимо составить программу для вычисления значения выражения:

Проведем анализ переменных, которые необходимо будет использовать в программе.

В программе будут входные и выходные переменные (промежуточных переменных не используется).

Входными переменными являются b,c,d. Значения этих переменных вводятся пользователем с клавиатуры.

Переменные b,c,d имеют числовой тип. Также они могут иметь целочисленный тип. Однако, так как это приведет к автоматическому преобразованию результата вычисления к целочисленному типу, то целесообразно присвоить этим переменным вещественный тип (float). В этом случае вычисление будет произведено с точностью до 6 знаков после запятой.

Определим теоретический и фактический диапазон изменения входных переменных:

b – теоретический диапазон для переменных типа float (3.410-38…3.41038), совпадает с фактическим, так как на переменную b не накладывается никаких ограничений

c– теоретический диапазон для переменных типа float (3.410-38…3.41038), совпадает с фактическим, так как на переменную c не накладывается никаких ограничений

d- теоретический диапазон для переменных типа float (3.410-38…3.41038), фактический диапазон [3.410-38;0)(0; 3.41038]так как переменная d находится в знаменателе и под знаком корня.

Переменные a,b,c являются глобальными, так как в программе нет необходимости использовать функции.

Выходной переменной является a. Ее значение вычисляется в программе и выводится на экран.

Переменная a имеет числовой тип с плавающей занятой float.

Определим теоретический и фактический диапазон изменения выходной переменной:

Теоретический диапазон для переменных типа float составляет (3.410-38…3.41038)

Определим нижнюю границу фактического диапазона:

Определим верхнюю границу фактического диапазона:

Таким образом, верхняя граница фактического диапазона для переменной а превышает установленные теоретические значения.

Переменная а будет являться глобальной, так как нет необходимости использования в программе отдельных функций.

Составим таблицу анализа переменных для программы:

Имя переменной

Тип данных

Область видимости

Входная /выходная /промежуточная

Диапазон данных теоретический

Диапазон данных фактический

Исключения

a

float

Глобальная

Выходная

(3.410-38…3.41038)

(3.410-38…3.41038)

нет

b

float

Глобальная

Входная

(3.410-38…3.41038)

(3.410-38…3.41038)

нет

c

float

Глобальная

Входная

(3.410-38…3.41038)

[3.410-38;0)(0; 3.41038]

Возникновение ошибки при вводе отрицательного значения или значения, равного нулю

d

float

глобальная

Входная

(3.410-38…3.41038)

-3,71019…3.71057

Ограничение фактического диапазона

1 В С для записи вещественных чисел используется только точка