Advertisement
Guest User

Untitled

a guest
Nov 12th, 2019
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.28 KB | None | 0 0
  1. program Transformation;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. {$R *.res}
  6.  
  7. uses
  8. System.SysUtils;
  9. //Процедура для перевода двоичного числа в десятичную систему счисления
  10. procedure TransformToTen();
  11.  
  12. var
  13. HelpIndex, FinalNum, i: Integer;
  14. BinaryNumber: string;
  15. begin
  16. Write('Введите ваше число в двоичной системе счисления: ');
  17. Readln(BinaryNumber);
  18. FinalNum:= 0;
  19. for i:= Length(BinaryNumber) downto 1 do
  20. begin
  21. if i = Length(BinaryNumber) then
  22. HelpIndex:= 1
  23. else
  24. HelpIndex:= HelpIndex * 2;
  25. if BinaryNumber[i] = '1' then
  26. FinalNum:= FinalNum + HelpIndex;
  27. end;
  28. Writeln('Число ',BinaryNumber,' в десятичной системе счисления: ',FinalNum);
  29. end;
  30. //Процедура для перевода числа из десятичной системы счисления в двоичное число
  31. procedure TransformToSecond();
  32. const
  33. MinNumber = 0;
  34. MaxNumber = 100;
  35. var
  36. IsCorrect: boolean;
  37. Number: Integer;
  38. Counter, i : Integer;
  39. ArrayForRest : array[1..100] of byte;
  40. begin
  41. IsCorrect:= False;
  42. repeat
  43. Write('Введите ваше число в десятичной системе счисления от ',MinNumber,' до ', MaxNumber,': ');
  44. try
  45. Readln(Number);
  46. if (Number > MinNumber) and (Number < MaxNumber) then
  47. IsCorrect:= True
  48. else
  49. Writeln('Извините, вы можете ввести числа от ', MinNumber, ' до ', MaxNumber);
  50. except
  51. Writeln('Вы ввели недопустимое значение. Пожалуйста попробуйте ещё раз!');
  52. end;
  53.  
  54. until IsCorrect;
  55.  
  56. begin
  57. Counter:= 0;
  58. repeat
  59. Counter:= Counter + 1;
  60. ArrayForRest[Counter]:= Number mod 2;
  61. Number:= Number div 2;
  62. until Number = 0;
  63. Write('Ваше число в двоичной системе счисления: ');
  64. for i:= Counter downto 1 do
  65. Write(ArrayForRest[i]);
  66. end;
  67. end;
  68. //Процедура выбора системы счисления для перевода
  69. procedure ChooseNumberSystem();
  70. var
  71. Number: string;
  72. IsCorrect: boolean;
  73. begin
  74. repeat
  75. Write('Пожалуйста введите "2", если хотите перевести число из двоичной с/с, или "10", если из десятичной: ');
  76. begin
  77. Readln(Number);
  78. IsCorrect:= True;
  79. if Number = '2' then
  80. TransformToTen
  81. else
  82. if Number = '10' then
  83. TransformToSecond
  84. else
  85. begin
  86. IsCorrect:= False;
  87. Writeln('Извините, вы можете ввести только 2 или 10. Пожалуйста попробуйте еще раз!');
  88. end;
  89. end;
  90. until IsCorrect ;
  91. end;
  92. procedure ReadFileName();
  93. begin
  94. Writeln('File');
  95. end;
  96. procedure ChooseWorkPlace();
  97. var
  98. Sign: string;
  99. IsCorrect: boolean;
  100. begin
  101. repeat
  102. Write('Если вы хотите выбрать число из файла введите Ф, если из консоли введите К: ');
  103. begin
  104. Read(Sign);
  105. IsCorrect:= True;
  106. if Sign = 'Ф' then
  107. ReadFileName
  108. else
  109. if Sign = 'К' then
  110. ChooseNumberSystem
  111. else
  112. begin
  113. IsCorrect:= False;
  114. Writeln('Извините, вы можете ввести только Ф или К. Пожалуйста попробуйте еще раз!');
  115. end;
  116. end;
  117.  
  118. until IsCorrect;
  119. end;
  120. procedure Main;
  121. begin
  122. Writeln('Эта программа переводит числа из двоичной системы счисления в десятичную и наоборот!');
  123. ChooseWorkPlace();
  124. Readln;
  125. Readln;
  126. end;
  127. begin
  128. Main();
  129. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement