さて、私はまだプログラミングの基礎を学んでいます。まだ擬似コードの使い方を学んでいます。私は擬似コード操作を読み、書く練習をしました。まだまだ戸惑い、インストラクターに質問すると気になります。そうではないかもしれませんが、質問があるときはいつもそう感じますが、その障壁を打ち破ろうとしています。それで、私は私の本から例をあげるつもりです、そして、誰かが私を理解するのを手伝ってくれるかどうか見るためにいくつかの質問をします。
この例は、レコードをシーケンシャルファイルに挿入することに関するものです。私の教科書には次のように書かれています。
「成績ファイルの内容に、生徒の名前に従ってアルファベット順にレコードがリストされていると仮定します。新しい生徒がクラスに参加するとします。次に、新しいレコードを挿入する必要があります。そのレコードの各フィールドにデータを配置する必要があります。この例では、成績には2つのフィールドがあります。1つは学生の名前用、もう1つは学生のスコア用です。したがって、NewNameおよびNewScoreという変数に格納されている値を挿入します。これらの値はユーザーが入力し、次のファイルに挿入されます。アルファベット順を維持した適切な場所。」
次に、擬似コードを表現します。
1 Declare NewName As String
2 Declare NewScore As Integer
3 Open “grades” For Input As GivenFile
4 Open “scratch” For Output As TempFile
5 Write “Enter name and score for the new student:”
6 Input NewName, NewScore
7 Set Inserted == 0
8 While (NOT EOF(GivenFile)) AND (Inserted == 0)
9 Read GivenFile, Student, Score
10 If NewName < Student Then
11 Write TempFile, NewName, NewScore
12 Set Inserted = 1
13 End If
14 Write TempFile, Student, Score
15 End While
16 If Inserted == 0 Then
17 Write TempFile, NewName, NewScore
18 End If
19 While NOT EOF(GivenFile)
20 Read GivenFile, Student, Score
21 Write TempFile, Student, Score
22 End While
23 Close GivenFile, TempFile
24 Copy scratch onto grades
3行目と4行目がわかりません。なぜ一方が入力で、もう一方が出力なのですか。入力はプログラムに挿入されるものであり、出力はプログラムに挿入されたものの結果であると思いました。
また、私は数字だけで関係演算子を使用していたので、10行目にあるのでそれらを見ると混乱します。それは私に何を伝えようとしているのですか?(NewName <Student)は、TempFile、Student、Scoreを書き込む新しい学生がいるかどうかを教えてくれますか?
最初のWhileループはInserted=1を与えており、ループを終了します。次に、Inserted == 0(16行目)を繰り返します。これは、whileループを繰り返す別の新しい学生がいる場合に備えて意味しますか?私はこれで本当に迷子になりました。
最後に、なぜスクラッチを成績にコピーする必要があるのですか?
すべての質問に申し訳ありません、私はとても混乱しています、そして私は自分で教えなければならないクラスをオンラインで取っています、そして私はこれについて話し合う人が誰もいません。
注:これは割り当てとは関係がなく、プログラミングのロジックをよりよく理解しようとしているだけです。