Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Решение задач программированием.doc
Скачиваний:
26
Добавлен:
18.02.2016
Размер:
389.63 Кб
Скачать

3.2.13. Программирование алгоритмов циклической структуры

Номера примеров указаны в соответствии с номерами схем вычислений данных задач, разработанных в пункте 4.2. Циклические вычислительные процессы.

Пример 4. Задан массив по имени А, состоящий из 20 элементов, Аi, i = 1,2,…,20. Написать программу вычисления суммы и произведения элементов этого массива.

Алгоритм вычисления разобран в п. 4.2, схема вычисления представлена на рис. 4, имена переменных в программе выбраны в соответствии со схемой.

Исходные данные элементы массива А - это переменные действительного типа обычной точности (типа Single). При вводе используем 2-й способ.

Результаты сумма S и произведение P объявляем переменными типа Single, а параметр цикла I - переменная целого типа Integer.

Напоминаем ! Что перед использованием переменных их надо обязательно объявить.

Результаты вычисления сумму S и произведение P выведем на дисплей под управлением списка. Причем в первой строке программы расположен комментарий, в котором указана постановка задачи (в дополнении можно указать автора программы и любую другую информацию). Такой подход реализован и в последующих программах.

Текст программы представлен ниже.

‘ Вычисление суммы S и произведения P массива.

DIM A(20) as Single

DIM I as Integer, P as Single, S as Single

‘ Ввод массива.

For I =1 to 20

PRINT “Введите A(”,I,”)=”;

INPUT A(I)

Next I

‘ Задание начальных значений S и P.

S = 0

P = 1

‘ Организация цикла.

FOR I = 1 To 20 Step 1

S = S + A(I)

P = P * A(I)

Next I

‘ Печать результатов.

Print “ S=”;S;” P=”;P

END

Печать пояснения и ввод значений исходных данных будем выводить на одной строке, поэтому оператор печати при вводе данных (см. пятая строка программы) заканчивается символом “;” .

Такая организация печати и ввода данных реализована и в последующих программах.

Для читаемости программы при записи оператора цикла и структурного логического оператора использовано правило “рельефа”, состоящее в том, что расположенные внутри конструкции операторы записываются правее, образующих эту структуру операторов.

Пример 5. Задан массив X, состоящий из 10 элементов, Xj, j=1,…,10. Написать программу вычисления произведения положительных элементов этого массива.

Алгоритм вычисления разобран в п. 4.2, схема представлена на рис. 5.

В этой программе в качестве исходных данных используется для примера массив X - переменные типа Variant. Тип остальных переменных, используемых в программе, объявлен явно. При вводе массива используем 2-й способ, результат выведем на дисплей под управлением списка.

При вычислении произведения положительных элементов используем структурный логический оператор IF. Текст программы представлен ниже.

‘ Вычисление произведения положительных элементов массива.

DIM X(10)

DIM I as Integer, J as Integer, P as Single

‘ Ввод массива.

For I =1 to 10

PRINT “Введите X(”,I,”)=”;

INPUT X(I)

Next I

‘ Задание начального значения P.

P = 1

‘ Организация цикла.

FOR J = 1 To 10 Step 1

‘ Выбор положительных элементов и вычисление произведения.

IF(X(J) > = 0)THEN

P = P*X(J)

ENDIF

Next J

‘ Печать результата.

PRINT ’ P=’,P

END

Пример 7. Задан массив X, состоящий из 20 элементов, XI, I=1,…,20. Составить программу вычисления среднего арифметического значения положительных элементов.

Алгоритм вычисления разработан в п. 4.2, схема вычисления представлена на рис. 7. Имена переменных в программе выбраны в соответствии со схемой.

В этой программе в качестве исходных данных используется массив X - переменные типа Variant. Тип остальных переменных, используемых в программе, объявлен явно. При вводе данных в масив X используем 2-й способ. Результат выведем на дисплей под управлением списка.

Текст программы представлен ниже.

‘ Вычисление среднего арифм. значения положительных элементов.

DIM X(20)

DIM I as Integer, K as Integer, S as Single, R as Single

‘ Ввод массива.

For I =1 to 20

PRINT “Введите X(”,I,”)=”;

INPUT X(I)

Next I

‘ Задание начальных значений.

S = 0

K = 0

‘ Организация цикла

FOR I = 1 To 20

‘ Выбор положительных элементов и подсчет их суммы и количества.

IF(X(I) > = 0)THEN

S = S + X(I)

K = K + 1

ENDIF

Next I

‘ Проверка числа элементов К=0? Печать результата.

IF(K = 0)THEN

Print “ Положительных элементов нет”

ELSE

R = S/K

Print “ Среднее арифметическое R=”;R

ENDIF

END

Пример 8. Заданы два массива AI, I = 1,…,25, и BJ, J = 1,…,30. Составить программу вычисления количества положительных элементов в каждом массиве. Определить в каком массиве больше положительных элементов.

Алгоритм вычисления представлен в п. 4.2, схема вычисления – на рис.8. Имена переменных в программе соответствуют именам переменных в схеме.

В этой программе в качестве исходных данных используются массивы A и B - типа Variant. Тип остальных переменных, используемых в программе, объявлен явно. При вводе данных в масcивы A и B используем 2-й способ. Результат выведем на дисплей под управлением списка.

Результаты выведем на дисплей под управлением списка. Текст программы представлен ниже.

‘ Вычисление количества положительных элементов в массивах.

DIM A(25), B(30)

DIM I as Integer, J as Integer, KA as Integer , KB as Integer

‘ Ввод массивов

For I =1 to 25

PRINT “Введите A(”,I,”)=”;

INPUT A(I)

Next I

For J =1 to 30

PRINT “Введите B(”,J,”)=”;

INPUT B(J)

Next J

‘ Задание начальных значений.

KA = 0

KB = 0

‘ Организация цикла по параметру I.

FOR I = 1 To 25

‘ Выбор положит. элементов массива A и подсчет их количества.

IF(A(I) > = 0)THEN

KA = KA + 1

ENDIF

Next I

‘ Организация цикла по параметру J.

FOR J = 1 To 30

‘ Выбор положит. элементов массива B и подсчет их количества.

IF(B(J) > = 0)THEN

KB = KB + 1

ENDIF

Next J

‘ Печать количества положительных элементов KA и KB.

Print KA,KB

‘ Определение числового соотношения положительных элементов.

IF(KA > KB )THEN

Print “ В массиве A больше положительных элементов”

ELSE

IF(KA < KB)THEN

Print “ В массиве B больше положительных элементов”

ELSE

Print “ Количество положительных элементов совладает”

ENDIF

ENDIF

END

Пример 9. Задан массив YJ, J=1,…,30. Составить программу нахождения максимального (наибольшего) элемента этого массива.

Алгоритм вычисления представлен в п. 4.2, схема вычисления – на рис. 9. Имена переменных в программе выбраны в соответствии с именами переменных в схеме.

В этой программе в качестве исходных данных используется массив Y - типа Variant. Тип остальных переменных, используемых в программе, объявлен явно. При вводе данных в масcивы Y используем 2-й способ.

Результат выведем на дисплей под управлением списка.

Текст программы представлен ниже.

‘ Нахождение максимального элемента массива.

DIM Y(30)

DIM I as Integer, J as Integer, YMAX as Single, KB as Integer

‘ Ввод массива.

For I =1 to 30

PRINT “Введите Y(”,I,”)=”;

INPUT Y(I)

Next I

‘ Задание начального значения максимального элемента.

YMAX = Y(1)

‘ Организация цикла.

FOR J = 2 To 30

‘ Выбор максимума из текущего элемента YJ и YMAX.

IF(Y(J) >= YMAX)THEN

YMAX = Y(J)

ENDIF

Next J

‘ Печать результата.

Print “ YMAX=”;YMAX

END