SkillBase

Занятие 14.10.2024

Введение в C++. Основы языка. Основные типы данных. Условия и циклы. Основные операторы.

Содержание

  1. Стандрат Ввод-вывод в консоль
  2. Типы данные
  3. Условия и операции
  4. Циклы
  5. Задачи



Стандрат Ввод-вывод в консоль

Изначальная суть программирования - вычисление/решение заадчи пользователя. Взаимодействие с пользователем требует наличие некоторых базовых конструкций и принципов.

Для работы с вводом-выводом информации в консоль в C++ есть стандартные библиотеки. iostream - является самой популярной и простой в освоении.

Здесь iostream не что иное, как сокращение - input output stream, где input/output - ввод/вывод, а stream - трансляция или поток. Другими словами мы транслируем информацию из одного места в другое.

Пример использования:


// подключаем библиотеку для работы с консолью
#include <iostream>

// подключаем пространство имен std.
// std - скоращение от standart.
using namespace std;

// главная функция, которая вызывается при запуске программы
int main(){

    cout << "Hello, world" << endl;

    return 0;
}

Здесь мы можем видеть несколько непонятных методов:

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

Используя using namespace программа самостоятельно подставит std перед требующими этого методами.

std от standart (стандартный)


cout - соращение от console output. Используется для вывода информации в консоль.

endl - соращение от end line. Используется для переноса текста на новую строчку. Экивалетная запись переносу строки \n. (endl = “\n”)

Помимо тех используемых есть функция ввода данных:

cin - сокращение от console input. Используется для ввода инфомрации в консоль. Пример:


#include <iostream>

using namespace std;

int main(){

    // будем записывать сюда
    int a;

    // производим считывание
    cin >> a;

    // выводим только что введеную переменную
    cout << a;

    return 0;
}

Типы данных

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

Переменные в C++ необходимо объявлять (т.е создавать) непосредственно до использования. При чем C++ является строго типизированным языком программирования, т.е не получиться объявить переменную целочисленного типа данных, а записать в нее строку. Основные типы данных в C++:

Беззнаковые целые типы

Условия и операции

Условие - это простейшая конструкция, при которой действия выполняются только в том случае, если выражение внутри скобок вернуло true. Вот пример:


#include <iostream>

using namespace std;

int main(){

    int num;

    cin >> num;

    if (num > 0){
        cout << "Число положительное.";
    }  else if (num == 0){
    
    cout << "Число оказалось равно 0!" << endl
        }
    else{
        cout << "Число отрицательное.";
    }

    return 0;
}

В этом примере мы вводим число num с клавиатуры, а далее проверяем, положительное оно, отрицательное или вообще 0!

После того, как мы ввели наше num, воспроизводиться условие:

Касательно операций в C++, то тут все максимально просто:

Определение Описание
< Меньше
> Больше
== Сравнение
!= Логическое неравенство (не равно)
&& Логическое И
|| Логическое ИЛИ

Циклы

Циклы в программировании используются для выполнения повторяющихся операций или обработки коллекций данных.

Обычно существует 2-3 вида циклов в языке программирования (но может быть и больше). Вот несколько из них:

Цикл for

Как правило цикл for используется в программах тогда, когда нам известно кол-во иттераций. К примеру нужно пройтись по всем эллементам массива и найти из них самый большой. Или же нужно вычислить сумму всех чисел в массиве/строке и т.д. Даже банально вывести все числа от 0 до 10.

Пример использования цикла for:


#include <iostream>

using namespace std;

int main(){

    // строим тело цикла
    // Пусть i - переменная типа int, которая изначально приравнена к 0
    // Каждую иттерацию к ней будет прибавляться 1 (операция инкремента i++)
    // Продолжаться это будет до тех пор пока i<=10
    for (int i=0; i<=10; i++){
        cout << i << endl;
    }

    return 0;
}

В этом примере мы проходимся выводим все числа от 0 до 10 включительно. Здесь достаточно понимать, что после окончания тела цикла к i прибавиться 1 каждый раз автоматически.

Пример работы цикла for при работе с массивами:


#include <iostream>

using namespace std;

int main(){
    // этого пока не было, но будем считать, что так задается массив целых чисел в C++
    int ls[5] = {0, 3, 16, 1, 7};

    // считаем размер массива
    int size = size_of(ls)/size_of(int);

    // проходимся по индексам всего массива
    for (int i=0; i<size; i++){
        // выводим каждый i-й эллмента массива
        cout << ls[i] << endl;
    }

    return 0;
}

Есть еще один способ пройтись по эллементам маасива в C++. Дело в том, что счиатеся (условно), что существует некий цикл for-each:


#include <iostream>

using namespace std;

int main() {
    int arr[] = {1, 2, 3, 4, 5};

    // считаем размер массива
    int size = sizeof(arr) / sizeof(arr[0]);

    // Проходим по каждому элементу массива
    for (int element : arr) { 
        // Выводим элемент
        cout << element << endl;
    }

    return 0;
}

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

Цикл while

С цилом while все совсем не так просто, как с циклом for, но тут тоже нет ничего особо сложного.

Цикл while мы используем, когда мы не знаем или не уверены в кол-ве иттераций цикла. Зачастую while используется во всяких алгоритмах или вечных циклах.

Пример использования while:


#include <iostream>

using namespace std;

int main() {
    
    // задаем точку отсчета
    int i=0;

    // строим тело цикла
    while (i < 100){
        // выводим переменную i
        cout << i << endl;

        // обязательно изменяеем переменную i
        // автоматически, как с циклом i она не измениться
        i++;
    }

    return 0;
}

В этом примере мы выводим переменную i 100 раз, каждый раз в конце прибавляя 1 к переменной. Если этого не делать, то получиться так, что условие в цикле никогда не прекратится и while будет выполняться бесконечно

Цикл do-while

Цикл do-while в C++ используется для выполнения блока кода как минимум один раз, а затем продолжает выполнение цикла, пока заданное условие истинно. Это полезно, когда необходимо выполнить действие перед проверкой условия.

#include <iostream>

using namespace std;

int main() {
    int number;

    do {
        cout << "Введите число (0 для выхода): ";
        cin >> number; // Ввод числа
        cout << "Вы ввели: " << number << endl; // Вывод введенного числа
    } while (number != 0); // Условие продолжения цикла

    cout << "Выход из программы." << endl;

    return 0;
}

Задачи

  1. Вывести все простые числа до N (вводится с клавиатуры). Простое число - это число, которое делиться без остатка на себя и на 1 (само по себе число 1 не является простым).

  2. Вывести N-е число из последовательности Фибоначи. N вводится с клавиатуры. Последоватность Фибоначи - это такая последоватность, в которой каждый элемент равен сумме двух предыдущих в этой последовательности (пример: [0, 1, 1, 2, 3, 5, 8, 13, …])

А дальше что там еще было - я не помню 😅.





21.10.2024