Naloga:
Napišite program, ki reši kvadratno enačbo v realnih številih. Program naj vas na začetku prosi, da vnesite koeficiente kvadratne enačbe in vam nato izpiše rešitve vse mozne rešitve. Upoštevajte vse možnosti.
program kvadrat2 implicit none real :: a,b,c,d,x1,x2 write (*,*) "vnesi parametre kvadratne enacbe" read (*,*) a,b,c write(*,'(a2,f10.2)')'a=',a write(*,'(a2,f10.2)')'b=',b write(*,'(a2,f10.2)')'c=',c if (a.eq.0) then if (b.eq.0) then if (c.eq.0) then write(*,*)'Imamo identiteto, vsak x resi enacbo' else write(*,*)'Enacba ni resljiva' endif else write(*,*)'Enacba je linearna in ima eno niclo' write(*,'(a2,f10.5)')'x=',-c/b endif else d=b**2-4e0*a*c if (d.eq.0) then x1=-b/2e0/a write(*,*)'Enacba ime eno dvojno resitev' write(*,'(a5,f10.5)')'x1,2=',x1 elseif (d.gt.0) then x1=(-b+sqrt(d))/2e0/a x2=(-b-sqrt(d))/2e0/a write(*,*)'Enacba ima dve resitvi' write(*,'(a3,f10.5)')'x1=',x1 write(*,'(a3,f10.5)')'x2=',x2 else x1=-b/2e0/a x2=sqrt(-d)/2e0/a write(*,*)'Imamo dve kompleksni resitvi' write(*,'(a3,f10.5,a5,f10.5)')'x1=',x1,' +i*',x2 write(*,'(a3,f10.5,a5,f10.5)')'x1=',x1,' +i*',x2 endif endif end program kvadrat2
Tekst sedaj shranimo kot datoteko kvadrat2.f90 in prevedemo.
Tu je sedaj še print screen postopka prevajanja z nekaj rezultati. V kolikor vam kakšna podrobnost ni jasna, mi sporočite.
Nazaj na osnovno stran za predmet Uporaba numeričnih metod v kemiji.