« Назад
Лабораторна робота №1 на тему Структури та об’єднання та Робота з бінарними файлами
Мета роботи: програмування із застосуванням структур, одержанняпрактичних навичок для роботи з бінарними файлами
9.1. Теоретичні відомості
Структураоб’єднує логічно пов’язані дані різних типів. Структурний тип даних визначається таким описом:
struct ім’я_структури {
опис_елементів };
Приклад:
struct dinner { char *place;
float cost; };
Структурна змінна описується за допомогою структурного типу.
Приклад:
struct dinner week_days[7]; // масив структур
struct dinner best_one; // одна структурна змінна
struct dinner *p; // покажчик на структурну змінну
p = &best_one; // ініціалізація покажчика
Для звернення до окремого елемента структури використовується операція одержання елемента структури, исмволом якої є крапка "." . Наприклад, best_one.cost є елементом cost структури best_one. Можна використовувати best_one.cost так як будь-яку іншу змінну типу float.
Для звернення до окремого елемента структури через покажчик можна використовувати два способи.
Перший способ використовує операцію “->”:
p->cost - це best_one.cost, якщо p = &best_one. Іншими словами, структурний покажчик, за яким слідує операція ->, працює так, як і ім’я структури с наступною операцією "." .
Інший спосіб визначення елемента структури: якщо p = &best_one, то *p = best_one. Це так, тому що & і * - взаємно обернені операції. І, відповідно, елемент структури можна записати як (*p).cost.
Варіант 1
-
Напишіть програму, яка записує в файл інформацію про студентів, що проживають в гуртожитку: ПІБ, номер групи, адреса (проспект/вулиця, будинок, корпус, номер кімнати). Виведіть список студентів, які живуть в кімнаті ЦЦЦ ( вся інша адреса може відрізнятися). З'ясуйте, де проживає ПІБ?
- Файл містить числа цілого типу. Підрахуйте кількість тих парних чисел та їх середнє значення, які записані на непарних місцях.
Варіант 2
-
Файл містить числа цілого типу. Визначте номер та значення першого парного елемента, серед елементів з непарними номерами.
- Файл містить дані про асортимент відділу іграшок деякого супермаркету: назва іграшки, ціна, кількість, вікова категорія (наприклад, 2 5 від двох до п’яти років). Виведіть:
назви іграшок для дітей від k до m років;
інформацію про найдорожчу іграшку;
назви іграшок для дитини від k до m років вартістю не більше S гривень.
Варіант 3
-
З файлу, який містить цілі числа, виберіть елементи, що кратні трьом.
- Файл містить дані про автолюбителів: ПІБ, індекс та номер паспорта, номер водійського посвідчення, група крові, телефон, e-mail, марка автомобіля, рік випуску, потужність двигуна, номерний знак, колір. Виведіть дані про володаря автомобіля певної марки та заданого кольору. Визначте найпопулярніший колір.
Варіант 4
-
Файл містить дані про відеомагнітофони, які зберігаються на складі: фірма-виробник, країна, марка, ціна, кількість. Виведіть інформацію про магнітофони, що коштують від x до y гривень. продукція якої фірми найбільш популярна?
- В файлі записана квадратна матриця. Визначте її розмірність (по кількості елементів першого рядка), та найменший по модулю елемент, який стоїть на головній діагоналі.
Варіант 5
-
Файл містить інформацію про книги по обчислювальній математиці: ПІБ автора, назва, УДК, місто видання, видавництво, рік видання, кількість сторінок, ціна. Яка книга найтовща/найтонша, найдорожча/найдешевша? Які книги надруковані певним видавництвом?
- Файлі має таку структуру: перший рядок містять два цілих числа M та N, розділених пропусками, та числа що є елементами матриці, розміщеної в наступних M рядках по N елементів в кожному, далі йдуть дані про інші матриці. Визначити скільки матриць записано в файлі, максимальний та мінімальних розмір матриць ( розмір матриці визначати загальною кількістю елементів).
Варіант 6
-
Один файл містить деякі слов’янські імена, включені в церковні календарі, а інший – недозволені церквою для використання. Об’єднайте два файли в один, відсортуйте імена по алфавіту. Знайдіть ім’я середньої довжини.
- Файл містить N перших коефіцієнтів деякого степеневого ряду . Обчислити суму ряду з заданою точністю , для заданого значення , якщо точність не може бути досягнута, то знайти суму перших N членів ряду.
Варіант 7
-
Файл містить інформацію про відправку поїздів з деякого вокзалу: номер поїзда, станція призначення, час відправлення, час в дорозі, наявність вільних місць. Виведіть інформацію про наявність білетів на поїзд з певним номером. Коли він відправляється та прибуває в пункт призначення.
- Файл містить три числа: перші два задають діапазон зміни температури в градусах Цельсія, третє визначає крок її зміни. Обчислити та записати в інший файл в вигляді таблиці відповідні значення температури по Фаренгейту (F=1.8C +32.0).
Варіант 8
-
Файл містить інформацію про результати змагань по п’ятибор’ю деякої групи студентів в такому вигляді: ПІБ, вид спортуi, балi . Відсортуйте файл спочатку по алфавіту, затим відповідно до спортивних досягнень студента.
- Перший рядок файлу містить вектор дійсних чисел, їх кількість визначає його розмір та розмірність квадратної матриці, заданої в наступних рядках файлу. Елементи матриці записані підряд по рядках ( один рядок файлу може містити більше, або менше елементів, ніж кількість елементів матриці в одному рядку. В цьому випадку числа, що залишилися в рядку файла переходять на наступних рядок матриці, або елементам матриці привласнюємо значення з наступного рядка файлу). Знайдіть добуток вектора на матрицю та запишіть результат в інший файл.
Варіант 9
-
Один файл містить список ПІБ письменників та поетів, та назви видавництв, в яких вони публікуються. В іншому файлі представлена інформація опитування: 12 студентів просили назвати трьох улюблених авторів. Виведіть список авторів в порядку зменшення популярності, та назви видавництв, які публікували їх книги.
- Визначте значення функції , де задані вектором , який зберігається в текстовому файлі, значення вибирається користувачем, та запишіть результат в інший файл.
Варіант 10
-
Файл містить дані про пацієнтів поліклініки: ПІБ, стать, вік, адреса (проспект/вулиця, будинок, корпус, квартира). Виведіть впорядковані списки чоловіків/жінок, пацієнтів старше певного віку, які проживають на вказаному проспекті/вулиці.
- Створіть файл з послідовності чисел, кожна компонента якої визначається формулою, де -- -а компонента початкового файлу, який містить послідовність дійсних чисел.
Варіант 11
-
Групі студентів пропонується вибрати курс лекцій, який складається із семи дисциплін. відповідний файл містить номер групи, ПІБ студента, середній бал успішності, та запропоновані дисципліни з помітками про їх вибір (Y- дисципліна студентом вибрана, N - дисципліна студентом невибрана). На прослуховування кожної i дисципліни допускається ni слухачів. Якщо кількість бажаючих перевищує ni, то відбираються студенти, що мають більш високих середній бал. Виведіть список студентів, які можуть прослухати певну задану дисципліну.
- Відберіть з заданого файлу цілих чисел, ті сума цифр яких дорівнює даному цілому числу. Результат записати в інший файл.
Варіант 12
-
Файл містить інформацію про колекцію книголюба, яка складається з книжок по живопису, скульптурі та архітектурі: ПІБ автора, назва, рік видання, ціна, місце знаходження ( стелаж, номер секції). Виведіть місцезнаходження книги певного автора, яка має певну назву; список книг вказаного автора; кількість книг вказаного року видання.
- Матриця задана в початковому файлі, яка складається з нулів та одиниць, та є лабіринтом без тупиків та кілець. стіна зображається одиницею, коридор – нулями. Ваша програма повинна пройти від входу до виходу з лабіринту по коридору, замінюючи нулі на дев’ятки.
Варіант 13
-
Файл містить інформацію про співробітників двох відділів деякого НДІ. Кожен запис складається з назви відділу, ПІБ, року народження, наукового ступеня, посади, стажу роботи, посадового окладу. Виведіть загальний список співробітників з науковим ступенем (впорядкований по алфавіту); мінімальний та максимальний оклад в заданому відділі; для вказаного відділу – список працівників перед пенсійного віку з вказаним стажем роботи.
- Кожне ціле число з початкового файлу записати в інший файл в римській системі.
Варіант 14
-
Файл містить інформацію про рейси деякої авіакомпанії: номер рейса, тип літака, пункт призначення, час відльоту, час помадки, наявність вільних місць в салоні. Виведіть час вильоту літаків в задане місто та інформацію про наявність вільних місць в салоні на рейс в певне місто з певним часом відправлення.
- З матриці розміру , записаної в початковому файлі, одержіть вектор, що складається з впорядкованих по спаданню середньо-геометричних абсолютних значень елементів рядків матриці. Результат збережіть в файлі.
Варіант 15
-
Файл Телефонний довідник містить інформацію абонентів: ПІБ, адреса, рік установки телефону, номер телефону, наявність пільг. Модифікуйте файл – вводиться ПІБ, дані добавляються/змінюються/видаляються.
-
Рядки матриці розміру , записаної в початковому файлі, впорядкуйте по зменшенню їх елементів. Створіть вектор, елементи якого дорівнюють сумам кубів головної та побічної діагоналі перетвореної матриці. Результат збережіть в файлі.
Контрольні запитання до лабораторної роботи №2
-
Що таке покажчик на файл?
-
Стандартні потоки введення/виведення.
-
Функціїї введення/виведення.
-
Як відкрити файл? Ознака успішного відкриття файлу.
-
Режими доступу.
-
Для чого необхідно закривати файл? Ознака успішного закриття файлу
-
Які ви знаєте функції введення/виведення? Ознака правильного виконання операції.
-
Як змінити поточну позицію у файлі?
-
Що таке структурний шаблон, і як його визначити?
-
Що таке ім’я структури і як воно використовується?
-
Як визначити структурну змінну?
-
Як звернутися до елемента структури?
-
Як звернутися до покажчика на структуру?
-
Як звернутися до елемента структури за допомогою покажчика?
-
Як передаються в функцію єлементи структури?
-
Як створити вложену структуру?
-
Як звертутися до елемента вложеної структури?
-
Як створювати і використовувати масиви структур?
-
Як створити об’єднання?
-
Як використовувати елементи об’єднання?
- Яка різниця між об’єднанням та структурою?
З повагою ІЦ "KURSOVIKS"!
|