Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Laboratornyy_praktikum_po_programmirovaniyu_v_s...doc
Скачиваний:
5
Добавлен:
01.03.2025
Размер:
1 Мб
Скачать
☆

Пример 2: программа, которая выводит значения функции на заданном отрезке с помощью списка listWidget

С проектируйте окно как показано на рисунке. Нижний элемент — listWidget.

Перейдите в режим Edit.

Откройте файл dialog.h и напишите в классе Dialog объявление функции:

double f(double);

Откройте файл dialog.cpp и напишите определение функции как показано ниже:



#include "dialog.h"
#include "ui_dialog.h"
#include <math.h>
#include <QtGui>
Dialog::Dialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::Dialog)
{
    ui->setupUi(this);
}
Dialog::~Dialog()
{
    delete ui;
}
 // в качестве примера возьмем функцию y = 1/x :
double Dialog::f(double x)
{
    return 1/x;
}
 // слот для кнопки «Вычислить»:

void Dialog::on_pushButton_clicked()
{
QTextCodec* codec = QTextCodec::codecForName("UTF-8");
QTextCodec::setCodecForCStrings(codec);
   double a = ui->lineEdit->text().toDouble(); // прочитали a 
   double b = ui->lineEdit_2->text().toDouble(); // прочитали b
   double h = ui->lineEdit_3->text().toDouble(); // прочитали шаг
   int n = 0; // количество цифр после точки при выводе результата
   double copy = h; // копия шага
   while (copy < 1) { copy *= 10; n++;} 
// количество цифр после точки  в зависимости от шага
   double y = 0;
   ui->listWidget->clear(); // очищаем список
   for (double x = a; x <= b; x += h) // проходим заданный отрезок 
   {
       if (finite(y = f(x))) // если значение функции вычислено корректно
        ui->listWidget->addItem(QString("   x = %1   y = %2  ").arg(x,0,'f', n).arg(y,0,'g',5)); // выводим значение аргумента и функции
       else ui->listWidget->addItem(QString("   x = %1  значение не определено").arg(x,0,'f', n)); // выводим сообщение
   }
}

