Другие языки программирования и технологии
Помогите написать алгоритм и программу на фортране
Я никогда программированием не занимался, и вот тебе.. . -сразу пошло жесткое прогание (для меня) . сожалею, что не задумывался об этом раньше, но ПОМОГИТЕ мне написать программу на фортране, которая бы эффективно смогла решать корни квадратного уравнения? или хотя бы точный алгоритм
Известны по крайней мере 6 стандартов фортрана, и куча реализаций. Тебе для какой?
Здесь F90/GFortran:
program q80495438
real :: a, b, c, d, x1, x2
complex :: cx1, cx2
print *, "введите коэффициенты квадратного уравнения a, b, c"
read *, a, b, c
d = b * b - 4 * a * c
if (d > 0) then
x1 = (-b - sqrt(d)) / (2 * a)
x2 = (-b + sqrt(d)) / (2 * a)
print *, "два корня: ", x1, x2
elseif (d == 0) then
x1 = -b / (2 * a)
print *, "один корень: ", x1
else
cx1 = (-b - sqrt(cmplx(d, 0))) / (2 * a)
cx2 = (-b + sqrt(cmplx(d, 0))) / (2 * a)
print *, "комплексные корни: "
print *, cx1, cx2
end if
end program q80495438
ЗЫ: следует учесть, что квадратное уравнение может быть вырожденным, к примеру, при a = 0, получается уравнение прямой, но это сделай как-нибудь сам. Вот только не знаю, насколько эффективно данная программа находит корни.
А фортран до сих пор применяется и любим всякими физиками и прочими математиками. Последний стандарт от 2008 года.
Здесь F90/GFortran:
program q80495438
real :: a, b, c, d, x1, x2
complex :: cx1, cx2
print *, "введите коэффициенты квадратного уравнения a, b, c"
read *, a, b, c
d = b * b - 4 * a * c
if (d > 0) then
x1 = (-b - sqrt(d)) / (2 * a)
x2 = (-b + sqrt(d)) / (2 * a)
print *, "два корня: ", x1, x2
elseif (d == 0) then
x1 = -b / (2 * a)
print *, "один корень: ", x1
else
cx1 = (-b - sqrt(cmplx(d, 0))) / (2 * a)
cx2 = (-b + sqrt(cmplx(d, 0))) / (2 * a)
print *, "комплексные корни: "
print *, cx1, cx2
end if
end program q80495438
ЗЫ: следует учесть, что квадратное уравнение может быть вырожденным, к примеру, при a = 0, получается уравнение прямой, но это сделай как-нибудь сам. Вот только не знаю, насколько эффективно данная программа находит корни.
А фортран до сих пор применяется и любим всякими физиками и прочими математиками. Последний стандарт от 2008 года.
Фортран, помнится мне, вполне прилично работает с комплексными числами, что существенно упрощает "эффективный алгоритм". Программу, извини, не напишу - последний раз я Фортран живым видел лет 12 назад. А алгоритм решения приблизительно такой (псевдокод) :
read( double a, b, c,)
complex d:=b*b-4*a*c
complex c1:=(-b+sqrt(d))/2/a
complex c2:=(-b-sqrt(d))/2/a
print(c1,c2)
read( double a, b, c,)
complex d:=b*b-4*a*c
complex c1:=(-b+sqrt(d))/2/a
complex c2:=(-b-sqrt(d))/2/a
print(c1,c2)
Хороший алгоритм стоит денег, а простым всех научили в школе.
ЭФФЕКТИВНО корни квадратного уравнения? Это как? Тут, насколько я помню свой третий класс, есть простая формула. Дискриминант и прочее. Насколько я помню свой универ (первый курс) , там чуть все усложняется (добавляется еще одна формула) для универсального решения в комплексной плоскости. И все. Чего эффективного?
И где вы достали такой экзотический язык как фортран?
И где вы достали такой экзотический язык как фортран?
Похожие вопросы
- Помогите написать в QBasic программу-фильтр! У МЕНЯ ЗАЧЕТ!!!
- Помогите написать алгоритм к задаче по информатике
- помогите написать алгоритм в basice
- Здраствуйте, помогите написать вот такую программу.
- Помогите написать код для программы...
- Помогите написать на PascalABC программу
- Помогите написать в Паскале программу
- помогите написать на Си программу, пожалуйста
- Нужно написать программу (помогите с алгоритмом) с++
- Помогите написать простые программы и задачи в Pascal ABC. Алгоритмы ветвления. Информатика. Програмирование.