示例#1
0
bool AdditionConfigFrame::applyConfig()
{
    int largestNumberFirst = ui->largestNumberFirstCheckBox->isChecked();

    QString str = ui->minNumberLineEdit->text();
    BigFixedPoint firstMin(str.remove(QLocale::system().groupSeparator()));

    str = ui->maxNumberLineEdit->text();
    BigFixedPoint firstMax(str.remove(QLocale::system().groupSeparator()));

    str = ui->secondMinLineEdit->text();
    BigFixedPoint lastMin(str.remove(QLocale::system().groupSeparator()));

    str = ui->secondMaxLineEdit->text();
    BigFixedPoint lastMax(str.remove(QLocale::system().groupSeparator()));

    if (firstMax < firstMin)
    {
        QMessageBox::warning(this, tr("Range Validation Error"), tr("Maximum of first number is smaller than the minimum."), QMessageBox::Ok);
        return false;
    } else if (lastMax < lastMin) {
        QMessageBox::warning(this, tr("Range Validation Error"), tr("Maximum of last number is smaller than the minimum."), QMessageBox::Ok);
        return false;
    } else {
        module->setSettings(firstMin, firstMax, lastMin, lastMax,
                            largestNumberFirst);
    }

    return true;
}
示例#2
0
uchar Algorithms::networkSortMedian(uchar array[])
{
    /* 012 *
     * 345 *
     * 678 */

    /* -------------------------- */
    /*       Sort in lines        */
    firstMax(array[1], array[2]);
    firstMax(array[4], array[5]);
    firstMax(array[7], array[8]);

    firstMax(array[0], array[1]);
    firstMax(array[3], array[4]);
    firstMax(array[6], array[7]);

    firstMax(array[1], array[2]);
    firstMax(array[4], array[5]);
    firstMax(array[7], array[8]);
    /* -------------------------- */

    /* Three group in cols:
     * maximums in her lines (036);
     * middles in lines (147);
     * minimins in lines (258).   */

    /* -------------------------- */
    /*         7 < 4 < 1          */
    firstMax(array[4], array[7]);
    firstMax(array[1], array[4]);
    firstMax(array[4], array[7]);

    /* 6 is min in 036 (maximums) */
    firstMax(array[0], array[3]);
    firstMax(array[3], array[6]);

    /* 2 is max in 258 (minimums) */
    firstMax(array[5], array[8]);
    firstMax(array[2], array[5]);
    /* -------------------------- */

    /* 0, 1, 3 more than others */
    /* 5, 7, 8 less than others */

    /* Median is 2, 4 or 6, sort them. */
    firstMax(array[4], array[2]);
    firstMax(array[6], array[4]);
    firstMax(array[4], array[2]);

    return array[4];
}