Реферат: Подпрограммы 33 Функции, определяемые пользователем 34 Работа со строковыми типами данных 36 Оператор line input 36
ОГАВЛЕНИЕ
Интегрированная среда QBASIC 3
Запуск и завершение QBASIC 3
Главное меню QBASIC 3
Встроенный справочник QBASIC 4
Формальные сведения о QBASIC 5
Алфавит QBASIC 5
Данные в языке QBASIC 5
Переменные 6
Переменные 6
Константы 7
Выражения в языке QBASIC 8
Арифметические выражения 8
Условные выражения 8
Логические выражения 8
Символьные выражения 9
Встроенные функции 9
Команды в языке QBASIC 11
^ Оператор комментариев 11
Оператор присваивания 11
Оператор ввода данных 11
Динамический ввод данных 11
Оператор вывода данных 12
Статический ввод данных 13
Команды управления ходом выполнения программы 14
Безусловная передача управления 14
Условная передача управления 14
Формат записи вложенных условных операторов 15
^ Множественный выбор (SELECT CASE) 16
Работа с датой и временем 16
Циклы 17
Цикл со счетчиком (FOR…NEXT) 17
Цикл WHILE … WEND 20
Вложенные циклы 22
Массивы 23
^ Одномерные массивы 23
Определение массивов 23
Заполнение массива 24
Порядок работы с массивами 24
Действия над элементами одномерного массива 24
Двумерные массивы 27
Основные понятия 27
Заполнение массива 27
Действия над элементами двумерного массива 28
Подпрограммы 33
Функции, определяемые пользователем 34
Работа со строковыми типами данных 36
^ Оператор LINE INPUT 36
Операции со строковыми данными 36
Функции для работы с текстами 36
Функция INKEY$ или как получить власть над клавиатурой 40
Графическая обработка данных 40
Оператор SCREEN 40
Оператор COLOR 41
^ Операторы PSET, PRESET 42
Прямые линии – отрезки 42
Рисование прямоугольников 43
Оператор CIRCLE 44
Оператор PAINT 46
Вывод текста в графическом режиме 46
Графическое “перо” DRAW 46
^ Интегрированная среда QBASIC Запуск и завершение QBASIC
QBASIC является приложением MS-DOS, которое нормально работает под Windows. Чтобы начать работу с QBASIC, надо запустить программу QBASIC.EXE.
Запускать QBASIC любым удобным способом:
Нажатием {Enter} в NC;
С помощью меню пользователя в NC;
Из папки {языки программирования}, ярлык {QBASIC}.
После запуска QBASIC на экране появится окно. Для снятия заставки и перехода в основное окно редактора нажмите {Esc}. Завершение работы – (Файл-Выход)
^ Главное меню QBASIC
Главное меню содержит несколько пунктов (Файл, Редактирование, Просмотр и т.п.). Для выбора пункта меню щелкнуть мышью на его название или нажать клавишу {Alt}.
После выбора пункта меню раскрывается нисходящее меню со списком команд данного пункта.
^ Пункт Файл
Новый. Работа с неозаглавленной заготовкой нового файла.
Открыть. Открыть существующий файл. В открывшемся окне необходимо найти имя существующего файла. Для перемещения по полям используйте мышь или клавишу {Tab}.
Сохранить. На диске сохраняется текущая версия вашей программы. При первоначальном сохранении файла необходимо присвоить имя создаваемому файлу.
Сохранить как… откроется стандартное диалоговое окно, в котором надо указать имя. Этой командой можно создать обновленную версию программы, сохранив старую в неприкосновенности.
Печать. Печать открытого файла на принтере.
Выход. Завершает работу QBASIC.
^ Пункт Редактирование
Можно переместить или скопировать выделенный фрагмент текста в другое место того же файла или в другой файл. Для выделения фрагмента необходимо подвести курсор к началу выделяемого участка, нажать {Shift} и, не отпуская ее, «закрашивать» участок.
^ Пункт Запуск
Запуск {Shift+F5}. Запуск программы с первой исполняемой команды.
Перезапустить. Подготовка программы к запуску с первой исполняемой команды. Эта команда удаляет все введенные вами данные и высвечивает первую исполняемую команду.
Продолжить{F5}. Работа возобновляется с той команды, на которой программа была остановлена.
^ Окно среды QBASIC
После запуска программы QBASIC, на экране появляется основное окно текстового редактора.
Основные операции с программой проводятся в окне редактора: набирается, редактируется текст, отлаживается программа и т. п.
Результаты своей работы программа выдает на выходной экран QBASIC, который “скрыт” под окном редактора. Выходной экран выдается и после завершения программы, - для возврата в окно редактора необходимо нажать любую клавишу.
F4 – универсальный переключатель между окном редактора и выходным экраном QBASIC.
^ Встроенный справочник QBASIC
{Shift+F1}- на экране появится окно системы помощи QBASIC. Для перемещения по пунктам кадра используют клавиши {Tab}, стрелки управления курсором, {PgUp}, {PgDn}.
Если в окне текстового редактора подвести курсор под какое-либо служебное слово и нажать{F1}, на экране появится раздел алфавитного указателя, поясняющий это слово.
Пример 1
CLS
INPUT”Введите фамилию”;F$
INPUT”Введите имя”;I$
RS$=F$+” “+I$
PRINT”Уважаемый (ая) ”;RS$;” ,я думаю, что мы с вами сработаемся”
END
Набрать текст программы;
Сохранить его на диск с именем prog1;
Запустить программу на выполнение;
Получить справку по оператору INPUT.
Пример 2
SCREEN 9
^ Color 1,5
Circle(200,180),100,6
Paint Step(0,0),7,6
Line(20,30)-(70,70),4,BF
Набрать текст программы;
Сохранить его на диск с именем prog2;
Запустить программу на выполнение;
Скопировать 3-ю и 4-ю строку и вставить после 5-ой
Внести изменение: вместо значения 200 поставить 400
Запустить программу на выполнение
^ Формальные сведения о QBASIC Алфавит QBASIC
Алфавит языка BASIC включает:
Все латинские прописные и строчные буквы;
Арабские цифры 0-9;
Знаки арифметических операций:^; *; /; +; -; \; MOD.
Знаки операций отношения: =; >; <; >=; <=; <>.
Разделители и прочие символы:
. – точка;
, - запятая;
; - точка с запятой;
: - двоеточие;
_ - пробел;
! – признак вещественной величины;
# - признак вещественной величины двойной точности;
% - признак целой величины;
& - признак длинной целой величины
$ - признак текстовой величины;
() – круглые скобки;
“ – кавычки;
‘ – апостроф.
Используются также буквы русского алфавита, но в текстовых константах или комментариях.
Д
Данные
Переменные
анные в языке QBASIC
Константы
Числовые
Текстовые
Не более 32 567 символов
Вещественные
Обычной точности не > 7 цифр (!)
Двойной точности не > 14 цифр (#)
Целая -32768 до 32767 (%)
Длинная целая –2147483647 до 2147483648 (&)
Целые
Помните! Разделителем целой и дробной частей является точка.
Например:
102! – константа, числовая, вещественная, обычной точности.
95966.46789# - константа, числовая, вещественная, двойной точности.
4326% - константа, числовая, целая.
“План на неделю” – константа текстовая. Заключается в кавычки.
Переменные
Переменная – это величина, значение которой может изменяться в процессе выполнения программы, обозначается именем (идентификатором).
Имя переменной – это произвольный набор символов, который может содержать о 1 до 40 символов. Первый символ должен быть латинской буквой, а остальные – латинские буквы или цифры. Регистр букв не имеет значения.
Примеры имен: A; dN; GodRozd; k1%; dlina!
Т Переменные
Символьные (A$)
Длинные целые (A&)
Целые (A%)
ип переменной BASIC различает пять типов данных. Когда записано с=a+b+2, BASIC должен знать, какой тип чисел имеется в виду. BASIC распознает тип переменной по суффиксу, т.е. по последнему символу в имени переменной.
П
^ Вещественные двойной точности (A#)
Вещественные обычной точности (A!, A)
Используется по умолчанию
рименение суффиксов не всегда удобно: они загромождают текст, да и ошибиться в них легко.
Поэтому в BASIC предусмотрен другой способ описания типа переменной.
Общий формат команды описания типа:
^ DEFINT X-X (целые числа, INTeger)
DEFLNG X-X (длинные целые числа, LoNG)
DEFSNG X-X (вещественные числа обычной точности, SiNGle)
DEFDBL X-X (вещественные числа двойной точности, DouBLe)
^ DEFSTR X-X (строки символов, STRing)
Комбинация X-X - диапазон букв. Вместо диапазона можно указать одну букву.
Например:
DEFLNG A-D, все переменные, имена которых начинаются с букв, лежащих в указанном диапазоне, т.е. с A до D, будут считаться длинными целыми (aRc, BT, DLINA и т.п.)
DEFSTR STR, переменная STR- строка символов.
Константы
Константы (числовые или строковые) не меняются в ходе исполнения программы. Значения констант записываются явно, числом или строкой символов. Например:
A%=12
Z$=”План на неделю”
n!=-54.2
Существует специальный оператор для описания констант.
Формат описания констант:
CONST имя переменной=константа
Например:
CONST F2=60, n%=12
Если переменная описана как константа с помощью CONST, QBASIC не позволит случайно изменить ее значение.
Пример:
CLS
DEFINT A-C
DEFLNG R
CONST G = 5
INPUT "Введите три значения"; A, B, C
R = A ^ 2 + B * C + G
PRINT "R="; R
END
Задание:
Набрать программу.
Запустить на выполнение.
В третьей строке внести изменение - DEF LNG заменить на DEFSNG.
В 6-ой строке внести изменение - * заменить на / .
^ Выражения в языке QBASIC
В языке QBASIC используются:
Арифметические выражения;
Условные выражения;
Логические выражения;
Символьные выражения.
^ Арифметические выражения
Операндами арифметического выражения могут быть переменные, константы, функции и другие арифметические выражения. В арифметических выражениях используются следующие арифметические операции.
^ Знак операции
Название
Пример
^
возведение в степень
X^Y
*
умножение
X*Y
/
деление
X/Y
+
сложение
X+Y
-
вычитание
X-Y
\
деление нацело
X\Y; 10\4 (ответ-2)
MOD
вычисление остатка от целочисленного деления
X MOD Y
10 MOD 3 (ответ-1)
Операции расположены в порядке уменьшения приоритета. Для изменения приоритета используются круглые скобки.
Н
;
апример:
х2 – х + 2 на языке QBASIC ( х ^ 2 – х + 2 ) / (х ^ 4+5*х^2+40)
х4+5х2+40
^ Условные выражения
Операндами условного выражения могут быть переменные, числа, функции, строки символов. Знаками отношения в условных выражениях служат:
= - равно;
>- больше;
< - меньше;
>= - больше или равно;
<= - меньше или равно;
<> - не равно.
Условное выражение принимает булево (логическое) значение: TRUE или FALSE.
Условные выражения широко используются в операциях ветвления и в организации циклов. Например:
IF k>0 THEN …
WHILE I=0 …
^ Логические выражения
Операндами логического выражения являются условные выражения, которые соединяются между собой знаками логических операций AND ("И", конъюнкция), OR ("ИЛИ", дизъюнкция), NOT (отрицание), например:
a+b>c AND d<>8
NOT(a>b)
Логическое выражение принимает булево (логическое) значение: TRUE или FALSE.
Частный случай логического выражения - условное выражение.
Так же, как и условные выражения, логические выражения применяются в операциях ветвления и в организации циклов, например:
IF d<>0 AND z$="V" THEN…
WHILE d=0 OR k>40…
^ Символьные выражения
Операндами символьных выражений являются строки символов. Для этих выражений определена лишь одна операция - конкатенация (соединение) строк. Знак операции - "+", а результат операции - новая строка символов. Например, "Оболочка "+"Windows" результата - " Оболочка Windows"
^ Встроенные функции
Функция
Назначение (математическая запись)
Пример/результат
^ Математические функции
ABS(арифм_выражение)
Модуль значения арифм_выражения(|X|)
ABS(-3) / 3
ATN(арифм_выражение)
арктангенс значения арифм_выражения
( arctgx )
COS(угол)
Косинус аргумента (угол в радианах)
( cosx )
SIN(угол)
Синус аргумента (угол в радианах)
( sinx )
SIN(PI/2) / 1
TAN(угол)
Тангенс аргумента (угол в радианах)
( tgx )
EXP(арифм_выражение)
Экспоненту значения арифм_выражения
(ex)
LOG(арифм_выражение)
Натуральный логарифм
( lnx )
SQR(арифм_выражение)
Корень квадратный из значения арифм_выражения ( X )
SQR(1.44) / 1.2
Функции преобразования числовых значений
FIX(арифм_выражение)
Целая часть арифм_выражения
FIX(24.3) / 24
FIX(-24.8) / -24
INT(арифм_выражение)
Наибольшее целое, которое меньше или
Равно значению арифм_выражения
INT(24.3) / 24
INT(-24,3) / -25
CINT(арифм_выражение)
Округляет значение арифм_выражения
по правилам арифметики
CINT(24.3) / 24
CINT(-24,8) / -25
CINT(-24,3) / -24
Например: Записать выражения на языке программирования QBASIC
Записать выражения на языке программирования QBASIC
;
tg2 x
A=
x+ sin x3
√|х-1| • ³√| у |
A=
;
(1+Y)(X+Y(X²+4))
1
ℓ -x-2 + (x²+4)
B =
1+cos(Y-Z)
х4
2 + sin2 Z
Домашнее задание:
B = х ( arctg2Z – l – (x + 3) )
^ Команды в языке QBASIC
Программа, написанная на любом языке программирования, представляет собой набор инструкций, описывающий процесс выполнения алгоритма задачи. Инструкции записываются по определенным правилам, предусмотренным требованиями языка. Инструкции исходной программы называются командами или операторами.
^ Оператор комментариев
Любую команду в программе можно снабдить поясняющим текстом - комментарием. Комментарии облегчают понимание текста программы. Комментарии можно записать двумя способами:
REM произвольный текст
' произвольный текст
На ход вычислений команда REM никакого влияния не оказывает.
Например:
REM вычисление функции
' вычисление функции
^ Оператор присваивания
Формат:
Имя переменной = выражение
Эта команда выполняется в два шага:
вычисляется значение арифметического или символьного выражения, указанного в правой части команды;
это значение присваивается переменной, записанной в левой части команды.
Например:
A = Y+X/Z²
^ Оператор ввода данных Динамический ввод данных
Формат:
INPUT "Сообщение", список переменных
При выполнении команды INPUT вычисления приостанавливаются и на экран дисплея выводится поясняющее сообщение, если вы его написали. В списке переменных через запятую указываются имена переменных, которые принимают вводимые данные.
Например:
^ Команда: INPUT"Введите коэффициент и код режима",B,KR$
Экран: Введите коэффициент и код режима
Курсор устанавливается следом за последним символом выведенного текста, и программа ожидает ввода данных. Вы должны через запятую набрать все данные и нажать клавишу {Enter}.
Если строка символов замкнута не запятой, а точкой с запятой, INPUT выводит следом за текстом символ "?" и устанавливает курсор через пробел после "?".
Например:
^ Команда: INPUT"Год рождения";GR$
Экран: Год рождения?_
Сообщение в INPUT можно опустить. Тогда на экран будет просто выдан знак вопроса.
Тип и количество вводимых данных должны соответствовать типу и количеству описанных переменных.
Например:
^ Команда: INPUT"Введите № школы, класс, фамилию";N,K,F$
Экран: Введите № школы, класс, фамилию? 2,10,Петров
Виды ошибок:
Тип данных не совпадает с типом переменных.
Ввели слишком много данных.
^ Оператор вывода данных
Формат:
PRINT список_выражений
В поле операндов через запятую или через точку с запятой перечисляются выражения, значения которых надо вывести. Значения данных выводятся с текущей позиции курсора.
1. Плотный вывод - разделитель ";"
Например:
a) Команда: PRINT"Мне";K;"лет"
Экран: Мне 16 лет (если К=16)
Перед значением числа выводится либо пробел, либо знак "минус".
b) ^ Команда: PRINT"Пра";"бабушка"
Экран: Прабабушка
2. Зональный вывод - разделитель ","
Если указана запятая, QBASIC выводит данные по зонам, каждая зона - 14 позиций.
Например:
^ Команда: PRINT"Мне",K,"лет"
Экран: Мне 16 лет (если К=16)
3. Вывод в разных строках
Например:
Команда: PRINT "Зарплата"
PRINT ZP;"руб"
Экран: Зарплата
2000 руб
Пример. Даны катет прямоугольного треугольника и прилежащий угол. Определить площадь треугольника и гипотенузу. Длину и угол в радианах ввести динамически. Результат вычисления вывести в разных зонах.
INPUT"Введите катет прямоугольного треугольника и прилежащий угол";A,U
C=A/COS(U) 'Вычисление гипотенузы
B=SQR(C^2-A^2) 'Вычисление катета
S= 0.5*B*A 'Вычисление площади треугольника
PRINT"C=";C,"S=";S
End
Для самостоятельного решения:
Кольцо задано радиусами двух окружностей. Вычислить площадь кольца. Данные задать динамически. Результат вычисления вывести в разных строках.
Даны числа x, y, z. Вычислить s=x2+y/(z2+y2/(x+y)3). Данные ввести динамически.
^ Статический ввод данных
Если программа постоянно работает с некоторым набором числовых или символьных констант, то можно объявить такой набор блоком данных:
DATA список констант
В списке констант через запятую указываются значения констант, например:
10 DATA 5,25,19.6,30,12,"ABC"
20 DATA "BASIC","Pascal",25.9
В программе можно записать произвольное число операторов DATA. В блок данных по порядку включаются все константы и в памяти создаётся специальный указатель блока данных. Во время работы программы этот указатель содержит порядковый номер константы в блоке данных. При запуске программы указатель показывает на первую константу из блока данных.
Для присвоения значений констант из блока данных переменным используется оператор READ:
READ список переменных
В списке переменных через запятую указываются имена переменных, которым присваиваются значения констант из блока данных. Типы переменных в списке READ должны соответствовать типам констант из блока данных. Например:
READ a%, m%, t
Переменным a%, m%, t присвоятся значения 5, 25 и 19.6. Указатель перемещается на 4-ую константу. Оператор
READ c, sc%, a$
Присвоит переменным c, sc%, a$ значения 30, 12, "ABC" и указатель переместится на "BASIC" и т.д.
Как несколько раз прочитать одни и те же данные из блока данных? Для восстановления указателя блока данных используется оператор RESTORE:
RESTORE номер строки или метка
где номер строки должен указывать на оператор DATA.
Если не указан номер строки, следующий после RESTORE, READ начнет чтение с первой константы блока данных. Например:
RESTORE
READ vk%, s%
RESTORE 20
READ z1$, z2$
vk%, s% присвоятся значения 5 и 25, а переменным z1$, z2$ - значения "BASIC" и "Pascal".
Блок данных удобен в тех случаях, когда несколько раз используется одна и та же последовательность констант.
Пример. Составить программу нахождения высоты равнобедренной трапеции, у которой основания 5м и 11м, а боковая сторона 4м. Данные ввести статически.
DATA 5,11,4
READ BC,AD,AB
AE=(AD-BC)/2 'Основание треугольника
HT=SQR(AB^2-AE^2)
PRINT"Высота трапеции =";HT
END
^ Команды управления ходом выполнения программы
Очень часто, в зависимости от некоторых условий, приходится изменять последовательность выполнения команд действия.
Команды управления ходом выполнения программы делятся на три группы:
Команды безусловного перехода;
Команды условного перехода;
Команды организации циклов.
^ Безусловная передача управления
Формат:
GOTO номер строки или метка
Управление передается команде, помеченной номером строки или меткой.
Например:
GOTO W
…
W: PRINT"Решение получено"
Примечание.В среде программистов употребление GOTO принято считать дурным тоном. Чрезмерное пристрастие к GOTO запутывает программу.
^ Условная передача управления
Конструкцию условной передачи управления можно записать в одном из двух форматов - блочном (в несколько строк) или линейном (в одной строке).
^ Линейный формат:
IF логическое выражение THEN <блок команд 1> [ELSE <блок команд 2>]
Блочный формат:
IF логическое выражение THEN
<блок команд 1>
[ELSE
<блок команд 2>]
END IF
Выполнение. Если логическое выражение принимает значение "Истина", выполняется блок команд 1, если логическое выражение - "Ложь", выполняется блок команд 2. Если ELSE отсутствует, то выполняется команда, стоящая за END IF.
Пример1
INPUT "Сколько будет 2x2 ",X
IF X=4 THEN PRINT "Правильно" ELSE PRINT "Не правильно"
END
Пример2
Вычислить значение функции Y
^ Линейный формат:
INPUT "Введите значение аргумента Х ",X
IF X<=1 THEN Y=X-1/2*X^2+3 ELSE Y=1.05*(X-1)^2
PRINT "При значении Х=";X;" функция Y=";Y
END
Блочный формат:
INPUT "Введите значение аргумента Х ",X
IF X<=1 THEN
Y=X-1/2*X^2+3
ELSE
Y=1.05*(X-1)^2
END IF
PRINT "При значении Х=";X;" функция Y=";Y
END
Возможна вложенность одного условного оператора в другой.
^ Формат записи вложенных условных операторов
IF логическое выражение THEN
<блок команд 1>
[ELSEIF логическое выражение THEN
<блок команд 2>]
……………………..
[ELSE
<блок команд n>]
END IF
Пример3
Составить программу вычисления функции:
1 вариант
IF Z<0 THEN
F=Z-5/Z^2
ELSEIF Z<=1 THEN
F=Z^2-1
ELSE
F=1/(1-Z)
ENDIF
PRINT "F=";F
END
2 вариант
IF Z<0 THEN F=Z-5/Z^2
IF Z<=1 AND Z>=0 THEN F=Z^2-1
IF Z>1 THEN F=1/(1-Z)
PRINT "F=";F
END
Для самостоятельного решения:
Составить программу определения кислотности раствора с помощью лакмусовой бумажки. Напомним, что, если бумажка окрашивается в красный цвет - раствор кислотный; синий - раствор щелочной; не меняет цвет - раствор нейтральный.
^ Множественный выбор (SELECT CASE)
Формат
SELECT CASE арифм_выражение или симв_выражение
CASE условие 1
<блок команд 1>
CASE условие 2
<блок команд 2>
……………….
[CASE ELSE
<блок команд n>]
END SELECT
Условие оператора CASE можно указать в одном из трех форматов:
CASE константа 1, константа 2, …
CASE IS знак_отношения константа
CASE константа 1 TO константа 2
Константы в условии должны быть того же типа, что и выражение в SELECT CASE.
Алгоритм множественного выбора заключается в следующем:
вычисляется значение выражения, записанного в SELECT CASE.
проверяется, удовлетворяет ли это значение одному из указанных в CASE условий
если значение удовлетворяет какому-то условию, выполняется блок команд, следующий за данным CASE.
Пример
INPUT "Введите значение ",A
SELECT CASE A
CASE 1,5
PRINT "А равно 1 или 5"
CASE IS >5
PRINT "А больше 5"
CASE -8 TO 2.5
PRINT "А не меньше -8, но не больше 2.5"
CASE else
PRINT "Ни одно условие не выполняется"
END SELECT
После выполнения того или иного блока команд управление передается команде, следующей за END SELECT.
^ Работа с датой и временем
Функция DATE$
Выдается текущая дата, зарегистрированная в компьютере. Формат даты: ММ-ДД-ГГГГ.
Например
PRINT DATE$
Выведется текущая дата: 15-09-2000
^ Функция TIME$
Выдается текущее системное время, зарегистрированное в компьютере. Формат времени: ЧЧ:ММ:СС (часы, минуты, секунды).
Например
PRINT TIME$ , на экране выдается текущее время.
Циклы
В языке BASIC предусмотрено два основных способа организации циклов:
повторение блока команд заданное количество (число) раз (цикл со счетчиком);
циклическое повторение блока команд, пока выполняется (или не выполняется) некоторое условие.
^ Цикл со счетчиком (FOR…NEXT)
Этот оператор используется, когда некоторый блок команд необходимо выполнить заданное число раз.
Формат
FOR счетчик=E1 TO E2 [STEP E3]
Блок команд
NEXT счетчик
счетчик (параметр)- числовая переменная;
E1 - начальное значение счетчика;
E2 - конечное значение счетчика;
E3 - шаг изменения счетчика. По умолчанию этот шаг равен 1;
Блок команд - набор операторов, предназначенных для повторения.
Выполнение. Если E3 >0, то цикл продолжается все время, пока счетчик < или = E2. Если E3 <0, то цикл продолжается все время, пока счетчик > или = E2.
Примеры
FOR I=1 TO 5
PRINT I;
NEXT I
Результат: 1 2 3 4 5
Тело цикла будет выполняться 5 раз. Шаг изменения счетчика по умолчанию равен 1.
FOR I=1 TO 5 STEP 2
PRINT I;
NEXT I
Результат: 1 3 5
Обратный цикл
FOR I=5 TO 1 STEP -1
PRINT I;
NEXT I
Результат: 5 4 3 2 1
FOR I=5 TO 1
PRINT I;
NEXT I
Проверка выхода из цикла производится в начале цикла, поэтому цикл не выполнится ни разу.
Ограничения при использовании оператора цикла FOR … NEXT:
Не изменяйте значение параметра цикла внутри цикла
FOR I=1 TO 5
I=I+1 ' НЕЛЬЗЯ!
NEXT I
Никогда не передавайте управление внутрь цикла, это может привести к непредсказуемым результатам.
GOTO 10 ' НЕЛЬЗЯ!
FOR I=1 TO 5
10 INPUT A
S=S+A
NEXT I
^ Досрочный выход из цикла
Для цикла FOR предусмотрена возможность безусловного выхода из цикла ( до его завершения). Управление передается команде, следующей за NEXT.
^ Формат команды выхода:
EXIT FOR
Например
FOR I=1 TO 10
INPUT "Введите значение параметра";F
IF F=100 THEN EXIT FOR
S=S+F
NEXT I
PRINT "Значения "
Подсчет:
Сумма
Количество
Произведение
S=0
K=0
P=1
S=S+A
K=K+1
P=P*A
Пример1. Подсчитать сумму 10 значений переменной A.
S=0
FOR I=1 TO 10
INPUT "Введите значение переменной";A
S=S+A 'Подсчет суммы значений переменной A
NEXT I
PRINT "Сумма ="; S
Пример 2. Подсчитать количество положительных чисел и произведение отрицательных чисел из N введенных.
INPUT “Введите количество значений”;N
К=0
P=1
FOR I=1 TO N
INPUT "Введите значение переменной";A
IF A>0 THEN K=K+1
IF A<0 THEN P=P*A
NEXT I
PRINT"Количество положительных чисел =";K
PRINT"Произведение отрицательных чисел =";P
^ Домашнее задание:
Подсчитать сумму положительных элементов, не превышающих значения 10 из N введенных.
Подсчитать количество мальчиков, рост которых превышает 165 см и количество девочек, рост которых не превышает 165.
Практическое занятие
Пример 1. Рассчитать и вывести на печать значения функции Y=5/X при изменении аргумента X от -5 до 5 с шагом 2.
FOR X=-5 TO 5 STEP 2
Y= 5/X
PRINT "X=";X, "Y=";Y
NEXT X
Пример 2. Дан ряд чисел 100, 55, -1000, 20, 5, 8, 33, 48. Найти количество пар чисел квадрат разности которых <100.
DATA 100, 55, -1000, 20, 5, 8, 33, 48
K=0
FOR I=1 TO 8 STEP 2
READ A,B
IF (A-B)^2 < 100 THEN K=K+1
NEXT I
PRINT "Количество пар чисел квадрат разности которых <100 =";K
Пример 3. Найти максимальное значение из N введенных. Вывести максимальное значение и его индекс.
INPUT "Введите количество значений";N
INPUT "Введите первое значение";A
MAX=A : IN=1
FOR I=2 TO N
PRINT "Введите "; I; "-ое значение"
INPUT A
IF A>MAX THEN MAX=A : IN=I
NEXT I
PRINT "Максимальное значение =";MAX
PRINT “Индекс максимального значения =”; IN
Домашнее задание:
Определить максимальное значение среди положительных элементов из N введенных.
Подсчитать значения функции f(x)=1-х2 на заданном интервале [-0,5; 0,5] с шагом 0,1.
^ Цикл WHILE … WEND
Формат
WHILE логическое выражение
Блок команд
WEND
Данный оператор позволяет выполнять блок команд до тех пор, пока значение логического выражения "Истина". После завершения цикла управление передается команде, следующей за WEND. Например:
WHILE PAS$<>"Петуния"
INPUT"Введите пароль";PAS$
WEND
PRINT"Добро пожаловать"
Этот цикл будет работать до тех пор, пока не будет введен правильный пароль.
В блоке команд должен присутствовать оператор, влияющий на значение логического выражения.
Например:
I=0
WHILE I<=10
I=I+1 'оператор, который влияет на значение логического выражения
WEND
PRINT I
Пример бесконечного цикла
I=0
WHILE I<=10
INPUT A
S=S+A
WEND
PRINT S
В блоке команд нет оператора, который бы изменял значение I.
Если при первой проверке условия окажется, что значение логического выражения - "Ложь", блок команд не будет выполнен ни разу. Например:
I=10
WHILE I<10
I=I+1
WEND
Пример 1. Вычислить сумму четных чисел в интервале от 1 до 10 включительно.
' I - четные числа
' Sum - сумма четных чисел
I=2
Sum=0
WHILE I<=10
Sum=Sum+I
I=I+2
WEND
PRINT"Сумма четных чисел в интервале от 0 до 10 =";Sum
Пример 2. В подъезде N ступенек. Сколько шагов будет сделано, если шагать через 3 ступеньки.
' KS - количество ступенек
' KH - количество шагов
INPUT "Введите количество ступенек";N
KS=0
KH=0
WHILE KS<=N
KS=KS+3
KH=KH+1
WEND
PRINT"Количество шагов=";KH
Пример 3. Известна сумма номеров страниц. Определить номер страницы.
' NS - номер страницы
' S - сумма номеров страниц
INPUT"Введите сумму номеров страниц";Q
NS=0
S=0
WHILE S
NS=NS+1
S=S+NS
WEND
PRINT"Номер страницы = ";NS
Домашнее задание:
Вычислить значения членов последовательности K=3i, где i=1, 3, 5, ..., не превышающих заданного числа N.
^ Вложенные циклы
Можно организовать весьма сложные повторения, используя циклы внутри циклов (Вложенные циклы).
Формат:
FOR
…
FOR ---------
тело внутреннего цикла
NEXT --------
…
NEXT
Пример 1. Напечатать таблицу умножения до 12 в виде
1*2=2
2*2=4 и т.д.
FOR I=2 TO 12
FOR J=1 TO 12
PRINT J;”*”;I;”=”;J*I
NEXT J
NEXT I
Пример 2. Напечатать таблицу умножения до 5 в виде таблицы.
1 2 3 4 5
2 4 6 8 10 и т.д.
FOR I=2 TO 12
FOR J=1 TO 12
PRINT J*I;
NEXT J
NEXT I
Пример 3. Напечатать все четырехзначные натуральные числа в десятичной записи которых нет двух одинаковых цифр.
FOR T=1 TO 9 ‘
FOR S=0 TO 9
FOR D=0 TO 9
FOR E=0 TO 9
IF T<>S AND T<>D AND T<>E AND S<>D AND S<>E AND D<>E THEN
M=T*1000+S*100+D*10+E
PRINT M,
ENDIF
NEXT E
NEXT D
NEXT S
NEXT T
Задание
Найти и напечатать все трехзначные числа сумма кубов которых равна самому числу. Например: 407=43+03+73=64+0+343
100>0>0>0> Массивы
Одним из важных инструментов программиста является возможность работы с массивами переменных.
Массив - набор однотипных данных, хранящихся вместе и имеющих общее имя.
Возможность объединения групп элементов в массив позволяет, с одной стороны, облегчить массовую обработку данных, а с другой - упростить идентификацию элементов массива.
Каждому элементу массива может быть присвоено одно числовое или символьное значение, поэтому различаются массивы числовые и символьные. Кроме того, массивы могут быть одномерными и многомерными.
^ Одномерные массивы
Основные понятия:
Массив обозначается одним именем. Так всю совокупность действительных чисел
1.6, 14.9, -5.0, 8.5, 0.46
можно считать массивом и обозначить одним именем, например А. Образующие массив переменные называются элементами массива. Каждый элемент массива обозначается именем массива с индексом, заключенным в круглые скобки.
A(1), A(2), A(3), ..., A(n).
Индекс определяет положение элемента массива данных относительно его начала.
Для рассмотренного выше примера элементами массива А являются:
A(1)=1.6, A(2)=14.9, A(3)=-5.0, A(4)=8.5, A(5)=0.46
^ Определение массивов
Прежде чем воспользоваться массивом, в программу надо включить оператор DIM, задающий максимально допустимый индекс. Это даст возможность системе с Бейсиком зарезервировать в памяти область достаточного размера.
Массивы, содержащие от 1 до 10 элементов, можно использовать без их объявления в операторе DIM. Максимальное количество элементов любого массива определяется только объемом свободной ОП.
Формат записи оператора DIM:
DIM имя_массива (максимальный_индекс)
"Имя_массива" обычно выбирается по тем же правилам, что и имена простых переменных.
"Максимальный_индекс" указывает максимально допустимый в программе индекс и должен быть положительным.
Примеры описания массивов:
DIM X(50) ' объявление одномерного числового массива X для 50 чисел;
DIM V$(12) 'объявление одномерного массива V для 12 символьных элементов.
Объявление массива с переменным размером.
INPUT K
DIM A(K)
........
^ Виды ошибок
Если указать в программе элемент массива с индексом большим, чем значение размерности, объявленное в операторе DIM или принятое по умолчанию, то выдается сообщение об ошибке 9:
Subscript out of range (выход за пределы массива).
Если оператор DIM указан после использования имени массива или массив повторно объявлен, то появляется сообщение 10:
Redimensioned array (повторное задание размерности массива).
^ Заполнение массива
Существует два способа присваивания значений элементам массива:
1) cтатический, с использованием операторов DATA, READ и оператора присваивания;
2) динамический, с использованием оператора INPUT и функции RND.
При работе с массивами очень удобно пользоваться оператором цикла FOR...NEXT. В качестве индекса массива используют параметр цикла.
^ 1. Пример статического заполнения массива.
DATA слива,ананас,груша
DATA яблоко,вишня,абрикос
DIM A$(6)
FOR I=1 TO 6
READ A$(I)
NEXT I
Цикл FOR...NEXT последовательно присваивает значения всем переменным из списка.
^ 2. Пример динамического заполнения массива
INPUT "Введите количество элементов массива ";N
DIM A(N)
FOR I=1 TO N
INPUT A(I)
NEXT I
В данном примере используется переменное задание размерности массива.
3. Пример заполнения массива с помощью стандартной функции RND
DIM V(12)
FOR I=1 TO 12
V(I)=INT(RND(1)*10)
PRINT V(I);
NEXT J
^ Порядок работы с массивами
объявление массива (задание максимального размера массива);
заполнение массива;
обработка элементов массива;
вывод результата обработки.
^ Действия над элементами одномерного массива
Пример 1. Подсчитать общую сумму 10 чисел, записанных статически в массив и количество отрицательных чисел в этом массиве.
DATA 3,4,5,-8,10.67,2.7,765,-6.98,9,-1
DIM A(10)
FOR I=1 TO 10
READ A(I)
S=S+A(I)
IF A(I)<0 THEN N=N+1
NEXT I
PRINT " сумма=";S,"N=";N
END
Пример 2. Задан массив К(45). Определить минимальный элемент массива и его индекс.
DIM K(45)
FOR I=1 TO 45 ' Заполнение массива
INPUT K(I)
NEXT I
MIN=A(1) ' Переменной MIN присваивается первое значение массива
FOR I=2 TO 45
IF A(I) < MIN THEN MIN=A(I):K=I
NEXT I
PRINT "Минимальный элемент=";MIN, "его индекс=";K
END
Пример 3. Задан массив A(18). В массиве поменять местами значения 1-го и 2-го элемента, 3-го и 4-го и т.д. Измененный массив вывести на экран.
DIM A(18)
FOR I=1 TO 18
A(I)=INT(RND(1)*10)
PRINT A(I);
NEXT I
FOR I=1 TO 18 STEP 2
SWAP A(I),A(I+1) ' Меняются местами значения элементов массива
NEXT I
FOR I=1 TO 18
PRINT A(I); ' Вывод измененного массива
NEXT I
END
Пример 4. Дан массив М(30). Элементы массива - произвольные числа. Выдать на экран значения каждого пятого элемента. Указанные эле
еще рефераты
Еще работы по разное
Реферат по разное
Участка трафаретной печати методом шелкографии
17 Сентября 2013
Реферат по разное
Единый тарифно-квалификационный справочник работ и профессий рабочих Выпуск 26. Разделы: Анилино-красочные производства; производство полиграфических красок; лакокрасочные производства
17 Сентября 2013
Реферат по разное
Всемирной Организации Здравоохранения (воз), 1974г : «Считать алкоголь наркотиком, подрывающим здоровье населения». справочник
17 Сентября 2013
Реферат по разное
Муниципальное образовательное учреждение
17 Сентября 2013