мерация строк у QBasic в общем случае не нужна, а вместо номера строки можно использовать символьную метку.

Если пустить такую программу командой RUN, то получим: X= 1.414214 i= 3

Эти результаты совпадают с ручным вычислением по описанному алгоритму. Поздравляем вас с первой работающей программой!

4.7.4. Циклы и коды ASCII в QBasic

Мы уже не раз упоминали коды ASCII. Настала пора познакомиться с ними более подробно, а заодно рассмотреть и более совершенную организацию циклов в QBasic.

Начнем с циклов. Уже первые версии языка Basic имели следующую конструкцию для создания циклов с заданным числом их повторения:

FOR I = Nначальное TO Nконечное Тело цикла

NEXT I

В этой конструкции управляющая переменная I меняется от начального значения Nначальное до конечного Nконечное с шагом, равным +1. При этом каждый раз выполняется тело цикла, расположенное между строкой с оператором FOR (для) и оператором выхода из цикла NEXT (следующий). Как только I становится равным N, тело цикла выполняется последний раз и происходит переход к следующей за этой конструкцией строке программы.

Теперь нам нетрудно разобраться с простой программой построения таблиц ASCII, представленной на рис. 4.36.

Эта простая программа имеет целый «букет» интересных особенностей. Так, видно, что оператор PRINT “Комментарий” выводит на экран дисплея текст комментария. Пустой оператор PRINT дает вывод пустой строки – иначе, перевод строки.

Далее в программе имеется подпрограмма вычисления в двойном цикле десятичного кода (I+J) и вывода его вместе со значением соответствующего символа - Conv:. Преобразование кода в символ осуществляет функция CHR$(I+J). При этом с помощью логических условий вывод осуществляется только для кодов, начиная с 32, коды с меньшими значениями являются управляющими и могут вызывать необычные эффекты, например, перевод строки, подачу звукового сигнала и т.д. Вызов подпрограммы осуществляется операторами

COSUB Conv.

Подпрограмма преобразования вызывается два раза для кодов от 0 до 127 и от 128 до 255. Это соответствует выводу основной и аль-

190

тернативной таблиц ASСII. Перед выводом каждой таблицы экран очищается оператором CLS.

Рис. 4.36. Программа построения таблиц ASCII в окне редактора программ интегрированной системы QBasic

Буквально несколько слов об интерфейсе QBasic, который детально изучается на практических занятиях. Это стандартный интерфейс в виде окна с полем редактирования программы и меню. В поле окна видны линейки прокрутки для просмотра больших программ, которые управляются мышью. Меню содержит ряд пунктов, активизация которых создает выпадающие меню (подменю). Среди них есть подменю Run, используемое для запуска введенной программы - командой Start. Она ведет к выводу на экран основной таблицы кодов и символов ASCII:

0

 

1

 

2

 

3

 

4

 

5

 

6

 

7

 

8

 

9

 

10

 

11

 

12

 

13

 

14

 

15

 

16

 

17

 

18

 

19

 

20

 

21

 

22

 

23

 

24

 

25

!

26

"

27

#

28

$

29

%

30

&

31

'

32

(

33

34

35

36

37

38

39

40

41

)

42

*

43

+

44

,

45

-

46 .

47

/

48

0

49

1

50

2

51

3

52

4

53

5

54

6

55

7

56

8

57

9

58

:

59

;

60

<

61

=

62

>

63

?

64

@

65

A

66

B

67

C

68

D

69

E

70

F

71

G

72

H

73

I

74

J

75

K

76

L

77

M

78

N

79

O

80

P

81

Q

82

R

83

S

84

T

85

U

86

V

87

W

88

X

89

Y

90

Z

91

[

92

\

93

]

94

^

95

_

96

`

97

a

98

b

99

c

100 d

101 e

102 f

103 g

104 h

105 i

106 j

107 k

108 l

109 m

110 n

111 o

112 p

113 q

114 r

115 s

116 t

117 u

118 v

119 w

120 x

121 y

122 z

123 {

124 |

125 }

126 ~

127

191

Вид первых 32 символов может быть разным на разных ПК, поскольку эти символы относятся к управляющим. Вывод их можно блокировать, задав С=32. По команде символьного ввода INPUT$(1) вывод останавливается до нажатия любой клавиши. После этого будет выведена альтернативная таблица (в деталях эта таблица может иметь различные виды в зависимости от применяемого ПК):

128

Ђ

129

Ѓ

130

131

ѓ

132

133

134

135

136

137

138

Љ

139

140

Њ

141

Ќ

142

Ћ

143

Џ

144

ђ

145

146

147

148

149

150

151

152

 

153

154

љ

155

156

њ

157

ќ

158

ћ

159

џ

160

Ё

161

Ў

162

ў

163

Ј

164

¤

165

Ґ

166

¦

167

§

168

169

©

170

Є

171

«

172

¬

173

-

174

®

175

Ї

176

°

177

±

178

І

179

і

180

ґ

181

µ

182

183

·

184

ё

185

186

є

187

»

188

ј

189

Ѕ

190

ѕ

191

ї

192

А

193

Б

194

В

195

Г

196

Д

197

Е

198

Ж

199

З

200

И

201

Й

202

К

203

Л

204

М

205

Н

206

О

207

П

208

Р

209

С

210

Т

211

У

212

Ф

213

Х

214

Ц

215

Ч

216

Ш

217

Щ

218

Ъ

219

Ы

220

Ь

221

Э

222

Ю

223

Я

224

а

225

б

226

в

227

г

228

д

229

е

230

ж

231

з

232

и

233

й

234

к

235

л

236

м

237

н

238

о

239

п

240

р

241

с

242

т

243

у

244

ф

245

х

246

ц

247

ч

248

ш

249

щ

250

ъ

251

ы

252

ь

253

э

254

ю

255

я

Первые версии языка Бейсик имели около двух десятков операторов и функций. Практически все они использованы в описанных выше простых программах. Современные версии Бейсика, например, тот же Qbasic, имеют свыше 200 операторов и функций и позволяют, хотя и с разной эффективностью, готовить любые программы: системные, для обработки текстов, для выполнения математических вычислений, для программирования игр и построения графиков и даже для создания анимационной графики. Достаточно полное описание

QBasic можно найти в книгах [5, 27], а по Visual Basic - в [28, 29].

4.7.5. Графические возможности QBasic

QBasic имеет минимум средств реализации цветной машинной графики. Это операторы задания типа экрана SCREEN, очистки экрана CLS, локализации вывода надписей LOCATE, построения и гашения точки на экране дисплея PSET и PRESET, построения отрезков прямых LINE, дуг, окружностей и эллипсов CIRCLE и др.

Для знакомства с их действием составим простейшую обучающую программу на QBasic:

SCREEN 9: CLS

PSET (5, 5), 15

LOCATE 1, 3: PRINT "PSET (5,5),15" PRESET (5, 35), 15

LOCATE 3, 3: PRINT "PRESET (5,35),15" LINE (250, 5)-(350, 30)

LOCATE 1, 23: PRINT "(250,5)"

192

LOCATE 3, 43: PRINT "(350,30)"

LOCATE 2, 44: PRINT "LINE (250,5)-(350,30)" LINE (10, 50)-(250, 100), , B

LOCATE 6, 4: PRINT "LINE (10,50)-(250,100),,B" LINE (280, 50)-(580, 100), 15, B, 30

LOCATE 6, 39: PRINT "LINE (280,50)-(580,100),15,B,30" LINE (10, 130)-(60, 160), 15, BF

LOCATE 11, 10: PRINT "LINE (10,130)-(60,160),15,BF" PSET (320, 120): LINE -(400, 180), , , 30

LOCATE 9, 42: PRINT "PSET (320,120)"

LOCATE 11, 47: PRINT "LINE -(400,180),,,30" CIRCLE (60, 240), 50

LOCATE 22, 1: PRINT "CIRCLE (60,240)" CIRCLE (200, 240), 50, 15, 0, 2

LOCATE 22, 17: PRINT "CIRCLE (200,240),50,15,0,2" CIRCLE (180, 260), 50, 15, -.1, -2

LOCATE 23, 17: PRINT "CIRCLE (180,260),50,15,-.1,-2" CIRCLE (350, 230), 30, , , , 3

LOCATE 17, 47: PRINT "CIRCLE (350,230),30,,,,3" CIRCLE (460, 275), 70, , -.2, 5, .2

LOCATE 22, 48: PRINT "CIRCLE (460,275),70,,-.2,5,.2" LOCATE 24, 12

PRINT "Применение операторов PSET, PRESET, LINE и CIRCLE"; F$ = INPUT$(1)

Эта программа широко использует оператор LOCATE m, n для вывода тестовой надписи в заданное место окна, начиная со знакоместа в строке m и столбце n. Программа составлена так, что она демонстрирует запись на Бейсике того или иного графического оператора и затем иллюстрирует результат его исполнения (рис. 4.37).

Рис. 4.37. Примеры применения графических операторов QBasic

193

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

`Декларация процедуры построения изображения автомобиля

DECLARE SUB DrawTruck ()

`Подготовка массива изображения автомобиля

SCREEN 1, 0 CALL DrawTruck DIM truck%(629)

GET (20, 21)-(119, 70), truck% CLS `Очистка экрана `Построение фонового рисунка

LINE (0, 0)-(319, 148), , B CIRCLE (0, 0), 20

LINE (14, 14)-(50, 50)

LINE (19, 3)-(70, 10)

LINE (3, 17)-(12, 65)

`Цикл перемещения изображения автомобиля

FOR n = 1 TO 210

PUT (n, 100), truck%, PSET LINE (0, 148)-(319, 148)

NEXT n

F$ = INPUT$(1) END

`Процедура построения изображения автомобиля

SUB DrawTruck

CIRCLE (105, 60), 10 PAINT (105, 60), 3 CIRCLE (35, 60), 10 PAINT (35, 60), 3

LINE (21, 21)-(101, 40), , BF

LINE (21, 40)-(119, 60), , BF END SUB

В данной программе объявлена процедура DrawTruck построения изображения автомобиля (сам текст процедуры представлен под программой). Построенный в нижнем левом углу экрана силуэт автомобиля с помощью оператора GET запоминается в целочисленном массиве truck%. После этого строится фоновый рисунок - прямоугольник и солнышко в левом верхнем углу экрана (рис. 4.38).

Для перемещения силуэта автомобиля используется принцип мультипликации - строится на некоторое время изображение автомобиля, затем оно стирается и снова строится чуть правее (рис. 4.38). Для этого в программе организован цикл таких построений FOR-

194

NEXT. В этом цикле с помощью оператора PUT выводится силуэт автомобиля в разных местах экрана.

Рис. 4.38. Конечный кадр перемещения автомобиля

Методические указания

Описание большинства программ этой главы не является исчерпывающе полным. По каждой из описанных программ опубликованы обширные справочники и руководства пользователя, по объему намного превосходящие данное учебное пособие. Тем не менее выше были даны сведения, вполне достаточные для начала работы с программами и их обычного (не профессионального) применения.

10 главных вопросов

1.Что такое электронная таблица и какими параметрами она характеризуется?

2.Что может делать табличный процессор Excel?

3.Как строятся графические диаграммы в Excel?

4.Что такое база данных и системы управления базами данных?

5.Какими возможностями обладает СУБД Access?

6.Как готовятся презентации в PowerPoint?

7.На каких принципах основан компьютерный перевод?

8.Что такое компьютерные вирусы и как с ними бороться?

9.Что вы знаете о языках программирования ПК?

10.Какими средствами обладает язык программирования QBasic?

195

Соседние файлы в папке Новые информационные технологии. Часть 2. Программное обеспечение персонального компьютера