Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

C _Учебник_МОНУ

.pdf
Скачиваний:
199
Добавлен:
12.05.2015
Размер:
11.12 Mб
Скачать

Передмова

9

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

Інформацію стосовно основних елементів мови С++, тобто щодо типів даних, правил оголошування змінних та інших об‟єктів, записування арифметичних виразів, наведено в розд. 3. Цей розділ є надто важливим, оскільки для створювання програм треба знати синтаксис мови, тобто правила записування команд та використовування лексичних одиниць мови.

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

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

Урозд. 6 йдеться про переваги та особливості організації динамічної пам‟яті для структур даних, які змінюють розміри, з метою ефективного використовування оперативної пам‟яті. Така можливість пов‟язана з наявністю та широким використовуванням у C++ особливого типу даних – вказівників.

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

Незамінну роль відіграють вказівники при передаванні параметрів до функції. У С++ підтримуються функції як окремі логічні одиниці (програмні конструкції) для виконування конкретних завдань. Наприклад, процес розробляння програмного забезпечення передбачає поділ складного завдання на набір більш простих завдань, кожне з яких розв‟язується в окремій функції. Висвітленню специфіки організації функцій присвячено розд. 8.

Доволі часто функції організовують в окремі файли, особливості такого процесу описано у розд. 9.

Урозд. 10 розглянуто спеціальні засоби С++ та С++ Builder для опрацьовування даних типу дата-час. Проілюстровано значну кількість функцій та методів опрацьовування такого роду даних.

Значну увагу в розд. 11 приділено складовому типу даних – структурі, яка, на відміну від масивів, може поєднувати дані різних типів. За допомогою структур зручно зберігати списки даних, що складаються з полів різних типів.

10 Передмова

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

Значну увагу в навчальному посібнику приділено специфіці організації та опрацювання файлів у С++, оскільки на практиці часто виникає потреба, щоб вся опрацьовувана інформація зберігалася в окремих файлах. Так, у розд. 12 описано й продемонстровано на низці переконливих прикладів використовування потужних та гнучких можливостей С++ для різних підходів щодо організації файлів. Зазначено, що С++ припускає роботу з текстовими й бінарними файлами і має принципово різні способи їх опрацювання. У розділі висвітлюється специфіка роботи з файлами як з потоками у стилі С++. Окрім того, описано можливості роботи з файлами в С++ Builder за допомогою бібліотечних компонентів.

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

Оскільки С++ є мовою об‟єктно-орієнтованого програмування (ООП), висвітленню цього питання присвячено окремий розд. 14. В основі підходу лежить ідея моделювання об‟єктів за допомогою ієрархічно пов‟язаних класів. Встановлення чіткого взаємозв‟язку поміж даними й операціями зумовлює цілісність даних і значно підвищує надійність програм.

Урозд. 15 приділено увагу налагодженню програм, наведено перелік поширених помилок і зауважень, як на етапі компіляції, так і на етапі виконування програми.

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

Удодатки винесено таблиці ASCII-кодів, перелік операцій мови С++ у порядку зменшення пріоритету та перелік функцій стандартної бібліотеки С++. До предметного покажчика, який призначений полегшити користування посібником, включено основні терміни і поняття, що зустрічаються у цьому виданні.

В основу навчальний посібника покладено курс лекцій, який читається в Одеській національній академії зв‟язку ім. О.С. Попова на кафедрі інформаційних технологій.

Автори сподіваються, що запропонований до Вашої уваги посібник стане корисним при вивченні мови С++, і будуть щиро вдячні за доброзичливу та конструктивну критику й відгуки.

E-mail: kafedra.it@onat.edu.ua

Розділ 1

Апаратні та програмні засоби ЕОМ

1.1 Основні відомості про будову ЕОМ

Термін “архітектура комп‟ютерів” – це система принципів, покладених в основу проектування ЕОМ (електронно-обчислювальної машини) певного типу. Більш вузьке значення цього терміну пов‟язане з системою основних апаратних пристроїв (hardware) ЕОМ та засобів організації взаємодії між цими пристроями. У цьому контексті можна вважати, що архітектура комп‟ютерів – це сукупність апаратних ресурсів (hardware) комп‟ютера.

В основу архітектури переважної більшості комп‟ютерів покладено принципи, які було сформульовані ще 1945 року американським математиком Джоном фон Нейманом. Усі комп‟ютери, побудовані згідно з цими принципами, відомі тепер як комп‟ютери з фоннейманівською архітектурою.

Основні принципи архітектури комп‟ютерів фон Неймана є такі:

використання двійкової системи числення для кодування інформації у комп‟ютері;

програмне керування роботою комп‟ютера;

зберігання програм у пам‟яті комп‟ютера;

адресація пам‟яті.

Ще на початку створення перших ЕОМ фірма IBM вперше зробила комп‟ютер не як єдиний нероз‟ємний пристрій, а забезпечила можливість його збирання з незалежно виготовлених частин аналогічно до дитячого конструктора. Способи з‟єднання пристроїв у комп‟ютері є доступні для удосконалювання його окремих частин, тобто для долучання нових чи заміни існуючих на більш досконалі пристрої. Такий підхід називається принципом відкритої архітектури.

Незважаючи на еволюцію обчислювальної техніки і незалежно від відмінностей стосовно способів фізичної реалізації, типовий персональний комп‟ютер (ПК) містить у своєму складі такі основні пристрої, наведені ще у класичній роботі фон Неймана (рис. 1.1):

мікропроцесор (МП чи CPU – central processor unit) – є центральним пристроєм, мозком, який безпосередньо здійснює координування усієї роботи, опрацювання, взаємозв‟язок та обмін даними поміж функціональними вузлами через системну шину. МП включає в себе: 1) арифметико-логічний пристрій (АЛП) для виконання арифметичних і логічних обчислень; 2) пристрій керування для координації й синхронізації роботи усіх пристроїв комп‟ютера; 3) мікропроцесорну пам‟ять у вигляді регістрів та кеш-пам‟яті; 4) інтерфейсну систему, яка реалізує зв‟язок з іншими пристроями через системну шину. Зазвичай CPU і співпроцесор (FPU – floating point unit), який здійснює опрацювання дійсних чисел з рухомою крапкою, функціонально об‟єднані в одну мікросхему

(chip);

12

 

Розділ 1

 

 

 

 

 

Пристрої

 

 

 

пам‟яті

Системний

Таймер

Оперативна

Контролери

пам‟ять

пристроїв

блок

 

 

 

 

 

Мікроп-

 

 

 

 

роцесор

Системна шина (передавання адрес та даних)

 

Генератор

Відео-

Контролер

Контролер

Контролер

тактових

контролер

принтера

клавіатури

миші

імпульсів

 

 

 

 

 

Монітор

Принтер

Клавіатура

Миша

 

Рис. 1.1. Типова архітектура комп‟ютера

 

пристрої швидкої пам‟яті – це оперативна пам‟ять (ОП чи RAM – read access memory) та надшвидка кеш-пам‟ять (cache), потрібні для зберігання опрацьовуваних даних. Вони є енергозалежними, тобто при вимиканні живлення інформація в цих пристроях втрачається;

пристрої пам‟яті для довготермінового зберігання інформації є енер-

гонезалежними “сховищами” великої ємності. Доступ до інформації на таких носіях є набагато повільніший, аніж в ОП, але вартість одиниці пам‟яті є набагато менша. Найпоширенішими сьогодні є жорсткі диски (вінчестери, HDD – hard disk driver), СD, DVD, USB флеш-накопичувачі (flash USB drive), картки памяті (memory cards) тощо;

пристрої введення інформації передають інформацію від користувача до комп‟ютера для її подальшого опрацювання. Більша частина інформації надходить сьогодні до комп‟ютера через клавіатуру та мишу. Окрім того, інформація може вводитися до комп‟ютера зі сканера, сенсорних екранів, з голосу людини через мікрофонні акустичні системи, з пристроїв зберігання інформації, з мережі, наприклад Internet;

пристрої виведення інформації приймають опрацьовану інформацію і розміщують її на різноманітних фізичних пристроях виведення, щоб вона стала придатна для подальшого використання поза комп‟ютером. Більшість вихідної інформації комп‟ютера відображується на екрані, друкується на папері чи використовується для керування іншими пристроями. Також інформація може виводитися до мережі, приміром до Internet. Але найбільш зручним і поширеним пристроєм виведення даних є екран. Основними характеристиками, які забезпечують якість зображення, є фізичні розміри екрана і його елементів зображення (пікселів чи точок), частота розгортки, кольорові характеристики тощо. Кількість точок (пікселів) по горизонталі та вертикалі екрана називають його роздільною здатністю.

