Системы счисления Составление алгоритмов

Министерство образования и науки Российской Федерации

Федеральное агентство по образованию

Государственное образовательное учреждение высшего профессионального образования

«Комсомольский-на-Амуре государственный технический университет»

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



















РАСЧЕТНО-ГРАФИЧЕСКОЕ ЗАДАНИЕ

по специальности: 010503 – Математическое обеспечение и администрирование информационных систем

на тему: «СИСТЕМЫ СЧИСЛЕНИЯ. СОСТАВЛЕНИЕ АЛГОРИТМОВ»





Руководитель работы М.Е. Щелкунова

Исполнитель Д.А. Кантимиров













2010


Задание



Заданы три числа А, В, С (таблица 1) соответственно в десятичном, двоичном и шестнадцатеричном виде. Каждое из этих чисел представить в двух других видах и в восьмеричном виде. А10=93. В2=1110001. С16=D5

а.) Организую перевод в двоичную систему счисления.



93:2=46 (1)

46:2=23 (0)

23:2=11 (1)

11:2=5 (1)

5:2=2 (1)

2:2=1 (0)

А2=01011101



Организую перевод в шестнадцатеричную систему счисления.



93:16=5 (D)

А16=5D



Организую перевод в восьмеричную систему счисления.



93:8=11 (5)

11:8= 1 (3)

А8=135

б.) В2=1110001



Организую перевод в десятичную систему счисления.

6543210 (нумерую числа по разрядам)

1110001

В10=1*2^6+1*2^5+1*2^4+1=64+32+16+1=11310

В10=113



Организую перевод в шестнадцатеричную систему счисления.



113:16=7 (1)

В16=71



Организую перевод в восьмеричную систему счисления.



113:8=14 (1)

14:18=1 (6)

В8=161

в.) С16= D5



Организую перевод в десятичную систему счисления.

1 0 (нумерую числа по разрядам)



D5

С10=13*16+5=213

С10=213



Организую перевод в двоичную систему счисления.



213:2=106 (1)

106:2=53 (0)

53:2=26 (1)

26:2=13 (0)

13:2=6 (1)

6:2=3 (0)

3:2=1 (1)



С2=0000000011010101 (т.к. 1 находящаяся на 8-ой позиции указывает на отрицательное число, в восьмиразрядную сетку число не влезает, буду работать в шестнадцатиразрядной)

Организую перевод в восьмеричную систему счисления



213:8=26 (5)

26:8=3 (2)

С8=325



2. Используя числа, заданные в таблице 1, вычислить по правилам двоичной арифметики: А+ B, А - B, В - А, B - C для ЭВМ с длиной разрядной сетки, равной 8. Выполнить проверку (перевести результаты в десятичную систему счисления).



а.) А+В.

А2=01011101

В2=01110001

		

		Произвожу операцию сложения столбиком

		

		01011101

		+

		01110001



11001110 (так как результат в восьмиразрядную сетку число не влезает, буду работать в шестнадцатиразрядной)

		
А+В=00000000110011102

		

		Проверка

		

		Х=00000000110011102

		Х10=1*2^7+1*2^6+1*2^3+1*2^2+1*2=128+64+8+4+2=206

		А10+ В10=93+113=206

		206=206 – верно

		б.) А-В

А2=01011101

В2=01110001

		

		Для того, чтобы вычитание заменить сложением, перевожу В в –В (инвертирую).



В2=01110001

		Инвертирую

		10001110

		+

		_______1

		10001111

		

		Произвожу операцию сложения А и –В.

		

		01011101

		+

		10001111

		

		11101100 (т.к 8 число является единицей, это указывает на то , что число отрицательное. Необходимо проводить инвертирование).

		Инвертирую

		

		00010011

		+

		_______1

		-10100 ;

		А-В=-10100

		

		Проверка

		

		А-В=-10100 ; А-В=-(1*2^4 + 1*2^2)=-20

		А-В=93-113= -20

		-20=-20 - верно

		в.) В-А

