Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: Lua: itseisarvoepäyhtälöt

koodaaja [11.03.2022 19:04:40]

#

Tämä esittelee itseisarvoepäyhtälöiden laskemista. Ohjelman laskiessa suurempi kuin tapauksia lasketaan suurempi tai pienempi kuin, kuten esim. x < -8 tai x > 8 ja laskettaessa pienempi kuin lasketaan -8 < x < 8, joka voidaan ilmaista myös ja sanalla.

while true do
 print("Syötä kerroin, vakiotermi ja luku")
 kerroin, vakiotermi, luku = io.read("*number","*number","*number")
 if kerroin ~= 0 then
  break
 end
end

print("Onko yhtälö muotoa 1) ax^2+b vai 2) ax+b")
muoto = io.read("*number")


--Näytetään lausekeet
--Itsearvoyhtälön ollessa suurempi kuin lasketaan pienempi kuin luku (negatiivinen) tai suurempi kuin luku (positiivinen)
--Itsearvoyhtälön ollessa pienempi kuin lasketaan negatiivisesta positiiviseen voidaan käyttää sanaa ja
if muoto == 1 then
  io.write(string.format("|%d*x^2 + %d| >    %d\n",kerroin,vakiotermi,luku))
  io.write(string.format("|%d*x^2 + %d| < %d \n",kerroin,vakiotermi,luku))

else

  io.write(string.format("|%d*x + %d| >    %d\n",kerroin,vakiotermi,luku))
  io.write(string.format("|%d*x + %d| < %d \n",kerroin,vakiotermi,luku))

end

--Lasketaan ensin suurempi kuin

tuntematon_1 = (luku-vakiotermi)/kerroin
tuntematon_2 = (-1*luku-vakiotermi)/kerroin

if muoto == 1 then
 if tuntematon_1 > 0 then
   tuntematon_1 = math.sqrt(tuntematon_1)
 else
   io.write("Ei ole määritelty reaalilukujen joukossa!")
   tuntematon_1 = 0.0
 end

 if tuntematon_2 > 0 then

   tuntematon_2 = math.sqrt(tuntematon_2)
 else

   io.write("Ei ole määritelty reaalilukujen joukossa!")
   tuntematon_2 = 0.0
 end

end

--Näytetään tulokset.
if kerroin < 0 then
  io.write(string.format("x > %.2f tai x < %.2f\n",tuntematon_2,tuntematon_1))

else
  io.write(string.format("x > %.2f tai x < %.2f\n",tuntematon_1,tuntematon_2))

end

--Lasketaan sitten pienempi kuin
if (tuntematon_1 > tuntematon_2) then
  io.write(string.format("%.2f < x < %.2f\n",tuntematon_2,tuntematon_1))

else
  io.write(string.format("%.2f < x < %.2f\n",tuntematon_1,tuntematon_2))

end

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta