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

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

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

3回答

208閲覧

C# ユーザーが指定したファイルを開きその中から平均値、最小値、最大値を表示したい

Waty

総合スコア9

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

1クリップ

投稿2018/04/14 16:43

前提・実現したいこと

現在、ユーザーが指定したファイルを開きその中から平均値、最小値、最大値を表示するプログラムを作ろうと思っています。 
流れとしましては、
①ユーザーにファイルの名前を指定して開くのを促す。
②そのファイルの中から平均値、最小値、最大値を表示する。

(異なる例外に対して適切なエラーメッセージを含む例外処理を含む)

試したこと

インターネットで検索しファイルの開き方、平均値、最大値、最小値の求め方は分かったのですがどのような流れで書いていけば良いのかなど初心者のため分かりません。
ご協力お願い致します。

補足情報(FW/ツールのバージョンなど)

Visual Studio

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

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

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

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

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

guest

回答3

0

流れがわからないとのことなので流れを書きます。

まず言語に何を使うかを選定します。
Visual Studio で C# ということですが、この場合は PowerShell の方が手軽です。
もちろん C# でもできますので以降はそれを想定します。

次に CUI か GUI かを決めます。
それぞれ何を表すかがわからない場合はググってください。
すぐにわかります。

同様に、以降のわからない単語はググってください。

次にユーザーの入力を受け付ける部分を書きます。
CUI ならコマンドライン引数が簡単です。
GUI なら入力用のウィンドウを作る必要があります。

ユーザーの入力をもとにファイルを開きます。
例えば C# なら「C# ファイル入出力」のように「<言語名> ファイル入出力」でググればすぐに解決するでしょう。

ファイルの中身を読み込んで各項目を数値に直します。
「C# 文字列 数値 変換」で。

読み込んだ数値を List<int> に格納します。
読み込みながらの処理も可能ですが、一度にやると処理が複雑になるので一度データをリストに保存しておいてそのリストに対して繰り返し処理を行えばいいでしょう。
O(n) の処理なので現実的な時間で可能と思います。

LINQ を使うかループを三つ作り、それぞれ平均値・最大値・最小値を求めます。
どちらも簡単ですし実例も豊富にあると思います。

最終的に得たデータを出力します。
ファイルに出力するかユーザーに出力するか想定される仕様に沿ってください。

投稿2018/04/15 00:04

Zuishin

総合スコア28660

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

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

0

C#など不要。そう、シェル芸ならね!

bash

1$ cat file 26768 34458 4203 55313 62712 72204 82889 91993 109488 111222 12$ cat file|awk '!a||$1<a{a=$1}$1>b{b=$1}{c+=$1}END{print c/NR,a,b}' 133725 203 9488

追記

PowerShell

1PS> gc file.txt 26768 34458 4203 55313 62712 72204 82889 91993 109488 111222 12PS> gc file.txt|measure -Average -Minimum -Maximum|ft -Property Average,Minimum,Maximum 13 14Average Minimum Maximum 15------- ------- ------- 16 3725 203 9488

投稿2018/04/14 21:11

編集2018/04/14 23:52
hichon

総合スコア5737

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

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

asm

2018/04/14 22:49 編集

補足にVisualStudioとある以上少なくともWindows環境を想定すべきでは
defghi1977

2018/04/14 22:57

windows上でもbashが動くようになっており, かつ質問者のコードが提示されていない以上(いささか遠回りではあるが)正当な回答とは思います.
hichon

2018/04/14 23:52

PowerShell芸を追記しました。
asm

2018/04/15 00:14

powershellだと何も言えませんね。 低評価取り消します。
fuzzball

2018/04/17 04:21

MacにもVisual Studioあります‥
guest

0

こんな感じでしょうか?
static void Main(string[] args)
{
①ファイルを開く
②ファイルの中身を読む(ループ開始)
③最大値の判定&最大値の更新
④最小値の判定&最小値の更新
⑤点数を合計する
②'ループ終了

⑥平均値を求める }

投稿2018/04/25 06:29

tamina

総合スコア136

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問