Написать программу для вычисления примера Х1(10)*Х2(8) - Х3(2), где (10,8,2) - системы счисления - Pascal ABC
Формулировка задачи:
В общем дан пример Х1(10)*Х2(8) - Х3(2)=, где (10,8,2) - системы счисления. Надо написать программу для его решения, где х1-вещественное, х2-х3-целые..В общем, даже не знаю, как объяснить. Надо сделать так, чтобы сначала, все 3 числа задались в 10 Сист.Счисления, выполнился пример Х1(10)*Х2(10) - Х3(10)=, и после, ответ полученный в 10 с.с, был переведен в 8 с.с. и 2 с.с
Решение задачи: «Написать программу для вычисления примера Х1(10)*Х2(8) - Х3(2), где (10,8,2) - системы счисления»
textual
Листинг программы
- program test;
- var x1,x2,x3,p:integer;
- function ItoS(val:integer):string;
- var
- _r:string;
- begin
- Str(val,_r);
- ItoS:=_r;
- end;
- function ConvertToCS(val:integer;CS:integer):string;
- var
- _r,_r1:string;
- _m,i:integer;
- begin
- _r:='';
- if CS>16 then exit;
- repeat
- _m:=val mod CS;
- val:=val div CS;
- if _m<10 then
- _r:=_r+ItoS(_m)
- else
- _r:=_r+chr(ord('A')+_m-10);
- until val=0;
- _r1:='';
- for i:=length(_r) downto 1 do
- _r1:=_r1+_r[i];
- ConvertToCS:=_r1;
- end;
- begin
- writeln ('Введите значение x1:');
- readln (x1);
- writeln ('Введите значение x2:');
- readln (x2);
- writeln ('Введите значение x3:');
- readln (x3);
- p:=x1*x2-x3;
- writeln('Ответ 10-я:',p);
- writeln('Ответ 8-я:',ConvertToCS(p,8));
- writeln('Ответ 2-я:',ConvertToCS(p,2));
- end.
Объяснение кода листинга программы
- Создается программа
test
. - Объявляются переменные x1, x2, x3 и p типа integer.
- Создается функция ItoS, которая принимает целочисленный аргумент val и возвращает строку, представляющую это число в виде строки.
- Создается функция ConvertToCS, которая принимает два аргумента: целочисленное значение val в десятичной системе счисления и целочисленную систему счисления CS. Эта функция возвращает строку, представляющую значение val в системе счисления CS.
- В функции ConvertToCS инициализируется пустая строка _r и проверяется, что CS больше 16. Если это условие выполняется, то функция завершается.
- Затем в функции начинается цикл, который повторяется, пока значение val не станет равным нулю.
- Внутри цикла значение val делится на CS, а оставшееся значение _m сохраняется в виде остатка от деления.
- Затем строка _r инициализируется пустой строкой.
- Далее, для каждого символа в строке _r, начиная с конца строки, добавляется соответствующий символ из строки _r1.
- После завершения цикла значение _r1 заменяет значение _r.
- В функции вызываются функции readln для ввода значений x1, x2 и x3.
- Вычисляется значение выражения x1 * x2 - x3 и сохраняется в переменной p.
- Выводятся результаты вычислений: значение p, значение ConvertToCS(p,8) и значение ConvertToCS(p,2).
- Программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д