А2=01011101

В2=01110001

		

		Для того, чтобы вычитание заменить сложением, перевожу А в –А (инвертирую).



А2=01011101

		

		Инвертирую

		

		10100010

		+

		_______1

		10100011

		

		Произвожу операцию сложения -А и В.

		01110001

		+

		10100011

		

		100010100 (т.к. существует девятое число, то можно сделать вывод о логическом переполнении, следовательно от девятого знака необходимо избавиться.)

		

		В-А=00010100

		

		Проверка

		

		В-А=00010100 ; В-А=1*2^4+1*2^2=20

		В-А=113-93=20

		20=20 – верно.

		г.) В-С

С2=0000000011010101 (т.к. 1 находящаяся на 8-ой позиции указывает на отрицательное число, в восьмиразрядную сетку число не влезает, буду работать в шестнадцатиразрядной)

В2=0000000001110001

		

		Для того, чтобы вычитание заменить сложением, перевожу С в –С (инвертирую).

		

		С2=0000000011010101

		

		Инвертирую

		

		1111111100101010

		+

		_______________1

		1111111100101011

		Произвожу операцию сложения -С и В.

		1111111100101011

		+

		0000000001110001

		1111111110011100 (т.к 16 число является единицей, это указывает на то , что число отрицательное. Необходимо проводить инвертирование).

		

		Инвертирую

		

		0000000001100011

		+

		_______________1

		-1100100 ;

		В-С=-1100100

		

		Проверка

		

		В-С=-1100100; В-С=-(1*2^6+1*2^5+1*2^2)= -(64+32+4)=-100

		В-С=113-213=-100

		-100=-100 – верно.



3.) Представить указанное в таблице число в четырехбайтовом IEEE формате.



А=345.867



Перевожу число в двоичную систему, при этом целая часть переводится отдельно от дробной.

Ι 345:2=172 (1)

172:2=86 (0)

86:2=43 (0)

43:2=21 (1)

21:2=10 (1)

10:2=5 (0)

5:2=2 (1)

2:2=1 (0)

34510=1010110012

ΙΙ 0.876*2=1.752 (1)

		0.752*2=1.504 (1)

		0.504*2=1.008 (1)

		0.008*2=0.016 (0)

		0.016*2=0.032 (0)

		0.032*2=0.064 (0)

		0.064*2=0.128 (0)

		0.128*2=0.256 (0)

		0.256*2=0.512 (0)

		0.512*2=1.024 (1)

		0.024*2=0.048 (0)

		0.048*2=0,096 (0)

		0.096*2=0.192 (0)

		0.192*2=0.384 (0)

		0.384*2=0.768 (0)

		0.8672=111000000100000

		

		Формирую число

		

		А2=101011001.111000000100000

		
Привожу число к необходимому виду

		

		А2=1.01011001111000000100000 *10-8

		

		Работая с порядком десяти

		

		P=127-8=11910

		119:2=59 (1)

		59:2=29 (1)

		29:2=14 (1)

		14:2=7 (0)

		7:2=3 (1)

		3:2=1 (1)

		Р2=01110111

		А2=1.01011001111000000100000*10011101112

		

		Заполняю разрядную сетку IEEE формата

		

		А=00111011101011001111000000100000

		

		         Знак   Степень           Метиса

		

		Ответ:00111011101011001111000000100000

4.) Определить, попадает ли точка с произвольно заданными координатами (х, у) в заштрихованную область. Точки х, у задать самостоятельно.






		

		Задача сводится к нахождению пределов выделенной области. Для облегчения этой задачи я разделил график на две части.

		

		

		

		Функция f1 лежащая выше оси Oy является формулой полуокружности, при у>0.

		

		(x-x0)2+(y-y0)2≤r2 , 

		

		где r-радиус. 

		

		(x+1)+y2≤1

		y2≤1-(x+1)2

		y≤+2

		

		Точка попадёт в область f1 при:

		

		у>0

		y≤+2

		

		Фигура f2 лежащая ниже оси Oy является прямоугольником, при y<0

		Точка попадёт в область f1 при:

		
