ZX-Ревю 1991 №10 1990 г.

Спектрум в школе - материал подготовленный участниками компьютерного кружка под руководством С. В. Митина (г. Ульяновск).


Темы статьи: Программирование  

РЕВЮ

N10(10)1991

Спектрум в школе

Сегодня мы печатаем материал, подготовленный участниками компьютерного кружка под руководством С. В. Митина (г. Ульяновск).

Первая программа может пригодиться на уроках математики. Она предназначена для построения графиков.

"1. Y=X*X*SIN(1/X)" "2. Y=Х*SIN(1/Х)" "3. Y=SQR(X*X+2)" "4. Y=COS(X*EXP(-X/5))" "5. Y=6+2*X*X-X*X*X*X"

Графики функций.

10 REM ** Построение графиков ** 20 REM ** Начальная установка ** 110 CLS

120 LET sx=176 130 LET sy=160 140 LET hy=sy/2 150 CLS

160 PRINT AT 8,10; "Построение графиков" 170 PRINT 180 PRINT 190 PRINT 200 PRINT 210 PRINT 220 PRINT 230 PRINT 240 PRINT 250 PRINT 260 PRINT 270 PRINT

280 PRINT FLASH 1; TAB 5;"Укажите номер уравнения" 300 INPUT N

310 IF N=1 THEN DEF FN A(x)=x*x*SIN(1/x) 320 IF N=2 THEN DEF FN A(x)=x*SIN(1/x) 330 IF N=3 THEN DEF FN A(x)=SQR(x*x*2) 340 IF N=4 THEN DEF FN A(x)=COS(x*EXP(-x/5)) 350 IF N=5 THEN DEF FN A(x)=6+2*x*x-x*x*x*x 360 PRINT

370 PRINT "Область изменения Х"

400 INPUT "Ввести наименьшее и наибольшее значение ";a,b

450 IF а^ THEN PRINT FLASH 1; "Ошибка - попробуйте еще."

460 IF a>b THEN GO TO 370

500 PRINT "Вычисление области значений Y."

520 LET c=(b-a)/100

530 LET ш=1.0Е-30

540 FOR x=a TO b STEP c

550 IF x=0 THEN GO TO 580

560 LET y=ABS(FN A(x))

570 IF m<y THEN LET m=y

580 NEXT x

590 REM *Готов построить графики

600 PAUSE 500: CLS

700 LET c=c/10

720 FOR x=a TO b STEP c

730 IF x=0 THEN GO TO 790

740 LET y=FN A(x)

ZX-

Issue #8: The Murder Machine

Scan, OCR & spellcheck by NUK

750 LET u=sx*(x-a)/(b-3)

760 LET v=hy+hy*y/m

770 IF v<0 OR v>sy THEN GO TO 790

780 PLOT u,v

790 NEXT x

800 REM *окончание и повторение* 810 LET g$=INKEY$ 820 IF g$="" THEN GO TO 810 830 CLS

850 PRINT "Повторить? Y/N" 860 LET g$=INKEY$

870 IF g$0"Y" AND g$<>"y" AND g$<>"N" AND g$<>"n" THEN GO TO 860 880 IF g$="Y" OR "="y" THEN GO TO 150 890 STOP

С помощью этой программы Вы можете анализировать графики и каких-то своих функций. Для этого надо изменить расчетную формулу, по которой она будет вычисляться (строки 310 - 350), а также поменять запись формулы в меню (строки 180 - 260). Обратите особое внимание, чтобы при обработке Вашей функции не происходило деления на ноль. Если в формуле есть деление, то либо область изменения знаменателя не должна содержать ноль, либо перед расчетом надо проверять знаменатель и, если он равен нулю, обрабатывать этот случай особо или вообще его пропускать, не рассматривая.

Поэкспериментируйте с предложенной Вам программой, попробуйте менять значение c в строке 700. Вместо c/10 попробуйте c/5 и c/20.

Графики получается симпатичнее, если левое значение х взять отрицательным, а правое положительным.

А вот еще одна небольшая программа для урока математики:

Исследование матриц.

10 REM **"Исследование матриц** 100 REM **Начальная установка** 110 CLS

120 LET sx=176: LET sy=160 130 LET rt=.6

140 LET hx=sx/2: LET hy-sy/2 170 REM ** Ввод матрицы** 200 PRINT

210 PRINT "Введите свою матрицу" 220 PRINT

230 INPUT"Строка 1, столбец 1";m1 240 PRINT

250 INPUT"Строка 1, столбец 2":m2 260 PRINT

270 INPUT"Строка 2, столбец 1";m3 280 PRINT

290 INPUT"Строка 2, столбец 2";m4 320 PRINT

330 PRINT"Ваша матрица: " 340 PRINT TAB 4; m1; TAB 10;m2 350 PRINT TAB 4: m3; TAB 10:m4 360 PRINT

370 LET det=m1*m4 - m2*m3

380 PRINT "Определитель D=";det

390 PRINT "Хотите продолжить Y/N"

400 PRINT

430 LET g$=INKEY$

440 IF g$<>"Y" AND g$<>"У" AND g$<>"N" AND g$<>"n" THEN GO TO 430

45O IF g$="N" OR g$="n" THEN GO TO 180

460 PRINT "Ладно, но немного терпения, пожалуйста"

470 PAUSE 250

480 LET dd=ABS(det)

490 IF dd<1 THEN LET dd=1:BEEP .1,2 500 CLS

600 REM ** Картинка ** 610 FOR x=0 TO 15 STEP 7.5 620 FOR y=0 TO 15 STEP 1/dd 630 GO SUB 910 640 NEXT y 650 NEXT x

660 FOR y=0 TO 15 STEP 15

670 FOR x=0 TO 15 STEP 1/dd

680 GO SUB 910

690 NEXT x

700 NEXT y

710 LET y=12

720 FOR x=5 TO 10 STEP 1/dd 730 GO SUB 910 740 NEXT x

800 REM *окончание и повторение* 810 PAUSE 0

820 PRINT "Повторить? Y/N": PAUSE 500 830 CLS

840 LET g$=INKEY$

850 IF g$<>"Y" AND g$<>"y" AND g$<>"N" AND g$<>"n" THEN GO TO 840 860 IF g$="Y" OR g$="y" THEN GO TO 180 870 STOP

900 REM ** вычерчивание **

910 LET u= (m1*x+m2*y)*rt+bx

920 IF u<0 OR u>sx THEN RETURN

930 LET v=hy+m3*x+m4*y

940 IF v<0 OR v>sy THEN RETURN

950 PLOT u,v

960 RETURN

Сейчас, когда страна вступает на путь рыночный отношений, молодежи могут пригодиться знания, связанные со способами и методами вложения и приумножения капитала. Итак, сегодня мы рассмотрим проект "ИНВЕСТОР".

Для справки: ИНВЕСТОР - человек, который вкладывая свой капитал способствует развитию какого-то предприятия и резонно рассчитывает получить за это часть прибыли. От того, как он сумеет определить перспективность того или иного предприятия, зависит получит ли он прибыль.

В реальной жизни он руководствуется при этом своими знаниями (знания никогда не бывают лишними), опытом, интуицией, личными убеждениями, но может привлекать консультантов и, конечно, рискует.

Итак, неизвестный благодетель предоставил Вам 1000 долларов с условием, что Вы вложите их в развитие трех фирм X, Y, Z. Вы обязаны вкладывать ВСЕ имеющиеся у Вас деньги в течение 10 лет. Для этого Вы раз в год сообщаете компьютеру о том, какую сумму Вы вкладываете в то или иное предприятие.

У Вас есть мощный компьютер и свой человек в каждой из трех фирм, так что Вы в состоянии оценить прибыль (убыток) на один доллар в каждой фирме в зависимости от состояния рынка.

Всего возможны три состояния, и Вам компьютер подсказывает с какой вероятностью наступит то или иное состояние, а вот решение по тому, в какую фирму сколько вкладывать примете Вы сами. Возможная прибыль или убыток на один доллар выводится на экран в виде таблицы,например:_

Фирма

Состояния рынка

ST 1

ST 2

ST 3

0.222

0.413

0.365

X

.4

-.1

.3

Y

-.2

.1

.1

Z

-.1

.4

-.3

Здесь вероятность того, что рынок окажется в 1-ом состоянии - 0.222, (т.е. в 22.2% случаях). Если оно произойдет, то в предприятии X каждый вложенный доллар принесет 0.4 доллара прибыли, в фирме Y Вы понесете убыток 0.2 долл., а в фирме Z - 0.1 $. Таким образом, если Вы вложили в X, Y и Z соответственно по 300, 300 и 400 долларов, а состояние рынка было ST 1, то результат Вашей инвестиции будет: 300*0.4+300*(-0.2)+400*(-0.1) = 20 долл.

Теперь Вы будете обладателем 1020 долларов и в конце года будете снова принимать решение, куда Вам их вложить. Достаточно указать сколько будет вложено в X и Y, а остаток компьютер сам переправит в Z.

Цена игры - порядка 5%. Так что, если Вы будете играть оптимально, то должны в среднем приумножать свой капитал на 5% в год. Играя рискованно, Вы можете разбогатеть или разориться чуть быстрее. 10 REM ИНВЕСТОР 100 REM **Начальная установка** 110 CLS

120 DIM a(4,3,10) 130 FOR k=1 ТО 10 140 FOR i=1 ТО 4 150 FOR j=1 TO 3 160 READ a(i,j,k) 170 NEXT j 180 NEXT i 190 NEXT k 200 LET w=1000 210 LET year=1 300 REM ** ЦИКЛ ** 310 CLS

315 PRINT TAB 12; "ИНВЕСТОР" 320 PRINT TAB 13; "ГОД: "; year 330 PRINT

340 PRINT "Капитал в начале года равен ";w 350 PRINT

360 PRINT TAB 8; "Состояние рынка"

370 PRINT TAB 8;"ST 1 ST 2 ST 3"

380 LET K=INT(RND*10+1)

390 FOR i=1 TO 4

400 IF i=2 THEN PRINT "X";

410 IF i=3 THEN PRINT "Y";

420 IF i=4 THEN PRINT "Z";

430 FOR j=1 TO 3

440 IF i=1 THEN PRINT TAB (3+6*j); a(i,j,k); 450 IF i>1 THEN PRINT TAB (3+6*j); a(i,j,k); 460 NEXT j

470 IF i=1 THEN PRINT 480 PRINT 490 NEXT i 500 PRINT

510 INPUT "Сколько Вы хотите вложить в X?"; х 540 LET x=INT(x+0.5)

550 IF x<0 OR x>w THEN PRINT FLASH 1; "Ошибка" 560 IF x<0 OR x>w THEN GO TO 510 570 INPUT "Сколько Вы хотите вложить в Y?"; y 590 LET y=INT(y+0.5)

600 IF y<0 OR y>(w-x) THEN PRINT FLASH 1: "Ошибка" 610 IF y<0 OR y>(w-x) THEN GO TO 570 620 LET z=w-x-y

630 PRINT "Остаток ";z;" вложен в Z" 640 REM ** Состояние рынка ** 650 LET q=RND 660 LET r=3

670 IF q<a(1,1,k)+a(1,2,k) THEN LET r=2 680 IF q<a(1,1,k) THEN LET r=1 690 PRINT " Состояние рынка "; r

700 REM ** Прибыль и убыток **

710 LET w= w+a(2,r,k)*x + a(3,г,k)*у + а(4,г,k)*z

720 LET w=INT(w+.5)

730 PRINT "Ваш капитал теперь равен: ";w 740 PRINT

750 PRINT "Чтобы продолжить нажмите Y" 760 LET g$=INKEY$

770 IF g$ <> "y" AND g$ <> "Y" THEN GO TO 760

780 LET year=year+1

790 IF year<11 THEN GO TO 300

800 REM *Окончание и повторение*

810 PRINT

820 PRINT "Вы начали с 1000, а теперь у Вас уже: 830 PRINT

840 LET b$ = " *Потрясающий результат* " 850 IF w<2500 THEN LET b$=

*Отлично* *Хорошо * *Неплохо* *Жить можно* другой раз повезет *

860 IF w<2000 THEN LET b$= 870 IF w<1750 THEN LET b$= 880 IF w<1400 THEN LET b$= 890 IF w<1000 THEN LET b$= 900 PRINT b$ 910 PRINT

1000 REM ** Повторение ** 1010 PRINT "Повторить? Y/N" 1020 LET g$ = INKEY$

1030 IF g$<>"Y" AND g$<>"y" AND g$<>"N" AND g$ <>"n" THEN GO TO 1020

1040 IF g: 1050 STOP

1100

REM **

Данные

**

1110

DATA

478,

337,

.185

-

7,

7,

-.3,

-

3,

2,

.1,

1120

DATA

106,

53,

.364

-

3,

7,

.5,

7,

3,

.5,

1130

DATA

415, .

347,

.237

-

7,

7,

-.3,

-

3,

4,

0,

1140

DATA

247,

346,

.38,

-

7,

4,

-.3,

-

3, -

5,

.2,

1150

DATA

437,

438,

.125

-

6,

4,

-.6,

-

3, -

3,

.5,

1160

DATA

304,

435,

.261

-

7,

4,

-.6,

2, -

2,

.6,

1170

DATA

422,

39,

.188

8, -

3,

.7,

-

3, -

3,

.1,

1180

DATA -

214,

357,

.429

-

2,

1,

-.3,

-

1,

1,

-.2,

1190

DATA

222,

413,

.365

-

4,

3,

-.2,

1, -

1,

.4,

1200

DATA

093

463,

.444

-

6, 2,

7, 2,

-.6, .8,

5="Y" OR g$ = "y" THEN GO TO 200

3,

7,

5

5,

5,

7

3,

7,

5

5, 7, 3

6,

4, 6

5, 5, 7

3,

4, 2 4, 1, 3 0, 0,

"ИНФОРКОМ" сыграл в эту игру десяток раз, стратегию и ни разу не показал результата хуже "хорошо" с очень хорошо сбалансированной игрой.

быстро обнаружил оптимальную . Поздравляем авторов программы




СОДЕРЖАНИЕ:


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

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



Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
График - график работы BBS.
Фантастика - Фантастическая повесть Рея Бредбери "Лед и пламя" (часть 1).
Реклама - Реклама и объявления ...
Мир Амиги - Амига глазами RRA (часть последняя).
Сеанс - В этом сеансе было сомнительным все - от публики до самого экстрасенса.

В этот день...   29 марта