Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab_PS.doc
Скачиваний:
11
Добавлен:
12.11.2019
Размер:
10.92 Mб
Скачать

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

Тема: Файли послідовного і прямого доступу

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

2 Хід роботи

Приклад. Сформувати файл, що містить інформацію про розклад руху потягів, які відправляються з Івано-Франківського вокзалу: номер потягу, час відправлення, станція призначення, час в дорозі. Використовуючи ці данні, надати інформацію про розклад руху поїздів до станції Київ, які відправляються з 20 до 24 год. і перебувають в дорозі менше 15 год.

До станції Київ

------------------------------------------------------------------------

Номер | Час | Станція призначення | Час

поїзда |відправлення| | у дорозі

------------------------------------------------------------------------

203 21 Київ 12

------------------------------------------------------------------------

  1. Графічний алгоритм показаний на рис.13.1, 13.2.

2 .1. Програма з використанням файлу послідовного доступу мовою gw Basic

10 REM Запис в файл послідовного доступу

20 REM Розклад руху поїздів

30 OPEN “POIZD” FOR OUTPUT AS #1

40 INPUT “Номер поїзду “;N

50 IF N=0 THEN 120

60 INPUT “Час відправлення”;T

70 IF T<0 OR T>24 THEN 60

80 INPUT “Станція призначення”;ST$

90 INPUT “Час у дорозі ”;L

100 WRITE #1, N, T, ST$, L

110 GOTO 40

120 CLOSE

130 OPEN “POIZD” FOR INPUT AS #1

140 PRINT”----------------------------------------------------------------------”

150 PRINT” Номер | Час | Станція призначення | Час”

160 PRINT” поїзда |відправлення| | у дорозі”

170 PRINT”----------------------------------------------------------------------”

180 WILE NOT EOF(1)

190 INPUT #1, N, T, ST$, L

200 PRINT N;TAB(13);T;TAB(28);ST$;TAB(50);L

210 WEND

220 PRINT”----------------------------------------------------------------------”

230 CLOSE

240 OPЕN “POIZD” FOR INPUT AS #1

250 PRINT

260 PRINT “До станції Київ:”

270 PRINT”----------------------------------------------------------------------”

280 PRINT” Номер | Час | Станція призначення | Час”

290 PRINT” поїзда |відправлення| | у дорозі”

300 PRINT”----------------------------------------------------------------------”

310 WILE NOT EOF(1)

320 INPUT #1, N, T, ST$, L

330 IF NOT(T>=20 AND T<=24 AND L<15 AND LEFT$(ST$,4)=“Київ”) THEN 350

340 PRINT N;TAB(13);T;TAB(28);ST$;TAB(50);L

350 WEND

360 PRINT”----------------------------------------------------------------------”

370 END

------------------------------------------------------------------------

Номер | Час | Станція призначення | Час

поїзда |відправлення| | у дорозі

------------------------------------------------------------------------

123 16 Львів 5

212 15 Москва 19

83 22 Перемишль 8

203 21 Київ 12

129 12 Чернівці 4

------------------------------------------------------------------------

До станції Київ

------------------------------------------------------------------------

Номер | Час | Станція призначення | Час

поїзда |відправлення| | у дорозі

------------------------------------------------------------------------

203 21 Київ 12

------------------------------------------------------------------------

2.2. Програма з використанням файлу безпосереднього доступу мовою GW Basic

10 REM Запис в файл прямого доступу

20 REM Розклад руху поїздів

25 K=1

30 OPEN “R”,#1, “POIZD”

35 FIELD #1, 4 AS A$, 4 AS B$, 20 AS C$, 4 AS D$

40 INPUT “Номер поїзду “;N

50 IF N=0 THEN 120

55 LSET A$=MKS$(N)

60 INPUT “Час відправлення”;T

70 IF T<0 OR T>24 THEN 60

75 LSET B$=MK$(T)

80 INPUT “Станція призначення”;ST$

85 LSET C$=ST$

90 INPUT “Час у дорозі ”;L

95 LSET D$=MK$(L)

100 PUT #1

101 K=K+1

110 GOTO 40

120 PRINT”----------------------------------------------------------------------”

130 PRINT” Номер | Час | Станція призначення | Час”

140 PRINT” поїзда |відправлення| | у дорозі”

150 PRINT”----------------------------------------------------------------------”

160 FOR I=1 TO K-1

170 GET #1, I

180 N=CVS(A$)

190 T=CVS(B$) : L=CVS(D$)

200 PRINT N;TAB(13);T;TAB(28);ST$;TAB(50);L

210 NEXT I

220 PRINT”----------------------------------------------------------------------”

230 PRINT

240 PRINT “До станції Київ:”

250 PRINT”----------------------------------------------------------------------”

260 PRINT” Номер | Час | Станція призначення | Час”

270 PRINT” поїзда |відправлення| | у дорозі”

280 PRINT”----------------------------------------------------------------------”

290 FOR I=1 TO K-1

300 GET #1, I

310 N=CVS(A$) : T=CVS(B$)

320 L=CVS(D$) : ST$=LEFT$(C$,4)

330 IF NOT(T>=20 AND T<=24 AND L<15 AND ST$=“Київ”) THEN 350

340 PRINT N;TAB(13);T;TAB(28);ST$;TAB(50);L

350 NEXT I

360 PRINT”----------------------------------------------------------------------”

370 END

------------------------------------------------------------------------

Номер | Час | Станція призначення | Час

поїзда |відправлення| | у дорозі

------------------------------------------------------------------------

123 16 Львів 5

212 15 Москва 19

83 22 Перемишль 8

203 21 Київ 12

129 12 Чернівці 4

------------------------------------------------------------------------

До станції Київ

------------------------------------------------------------------------

Номер | Час | Станція призначення | Час

поїзда |відправлення| | у дорозі

------------------------------------------------------------------------

203 21 Київ 12

------------------------------------------------------------------------

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]