Всё для программиста

Глава 3
Индекс материала
Глава 3
ДАННЫЕ: ПЕРЕМЕННЫЕ И КОНСТАНТЫ
ДАННЫЕ: ТИПЫ ДАННЫХ
Целые числа
Числа с плавающей точкой
ТИПЫ ДАННЫХ В ЯЗЫКЕ СИ
Типы int, short и long
Описание данных целого типа
Целые константы
Инициализация переменных целого типа
Рекомендации
Тип данных unsigned
Тип данных char
Описание символьных переменных
Символьные константы
Программа
Типы данных float и double
Описание переменных с плавающей точкой
Резюме: основные типы данных
Резюме: как описывать простые переменные
Размеры данных
ИСПОЛЬЗОВАНИЕ ТИПОВ ДАННЫХ
ЧТО ВЫ ДОЛЖНЫ БЫЛИ УЗНАТЬ В ЭТОЙ ГЛАВЕ
ВОПРОСЫ И ОТВЕТЫ
Все страницы

Данные, язык Си и вы

int, short, long, unsigned, char, float, double sizeof

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

Эта глава в основном посвящена обсуждению двух важнейших классов типов данных целым числам и числам с плавающей точкой. Язык Си предоставляет программисту возможность использовать несколько разновидностей этих типов Мы займемся изучением следующих вопросов что такое типы данных, как их описать, как и когда их использовать. Кроме того, мы обсудим различия между константами и переменными.

Теперь, так же как прежде, пришло время рассмотреть какую нибудь простую программу. Возможно, вы обнаружите в ней какие-то непонятные места Мы постараемся разъяснить их вам при последующем обсуждении в данной главе Общий смысл про граммы должен быть достаточно понятен, поэтому попробуйте осуществить компиляцию и выполнить эту программу1) . Для экономии времени можете опустить комментарии при вводе программы в машину. (Замечание: мы включили имя программы в ее со cтав как комментарий, в дальнейшем, приводя программы, будем придерживаться этого правила ).

/*Ваш золотой эквивалент*/
/*определение стоимости количества золота, равного вашему весу*/
main( )
{
float weight, value, /* 2 переменные с плавающей точкой */
char beep; /* символьная переменная */
beep = ' /007' ; /* присваивание специального символа переменной beep */
printf(" Стоите ли вы своего веса в золотом эквиваленте? \n");
printf(" Укажите, пожалуйста, свой вес в фунтах и узнаете \n");
scanf("%f ", &weight;); /* получение данных */
value= 400.0 *weight*14,5833; /* предполагаемая цена золота -
400 долл за тройскую унцию */
/* коэффициент 14,5833 служит для перевода в тройские унции */
printf(" %c Стоимость вашего веса в золотом эквиваленте
$%2,2 f%c.\n", beep, value, beep);
printf("Bы несомненно стоите столько' Если цена золота упадет,");
printf(" ешьте больше, \n чтобы сохранить свою стоимость \n");
}

При вводе этой программы в компьютер вы можете захотеть заменить число 400.00 величиной текущей цены золота. Мы надеемся, однако, что вы не будете пускаться на обман, заменяя число 14,5 833, равное числу унций в фунте (Речь идет об унциях в тройской системе мер, применяемой при взвешивании благородных металлов, и фунтах в обычной системе мер, используемой при взвешивании всего остального). Заметим, что слова "укажите свой вес" означают, что необходимо набрать на клавиатуре число, выражающее вес, и нажать клавишу "ввод" или "возврат" (Не надо только вставать на клавиатуру!) Нажав эту клавишу, вы тем самым сообщаете компьютеру, что вы уже закончили ввод.

Данная программа имеет также некоторую незаметную на первый взгляд особенность. Чтобы обнаружить ее и понять, в чем дело, вы должны сами запустить эту программу; имя одной из переменных служит довольно недвусмысленным намеком.
Что нового содержится в этой программе?

1. По-видимому, вы уже заметили, что мы ввели описание двух новых типов переменных. До этого мы использовали только целые переменные, а теперь добавили переменные с плавающей точкой и символьные переменные, так что теперь мы можем обрабатывать данные более общего вида.
2. Мы использовали в программе несколько новых способов задания констант. Теперь мы умеем вводить в программу числа с десятичной точкой и знакомы с довольно специфическим способом представления значения символьной переменной beep.
3. Для вывода на печать этих переменных нового типа в операторе printf( ) мы использовали спецификации %f и , соответствующие переменной с плавающей точкой и символьной переменной. Модификаторы в спецификации %f применяются для улучшения вида результата на экране дисплея.
4. Возможно, самой существенной новой особенностью является то, что эта программа "диалоговая". Компьютер запрашивает У вас информацию, а затем использует число, которое вы ввели. Работать с диалоговой программой гораздо интереснее, чем с программами недиалогового типа, которые мы использовали до этого. Более важным является еще и то, что такой подход позволяет нам создавать более гибкие программы. Например, нашу программу можно использовать при задании любого веса (конечно, в разумных пределах), а не только веса в 175 фунтов. Нам не нужно переписывать программу всякий раз, когда мы захотим обработать вес еще одного человека. Функции scanf( ) и printf( ) делают это вполне возможным. Функция scanf( ) читает данные, набираемые на пульте дисплея, и вводит их в программу. В гл. 2 мы уже видели, что функция printf( ) читает данные из программы и выводит их на экран. Вместе эти две функции позволяют установить двустороннюю связь с вашей программой, что делает общение с компьютером гораздо более приятным.
В данной главе мы рассмотрим два первых пункта - переменные и константы различных типов данных. Оставшиеся два пункта мы обсудим в следующей главе, но функции scanf( ) и printf( ) будем использовать по-прежнему.