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



ЗНАЕТЕ ЛИ ВЫ?

Вказівки до виконання завдання

Поиск

Вихiднi данi треба виводити з текстового файла, за допомогою текстового редактора, в програмi органiзувати ввод з цього файла, а не з екрана.

Для вiдкриття текстового файла LAB2.DAT в програмi необхiдно:

1) Описати файлову змiнну типа TEXT,

VAR F:TEXT;

2) Назначити файловій змiнній iм'я файлу

ASSIGN (F,'LAB2.DAT);

3) Вiдкрити файл

RESET(F);

При читаннi змiнних типу "запис" можна читати тiльки значення молодших полiв запису.

ВАРIАНТИ ЗАВДАННЯ

3.3.1 Проаналiзувавши пiдсумки сесiї у своiй групi, вирахувати середнiй бал.

3.3.2 Надрукувати список студентiв, що здали сесiю на "5".


 

3.3.3 Надрукувати список студентiв групи, що отримали одну оцiнку "4", а решта "5".

3.3.4 Надрукуйте список групи студентiв, що здали сесiї без "3".

3.3.5 По якому предмету у минулу сесiю був самий високий середнiй бал, i по якому самий низький.

3.3.6 Упорядкувати список студентiв за датою народження, з вказанням напроти кожного прізвища повної дати народження.

3.3.7 Видати список студентiв, день народження у яких в травні та червнi.

3.3.8 Написати список вiдмiнникiв по математицi.

3.3.9 Надрукувати список хлопцiв i дiвчат з своєї групи окремо.

3.3.10 Впорядкувати список студентiв за датами народження.

3.3.11 Впорядкувати список iноземних студентiв за датами народження.

3.3.12 Видати список студентiв із зазначенням отриманої ними стипендii (125%, 115%, 100%,"не отримують"). В графi поставити знак "+".

3.3.13 Видати списки студентiв-iменинникiв за мiсяцями. У разi збiгу дат народження перевагу нумерацiї вiддати жiнцi, або особі з бiльш коротким прізвищем.

3.3.14 Видати списки студентiв-землякiв з указанням Ф.I.Б. та мiсця народження.

3.3.15 Видати списки студентiв, які мають вiдмiннi оцiнки по кожному з предметiв окремо.

3.3.16 Вирахувати пiдсумкову стипендiю групи за поточний семестр.

3.3.17 Видати список студентiв, які мають домашнi телефони з указанням їх номерiв.

3.3.18 Видати список студентів, що проживають у гуртожитку, з указанням номерiв їх кiмнат.

3.3.19 Впорядкувати список студентiв за iменами в лексикографiчному порядку. В разi збiгу iмен, перевагу вiддати імені з бiльш коротким прізвищем.


 

3.3.20 Видати списки студентiв, що проживають в мiстах та селах, окремо.

3.3.21 Видати прізвища п'яти студентiв, що отримали в минулiй сесiї найбiльшу кiлькiсть балiв в порядку збiльшення.

3.3.22 Видати список трьох студентiв, що отримали в минулiй сесiї найменшу кiлькiсть балiв, з указанням кiлькостi балiв проти кожного прізвища.

3.3.23 Вказати прізвища хлопцiв, зрiст яких вище 170 см.

3.3.24 Вказати прізвища дiвчат, зрiст яких нижче 155 см.

3.3.25 Видати список студентiв, впорядкованих за зростом.

3.3.26 Впорядкувати списки студентiв по середньому балу у порядку збiльшення.

3.3.27 Визначити, чи є в групi студенти з однаковим прізвищем.

3.3.28 Видати списки студентiв у разi збiгу iменi.

3.3.29 Видати списки студентiв, iмена яких не повторюються.

3.3.30 Видати списки студентiв, що мають однаковi iмена по батьковi.

 

ЗМIСТ ЗВIТУ

3.4.1 Постанова задачi.

3.4.2 Программа та ісходнi данi.

3.4.3 Результати рiшення на ЕОМ.

3.5 Контрольнi запитання

3.5.1 Що називається записом?

3.5.2 Що з’являється елементом запису?

3.5.3 Яка iєрархiчна структура запису?

3.5.4 Дати характеристику багаторiвневому запису.

3.5.5 Що з’являється таблицею? Якi формули органiзайiї пам'ятi?

3.5.6 Якi iснують методи доступу до кожного елементу таблицi?


 

3.5.7 Як здiйснюється пошук заданого елементу, виключення заданого елементу з таблицi?


ЛАБОРОТОРНА РОБОТА №3

Типiзованi послiдовнi файли

Мета роботи: вивчення способiв органiзацiї файлiв, як важливої структури даних, операцiї над файлами. Вивчення вiдношень компонентiв iєрархiчної структури файла в основнiй i зовнiшнiй пам'ятi обчислювальної системи.

ЗАВДАННЯ

4.1.1 Сформувати типiзований послiдовний файл f, компоненти якого обчислюються по формулi.

4.2.2 Вказанi по варiантам дiї над компонентами файла виконати в рамках процедури або функцiї, яка отримує файл в якостi параметра.

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

 

Примітка:

Кiлькiсть компонент файла вибирають в розмiрах вiд 10 до 50. Забороняється використовувати промiжнi масиви, додактовi файли та здiйснювати прямий доступ до компонентiв файлiв.

 

Формули для формування файлiв отримати у викладача.

Варiанти завдання

4.2.1 Знайти найменше із значень компонент з парними номерами.

4.2.2 Знайти найбiльше із значень компонент по модулю з непарними номерами.

4.2.3 Знайти кiлькiсть парних чисел серед компонент файла типа INTEGER.


 

4.2.4 Знайти кiлькiсть подвоєних непарних чисел серед компонент файла INTEGER.

4.2.5 Знайти кiлькiсть квадратiв непарних чисел серед компонент файла INTEGER.

4.2.6 Записати файл iз збереженням порядку слiдування компонент файла f, значення яких не перевищують 1000.

4.2.7 Зформувати файли f1 i f2. Формулу для f2 взяти iз слiдуючого варiанту. Переписати із збереженням порядка слідування компонентiв f1 i f2, i навпаки, використовуючи промiжний файл h.

4.2.8 Отримати у файлi А компоненти файла В цiлого типу, які є цiлими числами.

4.2.9 Отримати у файлi А компоненти файла В цiлого типа, які дiляться на 3 та не дiляться на 7.

4.2.10 Отримати в файлi А компоненти файла В цiлого типу, які є точними квадратами.

4.2.11 Записати в файл А всi парнi числа файла В, а в файл С усi непарнi.

4.2.12 Зформувати файли А i В. Формулу для формування А взяти iз слюдуючого варiанту завдання. Записати в файл С спочатку компоненти файла В, а потім компоненти - А iз збереженням порядку.

4.2.13 Додатково дано число Р. Переписати послiдовно компоненти файла В у файл А, зупинившись пiсля першої компоненти, меншого Р.

4.2.14 Записати у файл А із збереженням порядку слiдування тi компоненти файла В цiлого типу, слiд за якими розмiщаються компоненти, кратнi 5-ти.

4.2.15 Записати в файл А компоненти файла В перед якими розмiщуються компоненти кратнi 3.

4.2.16 Записати всi компоненти файла В, якi є кратними числами, в файл А, а останні в файл С.

4.2.17 Перевiрити, чи впорядкованi компоненти файла В за збiльшенням.

4.2.18 Дано два файли А i В. Формулу для формування файла А взяти iз слідуючого варiанту. Перевiрити, чи еквiвалентнi цi файли?

4.2.19 Знайти значення передостанньої компоненти файла.


 

4.2.20 Знайти значення третьої від кінця компоненти файла.

4.2.21 Визначити суму компонент.

4.2.22 Знайти добуток компонент.

4.2.23 Визначити суму квадратiв компонент.

4.2.24 Визначити модуль суми та квадрат добутку компонент.

4.2.25 Знайти найбiльше iз значень компонент.

4.2.26 Знайти суму найбiльшого та найменшого з значень компонент.

4.2.27 Знайти суму вiд'ємних компонент.

4.2.28 Отримати копiю файла В в файлi А.

4.2.29 Визначити добуток компонент файла, розмiщених на позицiях з непарними номерами.

4.2.30 Знайти мiнiмальне значення серед компонет файлу, розмiщених на позицiях з парними номерами.

4.2.31 Число компонент файла В повинно бути кратним 10-ти. Записати у файл А спочатку найбiльше значення перших 10-ти компонент файлу В, потiм слiдуючих 10-ти i т.д.

4.2.32 Сформувати файли В1, В2, В3, В4. Формули для формування цих файлiв взяти з iнших варiантiв. Органiзувати обмiн компонентами мiж файлами вiдповiдно зі схемою:

 

В1--->B3

B2--->B4

B3--->B2

B4--->B1

 

дозволяється використовувати тiльки один допомiжний файл.

ЗМIСТ ЗВIТУ

4.3.1 Постановка задачi.

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


4.4 Контрольнi запитання

4.3.1 Що є файлом як структури даних?

4.3.2 Вiдношення компонентiв iєрархiчної структури файла до основної та зовнiшньої пам'ятi ОС.

4.3.3 Поняття зовнiшнiх та внутрiшнiх сортувань.

4.3.4 У чому полягає ефективнiсть сортування?

4.3.5 Методи сортування.

4.3.6 Способи визначення часових затрат сортування.

4.3.7 Як здійснюється пошук заданого елементу, виключення заданого елементу з таблицi?


ЛАБОРАТОРНА РОБОТА №4

Органiзацiя черги за допомогою списку

Мета роботи: метою роботи є вивчення основних операцiй над списковою структурою-чергою: включення нового елементу, виключення елементу, перевiрка поточної довжини та очищення.

ЗАВДАННЯ

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

Тип даних узгодити з викладачем.

 

 

Program siod 1.1;

Uses Crt;

Type

el=^spis; {тип вказiвника на елемент черги}

spis=record {тип элемента черги}

inform:string; {рядок даних элемента}

next:el; {вказiвник на наступний элемент}

end:

Var

key:char; {символ, введений з клавiатури за допомогою}

{небуферованого вводу}

per:el; {вказiвник початку черги}

pos:el; {вказiвник кiнця черги}

num:integer; {кiлькiсть елементiв у черзi}

 

Procedure Clear_m(n:integer);

{процедура очищення частини екрана}

{n=1- очищується половина ліворуч екрана (стовпчики 1-40)}


 

{n=2- очищується права половина екрана (стовпчики 41-80)}

Var

i:integer; {координата курсора по вертикалi}

Begin

n:=(n-1*39+1); {вказiвник координати курсора по горизонталi}

for i:=to 23 do {цикл очищення частини екрана}

begin

gotoXY(n,i);

writeln(' ‘);

end;

End;

 

Procedure Insoch; {процедура додання в чергу}

Var

n:el; {елемент черги, що додається}

Begin

Clear_m(1);

new(n); {створення елементу черги}

pos^.next:=n; {додання створеного елементу в кiнець черги}

pos:=n; {встановлення вказiвника кiнця черги на}

gotoXY(1,3);

writeln('Введiть новий елемент:');

readln(pos^.inform); {ввод рядка даних останнього елементу}

num:=num+1; {визначити поточну кiлькiсть елементiв у черзi}

End;

 

Procedure Outoch; {процедура вилучення з черги}

Var

dele: el;{вказiвник на перший елемент черги (що вилучається)}

och: el; {вказiвник на другий елемент черги}

Begin

if num>0 then

begin

Clear_m(1);

gotoXY(1,3);


 

dele:=per^.next; {встановлення dele на перший} {елемент черги}

writeln('Узятий елемент:');

writeln(dele^.inform); {виведення рядка даних}

{першого елемента}

och:=dele^.next; {встановлення och на другий елемент}

{черги}

per^.next:=och; {встановлення вказiвника початку}

{черги на другий елемент}

Dispose(dele); {вилучення першого елемента}

num:=num-1; {знаходження поточної кiлькостi}

{елементiв у черзi}

if num = 0 then {встановлення вказiвника кiнця черги}

pos:=per; {на вказiвник початку черги, якщо}

{в черзi немає елементiв}

end;

Еnd;

 

Procedure Print_och; {процедура друку змісту черги}

Var

och:el; {поточний елемент черги}

i: integer; {координата курсора по вертикалi}

j: integer; {лічильник елементiв черги}

Begin

i:=4;

Clear_m(2);

gotoXY(40,3);

writeln('Змiст черги:');

{перевiрка кiлькостi елементiв у черзi, виведення елементiв,}

{якщо кiлькiсть не бiльше 17}

if num<=17 then

begin

och:=per^.next; {призначення першого елемента}

{черги поточним}

for i:=1 to num do {цикл друку елементiв черги}


 

begin

goto XY(40,i+3);

writln(och^.inform); {вивід рядка даних поточ-}

{ного елементу}

ocb:=och^.next: {призначння наступного}

{елементу поточним}

end;

end

 

else {друк елементiв черги, якщо}

begin {їх кiлькiсть перевищує 17}

och:=per^.next; {призначення першого елемента}

{черги поточним}

for i:= 4 to 13 do {цикл друку перших}

begin {10 елементів}

gotoXY(40.i);

write(och ^.inform); {виведення рядка даних}

{поточного елементу}

och:=och^.next; {призначення наступного}

{елемента поточним}

end;

gotoXY(40,14);

write('...

for j:=l to num-5 do {пропуск наступних елементів черги,}

begin {крiм останнiх 5}

och:=och^.next;

for i:= 15 to 20 do {цикл друку останніх}

begin {5 елементiв}

gotoXY(40,i);

write(och^.inform);

och:=och^.next;

end;

end;

End;


 

BEGIN

TextBackGround(l); {встановлення кольору фону екрана}

TextColor(14); {встановлення кольору виводимих символiв}

CIrScr;

writeln(' ОЧЕРЕДЬ "+" -ДОБАВИТЬ "-" ИЗВЛЕЧЬ');

TextColor(ll);

new(per); {створення вказiвника початку черги}

pеr^.infоrm:=’****************’; ініціалізація рядка даних}

{вказiвника початку черги}

pos:=per; {встановлення вказiвника кiнця черги на}

{вказiвник початку}

num:=0; {початкова довжина черги}

key:=' ';

while key <> chr(27) do {цикл, що здійснює роботу з}

begin {чергою, вихiд з циклу - натиснути клавишу <ESC>}

while not KeyPressed do {очікування натиснення клавиши}

key:=ReadKey;

if key = chr(0) then {ввод символа з клавiатури}

key:=ReadKеy;

if key <> chr(27) then {рoбота з чергою, якщо}

begin {не натиснута клавиша <ESC>}

case key of {вибір виду роботи}

'+':insoch;

'-':outoch;

else

begin

Sound(3000); {звуковий сигнал,}

Delay(128);{якщо натиснута будь-яка клавіша,}

NoSound; {окрім '+', '-' або <ESC>}

end;

end;

Print_och; {друк елементiв черги}

end;

end;

END.


 

Зміст звіту

5.2.1 Мета роботи.

5.2.2 Блок-схема алгоритма з пояснювальними коментаріями.

5.2.3 Схема фізичної структури черги.

5.3 Контрольні запитання

5.3.1 Що називається списком?

5.3.2 Що називається послідовним списком?

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

5.3.4 Що означає переповнення черги?

5.5.5 Які основні операції над чергою?


26

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



Поделиться:


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

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