Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Polinomio 2° grado - poli2g.rb

poli2g.rb

Caricato da: Red
Scarica il programma completo

  1. =begin
  2.   Classe che gestisce un polinomio di 2° grado,permette di:
  3.   -trovare il vaolore del polinomio
  4.   -scalare il polinomio
  5.   -eseguire la somma o la differenza tra due polinomi
  6. =end
  7. class Poli2g
  8.    
  9.     attr_reader :a,:b,:c #termini del polinomio: ax^2+bx+c
  10.  
  11.     def initialize a=1,b=0,c=0
  12.         @a=a.to_f
  13.         @b=b.to_f
  14.         @c=c.to_f
  15.     end
  16.    
  17.     def inspect
  18.                 stampa="("+a.to_s+")"+"x^2+"+"("+b.to_s+")"+"x+"+"("+c.to_s+")";
  19.                 return stampa;
  20.     end
  21.    
  22.     #metodo per calcolare il valore del polinomio
  23.     def valore x
  24.         x=x.to_f
  25.                 valore=a*x*x+b*x+c; #posso togliere valore=
  26.                 return valore;   #posso togliere return
  27.     end
  28.    
  29.     #mtodo per scalare il polinomio
  30.     def scalare k
  31.                 k=k.to_f
  32.                 Poli2g.new(k*a,k*b,k*c);
  33.     end
  34.    
  35.     #metodo che somma due polinomi
  36.     def somma addendo
  37.         Poli2g.new(a+addendo.a,b+addendo.b,c+addendo.c);
  38.     end
  39.    
  40.     #metodo che sottrae due polimoni
  41.     def differenza sottraendo
  42.         sottraendo=sottraendo.scalare(-1)
  43.         Poli2g.new(a+sottraendo.a,b+sottraendo.b,c+sottraendo.c)
  44.     end
  45. end
  46.  
  47. def main
  48.    
  49.     print "\nInserisci a: "
  50.     a=gets.chomp
  51.     print "\nInserisci b: "
  52.     b=gets.chomp
  53.     print "\nInserisci c: "
  54.     c=gets.chomp
  55.     p1=Poli2g.new(a,b,c)
  56.     puts "P1: ",p1.inspect
  57.    
  58.     print "\nInserisci a: "
  59.     a=gets.chomp
  60.     print "\nInserisci b: "
  61.     b=gets.chomp
  62.     print "\nInserisci c: "
  63.     c=gets.chomp
  64.     p2=Poli2g.new(a,b,c)
  65.     puts "P2: ",p2.inspect
  66.    
  67.     print "\nInserisci la x: "
  68.     x=gets.chomp
  69.     puts "\nP1 con x=#{x} vale: #{p1.valore(x)}"
  70.     puts "\nP2 con x=#{x} vale: #{p2.valore(x)}"
  71.    
  72.     print "\nDi quanto vuoi scalare: "
  73.     x=gets.chomp
  74.     puts "\nP1 scalato di #{x} e':", "#{p1.scalare(x).inspect}"
  75.     puts "\nP2 scalato di #{x} e':", "#{p2.scalare(x).inspect}"
  76.     print "\np1+p2= ",p1.somma(p2).inspect
  77.     print "\np1-p2= ",p1.differenza(p2).inspect
  78.    
  79. end
  80.  
  81. main