Виконання операції ділення двійкових чисел без відновлення залишків

Методи ділення двійкових чисел, ділення без відновлення залишків та ділення чисел у доповняльному коді. Блок-схема алгоритму виконання операцій і її мікропрограмна реалізація, розробка та опис функціональної схеми пристрою і приклад виконання операції.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык украинский
Дата добавления 09.05.2014
Размер файла 502,9 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru

15

ЗМІСТ

1. Технічне завдання

2. Виконання операції ділення двійкових чисел без відновлення залишків

3. Структурна схема пристрою ділення

4. Блок-схема алгоритму і її мікропрограмна реалізація

5. Приклад виконання операції

6. Опис функціональної схеми обчислювального пристрою

7. Розробка принципової схеми

Висновок

Література

1. ТЕХНІЧНЕ ЗАВДАННЯ

1.1.Підстава для розробки, призначення і галузь застосування.

Підставою для розробки є завдання на курсове проектування.

Пристрій призначений для виконання операції ділення над числами з фіксованою комою в доповняльному коді.

1.2.Умови експлуатації.

1.2.1.Температура навколишнього середовища від 10 до 35 °С.

1.2.2.Відносна вологість повітря до 80 % при температурі 25 °С.

1.2.3.Атмосферний тиск від 650 до 800 мм рт. ст.

1.2.4.Напруга живильної мережі (220+22) В.

1.3.Технічні вимоги.

1.3.1.Виконувана операція - ділення без відновлення залишку.

1.3.2.Вхідний код - паралельний.

1.3.3.Вихідний код - паралельний.

1.3.4.Тип використовуваного коду - доповняльний.

1.3.5.Розрядність чисел - 22.

1.3.6. Елементна база - К555.

1.4.Вимоги до конструктивного оформлення.

Пристрій виконати на стандартній друкованій платі.

2. ВИКОНАННЯ ОПЕРАЦІЇ ДІЛЕННЯ ДВІЙКОВИХ ЧИСЕЛ БЕЗ ВІДНОВЛЕННЯ ЗАЛИШКІВ

2.1 Методи ділення двійкових чисел

Ділення двійкових чисел багато в чому аналогічно діленню десяткових чисел. Процес ділення полягає в тому, що послідовно розряд за розрядом відшукуються цифри частки шляхом підбора наступним множенням цієї цифри на дільник і відніманням цього добутку з діленого. З безлічі різних методів виконання операції ділення розглянемо найпоширеніший алгоритм ділення, що полягає в тім, що дільник на кожному кроці віднімається стільки разів з діленого (починаючи зі старших розрядів), скільки це можливо для одержання найменшого позитивного залишку. Тоді в черговий розряд частки записується цифра, рівна числу дільників, що втримуються в діленому на даному кроці. Весь процес ділення зводиться до операцій віднімання і зсуву. Інший метод виконання операції ділення полягає в множенні діленого на зворотну величину дільника. Тут виникає нова операція - обчислення зворотної величини, здійснювана по відомих наближених формулах (наприклад, розкладанням у біноміальний ряд Ньютона і т.п.). У цьому випадку до складу команд машини повинна входити спеціальна операція знаходження зворотної величини. До найпоширеніших методів виконання операції ділення ставиться також метод, що полягає у використанні наближеної формули для знаходження частки від ділення двох величин. Від методу множення діленого на зворотну величину він відрізняється тільки тим, що частка визначається по деякій формулі, що зводиться до виконання операцій додавання, віднімання і множення. Фактично два останніх методи придатні для використання у спеціалізованих машинах, у яких операція ділення зустрічається не часто і її доцільно реалізувати програмним шляхом. В універсальних обчислювальних машинах, як правило, реалізується різновид «шкільного» алгоритму ділення.

2.2 Ділення без відновлення залишків

Ділення в ЕОМ, так само, як і множення, найпростіше виконувати в прямому коді. Але на відміну від множення дробових співмножників, де не може виникнути переповнення розрядної сітки, при діленні правильних дробів таке переповнення можливо у випадку, коли ділене більше дільника. Ознакою переповнення є поява одиниці в знаковому розряді частки, що грубо спотворює результат. ділення двійковий число залишок

