Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метод вказів лаборат роб Опер сист.doc
Скачиваний:
11
Добавлен:
08.02.2016
Размер:
1.41 Mб
Скачать
  1. Лабораторні роботи на мові с

Головною якістю мови C, що робить його саме мовою системного програміста, є те, що "C - це мова відносно "низького рівня"... Це означає, що C має справу з об'єктами того ж виду, що і більшість ЕОМ, а саме, із символами, числами й адресами.

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

У лабораторних роботах пропонується звернути увагу саме на ці властивості мови і далі застосовувати їх у всіх наступних роботах.

    1. Лабораторна робота 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

Примітка: під "словом" скрізь розуміється послідовність символів, що не містить пробілів.