Типізований файл (.doc, dat, bit) 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Типізований файл (.doc, dat, bit)



Тип інформації:
Складається з однорідних елементів однакового типу. Кожний елемент має свій індекс.

Кінець файлу позначається маркером «кінець файла» eof.

Оголошення файлу:
Var <ім'я файлової змінної>: file of <тип>;

 

Зв'язок файлової змінної з реальним файлом:
ASSIGN (<ім'я файлової змінної >, ‘повне ім'я файла ‘);

 

Відкриття файлу на читання:
RESET(<ім'я файлової змінної>);

 

Безпосередньо читання:
Read(<ім'я файлової змінної>,

<ім'я допоміжної змінної>); Readln не використовувати!

 

Відкриття файлу на запис:
ReWrite(<ім'я файлової змінної>);

 

Безпосередньо запис у файл:
Write(<ім'я файлової змінної>,

<ім'я допоміжної змінної>); Writeln не використовувати!

 

Закриття файлу:

CLOSE(<ім'я файлової змінної>);

Нетипізований файл

Тип інформації:
Може складатися з елементів різних типів

 

Оголошення файлу:
Var <ім'я файлової змінної>: file;

 

Зв'язок файлової змінної з реальним файлом:
ASSIGN (<ім'я файлової змінної >, ‘повне ім'я файла ‘);

 

Відкриття файлу на читання:
RESET(<ім'я файлової змінної>, <розмір одиниці інформації >);

 

Безпосередньо читання:

BlockRead(<ім'я файлової змінної>, <ім'я допоміжної змінної>, <кількість одиниць інформації >);

 

Відкриття файлу на запис:
REWRITE(<ім'я файлової змінної>, <розмір одиниці інформації >);

 

Безпосередньо запис у файл:
BlockWrite (<ім'я файлової змінної>, <ім'я допоміжної змінної>, <кількість одиниць інформації >);

 

Закриття файлу:

CLOSE(<ім'я файлової змінної>);

 

Хід роботи.

Задача 1. Створити типізований файл f, компонентами якого являються цілі випадкові числа. Записати у файл g всі парні числа з файлу f, а у файл h — всі непарні. Порядок слідування чисел зберігається.

Задача 2. Створити типізовані файли f і g, компонентами яких являються випадкові цілі числа. Записати в файл h спочатку компоненти файлу f, а потім компоненти файлу g із збереженням порядку.

 

Задача 3. Створити у робочому каталозі типізований файл, який складається з цілих випадкових чисел. Вивести вміст файлу на екран. Знайти і надрукувати найбільший елемент файлу і номер його позиції.

 

Додаткове завдання:

 

Задача 4. В задачах 1, 2, 3 запис у типізований файл та виведення на екран оформити у вигляді процедур.

Контрольні питання до лабораторної роботи № 25:

  1. Чим типізований файл відрізняється від текстового?
  2. Яка організована інформація у нетипізованих файлах?
  3. Яка послідовність використання у програмі типізованих та нетипізованих файлів?
  4. Для чого призначена файлова змінна?
  5. Які процедури призначені для виконання операцій з типізованими та нетипізованими файлами?

________________________________________________________________________________________________

Лабораторна робота № 26

 

Тема: Розв'язування задач з використанням файлових типів даних

Мета роботи. Закріпити навики складання програм, використовуючи стандартні функції та функції користувача.

Методичні вказівки до виконання лабораторної роботи

При розв’язуванні задач дотримуватись такої послідовності дій:

  • Вивчити умову задачі
  • Скласти математичну модель розв’язку задачі та блок-схему алгоритму
  • Написати текст програм на мові Pascal.
  • Виконати налагодження та тестування програми
  • Записати в зошиті текст програми та результати її виконання.

 

Задача 1. Створити у робочому каталозі текстовий файл. Переписати зі створеного файлу в другий текстовий файл тільки ті рядки, які починаються з букви А або а.

Вивести обидва файли на екран з відповідними поясненнями. Якщо потрібних рядків нема у першому файлі, вивести про це повідомлення.

 

Задача 2. Створити в робочому каталозі текстовий файл, рядки якого містять прізвища студентів. Вивести на екран:

· вміст всього файлу;

· тільки ті прізвища, що починаються на букву Т.

Якщо таких прізвищ нема, вивести про це повідомлення

 

Задача 3. Записати у файл послідовність цілих чисел, що вводяться з клавіатури. Прочитавши файл, знайти кількість парних чисел.

 

Задача 4. Створити файл, компонентами якого є цілі числа. Обчислити добуток перших двох від’ємних чисел.

________________________________________________________________________________________________

Лабораторна робота № 27

 

Тема: Складання програм з використанням перелічуваного та обмеженого типів даних

 

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

 

Хід роботи

Задача 1. Задано кілька типів:
Type DAY=(MO, TU, WE, TH, FR, SA, SU);
NOM = 10..25;
SSS = ‘C’.. ‘X’;
WD = SA.. SU;

Визначити для цих типів їх базові типи.

 

Задача 2. Чи можна задати змінну перерахованого типу, що приймає дійсні значення на відрізку [ 2; 5]?

 

Задача 3. Вказати помилки у наступних описах:
Const A = 2.. 30; B:=’B’; Pі = 3,14159;

Type ВІДРІЗОК =(1.. 20);
МІСТО = (Москва; Київ; Париж; Берлін);
БУКВИ = (‘A’, ‘B’, ‘C’, ‘D’);
ЦИФРИ = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9);

 

Задача 4. Чи можна в розділі типів описати одночасно два наступних перерахованих типа?

TYPE ОЛІВЦІ = (Синій, Червоний, Зелений);
КОЛЬОРИ = (Жовтий, Голубий, Синій);

Задача 5. Є наступні описи:
Type ФІГУРА = (Круг, Квадрат, Ромб);
Var T, X: ФІГУРА; Z, Y: (Корзина, Сумка, Портфель);

Які з операторів присвоєння невірні та чому?
a) X:=Круг;
b) Z:= Квадрат;
c) T:=X;
d) Y:= ORD(Z)+1;

 

Задача 6. В розділі типів описано список деталей
TYPE Список_Деталей =(Шуруп, Гайка, Гвинт, Шпилька);
Написати фрагмент програми, який забезпечує роздруківку назви деталі за вказаним номером.

 

Задача 7. Знайти помилки у наступній програмі:

Program Pom;
Type Mon =(Jan,Feb,Mar,Apr,Mai,Jun,Jul,Aug,Sep,Oct,Nov,Dec);
Osin =(Sep.. Nov);

Var M: Osin; D: ‘0’.. ‘9’; K: 0.. 9;
Begin

Read (M, D, K);

If M>Sep then D:=K else K:= ORD(M)-8;

Writeln(K, D+K);

End;

Задача 7. Є перелічуваний тип, що складається з констант:Red, Blue, Yellw. Написати програму, яка в залежності від введеного з клавіатури числа від 0 до 2 друкує значення константи з вказаного типу відповідним кольором. Організувати циклічне введення чисел. передбачити умови виходу з програми.

Контрольні питання до лабораторної роботи № 27:

1. Що таке перелічуваний тип даних?

2. Що таке обмежений тип даних?

3. Як відрізнити перелічуваний тип від обмеженого?

4. Для чого в програмах використовують перелічуваний тип даних?

5. Для чого в програмах використовують обмежений тип даних?

6. Що таке базовий тип?

7. Як здійснити введення/ виведення даних обмеженого типів?

8. Як здійснити введення / виведення даних перелічуваного типу?

 

________________________________________________________________________________________________

Лабораторна робота № 28

 

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

 

Мета роботи. Закріпити навики складання програм з використанням перелічуваного та обмеженого типів даних, застосовувати процедури введення/виведення до даних типу, що визначає користувач.

Методичні вказівки до виконання лабораторної роботи

При розв’язуванні задач дотримуватись такої послідовності дій:

  • Вивчити умову задачі
  • Скласти математичну модель розв’язку задачі та блок-схему алгоритму
  • Написати текст програм на мові Pascal
  • Виконати налагодження та тестування програми
  • Записати в зошиті текст програми та результати її виконання

 

Задача 1. Нехай змінна Sym має обмежений тип ’A’..’G’, а змінні i, j —тип 1 .. 9. Скласти програму, яка пропонує ввести з клавіатури будь-яку літеру і цифру. Вивести повідомлення чи є літера одночасно і латинською і українською або тільки латинською, або вона не з заданого діапазону. Про введене число вивести повідомлення про його кратність.

Задача 2. Задано типи ПораРоку = (зима, весна, літо, осінь) та Місяць = (січ, лют, бер, квіт, трав, чер, лип, серп, вер, жов, лист, груд). Визначити Pr – пору року, на яку припадає місяць m. Значення місяця вводити з клавіатури.

 

Задача 3. Визначити два типи: Strana =(Cuba, Laos, Monako, Nepal, Canada, Ukraine) та
Kontinent = (Asia, America, Europe). Визначити Сn – назву континенту за назвою країни Kr, що вводиться з клавіатури

________________________________________________________________________________________________

Лабораторна робота № 29

 

Тема: Складання програм з використанням множин

 

Мета роботи. Навчитися складати програми з використанням множин, виконувати операції над множинами, застосовувати цикли для перебору елементів множини та процедури введення-виведення.

Методичні вказівки до виконання лабораторної роботи

Множиною називається набір однотипних логічно пов'язаних один з одним об'єктів, які можна розглядати як єдине ціле. Кожний об'єкт у множині називається - елементом множини. Кількість елементів, які входять у множину, змінюється від 0 до 256 (множина, яка не має елементів, називається порожньою). Членами множин можуть бути значення будь-якого скалярного типу, крім real. Тип, на якому базується конкретна множина, називається БАЗОВИМ. Базовий тип задається діапазоном або переліченням. Область значень типу "множина" - набір різноманітних підмножин, які складаються з елементів базового типу. Для оголошення множинного типу використовують ключові слова set of:

Type <ім'я типу > = set of < базовий тип >;

де < ім'я типу> - ідентифікатор;

Set,of - зарезервовані слова (множина, з).

 

Можна задати множинний тип і без попереднього опису:

Var <ідентифікатор>: set of <елемеит1,елемент2,...>;

Наприклад,

ТуреProst = set of (3,5,7,11,13); Nomer = set of 1..31;

Var pr: Prost; N: Nomer;

Bukva: set of ('a', 'c', 'i', 'j');

 

У програмі множина задається у вигляді послідовності елементів базового типу, взятих в квадратні дужки та відокремлених комами. Порожні множини позначаються так: [ ].

В загальному випадку елементом множиниможе бутинетільки константа, змінна, але і вираз, значення; якого належить до базового типу. Якщо сукупність елементів множин суворо упорядкована, можна їх не - перераховувати, а вказати тільки межі, відокремившиїхдвома крапками. Так, множини ['k'..'1'] еквівалентні множинам [’k’,’i’,’j’,’1’], ['j','k','i','1'], ['j','1','k','i'] і т.д. Порядок розташування елементів у множинінефіксується.

Операції над множинами

При роботі з множинами можна використовувати операції відношення: '=', '<>', '>=', '<=', об'єднання, перетин, різниця множин та операція in. Результатом виразів з використанням цих операцій є значення True або False.

Операція " дорівнює" (=). Дві множини А та В називаються рівними, якщо вони складаються з одних і тих же елементів. Порядок слідування елементів у цих множинах значення не має.

Операція "не дорівнює" (<>). Дві множини А та В вважаються такими, що не дорівнюють одна одній, якщо вони відрізняються хоча б одним елементом.

Операція "більше або дорівнює " (>=). Використовується для визначення належності множин. Результат операції А >= В дорівнює True, якщо всі елементи множини В знаходяться в множині А. У противному разі результат дорівнює False.

Операція "менше або дорівнює" (<=). Використовується аналогічно" попередній, але результат виразу А <= В дорівнює True, якщо всі елементи множини А знаходяться у множині В.

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

При використанні операції in, значення, яке перевіряється на належність, і множину в квадратних дужках не обов'язково попередньо описувати в розділі опису. Операція іn дозволяє ефективно та наочно проводити складні перевірки умов, іноді замінюючи десятки інших операцій.

Об'єднання множин (+). Об'єднанням множин називається третя множина, в якій знаходяться елементи обох множин.

Перетин множин (*). Перетином двох множин називається третя множина, в якій знаходяться елементи, що містяться в обох множинах одночасно.

Різниця множин (–). Різницею двох множин називається третя множина, яка містить елементи першої множини, що не входять до складу елементів другої множини.

 

Хід роботи

Задача 1. З множини цілих чисел 1..20 виділити:

- множину чисел N6, що діляться на 6 без залишку;

- множину чисел N23, що діляться без залишку або на 2 або на 3.

Вивести утворені множини на екран.

 

Задача 2. Сформувати множину LB, в яку входять тільки великі латинські букви, що зустрілися у вхідному рядку, и множину PR, в яку входять тільки знаки пунктуації. Організувати введення рядків до натискання клавіші Esc.


Контрольні питання до лабораторної роботи № 29:

1. Що у математиці називають множиною?

2. Що у програмуванні називають множиною?

3. Дати визначення елемента множини.

4. Що називається базовим типом множини?

5. Чи може множина не містити жодного елемента?

6. Чи може множина містити елементи різних типів?

7. Які операції можна виконувати над множинами?

8. Як працює операція in?

9. Що таке конструктор множини?

________________________________________________________________________________________________

Лабораторна робота № 30

 

Тема: Розв’язування задач з використанням множин

Мета роботи. Закріпити навики складання програм з використанням множин, виконувати операції над множинами.

 

Методичні вказівки до виконання лабораторної роботи

При розв’язуванні задач дотримуватись такої послідовності дій:

  • Вивчити умову задачі
  • Скласти математичну модель розв’язку задачі та блок-схему алгоритму
  • Написати текст програм на мові Pascal.
  • Виконати налагодження та тестування програми

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

 

Задача 1. Підрахувати кількість цифр в символьному рядку, що вводиться з клавіатури і надрукувати все, крім пробілів, знаків операцій і знаків пунктуації. Знаки пунктуації та цифри представити як множини. Організувати циклічне введення рядків до натискання клавіші Esc.

 

Задача 2. Створити програму, яка за двома заданими множинами літер alpha:= [’a’..’n’] і beta = [’i’..’z’] послідовно знаходить та друкує їх перетин, об'єднання та різницю.

 

Задача 3. Визначити, яких букв — голосних чи приголосних більше в тексті, що вводиться з клавіатури. Організувати циклічне введення рядків до натискання клавіші Esc.

________________________________________________________________________________________________

Лабораторна робота № 31

 

Тема: Складання програм з використанням записів

 

Мета роботи. Отримати навики в організації введення-виведення значень комбінованих типів даних. Отримати практичні навики програмування задач з використанням записів.

Методичні вказівки до виконання лабораторної роботи

1. Запис (record) – це структура даних, що складається з окремих компонентів різного типу, які називаються полями.
Запис описують у розділі type (var) за допомогою такої конструкції:

Type <назва типу запису> = record
<назва поля 1> :< тип поля 1>;
………..
<назва поля n>
:< тип поля n>;

End;

Приклад. Запис про анкетні дані студентів: прізвище, ім'я, дату народження та середній бал можна описати так:

Grupa = record
name, surname: string [20];
birthday=record

year: 1975..1985;
month: 1..12;
day: 1..31;
end;
srb: real;
end;

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

 

Конкретні записи типу Grupa оголошують так:

Var Student1, Student2: Grupa;

У програмі цим змінним можна надати такі значення:
Student1.surname:= ‘Ігор’; Student2. birthday.month:=5;

 

Складені імена використовувати незручно. Вони ведуть до громіздких виразів у програмі. Щоб цього уникнути, застосовують команду приєднання with.


2. Команда приєднання (with). Команда приєднання дає змогу використовувати у програмі лише імена полів без вказівки імені змінної-запису. Загальний вигляд команди with такий:

 

With <ім'я змінної типу запис> do

begin
<інструкції програми>;

end;

В цій команді після слова with зазначають ім'я змінної типу запис, а в інструкціях програми пишуть лише назви полів відповідного запису.

 

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

With student1 do

Begin
name:=’Шевченко’; surname:=’Ігор’;
with birthday do
begin
year:= 1980; month:=12; day:=28;
end;
srb:= 4.9;
end;

Хід роботи

Задача 1. З відомості 5-х студентів з їх оцінками (порядковий №, прізвище та три оцінки) визначити та вивести на екран кількість відмінників, середній бал кожного студента, середній бал по групі та прізвища студентів, чий бал вище середнього по групі.

Вказівка. Інформацію про кожного студента оформити в програмі у вигляді запису. Сукупність записів об'єднати у масив. Використати можливості організації роботи з записами з використанням оператора приєднання

 

Задача 2. Використовуючи тип даних масив записів, скласти програму, за допомогою якої можна ввести в пам'ять комп'ютера дані про наявність на складі автомашин і отримати інформацію про марки та рік випуску машин, ціна яких менша, ніж $ 3000. Нехай запис містить такі поля: марка, рік випуску та ціна машини. Вивести на екран інформацію про всі машини і додатково про ті, ціна яких менша, ніж $ 3000.

 

Додаткове завдання:

Модифікуйте задачу 2, ввівши поле color (колір машини) і вивівши дані про білі і червоні моделі, ціна яких є в межах від 2 до 4 умовних одиниць.

Контрольні питання до лабораторної роботи № 31:

1. Який тип характеризує об'єкти, що називаються записами?

2. Чи можуть компоненти запису бути різних типів?

3. Як здійснюється доступ до полів запису?

4. Що являється селектором в операторі Case при завданні варіантної частини запису?

5. Чи може запис мати вкладену структуру?

6. Чим запис відрізняється від масиву?

7. Яку функцію виконує оператор приєднання?

________________________________________________________________________________________________

 

Лабораторна робота № 32

 

Тема: Розв’язування задач з використанням записів

Мета роботи. Закріпити навики складання програм з використанням записів, вкладених записів та записів з варіантами.

 

Методичні вказівки до виконання лабораторної роботи

При розв’язуванні задач дотримуватись такої послідовності дій:

  • Вивчити умову задачі
  • Скласти математичну модель розв’язку задачі та блок-схему алгоритму
  • Написати текст програм на мові Pascal.
  • Виконати налагодження та тестування програми

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

 

Задача 1. У масиві міститься інформація про зимову сесію 2-курсу. Відомості про кожного студента (максимальна кількість студентів —150) мають наступні дані:

  • прізвище (до 12 символів);
  • номер групи (від 1 до 7);
  • оцінки по трьох предметах (програмування, економіка, історія).

Написати програму, яка вводить цю інформацію та друкує наступні дані:

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

б) процент студентів, що здали всі екзамени на 5 і 4;

в) назву предмету, який був зданий найкраще.

 

Задача 2. Відомості про студентів ВУЗу записані в масиві і містять наступну інформацію: прізвище, ім'я, стать (Ч або Ж), вік (від 16 до 32), курс (від 1-го до 5-го). Написати програму, яка вводить цю інформацію і друкує наступні дані:

а) номер курсу, на якому найбільший процент чоловіків;

б) імена чоловіків і жінок, що зустрічаються найчастіше;

в) прізвища наймолодших студентів.

_____________________________________________________________________________________________

Лабораторна робота № 33

 

Тема: Складання програм з використанням вказівних типів даних

 

Мета роботи. Навчитися складати програми з використанням динамічних структур даних: стеків, черг, лінійних списків, бінарних дерев.

 

Методичні вказівки до виконання лабораторної роботи

В мові Паскаль є засоби створення динамічних структур даних, які дозволяють під час виконання програми:
• створювати об'єкти;
• виділяти для них пам'ять;
• знищувати, коли в них зникає необхідність.


Назва динамічної пам'яті – heap (купа, куча). Розмір динамічної пам’яті — сотник кілобайт на відміну від статичної, 65520 байт. Адреса початку кучі зберігається в стандартній змінній Heaporg, кінець — в змінній Heapend. Поточна границя незайнятої динамічної пам'яті зберігається у змінній Heapprt.

Дані в динамічної пам'яті розміщують з використанням покажчиків.

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

 

Формат опису покажчика:
Type <тип покажчика> = ^ <ідентифікатор типу>,
тобто покажчик пов'язаний з деяким типом даних.

Такі покажчики називаються типізованими.

 

Проте в Турбо Паскалі можна оголошувати покажчик і не пов'язувати його з конкретним типом даних. Такий покажчик називається нетипізованим. Для його оголошення служить стандартний тип pointer. Структура і тип таких даних можуть змінюватися під час виконання програми.


При роботі з покажчиками обов'язкові два етапи:

1. Оголошення покажчика;
2. Формування динамічних даних, пам'ять яких відводиться під час виконання програми.

 

Для роботи з покажчиками використовуються наступні процедури:

New (P) - процедура, яка створює в динамічній пам'яті нову змінну. Р - покажчик змінної того типу, який треба створити. Кожна окрема процедура new може створити тільки одну динамічну змінну.

Dispose (P) - процедура, що дозволяє повернути в купу ділянку пам'яті, зайняту об'єктом з покажчиком Р.

Параметрами процедур new і dispose може бути тільки типізований покажчик.

 

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

GetMem (P, Size) - резервування пам'яті;

FreeMem (P, Size) - звільнення пам'яті.

Тут Р - нетипізований покажчик, Size - розмір в байтах необхідної або звільненої частини купи (до 65521 байт).

 

Над покажчиками можуть бути визначені операції перевірки на рівність і присвоєння.

 

Покажчику може бути присвоєної "порожнє" значення адреси, позначене службовим словом nil, що означає, що покажчик не вказує ні на один динамічний об'єкт. Це присвоєння можна робити до виконання процедури new. Значення nil - це два нульових слова. Воно може бути присвоєно вказівнику будь-якого типу.

Хід роботи

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

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

Вказівка: Для формування черги і роботи з нею необхідно мати три змінні типу вказівник, перша з яких визначає початок черги, друга — кінець черги, третя —допоміжна.

Додаткове завдання:

Задача 3. Скласти програму, яка вводить числа і виводить їх у зворотному порядку. Використати вказівник для резервування пам'яті в динамічній області, куди буде вводитись масив чисел.

 

Контрольні питання до лабораторної роботи № 33:

1. Які типи даних відносяться до статичних структур?

2. З якою метою використовуються динамічні структури даних?

3. Що називаються стеком?

4. Що називаються чергою?

5. Що називаються лінійним списком?

6. Що називаються бінарним деревом?

7. Що таке вказівник?

_____________________________________________________________________________________________

Лабораторна робота № 34

 

Тема: Робота у графічному режимі. Побудова геометричних фігур. Побудова графіків функцій.

Мета роботи. Навчитися ініціалізувати графічний режим, використовувати стандартні процедури модуля Graph, використовувати у програмах графічні примітиви, їх стилі і розташування. Навчитися будувати графіки функцій у графічному режимі та виконувати їх
оформлення.

 

Методичні вказівки до виконання лабораторної роботи

 



Поделиться:


Последнее изменение этой страницы: 2016-06-22; просмотров: 370; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.21.100.34 (0.156 с.)