Знак частки при діленні в прямому коді визначається як сума по модулю 2 знакових цифр діленого і дільника і привласнюється частці наприкінці операції ділення.

Частка визначається шляхом ділення модулів вихідних чисел. При цьому щоб уникнути переповнення розрядної сітки повинно дотримуватися умови: | А | < | В |, де А - ділене; В - дільник.

Нехай потрібно розділити А на В с точністю до i-го розряду.

Тоді

Yi = = 0, у1у2у3 ... yi-1yi = y1*2-1+ y2*2-2 + … yi-1*2-(i-1)+ yi*2-I (2.1)

При будь-якому значенні i повинне виконуватися нерівність

0 A -- BYi < В* 2-i, (2.2)

т. ч. залишок від ділення (A -- BYi) повинен бути менше дільника, помноженого на 2-i.

Перетворимо (2.2) до виду

0 (A -- BYi) *2-i < В, (2.3)

Позначивши (A -- BYi) *2-i = Ri„ одержимо

0 Ri <В. (2.4)

Цифри частки визначаються послідовно, починаючи зі старшого розряду. Виконувати операцію ділення можна з відновленням залишку або без відновлення залишку.

Ділення з відновленням залишків є аритмічним процесом зі змінним числом кроків того або іншого виду в кожному конкретному випадку (3 кроки при 2Ri < В и 2 кроки при 2Ri>B). Для ритмізації процесу на кожну цифру частки необхідно затратити по 3 кроки, у результаті чого збільшується час виконання операції. Разом з тим, операцію можна спростити і одержати кожну цифру частки за 2 кроки. Розглянемо випадки, коли Ri < 0. У попередньому способі в цьому випадку виконувалися наступні операції. Відновлення залишку:

Ri `=Ri + |В| = 2 Ri-1 - |В|+|В| =2 Ri-1 .

Зрушення відновленого залишку вліво

Ri ` =Ri ` = 2 Ri-1 2 =4 Ri-1

Віднімання модуля дільника з відновленого і зрушеного вліво залишку для визначення наступного залишку

Ri+1 =4 Ri-1- |В|.

Якщо не відновлювати залишок, а відразу зрушити негативний на один розряд уліво, то одержимо

Ri+1 `=2Ri =2(2Ri-1 - |В|)=4 Ri-1 -2|В|.

Результат у цьому випадку відрізняється від дійсного на величину + |В|. Тому як другий крок необхідно зробити корекцію результату на цю величину:

Ri+1=4 Ri-1 -2|В|+|В|= 4 Ri-1 -|В|.

В результаті одержуємо необхідну величину наступного залишку Ri+1 за 2 кроки.

Таким чином, щоб визначити наступну цифру частки, необхідно зсунути поточний залишок вліво на один розряд, а потім алгебраїчно додати до нього модуль дільника, якому приписується знак, протилежний знаку поточного залишку. Знак отриманого в такий спосіб наступного залишку і визначає наступну цифру частки: якщо залишок позитивний, то в частці записується 1, якщо негативний-записується 0. Операція зсуву і алгебраїчних додавань повторюється доти, поки в частці не вийде необхідна кількість цифр.

2.3 Ділення чисел у доповняльному коді

Так само як і при множенні, тут можливі два шляхи:

· переведення операндів у прямий код, одержання частки звичайним способом і переведення його в доповняльний код перед записом в пам'ять.

· Ділення операндів у доповняльному коді з одержанням частки в необхідному виді.

Другий шлях так само простий, як і перший. Необхідно тільки управляти логікою утворення цифр частки, чому сприяють дві обставини: 1) ділене в процесі операції бере участь всього лише один раз, а далі поточні залишки виходять автоматично; 2) неважко організувати одержання цифр доповняльного коду негативної частки безпосередньо в процесі ділення шляхом передачі знакових цифр залишків зі СМ у регістр частки. Розглянемо чотири можливих випадки, обумовлені комбінаціями знаків доповняльних кодів операндів.

1. A > 0; B > 0; Y = A/B > 0.

Ділення виконується як звичайно: знак частки визначається шляхом додавання знакових цифр операндів по модулю 2 і одночасно формується доповнення модуля дільника до двох. Цифри частки виходять, як уже відомо, шляхом інвертування знакових цифр залишків від ділення.

