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

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

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

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

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

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

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

Второе — это то, что на экране видно: числа не совсем соответствуют тем, что вероятно ожидались; Несмотря на это, при определенной точности программа дает правильные результаты.
Все комментарии на сайте проверяются, поэтому ваш комментарий может появиться не сразу. Для вставки кода в комментарий используйте теги: [php]ВАШ_КОД[/php]

5 комментариев: Сравнение чисел в С++ для начинающих

  • Anonymous говорит:

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

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




    0



    0
  • Gen говорит:

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




    0



    0
  • Аноним говорит:

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




    0



    0
  • Илья говорит:

    setlocale (0, «Russian»);

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




    0



    0
  • Илья говорит:

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

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

     

     




    0



    0

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

Ваш e-mail не будет опубликован.

Поиск

 
     

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

Яндекс.Метрика
НАГРАДИ АВТОРА САЙТА
WEBMONEY
R375024497470
U251140483387
Z301246203264
E149319127674

Демотиватор

Выражаю свою признательность

  • Максиму очень признателен за указание на мои ошибки и неточности.
  • Sergio ===> за оказание помощи в исправлении моих ошибок
  • Gen ===> за правильное стремление помочь другим новичкам и выявления моих ошибок