|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
09.11.2021, 18:03 | #1 |
Новичок
Джуниор
Регистрация: 04.11.2021
Сообщений: 3
|
Помогите исправить ошибки в коде.
Создать программу, вычисляющую корни квадратного уравнения (ax2+bx+c=0). Необходимо поместить на форму четыре объекта класса TEdit – три для коэффициентов квадратного уравнения, один – для результата и кнопку (объект класса TButton), нажимая на которую пользователь выполняет нахождение корней. Исключить ввод символов вместо цифр, получение отрицательного дискриминанта и ввод а = 0. Вывести при всех типах ошибок одно и то же сообщение.
unit Unit33; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls; Messages; type TForm33 = class(TForm) Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Button1: TButton; procedure Edit1Change(Sender: TObject); procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form33: TForm33; implementation {$R *.dfm} procedure TForm33.Button1Click(Sender: TObject); var a,b,c,d,x1,x2: real; begin a: = strtofloat(edit1, text); b: = strtofloat(edit2, text); c: = strtofloat(edit3, text); d: = ((b*b)-(4*a*c)); if d>0 then edit4.Text:="Действительных корней нет" else if d=0 then begin x1:=(-b/(2*a)); edit4.Text:="один действительный корень"; x="+ floattostr(x1)"; end; else x1: +((-b+sqrt(d))/(2*a); x2: +((-b+sqrt(d))/(2*a); edit4.Text:="Два корня x1="+ floattostr(x1)+"; x2 ="+froattostr(x2); end; end. procedure TForm33.Edit1Change(Sender: TObject); begin edit1:Text:="1"; edit2:Text:="1"; edit3:Text:="1"; end; end. try i:=StrFoint(edit.text); wxcept i on KeyPressolo if not (key in L"1"... "9";"-";"+";"-+";"/";#8//если вводимый символ не фирфа от 0...9, либо backspase, либо...; then //show messages'разрешен ввод только цифр" end; try x1:=(-b+sqrt(d))/(2*a); x2:=(-b-sqrt(d))/(2*a); except if d<0 then EMathError; end; try//перехватывает ошибку except if a+0; then E Error; finally end; end. |
09.11.2021, 18:09 | #2 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,620
|
Код:
Код:
Код:
Я бы вынес контроль инф. в Edit'ах и преобразование в float в функцию. Код:
Вот что получается, когда списываешь откуда-то не задумываясь. Последний раз редактировалось digitalis; 09.11.2021 в 19:53. |
10.11.2021, 06:57 | #3 |
Новичок
Джуниор
Регистрация: 04.11.2021
Сообщений: 3
|
а остальное все правильно?или тоже есть что исправлять?
|
10.11.2021, 11:01 | #4 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,620
|
Что за странный вопрос? Ответ: "правильно - нет" даёт прогон контрольного примера на компе. Если компа нет, а обучение идёт "на тетради в клеточку" - ну тады ой.
Перепиши с учётом замечаний и будем смотреть дальше. ---------------- И на фига так много Label, что в них за супер-информация? Это всё в сдуваемом образце было? "Вали кулём, потом разберём" ? Последний раз редактировалось digitalis; 10.11.2021 в 11:05. |
14.11.2021, 11:52 | #5 |
Я самый любопытный
Участник клуба
Регистрация: 24.07.2012
Сообщений: 1,950
|
Код:
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
помогите исправить ошибки в коде,программам должна выводить решение по номеру задачи | vavucho | Помощь студентам | 2 | 17.03.2020 18:48 |
С++ Исправить ошибки в коде | artilun | Общие вопросы C/C++ | 3 | 03.11.2016 10:39 |
Помогите, нужно исправить 4 ошибки в коде программы | Dimas190597 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 0 | 02.10.2016 15:57 |
Помогите исправить ошибки в коде | lomik222 | Общие вопросы C/C++ | 5 | 11.03.2016 09:51 |
Помогите пожалуйста исправить ошибки в коде | Nata Golden rose | Общие вопросы C/C++ | 6 | 18.05.2014 23:28 |