Лекции.Орг


Поиск:




Категории:

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

 

 

 

 


Выявленные возможные проблемы нужно учесть при разработке алгоритма.




Можно записать математическую формулировку задачи данной части:

где: k – количество нужных (четных по номеру, ненулевых) элементов во второй половине массива R;
- произведение нужных элементов.

Для определения наименьшего элемента сначала выделим элементы второй трети массива: номер первого элемента второй трети [n/3] + 1 = [17/3]+1 = [5,66] + 1 = 5 + 1 = 6, номер последнего [2*n/3] = [2*17/3] = [34/3] = [11,33] =11.

Запишем элементы второй трети массива:

x6 x7 x8 x9 x10 x11

-343 2 0 0

Выделим подчёркиванием нужные элементы: не принадлежащие отрезку [a/2,b/2] для a = -3, b = 4. Нужных элементов 3, наименьшее по модулю значение равно 3, такое значение имеют два элемента: x6 = -3 и x8 =3.

При решении данной задачи могут быть следующие ситуации:

  1. Не будет нужных элементов;
  2. Будет единственный элемент с наименьшим значением;
  3. Будет множество элементов с наименьшим значением (в пределе все нужные элементы в рассматриваемой части имеют одинаковое значение).

При выборочном упорядочивании элементов массива сначала выделим нужную часть массива. Первый элемент третьей четверти массива имеет номер [n/2] + 1 = [17/2] +1 = [8,5] +1 = 8 + 1 = 9, последний элемент имеет номер [3*n/4] = [3*17/4] = [51/4] = [12,75] = 12.

Запишем элементы третьей четверти

Элементы x9 x10 x11 x12

Значения элементов 2 0 0 4

Обратные значения 0,5 ∞ ∞ 0,25

Упорядоченные элементы 0 0 2 4

Все элементы неотрицательны – равны 0 или больше 0, поэтому все элементы второй трети меняют своё положение в массиве.

При разработке алгоритма возникает проблема вычисления обратного значения для элементов равных нулю – деление на ноль недопустимо. Для решения этой проблемы нужно математическую заменить очень большим положительным числом – «машинной бесконечностью», например 1036. Для этого в алгоритме условие вида нужно заменить на

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

Алгоритм решения задачи

 

При разработке алгоритме будем использовать метод декомпозиции: решение задачи сначала опишем в виде основного алгоритма, использующего вспомогательные алгоритмы решения задач частей задания. Затем опишем вспомогательные алгоритмы – модули решения задач каждой части. При разработке и описании алгоритмов используются элементарные структуры алгоритмов, составляющие основу структурного программирования.

Основной алгоритм.

При разработке основного алгоритма нужно учесть обязательные требования, сформулированные в постановке задачи и рекомендации по разработке сложных программ:

1. Необходимо задачу решать в общем виде, для любых допустимых значений исходных данных.

2. Предусмотреть возможность выполнения 3 вариантов расчёта.
Введём вспомогательную переменную Vr для управления вариантом расчёта: если Vr =0 – тестовый расчёт, Vr = 1 – без Randomize, любое другое значение Vr – расчёт с Randomize.

3. Модули должны быть относительно независимы: обязательно иметь имя, свои входные, выходные и промежуточные данные, не использовать глобальные переменные, ввод и вывод данных в модуле может быть только в случае необходимости.

4. Действия алгоритма поясняются на естественном языке, в обозначениях постановки задачи, не используются конструкции языка программирования

 


Основной алгоритм

 
 

 






Поделиться с друзьями:


Дата добавления: 2016-12-18; Мы поможем в написании ваших работ!; просмотров: 436 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Человек, которым вам суждено стать – это только тот человек, которым вы сами решите стать. © Ральф Уолдо Эмерсон
==> читать все изречения...

2258 - | 2106 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.007 с.