=begin
Classe che gestisce un polinomio di 2° grado,permette di:
-trovare il vaolore del polinomio
-scalare il polinomio
-eseguire la somma o la differenza tra due polinomi
=end
class Poli2g
attr_reader :a,:b,:c #termini del polinomio: ax^2+bx+c
def initialize a=1,b=0,c=0
@a=a.to_f
@b=b.to_f
@c=c.to_f
end
def inspect
stampa="("+a.to_s+")"+"x^2+"+"("+b.to_s+")"+"x+"+"("+c.to_s+")";
return stampa;
end
#metodo per calcolare il valore del polinomio
def valore x
x=x.to_f
valore=a*x*x+b*x+c; #posso togliere valore=
return valore; #posso togliere return
end
#mtodo per scalare il polinomio
def scalare k
k=k.to_f
Poli2g.new(k*a,k*b,k*c);
end
#metodo che somma due polinomi
def somma addendo
Poli2g.new(a+addendo.a,b+addendo.b,c+addendo.c);
end
#metodo che sottrae due polimoni
def differenza sottraendo
sottraendo=sottraendo.scalare(-1)
Poli2g.new(a+sottraendo.a,b+sottraendo.b,c+sottraendo.c)
end
end
def main
print "\nInserisci a: "
a=gets.chomp
print "\nInserisci b: "
b=gets.chomp
print "\nInserisci c: "
c=gets.chomp
p1=Poli2g.new(a,b,c)
puts "P1: ",p1.inspect
print "\nInserisci a: "
a=gets.chomp
print "\nInserisci b: "
b=gets.chomp
print "\nInserisci c: "
c=gets.chomp
p2=Poli2g.new(a,b,c)
puts "P2: ",p2.inspect
print "\nInserisci la x: "
x=gets.chomp
puts "\nP1 con x=#{x} vale: #{p1.valore(x)}"
puts "\nP2 con x=#{x} vale: #{p2.valore(x)}"
print "\nDi quanto vuoi scalare: "
x=gets.chomp
puts "\nP1 scalato di #{x} e':", "#{p1.scalare(x).inspect}"
puts "\nP2 scalato di #{x} e':", "#{p2.scalare(x).inspect}"
print "\np1+p2= ",p1.somma(p2).inspect
print "\np1-p2= ",p1.differenza(p2).inspect
end
main