Сравнение чисел в С++ для начинающих

В С++ важно уметь правильно выполнять сравнение чисел, да и вообще в программировании постоянно приходится сравнивать разные значения и в зависимости от результатов выполнять те или иные задачи. Задачи могут быть очень разными.
Чтобы хорошо понять этот материал, нужно уметь размышлять логически.
Например:

Что делать, если А=Б
Что делать, если А<Б
Что делать, если А>Б
Что делать, если А>= Б (Больше или равно)
Что делать, если А<=Б (Меньше или равно)
Что делать, если А!=Б (А и Б не равны)
В C++ легко использовать операции сравнения для каких-нибудь своих нужд.
Исходный код сравнения 2 чисел в C++:

Этот код достаточно прост, понять его легко. Единственное, на что хочу обратить внимание, это использование одинарных и двойных кавычек. В отличие от некоторых языков программирования, в C++ имеется существенное отличие между одинарными и двойными кавычками. Одинарные кавычки только для одиночных символов, а двойные кавычки можно использовать и для одиночных символов, и для целых строк. Каждый отдельный спецсимвол относится к одинарным, несмотря на то, что как будто бы состоит из двух: символа слеша и буквенного символа.
Первым if проверяется равенство A и B, и если значения равны: if (a==b), то на экран выводится текст, который описан вот этим кодом: cout<<a<<"="<<b;.
Примечание: (A и B могут изменяться, поэтому в коде они в кавычки не заключаются).
Абсолютно аналогичны и следующие варианты.
Для понимания описываемого далее требуется небольшой опыт, поэтому если вы только-только стали изучать С++, то можете временно пропустить ниженаписанное, вернувшись сюда позднее.
Речь пойдет о сравнении чисел для поиска целочисленного значения среди вещественных.
Иногда требуется решить задачу: Как найти целые числа среди дробных. С точки зрения представления чисел в компьютере такая задача может решаться только с какой-то погрешностью, потому что младшие разряды вещественного числа будут теряться. Я не буду вдаваться в подробности представления чисел, этого можно начитаться где угодно. Я сам не понимаю всего представления чисел, хотя стоит знать. Покажу один из вариантов решения такой вот задачки.

Первое, что я хочу отметить, использовано приведение double к int. После выполненных преобразований проверяется разность целого значения и его первоначальной, дробной, формы.

  • Из-за способа представления чисел в компьютере сравнивать число с числом напрямую нехорошо и легко словить плохой эффект, поэтому лучше использовать сравнение разности чисел.

Часто сравнивают некоторое значение с нулём или другим конкретным значением. Если само значение целое, то прямые сравнения: равенство целого с целым — оправданы, но если числа дробные, то лучше сравнивать разность.

Второе — это то, что на экране видно: числа не совсем соответствуют тем, что вероятно ожидались; Несмотря на это, при определенной точности программа дает правильные результаты.

10 комментариев на «“Сравнение чисел в С++ для начинающих”»

  1. Anonymous:

    Привет проверь этот материал оно работает но как-то не правильно(выводит лишние элементы.

    Автор сайта отвечает:
    снова вы, были опечатки "n" – это переход на новую строку. Вот я косую черту не так написал и перехода не было и n выводилось. (поправил сейчас) Если это не та ошибка о которой вы, то мне трудно угадать без явного указания выводимых лишних элементов.

  2. Gen:

    В функции void check(const double a) в 13 строке опечатка.Уберите НЕ.Должно быть .else cout<<" "<<a<<" Целое"; //Если ноль

  3. Аноним:

    Обожаю того кто оформил все это спасибо большое все получилось!!!!!!!!!

  4. Илья:

    setlocale (0, «Russian»);

    Чтобы писать по Русски =)

  5. Илья:

    #include <conio.h>
    #include <iostream.h>
    #include <stdio.h>

    using namespace std; // А то не будет компилироваться…

     

     

  6. Александр:

    Здравствуйте, Ваша инфа полезна и интересна. Спасибо.
    К теме :о нахождении целых чисел, вот такой код:

    • Лучше делать немного иначе, наверное:

      На экран выведутся те числа, которые можно считать целыми.

      Можете то же самое проделать с Вашим кодом, т. е. посмотреть для некоторого множества чисел результат, наращивая заданное число на одну тысячную.

      Но в этом варианте нужно иметь в виду, что ноль требует дополнительного вычисления.

      • Александр:

        К последнему мной написанному коду.Вам спасибо ,но я хотел,что бы числа определялись без»костылей».У учителя в конце занятия спросил.Дима упомянул ,что приведение типа,даст не точное значение.Проверил,после 10^9 дает сбой.Жаль.

  7. Александр:

    К последнему мной написанному коду.Вам спасибо ,но я хотел,что бы числа определялись без»костылей».У учителя в конце занятия спросил.Дима упомянул ,что приведение типа,даст не точное значение.Проверил,после 10^9 дает сбой.Жаль.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Поиск

 
     

Случайная книга в электронном формате

https://www.litres.ru/valeriy-faronov-6004364/turbo-pascal-7-0-uchebnyy-kurs-11649619/?lfrom=15589587
Яндекс.Метрика