48 программ для изучающих Basic - Глава 3 - формирование больших букв, преобразование десятичных чисел в, числа с произвольным основанием от 2 до 16) системы счисления, преобразования чисел с произвольным основанием (от2 до 16) системы счисления в десятичные, бегущая строка, перевод арабских чисел в римские, система линейных уравнений с тремя неизвестными, формированиелистинга, сортировка, календарь-ежедневник, сортировка списка имен, картотека с поиском по ключевым словам, "вечный" календарь.

 
48 программ для изучающих Basic

Глава 3 - формирование больших букв, преобразование десятичных чисел в, числа с произвольным основанием от 2 до 16) системы счисления, преобразования чисел с произвольным основанием (от2 до 16) системы счисления в десятичные, бегущая строка, перевод арабских чисел в римские, система линейных уравнений с тремя неизвестными, формированиелистинга, сортировка, календарь-ежедневник, сортировка списка имен, картотека с поиском по ключевым словам, "вечный" календарь.


ГЛАВА 3

В данной главе собраны программы производящие различные виды
преобразования информации: перевод чисел из одной системы счисления
в другую, сортировку строк символов, решение систем линейных
уравнений, вывод сообщений в виде "бегущей строки" и крупными буквами.

3.1 ФОРМИРОВАНИЕ БОЛЬШИХ БУКВ.

Иногда бывает необходимо вывести на экран надпись крупными
буквами. Программа 3.1 позволяет сделать это. В программе каждый пиксел
заменяется символом "S" (Рис 3.1). В строке 750 вместо "S" можно
использовать псевдофафический символ или A$(i), тоща каждая большая
буква будет состоять из маленьких (Рис. 3.2).

100 LET A$-*SPECTRUM"
105 BORDER 5: PAPER 2: INK 5: CIS
110 LET U-0: LET V-0
120 GOSUB 500
130 STOP
500 REM

510 FOR 1-1 TO LEN AS
520 LET C- CODE A$(l)
525 LET C-C-32
530 GOSUB 700
540 LET U-U+8

550 IF U>24 THEN LET U-0: LET V-10

560 NEXT I

570 RETURN

700 FOR J-0 TO 7

710 LET Z-PEEK (15616+*-8*C)

720 LET P-128

730 FOR K-U TO U+7

740 LET B-Z >- P

750 IF В THEN PRINT AT V+J,K;'S';:LET Z-Z-P

760 LET P-P/2

770 NEXT К

780 NEXT J

790 RETURN

999 BORDER 7: PAPER 7: INK 0: CIS
Программа 3.1 Программа выводящая большие буквы.

3.2 ПРЕОБРАЗОВАНИЕ ДЕСЯТИЧНЫХ ЧИСЕЛ В ЧИСЛА
С ПРОИЗВОЛЬНЫМ ОСНОВАНИЕМ (ОТ 2 ДО 16)
СИСТЕМЫ СЧИСЛЕНИЯ.

Программы 3.2 и 3.3 производят перевод чисел из одной системы
счисления в другую. Первая программа производит перевод из д есятичной
системы в любую другую (с основанием от 2 до 16), вторая производит
обратное преобразование. При необходимости перевод а числа, например
из восьмиричной системы в шестнадцатиричную, можно сначала
воспользоваться второй программой и перевести восьмиричное число и
десятичное, а затем используя первую программу перевести его в
шестнадцатиричное.

10 DIM L(16)

100 PRINT "CONVERTER OF BASIS9

105 PRINT "DECIMAL TO (FROM BIN TO HEX)

106 PRINT

110 PRINT "DECIMAL!-";

120 INPUT Z

125 PRINT Z

130 PRINT "BASIS";

135 INPUT В
140 PRINT В
200 LET 1-0
205 LET M+1

210 LET R-{Z/B-INT(Z/B)rB

215 LET L(l)-R

220 LET Z-INT (Z/B)

225 IF Z>-B THEN GO TO 205

230 LET H+1

235 LET L|l)-Z

300 PRINT'EQUAL:-;

305 LET N$-"ABCDEF

310 FOR И TO 1 STEP -1

315 IF Ц4>- Ю THEN GO TO 350

320 PRINT №

330 NEXT J

340 STOP

350 LET t|J)-L|J|-?

360 PRINT N$(1(4);

370 GO TO 330

999 STOP

Программа 3.2 Преобразование десятичных чисел в числа с произвольным
основанием (от 2 до 16) системы счисления.

3.3 ПРЕОБРАЗОВАНИЯ ЧИСЕЛ С ПРОИЗВОЛЬНЫМ
ОСНОВАНИЕМ (ОТ2 ДО 1*) СИСТЕМЫ
СЧИСЛЕНИЯ В ДЕСЯТИЧНЫЕ.

100 PRINT "CONVERTER OF BASIS";

105 PRINT "BIN - HEX TO DECIMAL"

106 PRINT
110 INPUT Z$

120 PRINT Z$ 130 PRINT "BASIS:";
140 INPUT В

150 PRINT В

160 LETN-0

170 LET L- LEN Z$

175 GOSUB 300

180 FOR 1-1 TO 1-1

182 LET E-CODE Z$|l)

184 IF E>58 THEN LET E-E-7

190 LET N-(N+ E -48)*B

200 NEXT I

205 LET E-CODE Z$|l)
207 IF E>58 THEN LET E-E-7
210 LET N-N+ E -48
220 PRINT" DECIMAL: ";N
230 STOP
300 FOR 1-1 TO L

305 LET C-CODE Z$(l)-48

306 IF C>10 THEN LET C-C-7
310 IF C>-B THEN GO TO 350
315 NEXT I

320 RETURN

350 PRINT "CONVERTING NOT ABLE"
999 STOP

Программа 3.3 Программа преобразования чисел с произвольным
основанием (от2до 16) системы счисления в десятичные.

3.4 БЕГУЩАЯ СТРОКА.

50 LET WAIT-500

100 LET A$-"HELLOWI I AM A "SPECTRUM"

105 LET L-LEN A$

110 FOR K-1 TO L-1

120 PRINT AT 10,32-K;A$(1 TO K)

125 GOSUB WAIT

130 NEXT К

140 FOR K-32-L TO 1 STEP -1

150 PRINT AT 10,K;A$;

160 GOSUB WAIT

170 NEXT К

180 FOR K-1TOL

190 PRINT AT 10ДА$(К TO L)

195 GOSUB WAIT

200 NEXT К

210 GOTO 110

500 FOR J-1 TO 20: NEXT J: RETURN

Программа 3.4 "Бегущая сорока".

Программа 3.4 генерирует "бегущую строку". Текст задается в строке
100. Не забывайте о необходимости пробела в конце строки заключенной
в кавычки для стирания предыдущего текста. Скорость движения строки
определяется задержкой, которая задается в строке 500.

3.S ПЕРЕВОД АРАБСКИХ ЧИСЕЛ В РИМСКИЕ.

Программа 3.5 выполняет перевод десятичных чисел в "римские".

Максимальное значение переводимого числа ограничивается в строке
140 и равняется 3000.

10 REM

20 LET AUS-1000
100 INPUT "Z-';Z
120 PRINT Z;*-*;
130 LET B-Z

140 IF B<- 3000 THEN GOTO 200
150 PRINT'NUMBER BIG*
160 GOTO 100
200 GOTO 500
210 LET B- INT (Z/F)
220 GOSUB AUS+30*(B-0)
230 LET Z-Z-B*F
240 RETURN

500 LET F-1000: LET A$-"M*: GOSUB 210

510 LET F-900: LET A$-*CM": GOSUB 210
520 LET F-500: IET A$-"D*: GOSUB 210
530 IET F-400: LET A$-"CD': GOSUB 210
540 LET F-100: LET A$-"C": GOSUB 210
550 LET F-90: LET A$-"XC: GOSUB 210
560 LET F-50: LET A$-"L': GOSUB 210
570 LET F-40: LET A$-"XL": GOSUB 210
580 LET F—10: LET A$-X: GOSUB 210
590 LET F-9: LET A$-'IX": GOSUB 210
600 LET F-5: LET A$-V: GOSUB 210
610 LET F-4: LET A$-"IV*: GOSUB 210
620 LET F-l: LET A$-T: GOSUB 210

999 STOP

1000 FOR 1-1 TO В
1010 PRINT AS;
1020 NEXT I

1030 RETURN

Программа 3.5 Перевод десятинных чисел в "римские"
В качестве примера попробуйте перевести 1993. Должно получиться М

3.« СИСТЕМА ЛИНЕЙНЫХ УРАВНЕНИЙ С ТРЕМЯ
НЕИЗВЕСТНЫМИ.

Было бы неправильно, если в сборнике программ для компьютера
отсутствовали программы для решения математических задач. Для
решения такого рода задач и начала создаваться вычислительная техника.
В качестве примера "математической задачи" доя компьютера в дополнение
к программе 1.15 приведем программу решающую систему линейных
уравнений с тремя неизвестными вида:

а(1,1) *Х+а(1,2) *У+ш(1^) *Z - Ь(1)
а(2,1) *X+a(2,2J *Y+e(2,3) *Z - b(2)

a(3,1) *X+a(3,2) *Y+a(3^) *Z - b(3)

В программе производ ится ввод коэффициентов (строки
100-140,300 -350) вычисление детерминанта (строки200 - 225),

проверка его на отличие от нуля (строка 1025) и вычисление значений
переменных (строки 400 -320).

10 DIM А(3,3)

12 DIM Н(3)

IS DIM В(3)

20 GOTO 1000

100 PRINT'INPUT 3X3MATR:'

105 FOR 1-1 TO 3

110 PRINT l;-.ROW:*;

115 FOR >1 ТОЗ

120 INPUT AM

125 PRINT AM;'

130 NEXT J

135 PRINT

140 NEXT I

150 RETURN

200 IET D-A(1,1 )*(A(2(2)*A(3,3)-A(2,3)*A(3,2))

210 LET D-D-A(l ,2)*(A(2,1 )*A(3,3)-A(2,3)*A(3,1})

220 LET D-D+A(1,3)*(A|2,1 )*A(3,2)-A(2,2)*A(3,1))

225 RETURN

300 PRINT 'INPUT B(l):-

310 FOR 1-1 TO 3

320 INPUT B(l): PRINT В<(): NEXT I

350 RETURN

400 LET J-l: GOSUB 600: LET L-D
410 GOSUB 200: LET X-D/L
420 PRINT "X-";X

430 GOSUB 700: LET J-2: GOSUB 600: GOSUB 200

440 LET Y-D/L PRINT "Y-";Y

450 GOSUB 700:LET >3: GOSUB 600: GOSUB 200

460 LET Z-D/L:PRINT "Z-";Z

520 GOTO 700

600 FOR 1-1 ТОЗ

610 LET H(I)-A{I,J)

620 LET A(I,J)-B(I)

з

630 NEXT I
640 RETURN
700 TOR 1-1 ТО 3
710 LET Afl,J|-H(l)
720 NEXT I
730 RETURN
10OO GOSUB 100
1002 PRINT

1005 PRINT' DETERMINANT

1010 GOSUB 200

1020 PRINT "DET-";D

1025 IF D<> 0 THEN GOTO 1050

1030 PRINT

1032 PRINT 'NO SOLUTIONS!"
1035 GOTO 9999
1050 GOSUB 300
1060 GOSUB 400
9999 STOP

Программа 3.6 Программа решения системы линейных уравнений с тремя

неизвестными.

3.7 ФОРМИРОВАНИЕ ЛИСТИНГА.

Следующая программа позволяет осуществлять ввод с клавиатуры
строк длинной до 20 знаков, формирование списка из 40 строк, сортировку
строк в порядке возрастания кодов составляющих их символов и удаление
ошибочно введенных строк.

50 DIM А$|40,20)
60 LET N-1
70 DIM D$(20)
200 CLS
210 LET M-18
215 LET K-0

220 PRINT TAB M;"I)NPUT"
230 PRINT TAB M;"D)ELETE"

240 PRINT TAB M;"l)ISr

250 PRINT TAB M;"E)ND"

260 IF INKEYS -T THEN GOTO 500

265 IF INKEYS - V THEN GOSUB 1100

270 IF INKEYS -"E* THEN GOTO 900

280 IF INKEYS -"D* THEN GOSUB 1500

300 IF K-1 THEN GOTO 200

310 GOTO 260

500 CLS

520 INPUT *INPUT:";DS
525 PRINT DS

530 IF DS(1K' THEN GOTO 220

535 LET BS-DS

540 GOSUB 1205

550 GOTO 520

900 CLS

910 PRINT AT 11,13;"END"
920 STOP
1100 CLS

1110 FOR 1-1 TON-1
1120 PRINT ASP)
1125 NEXT I
1130 PAUSE 4E4
1135 LET K-1
1140 RETURN
1205 LET J-1

1210 IF N-l THEN GO TO 1330

1220 IF BS<AS(1) THEN GO TO 1330

1230 LET Jl-1

1235 LET J2-N

1240 LET J-INT ((J1+J2J/2)

1250 LET CS-A$(J|

1260 IF C$-B$ THEN GO TO 1390

1270 IF B$<C$ THEN LET J2-J

1280 IF B$>C$ THEN LET J1-J

1290 IF Jo INT ((J1+J2)/2) THEN GO TO 1240

1295 LET J-JH

1330 LET Jl-N+1

1340IFJKJ+1 THEN GO TO 1370

1350 LET A${J1)-A$(J1-1)

1360 LET Jl-JM

1365 GO TO 1340

1370 LET A${J|-B$

1380 LET N-N+1

1382 LET K-l

1385 RETURN

1390 PRINT AT 3,1;"EX»ST IN LIST"

1392 PAUSE 4E4

1395 LET K-1

1399 RETURN

1500 REM DELETE

1505 CLS

1510 PRINT'DELETE:';
1515 INPUT D$
1517 LET B$-D$
1520 PRINT B$
1525 LET J-l

1530 IF No 1 THEN GO TO 1550

1535 PRINT'DELETE BEFORE INPUT

1540 PAUSE 4E4

1545 GO TO 500

1550 LET Jl-1

1555 LET J2-N

1560 LET J- INT P+J2)/2)

1565 LET C$-A$(J|

1570 IF C$-B$ THEN GO TO 1600

1575 IF B$<C$ THEN GO TO 1585

1580 LET J1-J

1582 GO TO 1590

1585 LET J2-J

1590 IF Jo INT ((J1+J2)/2)THEN GO TO 1560
1595 PRINT "NO IN LIST*

1597 LET K-1

1598 PAUSE 4E4

1599 RETURN

1600 LET Jl-J

1610 IF Jl-N THEN GO TO 1650

1620 LET A$|J1)-A$(J1+1)

1630 LET Jl-Jl+1

1640 GO TO 1610

1650 LET N-N-l

1655 LET K-1

1660 RETURN

Программа 3.7 Формирование листинга.

3.8 СОРТИРОВКА.

Программа 3.8 производит сортировку имен введенных с клавиатуры. В
строках 170 и 550 ограничивается количество строк выводимых на экран
(15). Сортировка производится в соответствии с возрастанием кодов
символов. Время затрачиваемое на сортировку зависит от количества
введ енных имен.

10 DIM А$(100,10)
20 LET N-l
100 CLS

110 PRINT AT 1,3;*INPUT:"
120 LET 1-4
130 INPUT A$(N)

140 IF A$|N,1K * THEN GO TO 500
142 PRINT AT 1,3;*
145 PRINT AT l,3;A${N)
150 LET N-N+l
160 LET l-l+l
170 IF l>15 THEN LET 1-4

190 GO TO 130
500 CLS

502 PRINT AT 10,5;"SORr
505 GOSUB 1000
507 CLS

510 PRINT AT l,3;*OUTPUT:"

515 LET 1-4

520 FOR J-l TO N

525 PRINT AT 1,3;*

530 PRINT AT l,3;A${J|

540 LET H+l

550 IF l>15 THEN LET 1-4

560 NEXT J

570 STOP

1000 REM SHELL-METZNER SORT

1010 LET M-N

1020 LET M-INT (M/2)

1030 IF M-0 THEN RETURN

1040 LET J-1

1045 LET K-N-M

1050 LET I-J

1060 LET L-l+M

1070 IF A$(l) <- A$(L) THEN GO TO 1120

1080 LET H$-A$(l)

1083 LET A$p)-A${L)

1086 LET A$(L)-H$

1090 (.ET И-М

1100 IF l<1 THEN GO TO 1120
1110 GO TO 1060
1120 LET J-J+l

1125 IF >K THEN GOTO 1020
1130 GO TO 1050

Программа 3.8 Сортировка.

3.9 КАЛЕНДАРЬ-ЕЖЕДНЕВНИК.

Следующая программа устроена как ежедневник: необходимую запись
можно найти по введенной вместе с ней дате. В программе можно
осуществлять ввод данных с клавиатуры, вывод на экран соответствующего
дате сообщения, удаление ненужных записей, вывод на экран списка всех
занесенных дат и окончание работы с программой.

10 DIM А$(50,50)
20 DIM D$(1,8)
30 DIM Е$(1,41)
40 LET N-1
100 CLS

110 PRINT AT 3,3;"NOTEBOOK"; AT 3,18;"I)NPUT"

120 PRINT AT 4,18;"0)UTPUT"

130 PRINT AT 5,18;"D)ELETE*

135 PRINT AT 6,18;"L)IST OF DATE"

140 PRINT AT 7,18;"E)ND"

150 IF INKEYS -"" THEN GO TO 150

160 IF INKEYS -T THEN GO TO 500

170 IF INKEYS -"O" THEN GO TO 700

180 IF INKEYS -"D" THEN GO TO 900

190 IF INKEYS -"E" THEN GO TO 998

195 IF INKEYS -"I" THEN GO TO 800

199 GO TO 100

200 PRINT AT 10,1;"DATE:TT.MM.YY";
210 INPUT D$(1)

220 PRINT AT 10,7;D$(1)
230 RETURN
500 CLS

505 GOSUB 200
510 PRINT AT 12,1;"TEXT ";
520 INPUT E$(l)
530 PRINT E$|l)
560 GOSUB 1200
570 PRINT AT 2Q,6;"INPUT? (Y/N)"

— . ШШШ

580 IF INKEYS THEN GO ТО 580
590 IF INKEYS -T THEN GO TO 500
599 GO TO 100
700 CLS

710 GOSUB 200

720 GOSUB 1500

730 IF B-1 THEN GO TO 100

740 PRINT AT 12,1;"TEXT:",A$(J,9 TO 41)

750 PAUSE 4E4

760 GO TO 100

800 CLS

810FOR J-l TON
820 PRINT A$(J,1 TO 8)
830 NEXT J
840 PAUSE 4E4
850 GO TO 100
900 CIS

910 GOSUB 200

920 GOSUB 1500

930 IF B-1 THEN GO TO 100

940 GOSUB 1600

950 GO TO 100

998 CLS

999 PRINT ATI 0,10;"END"

1000 STOP
1200 REM SORT
1205 LET >1

1210 IF N-1 THEN GO TO 1370

1220 IF D${1)<A${1,1 TO 8) THEN GO TO 1330

1230 LET Jl-1

1235 LET J2-N

1240 LET J-INT {(J1+J2J/2)

1250 LET C$-A$(J,1 TO 8)

1260 IF C$-D$(l) THEN GO TO 139Q

1270 IF D$(1)<C$ THEN LET J2-J

1280 IF D$(1)>C$ THEN LET Jl-J

1290 IF J<> INT |{J1+J2)/2) THEN GO TO 1240

1300 LET J-J+1

1330 LETJ1-N+1

1340 IF JKJ+1 THEN GO TO 1370

1350 LET A$(J1)-A$(J1-1)

1360 LET J1-J1-1

1365 GO TO 1340

1370 LET A$(J)-D$(1)+E$(1|

1380 LET N-N+l

1390 RETURN

1500 REM

1510 LET B-0

1525 LET J-l

1530 IF N<> 1 THEN GO TO 1550

1535 PRINT "NO RECORDS"

1540 PAUSE 4E4

1545 GOTO 100

1555 LET Jl-1

1550 LET J2-N

1560 LET J-INT |(J1+J2)/2)

1565 LET C$-A$(J,1 TO 8)

1570 IF C$-D$(1) THEN GO TO 1599

1575 IF D$(1)<C$ THEN GO TO 1585

1580 LET Jl-J

1582 GO TO 1590

1585 LET LET J2-J

1590 IF J<> INT ((J1+J2)/2) THEN GO TO 1560

1595 PRINT "NO IN LIST"

1596 LET B-1

1597 PAUSE 4E4

1599 RETURN

1600 REM DELETE
1610 LET Jl-J

1615 IF Jl-N THEN GO TO 1650

1620 LET A$(J1)-A$(J1+1)
1630 LET J1-J1+1
1640 GO TO 1615
1650 LET N-N-1
1660 RETURN

Программа 3.9 Календарь-ежедневник.

3.10 СОРТИРОВКА СПИСКА ИМЕН.

Следующая программа производит сортировку десяти введенных с
клавиатуры слов. Это удобно для составления алфавитного списка. Результат
работы программы может выглядеть так:

Слова сортируются в порядке возрастания кодов символов.

10 PRINT 'INPUT 10 NAMES' 20 PRINT
100 LET N-10
105 DIM N$(N,15): DIM Z(N)
110 GOSUB 500
120 GOSUB 200
130 GOSUB 1000
140 GOSUB 1020
150 STOP
200 REM SOPT
210 LET P-0

220 IF P-0 THEN LET Z|1)-0: LET P-1
230FOR >2TON
240 LET И»

250 IF N$|4<N${P) THEN LET Z(J|-P: LET P-J: GO TO 295
260 LETK-I: LET l-Z(l)

265 IF 1-0 THEN LET Z(K)-J: LET Z(J|-0: GO TO 295

270 IF N$ (JHN^W THEN LET Z(K)-i LETZ(JH GO TO 295

290 GO TO 260

295 NEXT J

299 RETURN

500 REM INPUT

510 FOR J-1 TO N

520 INPUT V;N$(J)

530 NEXT J: RETURN

1000 FOR 1-1 TO N

1005 PRINT AT l,0;N$(l)

1010 NEXT I: RETURN

1020 LET l-P: LET-J-1

1030 IF 1-0 THEN RETURN

1040 PRINT AT J,16;N$(I): LET »1

1050 LET l-Z(l): GO TO 1030

Программа 3.10 Сортировка списка имен.

3.11 КАРТОТЕКА С ПОИСКОМ ПО КЛЮЧЕВЫМ
СЛОВАМ.

Очередная программа выполняет функцию картотеки с поиском
нужной информации по ключевым словам. При вводе информации
программа предлагает сначала ввести ключевое слово и затем связанный
с ним текст. При просмотре информации с клавиатуры вводится
ключевое слово и на экране отображается соответствующий ему текст.

Символы <----> подсказывают, что нажимая клавиши 5 и 8

можно просматривать содержимое картотеки вперед и назад.

100 LET N-40: LET Z-0: LET C-0
105 DIM N$(N,15): DIM R(N): DIM Щ

110 DIM К$|3,Ю): DIM V${10): DIM E$(N,50): DIM l${20): DIM

U$(15)
120 LET K$(1)-"INPUT"
130 LET K${2)-'SE ARCH"
140 LET K${3)-"END"

145 LET L$-" REM 20 SPACE

150 LET ERR-9000

199 GO TO 1000

200 REM
210 LET P-0

220 IF P-0 THEN LET R|1)-0: LET L|l)-0: LET P-l
230 FOR >2 TO Z
240 LET l-P

250 IF N$(J|<N$(P) THEN LET R|J)-P:LET L(J)-0: LET L(P)-J: LETP-J:

GO TO 295
260 LET K-l: LET l-R|l)

265 IF 1-0 THEN LET R|K)-J: LETR{J|-0: LET L(J|-K:GO TO 295
270 IF N$(J)<N$(I) THEN LET R|K)-J: LET R(J)-I: LET L|J|-K: LET L(l)-J:

GO TO 295
290 GO TO 100 260
295 NEXT J

298 LET C-1

299 RETURN

1000 CIS: PRINT AT 2,5;"INPUr; AT 3,5; "SEACH <XXXX>';AT

4,5;"END"
1002 INPUT'?';!$
1005 PRINT AT 20,0;L$
1010 LET L-LEN 1$
1020 FOR 1-1 TO L
1030 IF 1$М-"" THEN GO TO 1100
1040 NEXT I
1050 GO TO ERR
1100 LET V$-l${? TO 1-1)
1105 LET U$-I$(l+1 TO L)
1110 FOR 1-1 ТОЗ

1120 IF V$-K$(l) THEN GO TO 1200
1130 NEXT I
1140 GO TO ERR

1200 IF V$(1 TO 3)-"INP" THEN GO TO 2000
1210 IF V${1 TO 3)-"SEA" THEN GO TO 3000
1220 IF V${1 TO 3)-*ENO* THEN GO TO 4000
2000 LET Z-Z+1

2005 INPUT "SEARCH KEY:";N$(Z)
2010 INPUT "TEXT:";E$(Z)
2015 PRINT AT 20,0;"--> V
2020 LET C-0
2025 PAUSE 100

2030 IF INKEYS -"" THEN GO TO 2030
2040 IF INKEYS -"8" THEN GO TO 2000
2050 GO TO 1000
3000 CIS

3010 IF C-0 THEN PRINT "ERROR IN KEY": GOSUB 200
3030 LET l-P

3040 IF 1-0 THEN GO TO 3080

3050 IF N$|l)-U$ THEN CLS: PRINT AT 1,2;N$(t); AT 4,0;E$(I); AT

20Д" <-- -> r=GO TO 3100
3060 LET I-R0): GO TO 3040
3080 PRINT AT 20,0;l$;" V. GO TO 9005
3100 PAUSE 100

3105 IF INKEYS THEN GO TO 3100

3110 IF INKEYS -"8" THEN LET K-1: LET l-R(l): GO TO 3200

3120 IF INKEYS -"5" THEN LET K-1: LET 1-Ц1): GO TO 3200

3130 GO TO 1000

3200 CLS

3210 IF 1-0 THEN GO TO 3230

3220 PRINT AT 1,2;N$(I); AT 4,0;E$fl)

3225 PRINT AT 20,0;" <-- «> Г: GO TO 3100

3230 PRINT "END "

3250 LET l-K

3260 PAUSE 100

3270 IF INKEY$ -- THEN GO TO 3270
3280 GO TO 3210
4000 STOP

9000 PRINT AT 20,0;V$;" Г 9005 IF INKEY$ THEN GO TO

9005
9010 GO TO 1000
Программа 3.11 Картотека с поиском по ключевым словам.

3.12 "ВЕЧНЫЙ" КАЛЕНДАРЬ.

В БЕЙСИКЕ компьютера СПЕКТРУМ имеются неточности, с одной из
которых мы встретимся в очередной программе. Попробуйте вычислить:

PRINT 0.6*5 равно 3 PRINT INT(0.6*5) равно 2 PRINT

INT(0.6000001*5) равно 3

Поэтому, для получения верного результата, в строке 260 появляется
несколько необычный коэффициент. Программа предлагает ввести дату в
виде:

DATE: 01.02.1993

и выдает результат

TODAY IS: МО

(Сегодня понедельник)

100 PRINT "CALENDAR"

110 PRINT TNPUT:DOJHM.YYYY"

120 INPUT "DATE: "*$

200 LET D- VAL A$(1 TO 2)

210 LET M- VAl A$(4 TO 5|

220 LET J-VAL A$(7 TO 10)

230 IF M>2 THEN GO TO 260

240LETM-M+12:LET »1

260 LET N-0+2*M+ NT (.600000T(M+l))+> INT

(J/4HNT (J/100K INT (У400Н-2
270 LET N- INT |N/7-INT (N/7T7+0.5)

280 LET N-244+1

290 LET W$-"SASUMOTUWETHFR"

300 PRINT TODAY IS:";W$(N TO N+l)

Программа 3.12 "Венный*календарь.




СОДЕРЖАНИЕ:


  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД