- •Глава 3 язык программирования бейсик
- •3.1 Простейшие конструкции языка
- •3.2 Основные операторы языка
- •Строка– строка экрана (1 – 25), на которую должен переместиться курсор. Столбец– столбец экрана (1 – 80), к которому должен переместиться курсор.
- •3.3 Характерные приемы программирования типовых алгоритмов
- •Вариант 1
- •9. Составить программу для условия задачи п.9
- •10. Составить программу для условия задачи п.10
- •11. Составить программу для условия задачи п.11
- •12. Составить программу для условия задачи п.12
- •13. Составить программу для условия задачи п.13
- •14. Составить программу для условия задачи п. 14
3.3 Характерные приемы программирования типовых алгоритмов
В этом разделе приведены тексты программ с комментариями для задач, блок-схемы алгоритмов которых рассмотрены в Главе 2. Тексты программ нумеруются в соответствии с номерами примеров Главы 2.
Составить программу для условия задачи П.1.
Схема алгоритма решения этой задачи приведена на рис. 2.1. Блок 2 схемы описывается двумя операторами: READ (производящим считывание данных) и DATA (хранящим константы), все остальные блоки описаны одним, соответствующим каждому блоку, оператором. Программа имеет вид:
' ЛИНЕЙНЫЙ АЛГОРИТМ
DATA 2.15,1.28: READ A,B
T = SQR (ABS (A*A - 2*A*B))
X = A + T: Y=A-T
Z = (EXP (X) + EXP (Y)) / 2
PRINT “ Z = ”; Z: END
Составить программу для условия задачи П.2.
Схема алгоритма решения этой задачи приведена на рис. 2.1. Блоку 2 соответствует оператор ввода данных с клавиатуры INPUT.
' ПОВЕРХНОСТЬ УСЕЧЕННОГО КОНУСА
PRINT " ВВЕДИТЕ РАДИУСЫ ВЕРХНЕГО И НИЖНЕГО ";
PRINT " ОСНОВАНИЯ; ВЫСОТУ И ОБРАЗУЮЩУЮ КОНУСА"
INPUT R1, R2, H, L : PI = 3.14159
S = PI * (R1 + R2) * L + PI * R1^2 + PI * R2^2
V = PI /3 * (R1^2 + R2^2 + R1 * R2) *H
PRINT “ S = ”; S; ” V = ”; V: END
Составить программу для условия задачи П.3.
Схема алгоритма решения этой задачи приведена на рис. 2.2. В программе блок 3 записывается условным оператором IF. Здесь удобнее сохранить последовательность операторов, соответствующих последовательности блоков на схеме.
' РАЗВЕТВЛЯЮЩИЙСЯ АЛГОРИТМ
INPUT X, Y
IF X * Y = 0 THEN
Z = 1 / (X * Y)
PRINT “ Z = ”; Z
ELSE
PRINT “ XY = 0 ”
END IF: END
Составить программу для условия задачи П.4.
Схема алгоритма решения этой задачи приведена на рис. 2.2. Данная программа составлена в двух вариантах. Для выбора нужной формулы при вычислении значения функции Z в первом варианте программы используется оператор условного перехода IF, а во втором варианте – оператор выбора SELECT CASE.
Вариант 1 Вариант 2
' ФУНКЦИЯ Z ' ФУНКЦИЯ Z
INPUT X INPUT X
IF X <= -1 THEN SELECT CASE X
Z = EXP(-X) CASE IS <= -1
ELSE Z = EXP(-X)
IF X < 1 THEN CASE IS < 1
Z = 1 Z = 1
ELSE CASE ELSE
Z = LOG(X) Z = LOG(X)
END IF END SELECT
PRINT “ Z = ”; Z: END PRINT “ Z = ”; Z: END
Составить программу для условия задачи П.5
Схема алгоритма решения этой задачи приведена на рис. 2.3. Для организации циклического процесса с известным числом повторений можно использовать как условный оператор IF, так и оператор цикла FOR. Программа, соответствующая схеме на рис. 2.3 – вариант 1, а на рис. 2.4 – вариант 2.
' Вариант 1. ЦИКЛИЧЕСКИЙ АЛГОРИТМ
INPUT XN, XK, H
X = XN
m1: Y = COS(2 * X) / X
PRINT X, Y
X = X + H
IF X <= XK THEN m1
END
' Вариант 2. ЦИКЛИЧЕСКИЙ АЛГОРИТМ
INPUT XN, XK, H
FOR X = XN TO XK STEP H
Y = COS(2 * X) / X
PRINT X, Y
NEXT X
END
Составить программу для условия задачи П.6
Схема алгоритма решения этой задачи приведена на рис. 2.4.Число повторений в цикле неизвестно, следовательно, нужен цикл с предусловием WHILE … WEND.
' ИТЕРАЦИОННЫЙ ЦИКЛ
INPUT X, E
K = 1
WHILE X^K / K <= E
K = K + 1
WEND
PRINT “ K = ”; K: END
Составить программу для условия задачи П.7
Текст программы соответствует блокам схемы на рис. 2.5. Для организации цикла используется конструкция FOR … NEXT, телом цикла является оператор присваивания, накапливающий сумму по заданной формуле.
' СУММА S
INPUT X, N
S = 0.0: FOR I = 1 TO N
S = S + (COS (2*I + 1) * X) / (2 * I + 1)
NEXT I
PRINT “ S = ”; S : END
8. Составить программу для условия задачи П.8
Схема алгоритма решения этой задачи приведена на рис. 2.6. Для ввода массива X организован отдельный цикл с использованием операторов READ и DATA – это вариант 1 программы. Произведение положительных элементов, обозначенное P, накапливается в отдельном цикле, где предварительно выполняется проверка условия оператором IF.
В варианте 2 – ввод массива X и вычисление произведения P выполняются в одном цикле.
