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

Завдання.

Вихідні дані:

  • Провести огляд сучасного стану та перспективи розвитку персональних гаджетів;

  • Провести аналіз найбільш поширених паттернів проектуваня програмного забезпечення;

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

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

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

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

Найвідоміші типи ґаджетів: мобільний телефон,смартфон, портативнагральна приставка,мультимедійний програвач,GPS-навігатор,електронна книга.

Атрибути

  • Портативність. Вага типових ґаджетів не перевищує 300 грам, а розміри дозволяють їм вміщуватися в кишені одягу.

  • Функціональність. Ґаджет, окрім очікуваних функцій(наприклад,індикаціячасудлягодинника) може містити досить незвичний набір додаткових функцій (в годинник може бути вбудованийрадіоприймач,мікрокомп'ютер, плеєр тощо)

  • Обмежені можливості. Більшість ґаджетів не мають можливості розширення функціональності за рахунок приєднання додаткових модулів. Також ґаджети, найчастіше, комплектуються недостатньо ємнимиакумуляторами. Типовий час автономної роботи 8-12 годин при середньо-інтенсивному використанні додаткових функцій.

У програмних засобах

У програмних засобах ґаджет — невеликий застосунок, що надає додатковуінформацію, наприклад,прогноз погодиабокурс валют. Типовими прикладами гаджетів в ПЗ єGoogle Gadgetsабо міні-додатки для бічної панеліопераційної системиWindows(зветьсяпристосунок в українській локалізації). Див. також віджет.

Патерн (англ. 'pattern - зразок, шаблон, система) - запозичене слово. Слово «pattern» використовується як термін в кількох західних дисциплінах і технологіях, звідки воно і проникло в російськомовне середовище. Сенс терміна «патерн» завжди вже ніж просто «взірець», і варіюється в залежності від галузі знань, в якій використовується.

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

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

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

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

У комп'ютерних науках шаблони проектування є широко використовуваним рішенням великого класу проблем програмування.

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

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

Існують декілька типів патернів проектування, кожен з яких призначений для вирішення свого кола завдань:

• Що породжують патерни, призначені для створення нових об'єктів у системі.

Структурні патерни, які вирішують завдання компонування системи на основі класів і об'єктів.

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

У загальному випадку опис кожного патерну (шаблону) проектування містить такі обов'язкові елементи:

1.Назву патерну (оригінальна і російськомовне). Якщо патерн має кілька імен, то вони також наводяться.

2.Назначеніе патерну. Тут вказується розв'язувана патерном завдання.

3.Общая опис патерну.

4.Структура патерну у вигляді UML-діаграми класів.

5.Реалізація патерну з прикладами коду на C + +.

6.Последствія застосування патерну.

У розробці програмного забезпечення, шаблон проектування або патерн (англ. design pattern) - повторимость архітектурна конструкція, що представляє собою рішення проблеми проектування в рамках деякого часто виникає контексту. Зазвичай шаблон не є закінченим зразком, який може бути прямо перетворений в код; це лише приклад розв'язання задачі, який можна використовувати в різних ситуаціях. Об'єктно-орієнтовані шаблони показують відносини і взаємодії між класами або об'єктами, без визначення того, які кінцеві класи чи об'єкти додатки будуть використовуватися. «Низькорівневі» шаблони, що враховують специфіку конкретної мови програмування, називаються ідіомами. Це гарні рішення проектування, характерні для конкретної мови або програмної платформи, і тому не універсальні. На найвищому рівні існують архітектурні шаблони, вони охоплюють собою архітектуру всієї програмної системи. Алгоритми за своєю суттю також є шаблонами, але не проектування, а обчислення, так як вирішують обчислювальні завдання.

Сі - це мова програмування високого рівня, який більш популярний, ніж Паскаль і Асемблер. Сі, дозволяє писати програми під Windows. Адже перші Операційні системи були написані саме на мові Сі. Програмування під Windows зараз дуже поширене в світі, але для цього необхідно багато праці і зусилля. В даному курсі ми пройдемо не один десяток уроків, щоб спочатку навчитися програмувати на мові С. В них ви знайдете приклади програмування на си. Після чого ви можете вивчати програмування під windows.

Щоб писати програми на мові Сі, необхідно увійти в середу програмування. Якщо у вас немає цієї програми, то ви можете завантажити її на будь-якому сайті, це: Borland C, Visual C++, Visual Studio 2005, Visual Studio 2008 і вже виходить Visual Studio 2010 пякщо ж вона у вас є, то приступимо до процесу навчання.

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

Мо́ва програмува́ння (англ. Programming language) — це штучна мова, створена для передачі команд машинам, зокрема комп'ютерам. Мови програмування використовуються для створення програм, котрі контролюють поведінку машин, та запису алгоритмів.

Більш строге визначення: мова програмування — це система позначень для опису алгоритмів та структур даних[1], певна штучна формальна система, засобами якої можна виражати алгоритми[2]. Мову програмування визначає набір лексичних, синтаксичних і семантичних правил, що задають зовнішній вигляд програми і дії, які виконує виконавець (комп'ютер) під її управлінням.[Джерело?]

З часу створення перших програмованих машин було створено понад дві з половиною тисячі мов програмування.[3] Щороку їх кількість поповнюється новими. Деякими мовами вміє користуватись тільки невелике число їх власних розробників, інші стають відомі мільйонам людей. Професійні програмісти зазвичай застосовують в своїй роботі декілька мов програмування.

Історія

Власне перші мови програмування з'явилися задовго до появи перших комп'ютерів. Ще в 19-му столітті існували "програмовані" ткацькі верстати та піаніно-програвачі, спосіб програмування нагадує так звані предметно-орієнтовані мови програмування. На початку 20-го століття починають використовуватись перфокарти, та механічна обробка даних. В 1930 -1940 рр. виникає лямбда-числення та машина Тюринга, які застосовували математичну абстракцію для опису алгоритмів. Лямбда-числення згодом здійснило вплив на проектування мов програмування.[4]

В 1940 роках створюються перші електричні, двійкові комп'ютери. Вважається, що першу мову програмування високого рівня — Планкалькюль (нім. Plankalkül) розробив німець Конрад Цузе в період 1943 -1945 році, але в той час вона не була реалізована і не одержала уваги. Реалізацією мови зайнялися і здійснили лише в 1998-2000 роках[5].

У кінці 40-их — початку 50-их застосовувалися інтерпретовані системи кодування, коли певні команди мови програмування кодувалися числами, які уже інтерпретувалися машинним кодом. Ці системи називалися «автоматичним програмуванням», були простішими для програмування, ніж машинні коди, але могли мати значно меншу (до 50 разів) швидкодію, через що часто надавали перевагу машинним кодам. До таких систем належали — Short Code для BINAC (1949) і UNIVAC I (1952), Speedcoding для IBM 701, розроблена Джоном Бекусом у 1954.

Першою широковживаною компільованою мовою став розроблений групою Джона Бекуса Фортран, анонсований у 1954 році і випущений у 1957 для IBM 704. Основним призначенням Фортрану були швидкі наукові обчислення, оголошувалося що швидкодія згенерованого компілятором коду майже не відрізянтиметься від машинного коду написаного вручну. Уже у квітні 1958 близько половини програм для IBM 704 були написані на Фортрані. Випущений у 1958 році Фортран II дозволяв незалежну компіляцію підпрограм, що дозволило створювати більші програми, оскільки низька надійність IBM 704 не дозволяла скомпілювати без збоїв велику програму (понад 300—400 рядків) одразу. Розроблений у 1960—1962 роках Фортран IV був однією з найпоширеніших мов того часу і лишався стандартною версією Фортрану до появи у 1978 році Фортран 77.

У 1958 році у MIT розробили LISP — першу функційну мову, яка понад чверть століття домінувала у програмуванні задач штучного інтелекту.

У кінці 1950-их почали розроблятися різні мови програмування. У 1958 році декілька значних груп комп'ютерних користувачів у США, включаючи SHARE — групу науковців-користувачів IBM і USE (UNIVAC Scientific Exchange, група науковців-користувачів UNIVAC) запропонували ACM заснувати робочу групу зі створення універсальної мови програмування. Також ще у 1955 році німецьке Товариство прикладної математики і механіки (GAMM) заснувало комітет зі створення універсальної мови програмування. У кінці травня 1958 року було проведено зустріч у Цюриху між ACM і GAMM, на матеріалах якої у грудні опубліковано "ALGOL 58 Report". На його основі було створено 3 значні реалізації — MAD (1961), NELIAC (1963), JOVIAL (1963). З них лише JOVIAL отримав поширення, ставши на чверть століття офіційною мовою програмування у Військово-морських силах США. SHARE і IBM почали створення власної реалізації ALGOL, але припинили, врахувавши витрати на створення і просування Фортрану.

Впродовж 1959 року ALGOL 58 широко обговорювався, була запропонована нотація для опису синтаксису мов програмування — форма Бекуса-Наура. У 1960 проведено чергову зустріч і опубліковано ALGOL 60 Report. ALGOL вплинув на багато мов програмування і став стандарною мовою для публікації алгоритмів, але через ряд причин не одержав широкого поширення — він був заскладним, і не було реалізацій, які підтримували його повністю, відсутність стандартного введення-виведення привела до появи різних несумісних реалізацій, деякі неоднозначності опису мови так і не були розв'язані. Також широкого вжитку уже набув Фортран, і IBM не підтримала ALGOL.

У 1959 році була проведена зустріч у Пентагоні для створення мови CBL (Common Business Language), засновано комітет з його створення, і у 1960 опубліковано початкову специфікацію COBOL 60, який невдовзі став першою мовою прийнятою у Міністерстві оборони США. У 1968 році COBOL було стандартизовано ANSI.

У 1964 році було створено спрощену мову BASIC (Beginners All-purpose Symbolic Instruction Code) для навчання програмуванню студентів, які переважно спеціалізувалися у вільних мистецтвах, а не технічних науках.

Тоді як науковці переважно використовували Фортран, а бізнес — COBOL, у 1963 році в IBM вирішили створити універсальні платформу IBM/360 і мову програмування. У стислі терміни до 1965 року було розроблено мову PL/I, яка поєднувала можливості Фортран, ALGOL і COBOL, і виявилась заскладною, хоча і була у широкому вжитку у 1970-их у наукових і бізнес задачах, також її підмножини (PL/C, PL/CS) використовувалися для навчання програмуванню.

На початку 1960-их було створено перші мови із динамічною типізацією — APL і SNOBOL.

SIMULA 67 була першою об'єктно-орієнтованою мовою програмування.

У 1965 році Ніклаус Вірт і Тоні Хоар запронували комітету з розвитку мови ALGOL свою версію, яку згодом назвали ALGOL-W і застосовували для навчання в деяких університетах. Пропозиція була відхилена через незначну кількість змін, на користь значно складнішого ALGOL 68. У ALGOL 68 з'явилися визначення структур данних і динамічні масиви. ALGOL 68 став першою мовою із формальною специфікацією, яка однак була складною для розуміння.

У 1971 році Вірт опублікував опис мови Pascal, яка у 70-их стала загальновживаною для навчання студентів.

У 1972 році Деніс Річі розробив у Bell Labs мову C. Тоді ж у Марселі створено інтерпретатор мови Пролог - першої і найвідомішої мови логічного програмування. Алан Кей у Xerox PARC розробив першу широко вживану об'єктно-орієнтовану мову — Smalltalk.

у 1973 Робін Мілнер в Единбурзькому університеті створив ML.

У 1975 році в Массачусетському технологічному інституті описано спрощений діалект мови Лісп — Scheme.

У 1976 випущено мову для статистичного програмування S, на базі якої в 1993 році створено R.

У 1977 році випущено Bourne shell.

У 1975 Міністерство оборони США утворило міжнародну групу для створення нової мови програмування для власних потреб, конкурс у 1979 виграла мова Ада.

У 1981 випущено dBASE II.

У 1984 році з метою об'єднання різних діалектів Ліспу створено Common Lisp. Випущено MATLAB

У 1985 році Б'ярн Страуструп опублікував реалізацію мови C++. Тоді ж випущено AWK.

У 1986 році опублікована мова Objective-C і створено Erlang. Тоді ж Borland і Apple незалежно створили об'єктно-орієнтоване розширення мови Pascal - Object Pascal.

У 1987 році створено Perl.

У 1990 році опубліковано Standard ML і Haskell.

У 1991 році створено Visual Basic і опубліковано Python.

У 1992 випущено Oracle 7 з підтримкою PL/SQL

У 1993 році створено Lua.

У 1995 році Sun Microsystems випустила Java, Netscape — JavaScript, тоді ж створено PHP і Ruby.

У 1996 році створено OCaml.

У 2001 році створено C#.

У 2002 році створено F#. У 2003 році створено Scala.