Сторінки

вівторок, 21 жовтня 2014 р.

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

Вісімкова система числення
Ось якби природа розпорядилась по іншому так, що в людей було б не по п'ять а по чотири пальці на кожній руці? Тоді мабуть цифр було б вісім. І ми зараз, мабуть, використовували б вісімкову систему числення! І така система дійсно існує. І як вона виглядає, запитаєте ви? Ну, по-перше вона має лише вісім цифр.
Для зручності користування використовують перші вісім знаків десяткової системи: 0, 1, 2, 3, 4, 5, 6 і 7. Спробуєм уявити, як потрібно записувати числа й вісімковій системі, за умови, що правила складання числа з окремих цифр будуть такими ж, як і в десятковій системі числення.
Числа від нуля до семи будемо записувати як і в десятковій системі, будем записувати за допомогою одної цифри. В даному випадку числа, записані в дксіткрвій і вісімковій системах, не будуть відрізнятись. Далі в десяткові системі йде число вісім. Цифра 8 у вісімкові системі відсутня!
Далі ми вчинимо у відповідності до описаних вище правил. Ми спробуємо додати новий розряд, який буде рівний в нас одиниці. Молодший розряд буде рівний нулю. При цьому число 8 у вісімковій системі числення буде виглядати 10. Для, того щоб не плутатись, при записах чисел у різних системах числення в математиці прийнято помічати кожне число спеціальною міткою, яка показує в якій системі числення записано число.
Ось декілька прикладів запису числа в різних системах числення:
9 в 10=11 в 8, 10 в 10=12 в 8, 11 в 10=13 в 8 і так далі.
Далі розряди додається за аналогією.
Кількість цифр, використовуваних в системі числення, називають її основою. Десяткова система числення має основу 10, а вісімкова - основу 8. Ну тепер, мабуть, легко можна уявити системи з іншими основами.
Реально на практиці найшли застосування, крім десяткової і вісімкової системи, ще дві системи: шіснадцяткову та двійкову. Причому остання (двійкова система) і є тією системою чисел, яку інженери з легкістю змогли виразити за допомогою електронних схем. Вісімкова і шістнадцяткова системи числення зручні для запису комп'ютерних даних на папері і на екрані комп'ютера.

Шістнадцяткова система числення
У шістнадцяткові система числення, як ви вже здогадались, використовується шістнадцять цифр. Звичайно для позначення перших десяти цифр використовують ті ж самі символи, що і для десяткової системи. А ще шість невистачаючих замінююьб буквами латинсткого алфівіту. Ось повний набір: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E та F.
Одним розрядом у шістнадцятковій системі числення можна записати число від нуля до п'ятнадцяти. Число 16 в десятковій записується, як 10 в шістнадцятковій. Використання букв може заплутати. Тому перед шістнадцятковим числом що починається з букви прийнято ставити ні нащо невпливаючий 0.

пʼятниця, 17 жовтня 2014 р.

Мова програмування С

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

Створення та розвиток мови С. Мову С розробив на початку 70-х років минулого століття Деніс Рітчі (Dennis M. Rirchie), співробітник фірми Bell Telephone Laboratories (США). Спочатку мова створювалась як ефективний  і зручний професійний інструментарій, призначений для програмування операційної системи UNIX. Попередницями С були мови BCPL та B. Довший час фактичним стандартом мови C слугувала її реалізація в 7-й версії UNIX, описана Б. Керніганом (Brian W. Kernigkhan) та Д. Рітчі в першому виданні відомої усі програмістам книги "The C Programming language" (1978р). Цю версію мови прийнято позначати K&R.
Властивості мови С настільки захопили програмістів, що незабаром її стали широко використовувати для створення програм у різних практичних сферах. З'явилося багато версій і діалектів мови , часто несумісних між собою. Тому в 1983р. був сформований комітет із розроблення стандарту мови С. Шість років створювався стандарт С, який у 1989р. затвердив Американський національний інститут стандартизації (ANSI-American National Standarts Institute), а в наступному році - Міжнародна організація стандартизації (ISO - International Standarts Organization). Цей стандарт називають ANSI/ISO C, його повністю підтримую переважна більшість сучасних компіляторів мови С.
З 80-х років мовою С розробляють програми практично для всіх типів комп'ютерів: великих універсальних ЕОМ (мейнфреймів), міні-ЕОМ та персональних комп'ютерів, включаючи IBM-сумісні та комп'ютери Macintosh, а також для різних операційних середовищ: MS DOS, UNIX, Windows, Linux, Mac OS, OS/2 та інших. Створюються системи програмування С, до складу яких входять бібліотеки з широким набором різнотипних функцій та інтегровані середовища розробки (IDE - Integrated Development Enviroment). IDE призначені для швидкого та наочного запису й редагування текстів програм, їх компіляція та налагодження , а також для компонування великих програмних проектів. Одним з найбільш популярних IDE визнано Borland C/C++ фірми Borland International (тепер Inspire), розроблене для створення програмних продуктів мовами C та C++ в операційних середовищах MS DOS та Windows.
У 1999р. затверджено новий стандарт С, який не змінив базових концепцій та структури мови, а лише частково доповнив їх і розширив стандартні бібліотеки з урахуванням нових апаратних і системних можливостей комп'ютерів. На жаль, компілятори С-99 та відповідні середовища програмування ще не набули належного поширення .
Мова С стала основою створення і розвитку низки мов об'єктно-орієнтованого програмування, зокрема: C++, Java, C#. Першою назвою С++ була "C з класами", чим підкреслюють, що С становить фундамент нової мови, а саму мову С навіть оголовили підмножиною С++, проте згодом їх визнали двома самостійними мовами. Насправді, мова С++ є розширенням мови С, оскільки компілятори С++ підтримують усі синтаксичні конструкції та властивості мови С. Додатково С++ включає спеціальні засоби та бібліотеки, які реалізують принципи об'єктно-орієнтованого програмування.

Загальна характеристика мови С. Сучасна універсальна мова програмування С призначенна для створення прикладних (ужиткових) програмних продуктів і системних компонентів програмного забезпечення комп'ютерів. Підкреслимо основні риси мови С.
Потужність і гнучкість - ці терміни вживають найчастіше, характеризуючи С. Мовою С написано більшу частину програм універсальної і потужної операційної системи UNIX, створено ряд компіляторів та інтерпретаторів з різних мов програмування (зокрема Pascal, APL, LISP, Basic тощо), розроблено велику кількість інтерфейсів, різноманітних інструментальних засобів, в т. ч. текстових і графічних редакторів, систем і спеціалізованих програм для наукових досліджень, комп'ютерних ігор та багато іншого.
Ефективність. Програми мовою С достатньо швидкодійні й економічні за обсягами оперативної пам'яті, оскільки вони базуються на реальних можливостях комп'ютера. Це пов'язане з тим?, що С, хоча і є універсалною мовою програмування, але вона належить до мов високого рівня, як наприклад, Pascal, Ada, Modula-2, чи Basic. C - мова середнього рівня, яка може оперувати безпосередньо з даними та їх елементами: байтами, бітами, словами, адресами. Цим С-програми подібні до програм, написаних мовою асамблера, їх можна налаштовувати або на максимальну швидкодію, або на оптимальне використання оперативної пам'яті.
Структурованість. С належить до мов, які реалізують принципи структурованого підходу, зокрема проектування програми "зверху в низ", модульність, локалізацію області дії імен, автономність підпрограм, відокремленого коду програми від даних та інші. Структурованість С-програм близька до структурованості програм, написаних мовами Pascal чи Modula-2. Натомість С використовує єдиний вид підпрограм - функції. Мова С підтримує практично всі керуючі конструкції, а також типи і структури даних, які визнані сучасною теорією та практикою програмуваня як найбільш ефективні.
Орієнтація на професіоналізм програміста. Одна з базових концепцій С - високий рівень довіри програміста, Стваренна для потреб програмістів-професіоналів, мова С надає користувачеві широку свободу вибору форм даних і засобів програмування. Водночас потрібно пам'ятати, що відсутність контролю може призвести до небезпечних помилок у роботі програми, тому на програміста лягає значно вища, ніж в інших мовах, відповідальність за правильність результатів виконання програми.
Лаконізм. Ще однією рисою С, яка приваблює програмістів, є лаконізм запису конструктивних компонентів програм, пов'язаний перед усім з не великою кількістю ключових слів і потужним набором операцій. Програми мовою С можуть бути гранично компактними і короткими. Проте інколи надмірне прагнення до лаконізму робить програмний код малозрозумілим і сприятливим для помилок, які важко уявити. Недарма для С-програм традиційно проводять конкурс на найбільш заплутану програму.
Мобільність. Важливою рисою сучасних мов програмування є їх мобільність, яка дає змогу переносити програму, написану в одній системі програмування (тобто на певній операційній платформі) в інше операційне середовище. Мова С належить до мов, які характеризуються доброю мобільністю: перенесення програми вимагає мінімальних змін або доповнень. Безумовно, ті програми чи програмні компоненти, що використовують не стандартні засоби мови, а орієнтуються на конкретне апаратне забезпечення (наприклад, на певний вид відеосистеми або особливості механізму звертання файлів), залишаються немобільними.
Підсумовуючи сказане, можна зробити загальний висновок: С - універсальна мова програмування середнього рівня, яка підтримує більшість сучасних концепцій програмування, характеризується достатньою потужністю, доброю структурованістю, високою ефективністю, можливістю безпосереднього доступу до даних, компактністю та мобільністю програм. Основним недоліком мови є низька надійність через широку  свободу і неконтрольованість дій програміста.

Слово до читача. Щоб навчитись програмувати, недостатньо ознайомитись з мовою чи переглянути певну кількість програм. Необхідно самостійно
складати та реалізовувати програми, перевіряючи їх працездатність за різних умов виконання, шукати оптимальні програмні рішеня й експерементувати, вдосконалювати зміст і стиль запису програм.
Потужна за своїми можливостями і водночас не надто складна, лаконічна й елегантна мова С, яка відповідає більшості сучасних вимог до мов практичного програмування, дає змогу всебічно оволодіти майстерністю створення програм. "..чим більше працюєш із мовою C, тим зручнішою вона стає," -зазначали у передмові до своєї книги Б. Керніган і Д. Рітчі. Цю тезу можуть підтвердити тисячі прогрпмістів по всьому світі.