[音楽再生] JASONハーシュホーン:[OK]を、誰もが。 セクションへようこそ。 これは私たちの非常に、CS50です 最初のスーパーセクション。 あなたのすべては、来週知っているように 通常のセクションが開始され、 しかし今週、我々はすべて一緒にいます。 私自身があります。 私の名前はジェイソンです。 私はコンピュータサイエンスの講師です。 我々は、CS50の頭TAだアンディを、持っています。 そしてScaz、教授ブライアンScassellati、 彼はコンピュータサイエンスの教授です。 私たちは、エール大学でCS50ヘッドです。 あなたは、常に電子メールで送信することができます 私たちheads@cs50.yale.edu。 私たちは、講義になります。 私たちは、営業時間になるでしょう。 我々はできるものは今までがある場合 、あなたのためにあなたが必要なものを行うには、 私たちに手を差し伸べるして自由に感じます。 それでは、今日はどうするつもりですか? あるいはそれ以前に、何の 今週来ますか? だから、営業時間は、月曜日、火曜日です 水曜日、木曜日、午前11時8:00。 ウェブサイト上のスケジュールがあります。 セクション、私が述べたように、 来週始めています。 そして、あなたは何をこの週を見つけるだろう 時間あなたのセクションでは、それが何であるかの日、です、 あなたのTAは誰なのか。 問題セット1は、木曜日に起因しています 後半日で正午正午、金曜日。 はい、あなたは9日遅くしています。 そして、9問題のセットがあります。 そして、一つだけを使用することができます 問題セットごと遅く日。 はい、実際には、すべての問題 セットは正午金曜日によるものです。 それがすべてです。 詳細はシラバス上にあるすべてのこと。 毎週金曜日、私たちはランチを持っています。 私たちはこの大きなを作るのが好き コー​​スは少し小さく感じます。 だから、RSVPに歓迎しています。 仲間と無料のランチ クラスメートとスタッフ。 cs50.yale.edu/rsvp。 これらの事のすべてのこと 私は、画面上に持っています 以上、あなたが見つけることができるcs50.yale.eduか あなたはハーバード大学に行けばcs50.harvard.edu、 このオンラインを見ています。 また、それらのウェブサイト上で、そこに あなたのための資源のトンです。 すべての講義はビデオを持っているだけでなく、 講義だけでなく、ノートの。 誰かが見てます 講義、あなたのためにメモを取ります。 だから、あなただけ支払うことができます 講義中に注目、 または、あなたは自分のノート/私たちを使用することができます 独自のノートを補足するために指摘しています。 スライドは来店中です。 ソースはすべてをcode-- ダビデは、講義中にオーバー行きます またはScazは、講義を乗り越えること ソースコードは、オンラインで入手できます。 同様に、私など、動画を述べました。 セクションは、同様に、全てを撮影します。 これらのスライドのすべてが利用できるようになります。 そのコードの意志のすべて あなたのために利用可能です。 ウェブサイト上のどこにショートパンツがあります CS50のスタッフは5〜10を過ごします あなたのためのトピックを通過分。 それらのいくつかはすでにしました 問題のセットで発生しました。 オフィスアワー、私が述べたように、月曜日 木曜日、11時00 8:00を通して。 CS50研究は素晴らしいリソースです。 練習問題があり、 サンプルスライド、既知のバグ 学生はに実行したいことを、 基本的にすべてのトピック私たちのために このコースでカバーします。 そして最後に、このスライドに 少なくとも、Reference50 これはあなたの情報を提供します Cの関数のすべての あなたはおそらく願っでした 使用して、さらに多くします。 繰り返しますが、それはでドットドットドット 画面下部 でもありますことを示すことです これらの2つのウェブサイト上でより多くの資源: cs50.yale.edu、cs50.harvard.edu。 だから、今日は何をしていますか? さて、最初に私が与えるつもりです あなたは、リソースを見てください。 既にその一つでした。 私たちを見てください。 今、私たちはオーバー行くつもりです Cのデータ型と演算子 その後、アンディは、ここに出てくると C言語でライブラリの上に行く、のprintf()、 あなたは既にれる機能 使い慣れたかすぐに非常になります おなじみ。 そして、あなたはまた、オーバー行きますよ 条件分岐やループ。 そして最後に、Scaz CS50のIDの上に移動します。 あなたがで鳩していない場合 すでに問題セット1で、 同様に使用する方法 端末と便利なコマンド して、あなたにいくつかのデモを与え、 CS50のIDで練習コーディング。 私はこれにジャンプする前に、 この側のコンテンツ、 誰もがこれまでの任意の質問がありますか? グレート。 OK。 ギアを変更します。 [GEARSを変更] それは私がシフトしました マニュアル車の中でギア。 だから、C言語のデータ型、あなただけ持つことができません 変数xと、それはライン10上に存在する必要があり、 整数、多分数1、 ライン20の10進数10.5、 して、数行 後で文字列、私はCS50が大好きです。 C言語では、変数は、することができます 一つのこと、そして一つだけ。 だから、あなたは、彼らに型を与える必要があります。 そして、この基板上に、我々 タイプのリストを持っています。 これは文字があり、 文字を表します。 だから一文字A、B、C、です また、空間とすることができますD.、 またはそれはまたすることができます 改行文字。 ちょうどある整数があり、 数字、全体numbers--または整数 rather--しかし、誰小数。 小数のために、私たちは持っています 浮動小数点数。 浮動小数点数 小数と数字があります。 そして、あるlong型があり、 基本的に長い整数。 あなたが長いことに気づくでしょう intは4であるのに対し、8です。 私は2番目のものになるでしょう。 long型にも格納できるためです int型以上の整数を格納することができます。 ダブルは長いフロートです。 そして最後に、私たちは持っています 型である文字列、 あなたはおそらく以前に使用していること。 あなたはハッシュタグが含まれている場合 ソースファイル内の#includeCS50.h、 あなたは文字列型を使用することができます。 これは実際にCに内蔵されていません カップルの他のタイプも同様にあります。 しかし、これらは、主なものとがあります これはあなたが使用して発生します。 Cと、再び私が述べたように、 すべてのは、それをvariable-- 一種類のみ、唯一のタイプにすることができます。 Cは静的であるためです 対照的に、言語を入力 動的型付け言語に どこで変数を作成した場合 あなたは、に格納されている内容を変更することができます それはあなたのプログラムの中に行くように。 ここで右手にオーバー 側、私は、異なるサイズを持っています バイト単位のデータのこれらの種類の。 だから、文字は1バイトです。 それは8ビットです。 そして、それは8を意味しているため ビット8 0と1をあります。 我々は最初に、これらのデモを見ました そのバイナリ電球と週。 8ビットまたは1バイトで、我々はできます 0から255までの数を表します。 右。 すべての8ビットは0です0の場合。 最初のビットが1である場合、それは数です 1、というように、255までのすべての方法。 そして、それはあなたができる文字について理由です 基本的にそれらの255まで持っています、 それはすべてをカバーするためにたくさんです 文字は、我々が使用する必要があります。 整数の場合、0を持つことができ、 あなたは32マイナス1に2を持っています。 それらはどのように多くのオプションがあります あなたは整数のために持っています。 長い間、あなたは0を持っています 64マイナス1から2へ。 だから、多くの、多くを持っています、 long型のためのより多くのオプション。 文字列は、それは疑問符です それは後でのための接戦だから。 うん。 私は、みんなのを言うことができます 彼らの座席の端に、 以下のようなその疑問符は何ですか? それはクリフハンガーです。 我々は最終的の大きさをカバーします 文字列と文字列の詳細について話しています。 文字列は、実際にはあるので 補助輪の1 我々は、この中に置きます 先頭のコース 、後に離陸 C言語の文字列のため 実際のポインタであります 文字配列へ。 しかし、再び、それはです 後でクリフハンガー。 私はすべての質問に移る前に、 コメント、このスライドの懸念? OK。 私は素晴らしい説明者でなければなりません。 また、あなたはプログラミングをしているとき、 あなたはこれらの演算子を使用するつもりです。 単純な行うことができます本当に簡単な兆候 操作は、これであなたはおそらくしています すでに非常に精通。 例えば、右の 手側は、我々が追加表示されます。 追加するには、あなただけのプラス記号を行います。 だから、あなたは可能性があり 二つの変数xとy。 あなたは、あなたのコード内でX + Yを行うことができます。 たぶん、あなたはあなたを言いたいですto-- 番号を持つ7と3、 あなたはそれを保存したいです 和と呼ばれる変数です。 あなたは、タイプのためのスペースをint型を行うことができます 和、変数の名前、= + 3 7。 何合計でその店のでしょうか? 誰ですか? 私は合計= 7 + 3に持っていた場合。 合計で何を保存することでしょうか? あなたはそれを大声で叫ぶことができます。 聴衆:10。 JASONハーシュホーン:10! それはまさにそうです。 合計では約何= 7から3、 私はちょうどそのダッシュ記号を使用。 何が格納されていることになるだろうか? 対象:4。 JASONハーシュホーン:4。 合計は、おそらく間違った名前です。 その変数が、4が格納されます。 C言語で乗算するには、少しを使用 スターの文字、あなたは、xを使用しません。 分割するには、フォワードを使用 ない除算記号をスラッシュ。 モジュロに、パーセント記号を使用しています。 それでは、私はint型のz =を確認したいとしましょう 7%3、Zに何を保存することでしょうか? そのように、それは本質的な モジュロは何をするのか尋ねますか? 誰もがモジュロが何を知っていますか? うん。 Y 4。 SPEAKER 1:それは、残りのです。 JASONハーシュホーン:それはあります あなたが分割余り。 だから3で割った7は2余り1です。 そのように1が格納されることになります。 あなたは、引き算をしました それはそれがどのように動作するかです。 これはモジュロ演算子が何をするかです。 それは数がで除算取ります あなたに別の番号とリターン 残り。 だからもう一度、7%3があるため、あなたに1を与えます 7 2余り1で3で割りました、 余りを返します。 何についてのアップ戻ってみましょう その除算記号に一歩。 私は3で7 /分割をした場合はありません 誰もがそれが戻ってくる知っていますか? SPEAKER 2:2。 JASONハーシュホーン:なぜ2及びませ2.333? SPEAKER 2:私はそれをカット思います 整数の後にオフにします。 JASONハーシュホーン:だから それがまさにそうです。 Cでは、の分裂をすれば 3で割った二つの整数7、 それは答えを取得します 永遠にこの場合2.3333で そしてそれは小数点を見つけ、 小数点以下のすべてをオフにチョップ そして、それはちょうどあなたに2を返します。 私は3で割っ8をしたのであれば。 それは実際に、私たちは知っています それは、2.666を返します それはにすべてをオフにチョップ 小数は、それをすべてを切り捨て、 ちょうどあなた2に戻ります。 だから6 3、7分割によって分割 3により、8は3で割りました、 すべてのあなたの2に戻りしようとしています。 誰もが知っている、または推測を持っています、 私は実際に得ることができる方法として、 完全な答え私はその小数をしたい場合は? うん。 先に行く。 SPEAKER 3:floatを使用しますか? JASONハーシュホーン:あなたは何を意味するのですか? SPEAKER 3:あなたが言ったので フロートが数字のためである[聞こえません] JASONハーシュホーン:右。 だから、それがまさにそうです。 7は整数です。 しかし、私はそれをオンにしたい場合 浮動小数点数に変換し、 私はそれを保存する必要があります コンピュータのため7.0として 本当に私たちがいるのを見ましたstupid--されます PBとJ example--と それだけで正確に行います あなたがそれを教えてください。 だから、7を書けば、それ それは整数だと思います。 あなたも私たちも、7.0を記述する場合 それらのものが等価である知っています、 それは次のようにそれを扱います 浮動小数点数。 あなたがしたのであれば7.0を分割 3によって、または3.0で割りました、 それが今、OK、と言うでしょう 私たちは、フロートを扱っています。 私は永遠にあなた2.333333に戻ります。 しかし、本当に永遠に、理由 私たちは講義でも見たように、 これらの浮動小数点数 厳密に正確ではありません。 だから、その小数をしたいならば、 またはその小数点以下の部分、 あなたがそれらのいずれかをuse--する必要があります 浮動小数点数でなければなりません コンピュータが理解する必要があります これはあなたがしている浮動小数点であります 、ではない整数を扱います。 そのテーブル上の任意の質問に 右側、これまで? または、左手、あなたの 左、左手。 うん。 スピーカ4:右。 普通等の 整数、あなたはでしょう write--あなたが浮く記述する必要がありますでしょうか? JASONハーシュホーン:ええそう。 さて、あなたは作成したい場合 フロートだ変数、 あなたはfloatを言う必要があります zが何かに等しいです。 スピーカ4:[OK]をクリックします。 JASONハーシュホーン:しかし、私はしたい場合 図7は、3で割って、その小数を得るのですか、 私は、フロートのz = 7.0 / 3.0をすることによってをするだろう。と それは私に浮動小数点を与えるだろう 番号。 スピーカ4:[OK]をクリックします。 JASONハーシュホーン:私がやった場合 3によってint型のz = 7 /のようなもの、 それは私に整数を与えるだろう、 これらのため、すべての整数です。 それは理にかなっていますか? スピーカ4:はい。 JASONハーシュホーン:[OK]をクリックします。 グレート。 その表についての他の質問? 本当に? 私はとても興奮しています。 OK。 だから、あなたが使用するいくつかの他のものは、 しばしば、条件やループで、 operators--のこれらの種類があります ブール式のこれらのタイプ。 私たちが学んだように、==はあなたのものです 二つのことが等しいかどうかを確認するために使用します。 X == yは、のを許可すればだからここに私がチェックしています 再び、xは7であり、yは3であると仮定する。 だから私は7 == 3、何を書いた場合 それは私に戻るのでしょうか? それは本当か偽か? 者:偽。 JASONハーシュホーン:[OK]をクリックします。 皆はこの1つを得ることができるような気がします。 だから皆、それが何を返すのでしょうか? 者:偽。 JASONハーシュホーン:偽。 グレート。 図7は、3に等しくありません。 だから7 == 3はfalseを返します。 私場合は等しくない記号を持っているので、 7チェック!= 3、それは何を返すのでしょうか? 聴衆:真。 JASONハーシュホーン:真。 優れています。 誰かが非常に強調しましたで バックして、それを感謝しています。 その後、オペレータ未満を持って、 より小さいか等しい演算子、 オペレータより大きく、大きいです か等しい演算子。 だから、もう一つの健全性チェック。 私が持っていた場合は7が大きいです よりまたは3に等しいです。 それは何を返すのでしょうか? 聴衆:真。 JASONハーシュホーン:真。 はい。 その奥の部屋、裏面 部屋の、素晴らしいです。 あなたはこれらを組み合わせることができます 式の場合のように、だけでなく、 これは論理積であります &&や論理和(OR)これは|| ||。 そして今、あなたは2をテストすることができます 物事が面白いということですかtogether--? なぜそれがおかしいのですか? 私が欲しかったのであれば、私は言うことができる7 3より大きく、2が4未満のですか? さて、7が大きい場合 3よりも、それは本当です。 2が4未満であり、それは本当です。 したがって、この全体のことは、trueを返します。 私は7をテストした場合は3 and--より大きい 私は乱数を選びましたhere-- 4が2未満である、よく、それは偽です。 だから、真と偽のメイク偽。 そして、あなたは上に行くことができますし、として組み合わせます あなたが好きなように一緒に多くの条件。 誰もが任意の質問を持っています、 コメント、これまでの懸念? そして、私はあなたのいくつかは写真を撮って参照してください。 私の、私は感謝画面、インチ うまくいけば、それはSnapchatはありません。 うまくいけば、それはあなたのノートのためです。 しかし、これらのすべてが起こっています オンラインで入手することができます。 だから、あなたがする必要はありません この写真を撮ります。 私は、すべてを述べたと同様に あなたのためにオンラインで利用できるようになります。 OK。 私が取得しようとしてよ オフステージなので、誰もがありません 何を言いたいです それが起こる前に? 質問? 【声を挟ん] JASONハーシュホーン:ああ、停止します。 君たちもいいです。 OK。 私は、タグアウトするつもりです。 行きましょう。 ANDI PENG:私たちは、やろうとしています 今厄介なマイク変更。 JASONハーシュホーン:私は このオフを取るつもり。 ANDI PENG:サポート、みんなに感謝しています。 私の声が聞こえますか? それは良いですか? パーフェクト。 美しいです。 私はちょうどにそれを押し込むてみましょう。 OK。 だから、私は巨大なように行うには約です 情報今、君たちにダンプします。 そして、何の心配であれば、あなたはしているん 何のどんな小さなライン以下ではありません 私はあなたを見ることを約です。 ジェイソンが言ったように、すべてのもの 完全にオンラインです。 ちょうど我々が導入しようとするつもりです カバーされた概念に誰も これらのスライドの一部です。 だから一緒に従います。 あなたが理解していない場合は心配ありません すべて;しかし、もし任意の時点で あなたが失われたと感じ、あなたを上げます 手、私たちは、心配を停止しないでしょう。 クール。 だから私はダビデは持っているものだと思います 既に種類の講演で言及 そして、ジェイソンは一種のほのめかしました 今日にライブラリがあるものです。 だからプログラミングで、我々は持っています これらのことは、ライブラリと呼ばれます。 ここで、基本的に、すべての 彼らはセットされています 機能の、即ち 基本的にただのコードの すでにによって書かれて 我々はすべてのことができることを他の誰か 我々のプログラム内でご使用ください。 それでは、どの通常の処理を行い 図書館の仕事、右? あなたは、ライブラリのドアを入力してください。 あなたは、これらすべてを持っています あなたが引き出すことができますブック あなたが情報にアクセスすることができます それらの本の中。 プログラミングで同じこと。 あなたは既に持っているライブラリがあります 他の人によって書かれて。 ところであなたができること、 プログラマや学生として、 そのライブラリにアクセスすることができます ハッシュタグの#includeを介して行われます。 たとえば、C我々で 3を持っているC--最も 一般的に使用される3つのCの標準 、入力/出力ライブラリをlibraries-- 文字列ライブラリ、 そして、数学ライブラリ。 だからあなたの最初の内 夫婦の問題は、セット それらは3になります あなたが主に使用していること。 すでにデビッドように 講義で説明し、 標準I / Oライブラリ、または 標準入力/出力ライブラリ まさにそれを行います。 これは、入力に、あなたのコードでは、ことができます そのユーザと出力から何か 画面に、基本的に 画面にそれを印刷します。 だから、いつでもあなたは、任意の関数を使用します 例えば関数のprintf()します 我々は、次のスライドの上に行くつもりです I / O規格を含めるようにしてください 他のライブラリまたはあなたがするつもりはありません printf()関数を使用することができます。 、あなたので、プログラマーとして 実際に、その関数を書いたことはありません あなただけの誰かを使用しています 独自のコード内の他の人のコード。 そのメイクセンス誰もがしていますか? クール。 そして、我々は基本的に取得します string.hのライブラリとのmath.h ただライブラリを意味.hのライブラリー、 そのあなたが最終的によ他のライブラリ あなたのコード内で使用しています。 しかし、目的のために このライブラリの、私たちも 我々はまた、持っているこのclass--のhave-- 何CS50ライブラリと呼ばれ、 cs50.h、どこ、用 あなたの閲覧が作成されました 多くの重要かつ有用な機能。 だからあなたのようなプログラマ オフピギーバックすることができます どのように我々はすでに書きました この関数の使用可能 あなたの使用のために。 私はのカップルをカバーすることになります 関数は、一般的に使用されます、 これらはであることを知っています すべてgoogleableオンライン。 、気軽CS50ライブラリをプルアップし、 あなたはそこにすべての機能を有しています。 うん。 スピーカ5:あなたがいなかったのであれば ソフトウェアを使用して、その によって提供されます クラスは、それを行います 私たちはダウンロードして見つける必要があるだろう意味 このヘッダは、自分自身をファイルと言います それは、コンピュータ? ANDI PENG:グレート質問。 その通りです。 だから、それはあなたがいないのであればのようなものです 図書館で物理的に存在し、 あなたがするための方法はありません 実際に行くとそれにアクセスします。 同じもので、だから、 C言語でのプログラミングには、 あなたが私たちを使用していることを確認する必要があります アプライアンスライブラリがすでにだから それに組み込まれて。 そして、あなたはハッシュタグとき #include、図書館の存在。 うん。 良い質問。 みんな良いですか? クール。 大丈夫。 だから我々は、ヒットするつもりです 基本的に、何があります 最初の関数こと 私たちのプログラマーがそうであるように 私たちのコード内で使用することにしよう。 これは、printfの()関数と呼ばれています。 だから、のprintf()関数、私がきたように すでに最後のスライドで述べています、 標準I / Oに含まれ 標準入力/出力、ライブラリ。 だから、using--しているものは何でもことを確認してください ああ、私はレーザーをつかむせpointer-- あなたが使用しているときはいつでも printf()関数、 あなたは、I / O規格を含める必要があります コンパイルライブラリまたは他の、 あなたがエラーを取得するつもりです コンピュータは次のようになりますので、 printf()がどこにあるああ、私は知らないが、 あなたが私に言っていないところのprintf() です。 まあのprintf()が中に含まれています 標準I / O、ので、あなたはprintfの()を使用し、 それを持っていることを確認してください あなたのコード上の行。 ですから、例えば、printfの() ここで関数です。 それがないすべては何かをプリントアウトです ユーザーにかっこ内。 誰もが刺しを利用したいと思います どのようなコードのこの行が右に ここでプリントアウトしようとしていますか? したがって、答えは画面上です。 誰ですか? ヴェルディ:ボトム。 ANDI PENG:ヴェルディ、なぜあなたは行っていません 先に全体の文を言いますか? VERDI:こんにちは、私の名前はあります アンディ、私は20歳です。 ANDI PENG:ああ、美しいです。 この行では、我々がしようとしているそう 、私の名前はアンディです、こんにちは、プリントアウト 私は、これは20歳です 真の文は実際にあります。 構文。 だから、夫婦構文上の問題のこと あなたたちは、あなたが知っていることを確認したいです。 引用。 二重引用符は言います コンピュータ内部のすべてのもの 印刷されようとしています。 缶内部のすべて ただ正確にどのようになります あなたはを除いて、それを入力 一般的に最後に、 我々が含まれるようにするつもりです hash--ああsorry--ダッシュN。 だからダッシュN。 誰もが推測を取りたいん それは私たちのコードに何で? うん。 スピーカ6:新しい行にそれを置きます。 ANDI PENG:その通り。 だから、すべてこれがされません 起こるものは何でも許します この後、このステートメントの後、 新しい行に印刷されます。 だから、あなたを書いているとき あなたはランダムなものを持っていないコード 最後に上のタック あなたが望んでいないこと。 そのすべてが取得します きちんと1行を印刷 し、我々は次の行に開始します。 誰もがどのようなことを覚えています 私たちがコーディングしているときセミコロンはいますか? うん。 スピーカ7:声明。 ANDI PENG:申し訳ありませんか? スピーカ7:それは文を終了していますか? ANDI PENG:うん。 だから、C、または任意のプログラミングで 言語、セミコロン プログラミングラインの終わりを表します。 したがって、たとえば、英語で我々はピリオドを使用 言って、ああこれが最後の文です。 プログラミング、同じことで、私たちは持っています 行の終わりを示すためにセミコロン。 多くの場合、あなたがいるとき プログラムを開始し、 あなたはあなたを実現します セミコロンを追加することを忘れ そして、あなたはあなたを実行しようとします コー​​ドとそれが動作しません。 そして、あなたはああ、似ている、私はしないでください それが動作する必要がある理由を、知っています。 チャンスはおそらく忘れてしまっています セミコロンやブラケットか何か どこか。 だから、それは覚えておくことが重要です。 クール。 すべての権利、挙手、どのように ここで多くの人が今まで持っています APコンピュータサイエンスまたは撮影 これまでに、前にJavaでプログラムされましたか? OK。 ラブリー。 それは適用されません その後、しかし、Javaで、あなた System.out.printlnと呼ばれるものを持っています Cに存在しません だからCで、いつでもあなた 変数に追加します あなたが欲しいものに プリントアウトするために、あります これから使用する固有の構文。 それは呼ばれています 基本的にplaceholding-- 我々は場所にプレースホルダを追加します 整数または変数の 我々は、印刷すること。 あなたたちが見ることができるように、我々は用意しました ここに新しいライブラリヘッダファイル。 CS50ライブラリ。 そして、そのCS50ライブラリ内に含まれます 私たちが使うことになる一般的な機能であります 私たちのコースで)(GetIntで呼ばれます。 誰もがで刺しを取りたいん GetIntでは、()、おそらく何をやっても良いです。 聴衆:[聞こえません] ANDI PENG:申し訳ありません。 あなたを聞くことができませんでした。 Maddie、誰でも。 MADDIE:ああ、それは求められます 整数のためのあなた。 ANDI PENG:その通り。 したがって、この機能は、他の すでにだ機能 他の誰かによって書かれて 私たちは今、時に呼び出すことができます。 それがすべてでは、ユーザー、プロンプトで、 あなたがコードとして好き入力します 実行していて、それがwhatever--格納されています このケースでは、我々はGetIntで()している - ING、 そのためには、私たちがしていることを意味します 整数値を得ます。 そして、我々は店に行っています その別の整数で 私達はちょうどと呼ばれる時代を作ったこと。 それは誰にでも意味をなさない? クール。 だから今我々はこの整数を格納されたこと、 我々は、ユーザからの入力を求めてきたことを、 この変数には、我々はしました 年齢と呼ばれるint型の作成、 我々は先に行くと場所ができ 私たちのprintf()関数です。 だからprintfのための通常の構文は、()であります どこにあなたの実際の物理的にその あなたはその整数を含める回線、 あなたは、右がそのシンボルを行います でパーセント記号、 あなたがしたい変数の型。 したがって、この場合には年齢は整数です。 だから、含まれるようになるだろう %私、それは整数だから。 そして、あなたの後に 声明、あなたが行っています コンマと行います 変数の名前。 そこでここでは、我々は印刷するつもりです アウト、こんにちは、私の名前は、アンディです 私は空白歳です。 sorry--、Has​​hta--または、 何でも私の入力と年齢。 だから私は、入力した場合 ここに私のGetIntで()のための20、 それはまったく同じことを印刷します。 しかし、私は入力何かしたい場合 他に、おそらく40または45のような、 あなたは反映していると見ることが それに応じてコードインチ だから、これは一例です で何かの それはプリントアウトし、に見えます あなた、それは同じことだかのように、 しかし、フードの下に コンピュータが実際にあります 起こって非常に異なるもの。 クール。 大丈夫。 だから我々は、複数の変数を何をしたい場合は? かなり簡単。 同じこと。 また、新たな機能を持っています ここでは、()のGetStringと呼ばれます また、CS50ライブラリ内に含ま それがないすべては、ユーザープロンプトであること ある文字列のための 文字のセットだけ、 文章のような、または名前のようなので。 したがって、この場合には、我々は2つ​​を有するであろう プレースホルダ%sの文字列と%iについて 整数のため。 そして、我々は従うつもりです その二つの変数によって、 私たちは順番に、含めます 彼らは文に表示されていること。 したがって、たとえば、私の名前はあります ブランクは、私は、そこに名前をしたいです 私は最初の名前を持っているつもりです。 そしてその後、私が欲しいです 年齢は、年齢秒を持っていると思います。 だから、私は、入力したい場合は、こんにちは、 私の名前のアンディ、私は20歳です。 私はアンディと20を入力した場合は、 まったく同じことが印刷だろう。 しかし、今、私たちは、2つの保存された持っています 名前の変数と同様にint型。 うん。 SPEAKER 8:それは次のようになります あなたが切り替わった場合に実行することができ その最後に名前と年齢? ANDI PENG:うん。 それは本当に良い質問ですね。 だから、長い話を短く、ありません。 何を名前とage--ため、 変数の型は名前ですか? SPEAKER 8:文字列。 ANDI PENG:そして、何 変数の型は、年齢のですか? SPEAKER 8:整数。 ANDI PENG:そこでここでは、プレースホルダーを持っています 文字列と整数のために、右? ですから、これらを切り替えることであれば、 コンピュータが知ることはないだろう。 これは、文字列をチェックするために起こっています、 そして、あなたはそれをint型を与えることをしようとすると、 それは次のようになるだろう 、私は困惑しているあなたを待って 私はあるべきである私に言いました int型のためのメモリを割り当てます。 そして右ここで、 それは整数を期待 そして、あなたはそれに名前を付けます 代わりに、文字列、 それはまた、非常に混乱することになるだろう、それを 正確にあなたがそれを必要とする方法を実行しません。 だからここに、ネーミングおよび構文は次のとおりです。 コー​​ドを実行するために非常に重要。 みんな良いですか? うん。 Maddie。 MADDIE:ここでは、私たちが見てきた知っています クラスの例では、彼らはどこに依頼 あなたの年齢は何である、あなたの名前は何ですか。 ここでは、それはそれだろうdoesn't-- 私たちはこのコードを実行した場合、 そのために聞かないでしょうか? しかし、あなたは、単に入力2つの数値を希望 そしてそれはそのように実行しますか? ANDI PENG:うん、まさに。 あなたはそれを望んでいたのであれば ディスプレイには、あなたの年齢を入力してください、 あなただけのprintf()関数を追加することができます それがあなたの年齢を入力してください、と言い、 その上。 それはいい質問ですね。 うん。 スピーカ9:だから、すでにだろう GetIntで()[聞こえない]に含まれています。 ANDI PENG:いいえ、それは実際にはありません。 だから、すべてこれは単なるされません 空の画面を要求します 入力何かをユーザーに。 あなたはそれを印刷したい場合は、それをしたい場合 アウトのようなユーザに伝えるもの、 あなたはその後、私はあなたの年齢を記入してください ()自分のことをprintfのする必要があります。 誰もがこれを使用しているため 別のもののための機能、 あなたは、年齢を保存することができ、 あなたはアドレスを格納することができ、 あなたは電話番号を格納することができます。 そしてそれは、まで本当にです あなたの男の個々の用途 あなたはそれが言いたい何のために。 うん。 スピーカ10:だから、ちょうど明確にするために、ここで あなたが入力名前と年齢を行います それは%sの代わりに表示するように? ANDI PENG:ユーザーのように? スピーカ10:はい、私はどのように行うように 私はアンディを入れて行う場所it--を行い、 どこで私は20を置くのですか? ANDI PENG:うん。 だから、あなたがした場合 実際にこのコードを実行します、 私は実際に実行していません コー​​ドは、これは今ちょうどここです。 私はコードを実行した場合、私は希望 コー​​ドをコンパイルし、ファイルを作成し、 コー​​ドを実行し、そこでしょう 入力だけそれに私のための2つのスペースです。 うん。 あなたがプレイするとき、あなたたちは表示されます コー​​ドを自分で周り。 我々が移動しようとしているすべての権利 何の次のセクションへ 今日はカバーされます。 私たちは何の上に行くつもりです 条件文があります。 だからみんなが覚えていれば そして、講義からリコール 条件文、 彼らはすべてが設定されています コンピュータ内への指示の これは特定の条件が真の場合、 あなたがコードを実行します その状態の内部。 だからScratch--で基本的に 今日から大きなテーマ あなたたちはすでに、すべて持っているということです すべての背後にあるロジックを見て 私たちがカバーしていること。 そして、私たちがやっているすべてがあります 何かを翻訳 それは非常に直感的でした スクラッチし、それをハードコーディング 構文に我々が使うことになるでしょう Cです。クラスの だから論理的に、このすべてのブロックがありました コー​​ドのその部分はすぐそこです。 うん。 OK。 ...他の場合我々はまたに入ります 今追加した層である声明 if文の複雑さの コンピュータはこれを見てとる場所 この条件が真である場合と、ない見 これらの2つのブラケットの内側何の、 else--親切のデフォルトのような場合 それはcon​​dition--これを行う満たしていません。 これは、道路の分岐点のようなものです。 それが外に雨が降っていた場合、私は置きます レインジャケット、何か他のものに 他の私はレインジャケットの上に置かないでください。 そのロジックは、みんなに意味がありますか? クール。 大丈夫。 のハード例のようなので 我々はC言語で見るでしょう、この 私が作成したい場合であります 宿題の時間と呼ばれる変数。 そして、宿題の時間が小さい場合 5よりも、私は人生は素晴らしいですと言います。 それは素晴らしいです。 しかし、闘争はreal--であると言います この月曜日に私たちすべてがあります 科学ヒルまでの午後です おそらく正しいやっnow-- 聴衆:[笑い] ANDI PENG:彼らは我々の方法 、そのためにあなたに感謝します。 我々はハードコードするような方法 これはC言語でのはと仮定しましょう​​if--です 我々はすでに型の変数を持っています 右ここに呼ばれる宿題の時間をint型。 宿題の時間未満である場合 5のprintf()、人生は素晴らしいです。 覚えておいてください保つ/ nのため あなたは後に新しい行をしたいです。 それ以外の印刷は、闘争は本物です。 誰もがどのように理解しています 私は、このブロックから移行しました このコードブロックに? クール。 大丈夫。 だから今、私たちは見てみるつもりです 完全に複数のIf文。 それでは、と仮定しましょう このプログラムの目的 我々はグレードをユーザーに要求しました。 私達はのためのGetIntで()を使用してプロンプト グレード、およびそれらの入力値を、 あなたが表示したいです 彼らが得たグレードの種類。 私は、私はプログラムを設計していたので、もし 私たちの目のすべてにおいて一般的に意味し、 90-100はAであり、80〜90であります Bなどのように。 これで何が問題になっています そうでないコードの一部 私はそれが何をしたいのかやって。 うん。 スピーカ11:彼らは、下限値を持っています 彼らは上限がありません。 ANDI PENG:その通り。 誰もが彼女が言ったことを聞いていましたか? 上位があるように起こっています 制限、ない下限値。 申し訳ありませんが、他の方法の周りに、 下限、上限なし。 だから、したいと思い 言うで刺しを取ります 何この上に印刷されることになります 私はこのコードを実行した場合の画面。 スピーカ11:エラー? ANDI PENG:エラー? グレート推測、非常に適切ではありません。 誰もが別の刺しを持っていますか? うん、アーロン。 AARON:あなたが入れた場合 90よりも大きいもの、 それはあなたが得たすべてのグレードを示すであろう。 それはあなたがAを持って表示されるでしょう、 あなたはBを持って、あなたがCを得ました ANDI PENG:うん。 それはまさにそうです。 だから、それは素晴らしいだろう。 しかし、それらは相互にあります 排他的な、私は思います。 私はコードのこの部分を実行した場合。 そして、ちょうど、私に言わせて 95の等級を入力。 だから95は今に格納されています INTはグレードと呼ばれます。 だからCは言語であります それは、上から下にまで実行されます それは常にに起こっています ボトムまで実行します。 だから、あれば読んで、ここに来るために起こっています グレードは、より大きいまたは90に等しいです、 printf()を使用すると、Aの偉大なを持って、私は 95を有しており、それは90よりも大きいです。 これは、印刷するために起こっています、 私はそれが起こっているAを得ました 場合は、このを見てみると、それが起こっています 95は、また、80以上であるだけでなく、言います それはあなたにもGOTを持って印刷するために起こっています Bの感嘆符、などなど 前後。 我々はすべてが見ることができるように、 これは一般的なバグです 私たちがしているときには、発生する可能性があります 以下のために外を見るためにコードを書きます。 誰でも、上の任意の質問 なぜそれが起こったのか? グレート。 OK。 だから我々はこれを修正すればよいか、明らかです 論理的な次の質問。 さて、私たちはこれらの美しいを持っています それ以外の場合は、他の場合に呼び出さもの 他のif文。 だから、あなたが望んでいたかどうかを確認することができます その問題を変更し、 あなたはそれぞれのを作りたかったです 相互に排他的な条件、 あなたは他の追加します... if文。 そしてcourse--のこれらは、と考えます はしご、またはladder--上の横木のような あなたは、これらの多くを追加することができます あなたが好きな多くの条件のためにしたいです。 私はグレードを入力した場合ので、ここで、95であることを。 グレード95よりも大きい場合、 printf()、私はA.グレートを得ました。 それは他のを見るために起こっている...場合 それは知っているために起こっている、ああ、いや、 私はすでに最初のelseを実行しました。 私はknow--または最初if--私がことを知っています 私はこれらのいずれかで見てする必要はありません そのうちの一つ理由 既に真となっています。 だから、トップダウンで実行するようになるだろう。 すぐに最初のいずれかに該当するとして、その後、 それはすべての残りの部分をスキップするために起こっています 他の... IFS。 それは理にかなっていますか? だから、このようにあなたが持っています チェックの異なるレベル すぐにそれらのいずれかが偽であるとして、 残りはまたしている、彼らもチェックしません。 クール。 大丈夫。 これは別の例であります 条件文のようなもの 私たちは、あまり頻繁に参照するが、 我々は彼らを見て、それらを使用します。 そして、彼らはしばしば、よりよ 特定のケースのための効率的な。 だから我々は何と呼ばれていています switch文。 だから我々は他の何覆われて前に 声明、場合... else文。 ここで、我々は何をしている必要があり switch文と呼ばれます。 だから我々はスイッチを使用しないとき 文が鍵? あなたは、switch文でそう 通常、一般的に、実際に あなたのための唯一の入力整数缶 あなたがチェックしている変数です。 だから私はどうかを確認したい場合 たとえば、特定のnumber-- グレード、私は90を得た場合。 私は、それがAの場合、それは見てみたいです B、​​またはC私はここケースを持っている可能性があります。 しかし、ケースは持っています 別の一定です。 この意味でそう switch文缶のみ 2つの数の等価性をチェック。 それは何か他のものをチェックしません。 だから、非常になるように何か これを使用しているときの慎重な。 だからここに、私はどうかを確認したい場合 90の私のグレードは、90または80に等しい場合 または70または60、次に印刷 対応するグレード、 私はそれを書くことができるだろう switch文インチ だから、ここに来て起こって、チェックがあります この定数に等しいこの整数? ない場合は、スキップするようになるだろう。 それが定数に等しいです 2つの等など、 あなたはデフォルトを打つまで、 それらのどれも同じではない場合。 すぐにそれらの一つとして、 等しくなるように設定されています、 それがこれを行うために起こっています コー​​ドとブレークのライン。 それはそれを打つために起こっていることを意味 実行、ブレーク、およびだけで完全にスキップ コー​​ドの下へ。 機能のだから、その意味での種類 if文、他の場合であれば、他のように。 そこでここでは具体的です 君たちのための例。 それでは、私がしようとしているとしましょう 年設立という変数を作成します。 そして、私は、入力を促すたい 学校が設立された年。 だから私はここにswitch文を作成することができます。 そして、私は、入力1636、ちょうど言ってみましょう。 ここでこのコードは、スイッチを見に行くされています 今年は1636年に等しい設立します。 それはケースを見るために起こっています 1636年、オハイオ州のものが等しいです、 printf()は、あなたがすべきではありません ノースアップその学校で? 我々は、彼らがいないと仮定しているので 彼らはハーバード大学に行けばここに行きます、 破壊し、最後に進みます。 私は、入力1701にあった場合は、これ 私は、私たちのすべてが入力だろうと仮定し、 それはこのケースをスキップするだろう、来ます 1701の場合2まで、 そして、エールに印刷ようこそ! ブレーク、最後までスキップ。 そうでないあなたはおそらくこのコースを取っています オンラインている素晴らしい歓迎をcase-- それはに行くために起こっているYale--します デフォルトの印刷、こんにちはインターネット! ブレーク。 うん。 スピーカ12:あなたは他の使用することができます デフォルトの代わりがありますか? ANDI PENG:いいえ、なぜなら 途中、この関数全体 スイッチは、構文あなたに構築されています 使用する必要がある場合ケースデフォルトです。 それは、もしそうでなければ、この場合のようなものです 一つは、それはケースの場合のデフォルト値です。うん。 スピーカ13:あなたは多分すでにこのように述べ、 しかし、あなたは2例以上のものを持つことができますか? ANDI PENG:うん、あなたは可能性が あなたが好きなだけの場合があります。 ただ好きなようにそれを考えます 無限に加えます。 スピーカ14:あなたの場合 1636と1701を切り替え、 それは本当にありません 差分ね? それはちょうどそれをチェックすることになるだろう。 ANDI PENG:それは 本当に良い質問です。 そして、我々は触れますよ この後に、ちょうど それはスイッチであることを知っています 文は、それはですinfinitely--さ それ以外とであれば、より効率的 それが動作するためであれば、他の その機能の異なるタイプを使用して あなただけに、本質的に、ことができます にストレートジャンプ ケースは、あなたがにする必要があります。 うん。 スピーカ14:クール。 ありがとうございます。 ANDI PENG:うん スピーカ14:そして、あなたはできませんでした 例のようにし、より大きな行います。 ANDI PENG:いいえ だから、それは約制限ているものです switch文は、あなたが持っているということです 唯一、整数のみの定数を持っています。 うん。 OK。 だから、これは何かであることを 人はあまり頻繁に発生します、 しかし、私はちょうどしたかったです 場合にはそれを紹介します。 私たちは何をここにあります 三項演算子と呼ばれます。 、それだけでどこに本質的のようなものです 文は1行にコンパイルした場合。 ここで、私は、次の行に行きますよ 次のページ、それが参照する方が簡単だからです。 だから我々は、すべてのこの権利を見てきましたか? これは従うことは非常に簡単です。 私はと呼ばれる変数を作成したい場合 特定の数の場合は名前付き文字列、 私は、私は、それが100未満である与えます 文字列に低割り当てます、 他の私は、高割り当てます。 ここでこれはまったく同じことをやっています コー​​ドのこれらの8行がやっています。 だからここに私が作成したいです 文字列変数。 そして、これは私が条件であります 数が100未満である場合、チェックします、 あなたは、低の値を割り当てます 他に高いの値を代入します。 これらのスライドは、オンライン心配しないであろう 君たちはこれを降りていない場合。 これはちょうど簡単な方法、より多くのです 書き込みコードの効率的な方法。 OK。 だから今、私たちはするつもりです ほとんどの人々のために、何を入力してください 非常に、非常に混乱のようなものです 最初に考える事。 ループ部。 だから、今日、我々は話をするつもりです ループの約3種類。 私たちはしばらくの間で開始するつもりです ループは、その後、do-whil​​e文の話を、 して、forループについて話しています。 だから、本質的に、より多くのために そこに視覚的な学習、 我々は、基本的に、グラフィカルなを持っています whileループが何の描写。 だからプログラミングで、あなたが開始すると そしてある時点でループに入ります。 あなたは条件をチェックしてください。 そして、条件が真の場合、 あなたは内部のコードを実行します。 そして、あなたは周り戻ってきて、あなたがチェックします。 それはまだ本当の場合は、実行し続けます 周りとの周りのループでこのコード。 その一方、第二 条件が偽となります、 あなたは破壊し、ループを終了するつもりです。 そして、これは本質的です あなたが使用するつもり構文。 特定の条件がある一方 それは本当ではない場合はtrueが、これを行うには、 あなたは最後までスキップするつもりです そしてあなたのプログラムを進めます。 OK。 誰もが例を持っています 潜在的に何が起こるかについて 私は、コードのこの部分を実行しようとする場合はどうなりますか? ちなみに、それはScaz、アンディですSAJ-- Jason--私たちは、私たちの電子メールをサインオフします 愛、SAJ。 それは私たちです。 OK。 誰もが例を持っている、または持っています これは印刷し何のアイデア? トリックの質問の種類。 だからここに、条件を覚えています 真つつあるため、私たちはチェックしています。 これが真である間、それはですので、 印刷しようと、私はSAJが大好き! 我々はいただきたいれる任意のポイントがあります そうでなければ何にもこれを変更? 右、なし? そこでここでは、我々が持っています おそらく何遭遇 の多くを盗聴しようとして あなたのプログラム、無限ループ。 あなたはどうかことがわかります コー​​ドのこの部分を実行し、 それだけで維持するつもりです 印刷、私はSAJが大好き! 私たちは支援に感謝しながら、 私たちはあなたのコンピュータをしたくありません あなたので、クラッシュします 私はSAJを愛して印刷を続けます! だからお願い、お願い、 無限ループを避けます それは行くことはありませんだから falseに評価します あなたが行くことはありませんしています ループを終了します。 そして、あなたはするつもりです 永遠に吸い込まれます。 クール。 OK。 ループの第二のタイプ 私たちは、今日の話をします doがdo-whil​​e文、whileループです。 そして、それがdo whileループと呼ばれています あなたがdoとwhileを持っているので。 だから、これはしばらくの間にかなり似ています ループが、少し異なります。 ここでは、あなたがやろうとしています この内の何でも 特定の条件が真である間。 私はCとコンピュータであればだから私はよ コー​​ドのこの部分を下に実行し、 私はトップを見てみましょう。 私はこのことを行うと言う、Cに移動します。 そして私は、この一方で、チェック 真のですが、私はそれを繰り返す必要があります。 しかし、これは偽である一方で、 私は前方に移動 私は再びそのループに行くことはありません。 誰もが刺しを取ることができます どのような違いで このループと1我々の間 ただ事実上だった見ました。 うん。 スピーカ15:条件 前の代わりに、後に来ますか? ANDI PENG:その通り。 だから、彼女は言った条件 前ではなく、後に来ます。 最終的には、違い これとwhileループの間 あなただけやろうとしているということです かかわらず、この内側に何の あなたの状態であるか否か 真、その後の状態を確認してください。 したがって、この場合には、あなたがしています always--このように、 あなたは常に確認しています どのようなのは、内部に少なくとも実行されます 一度見にチェックする前に、 あなたはそれを再度実行したい場合。 そして、ここでの例であります 我々はそれを使用するときの。 したがって、たとえば、私が望んでいた場合には持っています 年齢という名前のint型の変数、 私はプロンプトを表示したいです 自分の年齢のためのユーザー、 私は()のprintfをするつもりです あなたは何歳ですか? 年齢= GetIntで()、これは ユーザに促すています。 そして、いくつかの人々は本当に迷惑になります。 そして、あなたはあなたのバグをしたくありません 誰かのプログラムは、のように入力します ああ、私は4歳以上何でも否定的です。 彼らの場合、その場合には これが評価され、それを行います 私はするつもりだことを意味し、trueに 戻って、これをやって維持する必要があります。 だから、これは維持しようとしています 再プロンプトをユーザに 本物のようにあなたを与えるために 年齢番号、それです 戻って維持するつもりとやり直し それは、彼らはあなたの本当の年齢を与えるまで、 1より大きい、またはゼロではありません。 だから、ヒントをヒント。 これは非常に、非常に有用であろう あなたのPSETの問題の1つに。 うん。 スピーカ16:おっと、申し訳ありません。 ANDI PENG:うん。 スピーカ16:あります、ありません 嫌いな人であることを、but-- ANDI PENG:心配はありません。 スピーカ16:そこ--are ここでは異なるルール、 または、あなただけの忘れました 引用を置きますか? ANDI PENG:うんああ。 申し訳ありませんが、それは完全に私の悪いです。 それは間違いでした 引用することになって。 グッドキャッチ。 それは実行していないだろう。 OK。 だから、ループの最後のタイプは、我々が話しましょう 最終的には、ほとんどの種類 複合体は、forループです。 あなたがない場合は心配しないでください それが何を意味するのか知っています。 最初はかなり混乱です。 ここでは、例の上に行きますよ。 forループで起こるすべてのこと あなたは3つの文を持っているということです あなたが含まれるようになるだろうということ。 だから、あるもののために、あなたがしています 変数を初期化する予定。 あなたはに条件を追加するつもりです これは、このループは実行し続けます。 そして、の終わりに ループは、あなたはそれを更新するつもりです。 あなたは、変数を更新することができます あなたはを追跡することを。 だから我々は、一般的に使用します 私たちのためのforループ ループを実行したいです 時間の一定量 私たちはすでにああ、私がしたい、知っています このループは、10回のように実行します あなたは私が終わっ行きますよdo-- 次のページの例。 だからここ例えば、スクラッチで、あなたの場合 10回繰り返すために何かをしたかったです、 すべてあなたがしたと言っていました、 私はSAJが大好き10回繰り返します! これより許容可能です 私たちのサポートのショー むしろ無限ループより。 ここでは、どのようにだろう Cへの移行と書き込み それは私が作成したりするつもりin​​t--ためのものです 私の名前のint型の変数を宣言します。 私は初期化す​​るつもりです それを0にするので、私= 0; これは私の状態になるだろう。 だから私は、10未満です。 そしてend--で あなたがしている最後の文 持って行くことのアップデートです 何が変数iに起こります あなたのforループの終わりに。 だからので、一種の混乱を招きます このラインの異なる部分 別の時に起こっています ループの種類。 しかし、私は上を行きますよ その擬似コード例 多分これを説明 少しだけ良いです。 だからここに。 それは我々がちょうど見たループです。 基本的に擬似コードで、どのような このプログラムで起こっています、 最初に私が作成していています 私は、0に初期化。 私は私があるかどうかを確認しています 10未満、場合には それは初めて 0ため、10未満です。 したがって、ループが実行しようとしています。 そして私は、この行を印刷するつもりです。 そして、この行の末尾に、右 ここで、私は、私は++インクリメントをするつもりです、 すべてのことの手段があります 1によってそれをインクリメントします。 だから私は今1です。 私ならば、それは、一度0だったので、 だそれをインクリメント、それは今1です。 そして、私は戻って行くつもりです ループの先頭に 私は状態を確認。 まだ条件が本当ですか? はい、1はまだ10以下です。 だから、再びこれを印刷するために起こっています、 移動して、私をインクリメントし、確認してください 条件 継続的に、継続的に、 あなたが最終的に到達するまで 私は10である点に。 あなたは、この10回を印刷しようとしています そして私は10に等しくなるように起こっています。 あなたは状態を確認しようとしています。 10以上10以下ですか? いいえ、それはfalseです。 このように、このループは行っていません 実行するには、それは破るために起こっています、 あなたがしようとしています あなたのコードを続行。 だから人は、これを見ることができるように 本当に素晴らしい例であり、 あなたはその中にプログラムすることができますループの 時間の指定された量のために実行されます。 一人一人明確な? うん。 スピーカ17:どのように増分について 指数関数的に、それは異なる符号化ですか? ANDI PENG:あなたは、私たちが行きますよcan-- 次のスライドでは、このオーバー。 良い質問。 私が移動する前にanyone--です 、誰もまったく混乱on-- これは本当にタフな概念ですので。 心配はありません、you're--ばOK。 クール。 大丈夫。 ただ、一般的なスライド。 このwhileループしています ループの正確な同じことがありました。 それはちょうど異なる書かれています。 君たちはスライドを閲覧することができます 後で便利に。 しかし、単に複数があることを知っています 同じことを書く方法 異なるループで発生します。 OK。 だから、今、私たちは何の問題の取得します 我々は、ループの内部ループを持っている場合。 私たちは本当のに取得しています ここインセプションタイプのもの。 あなたは物事の複数をしたいとき 他のものの内部回 それは、物事をあなたを複数回行います ループのネストされたと呼ばれるものとします。 最初にこれを見る人のためにと 非常に混乱、すべての私たちはここでやっています どこのループを持っています 我々は、行の変数を持っています。 しかし、その中に、我々はまた、別のものを持っています 列と呼ばれる変数のforループ。 そして、私は非常にあなたのすべてを示唆して 誰が最初​​に保つために混乱しています これを描き、これを引き出しますtrack--。 ちょうど理由にしないでください それを介して、それを引き出します。 あなたの頭の中で、この作品に 紙、または何でも、行を書き、 行がに等しいものを追跡します。 追跡する、列を書きます 何列のと同じです。 そして何であるかを追跡します 反復ごとにプリントアウトします。 このループの各反復ごと その大きなループの繰り返し、 ちょうどロジック以下に保ちます。 そして、私はあなたを保証します、 あなたが見るものを好きになります、 それは非常にもだから 問題のセットに適用可能。 クール。 大丈夫。 そこで最も重要なこと 君たちはおそらくすべてであることを 今のことを考え、 あなたの問題セット1sがあり、 これは木曜日/金曜日によるものです。 あなたのwater.cプログラムで、 あなたが必要があるとしているヒント ユーザーに入力を促します。 あなたのmario.cプログラム内 あなたが必要があるとしています である、ループのためのネストされたを使用します forループの内側ループのため、 基本的に、ピラミッドのブロックを印刷します マリオが通過ジャンプしているかのように。 そして、中にあなたgreedy--または多分 すべてのあなたのみんな場合、変更を作ります 今までthat--の聞いたことがあります あなたは非常にあることが必要があるとしています 第1の浮動小数点値を慎重に。 浮動小数を覚えて 整数は同じものではありません。 1があるのを追跡します。 そして、あなたが使用するつもり 条件文だけでなく。 すべての権利、最後の事。 私は、左のカップルの分を持っています。 スタイル。 だから、これはそうではないものです 実際に効率をもたらします、 または、コードの実走行。 しかし、として私たちに影響を与えます あなた年生、読者として。 あなたがしている場合は、自分に影響を与えます 問題を発見しようとしています。 それはあなたのコードの読みやすさに影響を与えます。 あなたがしようとしているときのようなので、スタイル、 あなたがあれば、英語のためのエッセイのスタイル 段落を持っていませんでした、 あなたは親切なすべてを持っています それは、1行にまとめてごちゃ混ぜの 誰のためにそれは本当に困難に 場合でも、あなたのエッセイを読むには あなたのポイントは、論理的に健全です。 プログラミングで同じこと。 あなたはひどく曖昧なことができます Scazがカバーするコード、 そしてそれはまだ実行して機能することができます。 しかし、私たちのために、あなたの素敵なのTAとして、誰でしょう 読んで、あなたのpsetを評価すること、 それはとても素敵ではありません。 だからお願い、ために 私たちとあなた自身の、 あなたが修正しようとしているとき あなたのコードに問題、 あなたがしようとしています 独自のコードを読んで、作ります あなたには、いくつかの規則に従ってください 我々は、オーバー行くつもりだということ。 したがって、最初。 あなたの変数に意味のある名前を付けます。 あなたは、整数を格納する場合 年齢と呼ばれる、年齢と名前を付けてください。 それを高さに名前を付けないでください。 あなたがしようとしているとき 高さは年齢を格納し、 それはすべてを作ります 私たちにとって非常に紛らわしいです。 私たちは、混同しては好きではありません。 あなたは混同しては好きではありません。 誰もが混同して好きではありません。 あなたが何かを作成するつもりなら、 意味の名前を付けます。 しかし、ループの中で、単一 文字変数は、通常は大丈夫です。 そして、ループの中で、あなたは私だけしたい場合は、 そして、J、K、ちょうどそれをすること自由に感じ。 一貫性の初期化。 だから、何を意味するのでしょうか? それは理論的には、技術的に意味し、 あなたが開始し、作成することができます 同じ行に複数の変数。 したがって、たとえば、私が作成することができます 整数scaz_ageと呼ばれます 整数は、20 = andi_ageと呼ばれます jason_ageと呼ばれる整数 同じ行に。 そして、私はまた、のいずれか一方のみを割り当てることができます 彼らと値にはない他のもの。 私たちは、あなたがそれをしないでくださいお願いします。 ここでは、基本的に作成したため、 三つの変数が、それらの一方のみ 実際の値があります。 そして、我々がいるとき あなたのコードを読み取ろうとします、 または、あなたが修正しようとしている場合 あなたのコードに問題、 それは従うことが非常に紛らわしいです。 だからあなたの読みやすさのために、用 私たちの読みやすさは、それをしません。 一貫性の中括弧。 一部の人々は自分を置くのが好き 別の場所で中括弧。 それは本当に問題ではありません。 ちょうどあなたがで一貫していることを確認してくださいあなたの あなたがそれらを置くのが好きどこに独自のコード。 一貫した間隔。 あなたは後にスペースを入れる場合 ループのために、常にそれを行います。 同じような種類のでそれをしないでください いくつかの場所では、他の人にそれをしません。 ただ、一貫して。 第二に、誰もが希望の場合 CS50スタイルガイドを閲覧するには、 我々は正式にそのスタイルガイドを持っています これらの規則のあなたのすべてを指示し、 加えて、より。 それはオンラインです。 それはcs50.net/styleようなものです またはそのような何か。 あなたはそれをグーグルことができます。 一貫性が鍵となります。 だから何を心配しないでください 他の人がやっています、 ちょうどあなたがしていることを確認してください 独自のコード内で一貫。 誰もがそのことについてご質問がありますか? うん。 スピーカ18:だから、適切なもの 初期化を行うには、単にあります 別々にそれらすべてを持っています 行は、あなたが何を言っていることはありますか? ANDI PENG:だから私はほとんどこれが起こりませんでした。 しかし、あなたが望む場合は、したい場合 あなたのコード内のスペースを節約するようになり、 または何でも、あなたはこれを行うことができます。 私たちはあなただけで初期化しないようお願いいたします 一つのことではなく、他の人。 ですから、int型scaz_ageをしたい場合は、int型 andi_age、int型のjason_age、それは大丈夫です。 ちょうど1を初期化しません そして、ではない他のものが全てです。 質問? 大丈夫。 私はオフに合格するつもりです マイク、レーザーポインター、 そしてこの時点でScazにバトン。 これは厄介です。 ここにあります。 BRIAN SCASSELLATI:ありがとうございます。 どのようにそれは音のためですか? 音は良いのですか? 。 優れています。 OK。 だから、皆さん、こんにちは。 私はを通じて仕事にしようとするつもりです あなたと実用的な例。 そして、我々はCS50のを使用しようとしています 呼ばれるものの開発環境、 統合開発環境。 そして、あなたはこれを見てきました 講演で明らかにしました。 そして、問題セット1に、あなたがしています 機会を持つことになります それを使用し、で遊んします それ、それに慣れます、 我々はそれを使用するつもりだので、 学期の残りの部分を通って。 したがって、このIDEで、あなたは何が見えます持っています 非常に伝統的なファイルブラウザのような 片側にオーバー。 あなたは部分を持っています あなたが行っているトップ ソースコードを表示するには、あなたの CFILE、あなたが書いたコード。 そして底の下に、あなたはよ ターミナルウィンドウを持っています これはあなたが使うことになるでしょう 両方のプログラムをコンパイル して、プログラムを実行したり、実行します。 OK。 だから私たちの少しを与えるために 基礎、その端末ウィンドウで、 あなたがすることになるだろう コマンドのセットを使用して 全体で標準コマンドであること UNIXまたはLinuxシステムのほとんど。 だから、あなたは今まで使用した場合 Unixでは、Ubuntuの任意の形態の、 または他のフレーバーのいずれか、 これらは見覚えがしようとしています。 あなたがいない場合、心配しないでください。 それらについての複雑なものは何もありません。 彼らはただの異なるを使用しています 構文、異なる命名 あなたが前に見てきたよりも大会。 だからファイルを一覧表示します 特定のディレクトリ内で、 彼らが使用するつもり コマンドは、LS、またはリストと呼ばれます。 あなたはすべてを見たい場合 すべての詳細と、 次のコマンドを使用します ls -lでのライン引数。 そして、それはあなたのすべてを紹介します より詳細に、含みます ファイルのパーミッション。 ディレクトリを変更するには、 あなたは、cdコマンドを使用します。 そして、あなたはディレクトリを変更することができるでしょう 両方のホームディレクトリに移動します。 それはすべてでわずかCDです それ自体、2を収録したCD ドットは1をあなたを返します。 あなたの前のディレクトリへのレベル。 そして、あなたはにcdすることもできます CDに入力して、サブディレクトリ そして、そのサブディレクトリの名前。 また、新しいディレクトリを作成することができます。 そして、私たちは歩くつもりです わずか数分でこのを通して。 しかし、単に置くために 画面上のすべて。 あなたがそれらを見ることができるように。 また、能力を持っています 直接ファイルを操作します コマンドラインから。 あなたはに、それらをコピーすることができるでしょう それらを移動するか、それらを削除します、 それは、それらを削除するために、効果的です。 CS50 IDEはあなたに完全なを与えます コマンドライン引数のパワー。 そして、それはあなたにもできることを意味します 非常に危険なことを行います。 OK。 たとえば、次のことができます 、削除、またはそれが削除され 求めないファイル 確認のため。 そして、あなたも削除することができます それはですrecursively-- ダッシュrは全体をflag-- サブディレクトリとそのすべての内容。 OK。 あなたので、彼らは赤で記載されているしています 毎回「危険」を考える必要があります あなたはそれらのものを参照してください。 OK。 大丈夫。 さて最後に、物事であること あなたに本当に価値のあることになるだろう、 いくつかの良いトリックがありますされています あなたが移動しているように知っています このターミナルウィンドウから。 まず、あなたはで画面をクリアすることができます ただ明確に入力して、いつでも。 そして、あなたは見に行っています 私はかなり頻繁にそれを行います。 また、単に表示することができます ファイルのテキスト より多くし、ファイル名を入力して。 その後、スクロールバックすることができるでしょうし、 前後だけでスペースキーとそれに そして、矢印キーを。 あなたが持っている場合は、私たちは、講義で、今日をしたとして 継続的に実行されているプログラム 無限ループで、あなた そのプログラムを停止することができます コントロールに入力して実行するから、 すなわち、制御-Cを押しています。 そして、あなたがしなければならないこと この複数回。 コンピュータがはるかにあなたの前に取得します。 そして、あなたは時々に必要 それをしようとのカップルを与えます それは実際に通ってくるだろう前に。 また、にできるようになります コマンドによるソート あなただけのアップキーを使用して入力したこと、 矢印キー、および下矢印キーを押します。 そして、何の最も有用なのは代わりにあります 長いファイル名を入力するのは、 あなたがするために使用するタブにできるようになります いくつかの指示を自動補完。 今、私たちは実証しようとしています ちょうど第二のもののすべて。 だから、あなたは覚えていない場合 彼らは、心配しないでください。 これらは、あなたがよものです ピックアップし、私たちは一緒に行くように使用します。 OK。 だからC--でScratch--と異なり Cはコンパイル言語です。 それは我々がソースを取るしようとしていることを意味します それはあなたが書く文章ですfile--、 あなたは、書き込みコマンド printf()文、ループ、 私たちが行っているelse--、すべて そのファイルを取り、それを手にします コンパイラと呼ばれるプログラムに。 次に、コンパイラは、かかります あなたが書いたそのテキスト とに翻訳 バイナリの命令 お使いのコンピュータがあること 実際に使用することを行きます。 これは、オブジェクトと呼ばれています または実行可能ファイル。 あなたはこのファイルを見ると、あなたが行っています あなたが書いたコードを表示します。 あなたはこのファイルを見ると、あなたが行っています 文字のランダムシーケンスを表示するには それは全く意味を成さありません。 これはバイナリであるためです。 それはあなたが読んでされるのを意図していません。 しかし、いつでもあなたがしたいです あなたが行っているものを、何かを実行します 実行すると、このオブジェクト・ファイルです。 だから我々は、これらを使用するとき ファイルは、我々はC言語でファイルを記述します それから、使用して、それをコンパイルします 起動するmakeに似たコマンド C言語のコンパイラ打ち鳴らします。 そして、それは、オブジェクトが生成されます アウトのように、ファイル、またはこの場合には、 名前、私が置かれている私のファイル、。 大丈夫。 それでは、実際にこれを試してみましょう。 だから私は例を思い付きました 私が試してみたかったものの。 そして、物事のこと 私は魅了アニメーションです。 だから我々は実行しようとしています アニメーションの少し ただ、ASCII文字を使用して。 キャラクターは、私たちは今、簡単に印刷することができます。 だからここに私の最高の試みであり、 あなたのために作成で バニーのアニメーション 背の高い草を介して実行されています。 そこに彼はあります。 OK。 そこで彼は、まだ実行していないが、彼はです 背の高い草の中にそこに立って。 今私はアニメーターであれば、 古い学校で アニメーションのバージョン、どのような私 私が生成することになるだろうさ 草の中に、このウサギの絵。 そして、私が生成することになります 別のpicture-- 彼らがいることをcell--何と呼ばれる別の バニーはわずかしか移動していました。 そして、第1持っていました バニーは少しさらに移動。 そして、私は全体を生成します これらの細胞の配列です。 いくつかの場所のバニーは終わりました 左側へ。 そして、ゆっくりと一つ移動 中央に向かって一つ。 そして、途中から 右にオーバー。 そして、私は本当に、次いで場合 幸運、私はそれを一緒に置くことができます そして、私はそれらをアニメーション化できました。 そして、私のバニーがあります 草を走ります。 それは私の偉大なパワーポイントです 日のトリック。 OK。 だから、これは最高です。 OK。 だから、ここ、ここでもう一回は、私たちです 草を走るバニー。 スピーカ19:再び。 BRIAN SCASSELLATI:One より多くの時間、すべての権利。 あなたのバニーがあります。 OK。 だから、今日私たちが行っています 行うために、我々はつもりです プロセスを自動化しようとします これらの細胞を産生します。 私たちはかなりのポイントに取得することはありません それらすべてを一緒に置くことができること。 しかし、私たちは自動化しようとするつもりです このシーケンスを生成する方法。 そして、これは何の多くであります アニメーション今日のようなものです。 つまり、あなたは必ずしも物事をしません 手ですべてを描画することもできます。 私たちは自動化するためにコンピュータを使用します そのプロセスの一部。 OK。 だから、私は切り替えてみましょう 今私たちのCS50のIDEに。 そして、私はus--とletのために作成されています 私はここで私はしました少しbit--をズームイン 出発点は、私たちのために作成しました。 私たちが座ってお聞きするたびに ダウンし、コードの一部を記述し、 私たちは本当にすることを求めています 我々は問題を解決するために求めているされています。 そして、方法は、あなたがすべき そのことについて考えます 一部で開始することです そのソリューションの簡単な一部。 そして、その部分から構築します。 そしてそれは我々が今日やろうとしているものです。 そうではなく、に一斉にしよう コー​​ドの全体の束を書きます それらを製造するつもり 10アニメーション細胞 我々は、代わりに開始するつもりです 働く一枚で。 そして、我々が構築します その周りに少し もう少しもう少し。 今の良いところ 問題をこのように解決 それはあなたが開始することを可能にするということです いつもあなたが知っているものと 動作し、1緩やかな変化をご紹介します。 そして、それは素晴らしい方法です コー​​ディングする方法を学ぶために、 あなたが作るたび理由 変更は、あなたはそれが持っているどのような影響を参照してください。 OK。 だからここに私たちの出発点です。 OK。 そこで、私のファイルの先頭に、 私はハッシュ#インクルードstdio.hのをしました。 私は得ることができるようにそれはです printf()関数が動作します。 私は、私は私の主な機能を持っています。 そして、これはまだ少し見えます 難解なまたはあなたのいくつかのあいまいな。 それで大丈夫です。 ことは、それが言うすべてであります 主な機能は、取り 無arguments--空洞手段 C.そして、それには何もありません 慣例による返品整数。 メインは常に整数を返し、 物事を言って、通常のコード うまくいったかうまく行きませんでした。 OK。 しかし、主はそれを有していなければなりません 今、私たちのために形成します。 私は、3行のコードを入れてきました。 そして、それぞれのラインと一緒に コー​​ドは、私がコメントを入れています。 今ではものの一つに 私たちは、あなたが行うことを主張します それが重要なのです プログラミングの練習、 常にあなたのコードをコメントすることです。 常にに書き留めます 英語コメント何か あなたが考えること コー​​ドが行うことになっています。 あなたが戻ってくるときに、後でその方法 、それは、あなたはそれを見ることができ、あなたが言うことができます ああ、私は何であったか覚えています これを行うにしようとしています。 またはTAはあなたと一緒に座るとき 営業時間であなたを助けるためにしようと、 彼らはこれを見て行くことができ、私 あなたがやろうとしたものを参照してください、 その代わりに、これは 何が本当に起こっています。 OK。 だから私は、私のコードは3つの部分を持っています 私はすべてのプリントの最初に行きますよ 開始時にいくつかのドットアウト。 私はその後、私のを印刷します 極端に派手なバニー。 そして、最後にドットのいくつかのビット。 そして、これら三つのprint文はすべき この時点で、あなたに見覚え。 私がやっているすべてのこと それらの各々は、私はあります 一連の文字を印刷します。 関連する一切の変数がありません。 すべてがちょうど平らです。 OK。 だから、私はterminal--に今下る場合 私はこのバックを得ることができるかどうかを見てみましょうout-- そして、私は再びクリアタイプするつもりです。 スピーカ20:我々が使用しています 二重スラッシュがコメントをするには? BRIAN SCASSELLATI:することができます double--はい]を使用しています。 に複数の方法があります C. Oneのコメントを残します 方法は、ダブルスラッシュを使用することです。 他には、スラッシュとスターを使用することです して、スターとスラッシュで閉じます。 大丈夫。 まず第一に、私はするつもりです ここの周りのナビゲーションを開始します。 だから私は私のホームディレクトリに移動した場合、 私は、そこにディレクトリを変更しました 私が見て、何を見に行きますよ そのディレクトリに、lsコマンドは、アウトリスト。 私は私がしたことを見に行きますよ 2つのサブディレクトリを得ました。 それでは、この少し大きくしてみましょう ここで、我々はすべてそれを見ることができるように。 私は私がしたことを見ることができます 2つのサブディレクトリを得ました。 私は、ディレクトリを変更します ワークスペースに移動します。 そして、私はタイプするつもりです その一部は、その後、ちょうどタブを押してください。 そして、それは私のために残りの部分を完了します。 ファンシー。 私が見て、ワークスペースに表示されます。 そして今、私が働いています スーパーセクションに 私たちは今教えていること。 だから私は、そのディレクトリに移動します。 そして最後に、見て、参照してください。 そして、私はそのファイルbunny.cを持っています。 すべての権利ので、より多くのかつて私が明らかにしましょう​​。 そして、私は再び私はnow--するつもりです まだそのディレクトリでの滞在 そしてそれは私がにいる私に言っています そのスーパーセクションディレクトリ。 私は先に行くつもりだと 私のプログラムのバニーを作ります。 そして、そのコマンドは、バニーを行い、 少し奇妙鳴っている間、 また、打ち鳴らすコンパイラを起動します。 そして、それはのために生産ます 私です出力 実行funny-- AN 実行可​​能ファイルがバニーと呼ばれます。 OK。 私は、することができ、このサウンド さらに悪いことに、ウサギを実行します。 OK。 そして、のは、それが何をするか見てみましょう。 OK。 それは少しです 何私は期待していました。 私はそこに私のウサギの絵を持っています、 私は種類のそれ自体でそれをすべてを望んでいました。 私は何を欠場しましたか? スピーカ21:LスラッシュまたはNを大幅に削減。 BRIAN SCASSELLATI:スラッシュnを。 OK。 それでは、ここに戻ってみましょう。 そして、私はそれから抜け出すだろう。 そして、私はこの1つに戻ります。 そして今度は、見てみましょう ここで私の主な機能から。 だから私は何をすべきでしょうか? 私は、行を終了します。 だから私はコメントに入れましょう。 私は)(のprintfに入れましょう。 そして、私は中に入れるために何がありますか? / nです。 OK。 私はそれを終了するには何がありますか? セミコロン。 大丈夫。 今、の一つが本当に 重要なことは確認しています 変更を加えるたびに あなたのコードでは、あなたはそれを保存すること。 あなたのコードを保存していない場合、あなたはしています そこに小さな星のアップに気づくに行きます。 そして、その星があなたを言います このコードを保存していません。 私は今、それをコンパイルする場合、そうではありません これらの変更のいずれかを反映するために行きます、 コンパイラは、ファイルを見ているので それは、ディスク、では​​ありませんファイルにです あなたのエディタで開きます。 大丈夫。 それでは、それを保存してみましょうし、我々は行きますよ 右のダウンここで、戻って出てきます。 私のターミナルに降りてきます。 そしてのは、再びスペースをクリアしてみましょう。 そして、我々は先に行くと、もう一つのことができます 時間は私たちのウサギのプログラムを作ります。 そしてバニーを実行します。 それはどちらか動作しませんでした。 間違ったスラッシュ。 あなたは私が持っているものを見ればそう、私は置きます / nはそこに、私は間違っているスラッシュを持っていました。 すべてのコンピュータ ない非常に明示的です。 OK? 句読点の一つの小さなミス、および 突然あなたが欲しいものを得ることはありません。 大丈夫。 それでは、再びピンを見るにはズームインしてみましょう。 我々は戻って行きますよ。 まあ、非常に迅速な修理を行います。 私たちは右にスラッシュを入れます。 我々はそれを保存します。 私たちは、ピンを見るにはズームインします。 何らかの理由で、それはありません 幸せであること、しかし、のは先に行ってみましょう 私たちはここに戻ってターミナルに行きますよ。 それをクリアします。 私たちはズームインます。 そして、もう一つのより多くの時間、私たちはウサギを作ってあげます。 そして今、確かに、それは動作します。 万歳。 OK。 それでは、これを行うために試してみましょう もう少し一般的。 ちょうど場合の代わりに見てみましょう 一つの特定のフレームを印刷し、 我々はこれを行うことができるかどうかを見てみましょう 我々は、すべての10を得ることができるように、 これらのアニメーションのフレーム 我々が持っていると思っています。 そこで再び、のみましょう この時点でステップ。 まずは、それを一般化してみましょう、ではありません 私はすべてのフレームを行うことを、 しかし、私はいずれかを実行します 私がお勧めしますフレーム。 だから、違いは何ですか フレーム間の? バニーは同じですか? 聴衆:はい。 BRIAN SCASSELLATI:うん。 違いは何? 聴衆:位置。 BRIAN SCASSELLATI:その位置は、右? そして、どのように私は、その位置を制御するには? どのように多くのドット私は 先頭に置きます そして、私はどのように多くのドット 最後に置きます。 だから私は、5を持っていました 最初と最後の5。 それでは、forループでその5を交換しましょう​​。 OK。 そして、私はのために作成するつもりです ループは、今では言うために起こっています、 私はいくつかの番号を印刷するつもりです 先頭のドットの。 私は、変数を使用するつもりです。 どのように私が、のは言ってみましょう 私のループでカウンター。 そして、私はトップをそれを宣言するつもりです。 そして、forループで 私は3つのことを行う必要があります。 私がする必要がある最初の事 私は私を初期化する必要があります。 私は何を初期化する必要があります それがあることをスタートさせるには? 0。 OK。 それから私は何、言う必要があります 終了条件? とき、私は停止する必要がありますか? さてどのように多くのドットがあなたを行います これに印刷したいですか? 聴衆:5。 BRIAN SCASSELLATI:5再び? のは、何かをする方法についてましょう 異なる、我々は5をしました。 のは、それが違うことをお見せしましょう​​。 スピーカ22:二つ。 BRIAN SCASSELLATI:二つ。 OK。 だから私は2つのドットが必要な場合は、 私はここで何を置く必要がありますか? 聴衆:三。 BRIAN SCASSELLATI:三。 OK。 何回ということです 経由行くつもり? それは通過するだろう 三回、0、1、2、右? すべての権利、の2にまで戻ってみましょう。 今、私たちは2つのドットを得るでしょう。 そして、私はそれぞれに何をすべきかをしたいです 私は、ループを通過する時間? 変更するには何を持っています 私が通過するたびに? スピーカ23:ドットを追加します。 BRIAN SCASSELLATI:私は続ける必要があります。 私は、ドットを追加するつもりです。 私はドットを印刷するつもりです、 ループを通るたびに。 しかし、どのように私はどのようにの追跡しています 何回も私はループを進めてきましたか? 私は、私を使用しています 変数、そのカウンタ。 だからを通じてたびに、私は行きますよ 1、カウンタをインクリメントします。 今、それがために同じです 私は私が言うように=私は1 +。 それで大丈夫です。 私が好きなthat--私はそれを行うことができます 速記ので、私は私が++と言うつもりです。 OK。 のは、同じことをやってみましょう ここで一番下にダウン。 私だけは、種類のいずれかを行いました。 私は君たちようにするつもりです 完全にこのいずれかの操作を行います。 大丈夫。 だから私はここで何を書くべきですか? ここでは、ループのための私です。 私は(のprintfをするつもりです)、私は行きますよ 私は1つのドットを印刷するようにそれを作るために その底に。 私は何を書くべき 今このforループの内側? まず、まあ何 私は、変数を使用する必要がありますか? スピーカ24:J。 BRIAN SCASSELLATI:私はJを使用することができます。 私は同じものを使用することはできますか? 私は、私は再び使用することはできますか? うん。 それは、大丈夫であるため、 私がここに使用していること、 私は再びときにそれらを必要としません 私はこの点に取り掛かります。 だから私は、私は何を初期化する必要がありますか? スピーカ25:10。 BRIAN SCASSELLATI:0。 私は何を確認する必要がありますか? 私は最後になりましたどのように多くのドットが必要ですか 私は最初に2つのドットを持っている場合はどうなりますか? 私は最後に8が必要なので、どのような 私は私があまりthan--、チェックする必要があります 聴衆:7個、8個、9。 BRIAN SCASSELLATI:私は7を聞きました。 私は8を聞きました。 そして、私は9を聞きました。 OK。 だから我々は、すべての権利にいます ball--ジェイソンは10言います。 OK。 私はのために2つのドットを必要に応じて 最初、何を行います I--と私はのための8ドットが必要 最後選ぶ - 私は、上記の二つを設置 私は、以下のものを下に置く必要がありますか? 聴衆:8。 BRIAN SCASSELLATI:8。 それがために起こっているので 7を通じてゼロをカウントします。 そして、それはループを8回です。 OK。 そして、私は最後に何をするかがありますか? 聴衆:私は++。 BRIAN SCASSELLATI:私は++します。 大丈夫。 だから、そこにかなり良い見ています。 のは、それを試してみましょうとのは、それが何をするか見てみましょう。 OK。 だから我々はそれを保存しようとしています。 ニースと保存されました。 私たちは、ズームアウトします。 我々は、端末にここにしようとするでしょう。 私たちはズームインます。 おっとっと。 私たちよ、もう一回、 私たちのウサギのプログラムを作ります。 そして、先に行くとウサギを実行します。 そして、そこにはあります。 だから、私たちのバニーがあります。 それは初めに2つのドットを有する場合 そして最後に8ドットアウト。 私と一緒にまだ誰? OK。 だから我々はそれを構築しました。 私たちは、1バニーを構築し、 一つの特定のフレーム。 今、私たちはすることができました 構築することを一般化 フレームのより、異なる種類。 それでは、先に行くと、持ってみましょう それだけではなく、1つのフレームを生成します しかしそれでは、10を生成させます 我々ゆっくりとフレーム、 バニーは、すべての移動作ります フィールド全体の方法。 大丈夫。 それでは、戻りましょう。 そして、我々は今、試してみます。 だから何私は本当にここで変更する必要がありますか? 私は何を変更する必要がありますか? スピーカ26:あなたが最初に必要 最大ドット数を変更します 初めに。 私たちは10ドットをやっている場合ので、 それはスケールまでに必要になるだろう。 BRIAN SCASSELLATI:うん。 だから今、私はそれは一種のハードワイヤードています 常に先頭に2つのドットを行うには そしていつも最後に8ドットを行います。 私は右、別のループを構築したいですか? 私はしたくないので ちょうど1ウサギの絵を構築し、 私は、10ウサギの絵を構築したいです。 だから私は別のループを構築する必要があり、 私はそのループを通過するように、 私はどのように多くの変更したいです 私が最初に印刷ドット 私は、最後にどのように多くのドットを印刷します ループを通過する周期に基づいて 私の出番です 大丈夫。 それでは、別のカウンターを取得してみましょう。 誰かが前にJと述べています、 私たちは他のJを行います。 そして今、我々はするつもりです ループのために別のものを構築します。 何がそのループ内部に入りますか? このようなものは、行かなければなりません ループ内で、右? バニーは持っています ループ内で行きますか? 私はバニーが必要です これらの10フレームの各? 聴衆:うん。 BRIAN SCASSELLATI:うん。 私はそれぞれにバニーをしたいです 10フレームの、右? どのようにドットについて 最後に、私はそれが必要なのでしょうか? OK。 だから私はそれらのすべてをインデントするつもりです。 私はすべてを強調表示するつもりです これは、私はタブをヒットするつもりです。 そして、それはすべての上にそれらをプッシュするつもりです 少し、それは私のために簡単ですように ループの中で何を確認します。 そして、私はそれを終了します。 それでは、としましょう​​。 OK? さて、このループ内のその 私はbuilding--おっとだけど、 あなたがsee--できることを確認 私は、カウンタjを持っています。 私は0でそれを開始します。 私は何回したいです このループを通過するには? 聴衆:10回。 BRIAN SCASSELLATI:10回。 だから私はここで何番目に置く必要がありますか? 対象:9、10。 BRIAN SCASSELLATI:9、10、 誰かが右、11と言うようになったのか? 私は前に2つのドットを望んでいました iは2以上置きます。 私は、8ドットを望んでいました 私は8よりも少ない私を置きます。 今私は10を通って行きたいです 時間は、私はあまりthan-- Jを置きます 聴衆:10。 BRIAN SCASSELLATI:10。 そうしよう。 そして、私はjへ最後に何をすればいいですか? ++、それをインクリメントします。 OK。 さて、ここでトリッキーな部分だ、何です 今、私はこれを行う場合に起こるだろうか? 私は10フレームを印刷しようとしていますか? スピーカー27:私は思います それらはすべて同じになるでしょう。 BRIAN SCASSELLATI:彼らはよ すべては右、同じこと? それらのすべてはまだ行っているため、 最初に2つのドットを配置します。 しかし、私はそれらをすべてしたくありません 2つのドット始まりを持っています。 私はどのように多くのドット行います 先頭にしたいですか? 聴衆:変更。 BRIAN SCASSELLATI:私 それが正しい、変更したいですか? だから私は変化だとここで何がありますか ループが経由するたびに? 聴衆:ドット数、J。 BRIAN SCASSELLATI:J、 ドット数。 だから私はJであることが、これを変更することができます。 初めて ループは、どのようなことがあることになるだろうか? 私は最初ににjは何を設定しますか? 聴衆:0。 BRIAN SCASSELLATI:だから、どのように多くの 時間は、私はこれをするつもりですか? 0。 ループ2回目、Jさん 私はそれを増加するので1になるだろう。 どのように多くの点私は印刷するつもり? 1。 ループを介して第3時間、 どのように多くの点私は印刷するつもり? 聴衆:三。 BRIAN SCASSELLATI:jは3になるだろう。 どのように多くの点私は印刷するつもり? ああ、申し訳ありませんが、jが2になるだろう。 どのように多くの点私は印刷するつもり? 聴衆:2。 BRIAN SCASSELLATI:2。 [OK]をので、私は続けるつもりです 私たちが一緒に行くようにすることをインクリメントします。 どのように下方には? ここで何がダウンしましたか? 私はいつも8をしたくありません もう終わりに? スピーカ28:10。 BRIAN SCASSELLATI:私は10ドットをしたいですか? 私も、それを変更したいです。 だから、どのように私はそれを変更したいのですか? 聴衆:[聞こえません]。 BRIAN SCASSELLATI:まあ、私の場合 初めに5点を有しています、 私は最後にどのように多くのドットのを得るのですか? 聴衆:5。 BRIAN SCASSELLATI:私が持っている場合 先頭の6ドット、 私は最後に何を得るのですか? 聴衆:四。 BRIAN SCASSELLATI:私が持っている場合 初めに7点、 私は最後に何を得るのですか? 聴衆:三。 BRIAN SCASSELLATI:私がしている場合 初めにj個の点を持って、 私は最後に何を得るのですか? 10-J。 OK。 それでは、これを試してみましょう。 だから私は、私たちのウサギのプログラムを保存するつもりです。 もう一度、我々はズームアウトします。 私たちは、端末に下るだろう。 我々はそれをクリアします。 そして、ズームイン。 私たちは再び、私たちのウサギのプログラムを作ります。 そして、我々はそれを実行します。 おっと。 それでは、ズームアウトさせて、上に保持します。 私は10フレームを取得しましたか? さて、どのように多くのバニー 私はそこまで見ていますか? 1、2、3、4、5、6、7、8、9、10。 私は10フレームを得ました。 それらはすべて同じですか? 聴衆:うん。 いいえ。 BRIAN SCASSELLATI:いいえ その最初のもの、 バニーは左端にあります。 そして、ここの上に、バニーは上遠いです スピーカ29:右。 BRIAN SCASSELLATI:だから、 私は何をするのを忘れたのか? スピーカ30:新しい行を開始します。 BRIAN SCASSELLATI:私は忘れてしまいました 再び、新しい行を開始します。 私は前に作られた同じ間違い。 すべての権利、のはそれを修正手放します。 今、私はまだコードを持っています そこに新しい行を作成します。 なぜそれが動作しませんでしたか? スピーカ31:それはループの中ではありません。 BRIAN SCASSELLATI:ああ、 それはループの中ではありません。 そのとおり。 ここは外に座っています。 また、ループのためのすべてがあります それは、そのテキストの内部です。 だから私は移動するつもりです この内側のforループ。 そして、私はそれの前にタブをよ それが正しい場所にだことを示しています。 そして今、我々は再びそれを保存します。 私たちは、ズームアウトします。 私たちは、端末に切り替えます。 ズームイン。 私たちは、ウサギのプログラムを作り直します。 そして今、今、私たちは10フレームを持っています。 [拍手] BRIAN SCASSELLATI:[OK]をクリックします。 Soが ここに私たちのループの入れ子になっています。 我々は中に生成することができました 私が望んでいたどのように多くのドット内側のループ 最後に、最初に印刷します。 そして、外側のループを制御 どのように多くの私が構築したフレーム。 私たちは一つの小さなを開始 問題のカーネル、 私たちは、その時点から構築されました。 大丈夫。 それでは、もう一つの手順を実行してみましょう。 あなたは〜を用意する? 一つのことは、ここにどこにあります 私たちは実際に種類の持っています 我々が必要以上に複雑。 のは、見てみましょう。 だから、私たちのバニーのプログラムで、 私はここでズームアウトすると、 私は実際には同じのいくつかの操作を行います 事何度も繰り返し。 私は、並べ替えの何をしますか 同じことを二回繰り返し? スピーカ32:ドットを印刷します。 BRIAN SCASSELLATI:うん 私は2倍のドットを印刷します。 本当に、私が持っている必要があります ダウンここでこのコメント。 私はいくつかにドットを印刷します 右ここまで、始まります。 そして私は最後に、いくつかのドットを印刷します。 そして、私は一種の全く同じことを行います。 我々が開始するつもりです 今後数週間のうちに取り組んで のそれらのブロックを取ることができることです 私たちは何度も使用したコード、 そして、プロセスを通じて 抽象化と呼ばれます 我々はそれらを引き出すつもりだと かつて我々は、その後することができるようにそれらを書きます 何度も何度も再利用。 それでは、これを試してみましょう。 準備はできましたか? 私たちは、コードブロックを取るつもりです。 そして、私はそこからそれを取るつもりです。 そして、私はdefine--するつもりです 下部の下に、 私は、新しい関数を記述するつもりです。 それは何かを返すことはないだろう。 そして、私はprintDotsそれを呼び出すつもりです。 これは、1を取るために起こっています 引数、整数 私は印刷する必要がありますhowManyDots氏は述べています。 代わりにj個のドットを印刷するそして今、私はよ 私は印刷する必要howManyDotsを教えて印刷します。 そして、もう一つの小さな問題がここにあります。 誰もがそれが何であるかを知っていますか? 私はそれが表示されて何がありますか ここで定義されていないということ? 聴衆:[聞こえません] BRIAN SCASSELLATI:まあ方法 多くのドットが右に定義されています ここで、私はその変数iを使用しています。 だから私は、その変数を取るつもりだ私 そして、私はここでそれを定義するつもりです 代わりに。 だから今、それはおっとstay--ために起こっています、 キャップはsomehow--私はロックオンました ここで私をダウン維持するつもり。 だから今、ここで私の小さな機能です またはサブルーチン、およびそれが言います、 どのように多くの点私は印刷するつもり? そして、それはこのループを通過するだろうと 何度も何度もそれらを印刷します。 私は、ここに私のプログラムを変更することができます。 そして、何私は、その関数を呼び出したのか? printDots。 だから私はprintDotsと呼ぶことにします。 私は印刷するためにどのように多くのドットたいです バニーの前に初めて? 者:J。 BRIAN SCASSELLATI:J。 私は印刷するためにどのように多くのドットたいです 最後に、バニーの後? 10-J。 そして、私が欠けている一つのことがあります。 あなたが今日の講義で見たように、 我々はprintDotsを宣言するつもりです アップ上記のプロトタイプを得ました。 OK。 それでは、私がやったことは私がしようとしましたさ コー​​ドの再利用部分を分離 私は何度も何度もやったこと。 そして、私はそのようにそれを引き出すために試してみました そのすべてが一つの場所に含まれています。 そのように、私はどこかに間違いがある場合は、 私は一つの場所でそれを修正する必要があります。 大丈夫。 それでは、それを保存してみましょう。 そしてのは、それが動作することを確認してみましょう。 それでは、出て行きましょう。 私たちは、端末に再度行きますよ。 私たちはズームインます。 我々は、ウサギの処理を行います。 ああ。 そしてそれは、私に警告を与えています。 それは私に言っては何ですか? さて、これらのいずれかで 時間は、あなたが常にたい 非常に最初のerror--までスクロールします 今、この1に、私は1つだけ持っています。 これはライン上に、bunny.cに私に語りました 8、9欄、問題があります。 それはあなたがこれを宣言した、と言います 変数iと、あなたはそれを使用していません。 今、通常、それはです ない最悪のエラー。 それは修正する簡単なものです。 そして実際に、私たちは後ろに行くことができます。 我々は戻ってバニーに行くことができます。 そして、この場合には、すべての私たち 私を取り除くされなければなりません、 私たちが使用していないため、 もはやメイン内のI。 私達はちょうどそれを使用しています 私たちのサブルーチン内で。 それでは、それを保存してみましょう。 我々は戻って行きますよ。 そして、ズームイン。 私たちは、1より多くの時間がバニーを行います。 そして再び私たちの10フレームがあります。 OK。 あなたが与えられているときはいつでも procedure--うん。 スピーカー33:私は混乱しているA--私が持っています。 あなたが戻ってコードに行くことができますか? BRIAN SCASSELLATI:うん。 あなたが書いたそう、:SPEAKER 33 プロトタイプ、引数ます それはhowManyが呼ばれた名前のいましたか? しかし、below-- BRIAN SCASSELLATI:そうそう。 スピーカー33は:彼らに何かを--called 異なる、私は理解していません。 BRIAN SCASSELLATI:なぜ それらが異なっています。 だから、それは素晴らしい質問です。 そこで問題は、最大でした ここで、私は、howManyが書きました そして、下方に、私はhowManyDotsを書きました。 その理由は、あなたのプロトタイプであることをアップしています それは実際に注意を払っていません あなたが入れている名前に。 それは本当に気にすべての それは整数であるということです。 これは、フォームを知りたいです あなたが入れているものの。 今stylistically-- oops--私がすべき 、私はこれらの試合をしたいとされます。 OK。 それはそれを維持することがありますので 私が覚えているため容易になります。 しかし、それはええ、私の間違いでした。 スピーカー34:そしてそうするため プロトタイプはちょうど、動作するように その行を書いて、 プロトタイプを書いて、 来るその機能を可能にします 右のそれより下の端に移動します そしてそれが何を意味するのか取得しますか? BRIAN SCASSELLATI:それが何を意味するのか コンパイラが通過するときです、 の上から行きます 下にあなたのコード。 そして、このプロトタイプは、何ですか それは基本的にはお約束だです。 それはがあるように起こっている、と言います どこかで定義された関数。 それはprintDotsと呼ばれるようになるだろう。 そして、それは一つの引数を取るために起こっています それは整数になるだろう それは返すために起こっています 何もない、ボイド型。 OK。 私はそれがために起こっているあなたをお約束します 道の下のどこかで定義されました。 しかし、いつでもあなたが参照してください。 あなたがダウンして行くと、その 私の残りの部分を通って 主な機能、私が欲しいです もし関数としてそれを治療します それは1つの整数の入力を取ります。 だからコンパイラがダウンしたとき このを通じて、その約束を見ています。 そして、それがダウンして取得したときに、 いって、いって、 それは最初に見つけました printDotsは言及されています。 そして、それはああ、あなたが与えている、と言います 私、このJ。 jは整数です。 さてあなたは私にそれが約束しました 整数で、それはそうです。 それで大丈夫です。 そして最後に、ダウン 一番下に、 私は自分の終わりに到達する前に ファイル、私は私の約束に良い作ります 私はそれを定義します。 OK? スピーカー35:だから、それはsaves-- プログラムは、空白スペースを節約します それが戻って最後に充填しますか? BRIAN SCASSELLATI:それはありません メモリ割り当てに関する。 それはちょうどについて、実際に何がありますか タイプは、あなたが見ることを期待しています。 このことは、一つを持っている必要があります 引数、または5つの引数? それは整数がありましたら それ、または文字列に与えられましたか? それはそれは見ているすべてです 行うにチェックすることです、 あなたは私に与えています 引数の正しい種類。 OK? 大丈夫。 私はであなたを残してみよう 見て一つの他のビット。 ASCIIアートは素晴らしいモデルではありません それが今日のようなアニメーションの。 しかし、当然のことながら、一部の人々は、物事を取ります そして彼らは極端にそれを押してください。 ダビデが示されているように、これは、あります 講義では、コードの断片 あなたはどのような状況でなければならないこと 自分を複製してみてください。 それは文体ひどいですので。 実際に、それは次のようになるように設計されています 読みできるだけ難しいです。 OK。 だから、もう一度行うには、のは、ここにズームしてみましょう。 私は、今、変更ディレクトリを行くつもりです。 私は1つを行くつもりです レベル、戻って私のワークスペースに。 私は、この中にディレクトリを変更します 私が作成した他のディレクトリ。 そして、これは国際的です 難読化のCプログラミングコンテスト。 ハードとしての難読化手段 可能性として理解します。 あなたが見ればそう、怖いことしないでください この時と行く、私はそれを読み取ることができません。 それはそれのポイントです。 OK? しかし、我々はこれを持っています 私は素晴らしいプログラム ちょうどより多くを入力して見に行きます。 そして、私はズームアウトできるかどうかを見てみましょう 少しだけ、あなたはそれを見ることができます そして、これはプログラムです。 それはendo.c.という名前です そして、それはこのバケツのようになります。 その中に文字F-L-U-I-Dのようなもの。 これは実際にプログラムです。 これは、最もあいまいに書かれています 方法著者は、おそらくことができること それを書きます。 しかし、それはその素晴らしい小さな作品です 流体力学のモデルを生成します。 そして、私たちは与えるつもりです そのモデルは、入力こと の、次のようになります コンテナのセットstaired いくつかの流体と、いくつかの 液体、アップトップに。 そして、我々はそれをシミュレートする必要があります 何がそれに起こっています。 だから私は遠藤、その関数を呼び出します。 そして、私はそれをあげること 私が持っていた入力ファイル。 そして、ASCIIアートの私たちの縮図があります。 完全流体力学シミュレータ わずか数行のコードで実行されています。 今は本当に実際に何 この小さなプログラムについての驚くべき 私は今、それを停止したいということです、 私はどのようなコマンドを使用するつもりですか? 聴衆:Control-Cを。 BRIAN SCASSELLATI:Control-Cを。 OK。 だから私は、Control-Cを使用します。 それを停止しますC。 私は再びオフにします。 そして今、私が呼び出すつもりです プログラムは、プログラムを実行し、 入力としての地位を使用して。 そして、我々は流体力学が表示されます そのシミュレーションは融解します。 OK。 そのプログラムをさせないようにしてください あなたが混乱ものになります。 私たちが終了することができ、ちょうどそのようなものです クールで面白いこと。 OK。 あなたの問題セットと幸運を祈る。 我々はお答えさせていただきます クラスの後に質問。 ありがとう、みんな。