![]() |
Модераторы: Poseidon |
![]() ![]() ![]() |
|
Svetko |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 31.5.2010 Репутация: нет Всего: нет |
Ребята помогите
![]() Заданы m точек (m>=10) Найти радиусы описанной окружности вокруг треугольника. Выбрать максимальный радиус описанной окружности. Преподаватель сказал что надо использовать подпрограмму. Это сообщение отредактировал(а) Svetko - 31.5.2010, 20:53 |
|||
|
||||
Svetko |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 31.5.2010 Репутация: нет Всего: нет |
Использую функцию описанной окружности около треугольника с тремя точками-вершинами.
S — площадь треугольника со сторонами-аргументами, например,
и Dist — расстояние между точками
Помогите найти наибольшую описанную окружность и если есть возможность проверти эту и подкорректируйте. ![]() |
||||||
|
|||||||
FCM |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 461 Регистрация: 30.3.2009 Репутация: нет Всего: 9 |
Какая связь между m точками и треугольником? Если предположить, что 1) нужно выбрать треугольник с вершинами из m-точек 2) ваша формулы в функции R правильны то это может выглядеть так:
Это сообщение отредактировал(а) FCM - 7.6.2010, 09:36 |
||||
|
|||||
Svetko |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 31.5.2010 Репутация: нет Всего: нет |
FCM, Спасибо , осталось только проверить в программе
![]() Может у кого есть возможность? |
|||
|
||||
FCM |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 461 Регистрация: 30.3.2009 Репутация: нет Всего: 9 |
В каком смысле проверить?
У тебя есть заданный набор точек и ответ? |
|||
|
||||
Svetko |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 31.5.2010 Репутация: нет Всего: нет |
Нет только это задание и всё. Просто если он мне задаст набор точек,чтоб проверить правильность программы , как я смогу смогу их внести в код ?
|
|||
|
||||
FCM |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 461 Регистрация: 30.3.2009 Репутация: нет Всего: 9 |
Ну можешь "тупо" вбить, например,
T(1) = TPOINT(1.,2.) ... T(M) = TPOINT(3.,4.) или T = (/ TPOINT(1.,2.), ..., TPOINT(3.,4.) /) Возможно он даст файл из которого нужно считать - счас посмотрю, как это работате для производных типов... Добавлено @ 20:31 Если даст файл, с содержимым вида 1.1 2.2 1.3 3.1 ... ... то вместо инициализации случайными числами надо вставить следующее
но нужно проверить, чтобы длина массива Т была согласована с количеством пар значений в файле. (Возможно он попросит использовать динамическиq массив, размер которого следует определить по количеству пар значений в файле...) Или запрограммировать ввод с клавиатуры, например, так
и вводить точки парами значений (PS но вообще в вашей функции R критерий D > 1E-5 требует отдельных "размышлений") Это сообщение отредактировал(а) FCM - 6.6.2010, 10:42 |
||||
|
|||||
Svetko |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 31.5.2010 Репутация: нет Всего: нет |
FCM, мдааа. Преподаватель сказал переписать всё программу попроще , вот эти вот моменты особенно
CALL RANDOM_NUMBER(T%X) ! случайными числами из (-5.,5.) T%X = 10*(T%X - 0.5) CALL RANDOM_NUMBER(T%Y) T%Y = 10*(T%Y - 0.5) Еще вопрос IMPLICIT NONE что это? |
|||
|
||||
kemiisto |
|
|||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 16 Всего: 160 |
Тема перенесена. -------------------- |
|||
|
||||
FCM |
|
||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 461 Регистрация: 30.3.2009 Репутация: нет Всего: 9 |
Svetko
Там у меня была неточность (получаются лишние вычисления) - надо либо так
либо так (без цикла)
Это всего лишь вариант инициализации массива T - инициализация случайными числами из диапазона (-5.,5.). Можно убрать "растяжку" (масштабирование) и ограничиться диапазоном (0.,1.) Другие варианты (инициализация заданными числами в тексте программы, считывание из файла, считывание с клавиатуры) приведены выше. Это инструкция отмены используемой в Фортране по умолчанию неявной типизации (согласно которой все переменные и функции, начинающиеся с I, J,K,L,M,N, имеют тип INTEGER, остальные - тип REAL). Неявная типизация может приводить к трудновыявляемым ошибкам, связанными с опечатками и т.п. и не рекомендуется в современном Фортране. Ну если преподавателю это не нравится удали эту инструкцию везде. Если же преподавателя смущает и использование модуля. То можешь удалить и его, но при этом определение производного типа должно быть включено в каждую программную единицу (главную программу или внешнюю процедуру), где используются переменные данного типа. Это сообщение отредактировал(а) FCM - 7.6.2010, 09:51 |
||||||
|
|||||||
Svetko |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 31.5.2010 Репутация: нет Всего: нет |
FCM, CALL RANDOM_NUMBER эту программу мы ведь используем для вызыва подпрограммы , а у нас они должны быть записаны отдельно ,
% - это значок "растяжка" ?? Это сообщение отредактировал(а) Svetko - 7.6.2010, 17:06 |
|||
|
||||
FCM |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 461 Регистрация: 30.3.2009 Репутация: нет Всего: 9 |
Не совсем понял это предложение. RANDOM_NUMBER стандартная подпрограмма. Т.е. тебе заботиться о ней не надо - просто вызываешь ее и все. % - это не "растяжка"! % - это"селектор", с помощью которого обращаются к тому или иному полю переменной производного типа. У тебя TPOINT производный тип из двух полей. Если Q - переменная типа TPOINT, то Q%X и Q%Y означают обращения к соответсвующим полям Q. (В Visual Fortran вместо % может использоваться точка.) Растяжка заключается в инструкциях вида
Это просто линейное отображение отрезка (0.,1.) в (-5.,5.) (Если это напрягает, выбери другой способ инициализации) Это сообщение отредактировал(а) FCM - 8.6.2010, 08:03 |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "Центр помощи" | |
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Центр помощи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |