СОД.АС111.01 – 01 81 01
Министерство образования и науки, молодежи и спорта Украины
Одесский национальный политехнический университет
Институт компьютерных систем
Кафедра системного программного обеспечения
Расчетно-графическая работа
Пояснительная записка к расчетно-графической работе
по дисциплине
«Структура и организация данных»
СОД.АС111.01- 01 81 01
Листов
Выполнил студент гр.АС-111:
__________________Е.В.Берлизов
Проверила:
_________________Т.В.Онищенко
Одеса ОНПУ 2011
Оглавление
АННОТАЦИЯ 3
Задание №1 4
Задание №2 8
Аннотация
В данной работе мы выполняли задания по дисциплине «структура и организация данных», которые помогли нам выполнять различные задачи: арифметические операции над числами в различных системах исчисления, работа с массивами, стеками, очередями и т.д.
Задание №1
1. Последовательно перевести заданное в десятичной системе счисления (СЧ) число из табл 1 в другие СЧ с последний результат перевести в десятичную СЧ.
№ варианта для таблицы 1 рассчитывается по формуле:
№вар = №cп mod 8+1
Мой вариант :
№вар = 1 mod 8+1=2
№вар |
число |
2 |
1927,115 |
№ варианта для таблицы 2 рассчитывается по формуле:
№вар = №cп mod 4+1
Мой вариант :
№вар = 1 mod 4+1=2
№вар |
число |
2 |
5 ; 8 |
Решения
1927,115=1927+0,115
1927 |
5 |
|
|
|
1925 |
385 |
5 |
|
|
2 |
385 |
77 |
5 |
|
|
0 |
75 |
15 |
5 |
|
|
2 |
15 |
3 |
|
|
|
0 |
|
192710=302025
|
0,115 |
* |
5 |
|
0,575 |
|
0,575 |
* |
5 |
|
2,875
|
* |
2,875 |
|
5 |
|
4,375 |
0,11510=0,0242
1927,115=1927+0,115=302025+0,0245=30202,0245
302025=((((3*5)+0)*5+2)*5+0)*5+2=((17*5+2)*5+0)*5+2=115*5*5+2=3605+2=36078
0,0245= = =0.078
30202,0245=36078+0,078=3607,078
36078=((3*8+6)*8+0)*8+7=1E*8*8+7=78716
0,078= = =0,00216
78716+0,00216=787,00216
728170,0-10-22-316=7*162+8*16+7*1+2*16-3=1792+128+7+2/4096=1927+0,0004=1927,000410
2. Перевести заданные числа А - квадрат дня рождения, В - квадрат месяца рождения, С - 2 последние цифры года в двоичную СЧ и записать в прямом, обратном и дополнительном коде и вычислить А + BC в этих кодах.
Мой день рождения 16, месяц - 7, год рождения-94. A=162=256, B=72=49, C=94.
A=256=1000000002
B=49=1100012
C=94=10111102
A=1000000002=0.100000000пр
B=1100012=0.110001пр
-C=-10111102=1.1011110пр=1.0100001обр=0100010доп
Апр+Bпр-Cпр=0.100000000пр+0.110001пр+1.1011110пр=0.11010011пр
|
0.100000000пр |
|
0.100110001пр |
+ |
0.000110001пр |
+ |
1.001011110пр |
|
0.100110001пр |
|
0.011010011пр |
0.11010011пр=27+26+24+2+1=128+64+16+3=211
А обр +B обр -C обр =0.100000000обр +0.110001обр +1.0100001обр =0.11010011обр=211
|
0.100000000обр |
|
0.100110001обр |
|
10.011010010обр |
+ |
0.000110001обр |
+ |
1.110100001обр |
+ |
1 |
|
0.100110001обр |
|
10.011010010обр |
|
0.011010011обр |
0.11010011обр=27+26+24+2+1=128+64+16+3=211
А доп +B доп -C доп =0.100000000доп +0.110001доп +1.0100010доп =0.11010011доп=211
|
0.100000000доп |
|
0.100110001доп |
+ |
0.000110001доп |
+ |
1.110100010доп |
|
0.100110001доп |
|
10.011010011доп |
0.11010011доп=27+26+24+2+1=128+64+16+3=211
Проверка: 256+49-94=211
3. Выполнить пункт 2, но с модификацией кода для знакового разряда.
Апр+Bпр-Cпр=00.100000000пр+00.110001пр+11.1011110пр=00.11010011пр=211
|
00.100000000пр |
|
00.100110001пр |
+ |
00.000110001пр |
+ |
11.001011110пр |
|
00.100110001пр |
|
00.011010011пр |
00.11010011пр=27+26+24+2+1=128+64+16+3=211
А обр +B обр -C обр =00.100000000обр +00.110001обр +11.0100001обр =00.11010011обр=211
|
00.100000000обр |
|
00.100110001обр |
+ |
00.000110001обр |
+ |
11.110100001обр |
|
00.100110001обр |
|
100.011010010обр |
00.11010011обр=27+26+24+2+1=128+64+16+3=211
А доп +B доп -C доп =00.100000000доп+00.110001доп +11.0100010доп =00.11010011доп=211
|
0.100000000доп |
|
00.100110001доп |
+ |
0.000110001доп |
+ |
11.110100010доп |
|
0.100110001доп |
|
100.011010011доп |
00.11010011доп=27+26+24+2+1=128+64+16+3=211
Проверка: 256+49-94=211
4. Заданы 3 двоичных числа с плавающей точкой (на рис. 1 представлен формат числа, а в таблице 3 знаки чисел А,В,С и их порядки, мантисса определяется как сумма квадрата месяца и дня даты рождения; Nвар = Nсп % 4+1. Вычислить результат операции R=A*B+C; определить абсолютную и относительную погрешности результата.
Вычисление моего номера варианта: (1 mod 4)+1 = 1+1 = 2
№ варианта |
Числа |
Знак числа |
Характеристика |
2 |
A B C |
+ - + |
3 3 1 |
Вычисление моей мантиссы: m=72+162=49+256=305
Перевод мантиссы в 16-ричную СС: 305= 13116
305 |
16 |
|
|
|
||
304 |
19 |
16 |
||||
|
|
1 |
16 |
1 |
|
|
|
|
|
3 |
|
Перевод А,В,С в формат Е:
А |
+ |
3 |
В |
- |
3 |
С |
+ |
1 |
В= -0,13116*163
С= 0,13116*161
ХA=40+3=43 ; ХВ=40+3=43 ; ХC=40+1=41
Знаковый разряд B равен 1 , поэтому их первая тетрада меняет значение с 0100 на 1100 , то есть на С. ХB=С3. В формате Е записываем 8 символов, характеристику, затем мантиссу.
А=43131000Е ; В=C3131000Е; С=41131000Е
А |
0100 |
0011 |
0001 |
0011 |
0001 |
0000 |
0000 |
0000 |
В |
1100 |
0011 |
0001 |
0011 |
0001 |
0000 |
0000 |
0000 |
С |
0100 |
0001 |
0001 |
0011 |
0001 |
0000 |
0000 |
0000 |
Вычисление А*В:
ХА |
0100 0011 |
|
|
ХВ |
1100 0011 |
|
1 0000 0110 |
- |
|
40 |
0100 0000 |
ХА*В |
1100 0110 |
ХА*В=C6
Умножение мантисс:
|
|
|
0001 |
0011 |
0001 |
|
|
Х |
|
|
|
|
|
|
0001 |
0011 |
0001 |
|
|
|
0001 |
0011 |
0001 |
|
|
0001 |
0011 |
0001 |
|
|
0 |
0010 |
011 |
001 |
|
|
0001 |
0011 |
0001 |
|
|
0000 |
0001 |
0110 |
0011 |
0110 |
0001 |
0 |
1 |
6 |
3 |
6 |
1 |
A*B=C6016361=С5163610
(-C)= 0,13116*161= 0,000013116*165≈0,00001316*165
А*B |
1100 |
0101 |
0001 |
0110 |
0011 |
0110 |
0001 |
0000 |
С |
0100 |
0101 |
0000 |
0000 |
0000 |
0000 |
0001 |
0011 |
Вычисление А*В+С:
Перевод в обратный код ( для отрицательного - инвертированием знаковых разрядов, а в):
(А*В)Eобр=BAE9C9EFE
(-C)Eобр=45000013 Е
(А*B) Eобр |
1011 |
1010 |
1110 |
1001 |
1100 |
1001 |
1110 |
1111 |
|||||||||
-C Eобр |
1100 |
0100 |
0000 |
0000 |
0000 |
0000 |
0001 |
0011 |
|||||||||
А*В-С Eобр |
1100 |
1110 |
1110 |
1001 |
1100 |
1010 |
0000 |
0010 |
|||||||||
А*В-С |
1100 |
0101 |
0001 |
0110 |
0011 |
0101 |
1111 |
1101 |
|
A*B-C=C51635FDE
Нахождение погрешности.
∆А=А-Амаш
σА=∆А /Aмаш
2 1 0
А=0,13116*163= 13116=305
2 1 0
B=-0,13116*163= -1316=-305
0-1-2
C=0,13116*161= 1,3116= 1+3/16+1/256=1+0,1875+0,00390625=1,19140625
A= A*B+C=305*(-305)+ 1,19140625= -93023,80859375
4 3 2 1 0 -1
Aмаш= -0,1635FD 16*165=-1635F,D16= -(1*164+6*163+3*162+5*161+15+13*16-1 )= -(65536+24576+768+80+15+0,8125)= -90675,8125
∆А=А-Амаш=-93023,80859375-(-90675,8125)= -2347,99609375
σА=∆А /Aмаш=2347,99609375/90675,8125=0,026=0,026%