y≤0

		y>-0.5

		x≥-2

		x≤0

		Для упрощения алгоритма ввожу логические переменные , принимающие значения истина или ложь.

		

		L1= y≤+2 и у>0

		L2= x≥-2 и x≤0 и y>-0.5 и y≤0

		

		Блок-схема

		

начало

		

		

Ввод x,y

		

		

L1= y≤+2 и у>0

		

		

		

	L2= x≥-2 и x≤0 и y>-0.5 и y≤0 



		

		

L1 или L2-+

		

		

		

Не попала

Попала

		

		

		

		

конец

		

		
5.) Пусть a1=b1=1; ak = 3∙ bk-1 + 2∙ ak-1; bk = 2∙ ak-1 + bk-1, k = 2,3, …



Дано натуральное число n. Вычислить







		Задача сводится к накоплению суммы из выражений содержащих члены.

		S=S+x , где ак и вк описываются как одномерные статистические массивы, а к! будет описан с помощью переменной F.

		Первый член ряда равен:

		

		X1=2/(1+1+1)*1=2/3

		

		Цикл начинаю со второго элемента. Для избавления от бесконечного цикла, ввожу ограничение для предела к (n).

		

		

начало

		

		

Ввод n

		

n≥2

		

		-

		

A(1)=1 : B(1)=1

		

		

F=1

		

		

S=2/3

		

		


		

1

F=F*К

		

		

ak = 3∙ bk-1 + 2∙ ak-1

1

		

		

bk = 2∙ ak-1 + bk-1

		

		

X=

		

		

S=S+X

		

		

Вывод S

		

конец

		

		

6.) Разработать алгоритм обработки одномерных числовых массивов. Массивы задать самостоятельно, предусмотреть печать всех результатов.

В заданном одномерном массиве найти сумму и произведение положительных элементов, сумму и произведение отрицательных элементов. Из полученных результатов сформировать новый массив.

		Пусть а-одномерный, числовой, динамический массиы.

		S1- сумма положительных элементов

		P1- произведение положительных элементов

		S2- сумма отрицательных элементов

		P2- произведение отрицательных элементов

		z-одномерный, числовой, статистический массив, содержащий результаты.

		


начало

		

		

Ввод n

		

		

n≥1

		-

		

		

S1=0: S2=0 : P1=1: P2=1

		

		

		

Ввод a(n)

		

Вывод a(n)

		

		

а(n)≥0

		-+

		

		

S2=S2+a(n)

S1=S1+a(n)

		

		

P2=P2*a(n)

P1=P1*a(n)

		

		

		

		

1

1

		

		

Z(1)=S1

		

		


		

Z(2)=P1

Z(3)=S2

		

		

Z(4)=P2

		

		

Вывод Z(i)

		

конец

		

7.) Разработать алгоритм обработки двумерных числовых массивов. Массивы задать самостоятельно, предусмотреть печать всех результатов.

В заданной действительной матрице размером  заменить элементы  нулями, если  не равен , и 1 – в противном случае, где i – номер строки.

Пусть а(i,j)-динамический, двумерный числовой массив.

i-количество строк

j-количество столбцов

Задача сводится к нахождению максимального элемента в строке (max) и сравнения его с элементами данной строки.

		

		


начало

		

Ввод n

		

		

n≥1

		-

		

		

		

Ввод a(i,j)

		

		

		

Вывод a(i,j)

		

		

		

max=a(i,1)

		

1

		

1

		

		

A(i,j)>max

		

		

		

		+

		


		

max=a(i,j)

		

|A(i,j)|=max

		

a(i,j)=1

		-+

		

a(i,j)=0

		

		

		

Вывод a(i,j)

		

		

конец