Апаратні та програмні засоби ЕОМ

13

Для узгодження функціонування різних пристроїв ПК та системної шини використовують спеціальні мікросхеми – контролери (controller) та адаптери.

1.2 Програмне забезпечення

Програмне забезпечення (ПЗ) (software) – сукупність програм та службових даних, призначених для керування роботою комп‟ютера. ПЗ комп‟ютерів можна поділити на такі основні класи:

операційна система та сервісні програми;

інструментальні мови та системи програмування;

прикладні системи.

Операційна система (ОС) (operating system) – це сукупність програмних засобів, яка здійснює розподіл ресурсів ПК та керування роботою усієї обчислювальної системи. Відомими операційними системами сьогодні є сімейство ОС Windows, Linux, Unix тощо. Операційна система виконує такі функції: керування пам‟яттю, введенням-виведенням даних, файловою системою, взаємодією процесів; диспетчеризацію процесів; захист інформації; облік використовування ресурсів; опрацювання командної мови, – тобто забезпечує функціонування комп‟ютера.

До складу сучасних операційних систем входять кілька підсистем, основні з них:

підсистема управління процесами;

файлова підсистема;

драйвери – спеціальні програми, які забезпечують роботу з апаратурою;

функції для організації взаємодії програм із користувачем;

служба безпеки – розмежовування прав доступу.

Інструментальні мови та системи програмування використовують для переведення алгоритмів до комп‟ютерних програм, тобто для розробляння програм системного та прикладного призначення.

Інструментальні мови програмування поділяють на дві основні категорії:

мови низького (машинного) рівня – асемблери, близькі за структурою до інструкцій процесора. Вони орієнтовані на конкретні процесори, а тому набори їхніх інструкцій для різних груп комп‟ютерів відрізнюються;

мови високого рівня, призначені для того, щоб полегшити процес створювання програм, а тому їхні інструкції багато в чому нагадують мови спілкування людей. Здебільшого кожна з команд поєднує в собі одразу кілька машинних команд. Розрізнюють чотири різновиди мов високого рівня: 1) імперативні (процедурні), наприклад Pascal, С; 2) функціональні – Lisp; 3) логічні –

Prolog; 4) об‟єктно-орієнтовані – C++, C#, Java, Object Pascal тощо.

Програми, створені мовою високого рівня, переводяться на машинну мову спочатку інтерпретаторами, а потім компіляторами. Інтерпретатор автоматично у міру введення програми перетворює її команди (чи код) на команди машинної мови. А компілятор вже транслює (переводить) усю введену програму за командою програміста. Результатом компілювання є згенерований об‟єктний код. Слово код ще доволі часто використовується для позначання тексту про-

14

Розділ 1

грами чи її частини. Системи програмування надають зручний інтерфейс для створювання та налагоджування програм тією чи іншою мовою, приміром С++ Builder, Visual C++, Delphi, Visual Basic тощо.

Прикладні системи призначені для розв‟язування задач певних класів. Приміром для виконування математичних інженерних обчислень використовують спеціальні математичні пакети MathCAD, Mathematika, Matlab; для введення й редагування текстової інформації застосовують текстові редактори Microsoft Word, Блокнот (Notepad) та інші; опрацьовувати табличні дані зручно в Microsoft Excel, а для опрацювання графічних даних існують пакети Adobe Photoshop, Paint тощо. Існує чимало інших прикладних програм для ПК, таких як видавничі системи, програми для анімації, програми-перекладачі, системи автоматизованого проектування та безліч інших.

Робота за сучасним комп‟ютером потребує від користувача взаємодії як з апаратною частиною, так і з різноманітним програмним забезпеченням. Аналогічно робота сучасного комп‟ютера потребує підключення та взаємодії з різними периферійними пристроями. Здійснюється це за допомогою інтерфейса, під яким розуміють сукупність апаратних та програмних засобів, які забезпечують взаємодію, співпрацю різних апаратних пристроїв поміж собою і з людиною.

Отже, кожна ЕОМ має дві основні складові – апаратне (hardware) і програмне (software) забезпечення. Збої у роботі однієї з програм можуть спричинити збої у функціонуванні комп‟ютера й одержання помилкових результатів його роботи. Помилки апаратури призводять до неможливості реалізації команд програмного забезпечення.

