Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- unit UnitConversions;
- interface
- uses
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs, StdCtrls;
- type
- TFrmConversions = class(TForm)
- btnReset: TButton;
- btnBinaire: TButton;
- btnOctal: TButton;
- btnQuit: TButton;
- lblValeur: TLabel;
- edtValeur: TEdit;
- procedure btnQuitClick(Sender: TObject);
- procedure btnBinaireClick(Sender: TObject);
- procedure btnOctalClick(Sender: TObject);
- procedure btnResetClick(Sender: TObject);
- private
- { Déclarations privées }
- public
- { Déclarations publiques }
- end;
- var
- FrmConversions: TFrmConversions;
- implementation
- {$R *.dfm}
- FUNCTION Exposant(base : Integer; exposant:Integer) :Integer;
- var temp : Integer;
- Begin
- temp:=base;
- if exposant=0 Then
- base:=1
- Else
- while exposant >1 DO
- Begin
- base:=base*temp;
- exposant:=exposant-1
- end;
- Result:=base;
- end;
- procedure TFrmConversions.btnQuitClick(Sender: TObject);
- begin
- Application.Terminate;
- end;
- procedure TFrmConversions.btnBinaireClick(Sender: TObject);
- var
- long,binaire,i,iRC:Integer;
- Fausse:Boolean;
- begin
- VAL (edtValeur.Text,i,iRC);
- Fausse:=False;
- i:=length(edtValeur.Text);
- if iRC<>0 THEN
- Begin
- Showmessage('Veuillez entrer un nombre');
- Fausse:=True;
- End
- Else
- Begin
- While i>0 DO
- Begin
- If (StrtoInt(edtValeur.Text[i])<>0) And (StrtoInt(edtValeur.Text[i])<>1) Then
- Begin
- Fausse:=True;
- break;
- End;
- i:=i-1
- End;
- End;
- If Fausse=True Then
- Begin
- Showmessage('Veuillez entrer une valeur binaire');
- End
- Else
- Begin
- binaire:=0;
- long :=length(edtValeur.Text)-1;
- i:=0;
- while long >=0 DO
- Begin
- i:=i+1;
- binaire:=binaire +(StrtoInt(edtValeur.Text[i]) * Exposant(2,long));
- long:=long-1;
- End;
- Showmessage(InttoStr(binaire));
- End;
- end;
- procedure TFrmConversions.btnOctalClick(Sender: TObject);
- var
- long,binaire,i,iRC:Integer;
- Fausse:Boolean;
- begin
- VAL (edtValeur.Text,i,iRC);
- Fausse:=False;
- i:=length(edtValeur.Text);
- if iRC<>0 THEN
- Begin
- Showmessage('Veuillez entrer un nombre');
- Fausse:=True;
- End
- Else
- Begin
- While i>0 DO
- Begin
- If (StrtoInt(edtValeur.Text[i]) >=8) Then
- Begin
- Fausse:=True;
- break;
- End;
- i:=i-1
- End;
- End;
- If Fausse=True Then
- Begin
- Showmessage('Veuillez entrer une valeur octale');
- End
- Else
- Begin
- binaire:=0;
- long :=length(edtValeur.Text)-1;
- i:=0;
- while long >=0 DO
- Begin
- i:=i+1;
- binaire:=binaire +(StrtoInt(edtValeur.Text[i]) * Exposant(8,long));
- long:=long-1;
- End;
- Showmessage(InttoStr(binaire));
- End;
- end;
- procedure TFrmConversions.btnResetClick(Sender: TObject);
- begin
- edtValeur.Text:=' ';
- end;
- end.
Add Comment
Please, Sign In to add comment