Типы данных в языке С++
Лабораторная работа 1. Типы данных в языке С++
Цель работы: изучить классификацию типов и их внутреннее представление в языке С++, научиться работать со стандартными и пользовательскими типами.
При выполнении лабораторной работы для каждого задания требуется написать программу на языке С++, которая получает на входе числовые данные, выполняет их обработку в соответствии с требованиями задания и выводит результат на экран. Ввод данных осуществляется с клавиатуры с учетом требований к входным данным, содержащихся в постановке задачи (к задачам 2 и 4 приведен рекомендуемый вид диалога во время работы программы). Ограничениями на входные данные является допустимый диапазон значений используемых числовых типов в языке С++.
Теоретические сведения.
Ознакомьтесь с материалом лекции 1.
Задания к лабораторной работе.
Выполните приведенные ниже задания.
- Найдите сумму первых трех цифр дробной части вещественного числа. Например, для числа 23,16809 она равна 15.
- Составьте программу вычисления стоимости поездки на автомобиле на дачу (туда и обратно). Исходными данными являются: расстояние до дачи (в километрах); количество бензина, которое потребляет автомобиль на 100 км пробега; цена одного литра бензина. Ниже представлен рекомендуемый вид диалога во время работы программы.
Вычисление стоимости поездки на дачу. Расстояние до дачи (км) – 67 Расход бензина (л на 100 км) – 8.5 Цена литра бензина (руб.) – 23.7 Поездка на дачу обойдется в 269 руб. 94 коп.
- Составьте линейную программу, печатающую значение 1, если указанное высказывание является истинным, и 0 – в противном случае. Величина d является корнем только одного из уравнений ax2 + bx + c = 0 и mx + n = 0 относительно х.
- Составьте программу, которая преобразует введенное с клавиатуры дробное число в денежный формат. Например, число 12,348 должно быть преобразовано к виду 12 руб. 35 коп. Ниже представлен рекомендуемый вид диалога во время работы программы. Данные, вводимые пользователем, выделены жирным шрифтом.
Преобразование числа в денежный формат. Введите дробное число – 23,6 23.6 руб. – это 23 руб. 60 коп.
Указания к выполнению работы.
Каждое задание необходимо решить в соответствии с изученными методами обработки данных и преобразования типов данных в языке С++.
Следует реализовать каждое задание в соответствии с приведенными этапами:
- изучить словесную постановку задачи, выделив при этом все виды данных;
- сформулировать математическую постановку задачи;
- выбрать метод решения задачи, если это необходимо;
- разработать графическую схему алгоритма;
- записать разработанный алгоритм на языке С++;
- разработать контрольный тест к программе;
- отладить программу;
- представить отчет по работе.
Требования к отчету.
Отчет по лабораторной работе должен соответствовать следующей структуре.
- Титульный лист.
- Словесная постановка задачи. В этом подразделе проводится полное описание задачи. Описывается суть задачи, анализ входящих в нее физических величин, область их допустимых значений, единицы их измерения, возможные ограничения, анализ условий при которых задача имеет решение (не имеет решения), анализ ожидаемых результатов.
- Математическая модель. В этом подразделе вводятся математические описания физических величин и математическое описание их взаимодействий. Цель подраздела – представить решаемую задачу в математической формулировке.
- Алгоритм решения задачи. В подразделе описывается разработка структуры алгоритма, обосновывается абстракция данных, задача разбивается на подзадачи. Схема алгоритма выполняется по ЕСПД (ГОСТ 19.003-80 и ГОСТ 19.002-80).
- Листинг программы. Подраздел должен содержать текст программы на языке программирования С++, реализованный в среде MS Visual Studio 2010.
- Контрольный тест. Подраздел содержит наборы исходных данных и полученные в ходе выполнения программы результаты.
- Выводы по лабораторной работе.
- Ответы на контрольные вопросы.
Контрольные вопросы
- Почему в языке С++ определена строгая типизация данных, используемых в программе?
- Как определяются границы диапазона базового типа в зависимости от выделяемой под этот тип памяти?
- С какой целью в С++ определен тип void?
- Какой объем памяти выделяется под переменную типа void? Какие значения может принимать переменная типа void?
- Почему наблюдается асимметрия значений границ диапазонов целочисленных типов?
- Чему будет равно значение операции инкремента для максимального числа в целочисленном типе? А каков результат декремента для минимального значения в таком же типе?
- Почему запись целых чисел нельзя начинать с незначащих нулей?
- Каким образом представлено число ноль в вещественных типах?
- Почему в С++ символьный тип считается подмножеством целочисленного типа?
- Каким образом можно инициализировать переменную перечисляемого типа?
- При преобразовании целого со знаком к целому без знака всегда ли будет получено исходное числовое значение? Ответ обоснуйте.