1.3 Файлова система

Файлова система – це сукупність каталогів та файлів, які зберігаються на носіях зовнішньої пам‟яті довготермінового зберігання інформації ПК. Файлова система є основним інформаційним об‟єктом ОС.

Файл – це іменована область зовнішньої пам‟яті для зберігання програм та даних. Кожний файл має такі характеристики: ім‟я, розмір, дату останнього зберігання, певне місце розташування на диску та атрибути доступу. Імена файлів складаються з власного імені, крапки і розширення:

<ім‟я>.<розширення>,

де ім‟я – набір із символів алфавіту, цифр і спеціальних символів, а розширення визначає тип файла і містить, зазвичай, три символи. Наприклад, текстові файли мають розширення txt, документи Microsoft Word – doc чи rtf, таблиці Microsoft Excel – xls, бази даних Microsoft Access – mdb, графічні файли – bmp, psd, jрg, gif тощо. Інформація про всі атрибути файла міститься у каталогах.

Каталог (тека, директорія) – це логічна одиниця організації диска, яка має власне ім‟я і може містити в собі файли та інші каталоги (підкаталоги). Головний каталог диска називають кореневим. Ім‟я кореневого каталогу складається з імені диска та символу двокрапки. Інформація про всі атрибути файлів та підкаталогів використовується ОС для визначання повного місцеперебування

Апаратні та програмні засоби ЕОМ

15

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

кореневого, наприклад: C:\Program Files\Microsoft Office\Clipart\A16.gif.

Каталоги, які входять до кореневого каталогу, називаються підкаталогами 1-го

рівня. Каталоги, які входять до складу підкатало-

 

C:

 

 

 

гу 1-го рівня, називаються підкаталогами 2-го

 

 

command.com

рівня і т. д. Ієрархічну побудову диска можна

 

 

 

 

autoexec.bat

подати у вигляді дерева підкаталогів (рис. 1.2).

 

 

 

 

Program

Для роботи з файлами існує кілька станда-

 

 

 

 

 

MicrosoftOffice

 

 

 

 

 

ртних операцій, які підтримують усі операційні

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Clipart

системи: створювання, копіювання, переміщу-

 

 

 

 

 

 

 

 

 

 

 

 

вання, перейменовування, вилучання.

 

 

 

 

 

 

Шаблони

 

 

 

 

 

 

Спеціальне призначення мають файли-

 

 

 

 

 

VB

 

 

 

 

ярлики. У такому файлі міститься посилання на

 

 

 

 

 

 

VB6.exe

 

 

 

 

 

 

 

 

 

 

 

 

інший файл (каталог, програму, документ тощо).

Запуск ярлика відкриє той об‟єкт, на який він

Рис. 1.2. Фрагмент дерева

каталогів диска С

посилається.

 

1.4 Системи числення

1.4.1 Різновиди систем числення

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

Унепозиційних системах числення значення цифр не залежать від їхнього розряду (позиції) у записі числа. Прикладом непозиційної системи є римська система числення, яка має такі числові значення: I – 1, V – 5, X – 10, L – 50, C – 100, D – 500, M – 1000. Отож, число 30 має вигляд: XXX. Тут цифра X в будьякому місці означає число десять. Запис інших чисел: IV – 4, VI – 6, IX – 9, XI – 11, XL – 40, LX – 60, XC – 90, CX – 110, CM – 900, MC – 1100, MCMLXXXIX – 1989. У записі цих чисел значення кожної літери не залежить від позиції, на якому вона стоїть. Для записування великих чисел доводиться долучати все нові й нові знаки. Непозиційні системи є незручні для записування великих чисел

ідля виконування арифметичних дій.

Узмішаних системах числення кількість допустимих цифр для різних розрядів (позицій) є різною. Вага кожного розряду визначається як добуток ваги попереднього розряду на вагу цього розряду. Найвідомішим прикладом змішаної системи числення є представлення часу у вигляді кількості діб, годин, хвилин і секунд. При цьому величина d днів h годин m хвилин s секунд відповідає

значенню d 24 60 60 + h 60 60 + m 60 + s секунд.

У позиційній системі числення значення кожної цифри залежить від її розряду (позиції) у послідовності цифр, що зображують число. Десяткова система числення, якою ми користуємося у повсякденній практиці, є позиційною систе-

16

