2012-01-12 3 views
-4

私を与えた問題は、私の教授である:基本的なボトムアップアルゴリズムの宿題

はどのようにあなたの教授にお世辞電子メールを送信するために誰かを教えるためにボトムアップアルゴリズムを開発します。オーブン(

  1. Chef.Mix(卵、小麦粉、砂糖、牛乳、ミキシングボウル)
  2. Chef.Preheat:

    この

    は、彼はのオフに、それをベースに私たちを与えたことを、調理に基づく例です)
  3. Chef.insert(打者、オーブン)
  4. Oven.bake(打者)
  5. Chef.remove(打者、オーブン)

これは私が得たもので、何か問題があったのか、それともそれぞれのステップの最後にそれを呼び出すことができると思うかという "パス"を追加することによって混乱しました。

  1. Sender.Press(PcPowerButton)
  2. Sender.Open(ブラウザ、PC)
  3. Sender.LogOn(EmailClient、ブラウザ、PC)
  4. Sender.Click(ComposeButton、EmailClient、ブラウザ、パソコン)
  5. Sender.Click(AddressBox、EmailClient、ブラウザ、PC)
  6. Sender.Type(RecieverAddress、AddressBox、EmailClient、ブラウザ、PC)
  7. Sender.Click(SubjectBox、EmailClient、ブラウザ、PC)
  8. Sender.Type(FlatteringText、SubjectBox、EmailClient、ブラウザ、PC)
  9. Sender.Click(SendButton、EmailClient、ブラウザ、PC)

助け:)

のためにあなたをとても感謝

これは私がそれを変更したものですこれまで

  1. Sender.Press(PcPowerButton)
  2. Sender.Open(ブラウザ、PC)
  3. Sender.LogOn(EmailClient、インターネット)
  4. Sender.Click(ComposeButton、EmailClient、インターネット)
  5. Sender.Click(AddressBox、NewMessage)
  6. Sender.Type(RecieverAddress、AddressBox、NewMessage)
  7. Sender.Click(SubjectBox、NewMessage)
  8. Sender.Type(FlatteringText、SubjectBox、NewMessage)
  9. Sender.Click(SendButton、NewMessage)
+0

提案:関与する複数のクラスを有します。おそらく 'EmailService'と' Recipient'を含んでいます。 –

+0

メールクライアントと受信者アドレスは同じではないでしょうか? –

+0

彼の最初の方法は、卵、小麦粉、砂糖、ミルク、ミキシングボウルをバッターに合わせたことに注意してください。その時点で、彼はすべての食材を、オーブンに打者だけを送るわけではなかった。おそらく、あなたは、すべての方法にEmailClient、Browser、およびPCを送信する代わりに、同様のことを行うことができます。 – digitaljoel

答えて

0

いくつかのポイント。

  1. この例には、「Oven.TurnOn()」や「Oven.SetTemprature()」のような手順は含まれていません。代わりに、単に「オーブン。プレヒート()」と後で「オーブン。ベイク(バッター)」と言います。したがって、これは抽象化の問題です。プログラミングプリミティブは、低レベルまたは高レベルのものとすることができる。高水準のプリミティブは、より大きな動作/機能性をカプセル化します。おそらくより高いレベルのプリミティブを発明し使用することができます。
  2. あなたはオブジェクト指向のパラダイムを使用しているようです。プリミティブ/メソッドは、適切なオブジェクトに属している必要があります。

したがって、次のプリミティブを使用できます。

  1. PC.PowerOn()
  2. OS.Login(SenderUserID、SenderPassword)
  3. OS.Start(ブラウザ)
  4. Browser.Navigate(EmailWebsiteURL)
  5. EmailWebsite.Login(SenderUserID、SenderPassword )
  6. EmailWebsite.Compose(ProfessorEmail、FlatteringSubject、FlatteringBody)
  7. EmailWebsite.Send()

また、興味深いものにしたいと思っている場合は、教授についてお世辞を発見するプロセスをプログラムすることもできます。

  1. FlatteringAttributes =のProfessor.SelectAttributes(らしい)
  2. EmailBody = Sender.Write(テーマ、FlatteringAttributes)