Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Лекция 9. Пример. Найти значение наибольшего элемента одномерного массива.




Пример. Найти значение наибольшего элемента одномерного массива.

 


1. Выбор данных.

Исходные данные:

k – Переменная целого типа, число заданных величин;

a ( ) – динамический массив с плавающей точкой обычной точности, значения заданных величин.

Результаты:

НаибЭлем – переменная с плавающей точкой обычной точности, значение наибольшего среди рассмотренных элементов массива a;

Промежуточные:

i – переменная целого типа, значение индекса элемента массива x.

2. Построение блок-схемы алгоритма (см. рис. 9.1).

Ввод массива представлен укрупненным блоком (блок 2). Основой алгоритма является цикл (блоки 4 – 8). В этот цикл входит разветвление (блоки 6 и 7).

 

3. Разработка интерфейса проекта

Воспользуемся тем же интерфейсом проекта, который был применен для примера, рассмотренного в предыдущей лекции (подробнее).

 

4. Составление программы.

 

Option Explicit

Option Base 1

Private Sub Command1_Click()

1: Dim i As Integer, k As Integer

Dim a() As Single

Dim НаибЭлем As Single

Cls

5: k = InputBox("Введите k")

Print "k= " & k

ReDim a(k)

Print "Ввод вектора а"

Ввод_вектора a

10: НаибЭлем = a(1)

For i = 2 To k

If a(i) > НаибЭлем Then НаибЭлем = a(i)

Next

Print "Наибольший элемент равен "; НаибЭлем

End Sub

Private Sub Ввод_вектора(x() As Single)

1: Dim i As Integer

Dim i_min As Integer

Dim i_max As Integer

i_min = LBound(x)

5: i_max = UBound(x)

For i = i_min To i_max

x(i) = InputBox("Элемент вектора (" _

& i & ")=?", "Ввод вектора")

Print x(i),

Next

Print

End Sub

 

В этой программе применяется динамический массив a. В строке 9 тела процедуры Command1_Click происходит обращение к процедуре Ввод_вектора, которая обеспечивает ввод всех элементов массива a. Упрощенно можно действие этого обращения понимать так, как будто на месте строки 9 выполняется все тело процедуры Ввод_вектора, во всех инструкциях которого имя x заменено на имя a. Процедура Ввод_вектора обеспечивает не только ввод значений всех элементов массива, но печать на форме их значений для контроля правильности задания значений при вводе. В этой процедуре применяется обращение к функция LBound(x), которая возвращает наименьшее значение индекса массива, имя которого является аргуменом этой функции. В процедуре Ввод_вектора также применяется обращение к функция UBound(x), которая возвращает наибольшее значение индекса массива, имя которого является аргуменом этой функции.

Инструкция, находящаяся в стоке 8 процедуры Ввод_вектора, обеспечивает печать элемента массива. Следующий элемент массива будет выведен в той же самой строке (подробнее).

Инструкция, находящаяся в стоке 10 процедуры Ввод_вектора, нужна, чтобы следующая (если такая есть) инструкция Print после выхода из процедуры Ввод_вектора выводила информацию на форме не в той же самой, а в следующей строке.


Поделиться:

Дата добавления: 2014-12-03; просмотров: 96; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.008 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты