Типи змінних. Користувацький ввід. Cin

Ми вже знаємо, що програма може виводити нам якусь інформацію, але ж бувають ситуації коли якусь інформацію ми надаємо програмі. Наприклад, ми хочемо додати два числа, що робити в такій ситуації?

Давайте розглянемо на прикладі людини. Ми називаємо людині якесь число, вона його запам’ятовує, після чого називаємо друге число яке людина також запам’ятовує і лише тоді вона виконує дії з цими числами. Тому, нам необхідно зробити так, щоб наша програма могла запам’ятовувати інформацію.

Але тут постає інший нюанс. Програма як і людина відрізняє різні типи інформації. Наприклад, є цілим числом, символ, десятковий дріб або як їх ще називають числа з плаваючою крапкою (в мові використовують крапку, а не кому), «Привіт» текст.

Місце де зберігають інформацію в програмі називають «змінними». А все через те, що інформація може там змінюватися.

Щоб створити змінну варто діяти за правилом:


        Вказуємо_тип_змінної вказуємо_ім’я_змінної
        

Розберемося які бувають типи змінних, чим вони відрізняються та як їх використовувати (розглядаємо далеко не всі типи, а лише ті які будемо використовувати найчастіше).

int – даний тип вказує, що змінна може зберігати в собі цілі числа в межах

float – даний тип вказує, що змінна може зберігати в собі числа з плаваючою крапкою (десяткові дроби) в межах від

double – даний тип вказує, що змінна може зберігати в собі числа з плаваючою крапкою (десяткові дроби) в межах

char – знаковий тип. Цей тип вказує, що змінна може зберігати в собі символ. Лише один символ!

string – знаковий тип. Цей тип вказує, що змінна може зберігати в собі набір символів. Тобто, текст. При створенні варто вказувати (якщо використовуєте то вказувати не потрібно).

bool – логічний тип. Він має лише два значення

auto – тип змінної обирається самостійно в залежності від значення яке першим надається цій змінній.

Якщо у вашого числа є багато нулів (в кінці або по переду), то можна скористатися записом експоненти. Вираз означає таке:

Наприклад: буде означати а буде означати

Тип змінної показує яку інформацію вона в собі зберігає. Відповідно дана інформація має відповідати обраному типу. Якщо вказувати якусь інформацію в непідходящий тип, то результат може бути не передбачуваним.

Створимо свою першу змінну та розберемося які можуть очікувати нас труднощі.

    
            int main ()
            {
                //створюємо змінну типу int (ціле число)
                //ім’я змінної number_int
                int number_int;
                return 0;
            }
        
    

Варто зауважити декілька речей:

1. Ім’я змінної не починають із символів (в деяких ситуаціях використовують символ на початку) та чисел.

2. Ім’я змінної не пишуть окремими словами. Тому їх записують або через або використовують верблюжий запис, тобто, коли слова пишуть разом але нове слово розпочинається з великої літери

3. Ім’я змінної має бути змістовним. Тобто, прочитавши його ви маєте зрозуміти навіщо ця змінна потрібна та яку інформацію вона в собі зберігає.

4. Ім’я змінної не має бути надзвичайно довгим. Не потрібно робити кілометрові імена записуючи все на світі.

5. Краще за все створювати змінні безпосередньо перед їх використанням.

Отже, ми навчилися створювати змінні. Тепер розберемося як зберігати у них інформацію.

Інформацію у змінні записують за допомогою символа присвоєння Вам це знайомо зі шкільного курсу математики. Наприклад, змінна дорівнює якомусь числу Присвоювати значення змінній можна відразу при створенні, у програмі або отримувати від користувача. Також ми можемо присвоювати значення одних змінних іншим.

Якщо значення змінній надати при створенні, то це називають а якщо після створення, то

Також ми можемо переприсвоювати значення змінних, якщо це необхідно.

    
            int main()
            {
                //створимо змінну «а» та присвоюємо їй значення «5»
                int a;
                a = 5;

                //створимо змінну «b» та ініціалізовуємо їй значення «12»
                int b = 12;

                //переприсвоюємо значення змінної «а» на «17»
                а = 17;

                //Присвоюємо значення змінній «b» значення змінної «а»
                //тому, тепер, значення змінної «b» буде «17»
                b = a;

                return 0;
            }
        
    