Розділ 1

мою. Наприклад, у записі числа 444 цифра 4 повторюється три рази, але при цьому перша означає кількість сотень, друга – кількість десятків, третя – кількість одиниць. У комп‟ютері застосовуються позиційні системи числення.

1.4.2 Одиниці інформації

Будь-яка (числова, текстова, графічна, аудіо, відео тощо) інформація в комп‟ютері кодується у цифровому вигляді за допомогою двійкової системи числення. Використання двійкової системи числення набагато спрощує апаратну реалізацію пристроїв комп‟ютера, оскільки в цій системі числення є лише дві цифри: 0 та 1. Зручність використання двійкової системи числення в обчислювальній техніці зумовлена тим, що електронні перемикачі можуть перебувати лише в одному із двох станів: увімкненому чи вимкненому. Ці стани можна кодувати двома цифрами: 1 чи 0. Так само у двох станах може перебувати канал передавання даних “рівень напруги є високий” чи “рівень напруги є низький”. Крім того, чим більше рівнів (станів), які треба розрізнювати, тим менше є відмінностей поміж суміжними величинами і тим менш надійною є пам‟ять. Двійкова система числення потребує розрізнювати лише дві величини, а отже, це є самий надійний метод кодування цифрової інформації.

Оскільки у комп‟ютерах використовується запис інформації у двійковій системі числення, то кількість інформації вимірюють, підраховуючи кількість двійкових розрядів (комірок), потрібних для її запису. Одна двійкова цифра називається бітом (від англ. binary digit – двійкова цифра). За допомогою одного біта можна закодувати два інформаційних повідомлення, які умовно позначаються символами '0' та '1'. За допомогою n бітів можна закодувати 2n інформаційних повідомлень. Отже, біт є мінімальною одиницею обсягу пам‟яті, проте на практиці ніхто не опрацьовує дані розміром в один біт.

Байтом називають послідовність з восьми бітів. Байт є мінімальною адресованою одиницею обсягу пам‟яті. За допомогою одного байта можна закодувати 28 = 256 різних комбінацій бітів, а отже, змінна розміром в один байт може зберігати числа в межах від 0 до 255. Наприклад, число 1101 0011 – це інформація обсягом в один байт. Два байти становлять слово, чотири байти – подвійне слово.

Ще однією одиницею вимірювання інформації, меншою за один байт, крім біта, є ніббл. Ніббл (англ. nibble, nybble), чи полубайт – одиниця вимірювання інформації, яка становить чотири біти й, відповідно, може мати 24 різних значень. Ніббл є синонімом “тетради” і є зручний тим, що його можна подати однією шістнадцятковою цифрою.

Приміром, щоб закодувати літери кирилиці, вистачить лише п‟ять розрядів (бітів), оскільки 25 = 32. Але, окрім кирилиці, в інформаційних документах також широко використовуються латинські літери, цифри, математичні знаки та інші спеціальні знаки. Тому для кодування усіх згаданих символів використовується восьмирозрядна послідовність 0 та 1, тобто один байт (див. розд. 7). Наприклад: цифра '9' кодується послідовністю бітів 0011 1001, літера латини

'W' – 0101 0111.

Апаратні та програмні засоби ЕОМ

17

Для зручності позначання тисяч та мільйонів байтів використовуються такі одиниці:

кілобайт (1 Кб (kB) = 210байт = 1024 байт);

мегабайт (1 Мб (MB) = 220 байт = 1024 Кб = 1 048 576 байт);

гігабайт (1 Гб (GB) = 230 байт = 1024 Мб = 1 073 741 824 байт);

терабайт (1 Тб (TB) = 240 байт = 1024 Гб = 1 099 511 627 776 байт);

петабайт (1 Пб (PB) = 250 байт = 1024 Тб);

ексабайт (1 Eб (EB) = 260 байт = 1024 Пб);

зетабайт (1 Зб (ZB) = 270 байт = 1024 Eб);

йотабайт (1 Йб (YB) = 280 байт = 1024 Зб).

Наприклад, якщо на сторінці тексту розміщується в середньому 2500 знаків, то 1 Мб – це приблизно 400 сторінок, а 1 Гб – 400 тисяч сторінок.

