Практическая работа no 3
кодирование числовой информации в компьютере. получение дополнительного кода
числа»
цель: познакомить с кодированием числовой информации в компьютере. дать понятие
рямого кода, обратного кода и дополнительного кода числа, научить алгоритму
нахождения дополнительного кода числа;
вариант 1
пример 1.записать дополнительный код отрицательного числа -3002 для 16-
разрядного компьютерного представления с использованием алгоритма.
пример 2. выполнить арифметическое действие 400010 - 600010 в 16-разрядном
компьютерном представлении.
пример 3. преобразуйте десятичные числа, записанные в естественной форме, в
экспоненциальную форму с нормализованной мантиссой.
а) 217.93410
б) 75321 10 =
в) 10,0101 10-
г) 20045010 =
запишите отрицательные десятичные числа в прямом, обратном и дополнительном
кодах в 16-разрядном представлении: -15, -195, -1120, -1.
Delphi у меня 7-й версии. будет чем проект открыть? Код модуля в файле Unit1.pas.
P.S. Что-то zip не грузится, код - ниже:
procedure TForm1.Button1Click(Sender: TObject);
var
N1, N2, N3: Real;
begin
//Проверок на введённе значения для простоты не делаю
N1:=StrToFloat(Edit1.Text);
N2:=StrToFloat(Edit2.Text);
N3:=StrToFloat(Edit3.Text);
if N1<0 then N1:=N1*N1*N1*N1 else N1:=N1*N1;
if N2<0 then N2:=N2*N2*N2*N2 else N2:=N2*N2;
if N3<0 then N3:=N3*N3*N3*N3 else N3:=N3*N3;
Edit4.Text:=FloatToStr(N1);
Edit5.Text:=FloatToStr(N2);
Edit6.Text:=FloatToStr(N3);
end;
m,n,p:real;
k:integer;
begin
Write('Введите через пробел начало и конец интервала: ');
Read(m,n);
p:=1;
k:=Trunc(m);
if (k mod 2)=0 then Inc(k); { Первое нечетное }
n:=Int(n); { целочисленный конец интервала }
while k<=n do
begin p:=p*k; k:=k+2 end;
Writeln('Произведение нечетных на интервале: ',p)
end.
Тестовое решение:
Введите через пробел начало и конец интервала: -3.8 8.2
Произведение нечетных на интервале: 315
var
m,n,i,j:integer;
p:real;
begin
Write('Введите через пробел целочисленные границы интервала: ');
Read(m,n);
for i:=m to n do
begin
p:=1;
if i=0 then Writeln('2^0=1')
else
if i<0 then
begin for j:=-1 downto i do p:=p/2; Writeln('2^(',i,')=',p) end
else
begin for j:=1 to i do p:=p*2; Writeln('2^',i,'=',p) end
end
end.
Тестовое решение:
Введите через пробел целочисленные границы интервала: -5 10
2^(-5)=0.03125
2^(-4)=0.0625
2^(-3)=0.125
2^(-2)=0.25
2^(-1)=0.5
2^0=1
2^1=2
2^2=4
2^3=8
2^4=16
2^5=32
2^6=64
2^7=128
2^8=256
2^9=512
2^10=1024