Ми можемо виводити значення змінних на екран. Для цього в методі необхідно вказати ім’я цієї змінної. Пам’ятаємо, що текст ми беремо в подвійні лапки, а ім’я змінних вже має бути без лапок.

Не забуваємо додати рядок

    
            #include <iostream>
            int main()
            {
                //створимо змінну «а» та присвоюємо їй значення «5»
                int a;
                a = 5;
                //виводимо значення змінної «а»
                std::cout << a << std::endl;

                //створимо змінну «b» та присвоюємо їй значення «12»
                //виводимо значення змінної «b»
                int b = 12;
                std::cout << b << std::endl;

                //переприсвоюємо значення змінної «а» на «17»
                а = 17;
                //виводимо значення змінних «а» та «b»
                //щоб ці значення не «склеїлися» ставимо між ними пробіл
                std::cout << a << " " << b << std::endl;

                //Присвоюємо значення змінній «b» значення змінної «а»
                //тому, тепер, значення змінної «b» буде «17»
                b = a;

                return 0;
            }
        
    

Змінні можна ініціалізовувати за допомогою круглих та фігурних дужок. Для цього потрібно після створення змінної записати значення у круглих чи фігурних дужках.

    
            #include <iostream>
            int main()
            {
                int a(7);
                int b{5};
                std::cout << "a = " << a << "\nb = " << b;

                return 0;
            }
        
    

Ми можемо отримувати значення (інформацію) від користувача. Для цього варто скористатися методом (де означає мову програмування а означає Тобто, ми можемо перекласти це як

Для того щоб скористатися цим методом нам потрібно вказати по переду (якщо ви використовуєте то вказувати не потрібно). Далі записати та два знаки більше (вони будуть показувати в яку саме змінну ми поміщаємо інформацію). Після чого вказуємо ім’я змінної куди зберігатимемо отриману інформацію та завершуємо все крапкою з комою


        std::cin >> ім’я_змінної;
        

Наприклад:

    
            #include <iostream>
            int main()
            {
                int a;
                std::cout << "input number" << std::endl;
                std::cin >> a;
                std::cout << "a = " << a;

                return 0;
            }
        
    

Якщо ви запустите дану програму, то помітите, що після виводу програма немов зависає. Це все тому, що вона очікує інформації від користувача. Вам необхідно вказати (ввести) якесь число (оскільки тип змінної є тобто ціле число, то і ціле число варто вказувати) та натиснути Після цього програма збереже введене число у змінну

Розберемося які підводні камені можуть вас очікувати.

Перший з підводних каменів це тип інформації яку ви передаєте у програму. Дана інформація має відповідати типу змінної в яку вона зберігатиметься. Наприклад, якщо у вас змінна є типу число, а ви передаєте символ, то програма може або відразу видати помилку або працювати не коректно.

Другий підводний камінь заключається у вигляді вводу. Програма зчитує всю інформацію яку вказав користувач але, якщо є пробіли, то програма вважатиме це як два різні вводи.

Запустіть наступну програму та вкажіть через пробіл два цілі числа.

    
            #include <iostream>
            int main()
            {
                int a, b;
                std::cout << "input number" << std::endl;
                std::cin >> a;
                std::cout << "input number" << std::endl;
                std::cin >> b;
                std::cout << "a = " << a << std::endl << "b = " << b;

                return 0;
            }
        
    

Як помітно програма нам навіть не дає вказати друге число. Бо при першому вводі вона отримала два числа через пробіл і вважала, що це два різні вводи. Число вона зберегла у змінній а число залишила в пам’яті щоб використати коли зустріне наступний Коли ж програма побачила другий то вона зберегла значення у змінну

Це може бути одночасно небезпечним та корисним. Небезпечним, якщо ви введете декілька виразів через пробіл хоча програма цього не передбачувала. І корисним це може бути, якщо вам потрібно вказати декілька разів якусь інформацію. Тоді можна скористатися «скороченим» записом

Припустимо, що нам в програмі потрібно відразу вказати два цілі числа, то ми можемо їх запис помістити в один Для цього необхідно лише вказувати їх через

    
            #include <iostream>
            int main()
            {
                int a, b;
                std::cout << "input number" << std::endl;
                std::cin >> a >> b;
                std::cout << "a = " << a << std::endl << "b = " << b;

                return 0;
            }
        
    

Перше число збережеться в змінну а друге відповідно в