ROB:こんにちは、私はロブだし、のは解読しましょう ヴィジュネルプログラム。 我々がする必要があるので、まず最初にすることです。 ユーザーは我々が期待したものを入力してください コマンドラインで、それら。 ARGCが2でないのであれば、それはどちらかを意味し 利用者は、文字列、我々が入力されていません 私たちの暗号として使用されるようにする 文字列、またはそれら あまりにも多くのことを入った。 そして、我々は何をすべきか分からない これらの他のものと。 だから我々は彼らは何を伝え 入力されている必要があります。 そして、我々は戻って。 今、我々はできる、ARGCが2だったと仮定して プログラムの残りの部分を続行します。 私たちは、[1] ARGVの名前に別名 変数のキーワードに。 我々はする必要がないように [1]名ARGVを使う プログラムの残りの部分全体。 そして多分私達は何を忘れる つまり、というように意味や。 キーワードは非常に良く名前です。 そして、我々はすぐに、長さをつかむだろう 右ここに私たちのキーワード。 [OK]を、だから今我々はそれを確認したい 私たちのキーワードは、実際に有効である。 我々は、文字列の暗号化に使用するキーワード ただ、アルファベットでなければなりません 文字。 ユーザーは、アルファベット以外を入力した場合 文字、私たちが言うべき、キーワード のみを通じて含まれている必要があります それから、Zとリターン。 したがって、このループが繰り返さための上のすべての 私たちのキーワードの文字、チェック その1はアルファベット、その後でない場合 我々は、警告を表示する必要があります。 我々はこの点に得れば、今、我々は知っている つまり、文字列が正しくなければなりません。 キーワードが正しくなければなりません。 そして今、我々はからメッセージを取得する必要があります 彼らは私たちがしたいことをユーザー そのキーフレーズで暗号化します。 だから、そのメッセージを取得するために、我々は持っている やるしばらくになるだろうループ 継続的に、ユーザから文字列を取得 彼らは有効な文字列を入力するまで。 続いて、我々はここに、この変数を参照してください。 INT nun_letters_seen。 我々が必要とするなぜ我々が表示されます 第二のもの。 しかし、forループは、これは反復処理しようとしている 私は、最大0ずっと等しいから 我々は繰り返し処理していることを意味し、Nに等しく すべての可能なオーバー 私たちのメッセージ内の文字。 我々はすべてを暗号化するので、 私たちのメッセージ内の文字。 だから、我々は(isalphamessage [I]場合の対処に気づく 私たちは、暗号化しないので、 アルファベット順でない文字。 シンボルがある場合には、スペース、 や数字、​​我々はしないでください それらを暗号化したい。 今、それはアルファベット順であると仮定 まず私たちを把握したい 実際に暗号化したい 使用してメッセージ。 だから私はそれとはどういう意味ですか? それでは、そのキーフレーズを仮定しましょう 入力したユーザーは、ABCた。 それは我々が暗号化に使用しているものです。 今、単純に、我々はそれが意味だと思う 我々は最初の文字を暗号化したい 0による私たちのメッセージを、以降の手段 0で文字を回転させること。 私たちは番目の文字を暗号化したい 1によって、2番目の文字によって、 0による四文字、五 1によって、というように2による第六、および。 しかし、我々はスキップしたいことを、覚えている スペースや記号と数字。 これは、ユーザが入力した場合を意味する メッセージとしてハローワールド そして、彼らは、暗号化すること 我々は0で、Hを暗号化したい 、1でA、Eに対応する L 2で、0によるL、1によるO。 我々は、暗号化され、スペースをスキップする 2によるwは、0、1、2、0重量O。 我々はスキップされていなかったのであれば、注意してください スペースは、その後、我々は暗号化されたであろう 0によるWとなってしまった 間違った文字列。 [OK]を、これは我々が変数を必要とするものである 用num_letters_seen。 我々だけで使用して暗号化するために行っていた場合 スキップしないこの方法、 記号、スペース、数字、我々 ちょうど私は何として変数を使用することができます と私たちのキーフレーズをインデックスする。 我々は維持しnum_letters_seenを使用する必要があります の実際の場所を追跡 我々は、インデックスを作成するキーフレーズ。 だからここに、我々が持っているキーワードの場合、もし num_letter_seen MOD keyword_lengthので、 なぜ我々はMODに必要なのですか キーワード長さ? さて、Hello Worldのが良い例だった。 キーワードはABCれた場合、我々は必要とする 継続し、その後Bで暗号化する それからC、そして、周りのバックラップ のa、b、cであり、a、b、c。 だから我々は、キーワードの長さで国防省する必要があります 周りのバックラップするためである。 もしそうなら、これは大文字で、 その後、我々はで暗号化する アルファベットのその文字の位置、 私達はちょうどで取得した 資本A.を差し引き、 同様に、小文字のため、我々 我々はでするキーを取得することができます 小文字のaを減算する。 だからかどうかに関係なく手紙 キーフレーズに首都であったか、 小文字、我々はするつもりだ 同額暗号化します。 今、私たちは鍵を持っていることを、私たちはここを参照してください、 そのメッセージなら、私は大文字 キャラクターは、その後、我々は計算したい それのアルファベットの位置 キャラクター、それに私たちのキーを追加し、バックラップ 周りのように我々は、過去行けば Z私たちは、というように戻って、A、B、Cに移動し、。 そして、最後に、そのための資本Aに再度追加 我々は戻って[に移行? ASCII?] これらの文字の範囲の代わりに、 アルファベット、数字の位置 これらの文字の。 そして、我々は同じことをやる 小文字。 私たちは、小文字を減算したい場合を除き とに背中にそれを追加 最後は、小文字。 num_letter_seenのみであることに注意してください メッセージは私がいた場合にはインクリメント アルファベット順。 これは、我々は、スペース、記号をスキップする方法であり、 私たちのキーフレーズの中の数字、以来、 num_letter_seenは、我々が使用しているものです。 私たちのキーワードをインデックスする。 最後に、最終的には、現在、そのメッセージ 私は、暗号化されている私たち 私はメッセージを出力します。 そして、それはこれだけです。 私の名前はロブです。 そして、これはヴィジュネルです。 [音楽再生]