- •1. Подготовка задач для программирования
- •2. Разработка схемы алгоритма
- •2.1. Разветвляющиеся вычислительные процессы
- •2.2. Циклические вычислительные процессы
- •3. Алгоритмические языки программирования
- •3.1. Основные понятия
- •3.2. Алгоритмический язык Basic
- •3.2.1. Алфавит языка
- •3.2.2. Переменные и константы
- •3.2.3. Элементарные функции
- •3.2.4. Выражение
- •3.2.5. Задание исходных данных
- •3.2.6. Оператор вывода
- •3.2.7. Оператор end
- •3.2.8. Операторы управления
- •3.2.9. Структура программы
- •3.2.10. Программирование алгоритмов разветвленной структуры.
- •3.2.11. Массивы переменных
- •3.2.12. Оператор цикла
- •3.2.13. Программирование алгоритмов циклической структуры
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