質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

ループ

ループとは、プログラミングにおいて、条件に合致している間、複数回繰り返し実行される箇所や、その制御構造を指します

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

3回答

923閲覧

Ruby 配列の数値データから負の数を除外してその合計の数と平均値を求めたい(forループ版)

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

ループ

ループとは、プログラミングにおいて、条件に合致している間、複数回繰り返し実行される箇所や、その制御構造を指します

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2019/12/12 08:46

-7.1, 9.8, 23.7, 5.6, 3.0, 30.8, 27.3, 23.6, 39.1, -8.9, 24.0, -6.1, 21.3, 16.0, -2.6, 22.3, 4.4, 2.2, 9.3, 24.5, -2.0, -8.7, 0.0, 15.5, 4.2

上記の数値データから、負の数を除外したデータの数と平均値を下記のような形で出力できるようなプログラムを構成したいです。

合計= 19
平均値 = 16.14

プログラムのフォームは決まっています。
この不完全なソースに、適当に補って作成したいです。

ar = [-7.1, 9.8, 23.7, 5.6, 3.0, 30.8, 27.3, 23.6, 39.1, -8.9, 24.0, -6.1, 21.3, 16.0, -2.6, 22.3, 4.4, 2.2, 9.3, 24.5, -2.0, -8.7, 0.0, 15.5, 4.2]
count = 0
sum = 0.0
for i in ????
このループの中で if 構文を使ってデータを判定して集計する。
end
puts ??????
puts ??????

私の考えた答えは
ar = [-7.1, 9.8, 23.7, 5.6, 3.0, 30.8, 27.3, 23.6, 39.1, -8.9, 24.0, -6.1, 21.3, 16.0, -2.6, 22.3, 4.4, 2.2, 9.3, 24.5, -2.0, -8.7, 0.0, 15.5, 4.2]
n = ar.size
count = 0
sum = 0.0
for i in 0 .. ar.size-1
if ar[i] >= 0
sum += 1
count +=
end
end
puts "合計 = #{count}"
puts "平均値 =#{sum / count} "

分かりにくい文章で申し訳ないです。
私の考えた答えでプログラムを構成しても
syntax error, unexpected keyword_end
syntax error, unexpected end-of-input, expecting keyword_end
↑のようなエラーが出てきてしまい、どうしたらいいかわかりません。
正しい答えを教えてください。
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/12/12 09:19 編集

間違えて自分宛に修正依頼をしてしまいました…
guest

回答3

0

修正しました。

ruby

1ar = [-7.1, 9.8, 23.7, 5.6, 3.0, 30.8, 27.3, 23.6, 39.1, -8.9, 24.0, -6.1, 21.3, 16.0, -2.6, 22.3, 4.4, 2.2, 9.3, 24.5, -2.0, -8.7, 0.0, 15.5, 4.2] 2n = ar.size 3count = 0 4sum = 0.0 5for i in 0 .. ar.size-1 6 if ar[i] >= 0 7 sum += ar[i] 8 count += 1 9 end 10end 11puts "合計 = #{count}" 12puts "平均値 =#{sum / count} " 13

投稿2019/12/13 08:35

tatsu99

総合スコア5458

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

同じ配列だけど、同一の授業なのでしょうか・・・

同様に、条件に合致した場合countを1増やして、sumを数値分増やしてやればいいです。

投稿2019/12/13 03:13

asm

総合スコア15147

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

ruby

1count +=

この行がおかしいです。

投稿2019/12/12 09:10

2KOH

総合スコア999

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/12/12 09:19

どうおかしいのでしょうか? 具体的に教えて頂けますと幸いです。 よろしくお願いいたします。
退会済みユーザー

退会済みユーザー

2019/12/12 11:59

なるほど、だからエラーになったのですね。 調べてみたんですが、count += のあとに出すべき式はどういうものを構成すべきでしょうか。 何度も申し訳ございません。 よろしくお願いいたします。
2KOH

2019/12/12 22:19

「平均 計算方法」などで検索してください。 この程度の答えを自分で導き出せないようであれば、プログラミングをやめた方がいいです。 ちなみに、エラーは出ていませんが、sum += 1 の方も合わせて修正しないと作りたいプログラムにはならないと思います。
退会済みユーザー

退会済みユーザー

2019/12/13 01:57

ありがとうございます。 ご迷惑おかけして申し訳ないです。 sumのほうの修正の仕方を教えて頂けないでしょうか。 そもそも負の数を除外できているのかも不安です。 何度も申し訳ないです。 よろしくお願いいたします。
2KOH

2019/12/13 02:07

それは質問ではなく丸投げです。 答えたくありません。 もっと簡単な問題から取り組むか、プログラミングを諦めてください。
退会済みユーザー

退会済みユーザー

2019/12/13 09:48

それはそうですね。 丸投げしては成長出来ないのでもう一度自分でやってみます。 お手数お掛けして申し訳ございませんでした。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問