LINUX.ORG.RU

Сообщения kozlik_kozlik

 

Qt Creator под XP

Форум — General

Имеется exe-файл для установки SDK версии 1.2.1. Мне нужен только Qt Creator для написания простеньких программ на C++.

При установке был выбран MinGW, Qt Creator там по-любому ставится по умолчанию, остальные галочки были сняты.

В результате пытаюсь создать проект и получаю следующее:

Подходящие профили Qt не найдены. Добавьте профиль в Инструменты-Параметры или через инструмент обслуживания SDK.

Как заставить гадину пахать?

 ,

kozlik_kozlik
()

Фигня с машинным эпсилон, или Либо я дурак...

Форум — General

Эту задачку выполняют все начинающие. И вроде бы успешно, потому что задача тупая. Но у меня какая-то неожиданная чертовщина.

Так вот, берём два простеньких кода. Они настолько коротки, тупы и очевидны, что я даже не комментировал их.

Первый, работает нормально.

#include <iostream>

using std::cout;
using std::endl;

#include <iomanip>

using std::ios;
using std::setiosflags;

int main()
{
    float a, b, e;
    int counter;

    e=1.0; b=1.0; a=1.0;

    counter=0;

    do
    {
        e=e/2;
        a=b+e/2;

        counter++;
    }while (a>b);

    cout << setiosflags(ios::scientific);

    cout << sizeof(e) << endl;
    cout << "eps=" << e << endl;
    cout << "counter=" << counter << endl;

    return 0;
}

Второй, тоже вроде с виду пристойный, ещё и короче первого - казалось бы, ляпота!

#include <iostream>

using std::cout;
using std::endl;

#include <iomanip>

using std::ios;
using std::setiosflags;

int main()
{
    float a, e;
    int counter;

    e=1.0; a=1.0;

    counter=0;
    while (e/2+a>a)
    {
        e=e/2;

        counter++;
    }

    cout << setiosflags(ios::scientific);

    cout << sizeof(e) << endl;
    cout << "eps=" << e << endl;
    cout << "counter=" << counter << endl;

    return 0;
}

Оба кода написаны с помощью Qt Creator 2.0.1.

Определить машинное эпсилон с помощью первого кода для разных типов можно, меняя одно-единственное слово в тексте, ака тип переменных (ну заломало меня извращаться, пусть будет пока так). Для float первый код даёт значение эпсилон 1.19e-7, для double 2.22e-16, для long double 1.08e-19. *Голосом Малышевой* Это - нормально. НО: второй код для ЛЮБОГО типа выдаёт 1.08e-19. То бишь он какого-то хрена полосатого делает преобразование типа. Поговаривают, что в Builder то же самое. Онлайн-IDE, вот эта http://ideone.com/ , таких чудес не выдаёт, всё работает как надо. Вопрос: где и какого хрена происходит преобразование типа?

 , ,

kozlik_kozlik
()

RSS подписка на новые темы