2. A < 0; B > 0; Y = A/B < 0.

Хід ділення звичайний з урахуванням наступних особливостей. Псевдознакова цифра частки (сигнал про можливе переповнення розрядної сітки) повинна виходити в цьому випадку рівною знаковій цифрі першого залишку, тому що тут виконується віднімання модуля діленого з модуля дільника в силу вихідного сполучення знаків операндів. Знакова цифра нульового залишку повинна надходити в регістр частки не інвертуючись.

Тому що знак нульового залишку має інверсне значення, то при продовженні ділення звичайним шляхом всі інші залишки виходять також з інверсними знаками. Виходить, у регістр частки також будуть записуватися інверсні цифри і наприкінці ділення в ньому утвориться обернений код негативної частки. Для округлення результату з нього треба відняти одиницю (n + 1)-го розряду, а для переведення його в доповняльний код до нього треба додати одиницю в n-й розряд. Тоді додаток одиниці в (n + 1)-й розряд зробить сумарну дію округлення і переведення оберненого коду в доповняльний.

3. A > 0; B < 0; Y = A/B < 0.

Цей випадок є дзеркальним відображенням попереднього: псевдознакова цифра частки виходить як звичайно шляхом інверсії знака першого залишку, а для того щоб одержати інверсні цифри частки, потрібно брати їх рівними знаковим цифрам відповідних залишків без інвертування. Наприкінці ділення необхідно додати до (n + 1)-му розряду частки одиницю для одночасного виконання округлення результату -і переведення його в доповняльний код.

4. A < 0; B < 0; Y = A/B > 0.

У цьому випадку всі цифри частки (включаючи псевдознакову) повинні бути рівними знаковим цифрам відповідних залишків. На першому етапі ділення одночасно з визначенням точного знака частки визначається величина модуля дільника, тобто виникає ситуація, подібна з початковими умовами 2-го випадку. Псевдознакова цифра частки визначається значенням знакової цифри першого залишку. Якщо далі робити ділення звичайним шляхом, те, як уже відомо з 2-го випадку, будуть виходити інверсні цифри модуля частки. Отже, знакові цифри залишків треба посилати в регістр частки, минаючи інвертування цифри, тому що частка тут повинне бути позитивною і його доповняльний код збігається із прямим. Таким чином, ділення чисел, представлених у доповняльному коді, виконується в 3 етапи. На першому етапі визначається знак частки шляхом додавання знакових цифр операндів по модулю 2. На другому етапі виконується нульовий крок ділення для перевірки частки на переповнення розрядної сітки шляхом алгебраїчного додавання діленого з дільником, якому приписується знак, протилежний знаку діленого. Псевдознакова цифра модуля частки визначається як зворотне значення знакової цифри першого залишку, якщо ділене позитивне. Псевдознакова цифра береться тотожно рівною знаку першого залишку, якщо ділене негативне. На третьому етапі виконуються всі наступні (n + 1) кроків ділення за звичайними правилами, але з тією лише різницею, що при негативному дільнику цифри частки беруться тотожно рівними знаковим цифрам відповідних залишків. Наприкінці ділення в (n +1)-й розряд частки обов'язково додається 1.

Алгоритм ділення чисел у доповняльних кодах зводиться до наступного. На кожному кроці ділення виконується алгебраїчне додавання коду поточного залишку (на нульовому кроці діленого) і коду дільника, якому привласнюється знак, протилежний знаку поточного залишку (діленого). При цьому, якщо знаки знову отриманого залишку і дільника однакові, то в поточний розряд частки записується одиниця, у противному випадку - нуль. Після цього знову отриманий залишок і частка зсувається на один розряд вліво. Ділення припиняється після обчислення (n + 1)-го розряду частки, у який додається одиниця округлення. При такому алгоритмі ділення і умові, що |А| < |В|, знак частки виходить автоматично, а код модуля частки відповідає його знаку.

3. СТРУКТУРНА СХЕМА ПРИСТРОЮ

При виконанні операції ділення використовується два числа - A (ділене) і B (дільник). Число A зберігається в регістрі А, число B зберігається в регістрі B.

