§ 1. Числовые типы данных. Ввод-вывод данных
Site: | Профильное обучение |
Course: | Информатика. 10 класс (Повышенный уровень) |
Book: | § 1. Числовые типы данных. Ввод-вывод данных |
Printed by: | Guest user |
Date: | Sunday, 19 January 2025, 11:31 PM |
Язык программирования С++
Язык C++ является компилируемым языком программирования общего назначения. Он поддерживает следующие парадигмы программирования: процедурное программирование и объектно-ориентированное программирование. Язык имеет стандартную библиотеку, которая включает в себя распространенные типы данных и алгоритмы. Язык C++ используется для разработки программного обеспечения и является одним из самых популярных языков программирования. Oн позволяет создавать операционные системы и приложения для серверов; используется для написания драйверов устройств и приложений для встраиваемых систем; на нем написано большое количество прикладных программ и компьютерных игр. Синтаксис C++ унаследован от языка C. Одним из принципов разработки языка С++ было сохранение совместимости с языком C. Существует большое количество программ, которые могут одинаково успешно транслироваться как компиляторами C, так и компиляторами C++. В языке С++ наибольшее внимание уделено поддержке объектно-ориентированного программирования. Сегодня существует большое количество различных реализаций языка C++, как бесплатных, так и коммерческих. Например, GCC, Visual C++, Embarcadero (Borland) C++ Builder и др. C++ оказал огромное влияние на развитие других языков программирования, в первую очередь на Java и C#, которые в значительной мере унаследовали его синтаксис. Сред разработки (Integrated Development Environment, IDE — интегрированная среда разработки) на C++ очень много. Наиболее известные из них представлены в примере 1.1. В первую очередь выбор IDE зависит от уровня программирования. Для новичков лучшие среды разработки — Dev-C++ или Code::Blocks. Для профессионалов подойдут CLion или Visual Studio. Также следует принимать во внимание ОС, поскольку не все среды кроссплатформенны. В электронном приложении рассматривается среда Code::Blocks. |
Язык C++ возник в начале 1980-х гг., когда сотрудник фирмы Bell Labs Бьёрн Страуструп (род. в 1950 г. в Дании) придумал ряд усовершенствований к языку C.
В язык C были добавлены классы, наследование классов, строгая проверка типов, inline-функции и аргументы по умолчанию. Ранние версии языка, первоначально именовавшегося «C with classes» («Си с классами»), стали доступны с 1980 г. До начала официальной стандартизации язык развивался в основном силами Б. Страуструпа в ответ на запросы программистского сообщества. В 1998 г. был ратифицирован международный стандарт языка C++. Последняя версия стандарта (С++17, также известный как C++1z) принята в 2017 г. Пример 1.1. Некоторые IDE для разработки программ на языке С++.
|
Среда программирования Code::Blocks
Работа со средой программирования Code::Blocks[1] начинается с создания проекта (пример 1.2). Процесс создания проекта состоит из нескольких шагов. 1. Выбор типа проекта — консольное приложение . По завершении будет создана папка, имя которой было указано в строке «Project title». В этой папке будут сохранены файлы проекта (пример 1.4). Файл с расширением cbp (Code::Blocks project) и именем, совпадающим с именем папки, — файл, содержащий описание проекта (при двойном клике по этому файлу проект будет открыт в среде Code::Blocks); файл main.cpp — файл, содержащий код на языке С++ (расширение cpp — C plus plus). Окно программы состоит из нескольких областей (пример 1.5). Полностью окно приведено в Приложение к главе 1. В среде Code::Blocks может быть одновременно создано (File → New → Project) или открыто (File → Open…) несколько проектов. Компилируется и выполняется только один — тот, который является активным. Сменить активный проект можно двойным кликом мыши по имени проекта. При компиляции программы создается выполнимый файл с расширением exe и именем, совпадающим с именем проекта. Этот файл сохраняется в папке Debug (которая создается при первой компиляции проекта). При нажатии на кнопку осуществляется запуск именно этого файла. Скомпилированный файл может быть запущен вне среды программирования.[1]Загрузить среду можно по адресу: http://www.codeblocks.org/downloads/binaries. Для ОС Windows скачать файл codeblocks-20.03mingw-setup.exe. |
Пример 1.2. Стартовая страница среды разработки Code::Blocks. Пример 1.3. Выбор папки и имени проекта. Пример 1.4. Файлы проекта. Пример 1.5. Области окна программы Code::Blocks. Запуск и компиляция программ: Список проектов (имя активного проекта выделено полужирным шрифтом): Программу перед запуском нужно скомпилировать или воспользоваться значком, объединяющим эти два процесса. Если в программу внесены изменения и она запущена без предварительной компиляции, то будет осуществлен запуск предыдущей версии программы. |
Структура программы
Программа на языке C++ состоит из функций, описаний, команд и директив препроцессора (препроцессор — программа, которая выполняет обработку файла исходного кода перед началом компиляции). При создании проекта в окне редактирования кода уже написана программа (пример 1.6). #include <iostream> Для языка С++ написано большое количество библиотек, которые содержат команды языка. Подключение библиотеки осуществляется директивой #include. Далее указывается имя библиотеки, заключенное в угловые скобки: < >. В первой строке с помощью директивы #include подключается заголовочный файл библиотеки <iostream>, который содержит необходимую информацию для управления вводом/выводом. Следующая директива using открывает доступ к пространству имен namespace std, в котором определяются средства стандартной библиотеки языка C++. Пространство имен — некоторое множество, созданное для логической группировки уникальных идентификаторов. Программа начинается ключевыми словами int main(), далее в фигурных скобках следуют команды языка. Каждая команда должна заканчиваться «;». Последняя команда — return 0; [1]. Результат работы программы отражается в отдельном консольном окне (пример 1.7). Язык С++ чувствителен к регистру используемых символов. Это означает, что команды, которые должны быть записаны строчными буквами, не будут распознаны компилятором, если их записать заглавными. |
По традиции, начавшейся в 1978 г. с примера из книги Брайана Кернигана и Дениса Ритчи «Язык программирования Си», первая программа на любом языке программирования должна просто выводить на экран приветствие миру. Строку using namespace std; можно опустить, но тогда нужно будет перед каждой командой, имя которой описано в пространстве имен std, прописывать std::. Например: std::cout << "Hello world!" << std:: endl; В больших проектах, в которых используются различные пространства имен, а не только стандартное, обычно так и поступают. В учебных проектах используется только стандартное пространство имен. Поэтому прописывается директива об использовании пространства имен std. Чувствительность к регистру относится и к именам переменных. Для компилятора С++ переменные с именами n и N — это различные переменные.
|
Команда вывода
Демонстрировать работу любой программы имеет смысл только тогда, когда она выводит какую-либо информацию. В библиотеке iostream реализована поддержка для ввода и вывода встроенных данных типов с использованием стандартных потоков[1]. Для вывода данных используется следующая команда: cout << значение; В этой команде: cout — поток, соответствующий стандартному выводу; значок << обозначает действие «поместить значение в выходной поток». Функция endl, записанная в конце команды cout, означает, что после вывода курсор будет переведен на следующую строку. Текст, который нужно вывести на экран, заключают в двойные кавычки. Этот текст не анализируется и выводится на экран в том виде, в котором он записан. Если записать текст на русском языке, то на консоли увидим непонятные символы (пример 1.8). Для корректного вывода русских символов необходима команда setlocale(0, ""); (пример 1.9). Текст в команде cout, записанный в кавычках, не анализируется. Если кавычки опустить, то производится анализ данных. Например, если написать арифметическое выражение, то сначала вычисляется его значение, а затем выводится результат. Пример 1.10. Посчитать значение выражения 2 + 2 * 2. ____________________________ [1] Подробно о назначении этих команд вы узнаете позже. Поток — это независимая последовательность инструкций для выполнения того или иного действия в программе. В одном конкретном потоке выполняется одна конкретная последовательность действий.
|
Пример 1.8. Вывод русских символов: Пример 1.9. Использование русских символов:
Результат работы программы: Поскольку русские буквы не всегда отображаются корректно, рекомендуется писать тесты по-английски или транслитом. Пример 1.10. Текст программы:
Результат работы программы: Две команды cout в программе можно объединить в одну, отделив текст от выражения знаками <<: cout << "2+2*2=" << (2+2*2) << endl; Если записать выражение в кавычках, то будет выведено само выражение. При отсутствии кавычек на экран будет выведено значение данного выражения. |
Понятие типа данных
На практике редко приходится писать программы, которые решают только одну задачу. Обычно программы пишутся для решения целого класса задач, которые можно сформулировать в общем виде. В программировании для решения задач в общем виде также используют переменные. Поскольку с такими переменными будет работать компьютер, то они должны храниться в его памяти. Информацию, представленную в виде, пригодном для обработки на компьютере, называют данными. Переменная в программировании — именованная ячейка памяти, хранящая значение переменной. Компьютер может обрабатывать данные разных типов: целые и действительные числа, символы, тексты и др. Тип данных определяет способ хранения данных в памяти компьютера, диапазон возможных значений данных и операции, которые с этим типом данных можно выполнять. Для того чтобы использовать какую-либо переменную, ее необходимо описать. Описание переменных выполняется перед их использованием и может располагаться в любом месте программы. При описании переменной выделяется память для хранения ее значения. Переменная получает значение, которое хранилось по выделенному адресу. Переменную при описании можно инициализировать (задать значение). В процессе выполнения программы значение переменной может изменяться. Формат описания переменной: <тип> <имя переменной>; Для обозначения имени переменной используются буквы латинского алфавита, цифры и знак «_». Первым символом должна быть буква или знак подчеркивания (пример 1.11). Тип данных double в языке программирования C++ позволяет работать с числами и выполнять над ними арифметические действия: сложение, вычитание, умножение и деление. Этот тип соответствует типу real в языке программирования Pascal. |
Справочную информацию о языке программирования C++ можно найти в Интернете. Одним из наиболее известных ресурсов является сайт cppreference.com. Русскоязычная версия сайта доступна по адресу https://ru.cppreference.com/ Первым языком программирования, в котором появилась возможность создавать переменные, считается Ассемблер. В 1957 г. появился язык Фортран, который позволил использовать разные числовые типы данных, необходимые для сложных расчетов: целые, вещественные (действительные) и комплексные. Язык программирования C++ поддерживает возможность работы с большим количеством разнообразных типов данных. Здесь можно найти аналоги всех тех типов данных, которые знакомы из языка программирования Pascal. Пример 1.11. Примеры описания переменных:
Диапазон возможных значений типа double задается числами в стандартном представлении от −1.7∙10308 до 1.7∙10308. Самое маленькое положительное число типа double приблизительно равно 4.9∙10−324. При вычислениях в числе хранится 15—16 цифр. В С++ кроме типа данных double могут использоваться float и long double.
Переменные типа double занимают в памяти компьютера 64 бита, float — 32 бита, long double — 80 бит. |
Операция присваивания
Одной из основных команд для обработки данных в программе является операция присваивания. Операция присваивания используется для того, чтобы:
Использовать присваивание можно следующим образом: <имя переменной> = <выражение>; В записи арифметического выражения используются знаки математических действий: сложения, вычитания, умножения, деления (пример 1.12). В языке С++ им соответствуют те же символы, что и в языке Pascal: «+», «–», «*», «/». Приоритет выполнения операций соответствует принятому в математике: сначала выполняются умножение и деление, а затем сложение и вычитание. Для изменения порядка действий в выражениях используются скобки (пример 1.13). Для записи обыкновенной дроби используется знак деления. Знак умножения опускать нельзя. Целая часть дробного числа отделяется от дробной части точкой. |
Пример 1.12. Примеры записи оператора присваивания:
Пример 1.13. Использование операции присваивания для записи математических выражений:
В С++, как и в Pascal, допустимы команды присваивания следующего вида:
a = a * 2; Команда имеет следующий смысл: из ячейки памяти извлекается значение переменной a, затем оно умножается на 2, результат записывается в ту же ячейку памяти. Старое значение переменной a будет потеряно. Команды, изменяющие значения переменной в С++, принято записывать в сокращенном виде:
Наиболее часто встречается изменение переменной на 1. Такие записи можно сокращать по-другому:
|
Ввод данных
Начальные значения переменным можно задавать не только с помощью оператора присваивания, но и вводить с клавиатуры. В этом случае, если необходимы вычисления с новым набором значений исходных данных, текст программы не нужно изменять. Для ввода данных используется следующая команда: cin >> <имя переменной>; В этой команде: cin — поток, соответствующий стандартному вводу, значок >> обозначает действие «получить из входного потока значение переменной». Если переменных несколько, их имена отделяются знаками >>. Ввод данных происходит в консольном окне, которое появляется после запуска программы. После завершения работы программы в этом же окне будет выведен результат (пример 1.14). |
Пример 1.14. Ввести два числа, найти и вывести их сумму. Текст программы:
Результат работы программы: Две переменные можно ввести с помощью одной команды: cin >> x >> y; |
Вычисление значения арифметического выражения
Пример 1.15. Даны вещественные x, y, z. Написать программу для вычисления значения выражения . Этапы выполнения задания I. Исходные данные: переменные x, y, z. II. Результат: переменная a. III. Алгоритм решения задачи. 1. Ввод исходных данных. IV. Описание переменных: все переменные, определенные для решения задачи, имеют тип double. В приведенном примере перед каждой командой ввода записана команда вывода с пояснениями о том, значение какой переменной нужно вводить. |
Пример 1.15. V. Программа:
VI. Тестирование программы. Для x = 2, y = 3, z = 1 результат должен быть следующим: VII. Проверить правильность вычислений можно на калькуляторе. |
1. Какая команда в языке программирования C++ предназначена для вывода данных? 2. Что определяет тип данных? 3. Для чего используется команда присваивания? 4. Какая команда в языке программирования C++ предназначена для ввода данных? |
1. Вводится возраст пользователя в годах. Определить возраст пользователя через 2 года.
2. Напишите программу, в которой вводятся три числа: a, b и с. Пускай первое число уменьшают в два раза, а второе увеличивают на 30, третье уменьшают на 1. Выведите измененные значения переменных.
3. Даны x, y, z. Написать программу для вычисления значения арифметического выражения.
1. 2. 3.