C++

Типы данных и их модификаторы

В общем случае программа C++ состоит из нескольких блоков или частей. С некоторой натяжкой можно утверждать, что таких частей четыре. При этом обязательными являются только первый и третий блоки: программа содержит блок подключения файлов и главный метод main ().

Структура программы в C++

  1. Блок заголовков программы. Обычно в этом блоке с помощью инструкции #include подключаются внешние файлы;
  2. Блок с объявлением классов (базовых и производных), прототипами и объявлениями функций;
  3. Главный метод программы: каждая программа имеет такой метод. У метода стандартное название main()
  4. Блок с описанием функций (прототип которых указан во втором блоке).

Ввод-вывод данных

Для начала давайте рассмотрим простой пример. И нет, это не будет всеми любимый «Hello World!». В первом же примере мы будем считать.

Задача: Даны переменные a и b. Необходимо найти их сумму и вывести в консоль.

Для полного понимания, будем делать в лоб, без оптимизации кода, а уже после оптимизируем.

#include
using namespace std;

int main() {
int a; // Объявляем переменную a
int b; // Объявляем переменную b
cin >> a; // Вводим переменную а с клавиатуры
cin >> b; // Вводим переменную b с клавиатуры
int c; // Объявляем переменную с
c = a + b; // Находим сумму
cout << c << endl; // Выводим ответ return 0; }

Решений у этой задачи может быть очень много, кто-то напишет так, как мы только что это сделали, а кто-то уместит данный код в 3 строчки.

Давайте попробуем это сделать.

Первым делом давайте подумаем, а нужна ли нам переменная «C»? По сути нет. Мы с легкостью можем исключить ее и записать решение в cout.

Упрощение задачи

Мы сделали наш код проще и сократили его на целых 2 строчки. Разве от этого он стал непонятней? Думаю, нет.

Теперь давайте подумаем, а можем ли мы еще больше сократить число строк? Можем. Давайте объявим переменные «a» и «b» в одну строчку. C++ нам этого делать не запрещает.

Упрощение задачи

Логически можно догадаться, что раз мы имеем право объявить переменные в одну строку, то и получить значение мы так же можем в одной, вместо двух.

Упрощение задачи

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

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

Давайте закрепим.

  1. cin – при помощи этой команды мы вводим значения. Мы уже разобрали на примере, что если мы пишем cin, а затем >> (больше, больше) значение, даем понять программе, что сейчас последует ввод каких-то данных;
  2. cout – при помощи этой команды мы выводим результат. Это мы так же увидели в примере, cout, а затем << (меньше, меньше) значение, даем понять программе, что ей необходимо вывести.

Какие данные можем вводить?

  1. Число; (пока только число)

Какие данные можем выводить?

  1. Число, например, 5;
  2. Переменная, например, а;
  3. Выражение, например, a + b;
  4. «Строка», например, «Привет мир!»;
  5. \n;
  6. \t;
  7. \b;
  8. endl.

Как объединить cout?

Можно сделать последовательно, выводить cout один за другим, но это не всегда удобно. Поэтому можно объединять:

Объединение нескольких cout в один

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

cout с endl

Обратите внимание, что «endl» нигде не вывелось. Endl – это сокращение от end line. По-русски – перенос строки. Если бы мы не поставили endl в конце, то увидели вот такую картину.

cout без endl

Целочисленный тип данных

Все что находится внутри компьютера, представляется целыми числами. Он не умеет работать с дробными числами. И когда вы видите, например, вы посчитали на калькуляторе и получилось дробное число. Это fake. Это надстройка, которая целые числа превращает в дробные в виде отображения.

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

Как это устроено?

Int – от английского integer – целое число. Обычно записывается так – int a; сам по себе он занимает 4 байта в оперативной памяти. Кажется мало? На самом деле так и есть, но если программа будет очень большой и сложной, то нагрузка на оперативную память может занимать и мегабайты, и даже гигабайты. Например, Photoshop. Если вы рисовали в нем что-нибудь, то прекрасно знаете, как много памяти эта программа перетягивает на себя.

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

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

  1. short;
  2. long, он же int;
  3. long long.

Для чего нужны модификаторы типа?

Представьте, что вы открыли интернет магазин, в котором всего 100 товаров. Для того чтобы сберечь ценные ресурсы сервера, вам не нужен модификатор типа int. Достаточно будет модификатора типа short. Он будет отлично работать на маленьком количестве товаров. Но со временем ваш магазин вырос и имеет 50.000 товаров, в этом случае модификатор short не подойдет, нам потребуется переменная типа int. Так как она вмещает в разы большие числа. И вот ваш большой магазин вырос до совсем гигантских размеров и данные уже не помещаются в модификатор int. Тогда вам на помощь придет модификатор типа long long.

Таблицу значений типов вы можете увидеть ниже.

Еще могут использоваться дополнительные модификаторы;

  1. signed (знаковый) – значение по умолчанию, его можно не писать;
  2. unsigned (без знаковый);

При их помощи, мы можем сказать, что внутри этой переменной мы храним только положительные числа (unsigned), или, как положительные, так и отрицательные числа.

Для чего нам нужны дополнительные модификаторы?

Например, мы знаем, что в нашей переменной никогда не будет храниться более 60.000 каких либо значений. При этом нам также доподлинно известно, что в нем никогда не будет отрицательных значений. Но 60.000 значений не влезут в тип short. Нам придется использовать тип int? Нет. Мы легко можем использовать вот такую конструкцию unsigned short. И наша программа будет замечательно работать.

Таблица значений целочисленного типа данных

Решение задач

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

  1. Определить формулу, по которой вы будете решать;
  2. Определить переменные, которые нам необходимы для решения;
  3. Определить типы переменных;
  4. Объявить переменные;
  5. Ввести входные данные;
  6. Перевести нашу формулу в код и записать ее;
  7. Вывести ответ;
  8. Завершить программу.

Магазин канцелярских товаров на С++

Условие задачи - магазин канцелярских товаров

Решение задачи - магазин канцелярских товаров на си++

Гулливер на C++

Условие задачи - Гулливер

Решение задачи Гулливер на Си++

Журавлики на C++

Условие задачи - Журавлики

Решение задачи Журавлики на Си++

Видео по теме урока

Tags

Related Articles

Leave a Reply

Back to top button
Close