6sort (Вспомогательные материалы)
Описание файла
Файл "6sort" внутри архива находится в папке "Вспомогательные материалы". Документ из архива "Вспомогательные материалы", который расположен в категории "". Всё это находится в предмете "информатика" из 2 семестр, которые можно найти в файловом архиве МАИ. Не смотря на прямую связь этого архива с МАИ, его также можно найти и в других разделах. Архив можно найти в разделе "остальное", в предмете "информатика" в общих файлах.
Онлайн просмотр документа "6sort"
Текст из документа "6sort"
Сортировка.
Займемся только одной нагрузкой – нагрузкой на верхнюю горизонтальную сторону длиной 40см.
Функция нагрузки по этой стороне q2 = +600 , где -аргумент, изменяющийся от =0 в крайней правой точке нагруженной горизонтальной стороны до =40 в левой точке этой же стороны. Т.е., от узла 16 к узлу 2 (против направления координаты Х). График этой функции приведён ниже.
Чтобы подсчитать силу, действующую на любой узел, скажем 7, надо знать значения функции в любой точке между точками находящимися на середине расстояний между узлами 5 и 7 и узлами 7 и 8. Для упрощения будем подсчитывать силу очень грубо: найдем значения функции в этих точках и подсчитаем площадь трапеции. Ключевой в наших рассуждениях является фраза: «найдем значения функции в этих точках».
Сложность заключается в том, что координата узлов по Х в массиве CORD отсчитывается слева – направо, а функция нагрузки записана справа-налево.
Но прежде всего надо «отловить» номера узлов, лежащих на нагруженной стороне. Отыскиваем нужные номера узлов по координатам.
В массиве CORD узлы располагаются в порядке возрастания номеров.
Последовательно пробегая массив CORD:
DO 10 I=1,NP
(где NP – число узлов) мы, понятно, сначала найдем узел (принадлежащий линии нагружения) с меньшим номером и поместим номер этого узла в массив отобранных номеров IFORCE1(I1)=I, потом с большим номером и его тоже поместим в массив номеров отобранных узлов и т.д. Следовательно, в массиве IFORCE1(I1)=I номера отобранных узлов будут возрастать:
2, 5, 7, 8, 9, 10, 16
Но относительно функции нагрузки они должны стоять в обратном порядке, а именно: 16, 10, 9, 8, 7, 5, 2
Понятно, что для такой операции сложная сортировка не нужна: задача решается очень просто, так как последний ряд чисел является записанным первым рядом, но в обратном порядке.
Произошло это потому, что в данном случае получился простейший вариант нумерации узлов, так как в исходной геометрической модели зоны, образующие нагруженную линию, выстроились слева направо по порядку 7,6,5, из-за того, что автор зону 5 образовал со стороны зоны 3, затем со стороны зоны 5 создал зону 6, после чего со стороны зоны 6 образовал зону 7.
Очевидно, что порядок образования зон мог быть иным. Пример другого образования геометрической модели и результата расчета на ней приведён ниже.
Как видим, результаты расчета не изменились, а вот нумерация узлов в интересующей нас области наоборот: узлы на нагруженной верхней стороне выстроились в ином порядке, а именно: 2, 5, 9, 8, 7, 10, 16. И здесь уже ни о каком возрастании в порядке увеличения номеров не идёт речь.
Очевидно, что после отбора узлов, принадлежащих верхней горизонтальной стороне, в массиве IFORCE1 они выстроятся в порядке возрастания номеров: 2, 5, 7, 8, 9, 10, 16, хотя для решения задачи их необходимо выстроить в порядке 16, 10, 7, 8, 9, 5, 2.
И здесь простейшей перезаписью ряда чисел не обойдёшься.
Именно поэтому здесь необходима сортировка массива IFORCE1 в порядке убывания координаты Х.