Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SOD.doc
Скачиваний:
1
Добавлен:
22.07.2019
Размер:
415.74 Кб
Скачать

СОД.АС111.01 – 01 81 01

10

Министерство образования и науки, молодежи и спорта Украины

Одесский национальный политехнический университет

Институт компьютерных систем

Кафедра системного программного обеспечения

Расчетно-графическая работа

Пояснительная записка к расчетно-графической работе

по дисциплине

«Структура и организация данных»

СОД.АС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*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

Сложение характеристик: ХА*ВАВ-40 (так как число 40 содержится в ХА и ХВ)

ХА*В=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%