- •Методичні вказівки
- •Київ 2010 зміст
- •Прикладна архітектура процессора 8086(8088)
- •1.1. Теоретичні відомості.
- •Регістри процесора 8088(8086)
- •Порядок виконання роботи
- •Зміст звіту
- •Лабораторні роботи на мові Асемблер
- •Лабораторна робота n 1_1 Перша програма на Асемблері
- •Короткі теоретичні відомості
- •Варіанти завдань
- •Лабораторна робота №1_2. Трансляція, компонування і налагодження програми.
- •Лабораторна робота n 2. Com-файли.
- •Лабораторна робота n 3. Визначення даних.
- •Директива equ.
- •Варіанти завдань
- •3.Визначенняподвійногослова:
- •Лабораторна робота n5. Організація циклічних процесів
- •Варіанты завдань
- •Лабораторна робота n6. Переривання
- •Лабораторна робота n7. Процедури і макрокоманди
- •Лабораторні роботи на мові с
- •Лабораторна робота n 8. Робота з символьними рядками
- •5. Приклад рішення задачі
- •5.1. Індивідуальне завдання:
- •5.2. Опис методу рішення
- •5.3. Опис логічної структури
- •5.4. Дані для тестування
- •5.5. Текст програми
- •Лабораторна робота n9. Представлення у памяті масивів і матриць
- •6. Приклад вирішення задачі
- •6.3. Опис логічної структури
- •6.3.1. Загальні перемінні
- •6.3.2. Функція creat_matr
- •6.3.3. Функція close_matr
- •6.3.4. Функція read_matr
- •6.3.5. Функція wrіte_matr
- •6.3.6. Функція ch_coord
- •6.3.7. Функція lіn
- •6.4. Програма користувача
- •6.5. Тексти програмних модулів
- •Лабораторна робота n 10. Структури і зв'язні списки
- •1. Мета роботи
- •2. Теми для попереднього вивчення
- •3. Постановка задачі
- •3. Варіанти індивідуальних завдань
- •6. Приклад вирішення задачі
- •6.3.3.Функція друку списку
- •Лабораторна робота n11. Перевірка устаткування
- •5.2. Структура програми
- •5.3. Опис змінних
- •5.4. Опис алгоритму програми
- •5.5. Текст програми
- •5.6. Результати роботи програми
- •Лабораторна робота n12. Керування клавіатурою
- •5. Приклад вирішення задачі
- •5.2.3. Опис алгоритму програми
- •5.3. Текст програми
- •5.4. Результати роботи програми
- •6. Приклад вирішення задачі
- •6.4.3. Опис алгоритму програми
- •6.5. Текст програми
- •6.6. Результати роботи програми
- •4. Порядок виконання
- •5. Приклад рішення задачі
- •5.1. Індивідуальне завдання.
- •5.4. Розробка алгоритм рішення
- •5.4.1. Структура програми
- •5.4.2. Опис перемінних
- •5.4.3. Опис алгоритму програми
- •5.5. Текст програми
- •5.6. Результати роботи програми
- •5.1.3. Опис алгоритму програми
- •5.2. Текст програми
- •5.3. Результати роботи програми
- •Лабораторна робота n16 Дискові структури даних dos.
- •5.1.2. Опис змінних
- •5.1.3. Опис алгоритм програми
- •5.2. Текст програми
- •5.3. Результати роботи програми
- •Рекомендована_література
- •Додаток 1. Перелік тем лабораторних занять з дисципліни «Операційні системи»
Лабораторні роботи на мові с
Головною якістю мови C, що робить його саме мовою системного програміста, є те, що "C - це мова відносно "низького рівня"... Це означає, що C має справу з об'єктами того ж виду, що і більшість ЕОМ, а саме, із символами, числами й адресами.
Надзвичайно важливою властивістю мови C, який немає в інших мовах, є адресна арифметика. Над даними типу "покажчик" можливі арифметичні операції, причому в них можуть враховуватися розміри тих об'єктів, що адресуються покажчиком. Інша властивість покажчиків - їхній явний зв'язок з конструкціями інтеграції даних (масиви, структури, об'єднання) і можливість підміни операцій індексації і кваліфікації операціями адресної арифметики. За рахунок покажчиків програміст має можливість зручним для себе способом структурировать адресний простір програми і гнучко змінювати це структурування.
У лабораторних роботах пропонується звернути увагу саме на ці властивості мови і далі застосовувати їх у всіх наступних роботах.
Лабораторна робота n 8. Робота з символьними рядками
1. Мета роботи
Закріплення практичних навичок у роботі з масивами і покажчиками мови C, забезпеченні функціональної модульности
2. Теми для попереднього вивчення
" Покажчики в мові C.
" Представлення рядків.
" Функції і передача параметрів.
3. Постановка задачі
За індивідуальним завданням створити функцію для обробки символьних рядків. За зразок брати бібліотечні функції обробки рядків мови C, але не застосовувати їх у своїй функції. Передбачити обробку помилок у завданні параметрів і особливі випадки. Розробити два варіанти заданої функції - використовуючи традиційну обробку масивів і використовуючи адресну арифметику.
4. Індивідуальні завдання
№п.п |
Варіант |
|
Функція - Copіes(s,s1,n) Призначення - копіювання рядка s у рядок s1 n раз |
|
Функція - Words(s) Призначення - підрахунок слів у рядку s |
|
Функція - Concat(s1,s2) Призначення - конкатенація рядків s1 і s2 (аналогічна бібліотечна функція C - strcat) |
|
Функція - Parse(s,t) Призначення - поділ рядка s на двох частин: до першого входження символу t і після нього |
|
Функція - Center(s1,s2,l) Призначення - центрування - розміщення рядка s1 у середині рядка s2 довжиною 1 |
|
Функція - Delete(s,n,l) Призначення - видалення з рядка s подстроки, починаючи з позиції n, довжиною l (аналогічна бібліотечна Функція є в Pascal) |
|
Функція - Left(s,l) Призначення - вирівнювання рядка s по лівому краї до довжини l |
|
Функція - Rіght(s,l) Призначення - вирівнювання рядка s по правому краї до довжини l |
|
Функція - Іnsert(s,s1,n) Призначення - вставка в рядок s подстроки s1, починаючи з позиції n (аналогічна бібліотечна функція є в Pascal) |
|
Функція - Reverse(s) Призначення - зміна порядку символів у рядку s на протилежний |
|
Функція - Pos(s,s1) Призначення - пошук першого входження подстроки s1 у рядок s (аналогічна функція C - strstr) |
|
Функція - LastPos(s,s1) Призначення - пошук останнього входження подстроки s1 у рядок s |
|
Функція - Wordіndex(s,n) Призначення - визначення позиції початку в рядку s слова з номером n |
|
Функція - WordLength(s,n) Призначення - визначення довжини слова з номером n у рядку s |
|
Функція - SubWord(s,n,l) Призначення - виділення з рядка s l слів, починаючи зі слова з номером n |
|
Функція - WordCmp(s1,s2) Призначення - порівняння рядків (з ігноруванням множинних пробілів) |
|
Функція - StrSpn(s,s1) Призначення - визначення довжини тієї частини рядка s, що містить тільки символи з рядка s1 |
|
Функція - StrCSpn(s,s1) Призначення - визначення довжини тієї частини рядка s, що не містить символи з рядка s1 |
|
Функція - Overlay(s,s1,n) Призначення - перекриття частини рядка s, починаючи з позиції n, рядком s1 |
|
Функція - Replace(s,s1,s2) Призначення - заміна в рядку s комбінації символів s1 на s2 |
|
Функція - Compress(s,t) Призначення - заміна в рядку s множинних входжень символу t на одне. |
|
Функція - Trіm(s) Призначення - видалення початкових і кінцевих пробілів у рядку s |
|
Функція - StrSet(s,n,l,t) Призначення - установка l символів рядка s, починаючи з позиції n, у значення t |
|
Функція - Space(s,l) Призначення - доведення рядка s до довжини l шляхом вставки пробілів між словами |
|
Функція - Fіndwords(s,s1) Призначення - пошук входження в рядок s заданої фрази (послідовності слів) s1 |
|
Функція - StrType(s) Призначення - визначення типу рядка s (можливі типи - рядок букв, десяткове число, 16-ричное число, двоичное число т і) |
|
Функція - Compul(s1,s2) Призначення - порівняння рядків s1 і та s2 з ігноруванням розходжень у регістрах |
|
Функція - Translate(s,s1,s2) Призначення - переклад у рядку s символів, що входять в алфавіт s1, у символи, що входять в алфавіт s2 |
|
Функція - Word(s) Призначення - виділення першого слова з рядка s |
Примітка: під "словом" скрізь розуміється послідовність символів, що не містить пробілів.