>> 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？
>> 学生：存在しません。
>> 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の背景が何であるかの感覚、
そしてそれはまた、これらの私が合わせるのに役立ちます より良いあなたのニーズに合わせてセクション。
だから、それは私が並んで持っているものだ。
繰り返しますが、私は外でお会いしましょう あなたがそこになりたい場合。
これは二つの節一週間でした。
そんなにみんなありがとう。