Зауважимо, що одиниці вимірювання інформації ґрунтуються на степенях числа 2. Десяткові префікси (кіло, мега і т. д.) дописуються лише умовно, оскільки 210 = 1024 – число, близьке до 1000. Але різниця є, – і вона зростає зі зростанням ваги префікса. Більш правильно є використовувати двійкові префікси,

але на практиці вони наразі не застосовуються, можливо, через неблагозвучність – кібібайт (210), мебібайт (220), гібібайт (230), тебібайт (240), пебібайт (250), эксбібайт (260), зебібайт (270), йобібайт (280).

Іноді десяткові префікси застосовують і у прямому значенні, наприклад при зазначенні ємності жорстких дисків чи модулів пам‟яті, а також при зазначенні пропускної здатності каналів передавання даних (мереж) виробники використовують число 10 як основу для піднесення до степеня. Один гігабайт у цьому випадку дорівнює 109 б. А отже, реальна ємність, наприклад, 250гігабайтного вінчестера (HDD) становить приблизно 232 Гб.

1.4.3 Основні позиційні системи числення

Кожне число N у позиційній системі числення з основою q можна в єдиний спосіб подати у вигляді полінома:

n 1

Nq = an-1 qn-1+an-2 qn-2 + ... +a1 q1 + a0 q0 + a–1 q–1 + …+ ak qk = ai qi ,

i k

де q – основа позиційної системи числення, яка визначає її назву; ai цифри числа відповідного i-го розряду;

n – кількість цифр цілої частини числа;

k – кількість цифр дробової частини числа.

За q = 10 матимемо найпоширенішу десяткову систему числення. У ній кожне число записується поєднанням десяткових цифр, а внесок конкретної цифри залежить від її позиції – розряду. Розряди відлічуються справа наліво. Перший розряд називається розрядом одиниць, другий – десятків, третій – сотень і т. д. Число в десятковій системі числення можна подавати за допомогою операцій додавання, множення та піднесення до степеня, наприклад:

724810 = 7 103 + 2 102 + 4 101+ 8 100 = 7000 + 200 + 40 + 8 = 7248.

18

Розділ 1

Для двійкової системи за q = 2 вищенаведена формула набуде вигляду

N2 = an-1 2n-1 + an-2 2n-2 + ...+ a1 21 + a0 20 + …

Наприклад:

10101.1012 = 1 24 + 0 23 + 1 22 + 0 21 + 1 20 + 1 2–1 + 0 2–2 + 1 2–3 = 21.62510.

За q = 8 в аналогічний спосіб здобувають формулу для вісімкової системи, а за q = 16 – для шістнадцяткової системи числення тощо.

Існує чимало різноманітних позиційних систем числення, відмінних від десяткової, але у зв‟язку із розвитком обчислювальної техніки, найбільшого поширення набули двійкова, вісімкова й шістнадцяткова системи числення (див. табл. 1.1). У подальшому, щоб явно зазначити використовувану систему числення, в індексі показуватимемо основу системи числення.

 

 

Таблиця 1.1

 

 

Основні системи числення

 

 

 

Системи числення

q

Базисні цифри системи числення

 

 

 

Двійкова

2

0, 1

Вісімкова

8

0, 1, 2, 3, 4, 5, 6, 7

Десяткова

10

0, 1, 2, 3, 4, 5, 6, 7, 8, 9

Шістнадцяткова

16

0, 1, …, 9, А(10), B(11), С(12), D(13), E(14), F(15)

Розглянемо кілька прикладів записування чисел у різних системах числення та їхнє десяткове подавання:

194.3810 = 1 102 + 9 101 + 4 100 + 3 10–1 + 8 10–2 = 194.3810; 10011.12 = 1 24 + 0 23 + 0 22 + 1 21 + 1 20 + 1 2–1 =19.510; 237.28 = 2 82 + 3 81 + 7 80 + 2 8–1 = 159.2510;

A1F16 = 10 162 + 1 161 + 15 160 = 259110.

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

1.4.4 Переведення чисел з однієї системи числення до іншої

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

Переведення чисел з q-тої системи числення до десяткової безпосередньо виходить з поліноміального виразу конкретного числа, яке було розглянуте у п. 1.4.3.

Переведення цілого десяткового числа в q-ту систему числення відбувається у два етапи: спочатку переводиться ціла частина, потім дробова, після чого ліворуч від крапки записується ціла частина, а праворуч – дробова. Суть переведення полягає у послідовному діленні десяткового числа та його часток на

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]