Решение квадратного уравнения в лазарусе

Программа решения квадратных уравнений

В данной работе содержится технический проект к программе составленной в среде Lazarus.

Скачать:

ВложениеРазмер
kvadratnye_uravneniya.rar364.6 КБ

Предварительный просмотр:

ГОУ СПО «ЗУБОВО-ПОЛЯНСКИЙ ПЕДАГОГИЧЕСКИЙ КОЛЛЕДЖ»

___________ Ласкин В.О.

«___» ______________ 2011 г.

ПРОГРАММА РЕШЕНИЯ КВАДРАТНЫХ УРАВНЕНИЙ

Исполнитель, ______________ Пинясов В.

Зубова Поляна, 2011 г.

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА К ТЕХНИЧЕСКОМУ ПРОЕКТУ ………….3

Структура входных и выходных данных …………………………………3

Алгоритм решения задачи ………………………………………………..3

Листинг программного кода ………………………………………………7

Конфигурация технических средств ……………………………………14

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ …………………………15

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА К ТЕХНИЧЕСКОМУ ПРОЕКТУ

1. Общие положения

Данный документ является техническим проектом на создание программы решения квадратных уравнений. Цели и назначение программы указаны в техническом задании.

2. Структура входных и выходных данных

Входными данными являются коэффициенты квадратного уравнения вида , где a, b, c могут быть представлены целыми числами, а также десятичными дробями. Программа так же предусматривает ввод коэффициентов в виде обыкновенных дробей, поэтому общий вид квадратного уравнения сводится к следующему:

Выходными данными являются все возможные решения квадратного уравнения:

x, x 1 , x 2 , «Данное выражение не является уравнением», «Нет действительных корней» (если не стоит флажок «Комплексные решения»), , (если стоит флажок «Комплексные решения»).

3. Алгоритм решения задачи

Уравнение можно представить в виде

Общий алгоритм решения данного уравнения представлен в таблице 1.

Данное выражение не является уравнением

Данное выражение не является уравнением

Иначе «Нет действительных корней» или (если стоит флажок «Комплексные решения»)

Если то «Нет действительных корней» или (если стоит флажок «Комплексные решения»)

Таблица 1. Решения квадратного уравнения в зависимости от введенных коэффициентов

Исходя из этого, общий алгоритм решения можно представить в виде следующей блок-схемы:

Рисунок 1. Алгоритм нахождения корней

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

В программе представлены две формы: главная и форма ввода данных.

Корни уравнения Label13, Label14

Найти или нет комплексные корни CheckBox1

Рисунок 2. Главная форма программы

Уравнение имеет следующую структуру:

Рисунок 3. Структура уравнения

Меню состоит из следующих элементов:

Числители и знаменатели дробей

Указывает целое число или в виде обыкновенной дроби

Рисунок 4. Окно ввода данных

5. Листинг программного кода

// Процедура при нажатии на меню файл

procedure TForm1.MenuItem1Click(Sender: TObject);

if (Form1.Label9.Caption<>») then

// процедура при нажатии на меню новый

procedure TForm1.MenuItem2Click(Sender: TObject);

if (form2.Visible=false) then

// процедура при нажатии на меню решить

procedure TForm1.MenuItem3Click(Sender: TObject);

var af, asec, bf, bsec, cf, csec, a, b, c, d: real;

if (Form1.Label1.Caption=») then

if (Form1.Label10.Caption=») then

if (Form1.Label5.Caption=») then

if (Form1.Label11.Caption=») then

if (Form1.Label8.Caption=») then

if (Form1.Label12.Caption=») then

if ((a=0)and(b=0)) then

Form1.Label13.Caption:=’Данное выражение не является уравнением’

else if (((a=0)and(b<>0))and(c=0)) then

else if (((a=0)and(b<>0))and(c<>0)) then

if (Form1.CheckBox1.Checked=false) then

Form1.Label13.Caption:=’нет действительных корней’

// Процедура при нажатии на меню выход

procedure TForm1.MenuItem4Click(Sender: TObject);

// привязка файла справки

// справка должна находится по указанному пути

// Необходимо подключить модуль Windows

procedure TForm1.MenuItem5Click(Sender: TObject);

ShellExecute (Form1.Handle, nil, ‘.\help.chm’, nil, nil, SW_RESTORE);

// процедура при щелчке на a — целое

procedure TForm2.CheckBox1Change(Sender: TObject);

if (CheckBox1.Checked=true) then

// процедура при щелчке на b — целое

procedure TForm2.CheckBox2Change(Sender: TObject);

if (CheckBox2.Checked=true) then

// процедура при щелчке на с — целое

procedure TForm2.CheckBox3Change(Sender: TObject);

if (CheckBox3.Checked=true) then

// Процедура при щелчке по кнопке Сохранить

procedure TForm2.Button1Click(Sender: TObject);

// Проверка вводимых данных

If (((Proverka(CheckBox1.Checked, Edit1.Text, Edit2.Text))

and (Proverka(CheckBox2.Checked, Edit3.Text, Edit4.Text)))

and (Proverka(CheckBox3.Checked, Edit5.Text, Edit6.Text)))

// заполнение элементов главной формы

// заполнение первой дроби

postroenie(Form2.Edit1, Form2.Edit2, Form1.Label1, Form1.Label10);

// запись х в квадрате

if (Form1.Label1.Caption<>») then

// запись первого плюса

if ((Form2.Edit1.Text<>‘0’)and((Form2.Edit3.Text<>‘0’) or

// заполнение второй дроби

postroenie(Form2.Edit3, Form2.Edit4, Form1.Label5, Form1.Label11);

// запись х после второй дроби

if (Form1.Label5.Caption<>») then

// запись второго плюса

if ((Form2.Edit3.Text<>‘0’)and(Form2.Edit5.Text<>‘0’)) then

// заполнение третьей дроби

postroenie(Form2.Edit5, Form2.Edit6, Form1.Label8, Form1.Label12);

if ((Form1.Label1.Caption=») and (Form1.Label5.Caption=»))

and (Form1.Label8.Caption=»)) then

// заполнение правой части уравнения

// установка отступов для элементов главной формы

if (Form1.Label1.Caption<>») then

otstup:=otstup+postroenie(Form2.Edit1, Form2.Edit2, Form1.Label1,

if (Form1.Label2.Caption<>») then

if (Form1.Label3.Caption<>») then

if (Form1.Label4.Caption<>») then

if (Form1.Label5.Caption<>») then

otstup:=otstup+postroenie(Form2.Edit3, Form2.Edit4, Form1.Label5,

if (Form1.Label6.Caption<>») then

if (Form1.Label6.Caption<>») then

if (Form1.Label8.Caption<>») then

if (Form1.Label8.Caption=’0′) then

otstup:=otstup+postroenie(Form2.Edit5, Form2.Edit6, Form1.Label8,Form1.Label12);

messageDlg(‘Данные введены не корректно’, MtInformation, [MbOk], 0 );

// функция проверки данных на допустимость вввода

function TForm2.proverka(a:boolean; b, c:string): boolean;

If (TryStrToFloat(b, n)) then // если первое поле вещественное возвращаем true

If (((TryStrToInt(b, i))and(TryStrToInt(c, k)))and(k<>0)) then

// если поля целые и второе поле не ноль возвращаем true

// функция построения дробей

function TForm2.postroenie(a, b: TEdit; c, d: TLabel): integer;

if (d.Width>s) Then

6. Конфигурация технических средств

• тип процессора. Pentium и выше;

• объем оперативного запоминающего устройства 32 Мб и более;

• объем свободного места на жестком диске 40 Мб.

• тип процессора. Pentium II 400;

• объем оперативного запоминающего устройства 128 Мб;

• объем свободного места на жестком диске 60 Мб.

4.4. Требования к программной совместимости. Программа должна работать под управлением семейства опе рационных систем Win 32 (Windows /XP/Vista/Seven и т. п.).

  1. Получение технического задания;
  2. Составление алгоритма решения задачи;
  3. Написание программного кода;
  4. Тестирование программы;
  5. Составление отчетной документации;
  6. Сдача проекта.

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

  1. Алексеев, Е.Р. Самоучитель по программированию на Free Pascal и Lazarus / Е.Р. Алексеев, О.В. Чеснокова, Т.В. Кучер  Донецк.: ДонНТУ, Технопарк ДонНТУ УНИТЕХ, 2009.  503 с.
  2. Гагарина Л.Г. Технология разработки программного обеспечения: учебное пособие / Л.Г. Гагарина, Е.В. Кокорева, Б.Д. Виснадул. – М.: ИД «Форум»: ИНФРА-М, 2008. – 400 с.
  3. Мансуров, К.Т. Основы программирования в среде Lazarus, 2010. – 772 с.

Решение квадратного уравнения в lazarus

Решение квадратного уравнения в lazarus

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

Начать нужно с самого квадратного уравнения. Из курса алгебры мы знаем, что квадратным уравнением называется уравнение вида ax2+bx+c=0, где x – переменная, a, b и с – некоторые числа, причем aThis is the rendered form of the equation. You can not edit this directly. Right click will give you the option to save the image, and in most browsers you can drag the image onto your desktop or another program..

Из определения видно, что в уравнении меняются только коэффициенты a, b и c. Вот эти параметры мы и будем вводить в нашу программу, а для этого создадим три поля ввода из компонентов.


Рис 14.1 Поля ввода для коэффициентов.

Так же из определения следует, что aThis is the rendered form of the equation. You can not edit this directly. Right click will give you the option to save the image, and in most browsers you can drag the image onto your desktop or another program.. В этом случае уравнение не будет квадратным. И это условие мы будем проверять в первую очередь. Создадим кнопку «Решить» и ее разработчике событий при помощи оператора if проверим условие aThis is the rendered form of the equation. You can not edit this directly. Right click will give you the option to save the image, and in most browsers you can drag the image onto your desktop or another program.. И если a=0 сообщим что наше уравнение не квадратное.

Проект в среде Lazarus «Квадратное уравнение»

Материал содержит текстовый файл с описанием создания проекта в программной среде Lazarus, программный код проекта и проект в среде Lazarus.

Просмотр содержимого документа
«Квадратное уравнение»

Проект «Решение квадратного уравнения»

В этом задании вы создадите программу, в которой будет решаться квадратное уравнение стандартного вида ax 2 + bx + c =0. Форма проекта должна иметь следующий вид:

В заголовке Формы запишите: «Решение квадратного уравнения».

Разместите на Форме необходимые объекты ( Panel (3 объекта), Edit (6), Label (8), Button (2)).

В разделе описания переменных var надо перечислить все переменные, которые будут использоваться в программе, и указать тип.

В нашем случае все переменные одного типа – вещественные числа. Теперь эти переменные будут «видны» всей программе. Описание переменных можно производить и в каждой процедуре, где они используются.

Теперь надо записать процедуру вычисления дискриминанта для кнопки «Вычислить»:

b:= StrToFloat (Edit2.Text);

При решении необходимо использовать ветвление: если d 0, то выводится сообщение ‘Квадратное уравнение не имеет корней’ (использовать MessageDlg), а в Edit выводится значение дискриминанта.

Если d 0 ‘Квадратное уравнение имеет два корня’.

Вычисляются корни по формулам:

x 1:= (- b + Sqrt ( d ))/(2* a );

x 2:= (- b Sqrt ( d ))/(2* a );

В Edit выводится дискриминант и значения корней.

Если d =0, ‘Квадратное уравнение имеет один корень’ , в Edit дискриминант и значение по формуле:

x 1:= (- b )/(2* a );

Подсказка для d:

if d

MessageDlg(‘ Квадратное уравнение не имеет корней ‘,mtWarning, [mbOk, mbCancel],0);

Edit4.Text:=FloatToStr(D);


источники:

http://retprog.ru/2017/07/22/%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%BD%D0%BE%D0%B3%D0%BE-%D1%83%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F-%D0%B2-lazarus/

http://multiurok.ru/files/proiekt-v-sriedie-lazarus-kvadratnoie-uravnieniie.html