Файлова система FAT, організація, програмування

Головні особливості операційних систем: DOS, UNIX, OS/2. Поняття FAT як масиву інформації про використання кластерів диска. Характеристика файлової структури на дискеті. Класифікація, особливості використання мов програмування. Логічна структура програм.

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

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

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

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ

ДЕРЖАВНИЙ ВИЩИЙ НАВЧАЛЬНИЙ ЗАКЛАД

УЖГОРОДСЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ

ФІЗИЧНИЙ ФАКУЛЬТЕТ

КАФЕДРА ТВЕРДОТІЛЬНОЇ ЕЛЕКТРОНІКИ

Курсова робота

Файлова система FAT, організація, програмування

Виконала: студентка 5 курсу

Герег Є.О.

Науковий керівник: Повхан І.Ф.

Ужгород 2012

Вступ

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

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

Базовими підходами до реалізації віртуальної пам'яті є сегментація i сторінкова організація. Обидва ці підходи дають можливість розглядати логічний адресний пpocтip процесу як сукупність окремих блоків, кожен з яких може бути відображений на основну пам'ять або на диск. Головна відмінність полягає в тому, що у випадку сегментації блоки мають змінну довжину, а у paзi сторінкової організації -- постійну. Сьогодні часто трапляється комбінація цих двох підходів (сторінковосегментна організація пам'яті).

1. Формулювання задачі

Дана програма має бути зразком навчальної програми по темі «Файлова система FAT, організація, програмування». Програма повинна працювати під керуванням операційної системи Windows. Програма повинна мати інтерфейс у вигляді вікон та меню для вибору режимів роботи програми. Керування режимами роботи програми виконати за допомогою клавіатури та миші. Програма повинна надавати можливість отримання та перевірки отриманих знань по даній темі.

2. Методи та засоби розв'язання задачі

Відразу після завантажувального сектора на логічному диску знаходяться сектори, що містять таблицю розміщення файлів FAT (File Allocation Table).

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

Магнітні стрічки.

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

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

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

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

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

Операційні системи, такі як DOS, UNIX, OS/2 використовують дисковий простір іншим способом.

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

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

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

Весь диск розбивається операційною системою на ділянки однакового розміру, які називаються кластерами. Кластер може містити декілька секторів. Для кожного кластера FAT має свою індивідуальну комірку , в якій зберігається інформація про використання даного кластера. Іншими словами, таблиця розміщення файлів - це масив, що містить інформацію про кластери. Розмір цього масиву визначається загальною кількістю кластерів на логічному диску. (Саме кластерів, а не секторів!).

2.1 Що зберігається в таблиці розміщення файлів?

Всі вільні кластери позначені в ній нулями. Якщо файл займає декілька кластерів, то ці кластери пов'язані в список. Для пов'язаних у список кластерів елементи таблиці FAT містять номера наступних використовуваних даним файлом кластерів. Кінець списку відзначений у таблиці спеціальним значенням. Номер першого кластера, виділеного файлу, зберігається в елементі каталога, що описує даний файл.

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

Отже, FAT - масив інформації про використання кластерів диска, містить однозв'язані списки кластерів, розподілених між файлами. Номера початкових кластерів файлів зберігаються в каталогах.

Розглянемо спочатку два формати FAT - 12-бітовий і 16-бітовий. Ці формати використовують, відповідно, 12 і 16 бітів для збереження інформації про один кластер диска.

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

При використанні FAT 16-бітового формату операційна система може працювати з диском, що має розмір більш 32 мегабайт. DOS версії 4.0 при використанні 16-бітового формату FAT і кластерів розміром 4 сектори може працювати з розділами, які по розміру досягають 134 мегабайти.

2.2 Як програма визначає формат FAT

Для DOS версії 3.0 16-бітовий формат використовується, якщо розмір диска перевищує 4086 кластерів. Це число утворилося виходячи з того, що в 12 розрядах може бути подане максимальне число 4096, крім того, значення, більші 0ff6, зарезервовані.

Для DOS версії 3.2 16-бітовий формат FAT використовується в тому випадку, коли розмір диска перевищує 20790 секторів (саме секторів, а не кластерів). Фактично це означає, що 16-бітовий формат використовується тільки для дисків, що мають розмір більш 10 мегабайт.

Сектор завантажувального запису (BOOT-сектор) диска, відформатованого в DOS версії 4.0 у полі зі зсувом 36h містить вісьмибайтовий рядок, що ідентифікує формат FAT. Вона має вигляд "FAT12 " або "FAT16 ". Можна використовувати це поле для визначення формату FAT. У структурі BOOT, описаної у файлі sysp. h, це поле назіваетcя fat_format.

Якщо розділи на жорсткому диску створювалися утілітою DOS FDISK, формат FAT можна визначити, аналізуючи вміст поля sys головного завантажувального запису (Master Boot Record). Якщо це поле містить значення 1, використовується 12-бітовий формат, якщо 4 - 16-бітовий. Проте диск, підготовлений програмами диск-менеджерів, може мати нестандартний для DOS формат таблиці розділів диска (Partition Table), і поле sys може містити інші розміри, відмінні від 1 і 4.

2.3 Формат FAT

Перший байт FAT називається "Описувач середовища" (Media Descriptor) або байт ID ідентифікації FAT. Він має таке ж значення, як і байт-описувач середовища, що знаходиться в BOOT-секторі логічного диска.

Наступні 5 байтів для 12-бітового формату або 7 байтів для 16-бітового формату завжди містять значення 0ffh.

Вся інша частина FAT складається з 12-бітових або 16-бітових комірок, кожна комірка відповідає одному кластеру диска. Ці комірки можуть містити такі значення: FAT12 FAT16

Що означає 000h0000h - вільний кластер,

ff0h - ff6hfff0h - fff6h - зарезервований кластер,

ff7hfff7h - поганий кластер,

ff8h - fffhfff8h - ffffh - останній кластер у списку,

002h - fefh0002h - ffefh - номер такого кластера в списку.

Безпосередній доступ до FAT може знадобитися для:

організації сканування каталогів для пошуку потрібних файлів;

для читання каталогів як файлів;

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

Загальна схема використання FAT така:

*Читаємо FAT у пам'ять.Як уже зазначалося FAT розташовується відразу після BOOT-сектора (логічний сектор із номером 1). Для точного визначення початкового сектора FAT потрібно прочитати у пам'ять BOOT-сектор і проаналізувати вміст блока параметрів BIOS. У поле ressecs записана кількість зарезервованих секторів, що розташовуються перед FAT. Поле fatsize містить розмір FAT у секторах. Крім того, варто враховувати, що на диску може знаходитися декілька копій FAT. Операційна система використовує тільки першу копію, інші потрібні для утіліт відновлення вмісту диска. Кількість копій FAT знаходиться в полі fatcnt BOOT-сектора.

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

*Використовуємо номер першого кластера як індекс у FAT для отримання номера такого кластера.

*Повторюємо цю процедуру доти, поки отримане з FAT значення не буде відповідати кінцю файла.

Процедура витягу номера кластера з FAT залежить від формату таблиці розміщення файлів.

16-бітову FAT можна уявити як масив 16-бітових чисел. Для визначення номера такого кластера треба просто отримати 16-бітове значення з FAT, використавши в якості індексу номер попереднього кластера.

Для 12-бітової FAT процедура значно складніша.

Необхідно виконати такі дії:

*Помножити номер початкового кластера на 3.

*Розділити результат на 2 (тому що кожний елемент таблиці має довжину 1.5 байта).

*Прочитати 16-бітове слово з FAT, використовуючи в якості зсуву значення, отримане після ділення на 2.

*Якщо номер початкового кластера парний, на вибране з FAT слово треба накласти маску 0fffh, залишивши молодші 12 бітів. Якщо номер початкового кластера не парний, вибране з FAT значення необхідно зсунути вправо на 4 біта, залишивши старші 12 біт.

*Отриманий результат - номер такого кластера в ланцюгу, значення 0fffh відповідає кінцю ланцюга кластерів.

Файлова система {DOS} має деревоподібну структуру. У кореневому каталозі розташовуються 32-байтові елементи, що містять інформацію про файли й інші каталоги. Для читання кореневого каталога необхідно визначити його розташування і розмір.

Кореневий каталог знаходиться відразу за останньою копією FAT. Кількість секторів, що займаються однією копією FAT, знаходиться в блоці параметрів BIOS у BOOT-секторі в полі fatsize, кількість копій FAT - у полі fatcnt блока BPB. Отже, перед кореневим каталогом знаходиться один BOOT-сектор і (fatcnt_*_fatsize) секторів таблиці розміщення файлів FAT.

Розмір кореневого каталога можна визначити виходячи із значення поля rootsize. У цьому полі при форматуванні диска записується максимальна кількість файлів і каталогів, що можуть знаходитися в кореневому каталозі. Для кожного елемента в каталозі виділяється 32 байта, тому кореневий каталог має довжину (32_*_rootsize) байтів.

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

Області логічного диска Номер початкового сектора на логічному диску

+----------------------+

: : 0

: BOOT-сектор і :

: зарезервовані :

: сектори :

: :

+------------------- :

: : ressecs - кількість резервних

: Перша копія FAT : секторів

:

+------------------- :

: : ressecs+fatsize

: Друга копія FAT :

: :

+------------------- :

: : ressecs+(fatsize*fatcnt)

: Кореневий каталог :

: :

+------------------- :

: : ressecs+(fatsize*fatcnt)+

: Область даних : sectsize_/_(32*rootsize)

: :

2.4 FAT захищеного режиму

FAT захищеного режиму - це стандартна файлова система, яка використовується Windows 95 для пристроїв масової пам`яті, наприклад, для дисководів і жорстких дисків. FAT захищеного режиму сумісна з FAT MS-DOS і також зберігає інформацію про вміст диску на основі таблиці розміщення файлів і записів в каталогах. Крім того, FAT захищеного режиму підтримує довгі імена і зберігає дату і час створення файла, а також дату останнього доступу.

У FAT захищеного режиму допустимі імена файлів довжиною до 256 символів, включаючи нульовий завершаючий символ. В цьму плані вона схожа з фйловою системою Microsoft Windows NT (NTFS), яка теж працює з довжиною файлів до 256 символів. Довжина шляху в FAT захищеного режиму (без імені самого файлу) може бути до 246 символів (сюди входять імя диску, дві крапки і зворотній слеш). максимальне число символів в повному імені файлів (разом з іменем диска, двокрапкою, шляхом і завершаючим нульовим символом) рівне 260.

Коли додаток створює файл чи каталог з довгими іменами, сичтема автоматично генерує для нього відповідний псевдонім в стандартному форматі "8.3", використовуючи ті символи, які допустимі в FAT MS-DOS. до них відносять любі комбінації латинських букв, цифр ісимволів з ASCII-кодами більше 127, а також пробєл іспеціальні символи:

!%()_-@`~{}&#^$'

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

Windows 95 зберігає регістр букв, вказаних в довгих іменах файлів. Але FAT захищеного режиму, не враховує регістр букв, і не дозволить створити в одному каталозі двох файлів наприклад з такими іменами FileName і filename.

2.5 Операційні та файлові системи FAT

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

До файлової системи FAT16 може звертатися практично люба ОС. Якщо створити первинний розділ в цьому форматі і якщо цей розділ має розмір до 1ГБ, то це найкращі умови для інсталяції декількох різних операційних систем на одному ПК. Існуючі розділи можуть зменшуватися або ділитися без втрати даних лише з допомогою комерційних допоміжних програм, наприклад Partition Magic.

Користувач, який бажає розмістити на одному ПК довільну комбінацію самостійно загружаючих систем DOS, Windows 95/98 i NT 4.0 з можливістю сумісного доступу до масивів, не обійдеться без FAT16. Правда, перевагам сумісного використання масивів даних і програм протистоять деякі недоліки.

Під традиційними версіями MS-DOS включно до версії 6,22 неможливо, наприклад, мати безпосередній доступ до файлів з довгими іменами, які використовуються Windows 95/98 або NT 4.0; такий доступ можна мати лише до файлів скороченими до 8 символів іменами MS-DOS і розширенням з трьох символів (формат 8.3). Якщо ви записуєте, переносите чи копіюєте в MS-DOS 6.22 і більш ранніх версіях файл, що має довге ім'я, то таке ім'я обрізається до формату 8.3.

Ще неприємнішим є те, що деякі DOS чи Windows-програми оптимізації файлової системи при використанні їх у файлових системах Windows 95/98 чи NT 4.0 замість користі приносять шкоду, тому що заплутують таблицю розміщення файлів і структури директорій (наприклад, більш старі версії Norton Disk Doctor). Таким чином, програми DOS,які безпосередньо маніпулюють структурами директорій або FAT, застосовувати на FAT16 не можна.

Ще один недолік файлового формату FAT16 максимальна ємність диску: з його використанням можна адресувати лише 2047 МБ на одному розділі. До того ж ці трохи більше 2 ГБ використовують ще дещо більше пам'яті оскільки FAT16 в цьому випадку розмір кластерів у 32 КБ. Це стає замітним при великій кількості малих файлів. Навіть дуже малі файли в любому випадку займають не менше 32КБ пам'яті жорсткого диску.

FAT32 підтримується Windows 95 OSR2, Windows 98 і Linux (починаючи з Kernel 2.0.34), а також майбутньою Windows NT5.0 файлова система FAT32 дозволяє установити мінімальний розмір кластерів всього в 4КБ (замість 32КБ) навіть для дисків ємністю до 8 Гбайт. FAT12 і FAT16 вони також підтримують. Старіші версії Windows 95, NT 4.x, Linux, нажаль, не підтримують FAT32. Таким чином, для обміну даними між любими операційними системами у випадку використання файлової системи FAT32 шлях закритий.

ОС / Файл. Система

FAT16

FAT32

DOS/Windows 3.x

+

-

Windows 95

+

(+) починаючи з OSR2

Windows 98

+

+

Windows NT до 4.х

+

-

Windows NT 5.0 (*)

+

+

OS/2

+

-

Linux

+

(+) починаючи з ядра 2.0.34

3. Програма та її опис

3.1 Призначення програми

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

3.2 Мови програмування, на яких написана програма

Дана програма реалізована на мові Intel Assembler, вона працює під керуванням операційної системи Windows.

Мова Intel Assembler є низькорівневою мовою що забезпечує високу швидкодію програм, а також їх компактний розмір у пам'яті, на відміну від мов високого рівня таких як С. Крім того програми написані на мові Intel Assembler найпростіше транслюються в машинний код. Однак атомарність мови Intel Assembler не є у всіх аспектах найкращою, для написання громістких, великих програм не рекомендується використовувати Intel Assembler, через не зручність відслідковування логічної структури програми, та складність написання великих логічних структур.

3.3 Логічна структура програми

програмування кластер диск

При реалізації завдання до курсової роботи було створено необхідний набір допоміжних процедур (функцій).

Реалізація завдання курсової робти складається з головного файлу file.sam в якому описані і реалізовані всі процедури, та файлу ресурсів rsrc.rc.

У файлі file.sam містяться такі процедури:

lgProc proc hWin:HWND,uMsg:UINT,wParam:WPARAM,lParam:LPARAM - для створення вікна відображення малюнків;

ReadLine proc Line:DWORD, hFile:HWND - для читання рядка з файлу;

Write proc hWnd:HWND, hFile:HFILE - для виведення питання і варіантів відповіді;

Clear proc hWnd:HWND - процедура яка витирає вікно тестування;

StartFunc proc hWnd:HWND - функція, яка розпочинає тест;

Next proc hWnd:HWND, Num:BYTE - процедура яка видає наступне питання;

DialogProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM - процедура опрацювання подій у вікні тесту;

WinMain proc hInst:HINSTANCE,hPrevInst:HINSTANCE, CmdLine:LPSTR, CmdShow:DWORD - головна процедура в якій створюється основне вікно;

WndProc proc uses ebx hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM - процедура для опрацювання подій у основному вікні

У файлі rsrc.rc міститься опис таких елементів, як меню, діалогових вікон, повідомлень.

Спочатку викликається головна процедура WinMain в якій описується вигляд головного вікна і відбуває створення його, а також виклик процедури яка реагує на події які відбулися у вікні WndProc.

У процедурі WndProc описана реакція на звернення до вікна та його елементів, наприклад, якшо вибраний якийсь конкретний пункт меню відбувається відповідна подія, чи то вивід файла чи викликає процедуру відкриття вікна тестування DialogProc чи викликає процедуру відкриття вікна перегляду малюнків DlgProc.

Процедура DialogProc створює вікно тестування яке складається з меню в якому є пункти почати тестування припинити тестування і закриття вікни. На робочій області міститься поле в якому виводиться питання і три кнопки з варіантами відповідей. Питання і відповіді знаходяться у текстовому файлі Test.txt.

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

3.4 Програмні засоби, необхідні для реалізації програми

Для роботи програми необхідна ОС: DOS, Windows 95/98/ME/2k/XP.

Для компілювання проекту необхідний Turbo Assembler 5.0.

3.5 Технічні засоби, необхідні для реалізації програми

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

Управління програмою реалізоване за допомогою миші та клавіатури і відповідає програмному інтерфейсу.

Процесор 186 та вище

Оперативна пам'ять 512 кб та вище

Жорсткий диск 8 Мб та вище

4. Інструкція користувачеві

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

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

4.1 Головне вікно програми

Управління меню програми здійснюється за допомогою маніпулятора типу „миша” або клавіатурою.

Рис. 3 Головне вікно програми

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

4.2 Вікно «Тест»

Рис. 4 Вікно «Тест»

5. Контрольний приклад

Рис. 6 Приклад роботи програми

Висновки

У процесі виконання даної роботи було закріплено теоретичні знання по методах взаємодії з диском під час керування пам'ятю. Кінцевим результатом роботи над даним курсовим проектом є навчальна програма. Програма була розроблена в Turbo Assembler 5.0

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

Управління програмою реалізоване за допомогою миші та клавіатури і відповідає програмному інтерфейсу.

Дана програма дозволяє перчитати текст на тему “Моделі взаємодії з диском підчас керування пам'яттю”, який взятий з книжки Шеховцова "Операційні системи", а також проведення тестування по даному матеріалі. Недоліком програми є те що для перегляду малюнків створюється окреме вікно і те шо нема можливості переходити до наступного і попереднього розділів. Використані у даній програмі алгоритми можуть використовуватися і для створення інших програм, оскільки вони є універсальні. Наприклад, створена система меню може застосовуватись не лише для реалізації поставленої задачі, а й для будь-якої іншої програми, тому що зміна пунктів меню, зовнішнього вигляду, виконання процесу робиться досить швидко і без будь-яких ускладнень.

Список використаної літератури

1. Зубков С. В. «Assembler для DOS, Windows i UNIX. М.» ДМК Пресс, 2000.

2. Методичні вказівки до курсової роботи з дисципліни «Системне програмування та операційні системи» для студентів базового напрямку 0804 «Комп'ютерні науки» спеціальності «Інтелектуальні системи прийняття рішень» /Укл. Кравець П.О. - Львів: Видавництво Національного університету «Львівська політехніка», 2007. - 16 с.

3. В.Ю. Пирогов. «Assembler для windows» 2001 р.

4. Фролов А., Фролов Г., «Библиотека системного программиста»

Додаток

;Текст файла FAT.asm

.386

.model flat,stdcall

option casemap:none

include \masm32\include\windows.inc

include \masm32\include\user32.inc

include \masm32\include\kernel32.inc

include \masm32\include\comdlg32.inc

includelib \masm32\lib\user32.lib

includelib \masm32\lib\kernel32.lib

includelib \masm32\lib\comdlg32.lib

include \masm32\include\Gdi32.inc

include \masm32\include\Masm32.inc

include \masm32\include\Debug.inc

includelib \masm32\lib\Gdi32.lib

includelib \masm32\lib\Masm32.lib

includelib \masm32\lib\Debug.lib

include \masm32\include\Macros.inc

.const

MAXSIZE equ 260

MEMSIZE equ 65535

img equ 10071

IDD_DIALOG1 equ 101

EditID equ 1

.data

ClassName db "Win32ASMEditClass",0

AppName db "Win32 ASM Edit",0

EditClass db "edit",0

MenuName db "FirstMenu",0

ofn OPENFILENAME <>

FilterString db "All Files",0,"*.*",0

buffer db MAXSIZE dup(0)

;оголоення змінних де записана адреса файлів

b1800 db '8\8.txt',0

b1810 db '8\8.1.txt',0

b1811 db '8\8.1.1.txt',0

b1812 db '8\8.1.2.txt',0

b1813 db '8\8.1.3.txt',0

b1814 db '8\8.1.4.txt',0

;Оголошення визначених змінних

EmptyStr db 0

FileTest db "Test.txt", 0

TmpSTR db 512 dup(0)

hTestFile dd 0

OpenStruct OFSTRUCT <>

FormatStr db "Правильних відповідей:", 09h, "%ld", 0ah, 0dh, "Загальна к-ть запитань:", 09h, "%ld", 0

Caption db "Результати тестування.", 0

TrueRezult db 1

NumberTrueRezult dd 0

NumberQuestion dd 0

MainFlag dd 0 ;0-початковий режим, 1-режим тестування

rdfr db 'Організація файлової системи FAT',0 ;назва зголовка головного вікна

StartCaption db "Початок.", 0

StartText db "Зараз ропочнется тестування.", 0

InfoCmd db "Info.exe /s", 0

.data?

hInstance HINSTANCE ?

CommandLine LPSTR ?

hwndEdit HWND ?

hwnd1 HWND ?

hwnd2 HWND ?

hFile1 HANDLE ?

hMemory HANDLE ?

pMemory DWORD ?

SizeReadWrite DWORD ?

.code

ReadLine proc Line:DWORD, hFile:HWND ; Процедура для читання рядка з файлу з тестами

LOCAL Read_:DWORD

LOCAL Char:BYTE

invoke ReadFile, hFile, Line, 1, addr Read_, NULL

mov eax, DWORD ptr [Line]

mov al, BYTE ptr [eax]

mov Char, al

.while Read_==1 && Char!=10 && Char!=13 ; Читаєм поки не кінець файлу, і не є перехід на новий рядок

inc Line

invoke ReadFile, hFile, Line, 1, addr Read_, NULL

mov eax, DWORD ptr [Line]

mov al, BYTE ptr [eax]

mov Char, al

.endw

.if Char==0ah || Char==0dh

invoke ReadFile, hFile, Line, 1, addr Read_, NULL

.endif

mov eax, DWORD ptr [Line]

mov BYTE ptr [eax], 0

ret

ReadLine endp

Write proc hWnd:HWND, hFile:HFILE ; Процедура яка виводить питання і варіанти відповідей

invoke ReadLine, offset TmpSTR, hFile

.if TmpSTR=='#' ; Перевірка файлу на кінець

mov eax, 0

ret

.endif

mov ebx, offset TmpSTR

inc ebx

invoke GetDlgItem, hWnd, 1003

invoke SendMessage, eax, WM_SETTEXT, NULL, ebx ; Виводим питання

invoke ReadLine, offset TmpSTR, hFile

mov ebx, offset TmpSTR

inc ebx

invoke GetDlgItem, hWnd, 1004

invoke SendMessage, eax, WM_SETTEXT, NULL, ebx ; Виводим перший варіант відповіді

.if TmpSTR=='+' ; перевіряєм чи це є правильна відповідь

mov TrueRezult, 1

.endif

invoke ReadLine, offset TmpSTR, hFile

mov ebx, offset TmpSTR

inc ebx

invoke GetDlgItem, hWnd, 1005

invoke SendMessage, eax, WM_SETTEXT, NULL, ebx ; Виводим другий варіант відповіді

.if TmpSTR=='+' ; перевіряєм чи це є правильна відповідь

mov TrueRezult, 2

.endif

invoke ReadLine, offset TmpSTR, hFile

mov ebx, offset TmpSTR

inc ebx

invoke GetDlgItem, hWnd, 1006

invoke SendMessage, eax, WM_SETTEXT, NULL, ebx ; Виводим третій варіант відповіді

.if TmpSTR=='+' ; перевіряєм чи це є правильна відповідь

mov TrueRezult, 3

.endif

mov eax, 0

mov al, TrueRezult

ret

Write endp

Clear proc hWnd:HWND ; процедура яка очищує вікно

invoke GetDlgItem, hWnd, 1003

invoke SendMessage, eax, WM_SETTEXT, NULL, offset EmptyStr

invoke GetDlgItem, hWnd, 1004

invoke SendMessage, eax, WM_SETTEXT, NULL, offset EmptyStr

invoke GetDlgItem, hWnd, 1005

invoke SendMessage, eax, WM_SETTEXT, NULL, offset EmptyStr

invoke GetDlgItem, hWnd, 1006

invoke SendMessage, eax, WM_SETTEXT, NULL, offset EmptyStr

invoke _lclose, hTestFile

ret

Clear endp

StartFunc proc hWnd:HWND ; Функція яка розпочинає тест

invoke OpenFile, offset FileTest, offset OpenStruct,OF_READ

mov hTestFile, eax

invoke ReadLine, offset TmpSTR, eax

mov ebx, offset TmpSTR

inc ebx

invoke SendMessage, hWnd, WM_SETTEXT, NULL, ebx ; Встановлюєм заголовок вікна

invoke MessageBox, 0, offset StartText, offset StartCaption,MB_OK

invoke Write, hWnd, hTestFile

mov NumberTrueRezult, 0

mov NumberQuestion, 0

ret

StartFunc endp

Next proc hWnd:HWND, Num:BYTE ; Процедура яка видає наступне питання

mov al, Num

.if TrueRezult==al ; Перевіряє чи користувач правильно відповів на попереднє питання

inc NumberTrueRezult

.endif

inc NumberQuestion

invoke Write, hWnd, hTestFile ; Видає наступне питання

.if eax==0 ; Якшо питань більше нема виводим результат і вертаємся до меню

invoke Clear, hWnd

invoke wsprintf, offset TmpSTR, offset FormatStr, NumberTrueRezult, NumberQuestion

invoke MessageBox, hWnd, offset TmpSTR, offset Caption, MB_OK

mov MainFlag, 0

invoke Clear, hWnd

.endif

ret

Next endp

DialogProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM

.if uMsg==WM_INITDIALOG

invoke Clear, hWnd

xor eax, eax

.elseif uMsg==WM_COMMAND

.if wParam==1004 && MainFlag==1 ; Перевіряє чи користувач вибрав перший варіант

invoke Next, hWnd, 1

.elseif wParam==1005 && MainFlag==1 ; Перевіряє чи користувач вибрав другий варіант

invoke Next, hWnd, 2

.elseif wParam==1006 && MainFlag==1 ; Перевіряє чи користувач вибрав третій варіант

invoke Next, hWnd, 3

.elseif wParam==2011 && MainFlag==0

mov MainFlag, 1

invoke StartFunc, hWnd

.elseif wParam==2012 && MainFlag==1

mov MainFlag, 0

invoke Clear, hWnd

.elseif wParam==2020

invoke WinExec, offset InfoCmd, SW_SHOWNORMAL

.elseif wParam==2013

invoke EndDialog, hWnd, 0

.endif

.elseif uMsg==WM_CLOSE

invoke EndDialog, hWnd, 0

.else

xor eax, eax

.endif

ret

DialogProc endp

WinMain proc hInst:HINSTANCE,hPrevInst:HINSTANCE,CmdLine:LPSTR,CmdShow:DWORD

LOCAL wc:WNDCLASSEX

LOCAL msg:MSG

LOCAL hwnd3:HWND

mov wc.cbSize,SIZEOF WNDCLASSEX

mov wc.style, CS_HREDRAW or CS_VREDRAW ;

mov wc.lpfnWndProc, OFFSET WndProc

mov wc.cbClsExtra,NULL

mov wc.cbWndExtra,NULL

push hInst

pop wc.hInstance

mov wc.hbrBackground,COLOR_WINDOW+1

mov wc.lpszMenuName,OFFSET MenuName

mov wc.lpszClassName,OFFSET ClassName

invoke LoadIcon,NULL,IDI_APPLICATION

mov wc.hIcon,eax

mov wc.hIconSm,eax

invoke LoadCursor,NULL,IDC_ARROW

mov wc.hCursor,eax

invoke RegisterClassEx, addr wc

INVOKE CreateWindowEx,WS_EX_CLIENTEDGE,ADDR ClassName,ADDR AppName,\

WS_OVERLAPPEDWINDOW ,CW_USEDEFAULT,\

CW_USEDEFAULT,200,800,NULL,NULL,\

hInst,NULL

mov hwnd3,eax

INVOKE CreateWindowEx,WS_EX_CLIENTEDGE,ADDR ClassName,ADDR AppName,\

WS_OVERLAPPEDWINDOW ,CW_USEDEFAULT,\

CW_USEDEFAULT,900,800,NULL,NULL,\

hInst,NULL

mov hwnd2,eax

INVOKE ShowWindow, hwnd3,SW_SHOWNORMAL

invoke ShowWindow,hwnd3,SW_HIDE

INVOKE ShowWindow, hwnd2,SW_SHOWNORMAL

invoke SendMessage, hwnd2, WM_SETTEXT, NULL, offset rdfr

INVOKE UpdateWindow, hwnd3

.WHILE TRUE

INVOKE GetMessage, ADDR msg,NULL,0,0

.BREAK .IF (!eax)

INVOKE TranslateMessage, ADDR msg

INVOKE DispatchMessage, ADDR msg

.ENDW

mov eax,msg.wParam

ret

WinMain endp

WndProc proc uses ebx hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM

.IF uMsg==WM_CREATE

INVOKE CreateWindowEx,NULL,ADDR EditClass,NULL,\

WS_VISIBLE or WS_CHILD or ES_LEFT or ES_MULTILINE or\

ES_AUTOHSCROLL or ES_AUTOVSCROLL,0,\

0,0,0,hWnd,EditID,\

hInstance,NULL

mov hwndEdit,eax

invoke SetFocus,hwndEdit

mov ofn.lStructSize,SIZEOF ofn

push hWnd

pop ofn.hWndOwner

push hInstance

pop ofn.hInstance

mov ofn.lpstrFilter, OFFSET FilterString

mov ofn.lpstrFile, offset buffer

mov ofn.nMaxFile,MAXSIZE

.ELSEIF uMsg==WM_SIZE

mov eax,lParam

mov edx,eax

shr edx,16

and eax,0ffffh

invoke MoveWindow,hwndEdit,0,0,eax,edx,TRUE

.ELSEIF uMsg==WM_DESTROY

invoke PostQuitMessage,NULL

.ELSEIF uMsg==WM_COMMAND

mov eax,wParam

.if lParam==0

.if ax==1800 ;пунктменю "Збереження інформації"

mov ofn.Flags, OFN_FILEMUSTEXIST or \

OFN_PATHMUSTEXIST or OFN_LONGNAMES or\

OFN_EXPLORER or OFN_HIDEREADONLY

mov ofn.lpstrFile, offset b1800

invoke CreateFile,ADDR b1800,\

GENERIC_READ or GENERIC_WRITE ,\

FILE_SHARE_READ or FILE_SHARE_WRITE,\

NULL,OPEN_EXISTING,FILE_ATTRIBUTE_ARCHIVE,\

NULL

mov hFile1,eax

invoke GlobalAlloc,GMEM_MOVEABLE or GMEM_ZEROINIT,MEMSIZE

mov hMemory,eax

invoke GlobalLock,hMemory

mov pMemory,eax

invoke ReadFile,hFile1,pMemory,MEMSIZE-1,ADDR SizeReadWrite,NULL

invoke SendMessage,hwndEdit,WM_SETTEXT,NULL,pMemory

invoke CloseHandle,hFile1

invoke GlobalUnlock,pMemory

invoke GlobalFree,hMemory

invoke SetFocus,hwndEdit

.elseif ax==1810 ;пунктменю "Що зберігається в таблиці розміщення файлів?"

mov ofn.Flags, OFN_FILEMUSTEXIST or \

OFN_PATHMUSTEXIST or OFN_LONGNAMES or\

OFN_EXPLORER or OFN_HIDEREADONLY

mov ofn.lpstrFile, offset b1810

invoke CreateFile,ADDR b1810,\

GENERIC_READ or GENERIC_WRITE ,\

FILE_SHARE_READ or FILE_SHARE_WRITE,\

NULL,OPEN_EXISTING,FILE_ATTRIBUTE_ARCHIVE,\

NULL

mov hFile1,eax

invoke GlobalAlloc,GMEM_MOVEABLE or GMEM_ZEROINIT,MEMSIZE

mov hMemory,eax

invoke GlobalLock,hMemory

mov pMemory,eax

invoke ReadFile,hFile1,pMemory,MEMSIZE-1,ADDR SizeReadWrite,NULL

invoke SendMessage,hwndEdit,WM_SETTEXT,NULL,pMemory

invoke CloseHandle,hFile1

invoke GlobalUnlock,pMemory

invoke GlobalFree,hMemory

invoke SetFocus,hwndEdit

.elseif ax==1811 ;пунктменю "Як програма визначає формат FAT"

mov ofn.Flags, OFN_FILEMUSTEXIST or \

OFN_PATHMUSTEXIST or OFN_LONGNAMES or\

OFN_EXPLORER or OFN_HIDEREADONLY

mov ofn.lpstrFile, offset b1811

invoke CreateFile,ADDR b1811,\

GENERIC_READ or GENERIC_WRITE ,\

FILE_SHARE_READ or FILE_SHARE_WRITE,\

NULL,OPEN_EXISTING,FILE_ATTRIBUTE_ARCHIVE,\

NULL

mov hFile1,eax

invoke GlobalAlloc,GMEM_MOVEABLE or GMEM_ZEROINIT,MEMSIZE

mov hMemory,eax

invoke GlobalLock,hMemory

mov pMemory,eax

invoke ReadFile,hFile1,pMemory,MEMSIZE-1,ADDR SizeReadWrite,NULL

invoke SendMessage,hwndEdit,WM_SETTEXT,NULL,pMemory

invoke CloseHandle,hFile1

invoke GlobalUnlock,pMemory

invoke GlobalFree,hMemory

invoke SetFocus,hwndEdit

.elseif ax==1812 ;пунктменю "Формат FAT"

mov ofn.Flags, OFN_FILEMUSTEXIST or \

OFN_PATHMUSTEXIST or OFN_LONGNAMES or\

OFN_EXPLORER or OFN_HIDEREADONLY

mov ofn.lpstrFile, offset b1812

invoke CreateFile,ADDR b1812,\

GENERIC_READ or GENERIC_WRITE ,\

FILE_SHARE_READ or FILE_SHARE_WRITE,\

NULL,OPEN_EXISTING,FILE_ATTRIBUTE_ARCHIVE,\

NULL

mov hFile1,eax

invoke GlobalAlloc,GMEM_MOVEABLE or GMEM_ZEROINIT,MEMSIZE

mov hMemory,eax

invoke GlobalLock,hMemory

mov pMemory,eax

invoke ReadFile,hFile1,pMemory,MEMSIZE-1,ADDR SizeReadWrite,NULL

invoke SendMessage,hwndEdit,WM_SETTEXT,NULL,pMemory

invoke CloseHandle,hFile1

invoke GlobalUnlock,pMemory

invoke GlobalFree,hMemory

invoke SetFocus,hwndEdit

.elseif ax==1813 ;пунктменю "FAT захищеного режиму"

mov ofn.Flags, OFN_FILEMUSTEXIST or \

OFN_PATHMUSTEXIST or OFN_LONGNAMES or\

OFN_EXPLORER or OFN_HIDEREADONLY

mov ofn.lpstrFile, offset b1813

invoke CreateFile,ADDR b1813,\

GENERIC_READ or GENERIC_WRITE ,\

FILE_SHARE_READ or FILE_SHARE_WRITE,\

NULL,OPEN_EXISTING,FILE_ATTRIBUTE_ARCHIVE,\

NULL

mov hFile1,eax

invoke GlobalAlloc,GMEM_MOVEABLE or GMEM_ZEROINIT,MEMSIZE

mov hMemory,eax

invoke GlobalLock,hMemory

mov pMemory,eax

invoke ReadFile,hFile1,pMemory,MEMSIZE-1,ADDR SizeReadWrite,NULL

invoke SendMessage,hwndEdit,WM_SETTEXT,NULL,pMemory

invoke CloseHandle,hFile1

invoke GlobalUnlock,pMemory

invoke GlobalFree,hMemory

invoke SetFocus,hwndEdit

.elseif ax==1814 ;пунктменю "Операційні та файлові системи FAT"

mov ofn.Flags, OFN_FILEMUSTEXIST or \

OFN_PATHMUSTEXIST or OFN_LONGNAMES or\

OFN_EXPLORER or OFN_HIDEREADONLY

mov ofn.lpstrFile, offset b1814

invoke CreateFile,ADDR b1814,\

GENERIC_READ or GENERIC_WRITE ,\

FILE_SHARE_READ or FILE_SHARE_WRITE,\

NULL,OPEN_EXISTING,FILE_ATTRIBUTE_ARCHIVE,\

NULL

mov hFile1,eax

invoke GlobalAlloc,GMEM_MOVEABLE or GMEM_ZEROINIT,MEMSIZE

mov hMemory,eax

invoke GlobalLock,hMemory

mov pMemory,eax

invoke ReadFile,hFile1,pMemory,MEMSIZE-1,ADDR SizeReadWrite,NULL

invoke SendMessage,hwndEdit,WM_SETTEXT,NULL,pMemory

invoke CloseHandle,hFile1

invoke GlobalUnlock,pMemory

invoke GlobalFree,hMemory

invoke SetFocus,hwndEdit

.elseif ax==5 ;тестування

invoke DialogBoxParam, hInstance, 1001, NULL, ADDR DialogProc, 0

.else

invoke DestroyWindow, hWnd ;вихід

.endif

.endif

.ELSE

invoke DefWindowProc,hWnd,uMsg,wParam,lParam

ret

.ENDIF

xor eax,eax

ret

WndProc endp

start:

invoke GetModuleHandle, NULL

mov hInstance,eax

invoke GetCommandLine

invoke WinMain, hInstance,NULL,CommandLine, SW_SHOWDEFAULT

invoke ExitProcess,eax

end start

;текст файла rsrc.rc

// Constants for menu

#define IDM_SAVE 2

#define IDM_EXIT1 3

#define IDM_OPEN2 4

#define IDD_DIALOG1 101

#define img 10071

#define IDD_MAINDLG 1001

#define IDM_MNU 1000

#define IDC_STATIC1003 1002

#define IDC_EDIT1004 1003

#define IDC_STATIC1005 1007

#define IDC_BUTTON1006 1004

#define IDC_BUTTON1007 1005

#define IDC_BUTTON1008 1006

#define IDM_MAIN 2010

#define IDM_TEST 2011

#define IDM_STOP 2012

#define IDM_EXIT 2013

#define IDM_HELP 2020

#define IDR_MENU 10000

#define IDM_File 10001

#define IDM_open_f 10002

#define IDM_1 10005

#define IDM_2 10006

#define IDM_3 10007

#define IDM_4 10008

#define IDM_5 10009

#define IDM_6 10010

#define IDM_7 10011

#define IDM_8 10012

#define IDM_9 10013

#define IDM_10 10014

#define IDM_11 10015

#define IDM_12 10003

#define IDM_13 10004

#define IDM_14 10016

#define IDM_15 10017

#define IDM_16 10018

#define IDM_17 10019

#define IDM_18 10020

#define IDM_19 10021

#define IDM_20 10022

#define IDM_21 10023

#define IDM_22 10024

#define IDM_23 10025

#define IDM_24 10026

#define IDM_25 10027

#define IDM_26 10028

#define IDM_27 10029

#define IDM_28 10030

#define IDM_29 10031

#define IDM_30 10032

FirstMenu MENU

{

POPUP "&File"

{

POPUP "&Open"

{

MENUITEM "Збереження інформації",1800

MENUITEM "Що зберігається в таблиці розміщення файлів?",1810

MENUITEM "Як програма визначає формат FAT",1811

MENUITEM "Формат FAT",1812

MENUITEM "FAT захищеного режиму",1813

MENUITEM "Операційні та файлові системи FAT",1814

}

MENUITEM "Test",5

MENUITEM SEPARATOR

MENUITEM "E&xit",IDM_EXIT1

}

}

IDM_MNU MENUEX DISCARDABLE

BEGIN

POPUP "Main",IDM_MAIN

BEGIN

MENUITEM "New test",IDM_TEST

MENUITEM "Stop test",IDM_STOP

MENUITEM "Exit",IDM_EXIT

END

END

IDD_MAINDLG DIALOGEX 0,0,419,100

CAPTION "Test"

FONT 8,"MS Sans Serif"

MENU IDM_MNU

STYLE 0x10c80800

EXSTYLE 0x00040000

BEGIN

CONTROL "Питання:",IDC_STATIC1003,"Static",0x50000000,3,5,105,10,0x00000000

CONTROL "",IDC_EDIT1004,"Edit",0x50010880,3,15,414,13,0x00000200

CONTROL "Варіанти:",IDC_STATIC1005,"Static",0x50000000,3,37,105,10,0x00000000

CONTROL "",IDC_BUTTON1006,"Button",0x50010100,3,47,413,15,0x00000000

CONTROL "",IDC_BUTTON1007,"Button",0x50010100,3,64,413,15,0x00000000

CONTROL "",IDC_BUTTON1008,"Button",0x50010100,3,81,413,15,0x00000000

END

IDD_DIALOG1 DIALOGEX 5,5,502,361

CAPTION "DialogApp"

FONT 8,"MS Sans Serif",0,0

STYLE 0x10CF0800

EXSTYLE 0x00000000

BEGIN

CONTROL "",img,"Static",0x5000020E,3,12,492,344,0x00000000

END

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

...

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

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

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

  • Фундаментальні поняття об'єктно-орієнтованого програмування. Система лінійних нерівностей та опуклі багатогранники. Системи лінійних рівнянь лінійної алгебри як частковий випадок систем лінійних обмежень. Використання середовища програмування Delphi7.

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

  • Характеристика методів та етапів створення простих програм на мові програмування С++. Особливості структури та порядку запуску програми. Функції вводу і виводу та маніпулятори мови С++. Робота з одновимірними масивами. Символьна інформація та рядки.

    дипломная работа [91,2 K], добавлен 19.06.2010

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

    презентация [453,9 K], добавлен 06.06.2013

  • Загальна структура комп'ютера, архітектура процесора типу Intel 8086. Принцип роботи пам'яті, її види (постійна та оперативна). Основи програмування на мові асемблер та її синтаксис. Особливості використання позначок, кодів команд, операндів і директив.

    лабораторная работа [36,0 K], добавлен 27.02.2013

  • Використання мови програмуванння Java при виконанні "задачі лінійного програмування": її лексична структура і типи даних. Методи розв’язання задачі. Особливості логічної структури програми, побудова її зручного інтерфейсу за допомогою симплекс методу.

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

  • Розгляд поняття електронного освітнього ресурсу. Дослідження особливостей написання макросів засобами Visual Basic for Аpplications для використання у розробці розкладу студентів. Створення програми, яка демонструє використання офісного програмування.

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

  • Мoвa прoгрaмувaння як систeма пoзначень, що служить для точного опису програм або алгоритмів для ЕOM. Вимоги до мов програмування, класифікація за їх особливостям. Загальна характеристика найбільш поширених мов програмування: Сі, Паскаль, Delphi, Бейсік.

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

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

    реферат [30,0 K], добавлен 13.11.2010

  • Мова C++ є як одна з найпоширеніших сучасних мов програмування. Базові засоби мови С++, її специфічні риси. Технологія складу програм, специфіка організації процесу програмування. Модульне програмування. Особливості об’єктно-орієнтованого програмування.

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

  • UNIX - одна з найпопулярніших в світі операційних систем. Ключеві риси Linux. Порівняльні характеристики 32-розрядних операційних систем. Поверхневий огляд характеристик ядра Linux. Програмні характеристики: базові команди і утиліти, мови програмування.

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

  • Сутність Pascal як алгоритмічної мови програмування універсального призначення. Історія її виникнення і характерні особливості. Специфіка використання середовища розробки програм Borlan Delphi. Реалізація алгоритму визначення n! для великих значень n.

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

  • Характеристика мов програмування. Історія виникнення мови C#, її особливості, версії та нові можливості. Приклад програм виведення на екран, виведення поточної дати та часу та програми музичного програвача. Програмний код та результат виконання програм.

    контрольная работа [321,3 K], добавлен 13.06.2012

  • Розгляд особливостей мови програмування С++: основні можливості, характеристика функцій. Аналіз файлів з вхідними даними. Використання похідних класів як ефективний засіб об’єктно-орієнтованого програмування. Способи роздруківки графічного вирішення.

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

  • Загальна термінологія CUDA. Структура NVIDIA CUDA, особливості створення, принципи оптимізації програм. Проблеми CUDA. Основні поняття і модель програмування, демонстрація технології CUDA на прикладі підрахунку CRC32-коду. Мінімальні вимоги до програми.

    курсовая работа [4,5 M], добавлен 14.05.2012

  • Алгоритми розв’язання задач у вигляді блок–схем. Використання мови програмування MS VisualBasic for Application для написання програм у ході вирішення задач на одномірний, двовимірний масив, порядок розв’язання задачі на використання символьних величин.

    контрольная работа [742,9 K], добавлен 27.04.2010

  • Сутність і функції операційних систем, принцип і особливості роботи з ними. Характеристика вбудованого редактора FAR Manager. Призначення програм для роботи з архівами інформації. Управління системними параметрами ПК за допомогою програми SetupUtility.

    контрольная работа [950,9 K], добавлен 14.10.2009

  • Широкі можливості по використанню комп'ютерних навчальних систем. Розробка навчальної системи мультимедійного посібника з дисципліни "Інформатика і ОТ" на тему "Особливості мови програмування С++. Вказівники". Вимоги до розробки навчальної програми.

    курсовая работа [2,9 M], добавлен 23.11.2010

  • Особливості редагування за допомогою текстового редактора NotePad вхідного файлу. C++ як універсальна мова програмування, знайомство с функціями. Характеристика графічних засобів мови С. Аналіз основних понять об’єктно-орієнтованого програмування.

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

  • Характеристика мови програмування VBA (Visual Basic for Application): можливості й засоби. Використання редактора Visual Basic. Створення та виконання VBA-програм. Типи даних, змінні й константи, операції й вирази. Керуючі оператори, процедури й функції.

    реферат [29,9 K], добавлен 28.06.2011

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