Ответы пользователя по тегу C++
  • Как ввести неопределённое количество строк С++?

    Therapyx
    @Therapyx
    Data Science
    смотря на сколько привередливый проф. Может быть реально как сказал Алексей, но
    обычно в универе такие ключевые слова как "неопределенное" означает что-то динамическое. Т.е. Вектор.
    Для самых отбитых можно сделать функцию буфера, т.е. если ветор имеет более "х" строк, то выкачать это в фаил (но не думаю, что это потребуется).
    А алгоритм в принципе простой, надо только перевести в код

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

    напиши while loop и используй сканнер, который добавляет строки в вектор до тех пор, пока к примеру пользователь не нажмет 0, где 0 будет считаться выходом из программы, т.е. break

    тут выбор, или ты сразу после добавления строки делаешь статистику, или после того как пользовательно нажмет кнопку "0" и тогда для всего вектора.
    Если же второе, то делаешь опять for loop на вектор и на каждую строку пишешь нужную обработку статистики.

    Вывод данных: тут уж проблем с статистикой из класса быть не должно.

    Проблему я вижу в другом, "я только начала изучать строки, я не знаю векторов и много еще чего"
    Как ты это писать то собираешься? Готовься к малому сну )) А выучить это надо, я думаю с такими заданиями дальше у вас будет по нарастающей. Пропустишь это - потом опустишь вообще руки.
    Конкретно с некоторыми позициями тут помогут спокойно. Писать же все... Для этого есть фриланс.
    Ответ написан
  • Как сделать покороче это условие (работа с битами)?

    Therapyx
    @Therapyx
    Data Science
    На моей сонной логике - никак.
    Представим, что каждая bRead это А, Б, С.... Выходит что:
    !А и !Б и !С и !Д и !Е, тут нету даже единой или над чем можно было бы подумать. Разве что делать незначительные перестановки.

    В данном случае можно сократить только твою задачу и кол-во параметров, но в твоем вопросе для этого уже слишком мало прикладной информации.
    Ответ написан
  • Есть ли аналог decimal типа данных в си++?

    Therapyx
    @Therapyx
    Data Science
    128-битный флоат
    Не знаю увы есть ли такое в STL, не нашел на плюсы.
    Ответ написан
  • Как обработать изменения фотографии и эталонной фотографии?

    Therapyx
    @Therapyx
    Data Science
    Sklearn - Clustering/Classification algs
    Tensorflow - Deep Learning
    Но тут надо задавать вопрос иначе, смотря какие и сколько данных есть в наличии, с помощью которых можно было бы обучить модели
    Ответ написан
    Комментировать
  • Как удалить элемент массива?

    Therapyx
    @Therapyx
    Data Science
    Никак, ты выделяешь статичную память для 1000 элементов типа "х". Если использовать сторонние библиотеки, это лишь дает вид, что такая операция делается в 1 строку. Чтобы потом сдвинуть последующие елементы назад, надо итерировать весь массив. Чтобы сделать его на 1 меньше, надо выделять новую инстанцию памяти под этот массив и копировать старые элементы в него.

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

    std::vector<int> array;
    array.erase(array.begin() + 400);


    Хоть тут по сути и происходит тоже самое, что я описал выше. Но для этого есть соотвествующие методы в STL
    Ответ написан
    Комментировать
  • Как увеличить точность double C++?

    Therapyx
    @Therapyx
    Data Science
    Не совсем корректно поставлен вопрос, тем что тебе нужно - ты понижаешь точность.
    У float 23 мантисы, у double 52. Теоритически дабл имеет двухкратную точность в сравнении с float.

    C++ жестче округляет значения

    Это как понимать?

    У тебя может быть до 16 чисел после запятой - это уже сильно округленно. Поставь себе конкретно вопрос - сколько именно чисел после запятой ты хочешь видеть в итоге? На столько и округляй.
    Если же отвечать конкретно на формулировку твоего вопроса, а именно "как повысить точность", то 1 из ответов был бы long double
    Ответ написан
    2 комментария
  • Как правильно чистить память в c++?

    Therapyx
    @Therapyx
    Data Science
    Когда речь идет о выделении памяти, т.е. создании динамических массивов или просто указателей на блоки памяти. То выглядит это следующим образом:
    int size = ...
    int *array = new int[size];

    или

    int* p = NULL;
    p = new int;

    замень, тут всегда идет указатель на выделенный блок памяти.
    Соотвественно и деструкторе для массивов идет
    delete [] array;
    или delete p;

    В твоем примере
    Polynomial::Polynomial(int stepen)
    {
      deg = stepen;
      data = new int[deg + 1];
      for (int i = deg; i >= 0; i--) data[i] = 0;
    }
    
    Polynomial::~Polynomial()
    {
      delete[] data;
    }

    все вроде бы верно, при условии, что дата это указатель, который декларирован где-то в классе заранее.
    Ответ написан
    Комментировать
  • Как вывести последние n элементов map?

    Therapyx
    @Therapyx
    Data Science
    #include <iostream>
    #include <string>
    #include <map>
    
    using namespace std;
    
    int main() {
    
      map<string, int> m_test;
    
      m_test.insert(pair<string, int>("A", 100));
      m_test.insert(pair<string, int>("B", 200));
      m_test.insert(pair<string, int>("C", 300));
      m_test.insert(pair<string, int>("D", 400));
      m_test.insert(pair<string, int>("E", 500));
    
      map<string, int>::iterator iter;
    
      iter = m_test.end();
      int lastValues = 3;
      while (lastValues != 0) {
    	  iter--; lastValues--;
    	  cout << iter->first << ", " << iter->second << endl;
      }
    
      system("pause");
      return 0;
    }
    Ответ написан
    Комментировать
  • Путь далее. С++ или ...?

    Therapyx
    @Therapyx
    Data Science
    В универе ты должен научиться программировать. Синтаксис дело вторичное. Если ты научишься этому - то перейти на другой язык у тебя не составит труда. Метаться из крайности в крайность себе дороже. Делай все для универа, а в свободное время пробуй другие технологии.
    - Никто тебе не даст ответа "что лучше", такого понятия не существует. Попробуй все интерисующее и скажи себе - что для тебя лучше.
    Иначе же читай в интернете статьи по сравнениям различных языков. Но опять же с холиварами по сути айос вс андроид. Если тебе такое интересно - то их в интернете море и еще ведро сверху
    Ответ написан
    Комментировать
  • Как определить длину числа с нуля?

    Therapyx
    @Therapyx
    Data Science
    Программа и так поймет, что 01 это 1. Int числа хранятся в бинарном формате 1 = 0001, 2 = 0010, 3= 0011....8 = 1111
    Если же тебе надо просто выводить на экран имея первый ноль, то используй std::setwidth и std::setfill.

    int digit = 1; 
    std::cout << std::setwidth(2) << std::setfill('0') << digit ;

    output >>>>>> 01

    или же второй вариант, принимать 01, 02, 03 типом string.
    Ответ написан
    Комментировать
  • Как заполнить массив в c++?

    Therapyx
    @Therapyx
    Data Science
    зачем? Если у тебя есть массив и он должен заполняться определенными константами, то лучше это делать через вектор. Тем более если не определено сколько их должно быть. Логичнее было бы использовать что-то вроде этого:
    struct package {
     int status = 1;
    vector <byte> data;
    }
    int main(){
    byte arr = {0x01, 0x02, 0x03};
     package pkg;
     for (byte u : arr) {
     pkg.data.push_back(u)
    }
    }

    тем самым заготовки массивов, будут заполнять контейнер в стракте.
    после чего выводи на экран
    for (auto a : pkg.data) {
      cout << a << endl;
    }

    мб где-то ошибся)) не компайлил... Такой подход как у тебя лучше не использовать.
    Ответ написан
    Комментировать
  • Софт для автоматического построения uml?

    Therapyx
    @Therapyx
    Data Science
    Вообще вроде Magicdraw может это делать(из того, что я знаю), но никогда такого не приходилось делать, т.к. как обычно делают наоборот ))
    А так стало интересно, покапался в инете, люди пишут, что вот эта прога хорошо с этим справляется www.eclipse.org/MoDisco
    еще 1 www.class-visualizer.net но на скрине далеко не классовая диаграмма, так что хз )
    Для жавы вообще куча плагинов есть.
    Для си шарпа даже в Вижуал Студио "Ultimate" есть такая функция.
    Ответ написан
    Комментировать
  • Автоматическое создание UML по коду C++ ?

    Therapyx
    @Therapyx
    Data Science
    Astah UML очень нравилась, сейчас приходится работать с MagicDraw. Но это платные проги, но все мы знаем, что есть и другие пути)
    Ответ написан
    Комментировать
  • Как очистить указатель - C++?

    Therapyx
    @Therapyx
    Data Science
    stackoverflow.com/questions/13223399/deleting-a-po... это?
    Решением описали:
    myPointer = new int;
    delete myPointer;
    myPointer = NULL;
    Ответ написан
    1 комментарий
  • Есть ли в C++ готовые решения для реализации метода toString?

    Therapyx
    @Therapyx
    Data Science
    #include <string>
    ....
    to_string(); есть уже с с++11.


    Или вы про другое? ))
    Ответ написан
    1 комментарий