Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
INFORMAT / 2TEOR_BA.DOC
Скачиваний:
56
Добавлен:
02.03.2016
Размер:
219.65 Кб
Скачать

3.3 Характерные приемы программирования типовых алгоритмов

В этом разделе приведены тексты программ с комментариями для задач, блок-схемы алгоритмов которых рассмотрены в Главе 2. Тексты программ нумеруются в соответствии с номерами примеров Главы 2.

  1. Составить программу для условия задачи П.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

  1. Составить программу для условия задачи П.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

  1. Составить программу для условия задачи П.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

  1. Составить программу для условия задачи П.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

  1. Составить программу для условия задачи П.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

  1. Составить программу для условия задачи П.6

Схема алгоритма решения этой задачи приведена на рис. 2.4.Число повторений в цикле неизвестно, следовательно, нужен цикл с предусловием WHILE … WEND.

' ИТЕРАЦИОННЫЙ ЦИКЛ

INPUT X, E

K = 1

WHILE X^K / K <= E

K = K + 1

WEND

PRINT “ K = ”; K: END

  1. Составить программу для условия задачи П.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 выполняются в одном цикле.

Соседние файлы в папке INFORMAT