- •Лабораторна робота №1. Розгалужені оператори мови Borland Pascal
- •Теоретичні відомості
- •1. Структура програми на Pascal
- •2. Прості оператори
- •3. Оператори розгалуження
- •4. Процедури введення / виведення
- •Теоретичні відомості
- •Порядок виконання роботи:
- •Контрольні запитання:
- •Лабораторна робота №2. Циклічні оператори мови Borland Pascal
- •Лабораторна робота №3. Процедури та функції користувача мови Borland Pascal
- •Теоретичні відомості
- •Опис процедур
- •Лабораторна робота №4. Одновимірні масиви мови Borland Pascal
- •Теоретичні відомості
- •Лабораторна робота №5. Двовимірні масиви мови Borland Pascal
- •Теоретичні відомості Багатовимірні масиви
- •Оголошення багатовимірних масивів. Доступ до елементів
- •Базові операції обробки двовимірних масивів
- •Лабораторна робота №6 Записи. Множини в мові Borland Pascal
- •Теоретичні відомості
- •Порядок виконання роботи:
- •Контрольні запитання
- •Звіт повинен містити:
- •Завдання 1до лабораторної роботи №6
- •Завдання2 до лабораторної роботи №6
- •Лабораторна робота №7. Текстові та бінарні файли мови Borland Pascal
- •Теоретичні відомості
- •Операції над текстовими файлами
- •Завдання до лабораторної роботи №7
- •Лабораторна робота №8 Динамічні структури даних в мові Pascal
- •Теоретичні відомості
- •Теоретичні відомості
- •Базові типи даних
- •Потоки введення – виведення даних
- •Математичні функції
- •Порядок виконання роботи:
- •Теоретичні відомості
- •Вираз1, вираз2 або команда1, команда2
- •If (логічний вираз) команда1; else команда2;
- •If (логічний вираз) команда1;
- •Теоретичні відомості
- •Лабораторна робота №4. Циклічні оператори (while, do…while).
- •Теоретичні відомості
- •Цикл з передумовою while
- •While ( вираз )оператор;
- •Завдання 2.
- •Лабораторна робота №5. Циклічні оператори (for).
- •Теоретичні відомості
- •Теоретичні відомості
- •Лабораторна роботА №7. Одновимірні масиви
- •Теоретичні відомості
- •Теоретичні відомості
- •Порядок виконання роботи:
- •Контрольні запитання
- •Звіт повинен містити:
- •Завдання до лабораторної роботи №3
Завдання до лабораторної роботи №3
Варіант 1. Дана цілочисельна прямокутна матриця. Визначити кількість рядків, що не містять ні одного нульового елемента.
Варіант 2. Дана цілочисельна прямокутна матриця. Визначити кількість стовпців, що не містять ні одного нульового елемента.
Варіант 3. Дана цілочисельна прямокутна матриця. Визначити: кількість стовпців, що містять хоча б один нульовий елемент.
Варіант 4. Дана цілочисельна квадратна матриця. Визначити добуток елементів в тих рядках, котрі не містять від’ємних елементів.
Варіант 5. Дана цілочисельна квадратна матриця. Визначити суму елементів в тих стовпцях, котрі не містять від’ємних елементів.
Варіант 6. Дана цілочисельна прямокутна матриця. Визначити. Суму елементів в тих рядках, котрі містять хоча б один від’ємний елемент.
Варіант 7. Дана цілочисельна прямокутна матриця. Визначити кількість рядків, що містять хоча б один нульовий елемент.
Варіант 8. Дана цілочисельна квадратна матриця. Визначити мінімум серед елементів діагоналей.
Варіант 9. Дана цілочисельна квадратна матриця. Визначити максимальне значення серед елементів матриці.
Варіант 10. Дана цілочисльна прямокутна матриця. Визначити кількість елементів парних 2.
Варіант 11. Дана цілочисельна квадратна матриця. Визначити суму елементів відмінних від нуля.
Варіант 12. Дана цілочисельна квадратна матриця. Обміняти місцями елементи першого і останнього стовпця.
Варіант 13. Дана дійсна квадратна матриця. Обміняти місцями елементи першого і останнього рядка.
Варіант 14. Дана дійсна матриця. Визначити суму елементів побічної діагоналі, якщо їх значення знаходиться в діапазоні [1..5].
Варіант 15. Дана цілочисельна прямокутна матриця. Визначити кількість від’ємних елементів в тих рядках, що містять хоча б один нульовий елемент.
Варіант 16. Дана цілочисельна квадратна матриця. Визначити суму елементів в тих рядках, що не містять від’ємних елементів.
Варіант 17. Дана цілочисельна прямокутна матриця. Визначити кількість рядків, що містять хоча б один нульовий елемент.
Варіант 18. Дана цілочисельна прямокутна матриця. Визначити мінімальні елементи на головній та побічній діагоналі.
Варіант 19. Дана цілочисельна прямокутна матриця. Визначити індекси максимального елемента.
Варіант 20. Дана дійсна матриця. Визначити добуток елементів в тих рядках, що не містять від’ємних елементів.
Лабораторна робота №9 Шаблони функцій в мови С++
ЛАБОРАТОРНА РОБОТА №10. Структури даних мови С++
Мета: Засвоїти принцип роботи з даними типу структура в мові С++ та використання функцій при роботі з структурами
Обладнання: ПК, програмне забезпечення Borland C++, методичні вказівник та завдання до виконання лабораторної роботи.
Теоретичні відомості
На відміну від масиву, всі елементи котрого однотипні, структура може містить елементи різних типів. Структура – це спеціальний тип даних, який створює користувача для опрацювання інформації про об’єкти з деякої предметної області. В мові С++ структура є видом класу і володіє його властивостями. Структури в мові С++ визначаються наступним чином:
struct назва типу структури
{
тип_поля1 назва_поля1;
…
тип_поляN назва_поляN;
} ;
Опис структури обов’язково закінчується символом «;» .
Коли в програмі оголошена структура, тоді можна оголосити змінні та вказівники цього типу:
назва_типу_структури список_змінних і вказівників;
Оголосити змінні типу структура можна ще й так:
struct назва типу структури
{
тип_поля1 назва_поля1;
…
тип_поляN назва_поляN;
} список_змінних і вказівників;
Структурами може містити поля типу структура.
Змінні типу структура можна ініціалізувати відразу під час оголошення.
Доступ до конкретної поля змінної типу структура дає складене ім’я вигляду:
назва_змінної . назва_поля
Можна також створювати вказівники на структури. Доступ до полів вказівника на структуру здійснюється дещо інакше, ніж до полів відповідної змінної, а саме:
назва_вказівника -> назва_поля
Масив змінних типу структура можна оголосити так:
назва_типу_структура назва_масиву [кількість елементів];
Доступ до полів окремих елементів масиву здійснюється так:
назва_масиву [індекс] . назва_поля
Задача. Описати структуру PRICE, що містить наступні поля:
назва товару;
назва магазину в котрому продається товар;
вартість товару в грн.
Написати програму, що виконує наступні дії:
ввід з клавіатури даних в масив
вивід на екран інформації про товари, що подаються в магазині назва котрого введена з клавіатури
якщо такого магазину немає вивести відповідне повідомлення
Покрокове розв’язання:
Підключення директив препроцесора
Оголошення структури
struct PRICE
{
char nazva_tovar[15];
char nazva_magazin[15];
float vartist;
};
Головна функція програми
Оголошення змінних
PRICE mas[n];
int oz=0;
char mag[15];
Ввід даних
Вибір потрібного запису з масиву
cout<<"\nВведіть назву потрібного магазину "; cin>>mag;
for(i=0; i<n;i++)
{
if(strcmp(mag,mas[i].nazva_magazin)==0)
{
cout<<"\nТовар-"<<mas[i].nazva_tovar<<"\nвартість - "<<mas[i].vartist<<"грн. \n\n";
oz=1;
}
}
if(oz==0) cout<<"\nТакого магазину немає в записах\n";
Завершення програми.
Порядок виконання роботи:
Створити алгоритм (блок-схему) та програму для розв’язування завдання з вашого варіанту.
Відладити програму.
Запустити програму на виконання і перевірити правильність роботи програми.
Відповісти на контрольні запитання та оформити звіт.
Контрольні запитання:
1. Як під час оголошення задати обсяг пам’яті, який займатимуть змінні певного поля?
2. Як ініціалізувати структуру під час оголошення?
3. Як виконується доступ до полів змінної типу „структура”?
4. Як виконується доступ до полів вказівника на структуру?
5. Як оголосити масив типу структура?
6. Як виконується до окремих елементів масиву?
Звіт повинен містити:
Мету, обладнання лабораторної роботи.
Завдання згідно варіанту.
Текст програми.
Аналіз допущених під час роботи помилок.
Відповіді на контрольні запитання
Висновки.
Викладач Смерека А.Г.
Завдання до лабораторної роботи №4
Варіант 1.
1. Опишіть структуру з іменем STUDENT, що містить наступні поля:
прізвище, ім’я;
номер групи;
середній бал;
2. Написати програму, що виконує наступні дії:
ввід з клавіатури даних у масив, що складається з 10 елементів типу STUDENT;
вивід на екран прізвища та номер групи всіх студентів, якщо середній бал студента більший 4,0;
якщо таких студентів немає, видати на екран відповідне повідомлення.
Варіант 2.
1. Опишіть структуру з іменем AEROFLOT, що містить наступні поля:
назва пункту призначення рейсу;
номер рейсу;
тип літака;
2. Написати програму, що виконує наступні дії:
ввід з клавіатури даних у масив, що складається з 10 елементів типу AEROFLOT;
вивід на екран номери рейсів і типи літаків, що вилітають в пункт призначення, назва котрого співпадає зі значенням котре введено з клавіатури;
якщо таких рейсів немає, видати на екран відповідне повідомлення.
Варіант 3.
1. Опишіть структуру з іменем WORKER, що містить наступні поля:
прізвище та ініціали працівника;
посада;
рік початку роботи;
2. Написати програму, що виконує наступні дії:
ввід з клавіатури даних у масив, що складається з 10 елементів типу WORKER;
вивід на екран пункт прізвищ працівників, у котрих стаж роботи в організації перевищує значення, яке введене з клавіатури;
якщо таких працівників немає, видати на екран відповідне повідомлення.
Варіант 4.
1. Опишіть структуру з іменем TRAIN, що містить наступні поля:
назва пункту призначення;
номер поїзда;
час відправки;
2. Написати програму, що виконує наступні дії:
ввід з клавіатури даних у масив, що складається з 10 елементів типу TRAIN;
вивід на екран інформації про поїзди, що відправляються після введеного з клавіатури часу;
якщо таких поїздів немає, видати на екран відповідне повідомлення.
Варіант 5.
1. Опишіть структуру з іменем MARSH, що містить наступні поля:
назва початкового пункту;
назва кінцевого пункту;
номер маршруту;
2. Написати програму, що виконує наступні дії:
ввід з клавіатури даних у масив, що складається з 10 елементів типу MARSH;
вивід на екран інформації про маршрут, номер котрого введений з клавіатури;
якщо таких маршрутів немає, видати на екран відповідне повідомлення.
Варіант 6.
1. Опишіть структуру з іменем NOTE, що містить наступні поля:
прізвище, ім’я;
номер телефону;
адреса;
2. Написати програму, що виконує наступні дії:
ввід з клавіатури даних у масив, що складається з 10 елементів типу NOTE;
вивід на екран інформацію про людину, номер телефону котрої введено з клавіатури;
якщо такої людини немає, видати на екран відповідне повідомлення.
Варіант 7.
1. Опишіть структуру з іменем ORDER, що містить наступні поля:
номер рахунка платника;
номер рахунка отримувача;
сума, що перераховується в грн.;
2. Написати програму, що виконує наступні дії:
ввід з клавіатури даних у масив, що складається з 10 елементів типу ORDER;
вивід на екран інформацію про суму, що знята з рахунку платника, номер котрого введено з клавіатури;
якщо такого рахунку немає, видати на екран відповідне повідомлення.
Варіант 8.
1. Створіть структуру з іменем Abiturient, яка б містила наступні поля:
прізвище, ім’я, по-батькові;
рік народження;
оцінки за вступні іспити (3);
середній бал атестата.
2. Напишіть програму, яка б виконувала наступні дії:
введення з клавіатури даних в масив, що складається з десяти елементів типу Abiturient ;
виведення на екран даних про всіх абітурієнтів, середній бал яких перевищує 4 Якщо таких немає – вивести відповідне повідомлення.
Варіант 9.
1. Створіть структуру Country (країна), яка б містила наступні поля:
назва;
столиця;
чисельність населення;
площа.
2. Напишіть програму, яка б виконувала наступні дії:
введення з клавіатури даних в масив, що складається з десяти елементів типу Country (3 бали);
впорядкування записів у масиві за зростанням площі країни (+1 бал);
виведення на екран даних про всі країни чисельність населення у яких не менше деякої заданої величини (+1 бал). Якщо таких немає – вивести відповідне повідомлення.
Варіант 10.
1. Створіть структуру Restaurant, яка б містила наступні поля:
назва;
адреса;
номер телефону;
кількість посадочних місць.
2. Напишіть програму, яка б виконувала наступні дії:
введення з клавіатури даних в масив, що складається з десяти елементів типу Restaurant (3 бали);
впорядкування записів у масиві за назвою (+1 бал).
виведення на екран даних про всі ресторани, що знаходяться на деякій вулиці (+1 бал). Якщо таких немає – вивести відповідне повідомлення.
Варіант 11.
1. Створіть структуру Book, яка б містила наступні поля:
назва;
автор(и);
видавництво;
рік видання.
2. Напишіть програму, яка б виконувала наступні дії:
введення з клавіатури даних в масив, що складається з десяти елементів типу Book (3 бали);
впорядкування записів у масиві за автором (+1 бал);
виведення на екран даних про всі книжки видавництва “Питер”(+1 бал). Якщо таких немає – вивести відповідне повідомлення.
ЛАБОРАТОРНА РОБОТА №11. Динамічні структури даних мови С++
Мета: Набуття навичок при з динамічними структурами в мові С++
Обладнання: ПК, програмне забезпечення ВоrlandС++, методичні вказівки та завдання до лабораторної роботи.
Теоретичні відомості
Кожна змінна має свою адресу пам'яті. Існує спеціальна операція взяття адреси, яка позначається &. Наприклад, &а - це адреса змінної а.
Вказівник - це змінна, в якій записано адреса комірки пам'яті. Кожна змінна програми має свою адресу в пам'яті, для збереження якого можна використовувати вказівник на цю змінну. Щоб оголосити змінну типу вказівник, потрібно записати знак * після типу змінної. Синтаксис опису вказівника: <тип>* <ім'я>;. Після оголошення вказівнику обов'язково бажано присвоїти яке-небудь значення. Якщо попередньо не відомо, яка адреса повинна зберігатися у вказівнику, то йому присвоюється значення 0. Неініційовані вказівники в подальшому можуть стати причиною великих неприємностей. Після оголошення вказівника йому потрібно присвоїти значення.
Як взнати, яке значення міститься в комірці за вказаною адресою. Для цього існує операція розйменування або непрямого звернення, оскільки здійснюється неявне звернення до деякої комірки пам'яті через її адресу, яка міститься в іншій комірці. Синтаксис цієї операції: *<змінна типу вказівника>. Наприклад, хочемо записати в змінну с значення, яке зберігається за вказівником b: с=*b (значення, яке зберігається за адресою).
Над вказівниками можна виконувати такі операції: додавання, віднімання, множення, ділення, порівняння, присвоєння.
Дані, які зберігаються за вказівниками, називаються динамічними. Місце для збереження динамічних даних в пам'яті програміст виділяє сам (для цього існує функція new), і звільняє також сам (процедурою delete).
Одним із. застосувань динамічних даних в програмуванні є спискові структури. До них належать списки, стеки, черги та дерева.
Списком називають впорядковану множину елементів одного типу. Списки можна зберігати послідовно і зв'язано. Прикладом послідовного зберігання списків є масив. При зв'язаному зберіганні списку крім значень вузлів зберігають ще вказівники на наступні елементи.
Тип елементів зв'язаного списку можна описати наступним чином:
typedef struct list
{ int val;
struct list *next;} LIST, *LISTP;
LIST - це новий тип, який описує елемент списку, а LISTP - це вказівник на елемент списку.
При зв'язаному зберіганні список досить легко створюється, причому наперед непотрібно задавати кількість елементів в списку.
Функція, що створює список (функція без параметрів, повертає вказівник на початок списку):
LISTP create_list()
{ cout<<"Input elements of list:"<<endl;
LISTP p,q,top;
p=new LIST;
top=p;
cout<<"val: ";cin>>p->val;
p->next=NULL;
char c;
cout<<"Will be next yet?(Y/N)"; cin>>c;
while ((c= =’y’)||(c= =’Y’)) {
q=new LIST;
cout<<"val: ";cin>>q->val;
q->next=NULL;
p->next=q;
p=q;
cout<<"Will be next yet?(Y/N)"; cin>>c; }
return top;}
Процедура включення вузла в список після елемента, заданого вказівником p:
void Add_node(LISTP p, int v) {
LISTP q;
q=new LIST; q->val=v; q->next=p->next; p->next=q;}
Процедура виключення елемента з списку, заданого вказівником p:
LISTP Del_node(LISTP top, LISTP p) {
LISTP q;
if (p==top) { top=rtop->next; }
else {
q=top;
while ((q->next!=p)║(!q->next))
q=q->next; q->next=p->next; }
delete p;
return top; }
Черга - це такий лінійний список, в якому вилучаються елементи тільки з початку списку, а додаються в його кінці. Прикладом є звичайна черга в магазині. Елементи черги описуються аналогічно елементам списку. Створення черги повністю аналогічне створенню лінійного списку, так як при організації лінійного списку ми кожний наступний добавляли в кінець списку. Включення елементів в чергу аналогічне включенню елемента списку в кінець. Вилучення елемента з черги здійснюється як вилучення початкового елемента списку.
Найчастіше в програмуванні приходиться мати справу зі стеками.
Стек - це лінійний список, де операції додавання і вилучення елемента та доступу до елемента виконуються тільки на початку. Стек можна подавати як купу книг на столі, де додати або взяти нову книжку можна лише зверху. Елементи стеку описуються аналогічно елементам списку.
Дерева - це скінчена множина вузлів з одним виділеним вузлом, що називається коренем, а і інші вузли утворюють т підмножин В1 , В2 , ..., Вт, які не перетинаються і кожна з яких знову представляє собою дерево (піддерево). Корінь дерева (попередник, батько) передує кореням своїх піддерев, що є його наступниками (синами). Це співвідношеннями між вузлами дерев має такі властивості: 1) існує один вузол - корінь, який будемо позначати w, причому цей вузол немає попередників; 2)кожний вузол k1 , який не є коренем w, має лише одного попередника; 3)для кожного вузла k, який не є коренем w, обов’язково існує послідовність вузлів (k0 , k1 ,..., k2 , п≥1) від кореня до цього вузла (тобто k0 = w, kп= k ), яка називається віткою (гілкою) дерева, і в цій послідовності ki – наступник ki–1, і = 2,п.
Порядок виконання роботи:
Створити алгоритм (блок-схему) та програму для розв’язування завдання з вашого варіанту.
Відладити програму.
Запустити програму на виконання і перевірити правильність роботи програми.
Відповісти на контрольні запитання та оформити звіт.
Контрольні запитання
Дайте означення списку, стеку та черги.
Зобразіть схематично додавання елементу в середину списку.
Зобразіть схематично додавання елементу в стек.
Зобразіть схематично додавання елементу в чергу.
Звіт повинен містити:
Мету, обладнання лабораторної роботи.
Завдання згідно варіанту.
Текст програми.
Аналіз допущених під час роботи помилок.
Відповіді на контрольні запитання
Висновки.
Викладач Смерека А.Г.
Завдання до лабораторної роботи №5
Варіант 1. Створити однозв'язний список цілих чисел. Замінити в ньому всі від'ємні елементи на протилежні їм. Видати результуючий список.
Варіант 2. Створити однозв'язний список цілих чисел. Підрахувати кількість додатних, від’ємних та нульових елементів.
Варіант 3 Створити список цілих чисел. Замінити в ньому всі від'ємні елементи на нулі, додатні на одиницю збільшити.
Варіант 4. Створити список символів. Подвоїти всі букви латинського алфавіту в ньому. (Наприклад, вхідний список – Pitter, come to me, please. . Результуючий список - PPiitteerr, ccoommee ttoo mmee, pplleeaassee
Варіант 5. Створити лінійний однозв'язний список. Знайти максимальний елемент списку і поміняти його з першим
Варіант 6. Створити лінійний однозв'язний список. Знайти суму елементів списку.
Варіант 7. Задано однозв'язний лінійний список з цілими числами. Створити новий список, який містить елементи заданого списку в оберненому порядку.
Варіант 8. Задано цілочисельний лінійний список, що зберігається зв’язано. Надрукувати не нулеві елементи.
Варіант 9. Створити лінійний цілих чисел. Обчислити кількість входжень заданого числа в черзі.
Варіант 10. Створити стек з цілих чисел. Обчислити добуток елементів стеку і помістити результат в стек.
Варіант 11. Елементи заданого списку надрукувати в оберненому порядку. (Вказівка: використати стек, в який заносити елементи списку, а потім роздрукувати елементи стеку)
ЛАБОРАТОРНА РОБОТА №12. Файли в мові С++
Мета: Набуття навичок при роботі з файлами С++, вивчення функцій символьного, рядкового, форматованого вводу в файл та виводу з файлу на різних рівнях.
Обладнання: ПК, програмне забезпечення ВоrlandС++, методичні вказівки та завдання до лабораторної роботи.
Методичні вказівки
Часто виникає потреба опрацьовувати інформацію, розміщену на зовнішніх носіях, або виводити результат програми не на екран монітора, а у файл. Прикладами таких програм є інформацію про розклад руху транспорту, успішність студентів, наявність товару на складі, у магазинах, адреси, анкетні дані тощо.
Файл – це сукупність даних, які розміщені на зовнішньому носії, зокрема, на жорсткому диску. Дані у файлі називають елементами. Кількість даних під час опрацювання файлів не зазначають. Файли можуть містити як текстову інформацію, так і числову інформацію.
Існує декілька бібліотечних функцій, які дають змогу зчитувати інформацію з файлу або спрямовувати потів виведення у файл. Функції, які розглядатимемо, описані в бібліотеці fstream.h. тому для роботи з файлами насамперед необхідно підключити саме цю бібліотеку.
Зауваження 1. У модулі fstream.h також містяться описи стандартних потоків cout, cin. Тому, щоб зчитати інформацію з файлу і вивести її на екран монітора, модуль iostream.h підключати необов’язково.
Для опрацювання файлу його необхідно відкрити, виконати потрібні дії та закрити.
Зчитування даних із файлу. Щоб зчитати вхідні дані з файлу, необхідно оголосити файлову змінну та відкрити файл для читання (розглянемо два способи):
ifstream <назва файлової змінної >(”зовнішня назва файлу”, ознака1|ознака2|....|ознакаN);
або
ifstream <назва файлової змінної >;
<назва файлової змінної > . open (”зовнішня назва файлу”);
Дія команди. Підключаємо потік введення даних з файлу та налагоджуємо зв’язок між файловою змінною у програмі та файлом на зовнішньому носії. Назву зовнішнього файлу треба записувати у лапках. Ознаки слугують для визначення прав доступу до файлу (СРС). Ознаки зазначати необов’язково.
Зчитати дані з файлу можна за допомогою команди:
<назва файлової змінної > >> <змінна1> >> <змінна2> ….>> <зміннаN>;
Після опрацювання файлу його потрібно закрити. Це роблять так:
<назва файлової змінної >. close()
Визначити кінець файлу можна за допомогою функції eof() (end of file) так:
<назва файлової змінної > . eof()
Ця функція повертає нульове значення, якщо досягнуто кінець файлу.
Виведення даних у файл. Відкрити файл для запису у нього даних можна так:
ofstream <назва файлової змінної > >(”зовнішня назва файлу”, ознака1|ознака2|....|ознакаN);
або
ofstream <назва файлової змінної >;
<назва файлової змінної > . open (”зовнішня назва файлу”);
Дія команди. Підключаємо потік виведення у файл і налагоджуємо зв’язок між файловою змінною у програмі та файлом на зовнішньому носії. Ознаки зазначати необов’язково.
Записати дані у файл можна так:
<назва файлової змінної> << <змінна1> << <змінна2> … <зміннаN>;
Рівні доступу до файлу
Ознаки слугують для зміни правил доступу до файлу. Розглянемо такі з них:
Ознаки |
Призначення |
ios::in |
Відкриває файл для читання з нього інформації Вміст файлу зберігається. |
ios::out |
Відкриває файл для записування інформації. Якщо файл не існує, то буде створений. |
ios::app |
Відкриває файл для дописування інформації. Дані будуть записані у кінець файлу. |
ios::trunk |
Якщо, файл який відкрити для записування вже існує, то його вміст буде вилучено. |
ios::nocreate |
Забороняє створювати файл, який відкривають |
ios::noreplace |
Забороняє перезаписати існуючий файл. |
Приклад. Після оголошення
ofstream Flags(“text1.dat”, ios::app,ios::noreplace);
можна дописати до кінця вже існуючого файлу text.dat потрібну інформацію. Якщо ж оголосити потік Flags так:
ofstream Flags(“text1.dat”, ios::noreplace);
і спробувати щось записати у файл, то жодних дій не відбудеться, оскільки ознака ios::noreplace забороняє змінювати існуючий файл. Проте якщо цю ознаку застосувати до нового файлу, якого ще немає на диску, наприклад, записати:
ofstream Flags(“newtext1.dat”, ios::noreplace);
то буде створено файл, в який можна буде заносити дані.
Якщо потік оголосити так
ofstream Flags(“text2.dat”, ios::nocreate);
то можливі два варіанти. Якщо файл вже існує, то він може бути відкритий для записування даних. Якщо ж раніше такого файлу на диску не було, то в кращому випадку у файл нічого не запишеться, а в гіршому – програма зависне.
Порядок виконання роботи:
Створити алгоритм (блок-схему) та програму для розв’язування завдання з вашого варіанту.
Відладити програму.
Запустити програму на виконання і перевірити правильність роботи програми.
Відповісти на контрольні запитання та оформити звіт.
Контрольні запитання
Які бібліотечні функції використовуються для роботи з файлами?
Як відкрити файл для запису інформації?
Як відкрити файл для читання інформації?
Запишіть рівні доступу, які використані у Вашій програмі
Звіт повинен містити:
Мету, обладнання лабораторної роботи.
Завдання згідно варіанту.
Текст програми.
Аналіз допущених під час роботи помилок.
Відповіді на контрольні запитання
Висновки.
Викладач Смерека А.Г.
Завдання до лабораторної роботи № 6
Додаток Для створення списку використати тип даних «структура».
Варіант 1. Створити файл, в якому міститься список студентів вашої групи. Кожний запис цього списку містить таку інформацію: прізвище, ім'я, по-батькові, місце проживання, телефон, хобі. Організувати пошук всієї інформації про студента за його прізвищем. Написати функцію для створення файлу, для пошуку та для виводу файлу.
Варіант 2. Створити файл, в якому міститься список товарів на базі „Оболонь", кожний запис якого містить таку інформацію: назва товару, код товару, кількість, ціна та дата поставки. Організувати пошук товару, якого залишилося на складі менше 100 одиниць. Написати функції для створення файлу, пошуку та для виводу файлу.
Варіант 3. Створити файл, який містить список друзів, кожний запис якого містить таку інформацію: прізвище, ім'я, по-батькові, телефон, адреса, захоплення. Видати список друзів, які мають певне захоплення. Написати функції для створення файлу, пошуку та для друку файлу.
Варіант 4. Створити файл, який містить список студентів вашої групи, кожний запис містить таку інформацію: прізвище, ім'я, по-батькові, оцінка з алгебри, оцінка з історії. Організувати пошук всіх відмінників групи. Написати функції для створення файлу, пошуку та для друку файлу.
Варіант 5. Створити файл, який містить список товарів на складі. Кожний запис цього списку містить таку інформацію: назва товару, код товару, ціна за одиницю та кількість товару на складі, видати інформацію про товари, вартість яких перевищує 1000 грн. Написати функції для створення файлу, пошуку та для друку файлу.
Варіант 6. Створити файл, який містить список автомобілів, що стоять на обліку в ДАІ. Кожний запис такого списку містить таку інформацію: номер авто, марка, колір, власник та його адреса, організувати пошук власника автомобіля за його номером. Написати функції для створення файлу, пошуку та для друку файлу.
Варіант 7. Створити файл, який містить список планет сонячної системи, кожний запис якого містить таку інформацію: назва планети, об'єм, діаметр, віддаленість від Сонця. Видати список планет, які знаходяться від Сонця на відстані, більшій за вказану. Написати функції для створення файлу, пошуку та для друку файлу.
Варіант 8. Створіть файл, який містить список абітурієнтів, кожний запис якого містить таку інформацію: прізвище, ім’я, по-батькові; рік народження; оцінки за вступні іспити (3); середній бал атестата. Написати функції для створення файлу, пошуку та для друку файлу.
Варіант 9. Створіть файл, який містить список країн, кожний запис якого містить таку інформацію: назва; столиця; чисельність населення; площа. Написати функції для створення файлу, пошуку та для друку файлу.
Варіант 10. Створіть файл, який містить список ресторанів, кожний запис якого містить таку інформацію: назва; адреса; номер телефону; кількість посадочних місць. Написати функції для створення файлу, пошуку та для друку файлу.
Варіант 11. Створіть файл, який містить список книг, кожний запис якого містить таку інформацію: назва; автор(и); видавництво; рік видання. Написати функції для створення файлу, пошуку та для друку файлу.
