Guest User

Untitled

a guest
Jun 24th, 2018
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.78 KB | None | 0 0
  1. unit UnitConversions;
  2.  
  3. interface
  4.  
  5. uses
  6. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  7. Dialogs, StdCtrls;
  8.  
  9. type
  10. TFrmConversions = class(TForm)
  11. btnReset: TButton;
  12. btnBinaire: TButton;
  13. btnOctal: TButton;
  14. btnQuit: TButton;
  15. lblValeur: TLabel;
  16. edtValeur: TEdit;
  17. procedure btnQuitClick(Sender: TObject);
  18. procedure btnBinaireClick(Sender: TObject);
  19. procedure btnOctalClick(Sender: TObject);
  20. procedure btnResetClick(Sender: TObject);
  21.  
  22. private
  23. { Déclarations privées }
  24. public
  25. { Déclarations publiques }
  26. end;
  27.  
  28. var
  29. FrmConversions: TFrmConversions;
  30.  
  31. implementation
  32.  
  33. {$R *.dfm}
  34.  
  35. FUNCTION Exposant(base : Integer; exposant:Integer) :Integer;
  36. var temp : Integer;
  37. Begin
  38. temp:=base;
  39. if exposant=0 Then
  40. base:=1
  41. Else
  42. while exposant >1 DO
  43. Begin
  44. base:=base*temp;
  45. exposant:=exposant-1
  46. end;
  47. Result:=base;
  48. end;
  49.  
  50. procedure TFrmConversions.btnQuitClick(Sender: TObject);
  51. begin
  52. Application.Terminate;
  53. end;
  54.  
  55.  
  56. procedure TFrmConversions.btnBinaireClick(Sender: TObject);
  57.  
  58. var
  59. long,binaire,i,iRC:Integer;
  60. Fausse:Boolean;
  61.  
  62. begin
  63. VAL (edtValeur.Text,i,iRC);
  64. Fausse:=False;
  65. i:=length(edtValeur.Text);
  66. if iRC<>0 THEN
  67. Begin
  68. Showmessage('Veuillez entrer un nombre');
  69. Fausse:=True;
  70. End
  71. Else
  72. Begin
  73. While i>0 DO
  74. Begin
  75. If (StrtoInt(edtValeur.Text[i])<>0) And (StrtoInt(edtValeur.Text[i])<>1) Then
  76. Begin
  77. Fausse:=True;
  78. break;
  79. End;
  80. i:=i-1
  81. End;
  82. End;
  83.  
  84. If Fausse=True Then
  85. Begin
  86. Showmessage('Veuillez entrer une valeur binaire');
  87. End
  88.  
  89. Else
  90.  
  91. Begin
  92. binaire:=0;
  93. long :=length(edtValeur.Text)-1;
  94. i:=0;
  95. while long >=0 DO
  96. Begin
  97. i:=i+1;
  98. binaire:=binaire +(StrtoInt(edtValeur.Text[i]) * Exposant(2,long));
  99. long:=long-1;
  100. End;
  101. Showmessage(InttoStr(binaire));
  102. End;
  103. end;
  104.  
  105. procedure TFrmConversions.btnOctalClick(Sender: TObject);
  106. var
  107. long,binaire,i,iRC:Integer;
  108. Fausse:Boolean;
  109.  
  110. begin
  111. VAL (edtValeur.Text,i,iRC);
  112. Fausse:=False;
  113. i:=length(edtValeur.Text);
  114. if iRC<>0 THEN
  115. Begin
  116. Showmessage('Veuillez entrer un nombre');
  117. Fausse:=True;
  118. End
  119. Else
  120. Begin
  121. While i>0 DO
  122. Begin
  123. If (StrtoInt(edtValeur.Text[i]) >=8) Then
  124. Begin
  125. Fausse:=True;
  126. break;
  127. End;
  128. i:=i-1
  129. End;
  130. End;
  131.  
  132. If Fausse=True Then
  133. Begin
  134. Showmessage('Veuillez entrer une valeur octale');
  135. End
  136.  
  137. Else
  138.  
  139. Begin
  140. binaire:=0;
  141. long :=length(edtValeur.Text)-1;
  142. i:=0;
  143. while long >=0 DO
  144. Begin
  145. i:=i+1;
  146. binaire:=binaire +(StrtoInt(edtValeur.Text[i]) * Exposant(8,long));
  147. long:=long-1;
  148. End;
  149. Showmessage(InttoStr(binaire));
  150. End;
  151. end;
  152.  
  153. procedure TFrmConversions.btnResetClick(Sender: TObject);
  154. begin
  155. edtValeur.Text:=' ';
  156. end;
  157.  
  158. end.
Add Comment
Please, Sign In to add comment