• Как усовершенствовать (переделать) конвектор валют в С++?

    RiseOfDeath
    @RiseOfDeath
    Диванный эксперт.
    Вцелом и так пойдет (если задание, как вы сказали, на if`ы).

    А вообще из критики/рекомендаций:
    1.
    Напишите программу для перевода гривен, рублей и юаней в доллары.

    Ваша программа делает ровно наоборот - переводит из долларов в гривны/рубли/юани.

    2. Использовать вместо букв 'r'/'u'/'c' международные коды валют https://ru.wikipedia.org/wiki/ISO_4217
    Вам потребуется работа со строками. Это 100% есть где-то дальше по ходу учебника, так что просто читайте дальше, не зацикливайтесь на этом задании.

    3. Избыточно конкретно для этого задания, но для практики полезно - Сделать валюту с помощью классов.
    Как минимум нужны методы типа конвертации в строку, перегрузки операторов << >> и арифметических операторов и плюс функциями вида convertTo(std::string currencyName)
    Опять же 146% что вся вторая половина учебника про ООП, так что нет смысла тратить на это время сейчас.

    4. Ну и, на всякий случай, не используйте числа с плавающей запятой для работы с деньгами (или других сущностей, когда вам важна точность) если что-то серьезное пишете, а то, знаете-ли 0.1 + 0.2 != 0.3. В это проге это не важно, не нужно переделывать, но как минимум знать почему так происходит нужно.
    Нормальный учебник по-идее должен объяснять особенности чисел с плавающей точкой
    Ответ написан
    Комментировать
  • Как усовершенствовать (переделать) конвектор валют в С++?

    Adamos
    @Adamos
    Вы занимаетесь ерундой, вылизывая упражнение на оператор.
    Отложите оптимизации и красивости хотя бы до конца учебника.
    Сейчас, с едва начатой базой, так можно разве что нахвататься странных идей, от которых потом придется избавляться, переучиваясь.
    Ответ написан
    1 комментарий
  • Как с двумя переменными определить наименьшее и наибольшее значение, так же сумма, разность и т.д.?

    6db
    @6db
    Для данных операций хватит iostream
    #include <iostream> 
    
    
    using namespace std;
    
    int main()
    {
    	setlocale(LC_ALL, "ru");
    
    	int val1, val2;
    	cout << "Введите два целочисленных значения.\n";
    	cout << "Va1: "; cin >> val1; 
    	cout << "\n";
    	
    	cout << "Va1: "; cin >> val2; 
    
    	// Определение минимального и максимального
    	
    	if (val1<val2)
    	{
    		cout << "Наименьшее число: " << val1 << endl;
    		cout << "Наибольшее число: " << val2 << endl;
    	}
    	else {
    		cout << "Наименьшее число: " << val2 << endl;
    		cout << "Наибольшее число: " << val1 << endl;
    	}
    
    	//Сумма
    	cout << "Сумма: " << val1 + val2 << endl;
    
    	//Разность
    	cout << "Разность: " << val1 - val2 << endl;
    
    	//Произведение
    	cout << "Произвдение: " << val1 * val2 << endl;
    
    	//Частное
    	cout << "Частное: " << val1 / val2 << endl;


    Вопросы:
    Значение присваивается либо непосредственно при объявлении:
    Спойлер
    int _a = 0;
    Либо в дальнейшем по ходу работы программы:
    int _a;
    _a = 6/3;

    Переменные вводить по одиночке, ибо как видно на примере ниже, вторая так и остается заполнена мусором после ввода.
    5fc261ca697a2060353760.jpeg

    Операции можно про производить:
    • Как инициализация новой переменной;
      • Напрямую в выводе (см. код)
        • В функциях и т.п.

          Правильный ход мыслей, лучше проработать все с азов, есть хорошие уроки на Youtube по C++. Или начинать читать.
    Ответ написан
    3 комментария
  • Как с двумя переменными определить наименьшее и наибольшее значение, так же сумма, разность и т.д.?

    resolut1123
    @resolut1123
    Студент
    cin >> val1;
    cin >> val2;
    Вот эта строчка и присваивает введенные значения.
    Для такой простой программы хватит и #include <iostream>
    Стоит вернуться или пройти условия и циклы.
    А программа будет выглядеть так.
    #include <iostream>
    
    using namespace std;
    int main()
    {
    	setlocale(LC_ALL, "Russian");
    	int val1, val2;
    	cout << "Введите два целочисленных значения.\n";
    	cin >> val1;
    	cin >> val2;
    	if (val1 > val2) {                          // - делаем условие для проверки (если 1 значение больше 2, то 1- максимальное, 2 - минимальное)
    		cout << "Большее " << val1 << endl
    			<< "Меньшее " << val2 << endl;
    
    	}
    	if (val1 < val2) {
    		cout << "Большее " << val2 << endl
    			<< "Меньшее " << val1<< endl;
    	}
    	else {                                  // - если никакое из предыдущих условий не сработало, значит выводить что значения равны, так как другого не дано)
    		cout << "Значения равны" << endl;
    	}
    
    }

    Разницу можно посчитать в условии, потому что там мы уже знаем какое из них больше, что бы разница не получилась отрицательной, что бы посчитать нужно объявить переменную новую допустим
    int razn;
    razn = val1-val2;
    cout << "Разница = " << razn << endl;

    И всё остальное по такому же принципу, есть конечно уже готовые функции которые определяют максимально и минимальное, но если ты только начал изучать c++, банальные вещи должен знать как делать.
    Ответ написан
    Комментировать
  • Лучшие книги для изучении информатики с нуля?

    Psixodelik
    @Psixodelik
    Преподаватель на Hexlet
    но понял что там 80% воды, 15% бредни "академиков" написавших эти книги, и только 5% реально годной информации


    Каким образом вы это определили?

    не писать быдлокод как 90% программистов


    Смелое заявление.

    Начните с «Код. Тайный язык информатики» Чарльза Петцольда — это прекрасная книга для постижения основ информатики. Далее берите учебники по ОС, Сетям, Алгоритмам. По-последнему очень рекомендую «Грокаем Алгоритмы».
    Ответ написан
    1 комментарий