На початку роботи ділене A заноситься в регістр A за допомогою сигналу Y3, а дільник B: у регістр B (Y5). Ділене A зсувається вліво шляхом косої передачі з регістра A у суматор. Дільник B надходить у суматор SM з регістра B у прямому або інверсному кодах (Y9). Доповняльний код результату виходить підсумовуванням одиниці переносу в молодший розряд суматора.

Цифри частки Zi, що визначаються за знаком часткових залишків у регістрі A, фіксуються в регістрі Z шляхом послідовного занесення їх у молодший розряд регістра Z (Y7) і зсуву вмісту регістра Z (Y8).

Рис.3.1. Структурна схема пристрою

4. БЛОК-СХЕМА АЛГОРИТМУ ВИКОНАННЯ ОПЕРАЦІЙ І ЇЇ МІКРОПРОГРАМНА РЕАЛІЗАЦІЯ

Блок-схема виконання операцій представлена на рис. 4.1.

На початку роботи гаситься вихідна готовність (Y14) і перевіряється вхідна готовність (P1). Після одержання сигналу вхідної готовності обнуляються регістри A(Y0), B (Y1) і Z (Y2).

Робимо запис: ділене в регістр A (Y3) і дільник у регістр B (Y5). Перевіряємо рівність дільника нулю (P3). Якщо дільник дорівнює нулю, то сигналізуємо про помилку аргументів і встановлюємо вихідну готовність (Y13). Якщо дільник не дорівнює нулю, тоді ділення можливо і починається цикл порозрядного одержання мантиси частки. На SM передається зсунуте косою передачею вбік старших розрядів ділене і обернений код дільника (Y9) з підсумовуванням одиниці до молодшого розряду у випадку виникнення переносу зі знакового розряду (Y10). З виходу SM частковий залишок заноситься в регістр A (Y3). Цифра модуля частки обчислюється як сума по модулю два знакових розрядів часткового залишку і дільника і заноситься в попередньо зсунутий на один розряд вліво (Y8) регістр Z (Y7). Перевіряємо лічильник чисел (P4). Якщо він не дорівнює нулю, продовжуємо цикл по визначенню розрядів частки. Якщо лічильник дорівнює нулю, то ми визначили всі розряди частки. Після закінчення ділення чисел установлюємо вихідну готовність і закінчуємо роботу.

Для реалізації пристрою використовується керуючий автомат з виділеною адресною пам'яттю, його схема зображена на рис. 4.2, в таблиці 4.1 описані керуючі сигнали.

Таблиця 4.1.

Y0

Обнуління регістра A

Y1

Обнуління регістра B

Y2

Обнуління регістра Z

Y3

Запис у регістр A

Y4

Запис у регістр B

Y5

Запис розряду частки в регістр Z

Y6

Зсув регістра Z вбік старших розрядів

Y7

Вибір операції в суматорі

Y8

Підсумовувуння 1 у суматорі

Y9

Установка вихідної готовності

Y10

Гасіння вихідної готовності

Рис. 4.2 Керуючий автомат

Рис. 4.1 Блок-схема виконання операцій

5. ПРИКЛАД ВИКОНАННЯ ОПЕРАЦІЇ

Виконаємо операцію ділення двох чисел, представлених у формі із фіксованою коми в доповняльному коді.

А= - 00100000000000000000

В= + 01000000000000000000

Вдк= 11.11000000000000000000.

Послідовність виконання дій над числами показана в таблиці 5.1.

Результат 11.10000000000000000000

6. ОПИС ФУНКЦІОНАЛЬНОЇ СХЕМИ ПРИСТРОЮ.

Функціональна схема пристрою представлена на рис. 6.1.

Рис. 6.1. Функціональна схема пристрою

Арифметичний блок виконаний на мікросхемах серії К555.

Як регістри для зберігання операндів, залишку і частки використовуються регістри К555ИР11. Як суматори використовуються 4-х розрядні арифметико-логічні пристрої К555ИП3. Керуючі сигнали на арифметичний блок надходять від пристрою керування.

К555ИР11 - 4-х розрядний універсальний регистр зсуву. Призначення виводів:

1

Вхід скидання R

9

Вхід режим роботи V2

2

Вхід запису інформації при зсуві вправо V3

10

Вхід режим роботи V1

3

Вхід 1-го розряду

11

Вхід синхронізації

4

Вхід 2-го розряду

12

Вихід 4-го розряду

5

Вхід 3-го розряду

13

Вихід 3-го розряду

6

Вхід 4-го розряду

14

Вихід 2-го розряду

7

Вхід запису інформації при зсуві вліво V4

15

Вихід 1-го розряду

8

Загальний

16

Напруга живлення

Таблиця істинності

Режим роботи

Вхід

Вихід, розряди

R

Род роботи

C

V4

V3

Паралельний запис, розряди

1

2

3

4

V1

V2

1

2

3

4

Установка 0

0

х

х

х

х

х

х

х

х

х

0

0

0

0

Зберігання

1

х

х

0

х

х

х

х

х

х

1*

2*

3*

4*

Паралельний запис

1

1

1

х

х

1*

2*

3*

4*

1*

2*

3*

4*

Зсув вправо

1

0

1

х

0

х

х

х

х

0

1*

2*

3*

1

0

1

х

1

х

х

х

х

1

1*

2*

3*

Зсув вліво

1

1

0

0

х

х

х

х

х

2*

3*

4*

0

1

1

0

1

х

х

х

х

х

2*

3*

4*

1

Зберігання

1

0

0

х

х

х

х

х

х

х

1*

2*

3*

4*

Умовне графічне позначення мікросхеми К555ИР11 наведено на рис. 6.2.

К555ИП3 - арифметично-логічний пристрій.

Призначення виводів:

1

Вхід 1-го розряду В

13

Вихід 4-го розряду

2

Вхід 1-го розряду А

14

Вихід порівняння

3

Вхід вибору функції

15

Вихід розповсюдження перенесення

4

Вхід вибору функції

16

Вихід перенесення

5

Вхід вибору функції

17

Вихід утворення перенесення

6

Вхід вибору функції

18

Вхід 4-го розряду В

7

Вхід перенесення

19

Вхід 4-го розряду А

8

Вхід режиму роботи

20

Вхід 3-го розряду В

9

Вихід 1-го розряду

21

Вхід 3-го розряду А

10

Вихід 2-го розряду

22

Вхід 2-го розряду В

11

Вихід 3-го розряду

23

Вхід 2-го розряду А

12

Загальний

24

Напруга живлення

Таблиця істинності

Умовне графічне позначення мікросхеми К5552 ИП3 наведено на рис. 6.3

Рис 6.2. Умовне графічне позначення мікросхеми К555ИР11

Рис 6.3. Умовне графічне позначення мікросхеми К555ИП3

7. РОЗРОБКА ПРИНЦИПОВОЇ СХЕМИ

Регістр дільника виконаний на регістрах К555ИР11 (DD1 - DD8). Ділене записується в регістр суматора К555ИР11 (DD9 - DD16).

Обчислення часткових залишків виробляється в арифметико-логічному пристрою К555ИП3 (DD25 - DD32).

Частка формується в регістрах К555ИР11 (DD17 - DD24).

Розрахунок споживаної потужності обчислювального пристрою робимо відповідно до переліку елементів принципової схеми. Споживану потужність знаходимо згідно таблиці 7.1.

Таблиця 7.1.

№ п.п

Найменування елемента

Рспож.

1 ел., Вт

Кіл-В

елемент.

Сумарна

Рспож.

1

К555ИР11

0,115

18

2,07

2

К555ИП3

0,185

6

1,11

3

К555ЛЕ1

0,027

1

0,027

Всього

3,207

Таким чином, сумарна потужність, споживана пристроєм від джерела живлення становить 3,207 Вт.

Зробимо оцінку швидкодії пристрою.

Швидкодія пристрою залежить від розрядності чисел, а також від швидкодії елементів схеми.

t = tвх рег +(6tсум +tвих рег)*22 =

= 30 +(6*40 +30)*22 = 5970 нс = 5,97 мкс.

Зона

Поз. позн.

Найменування

Кіл.

Примітки

Резистори

R1

С2-23-0,125-1 кОм 10 %

1

Мікросхеми

DD1…DD18

К555ИР11

18

DD19…DD24

К555ИП3

6

DD25

К555ЛЕ1

1

Роз'єм

Х1

ГРПМ1-61ШУ2

1

ВИСНОВОК

В даній курсовій роботі був розроблений обчислювальний пристрій, що виконує ділення чисел у форматі з фіксованою комою.

Побудовано алгоритм обробки чисел. Побудована функціональна схема пристрою. Також побудована принципова схема арифметичної частини пристрою. Наведено тестовий приклад виконання операцій.

ЛІТЕРАТУРА

Нешумова К.А. Электронные вычислительные машины и системы. - М.: Высшая школа, 1989.

Стрыгин В.В., Щарев Л.С. Основы вычислительной, микропроцессорной техники и программирования. - М.: Высшая школа, 1989.

Справочник. Цифровые и аналоговые интегральные микросхемы. - М.: Радио и связь, 1990.

Мальцев П.П. Справочник. Цифровые интегральные микросхемы. - М.: Радио и связь. 1994.

Шило В.Л. Популярные цифровые микросхемы. - М.: Радио и связь. 1987.

Савельев А.Я. Прикладная теория цифровых автоматов. М.: Высшая школа, 1987.

Размещено на Allbest.ru


Подобные документы

  • Розробка машинного алгоритму та операційного автомату для виконання операції ділення в двійково-десятковій системі числення з відновленням остачі у оберненому коді. Перевірка роботи керуючого автомату з програмованою логікою та натуральною адресацією.

    курсовая работа [178,7 K], добавлен 10.05.2011

  • Проектування процесора для виконання (з використанням доповняльного коду без відновлення розрядів остачі) операції ділення в двійково-десятковій системі числення. Розробка алгоритму виконання операції та операційного автомату. Розробка карти прошивки.

    курсовая работа [263,3 K], добавлен 14.03.2013

  • Операція алгебраїчного додавання, множення, ділення. Алгоритм ділення модулів чисел. Поняття граф-схеми алгоритму та правила її складання. Основні поняття теорії цифрових автоматів. Синтез керуючого автомата. Контроль виконання арифметичних операцій.

    реферат [55,4 K], добавлен 24.03.2009

  • Розрізняють дві форми подання двійкових чисел у ЕОМ: із фіксованою комою і з "плавучою" комою. Прямий, обернений і додатковий коди двійкових чисел. Алгоритми виконання арифметичних операцій (додавання, множення, ділення) над двійковими числами із знаком.

    лекция [28,1 K], добавлен 13.04.2008

  • Сімейство процесорів ADSP-2100 та їх характеристика. Аналіз ресурсів та структурна схема обчислювального модуля ALU. Призначення регістра ASTAT. Блок-схема алгоритму та програма реалізації ділення цілих чисел на мові Асемблера поточного процесора ADSP.

    курсовая работа [463,2 K], добавлен 04.01.2014

  • Розробка алгоритму множення чисел у прямому коді з молодших розрядів із пропусканням тактів сумування для двійкових чисел. Синтез операційного та керуючого автоматів з жорсткою логікою. Описання технології числового контролю операції додавання по модулю.

    курсовая работа [74,9 K], добавлен 14.03.2013

  • Загальні відомості про системи числення. Поняття основи. Машинні коди чисел. Алгоритми виконання операцій додавання і віднімання в арифметико-логічному пристрої ЕОМ, множення і ділення двійкових чисел в АЛП. Логічні основи ЕОМ. Досконалі нормальні форми.

    учебное пособие [355,4 K], добавлен 09.02.2012

  • Синтез цифрового автомата для виконання операції множення в оберненому коді двох двійкових чисел з фіксованою комою. Будування керуючого автомату з жорсткою логікою по принципу Мілі. Використання алгоритму множення з пропусканням тактів додавання.

    курсовая работа [279,6 K], добавлен 14.03.2013

  • Поняття арифметико-логічного пристрою. Правила формування прямого, оберненого та додаткового коду двійкових чисел. Побудова електрично-принципової схеми модулю блоку керування, який міг би виконувати не тільки операцію додавання, але й віднімання.

    курсовая работа [1,6 M], добавлен 27.02.2012

  • Подання чисел у нормальній формі. Порядок нормалізації чисел з рухомою комою. Правила додавання двійкових чисел з рухомою комою. Алгоритми і програми додавання чисел в арифметиці з рухомою комою в інструкціях навчального комп'ютера-симулятора DeComp.

    лабораторная работа [31,7 K], добавлен 13.03.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.