- •Введение
- •1. Общие сведения о микроэвм. Выбор языка программирования
- •1.1. Общие сведения о микроЭвм.
- •1.2. К выбору языка программирования
- •2. Системы счисления микроэвм. Двоичная арифметика. Разрядные сетки. Прямой и дополнительный коды
- •2.1. Системы счисления
- •2.2. Двоичная арифметика
- •2.3. Разрядные сетки микроЭвм
- •2.4. Прямой и обратный коды
- •3. Загрузка языка basic – интерпретатора. Основные понятия языка. Получение листинга простейшей программы
- •3.1. Загрузка языка basic – интерпретатора
- •3.2. Основные понятия языка basic
- •3.2.1. Алфавит языка
- •3.2.2. Условные обозначения
- •3.2.3. Константы
- •3.2.4. Переменные
- •3.2.5. Стандартные функции
- •3.2.6. Арифметические выражения
- •3.2.7. Строки и операторы
- •3.3. Оператор remark
- •3.4. Оператор присваивания
- •3.5. Операторы окончания программы
- •3.6. Команда выполнения программы
- •3.7. Отладка и редактирование программы
- •3.8. Основные команды языка gw-basic
- •4. Программирование линейных вычислительных процессов
- •4.1. Линейный вычислительный процесс
- •4.2. Оператор печати для вывода информации на экран
- •4.3. Вывод информации на печатающее устройство
- •4.4. Операторы задания начальных значений и ввода данных
- •4.5. Оператор восстановления блока данных
- •3Адание 2.
- •5. Программирование разветвляющихся вычислительных процессов
- •5.1. Разветвляющийся процесс
- •5.2. Выражения отношений
- •5.3. Логические функции
- •5.4. Приоритет выполнения всех операций
- •5.5. Операторы безусловного перехода
- •5.6. Оператор условного перехода
- •5.7. Оператор on
- •5.8. Решение нелинейных уравнений
- •5.8.1. Метод простой итерации
- •5.8.2.Метод Ньютона
- •5.8.3.Метод деления пополам
- •6. Диалоговый режим работы. Программирование циклических процессов
- •6.1. Диалоговый режим
- •6.2. Оператор input
- •6.3.Циклические вычислительные процессы
- •6.4.Итерационные циклы
- •6.5. Циклы с параметром
- •6.6. Операторы for и next
- •6.7. Вложенные циклы
- •6.8. Операторы while – wend
- •6.9. Операторы do – loop
- •7. Обработка массивов
- •7.1.Массивы
- •7.2. Оператор dim
- •7.3. Обработка массивов
- •7.4. Ввод массивов
- •7.5. Вывод массивов
- •7.6. Использование массивов в вычислениях
- •7.7. Функция tab
- •8. Использование массивов в вычислениях
- •9. Функции и подпрограммы пользователя
- •9.1. Функции пользователя
- •9.2. Подпрограммы пользователя
- •10. Графические средства языка basic
- •10.1. Передний план, фон и окантовка
- •10.2. Режимы работы экрана
- •10.3. Координаты точек на экране
- •10.4. Оператор color в текстовом режиме
- •10.5. Оператор color в графическом режиме
- •10.6. Оператор pset
- •10.7. Оператор line
- •10.7.1 Построение ломаных линий
- •10.10. Оператор circle
- •10.10.1. Построение дуг окружностей
- •10.10.2. Построение радиусов
- •10.10.3. Построение эллипсов
- •10.11. Оператор paint
- •10.12. Оператор draw
- •10.12.1. Команды оператора draw
- •10.13. Построение графиков
- •11. Построение динамических изображений
- •Приложение 1
- •2.3. Циклический процесс.
- •Приложение 2
6.5. Циклы с параметром
Если в теле цикла можно выделить переменную, которая монотонно изменяется при каждом выполнении цикла, то принято называть эту переменную параметром, а сам цикл - циклом с параметром. Параметр цикла может быть целого или вещественного типов. Изменение параметра цикла в общем случае можно описать формулой:
,
где и - начальное и конечное значения параметра, - шаг изменения. Циклы с параметром при вещественного типа можно свести к циклическому процессу с целого типа:
.
Однако при вещественном значении параметра не всегда возможно получить целое , поэтому следует округлять до целого с учётом анализа условия задачи.
Таким образом, цикл с параметром сводится к циклу со счётчиком, который организуется пользователем в теле цикла, а при подготовке цикла содержимое счётчика должно обнуляться.
В языке BASIC имеются специальные операторы для организации циклов с параметром: FOR - NEXT. Такой цикл называется циклом с управляющей переменной или циклом со встроенным счетчиком.
6.6. Операторы for и next
Синтаксическая структура оператора:
нс FOR <переменная> = Е1 ТО Е2 {STEP E3},
где FOR – ключевое слово “для”; Е1 – арифметическое выражение, определяющее начальное значение переменной, которое называется управляющей; ТО – служебное слово “до” (включительно); Е2 – арифметическое выражение, определяющее конечное значение управляющей переменой; STEP - служебное слово “шаг”; Е3 – выражение, определяющее величину шага, то есть приращение. Таким образом, Е1-Е2 представляет область действий управляющей переменной.
Оператор FOR вычисляет начальное и конечное значение управляющей переменной цикла, величину шага и присваивает управляющей переменной её начальное значение, занося во встроенный счетчик. При каждом цикле оператора FOR производит анализ на окончание цикла (с помощью анализа встроенного счётчика). Цикл повторяется до тех пор, пока значение управляющей переменной не станет строго больше (при положительном шаге) или строго меньше (при отрицательном шаге) её конечного значения.
Операторы цикла записываются вслед за оператором FOR, который является фактически заголовком тела цикла.
Служебное слово STEP указывает величину шага. Оно может опускаться только в том случае, если шаг +1 – во всех остальных случаях STEP необходим.
Оператор NEXT завершает цикл. Его структура:
нс NEXT <управляющая переменная>,
где NEXT – ключевое слово “следующий”. Этот оператор изменяет значение управляющей переменной на величину шага.
Пример1. Вычислить при изменении с шагом 1 на интервале
Фрагмент программы:
…
40 FOR B = 1 TO 5
50 Y = A + B здесь STEP не указан, т.е. равен +1
60 NEXT B
…
Пример2. Вычислить с шагом 0.4 значение функции (с параметром) на интервале .
Фрагмент программы:
…
30 FOR X = -1 TO 1 STEP .4
40 Y = COS(X)
50 NEXT X
…
6.7. Вложенные циклы
Вложенные циклы организуются с помощью вложенных операторов FOR – NEXT, которые образуют внутренние циклы, и служат для программирования циклов внутри циклов.
Пример. Вычислить причем a и b изменяются на интервале {1 , 5} с шагом 1.
Фрагмент программы:
30 FOR A = 1 TO 5
40 FOR B = 1 TO 5
50 Y = A+B
… Внутренний цикл Внешний цикл
60 NEXT B
70 NEXT A
На каждый внешний цикл внутренний отвечает всеми циклами.
В случаях, когда необходимо вывести на экран или печатающее устройство n любых символов, более экономично вместо FOR-NEXT использовать функцию генерации строки:
STRING$(n, <”символ”>),
где n - количество; в качестве символа можно использовать любой символ.
Строки 40-60 выполняются в каждом внешнем цикле 5 раз, всего внешних циклов 5. Количество вычисленных значений у равно 25.
Пересечения циклов не допускается. Организация вложенных циклов осуществляется по различным управляющим переменным. Если программа позволяет, то можно использовать один NEXT:
NEXT B, A
Сначала записывается управляющая переменная внутреннего цикла. Максимальная глубина вложения у многих версий не более восьми.
Циклы обработки массивов рассматриваются в следующем разделе.