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

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

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

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

解決済

1回答

622閲覧

VB.NET Maxプロシージャーを使わず、新しくプロシージャを作成してやる方法。

fffu8

総合スコア37

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

1グッド

1クリップ

投稿2020/03/12 04:40

編集2020/03/12 05:13

以下の文を変更して、
Maxプロシージャを使わずに新しくプロシージャを作って作成したいのですが、
どのようにしたらよろしいですか?

Module Module1

Sub Main() Dim data As Integer() = {2, 4, 7, 8, 3, 4, 5, 1, 2, 3, 7, 3, 6, 7, 2, 6, 3, 8, 3, 1, 7, 1, 9, 3, 5, 3, 6, 7, 3, 9, 2, 6, 3, 8, 3, 1, 7}

Dim max = data(0)

For i As Integer = 0 To data.Length - 1 If data(i) > max Then max = data(i) End If Next Console.WriteLine("最大値は" + CStr(max) + "です") Console.ReadLine() End Sub

End Module

s.k👍を押しています

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

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

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

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

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

ttyp03

2020/03/12 04:43

プロシージャの作り方がわからないのでしょうか?最大値の求め方がわからないのでしょうか? プロシージャの作り方はさんざん質問しているようなので、当然後者と思いますが念のため。
fffu8

2020/03/12 04:49

プロシージャの作り方がわからないです。
workaholist

2020/03/12 06:01

vb.net プロシージャ 作り方」をgoogleで検索してみてください。
guest

回答1

0

ベストアンサー

プロシージャの作り方がわからないとのことで、こちらを参照してください。
https://teratail.com/questions/246383

ある程度基礎を身に着けて自分なりに作ってみたらコードを提示してください。
その過程で自力で作ることができたなら、この質問は自己解決させてしまって構いません。
よろしくお願いします。

投稿2020/03/12 04:53

ttyp03

総合スコア16998

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

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

fffu8

2020/03/12 05:19

Module Module1 Sub Main() Total() End Sub Private Sub Total() Dim data As Integer() = {2, 4, 7, 8, 3, 4, 5, 1, 2, 3, 7, 3, 6, 7, 2, 6, 3, 8, 3, 1, 7, 1, 9, 3, 5, 3, 6, 7, 3, 9, 2, 6, 3, 8, 3, 1, 7} Dim max = data(0) For i As Integer = 0 To data.Length - 1 If data(i) > max Then max = data(i) End If Next Console.WriteLine("最大値は" + CStr(max) + "です") Console.ReadLine() End Sub End Module
ttyp03

2020/03/12 05:27

ん?Mainの中身をTotalに置き換えただけでは? やりたいことはInteger.Maxのようなプロシージャを作りたいのでしょう? まずはSubではなくFunctionに置き換えて、Mainは次のような形になることを目標にしてみてください。 Sub Main() Dim data As Integer() = {2, 4, 7, 8, 3, 4, 5, 1, 2, 3, 7, 3, 6, 7, 2, 6, 3, 8, 3, 1, 7, 1, 9, 3, 5, 3, 6, 7, 3, 9, 2, 6, 3, 8, 3, 1, 7} Console.WriteLine("最大値は" + CStr(Total(data)) + "です") Console.ReadLine() End Sub
fffu8

2020/03/12 05:49

Private Sub Total (Byval number As Integer ) Dim data As Integer() = {2, 4, 7, 8, 3, 4, 5, 1, 2, 3, 7, 3, 6, 7, 2, 6, 3, 8, 3, 1, 7, 1, 9, 3, 5, 3, 6, 7, 3, 9, 2, 6, 3, 8, 3, 1, 7} Dim max As Integer = o for i As Integer = 0 To data.Length -1 if data(i) > max than max = data(i) end if next
fffu8

2020/03/12 06:03

Private Sub Total()の中の書き方がわかりません。
ttyp03

2020/03/12 06:13

なんでTotalのなかにdata持っちゃってるの。。。 あとSubじゃなくてFunctionにしましょうって書きました(Subは戻り値がないプロシージャ、Functionは戻り値があるプロシージャ) でも惜しいところまでは行ってます。
fffu8

2020/03/12 06:18

Module Module1 Sub Main() Dim data As Integer() = {2, 4, 7, 8, 3, 4, 5, 1, 2, 3, 7, 3, 6, 7, 2, 6, 3, 8, 3, 1, 7, 1, 9, 3, 5, 3, 6, 7, 3, 9, 2, 6, 3, 8, 3, 1, 7} Console.WriteLine("最大値は" + CStr(Total(data)) + "です") Console.ReadLine() End Sub Private Function Total(ByVal number As Integer) For i As Integer = 0 To data.Length - 1 If data(i) > max Then max = data(i) End If Return max Next End Function End Module
ttyp03

2020/03/12 06:32

コードだけ見せられても。。。 出来たんですか?問題あるんですか?
fffu8

2020/03/12 06:36

dataの所でエラーが発生してます。これ以上よくわかりません。
ttyp03

2020/03/12 06:52

dataってたくさんあるけどどこのdataですか? 質問の仕方ももう少し学んでください。人に伝わるように。 まあだいたいわかるので回答します。 以下の見直しを。 ・引数ではnumberとして受け取っているのに、Total内ではdataを使っている。 ・引数はnumberはnumber()としてください(Mainで定義しているのは配列ですよね?) ・プロシージャの戻り値の型を指定する。Function行の末尾に As Integer を付加する。 ・Returnの位置がおかしい。
fffu8

2020/03/12 07:04 編集

Module Module1 Sub Main() Dim data As Integer() = {2, 4, 7, 8, 3, 4, 5, 1, 2, 3, 7, 3, 6, 7, 2, 6, 3, 8, 3, 1, 7, 1, 9, 3, 5, 3, 6, 7, 3, 9, 2, 6, 3, 8, 3, 1, 7} Console.WriteLine("最大値は" + CStr(Total(data)) + "です") Console.ReadLine() End Sub Private Function Total(ByVal number As Integer()) As Integer Dim max As Integer = 0 For i As Integer = 0 To number.Length - 1 If number(i) > max Then max = number(i) End If Next Return max End Function End Module
ttyp03

2020/03/12 07:03

まだdata使ってる。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問