Ruby/Duotą centų kiekį išreikšti mažiausiu monetų skaičiumi
Išvaizda
< Ruby
Programa, duotą centų kiekį, išreiškianti mažiausiu monetų skaičiumi.
Paprastas variantas
[keisti]Paskalio variantas
[keisti]program centai; var suma, { pinigų suma } ct50, ct20, ct10, ct5, ct2, ct1: integer; { monetos } begin readln(suma); ct50 := suma div 50; suma := suma mod 50; ct20 := suma div 20; suma := suma mod 20; ct10 := suma div 10; suma := suma mod 10; ct5 := suma div 5; suma := suma mod 5; ct2 := suma div 2; ct1 := suma mod 2; writeln(' Monetu po'); writeln('50 ct: ', ct50); writeln('20 ct: ', ct20); writeln('10 ct: ', ct10); writeln(' 5 ct: ', ct5); writeln(' 2 ct: ', ct2); writeln(' 1 ct: ', ct1) end.
Ruby variantas
[keisti]suma = gets.to_i suma, ct50 = suma % 50, suma / 50 # Ruby kalboje galima daryti tokius priskyrimus suma, ct20 = suma % 20, suma / 20 # dviejų kintamųjų sukeitimas Ruby kalboje suma, ct10 = suma % 10, suma / 10 # užrašomas paprastai a, b = b, a suma, ct5 = suma % 5, suma / 5 ct1, ct2 = suma % 2, suma / 2 puts ' Monetu po' puts "50 ct: #{ct50}" # Eilutėse su kabutėmis(") viduje puts "20 ct: #{ct20}" # galima įterpti kintamuosius puts "10 ct: #{ct10}" # ar netgi reiškinius puts " 5 ct: #{ct5}" # pvz: puts "a + b = #{a + b}" puts " 2 ct: #{ct2}" puts " 1 ct: #{ct1}"
Protingesnis variantas
[keisti]Rezultatuose nerodo tų nominalų monetų, kurių kiekis yra nulis.
Paskalio variantas
[keisti]program centai; var pradine_suma, suma, { pinigų suma } ct50, ct20, ct10, ct5, ct2, ct1: integer; { monetos } begin readln(pradine_suma); suma := pradine_suma; ct50 := suma div 50; suma := suma mod 50; ct20 := suma div 20; suma := suma mod 20; ct10 := suma div 10; suma := suma mod 10; ct5 := suma div 5; suma := suma mod 5; ct2 := suma div 2; ct1 := suma mod 2; writeln(pradine_suma, ' ct = '); if ct50 > 0 then writeln(ct50, ' po 50 ct'); if ct20 > 0 then writeln(ct20, ' po 20 ct'); if ct10 > 0 then writeln(ct10, ' po 10 ct'); if ct5 > 0 then writeln(ct5, ' po 5 ct'); if ct2 > 0 then writeln(ct2, ' po 2 ct'); if ct1 > 0 then writeln(ct1, ' po 1 ct'); end.
Ruby variantas
[keisti]pradine_suma = gets.to_i suma = pradine_suma suma, ct50 = suma % 50, suma / 50 suma, ct20 = suma % 20, suma / 20 suma, ct10 = suma % 10, suma / 10 suma, ct5 = suma % 5, suma / 5 ct1, ct2 = suma % 2, suma / 2 puts "#{pradine_suma} ct = " puts "#{ct50} po 50 ct" if ct50 > 0 puts "#{ct20} po 20 ct" if ct20 > 0 puts "#{ct10} po 10 ct" if ct10 > 0 puts "#{ct5} po 5 ct" if ct5 > 0 puts "#{ct2} po 2 ct" if ct2 > 0 puts "#{ct1} po 1 ct" if ct1 > 0
Įmanomi ir kiti if panaudojimo variantai:
pradine_suma = gets.to_i suma = pradine_suma suma, ct50 = suma % 50, suma / 50 suma, ct20 = suma % 20, suma / 20 suma, ct10 = suma % 10, suma / 10 suma, ct5 = suma % 5, suma / 5 ct1, ct2 = suma % 2, suma / 2 puts "#{pradine_suma} ct = " if ct50 > 0 # dažniausiai įprastas if variantas puts "#{ct50} po 50 ct" # naudojamas tada, kai reikia įvykdyti ne vieną sakinį end # taip, kaip paskalyje if ... then begin ... end if ct20 > 0 then # norintys gali naudoti ir then puts "#{ct20} po 20 ct" end # galime rašyti vienoje eilutėje, tačiau tada reikia ; if ct10 > 0 then puts "#{ct10} po 10 ct"; end puts "#{ct5} po 5 ct" if ct5 > 0 puts "#{ct2} po 2 ct" if ct2 > 0 puts "#{ct1} po 1 ct" if ct1 > 0
Variantas, naudojant for ciklą:
suma = gets.to_i puts "#{suma} ct = " for nominalas in [50, 20, 10, 5, 2, 1] do suma, kiekis = suma % nominalas, suma / nominalas puts "#{kiekis} po #{nominalas} ct" if kiekis > 0 end