Форум программистов, компьютерный форум CyberForum.ru

Определить целое число или нет - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Матрица с случайными значениями http://www.cyberforum.ru/cpp-beginners/thread878954.html
Доброго времени суток ! Программа запрашивает размеры матрицы, после этого запрашивает верхнюю границу матрицы, и заполняет её случайными величинами. Как реализовать вычисления: 1) произведения элементов тех строк, которые не содержат ни одного нулевого элемента; 2) максимум среди сумм элементов диагоналей, параллельных главной диагонали. Заранее спасибо, всем кто поможет разобраться !...
C++ Шаблоны #include <iostream> using namespace std; template <class T> class Vector{ int size; int capacity; T* data; public: Vector(int=1); http://www.cyberforum.ru/cpp-beginners/thread878953.html
C++ Однонаправленный список типа "Очередь". Поменять элементы местами
Всем привет. Есть такая вот задачка: Поменять местами наибольший среди отрицательных и наименьший среди положительных элементов очереди. Как я понимаю,доступ к элементам очереди можно осуществлять только в той последовательности,в которой они были добавлены в эту же очередь? Подкиньте пожалуйста идей как решить задачу,а то ничего на ум не приходит( . (Код не нужен,только идеи) ...
C++ Сортировка списка
Народ нужна помощь :) Элементы списка представлены следующим образом: class Node { public: char *name; Node *next; Node() {
C++ Месяц и квартал http://www.cyberforum.ru/cpp-beginners/thread878904.html
Задано целое число N (1 ≤ N ≤ 12), которое определят номер месяца в году. По заданному значению N выведите название квартала, к которому принадлежит месяц. Входные данные Единственное число - номер месяца в году. Выходные данные Единственная строка, в которой расположено название соответствующего квартала. Выведите First для первого квартала, Second - для второго, Third - для...
C++ Очередь на основе массива Есть код) помогите переделать его под очередь на основе массива =) еще кто знает как перенести функцию вывода print() в дружественную функцию класса так как сказали мне что тип нельзя сделать как метод класса вывод очереди #include <stdlib.h> #include <iostream> #include <conio.h> #include <math.h> #include <stdio.h> #include <locale.h> #include <windows.h> подробнее

Показать сообщение отдельно
Nick Alte
Эксперт С++
1590 / 982 / 115
Регистрация: 27.09.2009
Сообщений: 1,897
Завершенные тесты: 1
26.05.2013, 12:52     Определить целое число или нет
Всё это элементарная математика. Допустим, шаг изменения одна сотая: 0.01, а целыми мы считаем числа, чья дробная часть не превышает шага (например, целыми считаются 12.000001 и 12.00999). Тогда мы просто "сдвигаем" десятичную точку:
C++
1
2
3
4
bool isInteger(double value)
{
    return fmod(value * 100, 100) < 1;
}
Для произвольного шага мы можем обобщить эту функцию таким образом:
C++
1
2
3
4
bool isInteger(double value, double step)
{
    return fmod(value / step, 1 / step) < 1;
}
Если же нас интересует интервал на полшага вправо и на полшага влево от идеально целого числа (то есть, в нашем примере мы отнесём к 12 числа в промежутке от 11.995 до 12.004(9)), то достаточно сдвинуть наше значение на полшага:
C++
1
2
3
4
bool isInteger(double value, double step)
{
    return fmod((value + step/2) / step, 1 / step) < 1;
}
Однако же обычно в таких ситуациях действуют иначе: организуют приращение на целочисленном счётчике, а вещественный параметр вычисляют как функцию от счётчика:
C++
1
2
3
4
5
6
7
8
const double start_value = 5, step = 0.01;
for(unsigned int i = 0; i < 100500; ++i)
{
    const double num = start_value + step*i;
    do_something(num);
    if(i%100 == 0)
        cout << num << endl;
}
 
Текущее время: 07:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru