Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.05.2011, 12:54   #1
zadirka
Новичок
Джуниор
 
Регистрация: 22.05.2011
Сообщений: 1
По умолчанию delphi7 не могу найти ошибку

помогите пожалуйста! программа производит арифметические операции(*,+,-,/) над двумя числами. числа и операция вводятся пользователем с клавиатуры.

у меня при нажатии кнопки "расчет"(есть такая на форме) всегда выводится сообщение "операции нет" в независимости от того верна операция или нет. не могу понять в чем ошибка. результат должен выводиться в edit4. форма одна. на ошибки соответствия компонентов и процедур к ним проверено.

код программы:

unit prilig3;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, Buttons;

type
TForm1 = class(TForm)
Panel1: TPanel;
Button1: TButton;
BitBtn1: TBitBtn;
Bevel1: TBevel;
Edit1: TEdit;
Label1: TLabel;
Edit2: TEdit;
Label2: TLabel;
Edit3: TEdit;
Label3: TLabel;
Label4: TLabel;
Edit4: TEdit;
procedure Edit1KeyPress(Sender:TObject; var Key: Char);
procedure Edit3KeyPress(Sender:TObject; var Key: Char);
procedure Button1Click(Sender:TObject);
procedure Edit1Exit(Sender:TObject);
procedure Edit2Exit(Sender:TObject);
procedure Edit3Exit(Sender:TObject);
procedure BitBtn1Click(Sender: TObject);
end;
VarOperat = (Pius,minus,Mult,Divide,None);
var Form1: TForm1;
a,b: Integer;
Operat: VarOperat = None;
implementation
{$R *.DFM}
procedure TForm1.Edit1KeyPress(Sender:TObject ;
var Key: Char);
begin
if not (Key in ['0'..'9','-',#8]) then key:=#0;
end;
procedure TForm1.Edit3KeyPress(Sender: TObject;
var Key: Char);
begin
if Length(Edit3.Text) = 0 then begin
if not (Key in ['+','-','*','/',#8]) then key:=#0;
end else key:=#0;
end;
procedure TForm1.Edit1Exit(Sender: TObject);
begin
a:=StrToInt(Edit1.Text);
end;
procedure TForm1.Edit2Exit(Sender: TObject);
begin
b:=StrToInt(Edit2.Text);
end;
procedure TForm1.Edit3Exit(Sender: TObject);
var C:Char;
begin

if Length(Edit3.Text) > 0 then begin
C:=Edit3.Text[1];
case C of
'+': Operat:=Pius;
'-': Operat:=minus;
'*': Operat:=Mult;
'/': Operat:=Divide;
end;
end else Operat:=None;
end;
procedure TForm1.Button1Click(Sender: TObject);
var Z:real;
begin
Z := 0;
case Operat of
Pius: Z:=a+b;
Minus: Z:=a-b;
Mult: Z:=a*b;
Divide:
if b=0 then begin
Edit4.Text:='деление на 0';
Exit;
end else
Z:=a/b;
None: begin
Edit4.Text:= 'операции нет';
Exit;
end;
end;

Edit4.Text:=FormatFloat('0.00',z);

end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
Form1.Close;
end;

end.

Последний раз редактировалось zadirka; 22.05.2011 в 13:39.
zadirka вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу найти ошибку 18541 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 16.12.2010 15:53
не могу найти ошибку Асик Помощь студентам 9 30.11.2010 23:10
не могу найти ошибку! novi4ok_Delphi Помощь студентам 4 24.04.2010 21:46
Не могу найти ошибку в БД Bilargo Помощь студентам 0 26.11.2009 14:00
Не могу найти ошибку. Picaso18 Паскаль, Turbo Pascal, PascalABC.NET 3 19.01.2009 17:05