JASONハーシュホーン:へようこそ CS50セクション、みんな。 私の名前はジェイソン·ハーシュホーンです。 私はあなたのTF多くのですが、多くの 人々は、うまくいけば私たちに参加します オンラインで、拡張子の学生や学生 セクションを見てしようとしている場合、それら その週またはそれらのセクションを逃した 彼らが望ん場合だけキャッチアップ いくつかの材料を検討する。 だからシラバスに従って、そのすべて あなたのこと、正しい読みました? 私はヘッドうなずくの多くを参照してください。 のセクションでは、機会を提供 当然のを探索する より親密な環境での材料、 同様に飛び込むなど ハンズオン活動。 だから、我々はしているものは、基本的だ 毎週やっているつもり。 我々は我々が持っているものを通過するつもりだ 最も重要であると判定 講義で説明するトピック、およびもの おそらく最も有用と 問題のセットで出てくる可能性が最も高い とクイズで、あなたのコーディングで CS50の外で生活。 だから私たちは、これらのトピックに入るつもり それらを議論し、その上を行く 君たちが持っている任意の質問に答えると、 そして私達は多くのやろうとしている コー​​ディングの問題を練習します。 あなたは、すべてのラップトップを持って来た、 これは素晴らしいです。 これは、コンピュータサイエンスのクラスです。 しかし、我々が行う演習の多くは、 あなたがのためにあなたのラップトップを必要としません。 あなたは、一枚の紙にそれらを行うことができます。 それはあなたがしようとしている方法です クイズにそれらを行う。 そして実際、それは素晴らしい方法だ 本当にあなたはどのように行うことを知っている あなたが50〜をチェックしていない場合は何か 頼るかに依存することを確認し、伝える あなたはすべてのエラーを作った。 だから、上のコードに歓迎しています アプライアンスまたはrun.cs50.net、です あなたがコーディングすることができます別のツール オンラインで、私も場合、推薦する あなたは、シートを使って、それを試していない 紙のこれらの練習をしよう 用紙上の問題。 再びので、それは最終的にだ 何をするつもりだ クイズで行うように頼んだ。 だから私たちから始めましょう 今日の議題。 我々のためにいくつかの規範を越えるつもり 我々のセクションでは、次に我々はダイビングするつもりだ 配列、関数、コマンドラインに 引数は、何をみんなで 講義では、この一週間カバーした その後月曜日、何をカバーします 明日のより。 そして最後に、我々は行っている pset2について話をする。 私はあなたの場合、手のショーを得ることができれば 問題セット2を見ていない 仕様。 私たちは誰も言うよ。 ファンタスティック。 我々は、ビットで問題セットについて話します しかし、あなたは問題セットを読み込む場合 仕様です あなたがする必要があるすべて。 あなたがに来る前に読んだことがある場合 火曜日のクラスとセクションは、意志 偉大な位置とする。 我々は、問題のセットを介して行くことができます これは、私たちが行っているものです 終わりに行う。 我々は通過するつもりだ ロジックは、確認してください 誰もが同じページ上にある。 私は、あなたが火曜日を残すことができるようにしたい 何あなたと非常に快適な感じ 、今週の問題セットに行う必要があります そうしないならば、私は喜んでます 後に滞在し、あなたと働く。 しかし、それは、あなたがしなければならないことが一つある 、やるが、私は本当にスマートだと思う ただ問題セットを読み込むため 火曜日にクラス別仕様、 それはどのように聞こえる 君たちの多くはなかった。 私は、各クラスの議題から始めましょう ので、あなたは私たちが行っているかを知る。 これはまた、見ている人のために便利です 各セクションなぜならオンライン 色は、あなたが来てほしいので、もしコード化されている 背中とだけではなく、10分を見る 全体の90分のセクションよりも、あなた ただ色分けセクションに行くことができます そしてその部分を見てください。 だから私は、素敵にそれらを分割しようとしてきました あなたができるようになりますモジュール - あなたが戻ってきて確認したい場合 だけである他の学生や 確認するセクションを見て - 具体的なものを見つけるために、彼ら に注意を払うようにしたい との詳細については。 甘い。 規範。 私はキャンパスでFOPのリーダーだ。 誰もFOPをしたかどうかは知りません。 誰FOPをしましたか? 一人はFOPをしました。 二人はFOPをしました。 素晴らしい。 だからFOP屋外初年度である オリエンテーションプログラム。 私たちは、森の中に新入生を取るとする ほとんどの魔法の経験 自分たちの生活、正しいですか? うん。 権利についてサウンド。 だから私は、ちょうど私たちは非常に最初に起動したい いくつかの規範を議論することによりセクション クラスとの関係のために 私は思うので 彼らは非常に重要だ。 あなたの人として、何よりもまず、 私のセクションでは、受信しているされている という点で議論されている 電子メールには、私はこれが大好きです。 これが今年の私のお気に入りの一部です。 私はとても興奮してきた。 私は時間のために今日ここにきた。 私を除いて、この建物を残していない 私は、私はCS50セクションを愛しているから食べて行く 教えを愛し、私が働いて大好き 君たちと。 私の最優先事項の一つは、そうでない場合は私の ナンバーワンの優先順位、のためだけでなく、 しかし、私の他のを含め、このクラス クラスとextracurricularsは、することです 君たちをサポートし、皆さんを支援し、 あなたことを確認するために最善を尽くし 人は生産的な、楽しい、素晴らしい、を持っている 合、エキサイティング このクラスでの経験。 それは私がすることを約束しているものです。 私はこれを行うことを愛する理由です。 それは私のナンバーワンのことですが、 君たちをサポートしています。 あなたは、講義についてのご質問がある場合は、 問題セット、セクション、 人生には、話をしたい場合でも、 人生は、手を差し伸べること自由に感じなさい。 あなたが、自分の携帯電話番号を持つ あなたは私の電子メールを持っている アドレスは、あなたは私のGChatを持っている。 あなたは、のいずれかまたはすべてで私に連絡することができます それらはいつでも、おそらく取得することはありません 応答時に。 私が試してみて、24時間以内に戻ってもらう。 多くの場合、それは内であろう 20分または24分。 私はそれを言っているはず それは並列ようにします。 しかし、あなたが応答を取得します かなり迅速に。 あなたは時間の前に、私にテキストであれば 問題セットが原因で、私はあなたを落ち着かます ダウンと深い呼吸の練習を行う あなたと、しかし、あなたが起動していない場合 あなたはおそらく終了するつもりはない、と 私は実際にそこにあなたを助けることができない にもかかわらず、私は最善を尽くすよ。 だから私は全力を尽くします 私はあなたをサポートすることができます。 かどうか手を差し伸べること自由に感じなさい それは、オフィス·アワーで、再びセクションにだ 外でも、あなたは私が表示された場合、または。 私は会うために時間を設定することが幸せだ や問題を介して動作 付きまたは材料の上に行く。 だからナンバーワン、サポートです。 私はすべて私を行います あなたをサポートすることができます。 ナンバー2、途中で会議。 私がなりたい限り、私は私 全能や全能ではないか、 全知ので、私はすべて知らない 私がやっていることであれば時間がきている 私が教えてる方法であれば、全体で トピックは、あなたがそれを学ぶことができます場合、または トピックを混同しないがされている 手を上げたり、私に尋ねる または私にメールを送ってください。 それともあなたは、再び、混乱している場合でも、 問題セットで何かについて。 あなたは私に手を差し伸べていない場合は、 私は確かにそれを知ることはできません。 私は上にチェックインするために最善を尽くすつもりです 君たちには、すべてがあることを確認してください うまくいって、方法で物事を教えしよう それは、ほとんどのに資するであろう あなたの学習スタイルが、あるとすれば 私が何かできることは、私に知らせてください。 これらの線に沿って、あなたは、いくつかの助けが必要な場合 問題セットで、私はもっとだ あなたを助けることよりも幸せ 問題が設定されている。 我々は多くのやろうとしている 第二に向かっている このセクションの半分。 しかし、あなたは問題を読んでいない場合に設定します 背中と散歩を見ていない ショートパンツを通って、見ていない と私はあなたを教えるために期待 録画されたすべてのもの オンラインまたは、CS50で見つけることができる 研究では、それはに本当に公平ではない 私や他のピアに。 そうしてください、私は助けてより幸せだ あなたが、あなたみんなで私を満たすようになった 真ん中。 我々のリソースのトンを持っている CS50で利用できるあなた。 私はそのうちのいくつかを挙げる。 それらを活用してください。 あなたが混乱している場合、私はよりも幸せだ あなたがそれらを説明するのを助けるために 別の方法、それは公正ではない場合 学生は、営業時間に現れる 何を開始し、そうではありませんてい 木曜日の夜、彼らが期待している 一つ一つのを介してそれらを歩いてTF 問題の事が原因で設定 正午翌日。 理にかなって? 繰り返しになりますが、途中で私たちを満たしてください。 そして最後に、高い期待。 私はだグレーディング誰になるだろうよ 私のセクションで、またはあなたの得点 問題セット。 あなたが問題をバック行っていない まだ0または1を設定します。 我々はそのことについて申し訳ございません。 それは最終的ににしばらく連れて行ってくれました セクションを解決し、今 私たちは、グレーディングを開始することができます。 私はあなたにそれらを取り戻すだろう できるだけ早く。 それらは私の一部です そこadvisees。 私はあなたにそれらを取り戻すだろう できるだけ早く。 問題のセット2のために、我々は上になるでしょう スケジュールと我々は彼らを取得を開始します あなたにかなり迅速後 あなたがそれらをインチ回す あなたの問題が戻ってセットを取得、あなた あなたから知っているように、スコアを取得します 正しさ、 - シラバスを読んで 設計、スコープ、およびスタイルのスコア。 また、コメントを取得します。 コメントがより重要である スコアより。 私はそれがあることを言うことは安全だと思います。 スコアは単なる数である 1から5まで。 それはそれらに読み取るのは難しい。 それはそれらから改善するのは難しい。 しかし、コメントは特定の指摘する あなたはよくやったものや地域 あなたは上の改善といくつかのあなたを与えることができます 将来または代替のためのアイデア 物事の方法。 だからお願い、お願い、お読みください コメントを通して。 私に多くの時間を入れて それらのコメント。 それらを読んで、単にしないでください の一番下までスクロール PDF、あなたのスコアを探して、またはオンラインで行く とあなたのスコアを見つけ、その後無視 コメント。 それはあなたがしている方法ではありません 良くなって行く。 どのように向上させるつもりはないことを あなたのスコアは、最終的には、単に スコアを見て。 それらのコメントを見てください。 と高い期待のラインに沿って、 再び、私が言ったように、あなた 5を通じて1から得点することができます。 補数、スリー、そして四つんばいは スコアの大半 あなたが取得することになるだろう。 ワンズとファイブ両方本当にまれです。 物事は常にあります 私たちはより良い行うことができます。 私はプログラムをコーディングするたびに、そこ いつも何か私 良く行っている可能性があります。 そうではなく、5つを得ると言って すべてのすべての時刻とやった 完璧なすべては、私はないと思う 私たちには本当に信じている我々は - または うまくいけば、我々はすべてをしない 時間のすべてを完璧。 だから心配しない場合 5を取得できませんでした。 5人は、上に4をマップしていない 3行い、Bにマップされません ないC.ドラッグしないマップ どのようにスコアが働く。 ダビデはで、何度も言っているように 学期の終わりあなたのスコアのすべてと 私からの入力、あなたのTFは、一緒に来て とあなたのための最終的な等級を決定します。 しかし、再び、それは、5ないです 4つ、B、等。 だから私は大きな期待を持っているつもりです 君たちのために。 私は良い問題を期待するつもりだ セットと私は与えるつもりだ あなたのようなフィードバック。 そして、それはあなたがしていることを意味するつもりはない 悪化等級を取得するつもり。 あなたがの点で採点されている 週からあなたの進歩 当然の最後までゼロ。 そして最後に、高の面で 時クラスの期待が、私は大好き 人々が参加しています。 私はいくつかの人々がより感じたり、理解 参加少なく快適。 その他の人々が参加している 手を上げていないことで すべての時間を話している。 しかし、このクラスの私たちは、あることを行っている 小さな問題の多くは、多くのことをやって ミニの質問、その後いくつかの 大きいコーディングの問題。 だから、間違いなくこれらの演習をうまく 私たちはあなたのコンピュータ上または上のそれらを行う際に 一枚の紙。 しかし、私はまた前にあなたにいくつかの時間を与えるだろう 誰もが今までにいくつかにお答えしています 私が尋ねる質問の。 だから私はあなたにいくつかの時間を与えるため、 我々が行っているので、それについて考える ときにはパートナーで物事を行うには、 私はみんなを期待します 多少係合する。 より良い言葉の欠如のために、そこに おそらくその風邪呼び出し、になります 誰もがチャンスがあるだろう場所です 答えを考えるために、その後 私はあなたを呼び出し、次によ あなたは答えを言うよ。 心配しないで、またはそのことについて怖がって。 私は過去にそれをやったと私たちは発見しました それははるかに成功したということ、 また、それに教育研究を読んで それがあったか否かを判定する 良い戦術。 それは、特にあなたの場合、非常に便利です 学生に考える時間を与える 答え、それらがちょうど来ることはありません アウトとバットオフそれが正しいと言う。 しかし、あなたが快適に感じていない場合 答え、私もでかなり良いよ それを感知する、我々はするつもりはない 特に上で、その場であなたを置く にもかかわらず、カメラ、のどれ あなたは今のカメラである。 だから、それらは私が持っている規範である。 線に沿ってもう一つ 途中で会う。 私はあなたの男を与えるつもりだ 多くのフィードバック。 だけでなく、私にフィードバックをお願いします。 ウェブサイト、sayat.me/cs50があります。 だから、正直な意見です。 あなたは、セクションの間にそれを与えたい場合は、 それが起こるたびに、私は、電子メールを取得します。 我々は少しで休憩を取るよ、私はよ その後、フィードバックに目を通す。 あなたは今までどんな意見を持っている場合、 そこに私にそれをお願いします。 あなたは私のQにフィードバックを与える場合 素晴らしいが、それはガイドです あなたが最後にやること。 しかし、それはそう学期の終わりになります 私はそれのいずれかを取ることができません フィードバックと教育にそれを回す あなたはみんな良い。 何かを持っているのであれば、してください フィードバックは、私にそれを与える。 私はフィードバックが大好き。 FOPに戻り、我々はフィードバックを得る すべての時間。 あなたは私にプラス、良いものを、与えることができます デルタ、私が改良できること。 あなたは私の服装にコメントすることができます。 として有用であるが、あなたはしていないこと いずれにコメントを歓迎し、 すべて。 してください、私にフィードバックをお願いします。 私はそれをたくさん、それを大切に 私に多くのことを意味します。 もう一つの規範、楽しい。 我々は多くの楽しみを持っているつもりです。 うまくいけば、このコースでは、よ 多くの楽しみを持っている。 私たちは、セクションでお菓子を持っているよ。 我々は音楽があるでしょう。 私たちは、うまくいけば1つを知っているために取得される 別の幾分よく、私は欲しい これは楽しい、魅力的な経験であることが。 私が知っている、あなたのいくつかはで眠った あなたが今日、以前​​持っていた講演会、 そううまくいけばそれはしません 今そうである。 そして、それは今の場合であれば、ただ いびきはありません、それは可能性があるため、 カメラでキャッチする。 甘い。 質問、コメント、または懸念 私は何でも先に進む前に、我々はしました について話しました? 素晴らしい。 だから私達は行くつもりです 最初の配列に。 これは、配列を作成する方法です。 我々は前にこれを見てきました。 あなたは、データ型を持っている、あなたが持っている 名前は、その後、サイズを有する。 右ここで、私は二つの配列を作成します。 最初のものは、文字の配列である そしてそれは26のスペースを持っています。 もう一つはの配列です スコアは、それは3を有する 3つの整数のためのスペース。 はい? 学生はこれらのすべてのスライドです 私たちのためにどこかで入手できる? JASONハーシュホーン:素晴らしい質問です。 問題は、すべてのですだった これらは利用できるスライド? はい。 これらのスライドのすべては、予定 そして将来的には、私はそれらをするためのメールでお知らせいたします セクションの前にあなた。 しかし、今日、これが最初であるため、 今週、我々は遅いスタートを切った。 ので、通常は、これらのスライドを取得しますが、 彼らはオンラインで利用可能となり、 私はあなたにそれらをメールでお知らせいたします クラスの後右。 その他のご質問は? だからもう一度、配列は不足のため、ボックスです 複数保持する良い言葉、 あるデータ型の要素、およびそれらは同じく メモリ内の互いに隣接しています。 どうすることができますので、再び、これは 配列の2つのタイプを作成します。 あなたはとあなたの配列を作りましたので、後 その最初の行 - int型のスコア、ブラケット 3、近くにブラケット - あなた それを初期化したい。 あなたは、そこにいくつかの値を載せていきたいと思います。 そして、これはあなたがいくつかの値を入れる方法です そこに、ただindiceを選択し、 番号を書いて。 Let 'sは、ボード上で、これを描く。 誰もが見ることができますか? 誰もが見ることができます。 甘い。 だから私のことになるだろう アレイは、スコアと呼ばれる。 あなたが見ることができるように、それはサイズ3です。 そこに3つのボックスがあります。 それぞれが何を収めることができます データ型の種類? STUDENT:整数。 JASONハーシュホーン:整数 この1インチ 私たちは、int型のスコア、そして最初の単語を書いた に起こっているデータ型です その配列内のボックスに行く。 だから私は、次の3つを収めることができます。 なぜ私はゼロを持っている そこにボード上の? なぜそれがスコアにゼロが1に等しいと言うのでしょうか? 自分の名前を思い出させる。 学生:クルト。 JASONハーシュホーン:クルト。 学生:はい。 JASONハーシュホーン:なぜ? 学生:最初のインデックスであるため ゼロ、我々はゼロからカウントを開始します。 JASONハーシュホーン:だから我々は開始 ゼロからカウント。 それはまさにそうです。 これは混乱の一部と意志旅行です 特にあなたがいるときまで、 配列の反復処理しようとすると、 その私たちが少しでやる。 我々はゼロからカウントを開始します。 だから私は、最初に参照したい場合は、 ボックスには、それが箱1ではありません。 残念ながら、箱ゼロだ。 もう一つは箱一つであり、この中で 場合、3つ目のボックス2です。 箱3はどうですか? ボックス3はどこですか? または私はスコア、ブラケットを行いたい場合 3、近くにブラケット、それは何ですか? だから、ヌル文字を言った。 他の任意の考えですか? スコアブラケット3ブラケットとは何ですか? 学生:それは本当に存在しないため、 あなただけのスコアとして定義 ブラケット3。 JASONハーシュホーン:だからあなたが言う それは実際には存在しません。 我々が扱っているいくつかのケースでは、 文字列は、一般的に我々は、nullを出してあげる 末尾の文字。 私たちは、第二にそれに取得します。 しかし、この場合には、そこ 何番目のボックスはここではありません。 したがって、任意の配列の最後のボックス サイズから1を引いた値です。 我々は、サイズnの配列を持っているのであれば、 最初のボックスがゼロであり、最後の1つは nはマイナス1で。 そして、この場合には存在しない。 ここで何かがある メモリが、それは我々のものではありません。 我々はそれを所有していない。 我々はそれを求めていませんでした。 我々はそれにアクセスしようとするのであれば、我々はどのよ ビットで行う、我々はおそらく、するつもりだ トラブルに巻き込まれる。 このケースでは、私は自分の初期化しています 3つの変数を持つ配列。 我々は2つ​​の、ボックスゼロ1つを入れている 内箱1、箱2に3。 誰もが何か質問がありますか 配列を初期化するでしょうか? だから、我々はちょうど今、この上を越えて行った。 スコアは、ブラケット3、閉じ括弧、 それは存在しません。 我々は、ゼロ、コンピュータ科学でインデックスしている 従って我々はゼロからカウントを開始します。 私達に利用できる最後のボックスには、それがある 3番目のボックスが、ボックスと呼ばれています ナンバー2。 以下にダウン、これは代替手段です 配列を初期化する方法。 だから代わりの一つ上のアレイを作成する 最初のボックスを充填ライン、、その後 二箱、次に3番目のボックス 1つの行でそれをすべて行うことができます。 だから、その行で、両方の配列。 これは、同じ正確な配列を作成します 私たちは右ここで作成し、それ たった1行でそれはありません。 今我々は我々の配列を作成しました。 通常、一度あなたは、配列を作成 かどうか、それを使って何かをやってみたい それを埋めるか、それのものを引き出すことだ し、それらを画面上でプリントアウト。 このケースでは、我々は我々を通過しています 我々は上で初期化スコア·アレイ、 ここまで灰色の最初の行。 そして二行目に、我々は開始 配列を反復。 誰についてのご質問はありますか forループの構造? だから、これはforループです。 私たちは、初期条件を持っているし、次に その後、私たちの最終的な条件、私たち 、私は、それぞれのループを反復する。 そして、この中に中括弧で ループは、私が実行した場合に何が起こるか このプログラムは? 誰もが我々が得るなるか教えてもらえますか? [? Matu? ?] MATU:すべての項目を印刷 各ライン上。 それは、それぞれのスコアを印刷します 別の行に。 JASONハーシュホーン:正確にどのような それは印刷でしょうか? 学生:それは、1を印刷します 次に2、次に3。 JASONハーシュホーン:その通り。 次に、1つ、二つ、プリントだろ 3、別の行にそれぞれ、理由 我々は、配列を通過していては、よ printfは、それが第二の見 声明、スコアI。 だから、私たちのための貫通最初のラウンドで ループは、私たちがしていることを意味し、ゼロに等しい スコアゼロで値を取得する - 我々はに戻った場合、これ 我々の図は、一つである - とに記入 - OH、Cは言う。 それは%dであるべきである。 私は少しでそれを修正するとき 私の手から君たちへの。 しかし、我々はそれように整数を提示している 、ここではない%cは%dであるべきである。 の%Cとは何ですか? STUDENT:文字。 JASONハーシュホーン:文字、まさに。 もう一つは何ですか? あなたがのために%dを行うにはしたくない場合 整数には、他に何を行うことができますか? 学生:私は。 JASONハーシュホーン:正確に%I、。 だから反復についてのご質問 配列を? 我々はこれを行う場合、だから何が起こりますか? で行うのではなく、私はより小さい 3、私たちは、私が小さいか 以上、三等しい。 我々は、このコードを実行するとどうなりますか? はい、アニー? STUDENT:彼らはプリントアウトするつもりだ 四行目で奇妙なもの。 JASONハーシュホーン:だからあなたが言ったが、それです。 上に奇妙なものをプリントアウトするつもり 四行目? 誰もが答えを持っていますか 彼女の質問に? だから、オッズはその時です 私たちは、に行く - 従って私達のための貫通4回戦で ループ、ただアニー、あなたが思ったように、 それはどのスコアブラケット3、になるでしょう 我々はすでにいない考え出した 存在しており、我々は試してみるつもりだ し、それを印刷しているアクセス て、それをいくつかの方法を使用しています。 コンピュータは、おそらくなるよう 私たちに怒る。 あなたは正確に正しいです。 それは完全にプログラムを終了することがあります。 それは何かをプリントアウトかもしれません 本当に奇妙。 あなたは確かに言うことはできません。 オッズは、それはおそらくで怒るでしょうです あなたとだけですぐに終了します。 しかし、これはあなたが持っているだろう一般的な間違いです あなたは、一つだけでオフにしているところ 最後は、これは意志バグです あなたのコーディング全体を苦しめる。 私がやりたい一つの方法は、単に上にある ホワイトボード、各繰り返しを経る 参照するには手でまたは紙に、ループの 何が起こった後、あなたです 一般的に実現する、いや待て、私はすべきでない 未満に行ってきましたか 3に等しい。 私はある、2で停止しているはず あなたの条件が小さければ何が起こる 3より。 これまでに何か質問? 甘い。 だから、開いているすべてのコンピュータを持っている。 私たちはあなたを与えるつもり二から三 そのプログラムを書くための分 1は整数の配列を作成します 5経由して、各プリントアウト 新しい行に整数。 とご質問があれば、 あなたの手を上げる。 私は手に入れるのはうれしい。 私が言ったように、の、3つを取りましょう 分、これを書くため。 私が行けば誰もOKです 新しいウィンドウこれを閉める? あなたはチャンスを持っていない場合はごめんなさい 終了するが、我々はそれをやろうとしている 一緒に今。 だからアップする画面に、私が#含まれている cs50.hは、#stdio.hに含まれています。 誰かが私に何を伝えることができます これらの2行は何? マイケル? 学生:彼らは、ライブラリを含める CS50が作られ、スティーブが持っていることを あなたに使用するために保存 あなたの人生が容易になります。 JASONハーシュホーン:だからあなたは、彼らが言った ライブラリは、その一つを含むCS50 cs50.h、作られた、とある1 ただ標準付属しています Cパッケージ、stdio.hの。 あなたは、どういう意味ですか ライブラリは、しかし? あなたは、もう少し具体的なことはできますか? 学生:それはそうすることができていることになります 持っているために、特定のコードワードを使用 移動することなく起こるの機能 と関数c自分で作る。 JASONハーシュホーン:することができます 私の例を与える? 学生:printfのように あなたが使用できるものです。 JASONハーシュホーン:Printfは。 だから、printfはそれらの一つであると述べた を有するのではなく、機能 自分でprintfを書いて、printf関数である stdio.hで実際に含まれているので、 ただそれを使用して、と仮定することができ それが動作すること。 stdio.hで、そのファイルを開いた場合、 それは含んでいるでしょうどのようにprintf関数 作品は、printfのためのコードのすべて? なぜあなたはあなたの頭を振っていますか? STUDENT:ためヘッダファイルだけ 関数宣言が含まれています。 JASONハーシュホーン:まったく正しい。 ヘッダファイルは、ちょうど含む 関数の宣言。 だから基本的に、あなたがこれをコンパイルするときに、 我々がやるメイクカウント、ヒット 第二は、コンパイラが知っている場合 あなたはprintfを使用、printfの存在。 それはどこかで定義されているために起こっている。 それはあなたがそれを使用するための問題ではない。 そして、後に、それが含まれるよ 実際に含まれているものとゼロ printf関数の実装と あなたのコードでそれらをマージします。 あなたどのようにそれが含まれていることを確認しない 文字列を取得する、と言うためのものとゼロ? 学生:文字列がcs50.h.にあるゲット JASONハーシュホーン:右。 だから文字列が存在し得ると言うことを、 関数の宣言。 しかし、その後1と0、バイナリ 実際に含むファイル GET文字列の実装? あなたは確信しているどのように作るのですか あなたのプログラムを使って行く? 学生は:リンカに渡す コマンドライン引数。 JASONハーシュホーンは:リンカを渡す コマンドライン引数である。 どのようにそれを行うのですか? 学生:それはクラングでは、-lラインだ JASONハーシュホーン:まったく正しい。 あなたは正しい、CS50-lと言う? それは、1と0が含まれています。 学生:でも作るん そのあなたのために、右? JASONハーシュホーン:その通り。 メイクはあなたのためにそれを行いますが、最終的には、 あなたが作る、または持っていません あなたが作る作る必要があるでしょう 自分で、だそう 覚えておくことは良いこと。 あなたは、これらのいずれかを使用するつもりだった場合 、だけでなく、あなたは、他のライブラリを持っていない 書くために#includeおよび 次にライブラリ。 また、それをインチにリンクする必要があります そして、それらの二つのことが異なっています。 -L CS50は異なります #cs50.h.を含むより その後、我々はint型メインボイド中括弧を持って、 そして今、我々はコードになるだろう メイン内部。 私がここに持っている最初の行はコメントです 配列を作成し、言うこと 整数1と5を通して。 何私説明する良い言葉は何ですか ただ、画面上に今がある メイン内側にコメント? 我々は何をすること呼ぶのですか? 学生:擬似コード。 JASONハーシュホーン:擬似コード。 ジェフリー、ありがとうございます。 それはまったく正しいです。 擬似コード。 君たち前擬似コードを見たことがありますか? あなたが使用した場合、あなたの手を上げる 問題の前に擬似コードは、1を設定します。 あなたの約半分。 私は非常に使用することをお勧めします に問題を打破するための擬似コード ピースをかみ切るために、より簡単に、より小さい。 また、擬似コードを実行する場合は、 既に大部分はあなたの意見を持っている に建てられたので、あなたがする必要はありません 戻って把握しようとする あなたは何をやっていた。 だから、誰かが私にこの最初の行を与えることができます 整数1を持つ配列を作成する 5スルー? あなたは? 学生:Intのしてから呼び出すことができます その後どのような数、四角 ブラケット5。 JASONハーシュホーン:だからint型の数値、 角括弧5。 学生:等しく、 その後、中括弧。 JASONハーシュホーン:等しい、 中括弧。 STUDENT:One、二つ、三つ、四つ。 JASONハーシュホーン:一、二、 3つ、4つ、5つ。 学生:そして、中括弧 その後セミコロン。 JASONハーシュホーン:そしてカーリー ブレースとセミコロン。 優秀。 新しい行にそれぞれint型をプリントアウト。 他の誰かが与えることができます 私にそのコード、してください? [? Matu? ?] どうぞ召しあがれ。 学生:について( JASONハーシュホーン:について( STUDENTます。int i = 0 JASONハーシュます。int i = 0 学生:5未満セミコロン私。 JASONハーシュホーン:セミコロン、 5未満私。 学生:セミコロン、I + +。 JASONハーシュホーン:セミコロン、I + +。 STUDENT:クローズ括弧、 次にブレースを開く。 JASONハーシュホーン:クローズ括弧 二ブレース。 括弧の内側? 学生:そして、printfの "%d個/ N" JASONハーシュホーン:申し訳ありませんが、保持します。 printfの "%dは/ nは、引用符を閉じた。 学生:そして閉じ引用、 コンマ、カウント、ブラケットI。 JASONハーシュホーン:カンマ、 カウント、ブラケットI。 STUDENT:申し訳ありませんが、数字ブラケットI。 JASONハーシュホーン:数字、ブラケットI。 STUDENT:申し訳ありません。 そして、括弧を閉じた セミコロン。 JASONハーシュホーン:クローズ 括弧、セミコロン。 私はそれを保存するつもりです。 我々は、カウントを作るつもりだ。 そして、どのように私は、カウントを実行しますか? 学生:バックスラッシュ。 学生:ドットがスラッシュ - JASONハーシュホーン:。/カウント、まさに。 ありがとう。 。/カウント。 一つ、二つ、三つ、四つ、 新しい行に5。 それが働いたように見えます。 はい、ノア? STUDENT:また、以下を行うことができ 4に等しいようなiがより小さい または4に等しい? レスをすることにどんな利点がある 単なる5、または別の方法 それを書く? JASONハーシュホーン:だから質問はあなたです 私は以下である行っている可能性が 4の代わりに等しい iが5未満である。 それは同じように働いているでしょうか? 学生:それはすべき。 JASONハーシュホーン:はい。 これは全く同じように機能するだろう。 文体、それは一般的により小さいですが、 そして、あなたは時秒で表示されます 私たちは、あなたが何かを文字列に使用することができない あなたが見てきた、strlen関数と呼ばれる 前に、長さを取得する 文字列の。 そして、あなたは以下を行うことはできません またはstrlenは等しい。 あなたは、以下を行うことができ 等しいstrlenはマイナス1。 だから、にだけよりよいです strlenは未満を行う。 はい? STUDENT:そして実際にクイズ、やる 我々は我々のコメントを提供する必要が コー​​ドだけでなく? JASONハーシュホーン:質問 クイズで、あなたに行うた コメントを提供する必要がありますか? だから私たちは時クイズについて詳しく説明します 彼らは出てくるが、一般的に、良い あなたがしている時に経験則です コー​​ドを書いて、コメントを提供します。 あなたは間違ったコードが、取得する場合 右のコメントには、いくつかを得るかもしれない 私が採点された場合は、両方の私からの信用 あなたの問題セットをオンまたはクイズに。 だからコメントは常に 提供することが良い。 甘い。 カウント。 素晴らしい仕事。 のは、上に移動しましょう​​。 ストリングス。 ストリングス。 私たちは、講義中に前にこれを見てきました。 これは、私の心を吹いたときに私 最初にこれを見つけました。 それはおそらく誰のを爆破しませんでした ここで気にしますが、それはOKです。 文字列は文字の配列であり、 先ほど言ったように、彼らは、で終わる ヌルターミネータ、どの この/ 0文字です。 私たちは、上の文字列を描画するつもりなら ボードには、我々はここでそれを上に描画します。 だから、この文字列はどのくらいですか? 申し訳ありません。 この文字列はどのくらいですか? 学生:[聞こえない]。 JASONハーシュホーン:四? なぜそれは4です? 学生:第五のスポットがあるため ヌル文字です。 JASONハーシュホーン:だから五スポット ヌル文字です。 私が上ではstrlenを実行していたのであれば これは、それは私に4を与えるだろう。 正しい。 と配列は、しかし、私がした場合 この配列を初期化し、どのように多くのスペース 私はのために聞いているでしょうか? 学生:ファイブ。 JASONハーシュホーン:5。 私は5をお願いしなければならないでしょうが、私はすることができます ここだけで4文字を入れて 私はそのヌルを配置する必要がありますので、 端にターミネータ。 だから私たちは "OHAI"で書こうとしていて、 末尾にヌルターミネータを置く。 私たちは、これが文字列であると言うでしょう sがこれに相当します。 Sブラケットゼロとは何ですか? Sブラケットゼロ、アニー? 学生:O. JASONハーシュホーン:O、まさに。 Sブラケット1? Sブラケット5? Sブラケット5? 学生:存在しません。 JASONハーシュホーン:存在しません。 まったく正しい。 クール。 理解についてのご質問 文字の配列として文字列? [OK]を、その後。 君たちのためにもう一つのプログラム。 ユーザーに確認するプログラムを書きなさい 文字列のために、各プリントアウト 新しい行の文字。 それでは、書き込みに3分かかりましょう このプログラムは、次に我々はそれをコーディングします グループとして。 申し訳ありません。 あなたがこれを参照してくださいする必要がありましたか? 学生:いいえ。 JASONハーシュホーン:OK。 Let 'sは、これをコーディングするために、1つ以上の分を取る あるいは少なくともそれを始める。 だから、働き続けることができますが、私は行くよ それを通過し起動します。 だから前にように、私は画面上に持っている ##cs50.hは、stdio.hにを含んであります。 メイン、voidをint型。 メインの中括弧の中では、私が持っている 2つのコメント、擬似コード。 一つは、ユーザから文字列を求めるで​​す。 第二は、各プリントアウトです 新しい行の文字。 だからアンナは、あなたが求める私を与えることができます ユーザから文字列のために? 学生:Printfは。 JASONハーシュホーン:Printfは? 学生:はい。 ( JASONハーシュホーン:( 学生: "私に文字列を与える。 JASONハーシュ: "与える 私STR - おっと - 文字列。 学生:N / A ")セミコロン。 JASONハーシュホーン:文字列を終了し、 閉じ括弧、セミコロン。 学生:はい。 そして次の行、列 S =文字列を取得します。 JASONハーシュホーン:文字列 S =文字列を取得します。 学生:はい。 そして、() JASONハーシュ:() 学生:セミコロン。 JASONハーシュホーン:セミコロン。 ファンタスティック。 だから私は、文字列を取得するつもりだと 私はそれを何に保存するつもり? 変数とは何と呼ばれています あなたが作成した? 学生:文字列s。 JASONハーシュホーン:変数 Sと呼ばれています。 これは、文字列型です。 まさに。 私たちはプリントアウトされたい次の事 新しい行の各文字。 誰が私にそのコードを与えることができますか? [聞こえない]? あなたは私にそれを与えることはできますか? 学生:確かに。 JASONハーシュホーン:それをしましょう​​。 そしてごめんなさい。 私はあなたが言うことを繰り返すことが好きではありません あなたはそれが右に取得しているので、私 ので、それを繰り返す必要があり、そのときに これを転写、彼らはすべてを得ることができます 書き起こしのテキスト外。 だから、ただ話を続けることができます。 残念ながら、私は持っている あなたにそれを言うために。 すみません、しかし - 学生:大丈夫です。 int型のi = 0のときのために JASONハーシュます。int i = 0の場合 学生:私は未満 - JASONハーシュホーン:セミコロン。 学生:この前に、我々は置くことができます 変数はint型の名前の長さを取得するので、? JASONハーシュホーン:ああ、あなたはしないでください セミコロンを入れたい? OK。 だから、ゼロの後に何をすべきかをしたいですか? 学生:私が取得したい Sの文字列の長さと 変数にすることを設定していますか? JASONハーシュホーン:OK、 ので、私はそれをどのように行うのですか? 学生:だからint型の長さを行う= JASONハーシュホーン:Intの長さ= STUDENT:S-T-R-L-E-N。 JASONハーシュホーン:S-T-R-L-E-N - 学生:のS。 ブラケット。 JASONハーシュ:(複数可)。 学生:そして私はあなたがしなければならないと思います 2つのintの間にセミコロンを置く。 JASONハーシュホーン:セミコロン ゼロの後に? 学生:うん。 それからその後にセミコロンを入れて、 あなたは長さよりも、私は少ないと言う。 私は長さよりも小さい、その 変数です。 学生:そしてセミコロン。 JASONハーシュホーン:セミコロン。 学生:I + +。 JASONハーシュホーン:I + +。 私たちのためのループがあります。 OK、forループの内側。 STUDENT:そしてその後のprintf行う。 JASONハーシュホーン:Printfは。 学生:ブラケット。 JASONハーシュホーン:括弧、引用符。 学生:括弧、引用符、%C / N。 JASONハーシュホーン:%C、OK。 学生:/ nである。 JASONハーシュホーン:/ nである。 STUDENT:クローズ符。 JASONハーシュホーン:クローズ符。 STUDENT:カンマ。 JASONハーシュホーン:カンマ。 学生:S. JASONハーシュホーン:S. 学生:ブラケットI。 JASONハーシュホーン:ブラケットI。 学生:そして閉じ括弧。 JASONハーシュホーン:クローズ括弧。 学生:そしてセミコロン。 JASONハーシュホーン:セミコロン。 ファンタスティック。 だから、これを保存してみましょう。 スペルを確認します。 ああ。 私は、エラーのカップルを持っている。 11行目の最初のエラー、それが言う、 発現を期待し、それが与えている 私にエラー秒その int型は、エラーがあります。 そこの周りにいくつかのエラーが発生しました。 誰もがそれが何であるか、エラーを知っていますか? クルト? 学生:私はそれがすることになっていると思う カンマではなくセミコロンである。 JASONハーシュホーン:OK、カンマ セミコロンの代わり。 だから、すべての我々は修正する必要があるということです? 学生:いいえ。 JASONハーシュホーン:他に何 我々は修正する必要がありますか? 学生:私たちは、string.hでを含める必要があります。 JASONハーシュホーン:インクルードstring.hで。 どこでそれを含めることが必要なのですか? 学生:あなたは含めている同じ場所 他のものは、右 後は、stdio.hに含まれています。 JASONハーシュホーン:これは実行されるかどうかを確認してみましょう 一般的には、私が好きなので最初 最初に一つのことを修正し、実行する それは、その後、我々は得るエラーを参照してください。 だから我々は、端末をクリアするつもりだ コントロールNで、呪文を作るのですかみましょう。 だから、11行目に別のエラー。 セミコロンを期待した。 と私はまだ取得しています この行のエラー。 だから、私にそれを言って、エラーを与えていない 、strlenのが何であるかを理解していない しかし、それは私にこの上のエラーを与えている ラインなので、ほかに何か間違っている? マーク? マーカス。 学生:あなたが削除する必要がありますか 第二のint宣言? JASONハーシュホーン:削除 第二int型。 これを試してみましょう。 さて、端末をオフにします。 スペルを確認します。 エラーが発生しました。 暗黙的に宣言するライブラリ 関数strlenは。 だから今我々は、そのエラーが表示されません。 我々は含まれるように何が必要ですか? 学生:string.hで。 JASONハーシュホーン:インクルードstring.hで、 我々は#上部にstring.hで含まないよ 画面の。 保存してみましょう、スペルを確認します。 今コンパイル。 だからもう一度、物事は私たちに必要な 私たちのためのループ時に12行を覚えて 我々はそれを設定しているデータ型はint i = 0のとき、 長= strlenは(複数可)。 これは素晴らしい戦略です。 このスタイルは、素晴らしいです これのデザインは素晴らしいです。 我々は、後でそれらの理由に入ることができ だけ呼び出す必要がありますが、この方法 strlenのかつての代わりに一つ一つの 時間は、ループを介して実行。 ただし、そこにカンマを使用する必要があります と再度int型を必要としません。 あなたはそれらの両方を宣言している場合 一緒に変数に、 再びint型は必要ありません。 そしてあなたは、strlen関数を使用するつもりなら これは、別のライブラリです この関数は、に含まれていない stdio.hにまたはcs50.h、メイク 必ずあなたはstring.hであります。 クルト? STUDENT:それでは、あなたがする必要がない場合 型の長さがあること、何んと言う それがintである必要があります意味ですか? あなたは、2つの異なるを持つことができませんでした そこにタイプ? JASONハーシュホーン:あなたができるように 2つの異なるタイプがある。 長さは、しかし、ここではintです。 それはコンマだから長さはintです その後同じこと。 STUDENT:だからそれは起こっていることを前提としています 最初のものと同じになるように? JASONハーシュホーン:その通り。 我々は今、これをやろうとしてますが、いない 上の2つの変数を含むことができる あるデータ型を使用して同じ行。 yが作成することになりそうint型のx、 二つの変数。 我々はそれをすれば、それが与えるのでint型のx、y、 私は、未使用の変数xとyのため 我々はそれらを使用しないでください。 単になる前にだから、voidを入れて 派手なトリックを使用しない場合 それを使用するか、。 あなたが見るようにしかし、私はxとyを作成 カンマと同じ行に。 それは2つの整数を作成いる すぐそこ。 作成するには、yesだから、完全に可能 同じ行に二つのこと カンマで区切られた。 しかし、それらを取り除くましょう。 だから呪文はそこだ。 私たちのためにそれをコーディングするためにみんなありがとうございます。 それはもう一回作ってみよう、それを実行する。 私の文字列を与えます。 【聞こえない]、あなたはそれのほとんどをやった。 文字列とは何ですか? 学生:こんにちは。 JASONハーシュホーン:こんにちは。 H-E-L-L-O、1行の各文字。 大きく見ます。 のは再びそれを実行してみましょう。 常にチェックするつもり コー​​ナーケースのために。 チェックするのは良いコーナーケースは何ですか? 学生:数字? JASONハーシュホーン:数値。 だから私は1に置くことにしましょう​​、そしてそれは1を出力します。 それはとても、手紙を求めていない それは数字の仕事のように思える。 チェックするのは良いコーナーケース。 別の良いコーナーは何ですか チェックする場合? 学生:空白の文字列。 JASONハーシュホーン:フム? 学生:空の文字列のように。 JASONハーシュホーン:空の文字列。 それでは、何も入れないようにしましょう​​。 そして、何が出て印刷される? 学生:何もないです。 JASONハーシュホーン:何もない。 それが動作するように思える。 あなたはより多くのコーナーケースを試すこともできますが、 一般に数字、異なるデータである しようとする偉大なだけでなく、何もありません。 何も、ゼロ、ネガは常にありません 偉大なことはあなたを試してみて、ものに テストする必要があり、物事は確かに我々はテストします のために、50を確認するためにテストします。 spell.cについてのご質問? OK、後頭部してみましょう。 私はもう一つのプログラムを持っている 君たちが書き込むために。 それはstudents.cと呼ばれています。 これはのためにユーザーに要求するプログラムです 5名、その後ランダムに選択 と名のいずれかを出力します。 このプログラムは、もう少しです 我々が書いた最後の二つよりも関与、 なぜ我々はに5分かかりません 個別にそれをコーディングした後、我々はよ グループとしてそれをコーディングします。 このプログラムはまた、いくつかのものを含んで あなたがそうだとすれば、前に見​​ていない可能性があります あなたはどのように、疑問を持っていない 私はあなたの手を上げ、それを行う。 私が来て、あなたを指します 右方向に移動する。 しかし、我々はまた、それをやっているこのため いくつかを紹介するための良い方法になります トリッキーなトピック。 だから、右に動作? 学生:うん。 JASONハーシュホーン:あなたが回すたびに 行うための問題を設定すると、そこの多くの方法 それが、一部はもっとある 他よりもエレガント。 私たちが入ってダイブしましょう #includeをcs50.h. #stdio.hに含まれています。 int型メインボイド中括弧。 中括弧の内部では、 私は2つのコメントがあります。 ですが、尋ねる最初のもの 5名のユーザ。 もう一つは、ランダムに選択され と名のいずれかをプリントアウト。 だから最初のいずれかの操作を行いましょう、頼む 5名のユーザ。 誰が5名のユーザーを求めている とどのようにそれを行うために私を伝えることができますか? 2つだけの人々が最初の部分をやった。 3人が最初の部分をやった。 四、五。 トム、あなたはそれをどのように行うのですか? 学生:あなたは、文字列を宣言します その後名前、ブラケット5。 JASONハーシュホーン:文字列 ブラケット5名前を付けます。 だから、この行が何をやっている、 文字列名ブラケット5? 学生:あなたは宣言する 文字列の配列。 JASONハーシュホーン:これは 文字列の配列。 どのように多くの文字列しようとしている ここに収まるように? 学生:ファイブ。 JASONハーシュホーン:5。 優秀。 我々は、それの名前を呼び出すためになるだろう 我々は、複数のものを取得するつもりだ。 [OK]を、次の? その後、そして、あなた:STUDENT forループを持っている - JASONハーシュホーン:Forループ。 学生: - iは= 0。 JASONハーシュホーン:するfor(int i = 0のとき。 学生:セミコロン。 JASONハーシュホーン:セミコロン。 学生:私は5未満。 JASONハーシュホーン:私5未満。 学生:セミコロン。 JASONハーシュホーン:セミコロン。 学生:I + +。 JASONハーシュホーン:I + +。 学生:そして閉じ括弧。 JASONハーシュホーン:クローズ括弧、 その後、いくつかの中括弧。 中括弧内の? STUDENT:そしてその後のprintf。 JASONハーシュホーン:Printfは。 STUDENT:オープン括弧、名%d。 JASONハーシュホーン:申し訳ありません? STUDENT:名前。 JASONハーシュホーン:名前。 学生:そして、スペース、およびその後は%d。 JASONハーシュホーン:名前、スペース、%dは。 学生:そして/ n、および閉じ。 JASONハーシュホーン:だから名前、スペース、 %dは/ nは、括弧を閉じた。 STUDENT:カンマ、I + 1。 ごめんなさい。 クローズド引用し、次にコンマ、I +1。 JASONハーシュホーン:クローズ 引用符、コンマ、I +1。 学生:はい。 そして、次の行 - JASONハーシュホーン:I + 1。 学生:はい。 そして、次のスライド 名ブラケットIです。 JASONハーシュホーン:次の行 名ブラケットIです。 学生:=文字列を取得します。 JASONハーシュホーン:=取得する - 資本G-E-T - 文字列。 あら、ごめんなさい。 STUDENT:オープン、閉じ括弧 その後 - JASONハーシュホーン:オープンは、括弧を閉じた。 学生:セミコロン。 JASONハーシュホーン:セミコロン。 [OK]を、ので、の配列を初期化する 文字列、名前、その後は通過 forループ、および5回は、いくつかをプリントアウト 保管後、ユーザーにプロンプ​​トを表示し、 5弦。 誰もがいずれかを持っていますか これの調整? トムは、私は思うみんな あなたと同意。 かなりよさそうだ。 OK。 なぜあなたは、しかし、私の1をしましたか? 学生:私は意味がありません であるが、それはそのように私は+1する 名前1は、5つの名前を付けます。 それ以外の場合は、名前になり 4名前を付けるためにゼロ。 JASONハーシュホーン:だからあなたは私+1しました そうでなければならない理由 4を通してゼロプリントアウトので それは、コンピュータがどのように考えるかですが、人間 本当にそのように読んでいない。 それはまた別のものです あなたが遭遇するでしょう。 時には、あなたが何かをプリントアウトするとき ユーザーに、あなたはそれを確認したいと思う 少しきれいに、とやって この場合は+1 iがある それをきれいにする方法。 私はまた、5倍、文字列名を参照してください 5ですが、iが5未満です。 あなたは5を持ってどこに私は知っている。 あなたは私が言ってから、それを得た あなた5名。 しかし、我々は、コードを作りたい場合 もう少し堅牢な、一つのこと、私たち 行うことができ、int型の外で、ここにある 我々は、このような何かを行うことができます #defineを、我々はNAMES 5を行うことができます。 だから基本的には、どこに私が資本を書く N、資本A、資本M、資本E、 キャピタルS、その文字列は、それが置き換えられます コー​​ド内の5でその。 それとも、それを呼び出すみましょう - 私たちはよ ちょうどそれNUMBER呼ぶ。 だから私は、すべてのキャップを定義しています 5する番号。 だから今、私は、5番を持ってどこ すべて大文字のNUMBERでそれを置き換えることができます。 そして今、私は番号を変更したい場合は、 名で、私はすべてを行う必要がある 私が持っているこの1行、4行目、 #、5番を定義する10に変更し、 またはその4に変更します。 コー​​ドが長くなるときは、わからない すべての場所を覚えて行く あなたが望むどのように多くの名前入れ、中 1を欠場するしないあなたのためのオーダー、これは 何かを見つけるために、それを行うには良い方法 トップアップしてから、ちょうどそのフレーズを使用 どこでもあなたのコード全体。 マーカス? STUDENT:その文体好ましい グローバル定義より 定数N? JASONハーシュホーン:だからそれがある 文体グローバルより好ま 定数Nを定義する? だからあなたができたと言っている 行う、int型の数= 5? 学生:彼らは子音を持っていますか C言語でない、または? JASONハーシュホーン:または定数 - 同等である。 だから、ただ言っている グローバル変数? 学生:うん。 JASONハーシュホーン:だから文体、 1右は必ずしもありません 答えが、それらの両方が優れている ただ、これらのランダムを投げるより あなたのコード全体の数字。 我々はそれらのマジックナンバーと呼ぶ。 私はあなたのコードを見たり、とき 誰もがそれを読んで、それら ただこれらの乱数をしたくない それは意味をなさない。 一般的には偶数の26、 アルファベットの文字の数は、 それはトップアップALPHABETを定義する方が良いでしょう と、その文字列の数字26を保存 理にかなっている場合。 - または問題上の1つではなく、設定し 再び、我々はにこれについて話をしなかった 時間ではなく、ただの投げ どこでも25または10では、次のことができます QUARTERとして番号25または10として保存 DIME、およびそのための、それが容易になります 誰がにコードを読んだ あなたは、その番号を選んだ理由を理解しています。 そしてまた、あなたのため、あなたがこれまでにしたい場合 コー​​ドを更新、それは少しになります より堅牢。 うん? 学生:このコードはまたつもりです 後の私たちのために利用できるようにするには? JASONハーシュホーン:これらのコードのすべて 我々は一緒に書かれている あなたに電子メールで送信されようとし 男と利用できる。 はい。 だから5つの名前をユーザーに尋ねる。 ランダムに選択して印刷 名前の一つ。 誰がこの行をやった? これは、ここでトリッキーなラインです。 申し訳ありませんが、トム。 あなたは本当に良い仕事をしたが、 これは少しトリッキーです。 マーカスは、先に行く。 STUDENT:まあまず、あなたがしようとしている stdlib.hをと構造体はTIME.Hを含める必要が JASONハーシュホーン:だからで言っている 上部には、さらに2つのライブラリが含まれています。 あなたは私がS-T-D-L-I-Bを含めたい ドットH、標準ライブラリ、そして何 もう一つでしたか? 学生:この構造体はTIME.H JASONハーシュホーン:#は、この構造体はTIME.H したがって、これらは、2つ以上のライブラリです。 私は、我々が使用してすることになるだろう今と仮定 これらに含まれている機能 あなたが必要とされる理由である2、 それらを含むように? STUDENT:それでは、最初にあなたがいる srand関数を書きたいつもり。 JASONハーシュホーン:srand関数。 学生:(時間(0) JASONハーシュホーン:申し訳ありません。 srand関数(時間( 学生:0。 JASONハーシュホーン:0。 学生:))、セミコロン。 JASONハーシュホーン:別の閉じ括弧? セミコロン。 私はただ交換するつもり NULLではあなたのゼロ。 それは同じ事をやるだろうが、 一般的には、どの、NULLが表示されます 我々はこれについて話します 番目の行。 学生:文体良い? JASONハーシュホーン:一般的に、人々 右NULLですが、同じこと。 学生:そしてint型名。 JASONハーシュホーン:Intの名前。 学生:= JASONハーシュホーン:= 学生:ランド。 JASONハーシュホーン:ランド。 学生:() JASONハーシュ:() 学生:モジュロ番号。 JASONハーシュホーン:モジュロは何ですか? 文字? パーセント文字? 学生:パーセント文字。 あなたが一番上の定義したモジュロNUMBER。 JASONハーシュ:モジュロNUMBER。 学生:そしてセミコロン。 JASONハーシュホーン:セミコロン。 学生:そして新しい行、printfの。 JASONハーシュホーン:Printfは。 学生:( JASONハーシュホーン:( 学生: " JASONハーシュ: " 学生:%S / N JASONハーシュホーン:%S / N 学生: " JASONハーシュホーン:%S / N " STUDENT:カンマ、スペース名。 JASONハーシュホーン:スペース - 学生:ああ、私は、推測何 我々はそれをここに呼んでたのか? JASONハーシュホーン:我々はそれの名前と呼ばれる。 STUDENT:オープンブラケット、名前。 JASONハーシュホーン:オープンブラケット、名前。 STUDENT:クローズブラケット。 JASONハーシュホーン:クローズブラケット。 学生:) JASONハーシュ:) 学生:セミコロン。 JASONハーシュホーン:セミコロン。 OK、のは保存しましょう​​。 このコードを作ってみましょう。 学生。 このコードを実行してみましょう。 学生。 ではない。/学生。 。/学生。 名前1。 私たちは、ダビデに言うよ。 名前2、RJ。 名前3、ロブ。 名前4、ルーカス。 名前5、ジョセフ。 そして、それは再びジョセフを出力します。 だから私は再びこれを実行してみましょう。 私は同じ名前をやってみましょう。 デビッド、RJ、ロブ、ルーカス、ジョセフ。 そしてそれはデビッドの私にこの時間を与えた。 だから私は同じ事をした、それが与えた 私別物、それだ なぜなら、もちろん、我々は求めている ランダムな名前のために。 だから私は私が放浪のオフに基づいて、考える 部屋の周りに、そのほとんどの人々 おそらく、最初の部分の権利を得た その配列を設定した後、取得 すべての名前。 私は16を通ってライン10について話している。 しかし、21行目18がおそらく あなたが前に見ていないいくつかのもの、 それでは、それらを通過することができます。 この行は、srand関数時間NULL 本質的に - 申し訳ありませんが、のがダウンスキップせ 行、ランド()。 つまり、あなたに乱数を与えます ランダムな整数。 そして、あなたは男ランドをヒットした場合、どの あなた方の多くはなかった - M-A-N空間R-A-N-D - このような端末で、M-A-N スペースR-A-N-D、Enterキーを押してください。 あなたは、マニュアルに出てくるであろうと そのランドを読み取ることができるだろう コマンド出力は、NUM擬似ランダムバイト 乱数を播種した後 一度ジェネレータ。 だから説明だ。 つまり、ランドが何をするかである与える あなた乱数 あなたはその関数を呼び出します。 残念なことに、それは本当にランダムではありません あなただけランダム呼び出した場合理由 それをいくつかの種子を得ることなく、いくつかの 出発点は、常に選択する 同一それは、式を使用して 次のいずれかを決定する。 あなたはランドを呼び出すのであれば、それだけでよ あなたに同じことを与える。 これは非常に予測可能になります。 これは、実際にはランダムではありません。 それでは、私たちが行う必要がある、マーカスの一人当たりの 私への命令は、種子のランドだった 何か他のもので、それは何であるか srand関数はありません。 もう少し何かそれは種·ランド 同じものよりもランダム、と 彼は、時間がNULLでそれを播種ている 単に慣例により、現在、ある 秒単位の時間。 だから、誰もがないと仮定しています 正確でコードを実行するつもり 同じ第二は、ので、それは安全な賭けだ タイムNULLは異なることになるだろう たびに、このコードが実行されます。 こうして、srand関数はシードランドという安全な賭け 何か違うごとで 単一の時間。 だから私たちが欲しい慣例による 乱数は、我々は、この行を書き込む srand関数時間NULL、私たちに多くを与えるために よりランダムシード、そして我々は実行する 私たちに乱数を与えランド、。 うん? 学生:あなたは何を言うことができます あなたは、種子によって意味ですか? JASONハーシュホーン:種子のように - そうランドは、いくつかの番号を選択しようとしている そしてそれは、いくつかを使用するように起こっている そこを取得するための式。 だから、何かを始めるために起こっている その後基づいて何かにそれを回す その式のオフ。 あなたは常にそれを同じものを与えれば、 それは常ににそれを回すために起こっている 同じこと。 その最初のものだから それは種子である与える。 だから、あなたはそれに何かを与えたい から始めることが異なるので、それ 別の何かにそれを向けるだろう。 そして最後に、20行目、 この%が呼び出され モジュロ、と混乱しています。 それが少しあるものだ あなたが本当にしないことを、ここでは異なる 現実の数学を持っている。 しかし、本質的に、あなたは巨人を取るとき 数とは、C言語で分けるのか 残りの部分になりますか? 学生:それは切り捨てられます。 JASONハーシュホーン:それは切り捨てられます。 だから、3で割った20は何ですか? それはに何を返しません あなた、3で割った20。 申し訳ありませんが、10を3で割ったもの。 それはあなたに何を返すのでしょうか? 学生:[聞こえない]。 JASONハーシュホーン:ちょうど3で割った10 3を返し、しない3余り1。 どのようなので、10を法と3に戻り ただ残りは、1です。 あなたは、10分割されたのか知りたいと思ったのであれば 3は、実際にあったことで、だろう 3で割って10を行うには、あなたの3を取得したい その後、10モジュロ3を行うだろう、と あなたは1点を得ると思います。 だから、10が分かれていることを実現したい 3で3、残り1です。 そして、このラインで、ランドは次のようになります。 任意の整数、本質的に。 モジュロが言っているように、で割り この場合は5になっている番号。 そして、あなたは今までに数で除算した場合、 整数は常に未満でなければならない その数。 だから、5番で割っている場合、 残りは常にあることを行っている ゼロから4。 それは数学が出てどのように動作するかだけだ。 だから、小さいことでmoduloed多数 数は常に戻ります 残り、常にいくつかを返します 数あなた未満の番号 で割った値。 誰についてのご質問はありますか モジュロ、それは非常に来るので、 非常に便利なので、私は確認したい 誰もがそれを理解している? クール。 そして我々は、このプログラムが働いたことを見た。 OK、上を移動する。 だから次の、我々は入るつもり 機能、そして私達は行くつもりです このようなものの残りの部分を通してかなり すぐに私が取得したいので、 コマンドライン引数。 そう関数は、本質的に あなたが見てきたように、ブラックボックス。 彼らは、と呼ばれるパラメータで物事を取る 彼らはどちらか、彼らに何かをする それらを変更したり、いくつかの副作用を作成する そして最後に、彼らが吐く 何か外、 戻り値。 誰もが私に一つの理由を与えることができます なぜ我々は関数を使うのでしょうか? 誰? 我々は関数を使用したい理由の一つ? 誰ですか? 私は両手を見た。 正当な理由は何ですか? マーカス? 学生:あなたは、同じを呼び出す必要がある場合 コー​​ドを複数回の塊。 JASONハーシュホーン:OK、あなたが必要な場合 同一のチャンクを呼び出します 複数回コーディングします。 ジェフは、あなたが別の理由を持っているのですか? STUDENT:ちょうどよう あなたは以下のコードを記述することができます。 JASONハーシュホーン:あなたは以下のコードを記述することができます。 右。 - あなたが何かをたくさん行いたい場合 以前のコードでは、私は可能性があります 文字列を5回取得書かれていますが、 ループは、それがよりよいと見えるために あなたは以下のコードを記述する必要があります。 関数は同様の考えである。 私は、同じことをたくさんしたい場合 関数に移動して呼び出すこと たびに機能します。 それはあなたのためにそのことを行います。 それが大きな理由だ 関数を使用する。 だから関数の解剖。 この関数は、一般意志 このように見える。 それは、戻り値の型から始めましょう その後、名前を取得します。 それはそうでない場合、引数を取るよ パラメータとして、そして内側に知ら それらの中括弧は、よ あなたのコードを記述します。 私たちは、一つの関数をたくさん見てきました。 それがメインです。 ここに主な重畳さ その解剖私が以前持っていた。 右ここでint型は何を意味するのでしょうか? int型とは何を意味するのでしょうか? 私はint型のmain書くとき(無効)。 学生:戻り値の型? JASONハーシュホーン:申し訳ありません? 学生:戻り値の型。 JASONハーシュホーン:INTがある 正確に右のタイプを返す。 mainはintを返します。 メインは何ですか? 学生:関数名。 JASONハーシュホーン:メインです 関数の名前。 まったく正しい。 ボイド? 括弧内の無効とは何ですか? 学生:それはかからない 任意の外部値。 JASONハーシュホーン:だから無効 - 右。 括弧の中では、我々は置く パラメータまたは引数 この関数は、何が起こって、取り ブラックボックスの内部。 あなたがvoidを書くとき、あなたは言っている これはインチ何も取りません だからint型の主なボイドが主のことを意味し インチは何も取っていない 中括弧の中では、我々はいくつかを持って コー​​ド、そして我々は終わりを参照してください ゼロを返す。 原点復帰とは何を意味するのでしょうか? さて、私たちは戻り値の型について話しました。 mainはint型を返す必要があります。 つまり、この行が何をするかだ。 これは、int型、ゼロを返します。 もちろん、我々は多くのことを見ていない プログラミングで私たちは、で行うので、 我々はマシンとコンパイラ 我々は、最近あなたを使用 その行を必要としません。 主は、それが知っていることは十分特殊です あなたがメインの終わりに達したときに、単に すべてがうまくいった場合は、ゼロを返します。 実際には、何かがうまくいかない場合、 メインは、しばしば別のを返します その何かを意味する数値 あなたのプログラムに間違っていた。 だから、一般的には、コードを見たとき、あなた リターンゼロを書くが、それは良いことだしないでください それは背後に起こっていることを知って あなたが書くたびなぜならシーン 機能別の種類の、 あなたがする必要があるとしている リターンラインが含まれています。 あなたが言っているなら、私はするつもりです int型を返す、その必要はあり 何かを返す書き込む。 あなたはここで無効とまで言うなら の開始、無効メインボイド の例では、それは戻っていない 何でも - ボイド何を意味する - ので、その戻りラインを必要としません。 しかし、あなたは今までにない何かを書く 戻り値の型のために無効には、以下のものが必要です リターンとあなたは言う行 そこに何かを配置する必要があります それは型に一致。 それについてのご質問? 甘い。 スコープ。 これは、我々がしたものです 同様に触れた。 すべての変数は、我々が知っているように、い 一定の範囲と、その基本的な どこで変数の話 かもしれない、または参照されない場合があります。 そして、私は何が起こるかと言いたい 中括弧にとどまり 中括弧内。 だから例えば、、我々は、このコードを見れば 私たちは、グローバル変数を定義している mainの外で、int型A、 ここまでトップに。 私たちは、別のものを呼んでいる 内側のメインをint型。 我々はいくつかのより多くの中括弧があり、 我々は別のint型Aを呼んでいる。 我々は3つのコードでを持っている。 これらは同じものではありません。 私は3つの異なる変数を作成しました。 次に、これらの内側の中括弧の内側 ブレース、私は= 4と言う。 について話していることである、 最初のもの、もう一つ、 または第三の1? 学生:第三の1。 JASONハーシュホーン:それは話している 第三の約一。 それらのすべてのは、実際にすることができます この特定のの話 インスタンスその範囲はすべて行くので これらの最も内側の中括弧に。 しかし、あなたが物事を呼び出すときに同じ 名前は、隠しと呼ばれる何かがあります。 だから、唯一の対処または修正したり、使用 最新の変数、または1つの あなたに最も近い。 だからここの内側に、この第三のAは、最も近い そのライン、= 4、へので 第三の1に影響を与えます。 そして最後の行であり、= 2、 第二に、そのことについて話して、最初に、 またはサード? 学生:セカンド。 JASONハーシュホーン:それは話している 第二Aについて。 もちろん、第三のに最も近い コー​​ド内のそれが、サード 外には存在しません それらの中括弧。 たら、その閉じ括弧を取得 、それが、それがなくなっているように中括弧だ 本質的に。 だから、残っている2つだけはそれらである 最初の二つ、そしてもちろん、今 それが第二の1に最も近いだ。 だからに良いことだ スコープについては覚えています。 たとえば、私は、あなたが遭遇したと確信している DO WHILEループでこれ。 あなたは、変数の内部を初期化した場合 ループしながら行うと、あなたはしてみてください おそらく、それを外でアクセス このようないくつかの警告を得た 変数が存在しません。 つまり、スコープのアイデアのためだ 物事は唯一存在していること それらの中括弧内の。 中括弧は、巨大な抱擁そのようなものです あなたのコードに与えている、もう一つです それについて考えるための方法。 だから、これは何か、別の関数である コー​​ド、hellofunction.cにあなたがみんなのために。 私たちは、今のところそれをスキップするつもりだが、 これは私があなたに奨励するものです 自分で実践しています。 メインの呼び出しでプログラムを書く プリントアウトする別の関数 ユーザーへの挨拶。 それは本質的にこ​​んにちは世界を取っている とにそのprintfの抽象化 別の関数。 しかし、我々は今、その権利を行うつもりはない 我々は多くの時間を持っていないため 私が言っていたように残しました。 だから、関数の宣言。 我々としても前にこれを見てきました。 あなたは、別の関数を書きたい場合 あなたは、コンピュータが知っている必要があり、 主は、それが存在することを知っている。 だから我々は上記のメインである何、私たちは、書き込み 戻り型、名前、および パラメータは、その後下方にメイン、 ダウンここで、我々は実際には、その行をコピー その後、実際のコードを記述します。 したがって、このようにして、関数を呼び出す場合 上部のメインに、主は知っている 私だったらこんにちはとは、例えば、存在し こんにちは呼び出し、それがに見えるように 以下に実装ダウン。 私はこれが含まれていない場合はどうなりますか 一番上のラインアップ、無効こんにちは(無効)? 私は、この行を含めない場合 そしてメインの呼び出しはこんにちは、私は私 エラーを取得するつもり。 私はので、エラーを取得するつもりだ コンパイラは知らない このことは存在していること。 これは、なぜ私たちに似ています #インクルードんcs50.h. 本質cs50.hは何をやっている そこに文字列を取得し入れている。 それはそこにint型を取得入れている。 それは、それらの機能の全てを入れている アップ主の前になるようにプロトタイプ時 あなたは主にそれらを呼び出す、主は知っている これらのものは存在していること。 それはのもの。hファイルは何をすべきか。 そしてあなた自身を作るつもりなら この関数は、あなたが確認するんだ あなたは、そこにそのプロトタイプを置く。 これまでについてのご質問? コマンドライン引数。 これは、我々が終了しようとしているものです で、その後うまくいけば、我々はよ 一部PSETに絞る。 我々は絞ることができるでしょうかどうかは知りません その時間のために、しかし、 ここにいる皆さんと、そしてあなたなら みんなビットの後、私たちは言いたい 外にその上に行くことができます。 しかし、我々はで終了するつもりだ コマンドライン引数 最後の15分間。 私たちは目を覚まし、マイケル? あなたが目を覚ましている? グッド。 あなたが寝ているかどうかは知りません であなたの目を閉じた。 これはトリッキーになります。 コマンドライン引数。 それらは情報を渡すための方法の1つです プログラムに。 結局、我々は他の人に遭遇するでしょう。 しかし、本質的に、我々は停止するつもりだ 我々がしたい場合は、int型メイン(ボイド)を書き込む いくつかのコマンドライン引数を取る。 私たちはこの事を書こうとしている int型のmain(int型のargc、と呼ばれる 文字列ARGV、カッコ。 それが混乱しています。 それはされていない文字がたくさんだ 人間英語ので、我々はするつもりだ 今、それらを解凍します。 ARGCは引数countの略 - そしてもう一度、これらすべての意志の オンラインで利用できるように - それは引数の数です。 ARGVは引数ベクトルを表し、 それらは、引数そのものです。 これは、文字列の配列です。 私たちは、実際に配列を見てきました 今日の前の文字列。 我々は最後の1つを作成しました 私たちは、コード化されたプログラム。 だからここでの例です。 私が書く。/ OHAI CS50セクション 私のコマンドラインで。 この場合のargcは3に等しい。 ARGVブラケット0 OHAI、ARGVブラケット1です CS50で、argvはブラケット2はセクションです。 再び、ARGCは、引数の数です と旅あなたを少しへ ビットは、我々は常に名を数える 最初の引数として関数。 したがって、この場合には、3つある 引数は、関数の名前 私が入って入力した後、これら二つ 次に、我々はそれらを保存するつもりだ ARGVで引数自身。 そして再び、我々は前に見たように、我々がした この最後のプログラムの中で私たちは、コード化された。 あなたの配列を移動することができます ARGVとそれらの文字列を取得します。 それは我々がやったこと、本質的だ 私たちの最後のプログラムの終わり。 我々は、ランダムな名前を選んだ後、に行ってきました 名ブラケット何と印刷 そこにある文字列から。 一つのアレイの上に、なぜなら 文字列自体はとして、配列です の話には、配列を持つことができます 配列の、どのです 本質的に何ARGVです。 あなたが考えることができる一つの方法 これは、行と列である。 私は今それを描くことができます。 だからARGV - それは消去はない。 のがOHAI下描きましょう。 だから私は、OHAI CS50セクションに書いた場合、 私は切り捨てるつもりだ この例のセクション。 しかし、本質的に、私の多次元 配列、OHAI CS50、 私たちは、宗派をやろうとしている。 だからここに、私がアクセスすることができます - - 私はちょうどARGVに1つ番号を与えれば これは間違っている。 この図では何が悪いのでしょうか? 学生:ゼロから始まります。 JASONハーシュホーン:それはすべき ゼロで始まる。 私はおそらく、また、それを回転させる必要がありますが、 私はすでにそれを上に描かれたので、私はよ 今のところそこにそれを残すつもり。 しかし、それはゼロから始まります。 そう。 これが小さければごめんなさい。 君たちには、種類のを見ることはできますか? だから私は、argvの0をすれば、私はよ OHAIのすべてを取得。 私はARGV 1を行う場合、私はCS50のすべてを取得します。 私はARGV 2を行う場合、私は、宗派のすべてを取得します。 しかし、今、我々が言ったように、文字列 配列自体はされています。 それでは、私ができることは、私はこれを扱うことができますです 多次元配列のように、私 の線に沿って何かを行うことができます ちょうど私を与えargvを0、0、 文字0。 私だけの時間を与えARGV 0、1、。 ちょうど私を与えARGV 1、3、 ダウンここCS50でこの0。 だから理由文字列自身 配列があり、我々は入れている 別の配列でその。 我々は今、配列の配列を持って、私たち 私たちの最初の配列のインデックスとができます その後、私たちの二番目の配列へのインデックス。 あなたが期待するようにと、私たちはそれを行うこと ただ二人を置くことによって - 私達はちょうど角括弧を行う 互いのすぐ隣。 したがって、この例では、argvは1であり、CS50 argvは1、2は、我々が言ったように、わずか5です。 誰についてのご質問はありますか 多次元配列? 君たちは素晴らしいしている。 甘い。 だから私たちは、ここに別のプログラムを持っている そしてこれは我々がしている最終的なものです 今何をするつもり。 だから私は、あなたがプログラムを書きたいこと ユーザーのフルネーム、2とのみを取り 2つのコマンドライン引数、そして最後に、 に挨拶をプリントアウト 彼らの最初の名前が含まれていたユーザー。 なぜあなたは、3つまたは​​4つを取ることはありません これを行うには、その後、我々は行くよ分 グループとしてそれは上、および 次に我々は包むでしょ? そして再び、ここで、私たちが言うときに実行 記述ごとユーザのフルネーム この問題のため、コマンドでなければなりません ライン引数は、使用していない文字列を取得します。 ええ、マーカス? 学生:だから、2つのコマンドを言う ライン引数があり、それに加えて、 。/実行、または - JASONハーシュホーン:良い質問。 。/ラン、3名を含む、か コマンドライン引数。 またはで、。/パーソナライズ含む それだから、この場合、 このファイルの名前。 だからARGCは3になります。 しかし、私は2つだけ引数を望む プログラムに与えられた。 私はそれを指定する必要があります。 私は投稿する前に、私はその変化を作ります これらと君たちにそれらを送る。 学生:どのような場合 ミドルネームを持っている? JASONハーシュホーン:あなたが真ん中を持っている場合 名前、あなたは運の尽きだ。 ごめんなさい。 またはあなたが唯一のシャキーラで行く場合には、 あなたは幸運のうちにもいる。 うん? 学生:だから人々が持っていない cs50.h、彼らはARGVを定義しない charの星ARGVとして? またはそれはまだ文字列ARGVと呼ばれています? JASONハーシュホーン:はい。 だから文字列には、再び、我々は何の上にマスク まさにそこに起こっている。 多分アンパックするつもりだ 水曜日に、すぐ。 それは補助輪のようなものだ。 本質的に、それはだから 同じこと。 それでは、プログラムに別の分を取りましょう これは、その後、我々は上に行きます グループとして、その後 私が言ったように、包む。 そして私は、彼らはまだ余分なお菓子だと思う そう君たちはうまく取る必要があります そのこと、またはご利用ください。 あなたはまだ書いて申し訳ありませんがあれば、 しかし、私はでダイビングをしたいと私たち それを一緒に終了することができます。 だから私は、#includeを、で書かれています cs50.hは、#stdio.hに含まれています。 int型メイン(ボイド)、中括弧、中括弧 3行の内側に中括弧、 擬似コードは、ユーザーのフルネームを取る、 2と2つしかコマンドライン 引数への挨拶をプリントアウト 彼らの最初の名前が含まれていたユーザー。 最初の1だから、取る ユーザーのフルネーム。 誰が私が取ることができます ユーザのフルネーム? 私はその部分をどのよ​​うに行うのですか? 君たちは、その最初の部分をしましたか? ユーザーのフルネームを取る。 まあ、それは一つのコマンドラインの 引数は、私は何を書くべき? 私について何を変更する必要があります 私の関数の宣言? 学生:あなたはしたくない それはもう無効になります。 JASONハーシュホーン:その通り。 私はそれを無効にしたくない。 私は、それは何をしたいのですか? STUDENTます:int argcは。 JASONハーシュます:int argcは。 学生:文字列argvを。 JASONハーシュホーン:弦楽ARGV。 学生:ブラケット、ブラケット。 JASONハーシュホーン:ブラケット、ブラケット。 それはまさにそうだ、それはだ 実際にどのように私は取得するつもりです ユーザーのフルネーム。 彼らはそこにそれを置くつもりです。 だから1が行われている。 だから今、私は2と2つだけにしたい コマンドライン引数。 ノアだから、私ができる一つの方法は何ですか コマンドの数をチェック ライン引数が私が持っている? 学生:あなたは、if文を実行します。 JASONハーシュホーン:もし 声明、まさに。 私は条件として何をしたいですか? 学生:3より大きいのargc場合。 JASONハーシュホーン:もしargcは 3よりも大きい。 3以上のargcが大きい場合は、私は何をすればよいですか? STUDENT:リターン1。 JASONハーシュホーン:リターン1。 それは私が持っていることを確認します 2と2つだけ? 学生:いいえ。 ARGCがより大きい場合 2よりも3と少ない。 JASONハーシュホーン:ARGCが大きい場合 3とARGCが2未満であるより。 私だけでこれを書くことができます一つの方法は何ですか 1行又はそれを使用せずに とブール演算子? 学生:それは2に等しくありません。 JASONハーシュホーン:もしargcは 2に等しくない。 まさに。 だから、argcは2と等しくない場合、その 私は、このプログラムを与える、 パーソナライズされた、私はそれを実行したとき、および それはどのように多くの私を与える コマンドライン引数? どのくらい私はのためにチェックします? 申し訳ありません。 私はことを言い換えるてみましょう。 ARGCは= 2、どのように多くのものがなかった場合 ユーザーは、ラインに書くのか? 学生:One。 JASONハーシュホーン:ちょうど1。 だから前に、あなたは、右のノアでした。 私は実際にそこに置くには何が必要ですか? 学生:3に等しい。 JASONハーシュホーン:ARGC 等しい3しません。 私が欲しいので、私は3に等しくなるようにしたい パーソナライズされたプラス他の二つ。 だから、argcは表示されない場合は等しい3、リターン1。 なぜあなたは1を返すと言ったのですか? 学生:そのため、 それは間違っていることを意味します。 JASONハーシュホーン:それは間違っていることを意味し、 とどのようなことが何になるだろう? 学生:再促すユーザ。 JASONハーシュホーン:それはやめるために起こっている このプログラムは、ので、それは実行する必要があります 再び、私たちは何も持っていない ここで再び彼らのためにお願いします。 私はそのために要求していない。 だからまさにそうです。 ただ、プログラムを終了し1を返します。 素晴らしい。 とユーザーに挨拶をプリントアウト それは彼らの最初の名前が含まれています。 どのように私はそれを行うことができますか? アンナ? 学生:Printfは。 JASONハーシュホーン:Printfは。 学生:( " JASONハーシュホーン:( 学生: "こんにちは JASONハーシュ: "こんにちは 学生:%sは JASONハーシュホーン:%sは 学生:N / JASONハーシュホーン:N / 学生: "、 JASONハーシュ: "、 学生:ARGV JASONハーシュホーン:申し訳ありません? 学生:ARGV JASONハーシュホーン:ARGV 学生:角括弧1。 JASONハーシュホーン:角括弧? 学生:1。 JASONハーシュホーン:1。 STUDENT:そして)セミコロン。 JASONハーシュ:)セミコロン。 私たちはこれを実行してみましょう。 パーソナライズされたことを確認します。 。/パーソナライズされた。 それだけで終了します。 それはなぜ辞めたのですか? 学生:あなたは、任意の引数を入れていない。 JASONハーシュホーン:私はしませんでした 任意の引数をインチ置く 大きく見ます。 君たちはそれを釘付け。 だから、もう一度、あなたはARGVに入ったと 初めのargcでチェック。 これらは、2つの重要である 覚えておくべきもの。 だから私たちの前に私たちの最後の2分間で 残し、我々はPSET 2を得ることはありませんが、 あなたが後に滞在したい場合、私は言ったように 10分間、私は彼が行くことが幸せでしょう あなたとオーバーみんなロジック これらの問題はセットの。 我々は今日をカバーするためにたくさん持っていた ので、私は彼らに取得できませんでした。 一般的に、私は、含めたい その終わりに。 だから、あなたの周り固執したい場合は、 10分間固執。 我々はそれをするつもりだ。 その後、私が冒頭で述べたように、 PSET 0と1は、私たちのことを買ってあげる あなたのように戻ってフィードバック できるだけ早く。 目標は、PSETつのフィードバックを得ることです コメントパーツ、 PSET 2の前に起因している。 あなたには、いくつかのミスをしたのであれば、または 文体、物事は、良いかもしれない あなたはその情報を持っていますので、あなた PSET二つに同じことを行うことはありません。 そして将来的には、すべてを取得します あなたのPSETのフィードバックやコメント 次のいずれかによるものです背中前。 最後に、私は別のに入れなかった場合 フィードバック用のプラグ。 これはあなたの最初のセクションである。 それは私の最初のセクションだった 今年教え。 そこに行く。 、良い面と悪いものを、お書きください。 と私が作ってそれを使用します 良いセクション次回。 そして、あなたが必要な場合は、もう一度、最後の 何か、私に知らせてください。 私はあなたたちを助けることよりも幸せです。 あなただけのお菓子をしたい場合は、I 余分なお菓子を持っています。 私はあなたにそれを持って幸せだ。 これは驚くべき当然になるだろう。 これが私のお気に入りの一つであり、そうでない場合 もちろん、私は私の全体の生活の中で撮影した、 と私はそれがあることになることを願っています あなたのために素晴らしい。 だから私は私の力のすべてをやってみたい それはあなたのためにその素晴らしいようにします。 私は、あなたがしている場合、電子メールを送信するつもりです 私のセクション内またはノア、そして の各々と試してみて、スケジュールになるだろう あなたはみんなの上で確認するための時間を 数週間は、私は得ることができます あなたのCSの背景が何であるかの感覚、 そしてそれはまた、これらの私が合わせるのに役立ちます より良いあなたのニーズに合わせてセクション。 だから、それは私が並んで持っているものだ。 繰り返しますが、私は外でお会いしましょう あなたがそこになりたい場合。 これは二つの節一週間でした。 そんなにみんなありがとう。