Продолжение, начало на с. 23,45. Сегодня мы продолжаем печатать небольшие программы для начинающих, присланные нашим постоянным читателем из г. Дубна, тов. Скитевым В.Н.
Спирали.
10 LET N=36:LET A=0:LET D=2*PI/N
20 CIRCLE 128,88,80
30 FOR I=1 TO N
40 LET X =40*C0S A
50 LET Y=40*SIN A
60 PLOT 128, 88:DRAW X,Y,-PI:DRAW X,Y,PI
70 LET A=A+D
80 NEXT I
Звезда.
10 PLOT 128,174
20 DRAW 55,-160
30 DRAW -137,100
40 DRAW 164,0
50 DRAW -135,-100
60 DRAW 53,160
Парабола.
10 PLOT 1,88
20 DRAW 254,0
30 FOR A=1.5 TO .4 STEP -.1
40 PLOT 200,5
50 DRAW 0.165,A
60 LET C=(165/2) / (TAN A)
70 DRAW -C,-(165/2)
60 DRAW C,-(165/2)
90 NEXT A
Восход.
10 BORDER RND*6 20 INK RND*7 30 PAPER RND*6 40 CLS
50 LET Z=RND*10+2 60 FOR X=0 TO 174 STEP Z 70 PLOT 126,0 80 DRAW -126,X 90 BEEP .01,X/3 100 NEXT X
110 FOR X=-127 TO 127 STEP Z 120 PLOT 128,0 130 DRAW X,175 140 BEEP .01,60
150 NEXT X
160 FOR X=174 TO 0 STEP -Z
170 PLOT 128,0
180 DRAW 127,X
190 BEEP .01,X/3
200 NEXT X
210 PAUSE 200
220 GO TO 10
50-100 левая часть экрана 100-150 центральная часть экрана 160-200 правая часть экрана
Полное окрашивание экрана монитора. (2-красный, 4-зеленый, 1-синий).
10 CLS
20 BORDER 2: PAPER 2 30 FOR N = 0 TO 21
40 PRINT " "
50 NEXT N
В строке 40 в кавычках 32 пробела.
Программы, представленные ниже достаточно сложны, поэтому сначала введите основную часть программы, а затем после проверки вводите следующую часть.
Пирамиды.
10 BORDER 0
20 PAPER 1
30 INK 6: CLS
50 FOR Y = 0 TO 20 STEP 2
60 PLOT 0, Y
70 DRAW 255,0
80 NEXT Y
90 FOR N=100 TO 220 STEP 30
100 FOR X=-10-N/10 TO 10+N/10
110 PLOT N, 35+N/10
120 DRAW X,-N/4
130 NEXT X
140 NEXT N
Продолжение пирамид.
190 FOR F=1 TO 30
200 LET X=RND*255
210 LET Y=RND*104+71
220 LET L=INT(175-Y)/8
230 LET C=INT(X/8)
240 PLOT 0,0
250 DRAW OVER 1; X,Y
260 BEEP .01,X/4
270 PLOT 0,0
280 DRAW OVER 1; X,Y
290 PRINT AT L,C;"*"
300 NEXT F
Мыльный пузырь.
10 BORDER 1
20 FOR Z=3 TO 10
30 LET H=INT(RND*25)
40 LET V=INT(RND*21)
50 PRINT INK 2;PAPER 6; FLASH 1; AT V,H;"X
60 NEXT Z
70 LET X=1: LET Y=1
80 PRINT AT V,H;" "
90 LET V=V+Y
100 LET H=H+X
110 IF H=0 OR H=31 THEN LET X=-X: BEEP .02,24
120 IF V=0 OR V=21 THEN LET Y=-Y: BEEP .02,12
130 IF SCREEN$(V,H)="X" THEN PRINT INK 1; PAPER 5; AT V,H;"*": BEEP .5,25:STOP
140 PRINT AT V,H;"o"
150 PAUSE 2
160 GO TO 80
С очередной почтой поступила и довольно поучительная программа "ЦВЕТОМУЗЫКА", позволяющая получить на экране разноцветные узоры, изменяющиеся в такт музыке.
Ее прислал наш читатель из г. Минска Кипорук А.А.
Пользоваться программой очень просто. После того, как программа считана с магнитофона и запущена, вставьте в магнитофон кассету с музыкальной записью и включите его. Динамику изображения можно менять, изменяя уровень входного сигнала.
5 REM Настройка переменных. 10 PAPER 0: BORDER 0: CLS
15 LET a=65022: LET s0=255: LET t=0: LET x=0: LET y=21: LET c=1: LET n=2: LET d=0: LET d1=0: LET d2=0
19 REM Анализ изменения сигнала на входе
20 LET s= IN a
25 INK 0: GO SUB 5000: INK c 30 IF s<>s0 THEN GO SUB n*1000 40 LET t=t+1 50 GO TO 20
999 REM Вывод узора 1-го типа.
1000 IF t=1 THEN INK 5: GO SUB 5000
1003 LET x=x+(x<31 AND t=4) - (x>0 AND t=3)
1006 LET y=y+(y<21 AND t=2) - (y>0 AND t=1)
1010 IF t>=5 THEN LET y=INT (RND*21): LET x=INT (RND*30)
1020 IF t>6 THEN CLS:LET n=1+INT(RND*3): GO TO 1055
1025 IF t<>4 THEN INK c: GO TO 1050
1030 LET c=1+INT (RND*7)
1040 INK c: BRIGHT INT (RND*2)
1050 PRINT AT y,x;"|";AT y,30-x;"|";AT 21-y,x;"|"; AT 21-y,30-x;"|" 1055 LET s0=s: let t=0 1060 RETURN
1999 REM Вывод узора 2-го типа
2000 IF t=1 THEN LET с=5: GO SUB 5000: GO TO 2900 2003 INK 0: GO SUB 5100
2005 IF t>5 THEN CLS: LET n=1+INT (RND*3): GO TO 2900
2010 BRIGHT INT (RND*2): INK t
2020 LET d1=t+INT (RND*4): LET d2=d1+INT (RND*5)
3040 GO SUB 5100
2900 LET s0=s: LET t=0
2910 RETURN
2999 REM Вывод узора 3-го типа
3000 IF t=1 THEN LET c=5:GO SUB 5000
3005 IF t>5 THEN CLS: LET n=1+INT(RND*3): LET x=20: LET y=30:GO TO 3900
3010 IF t>4 THEN CLS
3050 LET c=1+INT (RND*7)
3060 LET x=INT (RND*256); LET y=INT (RND*176)
3070 INS c: PLOT x,y
3080 IF t<3 THEN DRAW -INT (RND*X),-INT (RND*y)
3090 IF t>2 THEN CIRCLE 20+INT (RND*210),20+INT (RND*130,INT (RND*20) 3900 LET s0=s: LET t=0: LET x=15: LET y=10 3910 RETURN
4999 REM Вывод угловых квадратов
5000 PRINT AT 0,0;"|"; AT 0,31;"|"; AT 21,0;"|"; AT 21, 31;"|" 5010 RETURN
5100 PRINT AT 10+d1,15+d2;"||" AT 10+d1,15-d2;"||"; AT 10-d1,15=d2;"||";AT 10-d1,15-||
5120 RETURN