Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Лабораторна робота 7. Рядки




 

Теоретичний матеріал: розділ 6.

 

Варіант 1

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

 

Варіант 2

Написати програму, яка прочитує текст з файлу і виводить на екран тільки речення, що містять введене з клавіатури слово.

 

Варіант 3

Написати програму, яка прочитує текст з файлу і виводить на екран тільки рядки, що містять двозначні числа.

 

Варіант 4

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

 

Варіант 5

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

 

Варіант 6

Написати програму, яка прочитує текст з файлу і виводить на екран тільки речення, що не містять ком.

 

Варіант 7

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

 

Варіант 8

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

 

Варіант 9

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

 

Варіант 10

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

 

 

Варіант 11

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

 

Варіант 12

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

 

Варіант 13

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

 

Варіант 14

Написати програму, яка прочитує текст з файлу і виводить його на екран, замінивши цифри від 0 до 9 словами “нуль”, “один”, “дев'ять”, починаючи кожне речення з нового рядка.

 

Варіант 15

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

 

Варіант 16

Написати програму, яка прочитує текст з файлу і виводить на екран спочатку питальні, а потім окличні речення.

 

Варіант 17

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

 

Варіант 18

Написати програму, яка прочитує текст з файлу і виводить на екран всі його речення в зворотному порядку.

 

Варіант 19

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

 

Варіант 20

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

 

Лабораторна робота 8. Класи і операції

 

Теоретичний матеріал: розділ 7.

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

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

 

Варіант 1

Описати клас для роботи з одновимірним масивом цілих чисел (вектором). Забезпечити наступні можливості:

· завдання довільних цілих меж індексів при створенні об'єкту;

· звернення до окремого елементу масиву з контролем виходу за межі масиву;

· виконання операцій поелементного складання і віднімання масивів з однаковими межами індексів;

· виконання операцій множення і ділення всіх елементів масиву на скаляр;

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

 

Варіант 2

Описати клас для роботи з одновимірним масивом рядків фіксованої довжини. Забезпечити наступні можливості:

· звернення до окремого рядка масиву по індексу з контролем виходу за межі масиву;

· виконання операцій поелементного зчеплення двох масивів з утворенням нового масиву;

· виконання операцій злиття двох масивів з виключенням елементів, що повторюються;

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

Написати програму, що демонструє всі розроблені елементи класу.

 

Варіант 3

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

· обчислення значення многочлена для заданого аргументу;

· операції складання, віднімання і множення многочленів, з отриманням нового об'єкту-многочлена;

· отримання коефіцієнта, заданого по індексу;

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

Написати програму, яка демонструє всі розроблені елементи класу.

Варіант 4

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

Написати програму, що демонструє всі розроблені елементи класу.

 

Варіант 5

Описати клас для роботи з восьмиричним числом, що зберігається у вигляді рядка символів. Реалізувати конструктори, властивості, методи і наступні операції:

· операції привласнення, що реалізовують значущу семантику;

· операції порівняння;

· перетворення в десяткове число;

· виведення формату;

· доступ до заданої цифри числа по індексу.

Написати програму, що демонструє всі розроблені елементи класу.

 

Варіант 6

Описати клас “домашня бібліотека”. Передбачити можливість роботи з довільним числом книг, пошуку книги за якою-небудь ознакою (по авторові, по року видання або категорії), додавання книг в бібліотеку, видалення книг з неї, доступу до книги по номеру.

Написати програму, що демонструє всі розроблені елементи класу.

 

Варіант 7

Написати клас “записник”. Передбачити можливість роботи з довільним числом записів, пошуку запису за якою-небудь ознакою (наприклад, по прізвищу, даті народження або номеру телефону), додавання і видалення записів, сортування по прізвищу і доступу до запису по номеру.

Написати програму, що демонструє всі розроблені елементи класу.

 

Варіант 8

Описати клас “студентська група”. Передбачити можливість роботи із змінним числом студентів, пошуку студента за якою-небудь ознакою (наприклад, по прізвищу, імені, даті народження), додавання і видалення записів, сортування по різних полях, доступу до запису по номеру.

Написати програму, що демонструє всі розроблені елементи класу.

 

Варіант 9

Описати клас, що реалізовує тип даних «речова матриця» і роботу з ними. Клас повинен реалізовувати наступні операції над матрицями:

· складання, віднімання (як з іншою матрицею, так і з числом);

· комбіновані операції привласнення (+ =, -=);

· операції порівняння на рівність/нерівність;

· операції обчислення зворотної і транспонованої матриці;

· доступ до елементу по індексах.

Написати програму, що демонструє всі розроблені елементи класу.

Варіант 10

Описати клас, що реалізовує тип даних “дійсна матриця” і роботу з ними. Клас повинен реалізовувати наступні операції над матрицями:

· множення, ділення (як на іншу матрицю, так і на число);

· комбіновані операції привласнення (* =, / =);

· операцію піднесення до ступеня;

· методи обчислення детермінанта і норми;

· доступ до елементу по індексах.

Написати програму, що демонструє всі розроблені елементи класу.

 

Варіант 11

Описати клас, що реалізовує тип даних “дійсна матриця” і роботу з ними. Клас повинен реалізовувати наступні операції над матрицями:

· методи, що реалізовують перевірку типу матриці (квадратна, діагональна, нульова, одинична, симетрична, верхня трикутна, нижня трикутна);

· операції порівняння на рівність/нерівність;

· доступ до елементу по індексах.

Написати програму, що демонструє всі розроблені елементи класу.

 

Варіант 12

Описати клас “множина”, що дозволяє виконувати основні операції: додавання і видалення елементу, перетин, об'єднання і різниця множин.

Написати програму, що демонструє всі розроблені елементи класу.

 

Варіант 13

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

Написати програму, що демонструє всі розроблені елементи класу.

 

Варіант 14

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

Написати програму, що демонструє всі розроблені елементи класу.

 

Варіант 15

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

Написати програму, що демонструє всі розроблені елементи класів.

 

Варіант 16

Описати клас “поїзд”, що містить наступні закриті поля:

назва пункту призначення;

номер поїзда (може містити букви і цифри);

час відправлення.

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

Описати клас “вокзал”, що містить закритий масив поїздів. Забезпечити наступні можливості:

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

виведення інформації про поїзди, що відправляються після введеного з клавіатури часу;

перевантажену операцію порівняння, що виконує порівняння часу відправлення двох поїздів;

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

Інформація має бути відсортована за часом відправлення. Написати програму, що демонструє всі розроблені елементи класів

 

Варіант 17

Описати клас “товар”, що містить наступні закриті поля:

· назва товару;

· назва магазина, в якому продається товар;

· вартість товару в гривнах.

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

Описати клас “склад”, що містить закритий масив товарів. Забезпечити наступні можливості:

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

· виведення на екран інформації про товар, назва якого введена з клавіатури; якщо таких товарів немає, видати відповідне повідомлення;

· сортування товарів по назві магазина, по найменуванню і за ціною;

· перевантажену операцію складання товарів, що виконує складання їх цін. Написати програму, що демонструє всі розроблені елементи класів.

 

Варіант 18

Описати клас “літак”, що містить наступні закриті поля:

· назва пункту призначення;

· шестизначний номер рейса;

· час відправлення.

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

Описати клас “аеропорт”, що містить закритий масив літаків. Забезпечити наступні можливості:

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

· виведення інформації про літаки, що відправляються протягом години після введеного з клавіатури часу;

· виведення інформації про літаки, що відправляються в заданий пункт призначення;

· перевантажену операцію порівняння, що виконує порівняння часу відправлення двох літаків.

Інформація має бути відсортована за часом відправлення. Написати програму, що демонструє всі розроблені елементи класів.

 

Варіант 19

Описати клас “запис”, що містить наступні закриті поля:

· прізвище, ім'я;

· номер телефону;

· дата народження (масив з трьох чисел).

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

Описати клас “записник”, що містить закритий масив записів. Забезпечити наступні можливості:

· виведення на екран інформації про людину, номер телефону якї введений з клавіатури; якщо такого немає, видати на дисплей відповідне повідомлення;

· пошук людей, день народження яких сьогодні або в заданий день;

· пошук людей, день народження яких буде наступного тижня;

· пошук людей, номер телефону яких починається на три задані цифри.

Написати програму, що демонструє всі розроблені елементи класів.

 

Варіант 20

Описати клас “англо-російський словник”, що забезпечує можливість зберігання декількох варіантів перекладу для кожного слова. Реалізувати доступ по рядковому індексу - англійському слову. Забезпечити можливість виведення всіх значень слів по заданому префіксу.

 

Лабораторна робота 9. Спадкоємство

 

Теоретичний матеріал: розділ 8.

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

Функція Main повинна містити масив з елементів базового класу, заповнений посиланнями на похідні класи. У цій функції повинне демонструватися використання всіх розроблених елементів класів.

 

Варіант 1

Створити клас Point (крапка). На його основі створити класи ColoredPoint і Line (лінія). На основі класу Line створити класи Coloredline і Polyline (багатокутник). У класах описати наступні елементи:

· конструктори з параметрами і конструктори за умовчанням;

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

· для ліній - методи зміни кута повороту ліній щодо першої крапки;

· для багатокутника - метод масштабування.

 

Варіант 2

Створити абстрактний клас Vehicle (транспортний засіб). На його основі реалізувати класи Plane (літак), Саr (автомобіль) і Ship (корабель). Класи повинні мати можливість задавати і отримувати координати і параметри засобів пересування (ціна, швидкість, рік випуску і т. п.) за допомогою властивостей. Для літака має бути визначена висота, для літака і корабля - кількість пасажирів, для корабля - порт приписки. Динамічні характеристики задати за допомогою методів.

 

Варіант 3

Описати базовий клас Рядок. Обов'язкові поля класу:

· поле для зберігання символів рядка;

· значення типу word для зберігання довжини рядка в байтах.

Реалізувати обов'язкові методи наступного призначення:

· конструктор без параметрів;

· конструктор, що приймає як параметр рядковий літерал;

· конструктор, що приймає як параметр символ;

· метод отримання довжини рядка;

· метод очищення рядка (зробити рядок порожнім).

Описати похідний від Рядок клас Комплексне_число.

Рядки даного класу складаються з двох полів, розділених символом i.

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

33i12

-7i100

+5i - 21

Для класу Комплексне_число визначити наступні методи:

· перевірка на рівність;

· складання чисел;

· множення чисел.

Варіант 4

Описати базовий клас Рядок відповідно до варіанту 3. Описати похідний від Рядок клас Десятичний_ рядок.

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

Для класу визначити наступні методи:

· конструктор, що приймає як параметр число;

· арифметична різниця рядків;

· перевірка на більше (за значенням);

· перевірка на менше (за значенням).

 

Вариант 5

Описати базовий клас Рядок відповідно до варіанту 3.

Описати похідний від Рядок клас Бітовий_ рядок.

Рядки даного класу можуть містити тільки символи '0' або ' 1'. Якщо у складі рядка будуть зустрінуті будь-які символи, відмінні від допустимих, клас Бітовий_ рядок приймає нульове значення. Вміст даних рядків розглядається як двійкове число. Від’ємні числа зберігаються в додатковому коді.

Для класу Бітовий_ рядок визначити наступні методи:

· конструктор, що приймає як параметр рядковий літерал;

· деструктор;

· зміна знаку на протилежний (переклад числа в додатковий код);

· привласнення;

· обчислення арифметичної суми рядків;

· перевірка на рівність.

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

Варіант 6

1. Описати базовий клас Елемент.

Закриті поля:

· ім'я елементу (рядок символів);

· кількість входів елементу;

· кількість виходів елементу.

Методи:

· конструктор класу без параметрів;

· конструктор, який задає ім'я і встановлює рівним 1 кількість входів і виходів;

· конструктор, який задає им’я значення всіх полів елементу.

Властивості:

· ім'я елементу (тільки читання);

· кількість входів елементу;

· кількість виходів елементу.

2. На основі класу Елемент описати похідний клас Комбінаційний, такий, що є комбінаційним елементом (двійковий вентиль), який може мати декілька входів і один вихід.

Поле - масив значень входів.

Методи:

· конструктори;

· метод, який задає значення на входах екземпляра класу;

· метод, що дозволяє опитувати стан окремого входу екземпляра класу;

· метод, що обчислює значення виходу (по варіанту завдання).

3. На основі класу Елемент описати похідний клас Пам'ять, що є тригером. Тригер має входи, відповідні типу тригера (див. далі варіант завдання), і входи установки і скидання. Всі тригери вважаються за синхронні, сам синхровхід до складу тригера не включається.

Поля:

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

· перебування на прямому виході тригера;

· перебування на інверсному виході тригера.

Методи:

· конструктор (за умовчанням скидає екземпляр класу);

· конструктор копіювання;

· метод, який задає значення на входах екземпляра класу;

· методи, що дозволяють опитувати стани окремого входу екземпляра класу;

· метод, що обчислює стан екземпляра класу (по варіанту завдання) залежно від поточного перебування і значень на входах;

· метод, для перевантаження операції = =.

4. Створити клас Регістр, використовуючи клас Пам'ять як вкладений клас.

Поля:

· стан входу “Скидання” - один для екземпляра класу;

· стан входу “Установка” - один для екземпляра класу;

· масив типу Пам'ять заданої у варіанті розмірності;

· масив (масиви), що містить значення на відповідних входах елементів масиву типу Пам'ять.

Методи:

· метод, що задає значення на входах екземпляра класу;

· метод, що дозволяє опитувати стан окремого виходу екземпляра класу;

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

Всі поля класів Елемент, Комбінаційний і Пам'ять мають бути описані з ключовим словом рrivаtе.

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

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

Конкретний тип комбінаційного елементу, тип тригера і розрядність регістра вибираються відповідно до варіанту завдання:

 

Варіант Комбінаційний елемент Число входів Тригер Розрядність регістра
  И-НЕ   RS  
  ИЛИ   RST  
  МОД2-НЕ   D  
  И   Т  
  ИЛИ-НЕ   V  
  И   RS  
  ИЛИ-НЕ   JK  
  МОД2   D  
  И   Т  
  ИЛИ   JK  
  И-НЕ   RS  
  ИЛИ-НЕ   RST  
  МОД2   D  
  МОД2-НЕ   Т  
  ИЛИ-НЕ   V  
  И   JK  
  И-НЕ   RS  
  ИЛИ   Т  
  МОД2   JK  
  МОД2-НЕ   V  



Поделиться с друзьями:


Дата добавления: 2014-12-27; Просмотров: 1612; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.133 сек.