Текст книги ""Учебник QBasic""
Автор книги: Автор Неизвестен
Жанры:
Руководства
,сообщить о нарушении
Текущая страница: 2 (всего у книги 2 страниц)
10 PRINT "Хочу каникулы!": END
20 PRINT "Хочу учиться!"
3. Оператор цикла FOR...TO...NEXT... позволяет реализовать циклический алгоритм, когда часть программы может быть выполнена много раз подряд. FOR...TO... – начало цикла, NEXT... – конец цикла.
То, что стоит между началом и концом цикла, называется телом цикла. Иногда также применяются вложенные циклы, то есть циклы могут быть вложенными один в другой.
FOR X=A TO B STEP H
...................
NEXT X
Здесь X – переменная, A – начальное значение переменной, B – конечное значение переменной, H – шаг, с которым меняется переменная. Если шаг STEP H отсутствует, то по умолчанию шаг H=1. При этом переменная X называется счётчиком цикла. Повторение участка программы с шагом H происходит до тех пор, пока X
Пример 1: Напечатать на экране текст 20 раз.
CLS
FOR X=1 TO 20
PRINT "С Новым Годом!"
NEXT X
Пример 2: Вычислить сумму n первых членов ряда S=1+1/4+1/9+...+1/n^2
CLS
INPUT "Введите число членов ряда: n=", n
FOR i = 1 TO n
S = S + 1 / i ^ 2
NEXT i
PRINT "Сумма n первых членов ряда равна: S=", S
Пример 3: Нарисуйте 15 разноцветных концентрических окружностей.
SCREEN 7
FOR i = 1 TO 15
CIRCLE (160, 100), i * 6, i
NEXT i
Пример 4: Разлинуйте экран в клеточку.
SCREEN 7
FOR i = 1 TO 32
LINE (0, 10 * i)-(320, 10 * i), 15
LINE (10 * i, 0)-(10 * i, 200), 15
NEXT i
Примеры 5,6 : Одновременное использование циклического и условного операторов. Вычисление функций, имеющих ограничения в области определения.
Примечание: Оператор IF...THEN...ELSE в QBasic должен быть записан в одну строку!
Пример 5.
CLS
REM Вычислить функцию y=1/(x^2-5*x-6)
FOR x = -10 TO 10
IF x ^ 2 – 5 * x – 6 = 0 THEN PRINT "При x=-1, x=6 функция не определена!"
ELSE y = 1 / (x ^ 2 – 5 * x – 6)
PRINT "x="; x, " y="; y
NEXT x
Пример 6.
CLS
REM Вычислить функцию y=1/SQR(x^2-3*x+2)
FOR x = -5 TO 5
IF x >= 1 AND x <= 2 THEN PRINT "При 1<=x=<2 функция не определена!"
ELSE y = 1 / SQR(x ^ 2 – 3 * x + 2)
PRINT "x="; x, " y="; y
NEXT x
чебники: / QBasic - №03 - Некоторые полезные команды QBasic /
Оператор LOCATE a, b – указывает позицию экрана (a-строка, b-столбец), начиная с которой будет печататься текст или число. Обычно используется перед оператором PRINT. Пример: LOCATE 4, 10: PRINT "Здравствуй, мир!"
Оператор SWAP X1, X2 – заставляет переменные X1 и X2 обменяться своими значениями. Пример:
X = 3
Y = 5
SWAP X, Y
Директива FILES выдает список подкаталогов и файлов в текущем каталоге. Кроме того, выдается свободная память на жестком диске.
Директива SHELL осуществляет сеанс связи с MS-DOS. Возвращение обратно из DOS в QBasic – команда EXIT.
Кроме того, директива SHELL "name" позволяет запускать программу name.exe или name.com, указанную в кавычках. Эта программа должна находиться в текущем каталоге, там же, где и *.bas файл. Расширение exe или com можно не указывать.
Учебники: / QBasic - №03 - Графические операторы в QBasic /
1. SCREEN N – этот оператор очищает экран и задает графический режим, где N определяет тип графического режима: N=1,7,8,9,12.
При N=12 в операторе COLOR цвет фона не задается. При N=7 режим экрана 320x200 пикселей и 16 цветов. Режим SCREEN 7 используется весьма часто.
Если задан оператор SCREEN N, то оператор CLS можно не использовать.
2. COLOR C1, C2. COLOR – оператор, задающий цвет текста и фона, где C1 задаёт цвет текста, а C2 – цвет фона. C1, C2=0-15.
Пример использования этого оператора – COLOR 14, 1
3. Рисование точки: PSET (X, Y), C, где X,Y – координаты точки, C – цвет точки. C=0-15. X=160, Y=100 – координаты центра экрана для режима SCREEN 7.
Пример: PSET (160, 100), 10
4. Оператор стирания точки: PRESET (X, Y)
5. Рисование линии: LINE (X1,Y1)-(X2,Y2), C. Здесь X1,Y1 и X2, Y2 – координаты концов линии, C-цвет. Пример: LINE (30, 100)-(120, 150), 10
6. Рисование прямоугольной рамки:
LINE (X1,Y1)-(X2,Y2), C, B. Здесь X1,Y1 и X2,Y2-кординаты концов левой диагонали, C-цвет. Пример: LINE (90, 110)-(140, 170), 10, B
7. Рисование закрашенного прямоугольника:
LINE (X1,Y1)-(X2,Y2), C, BF. Здесь X1,Y1 и X2,Y2-кординаты концов левой диагонали, C-цвет. Пример: LINE (90, 110)-(140, 170), 12, BF
8. Рисование окружности: CIRCLE (X, Y), R, C
Здесь X,Y – координаты центра, R – радиус, C – цвет.
Пример: CIRCLE (160, 110), 60, 13
9. Рисование закрашенной окружности:
CIRCLE (X, Y), R, C
PAINT (X, Y), C1, C2. Здесь PAINT – оператор закрашивания. X,Y – координаты точки внутри закрашиваемой области, C1 – цвет закрашивания, C2 – цвет линии границы.
Пример:
CIRCLE (160, 130), 50, 13
PAINT (160, 110), 11, 13
10. Рисование дуги и сектора: CIRCLE (X, Y), R, C, Ф1, Ф2
Здесь Ф1, Ф2 начальный и конечный углы дуги в радианах. У сектора перед Ф1 и Ф2 стоит знак минус:
CIRCLE (X, Y), R, C, -Ф1, -Ф2. Пример (pi=3.14159):
CIRCLE (160, 140), 70, 11, pi / 4, 3 * pi / 4
CIRCLE (160, 140), 60, 10, -pi / 4, -3 * pi / 4
11. Рисование эллипса: CIRCLE (X, Y), R, C, , , K
Здесь K – эксцентриситет эллипса. K<1-эллипс вытянут вдоль большой оси. K>1-эллипс вытянут вдоль малой оси.
Пример: CIRCLE (160, 100), 70, 15, , , 0.5
Пример графики на QBasic: Квадрат, три концентрические окружности и точка. Программа имеет вид:
SCREEN 7
COLOR 14, 8
PRINT "Пример графики на QBasic:"
LINE (100, 50)-(220, 150), 13, B
CIRCLE (160, 100), 20, 11
CIRCLE (160, 100), 30, 12
CIRCLE (160, 100), 40, 14
PSET (160, 100), 15
END
чебники:
/ QBasic - №03 - Установка цветов в операторе COLOR QBasic /
Число Цвет
0 Черный
1 Синий
2 Зеленый
3 Голубой
4 Красный
5 Фиолетовый
6 Коричневый
7 Серый
8 Темно-серый
9 Светло-синий
10 Светло-зеленый
11 Светло-голубой
12 Светло-красный
13 Светло-фиолетовый
14 Желтый
15 Белый
Учебники:
/ QBasic - №03 - Некоторые сочетания цветов
в операторе COLOR QBasic /
1) 14, 8 – желтый на темно-сером фоне;
2) 1, 7 – синий на светло-сером фоне;
3) 5, 14 – фиолетовый на желтом фоне;
4) 4, 11 – красный на голубом фоне;
5) 5, 10 – фиолетовый на светло-зеленом фоне;
6) 15, 5 – белый на фиолетовом фоне;
7) 14, 1 – желтый на синем фоне;
8) 15, 1 – белый на синем фоне;
9) 8, 11 – темно-серый на голубом фоне;
10) 1, 15 – синий на белом фоне.
Учебники: / QBasic - №03 - Вопросы ( к урокам ) /
1. Что такое математическая модель?
2. Какие бывают виды моделей? Приведите примеры физических моделей.
3. Что представляет собой процесс решения задачи на ЭВМ?
4. Что такое программирование и программа?
5. Какие требования предъявляются к программе и какие у неё свойства?
6. Что такое язык программирования и какие языки программирования Вы знаете?
7. Что такое алгоритм и какие он имеет свойства?
8. Какие алгоритмы Вы знаете?
9. Что такое исполнители алгоритмов?
10. Что такое ветвление и цикл? Что такое переменная? Какие бывают типы переменных?
11. Что такое метод последовательной детализации?
12. Что такое транслятор, компилятор и интерпретатор?
Учебники: / QBasic - №03 - Задачи ( к урокам ) /
1. Нарисуйте блок-схему линейного алгоритма. Приведите пример программы с линейным алгоритмом на языке QBasic.
2. Нарисуйте блок-схему разветвляющегося алгоритма. Приведите пример программы на QBasic с разветвляющимся алгоритмом.
3. Нарисуйте блок-схему циклического алгоритма. Приведите пример программы на QBasic с циклическим алгоритмом. Вычислите сумму первых n членов арифметической прогрессии.
4. Используя графические операторы QBasic, создайте простейшие изображения геометрических фигур.
Учебники: / QBasic - №04 /
- Введение.
- Оператор Print.
– Как начать и закончить программу (Cls, End).
- Комментарии к программе (Rem и апострофы ).
- Ввод данных (Input).
- Сравнение (If, Then, Else).
Учебники: / QBasic - №04 - Глава 1 /
Ну с чего вообще слуедует начать. Нужно купить qbasic и установить его. Надеюсь вы с этим справитесь сами, так как это не так уж и сложно 8-). Хочу вас сразу огорчить, чтоб вы не думали, что если вы научились програмировать на qbasic, то вы стали супер пупер прогером– это не так, так как qbasic считается самым легким и в наши дни устаревшим языком, но для общего развития он нужен. Так для чего нам надо его знать спросите вы ? 8-) А я отвечу: для того чтобв вы привыкли вообще програмировать, чтоб вы научились писать программы, так как все языки по сути похожи(алгоритмы решений по крайней мере), различаются они только операторами.8-) Хочу сразу заметить что он на английском языке.8-) Ну вот это наверное и все. Так что запасайтесь терпением и усердно изучайте его. Желаю вам его выучить в совершенствею 8-).
Учебники: / QBasic - №04 - Глава 2 /
Словарь qbasic содержит около 200 ключевых слов,каждое из которых обозначает выполнение определенного действия. Многие ключевые слова вместе с допролнительными параметрами формируют операторы, из которых и состоит текст программы.Вот Print и есть пример такого слова.При выполнение данного оператора на экран выводиться текст, заключенный в двойные кавычки. 8-) Этот текст называется параметром оператора. Ну рассмотрим эту хрень на примере:
Print «Я хочу изучить Qbasic»
Здеся Print– это оператор, а выражение "я хочу изучить Qbasic"– является парамеотром. И на экране после запуска программы вы увидите надпись "я хочу изучить Qbasic"(ну конечно же без кавычек 8-))
Но у этого оператора есть еще две особенности. Вот первая из них: Этот оператор может выполнять арифметические действия. Рассмотрим на примере:
Print 2+3
После выполнения этой программы на экране высветиться 5 , а не 2+3, так что можно использовать qbasic вместо калькулятора 8-).
Вторая особенность заключается в том, что если вы поставите знак вопроса(?) И после этого нажмете на ENTER то он вопросительный знак превратиться в Print. Ну более подробно о нем поговорим попозже.Идите и попробуйте поработать с оператором Print. 8-).
Учебники: / QBasic - №04 - Глава 3 /
Если вы не один раз писали программына Qbasic то вы обратили внимание на то, что Qbasic не очищает экран автоматически при запуске новой программы, и после выполнения разных программ или многократного выполнения одной и той же на экране вывода результатов создается беспорядок. Поэтому программу разумно начинать с оператора очищения экрана CLS , который стираетвсе предыдущие результаты выполнения программ.8-) Если после данного оператора используется оператор PRINT, то результат его выполнения будет распологаться в верхней части чистого экрана. Проверьте это, написав этот пример:
CLS
Print «Данный текст находиться в верхней части экрана»
Заметим что оператор CLS стирает данные только с экрана и не действует на на данные, хранимые в памяти компьютера. Как правило этот оператор 8-) помещается в начале программы– это хорошая привычка и прекрасный стиль программирования(так пишут во всех учебниках , а мне честно сказать как то по барабану где его поставвить 8-)) Но ниче не мешает в случае необходимости использовать его в произвольном месте программы.Ну это все касалось того,с чего начинается программа 8-). А теперь перейдем к тому ка закончить программу. Оператор END– еще один пример ключевого слова– прекращает выполнение программы. В случае его отсутствия Qbasic сччитает, что программа заканчивается после последней строки(вспомните ппограммы из одной строки 8-) например какие я писал об операторе PRINT ),но END весьма полезен при необходимости прервать выполнеие программы. Оператор END может и не быть последним оператором программы. Текст может продолжаться и после данной команды, но выполнение ее будет прервано сразу при встрече END .Давайте посмотрим еще один пример:
cls
Print «Это моя программа»
Print «я создал ее сам»
End
Нажатием клавиш Shift+F5 мы запускаем программу на выполнение. И тогда на экране мы увидим:
Это моя программа
Я создал ее сам
Теперь нажмем любую клавишу чтбы вернуться в режим редактирования текста. И изменим программу:
Cls
Print «Это моя программа»
End
Print «Я создал ее сам»
End
При выполнение нового варианта программы результат будет иным. Вы можете запускать программу любое количество раз– но второй оператор PRINT все равно работать не будет. Оператор END прерывает выполнение программы и у нас будет выводиться только:
Это моя программа
Qbasic имеет три оператора, которые прерывают выполнение программы–END,Stop и System. Когда Qbasic встречает команды End и System, он закрывает вусе файлы и прекращает выполнение программы. Команда Stop отличается тем, что оставляет текущие файлы открытыми, временно приостанавливает выполнение и возвращает на экран текст программы. При следующем запуске выполнение программы начнется с оператора, следующего за оператором Stop.Но лучше всего использовать оператор End 8-).
Учебники: / QBasic - №04 - Глава 4 /
Программу, состоящую из неколько строк, понять легко. Но разобратья в логике длинной и сложной программы, особенно созданной другим програмистом,очень трудно. Для пояснения текстов программ в программировании 8-) используются коентарии. Они не помешают при создании программы, а при повторном обращении к данной раьоте через несколько месяцев окажутсяпросто необходимыми, поскольку помогут вспомнить назначение каждой части программы.
Коментарии должны быть краткими и простыми. Они могут содержать 8-) дату создания программы или ее модификации, краткое описание назначения программы и любую другую информацию, которую вы сочтете необходимой или полезной. При выполнении программы Qbasic игнорирует все коментарии, так что они никак не влияют на ее работу и результат. Для включения в тексткомментария можно использовать либо оператор Rem, либо апострофы.
Оператор Rem определяет строку, которую он начинает, как строку комментария.Он имеет следующую 8-) форму:
Rem текст ,
где текст-любая последовательность символов.
Вы можете любую программу начинатьс комментария, который будет служить и заголовком:
Rem Программа 111
Rem Данная программа считает пробелы
Cls
Print «'_' Один пробел»
Print «'__' Два пробела»
Print «'___' Три пробела»
End
Комментарий можно помещать также в любом местепрограммы. Знак апострофа также начинает комментарий, но его можно использовать не только с начала строки, но и после операторов. Все,что находиться после апосторофа в этой строке, составляет комментарий, например 8-) :
Print «Далова чувак» ' Приветствует пользователя
Однако существуетдва случая, когда апостроф не определяет комментарий. Во-первых, когда апостроф является частью текста, что особенно характерно для английского языка. В русском языке апостроф практически не используется, но может встречаться в специальных текстах по физике и и математике, для обозначения географических координат и т. д.ну например 8-) :
Print «i'm a user»
Print «Вычисление об'ема куба»
Print «56'30' северной широты»
Оператор Print выводит всю фразу, стоящую в двойных кавычках, поэтому часть строки после апострофа не является комментарием(смотри также программу 111 выше).Во-вторых, апостроф не определяет комментарий, если используется в операторе Data, с которым я вас может быть познакомлю попозже 8-)Хочу дать вам совет:не жалейте времени на комментарии к программе. Разобраться в плохо документированной программе не легче, чем написать ее заново(Возьмите случай когда вы пишите что нибудь по пьяне 8-) а с утра и сами не разберете что вы хотели 8-)).
Пока ваши программы короткиеи полностью помещаются на экране, заботиться об экономии места не имеет смысла.Но со временем они станут значительно длиннее. Чтобы сократить количество строк программы, вы можете разместить несколько коротких операторов в одной строке. Эти операторы необходимо разделять знаком двоеточия(:). Например, программу 111 можно переписать следующим образом:
Rem Программа 333
Rem Данная программа считает пробелы
Cls
Print «'_' Один пробел» : Print «'__' Два пробела»
Print «'___' Три пробела» : End
Результат выполнения программ 111 и 333 одинаков и выглядит так:
'_' Один пробел
'__' Два пробела
'___' Три пробела
Познакомившись с более сложными операторами, вы врядли захотите часто пользоваться таким способом их размещения в программе.Помещать в одной строке целесообразно только группы коротких и логических связанных между собой операторов. 8-).
Учебники: / QBasic - №04 - Глава 5 /
Какими же способами можно ввести данные в программу? Во-первых , эта проблема решается с помощью оператора присваивания. Вот пример программы с оператором присваивания:
Rem программа суммирования двух чисел
Cls
Number1=3
Number2=7
summa=number1+number2
Print «number1=»;number1
Print «number2=»;number2
Print"summa=";summa
end
После запуска этой программы мы увидим на экране это:
Number1=3
number2=7
Summa=10
Сразу можно понять то, чтобы вычислить сууму другой пары чисел, мы должны будем вернуться в окно редактора и изменить программу.Решение возможное, но не самое лучшее. Как раз для этого случая в Qbasic вы можете присвоить переменной значение непосредственно с клавиатуры во время выполнения программы. Простейшая форма оператора, дающего вам возможность это сделать:
INPUT number,
где number-имя переменной, для которой требуется ввод значения
Команда INPUT NUMBER является уже достаточой командой, при встрече с которой программы выполняет следующие действия:1)После запуска программы на экране появиться знак вопроса.2) Программа приостанавливает работу и ждет, когда вы наберете какие-либо значение на клавиатуре. Нажатие клавиши ввода (то бишь ENTER)сообщает программе, что ввод окончен.3) Введенное значение присваивается переменной. 4)Компьютер продолжает выполнение программы, используя введенное значение. Значение, которое было у данной переменной раньше, комп уже не воспринимает 8-). Теперь рассмотрим это напримере, что бы вам было понятно: Условие:Дан треугольник,его высота и основание. Написать ппрограмму, которая считала бы его плошадь.Ну для начала введем новое обозначение: пусть а– будет основанием треугольника, h-высотой треугольника, а s– площадью треугольника и площадб треугольника равна одна вторая на высоту и на основание. Теперь можно приступить к решению програамы, обьяснять ее не буду так как она слишком легкая и вы сами должны подумать как она работает 8-):
rem программа считающая площадь треугольника
Input a
Input h
S=(1/2)*a*h
Print «Ploshad treugolynik=»; s
end
Ну надеюсь вы сами разберетесь что к чему. Надо еще отметить одно свойство оператора Input: Вот например когда у вас в программе много разных переменных, и вводить их надо в такой же последовательности, как вы написали в программе, и что же вы должны что ли выучить последовательность переменной. Конечно же нет 8-) на кой нам лишний геморой. Мжно просто написать просто так:Input "текст "; a.Где a– будет переменной, а "текст"– описание переменной. Ну вот к примеру, в программе где мы находили площадь треугольникамы писали Input h Для того чтобы ввести высоту 8-) и когда мы запускали программу у нас просто высвечивался значок вопроса(чтобы мы ввели переменную). А если мы напишем: Input "высота"; hТо он бы нам написал после запуска не просто вопросительный знак , а:высота?Ну что вы видите как полезно это свойство оператора Input. Надо только запомнить, что описание пишется в двойных кавычках и отделяется от переменной точкой запятой(;)Ну посмотрите как написал это я раньше. Кстати надо еще отметить, что оператор Print обладает таким же свойством, как и Input. Зачем спросите вы 8-) а я отвечу: Для того же зачем и у Input(Вот например у вас ответов десять и после выполнения программы он вам выведет десять чисел и фиг знает, где какое число. Надо помнить что тоже надо отделять точкой с запятой).Вот пример:Print "Площадь треугольника равна=";s.Ну согласитеся что так на много понятней и легче.Кстати хочу вас поздравить теперь вы можете, как и вводить, так и выводить переменные, а следовательно уже можете писать небольшие легенькие програмки 8-) я вам советую по находить разные плошади и обьемы фигур 8-). Дальше мы будем изучать уже сравнение чисел, массивы и циклы , но на этом пока все 8-) Тренируйтесь 8-).
Учебники: / QBasic - №04 - Глава 6 /
Сегоня я хочу поговорить с вами об операторах сравнения. Некобходимость сравнивать значения переменных между собой достаточно очевидна. Программа должна,например, проверить правильность введенного с клавиатуры значения или определить, в каой диапозон попала вычисленное значение переменной. За сравнение в Qbasic отвечает оператор If . Он записывается в слудуещем виде:
If условие then операторы 1 else операторы 2
Атеперь давайте разберемся что для чего на примере какойнибудь задачи(а то теория тупая и нудна):Дано число, вычислить его квадрат если оно больше 5 и куб если оно меньше 5. вот прошграмма к этой задачи:
видите мы сначала вводим условие, а потом в зависимости удовлетворяет или нет, решаем дальше программу. Да кстати чуть не забыл 8-), Каждый раз, когда мы пише опреатор ifмы должны закрыть его,когда он кончается,написав end if. Чтобы лучше понять,что когда писать надо запомнить, что if-если,then-тогда,else– иначе. Возможны множества разных случаев с опреатором if. Давайте рассмотрим их на примере: в первом случае мы раасмотрели когда у нас одно условие, но может быть несколько , тогда мы используем and (переводится как и) или or (переводится как или).Рассмотрим это на примере:дано два числа(пусть a и b) если a>5 и b<4 тогда найти их разность, а если нет тогда сумму:
Если мы ставим andмежду двумя условиями, то тогда условие общее будет выполняться только в том случае, когда будут выполняться два маленьких условия(то есть если хотя бы одно из условие не выполняется то общее условие не выполняется 8-) ). А вот если мы поставим между маленькими условиями OR (например,a>5 or b<4), то тогда нам достаточно чтобы выполнялось одно маленькое условие, посмотрим: Дано число (пусть будет a), если a>8 или a<2 подсчитать его квадрат, иначе куб:
Надеюсь вы поняли различия 8-).Оператор ifвесьма полезен в Qbasic: в сочетании с логическими операциями он раширяет возможности программы, позволяет организовывать двухуровневые проверки. Оператор if может быть использован и для создания многоуровневых проверок, что позволяет учитывать больше возможных вариантов. Многоуровневая проверка может быть организована двумя способами: путем использования вложенных операторов if, и путем использования многоуровневых построений(болеечем в одну строку) операторов if. Схема вложенных опреторов if имеет вид: if условие 1 then if условие 2 then операторы 1 else операторы 2 else операторы 3 . Ну вот такой вид имеет двухуровневая прверка. На примере, показывать это не буду, просто покажу как это записывается в программе:
. Главное надо помнить, что скока раз вы написали If, столько же раз вам надо закрыть его, то есть написать End If. Ну на этом я думаю и хватит 8-).
Тренируйтесь. :) и вперед до Pascal and C++ :)
Источник: