Newer
Older
Ruby / j2423_last.rb
@WATANABE Haruki WATANABE Haruki on 13 Jan 2025 2 KB 2025-01-13 10:23:09
#!/usr/bin/env ruby
# -*- coding: utf-8 -*-
#テーマ 買い物後や、お金が貰えたときに、今どの位お金があるのかを知りたいけど、いちいち計算するのが面倒くさい人の計算を助けるプログラムです。
#背景 僕が残金を知りたくなったときに、自分の頭で計算すると誤差が出るし、電卓を使うと間違えて入力したら気がつけないので、どっちもの欠点を補えるようなプログラムを作ろうと思いました。
#アイディア  while trueを使う 間違えた時用に数字を変えれるようにする 配列を使う。
#結果 配列を使って作ることができた。修正もできた。だけど質問が多すぎたり、ーを使わないと減った時の対応ができないので、改良していきたい
i = 0
nedan =[]
puts"残金を入力"
za = gets.chomp.to_i

while true 
 printf("%d番目の値段を入力\n",i+1)
 nedan << gets.to_i

 za += nedan[i]
 
 printf("残金は %d \n",za)
 

 puts"訂正しますか?(する=0 しない=その他の数)"
 sen = gets.to_i
 if sen == 0
   puts"何円に変えますか?"
   kaesuu = gets.to_i

   za -= nedan[i]  
 
   nedan[i] = kaesuu
   za += kaesuu
   printf("残金は%d円\n",za)
   
 end

 i += 1
 
 puts"終了しますか(する=0 しない=その他の数)"
 sennta = gets.to_i
 if sennta == 0
   break
 end
 
#i += 1 
end

u = 0
while u < i
  printf("%dつ目の値段は%d円です\n",u+1,nedan[u])
 
  u += 1  
end
printf("残金は%d円\n",za)
puts"変更する箇所はありますか[はい=0 終了=その他)]"
sen = gets.to_i

if sen == 0
  puts"何番目を変えますか?"
  kaeban = gets.to_i

  if kaeban == 0 or kaeban > i
    print("変更を中止します\n")
  
  else

   kaeban -= 1  #配列は0から始まるので
  
   
   puts"何円に変えますか?"
   kaesuu = gets.to_i

   za -= nedan[kaeban]  #残高を一旦取り消し
 
   nedan[kaeban] = kaesuu
   za += kaesuu
   printf("残金は%d円\n",za)

   u = 0
   while u < i
    printf("%d:%d円\n",u+1,nedan[u])
    u +=1
    end

   printf("変更後の残金は%d円です\n",za)
 end
end

print("プログラム終了\n")