
Нужно написать 2 программы в Pascal. 1 программа : пользователь вводит число в десятичной системе,
а программа должна перевести это число в двуичный код. Желательно сделать 1 программу простой, с использованием if, div, mod, ну и циклы если надо.. 2 программа : Пользователь вводит число в шестнадцатиричной системе, программа переводит в десятичную. Желательно сделать 2 программу тоже попроще. Помогите пожалуйста.

Ответы на вопрос

Задание 1:
Вы писали, что программа должна переводить введённое число в "прямой код", хотя, в тоже время писали, что "она не должна быть кратна" 8 (или 4). Вот "простая" программа для перевода в двоичную систему счисления натуральных чисел. На этой основе можете потом её "усложнять" (например, ввод целых, или перевод в двоичный прямой код).
PascalABC.NET:
- ##
- var (x, s) := (ReadInteger, '');
- while x>0 do (s, x) := (x mod 2 + s, x div 2);
- Write(s)
Pascal:
- var x: integer; s: string;
- begin
- Read(x);
- while x>0 do begin
- s := x mod 2 + s;
- x := x div 2;
- end;
- Write(s);
- end.
Задание 2:
PascalABC.NET:
- ##
- var (s, x) := (ReadString, 0);
- var al := '0123456789ABCDEF';
- var i := 1;
- foreach var c in s.Reverse do
- (x, i) := (x + i*(Pos(c, al)-1), i*16);
- Write(x)
Pascal:
- var
- s, al: string;
- x, i, n: int64;
- begin
- Read(s);
- al := '0123456789ABCDEF';
- n := 1;
- for i := Length(s) downto 1 do
- begin
- x := x + n*(Pos(s[i], al)-1);
- n := n * 16;
- end;
- Write(x)
- end.







Конечно, вот две программы на Pascal, которые решают задачи, о которых вы написали:
Программа 1: Перевод из десятичной системы в двоичную систему
pascalprogram DecimalToBinary; var decimalNumber, binaryNumber, remainder: integer; begin write('Введите число в десятичной системе: '); readln(decimalNumber); binaryNumber := 0; remainder := 0; while decimalNumber > 0 do begin remainder := decimalNumber mod 2; binaryNumber := binaryNumber * 10 + remainder; decimalNumber := decimalNumber div 2; end; writeln('Число в двоичной системе: ', binaryNumber); end.
Программа 2: Перевод из шестнадцатеричной системы в десятичную систему
pascalprogram HexToDecimal; var hexNumber: string; decimalNumber: integer; digitValue: integer; i: integer; begin write('Введите число в шестнадцатеричной системе: '); readln(hexNumber); decimalNumber := 0; for i := length(hexNumber) downto 1 do begin case hexNumber[i] of '0'..'9': digitValue := ord(hexNumber[i]) - ord('0'); 'A'..'F': digitValue := ord(hexNumber[i]) - ord('A') + 10; 'a'..'f': digitValue := ord(hexNumber[i]) - ord('a') + 10; else writeln('Некорректный символ в числе.'); exit; // Прерываем выполнение программы из-за некорректного символа end; decimalNumber := decimalNumber + digitValue * trunc(power(16, length(hexNumber) - i)); end; writeln('Число в десятичной системе: ', decimalNumber); end.
Скопируйте соответствующий код в среду разработки Pascal и выполните программы. Первая программа принимает ввод в десятичной системе и выводит число в двоичной системе. Вторая программа принимает ввод в шестнадцатеричной системе и выводит число в десятичной системе.


Похожие вопросы
Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili