- •Программирование на qbasic.
- •Алгоритм
- •Введение в язык программирования Qbasic
- •Среда программирования qBasic.
- •Алфавит языка
- •Выражения и операции
- •Оператор присваивания
- •Операторы ввода-вывода
- •1. Какие из следующих последовательностей символов являются идентификаторами, а какие нет.
- •2. Записать по правилам Бейсика следующие выражения:
- •3. Переписать следующие выражения, записанные по правилам Бейсика, в традиционной математической форме:
- •Операторы перехода
- •Ветвление в алгоритмах и программах. Операторы условного перехода
- •If условие then блок операторов 1 else блок операторов 2
- •Условный оператор неполной альтернативы:
- •If условие then блок операторов
- •Циклы в алгоритмах и программах
- •Строковые переменные
- •Массивы
- •Сортировка массива по возрастанию
- •Подпрограммы
- •Работа с файлами
- •Комбинированные типы.
- •Операторы графики
Циклы в алгоритмах и программах
В языке QBASIC предусмотрено два основных способа организации циклов:
повторение блока команд заданное количество (число) раз (цикл со счетчиком);
циклическое повторение блока команд, пока выполняется (или не выполняется) некоторое условие.
Цикл со счетчиком (FOR... NEXT) ДЛЯ... СЛЕДУЮЩИЙ
Оператор цикла реализует алгоритмическую конструкцию, в которой определенные действия повторяются многократно.
Общий вид оператора цикла со счетчиком:
FOR K=K1 TO K2 STEP K3 - заголовок цикла
- тело цикла -
NEXT K - конец цикла
То, что стоит между началом и концом цикла, называется телом цикла. Иногда также применяются вложенные циклы, то есть циклы могут быть вложенными один в другой.
Здесь FOR - имя оператора (переводится "для"); К - переменная (обычно целого типа), называемая переменная управления циклом ; К1, К2, К3 - начальное, конечное значения и шаг изменения величины К соответственно, могут быть представлены любыми арифметическими выражениями; ТО, SТЕР - переводится - "до", "шаг"; тело цикла - любые операторы языка Бейсик; NEXT - оператор (переводится "следующий").
Совместная работа операторов и определяется схемой:
Иначе говоря, операторы FOR и NEXT обеспечивают изменение значения К от К1 до К2 с шагом К3 и выполнение оператора (операторов), заключенных между FOR и NEXT, при каждом значении К.
Ограничения:
Изменять значение величин К1, К2, К3 в процессе выполнения операторов FOR и NEXT не рекомендуется.
Вход в цикл, минуя оператор FOR, в Бейсике запрещен.
Примеры решения задач
Пример 1. Выведите на экран в столбик целые числа от 1 до 10.
CLS
FOR J=1 TO 10 STEP 1
PRINT J
NEXT J
END
Пример 2. Вычислите сумму целых чисел от 1 до 10
CLS: S=0
FOR I=1 TO 10 STEP 1
S=S+I
NEXT I
PRINT " "; S
END
Пример 3. Вычислите значение функции y=2X2-3X+5 на отрезке (-3, 3) с шагом 1,5
CLS : PRINT "Y"; "X"
FOR X=-3 TO 3 STEP 1.5
Y=2*X^2-3*X+5
PRINT Y,X
NEXT X
END
Пример 4. Вычислите сумму S= 2+4+ ...+2 N , если N вводится с клавиатуры CLS : S=0
INPUT «введите « N»; N
FOR I = 1 TO N
S=S + 2 *N
NEXT I
PRINT «сумма = «; S
END
Пример 5 Выведите слово «IBM» 10 раз, чтобы получилась диагональ
CLS
FOR K =5 TO 15
LOCATE K, K
PRINT « IBM»
NEXT K
END
Пример 6. Напечатать на экране текст 20 раз.
CLS
FOR X=1 TO 20
PRINT "С Новым Годом!"
NEXT X
Пример 7. Вычислить сумму 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
Пример 8. Нарисуйте 15 разноцветных концентрических окружностей.
SCREEN 7
FOR i = 1 TO 15
CIRCLE (160, 100), i * 6, i
NEXT i
Пример 10. Разлинуйте экран в клеточку.
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
Одновременное использование циклического и условного операторов. Вычисление функций, имеющих ограничения в области определения.
Примечание: Оператор IF...THEN...ELSE в QBasic должен быть записан в одну строку!
Пример 11.
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
Пример 12.
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
Цикл WHILE... WEND (ПОКА... КОНЕЦ)
Конструкция WHILE... WEND (ПОКА... КОНЕЦ) позволяет выполнять блок команд до тех пор, пока значение выражения, заданного в WHILE - "Истина".
Общий вид оператора
WHILE логическое выражение
-- блок команд –
WEND
Работа операторов может определяться следующей схемой:
После завершения цикла управление передается команде, следующей за WEND.
Если при проверке условия окажется, что значение логического выражения - "Ложь", блок команд не будет выполнен ни разу.
С помощью WHILE... WEND можно организовать вложенные циклы - каждый со своими WHILE... WEND.
Ограничение: из этой конструкции нельзя выйти "досрочно", т.е. до завершения работы оператора.
Примеры решения задач.
CLS : I=1
WHILE I < 5
PRINT "I=" ; I;
I=I+1
WEND
На экране будет : I=1 I=2 I=3 I=4
Задачи по теме "Условный оператор" и "Оператор цикла"
Пример 1. Найти наибольшее из чисел (х+у)/2 и (х+у/2)для любых чисел х и у.
Пример 2. Вычислить значения функций для любых Х и Z
а)Y= (X-15)/(x-6) ;
б) Y= 2X-5/(7Z-4X);
с)
Y=
г)
Y=
д)
Y=
Пример 3. Заданы длины сторон треугольника - А, В, С, Определить, является ли треугольник равнобедренным.
Пример 4. Составить программу, выводящую на экран первые десять натуральных чисел.
Пример 5. Составить программу, печатающую таблицу квадратов первых десяти целых чисел в центре чистого экрана.
Пример 6. Вычислить значения функции
а) Y= 5*X2 -4X+11 на отрезке (-5,5) с шагом 1,5;
б)
Y=
на отрезке (-7, 7) с шагом 1;
в)
Y=
на отрезке (-6, 6) с шагом 0,5.
Пример 7. Выведите в столбик ряд натуральных чисел от 1 до 10.
Пример 8. Выведите на экран в столбик четные числа от 1 до 20.
Пример 9. Выведите на экран в строку нечетные числа от 15 до 20.
Пример 10. Найдите:
сумму целых чисел от 10 до 20;
произведение целых чисел от 20 до 20;
сумму нечетных чисел от 20 до 40;
произведение целых чисел от 20 до 40;
сумму четных чисел от 1 до 20;
произведение четных чисел от 1 до 20.
Пример 11. Выведите на экран 10 раз слово "PENTIUM" по диагонали.
Пример 12. Дана последовательность чисел, введенная с клавиатуры. Найдите сумму отрицательных членов этой последовательности и произведение положительных, количество отрицательных и положительных.
Пример 13. Составьте программу, выводящую на экран:
движение "*" по первой строке экрана;
движение "*" по последнему столбцу экрана;
движение "*" по диагонали.
Пример 14. Вычислите суммы, если N вводится с клавиатуры:
+
+…+
+
+…+
Пример 15. Вычислите произведения, если a и n вводятся с клавиатуры:
+
+…+
a*(a-n)*(a-2n)...(a-n*n);
2*4*6*...*(2*n) .
Пример 16. Определить является ли произвольное число кратным:
а) двум; б) трем; в) пяти.
Пример 17. Выведите на экран простые числа в диапазоне
а) от 1 до 20; б) от 20 до 100.
Пример 18. Определить является произвольное число простым.
