Как Петя Бейсиков Тоню Соображалкину программировать учил
- Автор: Бруно Мартузан
- Жанр: Околокомпьютерная литература / Детская образовательная литература / Basic, Visual Basic, VB Script, VBA и т.п.
- Дата выхода: 1987
Читать книгу "Как Петя Бейсиков Тоню Соображалкину программировать учил"
КОМПЬЮТЕР ПОЗДРАВЛЯЕТ С ПРАЗДНИКОМ
— Займемся сейчас программой печати поздравлений. Что она должна делать и что она делает? Она должна красиво напечатать поздравление с днем рождения или с каким-то другим праздником. Красиво — на сей раз означает, что вокруг текста поздравления должна быть выпечатана рамочка из какого-то символа. Он называется декоративным символом.
В начале поздравления следует поставить обращение, состоящее из слов «Дорогой», «Уважаемый» и т. п. и из имени поздравляемого человека. Конечно, указывать именно имя необязательно. С таким же успехом может быть имя и отчество или фамилия. Еще программа узнает у пользователя, как обращаться к поздравляемому человеку — на «ты» или «вы», ученик он или взрослый. Может, начнем смотреть программу, тогда и увидишь, что там происходит.
10 REM ПРОГРАММА ПЕЧАТАЕТ ПОЗДРАВЛЕНИЯ
20 R=16 REM КОЛИЧЕСТВО СТРОК
30 N=30 REM КОЛИЧЕСТВО ЗНАКОВ В СТРОКЕ
40 S¤="*" REM ДЕКОРАТИВНЫЙ СИМВОЛ
50 S1¤="C ДНЕМ РОЖДЕНИЯ. " S2¤=”12"
60 DIM L1¤(2,2), Т¤(10)
70 L1¤(1, 1)="ДОРОГОй" L1¤(1,2) = ”ДОРОГАЯ"
80 L1¤(2,1)="УВАЖАЕМЫй" L1¤(2,2)="УВАЖАЕМАЯ"
90 DIM L2¤(2) L2¤(1)="ТЕБЯ" L2¤(2)="BAC"
100 DIM L3¤(2) L3¤(1)="ТЕБЕ" L3¤(2)=“BAM"
105
110 DATA “ ",“ПОЗДРАВЛЯЮ"," ","ЖЕЛАЮ "
120 DATA "БОЛЬШОГО СЧАСТЬЯ,",“ХОРОШЕГО НАСТРОЕНИЯ"
130 DATA " “," “," "," ПЕТЯ"
135
140 PRINT "ПРОГРАММА ПЕЧАТАЕТ ПОЗДРАВЛЕНИЯ"
150 PRINT " ВЫВОД НА ЭКРАН — 1"
160 PRINT " НА БУМАГУ — 2" INPUT F¤
165 IF POS(S2¤,FX,1)=0 THEN 150 F=VAL(F¤)
170 F=F-1 REM СЕЙЧАС F НОМЕР ФАЙЛА
180 IF F=0 THEN 200 REM ВЫВОД НА ЭКРАН
190 OPEN "LP: " FOR OUTPUT AS FILE 1 REM ПЕЧАТЬ
195
280 PRINT if POS(S2¤,U¤,1)=0 THEN 260
290 PRINT " ИМЯ"; INPUT U¤
295 PRINT
300 L=LEN(U¤) REM ДЛИНА СЛОВА
310 Px=SEG¤(U¤,L,L) REM ПОСЛЕДНЯЯ БУКВА
320
325 REM НАЧАЛО ОПРЕДЕЛЕНИЯ ПОЛА
330 IF Px<>"A" THEN 370
340 IF SEG¤(U¤,L-1,L-1)="Ш" THEN 380
350 IF V¤="ВАЛЕРА" THEN 375
351 IF V¤="CEPEWA" THEN 375
352 IF V¤="СЛАВА" THEN 375
353 IF V¤="BOBA" THEN 375
354 IF V¤="CEBA" THEN 375
355 IF V¤=”ЛЕВА" THEN 375
356 IF V¤="ЮРА" THEN 375
357 IF V¤="ДИМА" THEN 375
360 D=2 GO TO 470 REM ЖЕНСКОЕ ИМЯ
370 IF Р¤="Я" THEN 380
375 D=1 GO TO 470 REM МУЖСКОЕ ИМЯ
380 PRINT "ПОЗДРАВЛЯЕТЕ МУЖЧИНУ — 1"
390 PRINT " ЖЕНЩИНУ — 2" INPUT D¤
400 D=VAL(D¤) IF POS(S2¤,D¤,1)=0 THEN 380
440
450 REM НАЧИНАЕТСЯ ПОДГОТОВКА ТЕКСТА
460
470 RESTORE FOR J=1 TO 10 READ T¤(J) NEXT J
475 REM СНАЧАЛА ФОРМИРУЕТСЯ ОБРАЩЕНИЕ
480 T¤(1) =L1¤(VAL(C¤), D) +" " +V¤+"!"
490 T¤(2)=T¤(2)+L2¤(VAL(T¤)) REM ТЕБЯ ИЛИ ВАС
500 T¤(3)=S1¤ REM В СВЯЗИ С ЧЕМ ПОЗДРАВЛЯЕМ
510 T¤(4)=T¤(4)+L3¤(VAL(T¤)) REM ТЕБЕ ИЛИ ВАМ
520 IF U¤="1" THEN 540
530 Т¤(7)="И КРЕПКОГО ЗДОРОВЬЯ!" GO ТО 560
540 Т¤(7)="И УСПЕХОВ В УЧЕБЕ!"
545
550 REM НАЧИНАЕТСЯ ВЫВОД =============================
555
560 GOSUB 1000 REM ПЕРВАЯ СТРОКА РАМКИ
570 R1=INT((R-10)/2) REM СКОЛЬКО СТРОК БЕЗ ТЕКСТА?
580 GOSUB 2000 REM И СТОЛЬКО ВЫПЕЧАТЫВАЕТ
585
590 REM СЕЙЧАС ТЕКСТ В РАМКЕ
600 FOR J=1 ТО 10 REM ЦИКЛ ПЕЧАТИ ТЕКСТА
610 N1 = INT((N-2-LEN(T¤(J)))/2) REM СКОЛЬКО ПРОБЕЛОВ?
620 PRINT #F, TAB(5);S¤;TAB(N1+6);T¤(J);TAB(N+4); S¤
630 NEXT J
635
640 GOSUB 2000 REM ПЕЧАТЬ СТРОК БЕЗ ТЕКСТА
650 GOSUB 1000 REM И ПОСЛЕДНЕЙ СТРОКИ
66 °CLOSE PRINT REM ЗАКРЫВАЕТ ВСЕ ФАЙЛЫ
665
710 INPUT I1
715
720 F=0 ON I1 GO TO 740,290,150,730
725
730 STOP
740 F=1
750 OPEN ”LP:” FOR OUTPUT AS FILE 1
760 GO TO 560
770 END
775
1000 REM ПЕЧАТЬ СТРОКИ ДЕКОРАТИВНЫХ СИМВОЛОВ
1010 PRINT #F,TAB(5);
1015 FOR 1 = 1 TO N PRINT #F,S¤; NEXT I
1020 PRINT #F RETURN
1025
2000 REM ПЕЧАТЬ РАМКИ БЕЗ ТЕКСТА
2010 FOR 1=1 ТО R1
2020 PRINT #F,TAB(5);S¤;TAB(N+4);S¤
2030 NEXT I
2040 RETURN
3000 END
Ой, совсем забыл! У меня же есть образец выпечатанного поздравления.
*********************************
* *
* *
* *
* УВАЖАЕМАЯ ТОНЯ! *
* ПОЗДРАВЛЯЮ ТЕБЯ *
* С ДНЕМ РОЖДЕНИЯ. *
* ЖЕЛАЮ ТЕБЕ *
* БОЛЬШОГО СЧАСТЬЯ, *
* ХОРОШЕГО НАСТРОЕНИЯ *
* И УСПЕХОВ В УЧЕБЕ! *
* *
* ПЕТЯ *
* *
* *
* *
*********************************
— Потрясающе! Почему ты мне не прислал на день рождения такое поздравление?
— Как я это мог сделать! А на следующий свой день рождения сама сможешь напечатать хоть сотню.
— Так будет неинтересно.
— Теперь о самой программе. В самом начале присваиваю значение двум переменным R и N.
Эти переменные определяют длину и высоту декоративной рамочки. Потом присваивается значение декоративному символу S¤ — обычно я беру звездочку. Далее задается праздник, с которым поздравляем — значение переменной S1¤.
— И это значение придется менять, если захочу поздравить не с днем рождения, а, например, с окончанием школы?