Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program Transformation;
- {$APPTYPE CONSOLE}
- {$R *.res}
- uses
- System.SysUtils;
- //Процедура для перевода двоичного числа в десятичную систему счисления
- procedure TransformToTen();
- var
- HelpIndex, FinalNum, i: Integer;
- BinaryNumber: string;
- begin
- Write('Введите ваше число в двоичной системе счисления: ');
- Readln(BinaryNumber);
- FinalNum:= 0;
- for i:= Length(BinaryNumber) downto 1 do
- begin
- if i = Length(BinaryNumber) then
- HelpIndex:= 1
- else
- HelpIndex:= HelpIndex * 2;
- if BinaryNumber[i] = '1' then
- FinalNum:= FinalNum + HelpIndex;
- end;
- Writeln('Число ',BinaryNumber,' в десятичной системе счисления: ',FinalNum);
- end;
- //Процедура для перевода числа из десятичной системы счисления в двоичное число
- procedure TransformToSecond();
- const
- MinNumber = 0;
- MaxNumber = 100;
- var
- IsCorrect: boolean;
- Number: Integer;
- Counter, i : Integer;
- ArrayForRest : array[1..100] of byte;
- begin
- IsCorrect:= False;
- repeat
- Write('Введите ваше число в десятичной системе счисления от ',MinNumber,' до ', MaxNumber,': ');
- try
- Readln(Number);
- if (Number > MinNumber) and (Number < MaxNumber) then
- IsCorrect:= True
- else
- Writeln('Извините, вы можете ввести числа от ', MinNumber, ' до ', MaxNumber);
- except
- Writeln('Вы ввели недопустимое значение. Пожалуйста попробуйте ещё раз!');
- end;
- until IsCorrect;
- begin
- Counter:= 0;
- repeat
- Counter:= Counter + 1;
- ArrayForRest[Counter]:= Number mod 2;
- Number:= Number div 2;
- until Number = 0;
- Write('Ваше число в двоичной системе счисления: ');
- for i:= Counter downto 1 do
- Write(ArrayForRest[i]);
- end;
- end;
- //Процедура выбора системы счисления для перевода
- procedure ChooseNumberSystem();
- var
- Number: string;
- IsCorrect: boolean;
- begin
- repeat
- Write('Пожалуйста введите "2", если хотите перевести число из двоичной с/с, или "10", если из десятичной: ');
- begin
- Readln(Number);
- IsCorrect:= True;
- if Number = '2' then
- TransformToTen
- else
- if Number = '10' then
- TransformToSecond
- else
- begin
- IsCorrect:= False;
- Writeln('Извините, вы можете ввести только 2 или 10. Пожалуйста попробуйте еще раз!');
- end;
- end;
- until IsCorrect ;
- end;
- procedure ReadFileName();
- begin
- Writeln('File');
- end;
- procedure ChooseWorkPlace();
- var
- Sign: string;
- IsCorrect: boolean;
- begin
- repeat
- Write('Если вы хотите выбрать число из файла введите Ф, если из консоли введите К: ');
- begin
- Read(Sign);
- IsCorrect:= True;
- if Sign = 'Ф' then
- ReadFileName
- else
- if Sign = 'К' then
- ChooseNumberSystem
- else
- begin
- IsCorrect:= False;
- Writeln('Извините, вы можете ввести только Ф или К. Пожалуйста попробуйте еще раз!');
- end;
- end;
- until IsCorrect;
- end;
- procedure Main;
- begin
- Writeln('Эта программа переводит числа из двоичной системы счисления в десятичную и наоборот!');
- ChooseWorkPlace();
- Readln;
- Readln;
- end;
- begin
- Main();
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement