Тема: «Отладка программы»

Для того, чтобы найти логическую ошибку в программе, можно использо­вать вывод отладочных сообщений, например выводить результаты промежуточ­ных вычислений.

В качестве примера создадим программу, которая проверяет, является ли чис­ло степенью двойки. Для вывода результатов промежуточных вычислений исполь­зуем оператор потокового вывода qDebug(). Использование этого оператора аналогично использованию потокового вывода cout.

Создайте проект на основе диалогового окна и спроектируйте его как показано на рисунке.

Первое окно по умолчанию имеет идентификатор lineEdit, второе — lineEdit_2.

Создайте слот для кнопки «Проверить» и напиши­те код как показано ниже.

 

#include "dialog.h"

#include "ui_dialog.h"

#include <QtDebug>  // Обеспечивает работу qDebug()

#include <QtextCodec>  // Обеспечивает спользование кириллицы

#include <math.h>  // Обеспечивает работу математических функций

#include <QMessageBox> // Обеспечивает использование окна сообщений

 

Dialog::Dialog(QWidget *parent):

QDialog(parent),

ui(new Ui::Dialog)

{

ui->setupUi(this);

adjustSize(); //

}

Dialog::~Dialog()

{

delete ui;

}

void Dialog::on_pushButton_clicked()

{

QTextCodec* codec = QTextCodec::codecForName("UTF-8");

QtextCodec::setCodecForCStrings(codec);

 

int n = ui->lineEdit->text().toInt(); // считываем целое число

if (n >= 0)

 

{

   int s = 1;

   while (s < n)

   {

       s *= 2; // вычисляем степень 2

       qDebug() << "Степень 2: "<< s;

// выводим очередную степень в окно Application Output

   }

 // выводим результат:

   if (s==n) ui->lineEdit_2->setText("Это степень 2");

   else ui->lineEdit_2->setText("Это не степень 2");

}

else

{

       ui->lineEdit_2->setText("");

   QMessageBox::critical(this, "Сообщение об ошибке",
 "Число должно быть >= 0");

  }

}

При использовании окна сообщений QMessageBox первый параметр - указа­тель на родительское окно, второй - заголовок окна, третий - непосредственно со­общение.

Запустите программу (<Ctrl>+<R>), задайте число, нажмите кнопку и пос­мотрите результат работы qDebug() в окне Application Output.

Если по какой-то причине Ваша программа зацикливается, используйте системный монитор (System | Administration | System Monitor). В списке Processes найдите имя Вашего проекта, щелкните по нему правой кнопкой мыши и выберите «Kill Process».



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: