ZX-Ревю 1992 №9-10 1991 г.

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


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

СПЕКТРУМ В ШКОЛЕ

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

Программа управляется от несложной системы меню и не требует никаких инструкций по работе - она самообеспечена. В ней есть два основных режима работы:

1. Режим тестирования.

2. Режим заполнения вопросов и ответов.

После первого запуска командой RUN программа еще не содержит ни вопросов, ни ответов. Сначала вы должны их ввести. Вы можете иметь 5 серий (вариантов) вопросов и ответов на разные темы. Каждая серия содержит 8 вопросов и ответов.

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

1 - внести изменения

2 - заменить вариант

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

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

При вводе программы у Вас будут, конечно, проблемы с вводом символов русского алфавита. Мы не можем сделать это за Вас, поскольку не можем заранее знать Ваших возможностей. Многие работают на компьютерах с русифицированным ПЗУ и имеют команды для переключения с одного шрифта на другой. У некоторых даже есть как бы дополнительный символьный регистр. Если у Вас ничего в этом смысле в компьютере нет, то Вам надо русифицировать компьютер программно. Как это делается, мы уже многократно писали, но должны предостеречь Вас от русификации путем использования символов графики пользователя UDG. Дело в том, что программа уже использует графические символа от "А" до "F" для изображения "физиономий". Эти символы в распечатке программы подчеркнуты и набирать их следует в графическом режиме. Блок данных, задающий "конструкцию" этих символов, расположен в строках 1000. . . 1050.

Может быть, Вы решите отказаться от изображения этих "физиономий" и тогда вернете возможность использования символов UDG для изображения прописных букв русского алфавита. В этом варианте тоже есть своя прелесть, т.к. тогда возможны двуязычные экраны и Вы сможете применить программу для проверки знаний по иностранному языку.

Issue #14: Krieg Der Sterne

Может быть, Вы захотите организовать несколько банков символов графики пользователя и оперативно переключаться между ними, когда это надо. Как это делается, мы писали в недавно вышедшем первом томе, посвященном графике "Спектрума" -"Элементарная графика" (М:,"ИНФОРКОМ", 1992г., 208 стр.).

Но по всей видимости, Вам лучше русифицировать компьютер полной сменой символьного набора. Из наших последних публикации на эту тему посмотрите пожалуйста статью Алексеева А.Г., посвящённую полной русификации программы "MASTERFILE-09" в "ZX-PEBЮ-92" на стр. 29-32,71-75. Полезными будут советы этого автора, приведенные и в данном выпуске "ZX-РЕВЮ" в статье "Профессиональный подход".

При вводе и отладке программы обратите особое внимание на следующие обстоятельства:

1. Подчеркнутые символы А..^ являются символами графики пользователя UDG и вводиться должны в графическом режиме (курсор G).

2. Только первый запуск программы можно выполнять командой RUN. После того, как вы заполните хотя бы одну серию вопросов и ответов, эту команду уже подавать нельзя, так как по команде RUN обновляется содержимое программных переменных и массивов и Вам придется снова заполнять вопросы и ответы.

При втором и последующем запусках вместо RUN давайте команду GO TO 70.

ВИКТОРИНА

10 REM здесь Вы можете разместить 20 REM необходимые Вам 30 REM процедуры, например для 40 REM русификации компьютера.

49 REM

50 DIM h$(5,32): DIM q$(5,8.28): DIM a$(5,8,13): DIM p$(8): DIM t$(5): DIM e$*(1) 60 LET t$="O0000"

70 BORDER 7: PAPER 7: INK 0: CLS

80 RESTORE 1000: GO SUB 1000: LET new=0

90 REM *** Начало работы

100 DIM c$(8): CLS

120 FOR y=1 TO 13 STEP 6

130 FOR x=1 TO 29 3TKP 28

140 PRINT AT y,x; INK 4;"AB";AT y+1,x;"CD";AT y+3,x; INK 2; "AB"; AT y+4,x;"EF" 150 NEXT x 160 NEXT y

170 PRINT INK 4;AT 19,1: "AB"; AТ 20,1 ;"CD"; AT 19,29; "AB"; AT 20,29;"CD"

180 PRINT AT 8,5; " Выберите режим работы:"

190 PRINT AT 11,4; "1 = Ответы на вопросы"

200 PRINT AT 13,4; "2 - Ввод новых вопросов"

210 PRINT AT 15,4; "3 = Конец работы"

220 PRINT AT 19,5; BRIGHT 1;"Нажмите нужную клавшу"

230 IF INKEY$="1" THEN GO TO 280

240 IF INKEY$="2" THEN GO TO 600

250 IF INKEY$="3" THEN GO TO 900

260 GO TO 220

270 REM

230 REM ** Ответы на вопросы** 281 REM

290 CLS : INPUT "": PRINT AT 0,7; BRIGHT 1; "Подумай и ответь" 300 GO SUB 1300

310 PAUSE 30: PRINT #0;AT 0,0;"Введи номер варианта " 320 GO SUB 1210: LET n=i: IF n>5 THEN GO TO 320

330 IF t$(n)="0" THEN PRINT AT 6,6; FLASH 1; "Этот вариант не готов": INPUT "": PAUSE 150:

GO TO 90 340 CLS: LET p$=" 12345678" 350 FOR x=1 TO 8

360 LET r=INT (RND*8)+1: IF p$(r)<>" " THEN GO TO 380

370 GO TO 360

380 IF x=r THEN GO TO 360

390 LET c$(x)=p$(r): LET p$(r)=" ": NEXT x

400 GO SUB 1100: PRINT INK 1;AT 0, 0;h$(n): FOR x=1 TO 8

410 PRINT AT 2*x+2,0;x;AT 2*x+2,2;q$(n,x)(1 TO 14);AT 2*x+3,2;q$(n, x) (15 TO 28);AT

2*x+2,17; a$(n, VAL c$(x));AT 2*x+2,31;x 420 NEXT X

430 LET p$="12345678": LET t=0

440 INPUT "": PRINT #0;AT 0, 0; "Номер вопроса ?"

450 GO SUB 1210: LET q=i

460 IF p$(q)=" " THEN PRINT #0;AT 0,0; BRIGHT 1;"Ha этот вопрос Вы уже ответили": ВЕЕР 1,12: PAUSE 50: GO TO 440 470 PRINT BRIGHT 1: AT 2*q+2,2; q$(n,q)(1 TO 14);AT 2*q+3,2;q$(n,q)(15 TO 28) 480 INPUT "": PAUSE 30: PRINT #0; AT 0,0; "Правильный ответ ?" 490 GO SUB 1210: LET a=i 500 PRINT AT 2*a+2,31; FLASH 1;a: PAUSE 50

510 IF VAL c$(a)=q THEN PRINT #0; AT 0.0; "Правильный ответ " ; INK 4;"AB CD": GO TO 530

520 PRINT #0;AT 0,0; "Нет, ответ неверный "; INK 2; "AB EF":

GO SUB 2200: PRINT AT 2*a+2,31;a: GO TO 480 530 PRINT AT 2*a+2,31;a;AT 2*a+2,17; BRIGHT 1;a$(n,VAL c$(a)):GO SUB 2000 540 PRINT AT 2*q+2,2;q$(n,q)(1 TO 14); AT 2*q+3,2;q$(n,q)(15 TO 28); AT 2*а+2,17; a$(n,VAL c$(a))

550 LET p$(q)=" ": LET t = t+1: IF t = 8 THEN GO TO 570 560 GO TO 440

570 INPUT "": PRINT#0;AT 0,0; BRIGHT 1; "Нажми любую клавишу" 580 PAUSE 0 590 GO TO 90

599 REM

600 REM**Ввод новых вопросов** 605 REM

610 CLS : PRINT AT 0,7; BRIGHT 1; "Ввод новых вопросов"

620 PRINT AT 2,0; "Эта программа может содержать до 5 вариантов вопросов и отве- тов.

Каждый вариант имеет номер" 625 PRINT AT 5,0; "от 1 до 5. Здесь вы можете узнать, какой вариант готов или внести

нужные изменения и дополнения." 630 GO SUB 1300: PRINT AT 19,3; "для выхода нажмите клавишу 6" 640 INPUT "": PRINT #0; AT 0,0;" Какой вариант будем заполнять?" 650 GO SUB 1210: LET n=i: IF n>6 THEN GO TO 650 660 INPUT "": IF n=6 THEN GO TO 90 670 IF t$(n)="0" THEN GO TO 790

680 INPUT "Исправление или замена? Нажмите i или z (прочие клавиши - конец."; LINE е$

690 IF е$ = "z" THEN GO TO 790

700 IF е$ <>"i" THEN GO TO 90

710 CLS : GO SUB 1100: PRINT INK 1;AT 0,0;h$(n)

720 FOR x=1 TO 8: GO SUB 880: GO SUB 890: NEXT x

730 INPUT "Какой вопрос будем исправлять? (Клавиша 9 - конец работы)"; х

740 LET x=INT x: IF x<1 OR х>9 THEN GO TO 730

750 IF х=9 THEN GO TO 90

760 PRINT AT 2*x+2,0; BRIGHT 1;x: GO SUB 860

770 PRINT AT 2*x+2,31; BRIGHT 1;x: GO SUB 870

780 LET new=1: GO TO 730

790 CLS : INPUT "Заголовок (до 32 букв)? ", LINE h$(n) 800 GO SUB 1100: PRINT INK 1;AT 0,0;h$(n) 810 FOR x=1 TO 8: GO SUB 860: G0 SUB 870: NEXT x 820 LET t$(n)="1": LET new=1

830 INPUT "": PRINT #0;AT 0,0; BRIGHT 1: "Нажмите любую клавишу" 840 PAUSE 0 850 GO TO 90

860 INPUT "Вопрос (до 28 букв)? ", LINE q$(n,x): GO SUB 880: RETURN

870 INPUT "Ответ (до 13 символов)? ", LINE a$(n,x): GO SUB 890: RETURN

880 PRINT AT 2*x+2,0;x;AT 2*x+2,2;q$(n,x)(1 TO 14); AT 2*x+3,2;q$(n,x)(15 TO 28): RETURN

890 PRINT AT 2*x+2,17: a$(n,x);AT 2*x+2,31; x: RETURN

899 REM

900 REM ** Конец программы ** 905 REM

910 IF new THEN SAVE "Victorina" LINE 70: PAUSE 30

920 CLS : STOP 990 REM

995 REM *Данные UDG-графики*

999 REM

1000 DATA "a",7,31,48,96,76,204,192,193 1010 DATA "b", 224,248,12,6,50,51,3,131 1020 DATA "c", 193,192,216,79,99,46,31,7 1030 DATA "d",131,3,27,242,198,12,248,224 1040 DATA "e",193,192,195,71,108,,46,31,7 1050 DATA "f",131,3,195,226,54,12,248,224 1060 FOR x=1 TO 6: READ e$

1070 FOR y=0 TO 7

1080 READ i: POKE USR e$+y,i

1090 NEXT y: NEXT x: RETURN

1095 REM

1100 REM **Дизайн экрана$**

1101 REM

1102 PLOT 0,164: DRAW 255,0 1104 PLOT 0,163: DRAW 255,0 1110 PLOT 0,148: DRAW 255,0 1120 PLOT 0,147: DRAW 255,0 1130 PLOT 0,10: DRAW 255,0 1140 PLOT 0,11: DRAW 255,0 1145 PLOT 0,148: DRAW 0,15 1150 PLOT 131,11: DRAW 0,152 1160 PLOT 132,11: DRAW 0,152 1165 PLOT 255,146: DRAW 0,15 1170 PLOT 11,11: DRAW 0,136 1180 PLOT 244,11: DRAW 0,136

1190 PRINT INK 1;AT 2,4;"ВОПРОСЫ"; АТ 2,20; "ОТВЕТЫ"

1200 RETURN 1204 REM

1206 REM *Прием нажатой клавиши*

1208 REM

1210 LET e$=INKEY$

1220 LET i=CODE e$-48

1230 IF i>0 AND i<9 THEN RETURN

1240 GO TO 1210

1299 REM

1300 REM **Готовность данных** 1305 REM

1310 PRINT AT 11,8; BRIGHT 1; " ВАРИАНТ ГОТОВНОСТЬ "

1320 FOR i=1 TO 5

1330 PRINT AT i+12, 11;i;AT i+12,19;("ГОТОВ" AND t$(i)="1")+("HE ГОТОВ" AND t$(i)="0")

1340 NEXT i

1350 RETURN

1999 REM

2000 REM** Правильный ответ** 2005 REM

2010 LET w=0.07

2020 BEEP 3*w,12: BEEP w,16: BEEP 2*w,14: BEEP w,17: BEEP 3*w,16: BEEP 5*w,12

2030 PAUSE 100

2040 RETURN

2199 REM

2200 REM **неправильный ответ** 2205 REM

2210 LET w=0.1

2220 BEEP 1.5*w,7: BEEP w,4: BEEP 1.5*w,0: BEEP w,4: BEEP .8*w,2: BEEP 2*w,2

2230 RETURN




СОДЕРЖАНИЕ:


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

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



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

Похожие статьи:
Обратная связь - контакты редакции.
Demo Party - PHAT'9: список посетителей.
От автора - вот и вышел девятый номер...
NEWS - О новинках на игровом рынке: "Очко", "Clickmania", "Tower Pod", "Dizzy A", "Adventurer".
Программирование - быстрая процедура печати спрайтов через стек от WoodlandStudio.

В этот день...   21 ноября