Вопрос задан 05.07.2023 в 08:03. Предмет Информатика. Спрашивает Аксютичев Марк.

Нужно написать 2 программы в Pascal. 1 программа : пользователь вводит число в десятичной системе,

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

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Капуши Даша.

Задание 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.




0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Конечно, вот две программы на Pascal, которые решают задачи, о которых вы написали:

Программа 1: Перевод из десятичной системы в двоичную систему

pascal
program 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: Перевод из шестнадцатеричной системы в десятичную систему

pascal
program 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 и выполните программы. Первая программа принимает ввод в десятичной системе и выводит число в двоичной системе. Вторая программа принимает ввод в шестнадцатеричной системе и выводит число в десятичной системе.

0 0

Похожие вопросы

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

Последние заданные вопросы в категории Информатика

Задать вопрос