Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник Моя первая программа на С++.docx
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
6 Мб
Скачать
☆

Типы данных и функции

Тип, присвоенный константе или переменной, определяет то, каким образом функции могут их использо- вать. Большинство функций может использовать в качестве параметров только данные определенного ти- па. Например, функция puts() может работать только со строками, так что при компиляции программы

#define PI 3.14

main()

{

puts(PI);

}

будет возникать ошибка. Функция puts() не может работать с вещественными числами.

Распространенной ошибкой начинающих программистов является использование двойных кавычек при попытке определить символьную константу:

#define INITIAL "A"

Си воспримет определение как попытку задать строковую константу, и вы получите ошибку компиляции, когда попробуете использовать эту константу при вызове функции, требующей в качестве параметра дан- ные типа char. Даже один символ, заключенный в двойные кавычки, рассматривается Си как строка.

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

Литералы

Литералом* называется любой элемент данных, который вводится непосредственно в инструкции языка Си. Литералом может являться любое число, символ или строка, которые вы вводите как начальное зна- чение переменной. В примере:

count = 5;

число 5 является литералом. Это означает, что вы хотите, чтобы именно это число было присвоено пере- менной в качестве ее значения. В примере:

#define INIT 'C' rate = 0.55; client = "Кейт";

puts("555-1234");

буква C, число 0.55, слово Кейт и телефонный номер 555-1234 являются литералами.

Проектирование программы

Данные имеют огромное значение для программы на языке Си. Если перед тем как писать программу вы не решите как именно будете использовать данные, вероятность ошибок компиляции и выполнения вы- растет во много раз.

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

Фактически, многие программисты начинают писать план программы именно с вывода. Определив, какую именно информацию вы хотите получить от программы, легче определить, какую информацию необходи- мо ввести и как ее следует обрабатывать.

Давайте для примера рассмотрим программу, которая рассчитывает налог на продажи. Вот последова- тельность шагов определения необходимых констант и переменных.

    1. Решить, какая информация необходима программе:

      • Вывод— объем всех продаж плюс налог на продажи.

      • Для того чтобы получить эту информацию, необходимо ввести: стоимость каждого наиме- нования товара и ставку налога. Стоимость товара считается в долларах, следовательно, необходимо определить переменную типа float. Ее можно назвать sale. Ставка налога явля- ется для каждого штата фиксированной величиной, так что ее можно определить как кон- станту. Назовем ее TAX_RATE.

      • Программа должна умножить стоимость товара на ставку налога. Например, если цена рав- на 25.00 доллара, а ставка налога равна 0.05, величина налога на продажи составит 1.25 доллара. Для хранения этого значения нужна переменная типа float. Назовем ее sales_tax.

      • Программа должна прибавить сумму налога к цене товара для того, чтобы получить стои- мость с учетом налога. В нашем примере эта стоимость равна 26.25 доллара. Для хранения этого значения необходима переменная типа float. Назовем ее total.

    2. Написать директивы #define для определения необходимых констант: #define TAX_RATE 0.05

    1. Написать определения переменных: float sale, sales_tax, total;

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

  • В литературе чаще используется термин «константное выражение». (Прим.перев.)

Вопросы

  1. Что такое тип данных char?

  2. Чем символ '3' отличается от числа 3?

  3. Какой тип данных вы используете для записи стоимости товара в долларах?

  4. Почему может быть необходимо использование в программе типа данных long int?

  5. Для чего используется тип double float?

  6. В чем заключается различие между константой и переменной?

  7. Как определить константу?

  8. Поддерживает ли Си строковый тип данных?

  9. Сохраняет ли переменная свое значение в ходе выполнения всей программы?

  10. Как изменить значение константы?