Задания для самостоятельного выполнения

  1. Написать программу, которая считывает длины сторон треугольника, проверяет возможность построения треугольника и находит все медианы этого треугольника. Решить задачу с использованием функции, которая вычисляет длину одной медианы. Вывести результаты с помощью списка listWidget.

  2. Написать программу, которая считывает координаты вершин треугольника на плоскости, проверяет возможность построения треугольника и находит радиусы вписанной и описанной окружностей. Решить задачу с использованием функции, которая вычисляет длину одной стороны треугольника. Вывести результаты с помощью списка listWidget.

  3. Написать программу, которая считывает длины сторон треугольника, проверяет возможность построения треугольника и находит все биссектрисы этого треугольника. Решить задачу с использованием функции, которая вычисляет длину одной биссектрисы. Вывести результаты с помощью списка listWidget.

  4. Написать программу, которая находит в заданном диапазоне числа, которые являются палиндромами, и выводит их на экран. Проверку "палиндром – не палиндром" оформить в виде функции.

  5. Написать программу, которая находит заданное количество чисел, которые являются палиндромами, и выводит их на экран Проверку "палиндром – не палиндром" оформить в виде функции".

  6. Написать программу, которая считывает число с клавиатуры и находит ближайшее справа натуральное число, которое является палиндромом, и выводит его на экран. Проверку "палиндром – не палиндром" оформить в виде функции".

  7. Написать программу, которая считывает число с клавиатуры и находит ближайшее справа число, которое является квадратом натурального числа, и выводит его на экран. Проверку "квадрат – не квадрат" оформить в виде функции.

  8. Написать программу, которая на заданном отрезке находит все числа, являю­щиеся квадратами натуральных чисел, и выводит их на экран. Проверку "квадрат – не квадрат" оформить в виде функции.

  9. Написать программу, которая находит заданное количество чисел, являющихся квадратами натуральных чисел, и выводит их на экран. Проверку "квадрат – не квадрат" оформить в виде функции.

  10. Написать программу, которая находит на заданном отрезке все числа, которые равны сумме кубов своих цифр (например: 153 = 13 + 53 + 33) и выводит их на экран. Проверку числа оформить в виде функции.

  11. Написать программу, которая находит заданное количество чисел, которые равны сумме кубов своих цифр (например:153 = 13 + 53 + 33)и выводит их на экран. Проверку числа оформить в виде функции.

  12. Написать программу, которая считывает число с клавиатуры и находит ближайшее справа число, которое равно сумме кубов своих цифр (например: 153 = 13 + 53 + 33) и выводит его на экран. Проверку числа оформить в виде функции.

  13. Два нечетных простых числа, разность которых равна 2, называются близнецами. Написать программу, которая находит все числа-близнецы на заданном отрезке и выводит их на экран. Проверку "простое – не простое" оформить в виде функции.

  14. Два нечетных простых числа, разность которых равна 2, называются близнецами. Написать программу, которая находит заданное количество чисел-близнецов и выводит их на экран. Проверку "простое – не простое" оформить в виде функции.

  15. Написать программу, которая находит заданное количество чисел, равных сумме квадратов двух натуральных чисел и выводит их на экран. Проверку числа оформить в виде функции.

  16. Написать программу, которая на заданном интервале находит все пары "дружественных" чисел и выводит их в список. "Дружественными" называются числа, каждое из которых равно сумме всех натуральных делителей другого, исключая само другое число, например, такими числами являются 220 и 284. Вычисление суммы делителей числа оформить в виде функции.

  17. Написать программу, которая на заданном интервале находит заданное количество пар "дружественных" чисел и выводит их на экран."Дружественными" называются числа, каждое из которых равно сумме всех натуральных делителей другого, исключая само другое число, например, такими числами являются 220 и 284. Вычисление суммы делителей числа оформить в виде функции.

  18. Написать программу, которая на заданном интервале находит все автоморфные числа. Автоморфным называется число, которое равно последним цифрам своего квадрата, например, 52 = 25, 252 = 625. Проверку числа оформить в виде функции.

  19. Написать программу, которая находит заданное количество автоморфных чисел и выводит их в список. Автоморфным называется число, которое равно последним цифрам своего квадрата, например, 52 = 25, 252 = 625. Проверку числа оформить в виде функции.

  20. Написать программу, которая считывает число с клавиатуры и находит ближайшее справа натуральное число, которое является числом Фибоначчи , и выводит его на экран. Проверку числа оформить в виде функции".

  21. Написать программу, которая находит в заданном диапазоне все числа, которые являются степенями двойки, и выводит их на экран. Проверку "степень – не степень" оформить в виде функции.

  22. Написать программу, которая находит заданное количество чисел, которые являются степенями двойки, и выводит их на экран. Проверку " степень – не степень " оформить в виде функции".

  23. Написать программу, которая считывает число с клавиатуры и находит ближайшее справа натуральное число, которое является степенью двойки, и выводит его на экран. Проверку " степень – не степень " оформить в виде функции".

  24. Написать программу, которая находит в заданном диапазоне все числа, которые содержат две шестерки, и выводит их на экран. Проверку числа оформить в виде функции.

  25. Написать программу, которая считывает число с клавиатуры и находит ближайшее справа натуральное число, которое является содержит три шестерки, и выводит его на экран. Проверку числа оформить в виде функции".

  26. Написать программу, которая вычисляет факториал натурального числа, вводимого с клавиатуры с помощью рекурсивной функции. Проверить, для какого максимального числа можно получить точное значение факториала. n! = 1*2*3…*n

30*. Написать программу, которая по известным корням многочлена восстанавливает все коэффициенты многочлена. Для вычислений использовать рекурсивную функцию. Рекомендуется воспользоваться соотношением: Xn + an-1Xn-1 + … a1X + a0 = (X-x1) * (X – x2) * … *(X-xn)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]