2016-08-24 5 views
0

私はプログラミングとスタックオーバーフローのブログを初めて使いました。うまくいけば、私は「していてはいけません。VBプログラミング。整数配列と素数

5つの整数を配列に格納し、それらが素数であるかどうかを調べるという質問を割り当てられました。次のように

私が持っている質問は以下のとおりです。

  1. 私は整数配列にそれらを保存するにはどうすればよいですか?

  2. 私のプログラムでは、すべての入力を入力よりも少ない数字で分割する方法を教えてください。

私がこれまでに書かれているコードは、このです:

をSub Main()に提供事前知識を持つこのようなもののすべてを学ぶ

Dim a, b, c, d, e As Integer 
    Dim isPrime As Boolean = True 

    Console.WriteLine("Please enter a value for a: ") 
    a = Console.ReadLine 
    Console.WriteLine("Please enter a value for b: ") 
    b = Console.ReadLine 
    Console.WriteLine("Please enter a value for c: ") 
    c = Console.ReadLine 
    Console.WriteLine("Please enter a value for d: ") 
    d = Console.ReadLine 
    Console.WriteLine("Please enter a value for e: ") 
    e = Console.ReadLine 



    If a Mod (a - 1) > 0 Or a = 2 And a <> 0 Then 
     Console.WriteLine("a is a prime number") 
    ElseIf a Mod (a - 1) = 0 Then 
     Console.WriteLine("a is not a prime number") 
    End If 

    If b Mod (b - 1) > 0 Or b = 2 And b <> 0 Then 
     Console.WriteLine("b is a prime number") 
    ElseIf b Mod (b - 1) = 0 Then 
     Console.WriteLine("b is not a prime number") 
    End If 

    If c Mod (c - 1) > 0 Or c = 2 And c <> 0 Then 
     Console.WriteLine("c is a prime number") 
    ElseIf c Mod (c - 1) = 0 Then 
     Console.WriteLine("c is not a prime number") 
    End If 

    If d Mod (d - 1) > 0 Or d = 2 And d <> 0 Then 
     Console.WriteLine("d is a prime number") 
    ElseIf d Mod (d - 1) = 0 Then 
     Console.WriteLine("d is not a prime number") 
    End If 

    If e Mod (e - 1) > 0 Or e = 2 And e <> 0 Then 
     Console.WriteLine("e is a prime number") 
    ElseIf e Mod (e - 1) = 0 Then 
     Console.WriteLine("e is not a prime number") 
    End If 

    Console.ReadKey() 
End Sub 

は、物事が難しいので、任意の助けをしました大変感謝しています!

答えて

0
Dim a, b, c, d, e As Integer 

Console.WriteLine("Please enter a value for a: ") 
a = Console.ReadLine 
Console.WriteLine("Please enter a value for b: ") 
b = Console.ReadLine 
Console.WriteLine("Please enter a value for c: ") 
c = Console.ReadLine 
Console.WriteLine("Please enter a value for d: ") 
d = Console.ReadLine 
Console.WriteLine("Please enter a value for e: ") 
e = Console.ReadLine 

Dim intary() As Integer = {CInt(a), CInt(b), CInt(c), CInt(d), CInt(e)} 
For Each number As Integer In intary 
    Dim prime As Boolean = True 
    For x As Integer = 2 To number - 1 
     If number Mod x = 0 Then 
      prime = False 
      Exit For 
     End If 
    Next 
    If prime Then 
     Console.WriteLine(number.ToString & " IS a prime number") 
    Else 
     Console.WriteLine(number.ToString & " IS NOT a prime number") 
    End If 
Next 

整数配列は最初の行に作成されます。次に、配列の各項目を繰り返し処理し、素数テストを実行することをコンセプトにしています。したがって、配列内の各数値に対して素数テストを実行するforループがあります。それぞれの数字について、テスト番号を2つからすべての数字で指定されたテスト番号まで分割し、残りのmodをチェックします。それらのどれかが数値そのもののほかにゼロを返した場合、素数はありません。示されている例では、私は各番号がテストに合格したか失敗したかを示す単純な行を印刷しています。これがあなたの新しい言語を学ぶのに役立ちます。

サイドノートでは、配列を薄暗くして、ユーザーから取得した新しい番号を追加することもできますが、そのたびに配列をリミンドまたはサイズ変更する必要があります。私が書いた例では、すでに入力ロジックを使用しています。割り当てが明示的に配列を要求していない場合は、リストを使用する場合は、よりクリーンなソリューションを書くことができます。

+0

あなたは聖人です。私は今それを完全に得る! –

+0

私はいつか私はそれを支払うことができるかもしれないように仕事に戻って行くつもりです! –

+0

私は助けることができてうれしい!このトピックに関する二次的な質問がない場合は、回答としてマークすることをお勧めします。それは両方のポストを他のStackOverflowユーザーに受け入れられた解決策が含まれているとマークし、私の方法でいくつかのポイントを撃つ;) – soohoonigan

0

この質問に対する基本的な答えは、ユーザーの入力を受け取り、2とユーザー入力の間のこれらの数値のそれぞれにmodを実行することです。

私のように始めている人たちには、あなたが基本的な考え方と変わらないことがあり、それは結局意味をなさないでしょう!

関連する問題