Advertisement
azakharov93

lesson_struct_namepsace_function_signature

Dec 11th, 2022 (edited)
701
0
Never
1
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.24 KB | None | 0 0
  1. // !!! ССЫЛКА НА КОД: https://godbolt.org/z/frPP3KjMG !!!
  2.  
  3. #include <iostream>
  4. #include <vector>
  5. #include <cmath>
  6. #include <string>
  7.  
  8. /*
  9.  Сигнатура функции:
  10.     1. название функции:
  11.     2. типы аргументов функции (что она принимает):
  12.     3. тип возращаемого значение (что она возвращает):
  13.  
  14.  Результат:
  15.     тип_возвращаемго_значения название_функции (тип_аргумента_1, типа_аргумента_2);
  16. */
  17.  
  18. struct Vector {};
  19.  
  20. // Функция которая сравнивает длину вектора с числом и говорит больше ли длина или меньше
  21. bool check(double length, double value);
  22.  
  23. // Сумму трех векторов
  24. Vector sum_vector(Vector fisrst, Vector second, Vector third);
  25.  
  26. // Скаларное произведение черз модули и угол
  27. double scalar(double first, double second, double angle);
  28.  
  29. // Скалярное произведение двух векторов
  30. double scalar(Vector first, Vector second);
  31.  
  32. // Создать функцию которая принимает на вход два вектора, и находит длину вектора разницы между ними
  33. double length_difference(Vector first, Vector second);
  34.  
  35. // Создать функцию которая принимает на вход два вектора, и находит вектор разницы между ними
  36. Vector difference (Vector first, Vector second);
  37.  
  38.  
  39. /*
  40.     Структура:
  41.     Это ТИП ДАННЫХ, который:
  42.     - внутри себя хранит несколько других типов данных, которые описываю этот тип. Называются ПОЛЯ СТРУКТУРЫ
  43.     - внутри хранит функции которые этот тип может делать. Называются МЕТОДЫ СТРУКТУРЫ
  44.  
  45.     Например:
  46.     Тип студент
  47.         - хранит: имя, возраст, оценки
  48.         - может представить себя
  49. */
  50.  
  51. struct Student {
  52.     // Поле - имя типа строка
  53.     std::string name;
  54.     // Поле - возраст типа цлое чилсо
  55.     int age;
  56.  
  57.     // Метод - который печатает как студен прдставляется при знакомсве
  58.     void Present() {
  59.         std::cout << "Hi, my name is " << name << ". I am " << age << " years old" << std::endl;
  60.     }
  61. };
  62.  
  63.  
  64. /*
  65.     Пространство имен.
  66.  
  67.     По сути область которая ограничивает видисочсть кода внутри: функций, чисел, структур тип.
  68.     Использщуется в больших програмах чтобы объединить логически связанный код в одну область.
  69.     И чтобы избежать повторения одинаковых имен у переменных
  70.  
  71.     Пример ты знаешь пространство std - в нем есть функции cout, endl.
  72.  
  73.     Те в файле iostream (#include<iostream>) есть вот такой код (условно - для простоты):
  74.  
  75.     namespace std{
  76.         void cout();
  77.         void end();
  78.     }
  79.    
  80.     И чтобы не писатб всегда std::cout,std::endl можно написать:
  81.         - using namepspace std;
  82.         - и использовтьа cout, end без std::
  83.  
  84. */
  85.  
  86. namespace Correct {
  87.     double Pi = 3.14;
  88.  
  89.     int sum (int first, int second) {
  90.         return first + second;
  91.     }
  92. };
  93.  
  94. namespace InCorrect {
  95.     double Pi = 100.500;
  96.  
  97.     int sum (int first, int second) {
  98.         return first * second;
  99.     }
  100. };
  101.  
  102.  
  103.  
  104. int main(){
  105.  
  106.     // Структуры
  107.     Student alex;
  108.     alex.name = "Aleksei";
  109.     alex.age = 29;
  110.     alex.Present();
  111.  
  112.     // Можно вот так сделать: = {имя, возраст}. В том порядке в котором поля идут внутри структуры
  113.     Student anastasia = {"Anastasia", 18};
  114.     anastasia.Present();
  115.    
  116.  
  117.     // Пространства имен.
  118.  
  119.     // тут мы используем функцию которая в пространстве имен Correct - и праилно считает сумму
  120.     int sum_correct = Correct::sum(10, 20);
  121.     std::cout << "Correct sum = " << sum_correct << std::endl;
  122.     std::cout << "Correct PI = " << Correct::Pi << std::endl;
  123.  
  124.     // Сказать что теперь мы видем все что есть в пространстве имен Incorrect.
  125.     // Тперь можно не писать InCorrect::Pi, InCorrect::sum
  126.     using namespace InCorrect;
  127.  
  128.     // тут мы используем функцию которая в пространстве имен Correct - и праилно считает сумму
  129.     int sum_incorrect = InCorrect::sum(10, 20);
  130.     std::cout << "IN Correct sum = " << sum_incorrect << std::endl;
  131.     std::cout << "IN Correct PI = " << Pi << std::endl;
  132.  
  133.     return 0;
  134. }
Advertisement
Comments
  • azakharov93
    1 year
    # C++ 2.54 KB | 0 0
    1. // Homework: https://godbolt.org/z/Ev7hGze8a
    2.  
    3. #include <iostream>
    4. #include <vector>
    5. #include <cmath>
    6.  
    7. /*
    8.     Реализцем Vector.
    9.  
    10.     1. Создать структуру Vector представляющую вектор в 2D пространстве
    11.     2. Создать у структуры МЕТОД length - который вычисляет модуль вектора
    12.     3. Создать у структуры МЕТОД multiply - который домножает координаты x и у вектора на заданное число
    13.         Пример: вектор (1, 2) при домножении на 3 будет вектором (3, 6)
    14.     4. Создать у структуры МЕТОД print - который печатает в консоль координаты вектора в таком формате: "(x, y)"
    15.         Пример: вектор с x=3, y=4 будет распечатан как: "(3, 4)"
    16.     5. Создать функцию difference которая считает вектор равный разнице двух векторов
    17.     6. Создать функцию differenceLength которая считает длину вектора разницы двух векторов
    18.  
    19.     Реализуем Position.
    20.     1. Создать структуру Position представляющую точку в 2D пространстве.
    21.  
    22.     Реализуем SpaceBody.
    23.     1. Создать структуру, которая реализует космический объект который мы будем моделировать.
    24.  
    25.     P.S. Подумать какие поля нужны для того чтобы в каждый момент времени можно было знать положение тела
    26.     основываясь на законе всемирного тяготения.
    27.  
    28.     Если что-то не знаешь - гугли! Обычно есть ответы тут:
    29.         https://ru.stackoverflow.com/
    30.         https://practicum.yandex.ru/profile/cpp/
    31. */
    32.  
    33. /*
    34.  Сигнатура функции:
    35.     1. название функции:
    36.     2. типы аргументов функции (что она принимает):
    37.     3. тип возращаемого значение (что она возвращает):
    38.  
    39.  Результат:
    40.     тип_возвращаемго_значения название_функции (тип_аргумента_1, типа_аргумента_2);
    41. */
    42.  
    43.  
    44. int main(){
    45.  
    46.     return 0;
    47. }
    48.  
Add Comment
Please, Sign In to add comment
Advertisement