Звіт виконання лабораторної роботи 1
“Структури, об’єднання та бінарні файли”
Виконала студентка групи ІС-12 ФІОТ
Кафедри Автоматизованих систем обробки інформації та управління (АСОІУ)
Лещенко Катерина Сергіївна
Варіант № 16
Мета роботи
Вивчити особливості використання структур, об’єднань та файлів.
Навчитися застосовувати структури, об’єднання, файли в програмуванні.
Умова задачі
Створити масив структур. Кожна структура складається з таких елементів: споживач і продукт. Для споживача задати його прибуток. Для продукту задати ціну, рівень корисності продукту (функцію корисності задати у довільному вигляді). Створений масив записати до бінарного файла. Передбачити можливість доповнити файл, замінити дані в файлі, видалити дані з файлу. Реалізувати запити, визначивши: 1) продукти заданого рівня корисності, які може придбати споживач при заданому прибутку; 2) сумарну вартість продуктів з максимальним рівнем корисності; 3) споживачів, прибутків яких не вистачає для придбання продуктів за заданою ціною і рівнем корисності.
Б лок-схема алгоритму
Г оловна функція:
так
ні
Чи обрано
1?
Чи обрано 2?
так
ні
так
Чи обрано
3?
так
ні
Чи обрано
4?
ні
Чи обрано
5?
так
ні
так
Чи обрано
6?
так
ні
Чи обрано
7?
ні
Чи обрано
8?
так
так
ні
Чи обрано
9?
так
ні
Чи обрано 10?
Виконання
запиту 2
ні
Чи обрано
11?
так
Виконання
запиту 3
так
ні
Чи обрано
12?
Ознака
виходу з програми
ні
так
ні
Функція запису даних у новий файл:
Функція запису даних у активний файл:
Записати структуру
споживача у файл
Записати структуру
продукта
у файл
Ознака існування
даних у файлі
Функція відкриття існуючого файла:
Закрити файл
Ознака
існування даних у файлі
Функція відкриття файла на читання:
так
ні
Функція читання файла (виведення даних на екран):
так
ні
ні
так
так
ні
Закрити файл
Закрити файл
Функція очищення файла:
так
ні
так
ні
Закрити файл
Ознака
відсутності даних у файлі
Функція видалення структури споживача чи продукта:
так
ні
ні
так
Закрити файл
Відкрити в режимі
читання та запису
Встановити перший
лічильник рівним 0
так
ні
Збільшити лічильник
на 1
Встановити другий
лічильник рівним 0
так
ні
Запам’ятати
поточну позицію у файлі
Зсунутися у файлі
на дві структури вліво (зсуваємося від
початку файла на кіль-ть структур, що
= сумі лічильників)
Повернутися
на позицію, що запам’ятали
Збільшити
другий лічильник на 1
Закрити файл
Зменшити
його розмір на розмір 1 структури
Функція додавання у файл структур:
так
ні
Закрити файл
Відкрити файл в
режимі додавання
ні
так
так
так
ні
ні
ні
ні
так
так
Закрити файл
Функція зміни всіх даних у файлі:
так
ні
Функція зміни однієї структури (споживача чи продукта):
Відкрити
файл в режимі читання та запису
так
ні
ні
так
Закрити файл
так
ні
Збільшити лічильник
на 1
так
ні
так
ні
Закрити файл
Закрити файл
Функція знаходження продуктів певної корисності, що споживачі з певним прибутком можуть собі дозволити:
так
ні
ні
так
Закрити файл
так
Чи знайдено
споживачів з таким прибутком?
так
ні
Чи зчитана
структура –
споживач і його прибуток дорівнює
заданому?
ні
ні
так
Закрити файл
Перейти до початку
файла
так
ні
Чи
зчитана структура – продукт, його
корисність = заданій та вартість <=
прибутку
споживача?
ні
так
ні
так
Відновити позицію
у файлі
Функція знаходження інтегрованої вартості продуктів з найбільшою корисністю:
Встановити
інтегровану вартість та max
корисність
рівними
нулю
так
ні
ні
так
Закрити файл
так
ні
Перейти до початку
файла
ні
так
так
Прирівняти
max
корисність
до цієї
ні
так
збільшити інт.
вартість на ціну цього продукта
Закрити файл
ні
Функція знаходження споживачів, чиїх прибутків не вистачає для придбання продуктів з певною ціною та корисністю:
Встановити
вартість продуктів, що підходять,
рівною
нулю
так
ні
ні
так
Закрити файл
так
Перейти до початку
файла
Чи
зчитана структура – продукт і його
ціна та корисність співпадають із
заданими?
ні
так
так
Збільшити
вартість продуктів, що підходять, на
задану ціну
так
ні
Чи
зчитана структура – споживач і його
прибуток менший за
вартість
продуктів, що підходять?
так
ні
ні
Закрити файл