Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Производная алгоритмическая структура Поиск максимумаСодержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
Используется для нахождения максимального элемента массива и его местоположения. Условие поиска максимума определяется выражением: <Элемент массива> > <Ключ поиска>
Особенности алгоритма. 1. Ключу поиска присваивается начальное значение. Начальным значением может быть: – значение любого элемента массива; – число, намного меньшее любого из возможных значений, которые могут принимать элементы массива. 2. Вводится одна дополнительная переменная, которая должна хранить значение, определяющее местоположение максимального элемента. Если обрабатывается двухмерный массив, то вводятся две дополнительные переменные: первая – для хранения индекса, определяющего местоположение в строках массива, а вторая – в столбцах маcсива. 3. Организуется циклический вычислительный процесс: цикл или цикл в цикле. Телом цикла служит структура Развилка, определяющая условие поиска элемента массива, имеющего максимальное значение. Если условие поиска является истинным, то значение Ключа поиска заменяется значением элемента массива, а дополнительной переменной присваивается значение, определяющее местоположение соответствующего элемента массива. В противном случае изменение значения Ключа поиска и дополнительных переменных (переменной) не происходит. 5. После окончания циклического вычислительного процесса значение Ключа поиска равно максимальному значению элемента массива, а дополнительные переменные (переменная) хранят значения, определяющие местоположение этого элемента в массиве.
П р и м е ч а н и е. Если в массиве несколько элементов имеют одинаковые значения, равные максимальному (используется знак >), то дополнительные переменные (дополнительная переменная) хранят значения, определяющие местоположение первого элемента массива, имеющего максимальное значение. Если в выражении, определяющем условие поиска, используется знак ≥, – то последнего.
Пример 5. Разработать информационную технологию, позволяющую определить значение и местоположение элемента одномерного массива А произвольной размерности m, равного максимальному значению. Входные данные: m – целое число; A=[ai], – массив вещественных чисел. Выходные данные: k – значение максимального элемента массива, вещественное число; q – значение индекса, определяющего местоположение максимального элемента, целое число. Математическая модель: k = a1 , q =1; для i = 2..m, eсли ai > k, то k = ai, q = i
Схема алгоритма:
Код приложения: Option Bаse 1 Private Sub Form_Activate() Dim i As Integer, m As Integer, q As Integer, k As Double, a() As Double m=InputBox(“ Введите размерность массива”) ReDim a(m) For i=1 To m a(i)=InputBox(“a(“ & i & ”)”) Next k=a(1): q=1 For i=1 To m If a(i)>k then k=a(i): q=i End If Next Print “Максимальное значение =” & k & Сhr(10) & _ ”Индекс элемента массива = “ & q Print Chr(10);“Исходный массив” For i=1 To m Print “a(“ & i & ”) =“ & Format(a(i),”0.000”) Next End Sub Аналогичный алгоритм может быть использован и для нахождения экстремума функции и значения аргументов, при которых он достигнут.
Пример 6. Разработать информационную технологию, позволяющую определить максимальное значение функции y=sin2(x)+cos(z/2)2 при изменении х от начального значения х0 до конечного значения хк с шагом Dх и z от начального значения z0 до конечного значения zk с шагом Dz. Входные данные: х0, z0, хk, zk – вещественные числа; dх – шаг изменения переменной х, вещественное число; dz – шаг изменения переменной z, вещественное число. Выходные данные: fmax – максимальное значение функции, вещественное число; xmax – аргумент х, соответствующий максимальному значению функции, вещественное число; zmax – аргумент z, соответствующий максимальному значению функции, вещественное число.
Математическая модель: fmax = –10000,0, xmax = х0, zmax = z0; для x = x0..xk, z = z0..zk, , если y > fmax, то fmax = y, xmax = x, zmax = z
Схема алгоритма:
Код приложения: Private Sub Command1_Click() Dim x0 As Single, xk As Single, dx As Single, z0 As Single, zk As Single Dim dz As Single, x As Single, z As Single, y As Single Dim fmax As Single, xmax As Single, zmax As Single х0 = Text1: xk = Text2: dx = Text3: z0 = Text4: zk = Text5: dz = Text6 fmax = -10000.0 xmax = х0: zmax = z0 For x = x0 To xk Step dx For z = z0 To zk Step dz y = Sin(x) ^ 2 + Cos((z / 2) ^ 2) If y > fmax Then fmax = y xmax = x: zmax = z End If Next z Next x Print "Максимальное значение функции равно " & Format(fmax, _ "0.00") & Chr(10) & "Значение аргумента х=" & Format(xmax, _ "0.000") & Chr(10) & "Значение аргумента z=" & Format(zmax, "0.00") End Sub
Результат выполнения кода приложения представлен на форме:
|
|||||||||||||
Последнее изменение этой страницы: 2016-12-10; просмотров: 624; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.222.92.56 (0.01 с.) |