スピーカー:OK、そう、あなたがそれを信じられないでしょう、 しかし、先週月曜日に、ピアス、I 地下にダウンしていた。 私はピアースに行くことはありません。 と私は、再び戻ってことはありませんだから 私は一人で私のものを残し、 のような、5分誰か 私のコンピュータと私を盗んだ 私のバックパックのうち、携帯電話。 その私はそれを得たことを意味し、 その後未満週間後 それは、再び盗まれてしまった。 そしてそれがオンになってしまった - 私のiPhoneが続く見つける 役に立たなければ。 だから私は奨励し続ける あなたはそれを使用しないように。 一旦オンになり、それがMITであった のような15分後に、その人 示されたこの電話番号と呼ばれる 私のAT&Tの通話ログに。 だから私はと呼ばれる、オンラインで行ったことを電話 数、そしてそれは、これに直行 スペイン語で留守番。 そして、私は以来、それを聞いたことがない。 だから私は、新たに取得しなければならなかった コンピュータと電話。 私が知っている。 うん。 しかし、あなたたちは私に、チップにする場合 この後にコンピュータのファンドは、それが理由です 私はここであなたを求めてきました。 ほんの冗談です。 しかし、それは本当に悲しいと外傷性だった。 しかし、それは今すべてのバックだし、それがなぜだった P-セット8は、とても時間がかかったので、 私はパソコンを持っていませんでした。 そして誰かがそれを盗んだ。 そして、私は彼らかどうかを尋ねる、電子メールで送信 グレードあなたのP-セット8であろう。 しかし、彼らはノーと言った。 そして、私は私が持つことができる、のようだった 私のコンピュータ背中? そして、彼らはありません、のようにしている。 ほんの冗談です。 [OK]をクリックします。 これが私たちの最終的な部分であり、私が持っている 我々は唯一の3を持っている - のカップル 議題の事。 私たちは、少し話をするつもりだ Qガイドについて。 その後、我々は15を過ごすつもりだ クールなデモに分。 その後、我々はすべての言おうとしています 互いに別れ。 あなたは本当にあなたのコンピュータを必要としない ノートを取るか、ペンや紙、 一緒に従う。 お使いのコンピュータを持っているので、もし私が想定し まで、あなたはFacebookを利用している。 ただ言って。 あなたが記入していない限り、 最初のQガイド。 Qガイドが開いています。 あなたはそれについての電子メールを持っていた。 すべてのQのものがに提出されると、 今年の終わりに、私はすべてを取得 みんなからのスコアにおけるQのコメント 誰が私にフィードバックを与えることを選択します。 だから、あなたは、Qに行くとき - これを行うことができれば、私は知らないが、ジェフ、 拡張子の学生だと理由。 しかし、あなたがいない場合は、Qに行くとき 前にそれを行って、あなたを選ぶ デビッド·マランである教師、。 あなたは彼をしなければならない。 そして、あなたはのTFを選ぶことができます。 そして、あなたはできるだけ多くを選ぶことができます あなたが好きなのTF。 しかし、私たちの60があります。 あなたは誰を選ぶ必要はありません。 あなたは私だけを選ぶか、単に選ぶことができます カップル他の人々、必要であれば、へ だけでなく、それらにフィードバックを与える。 そして、あなたはすべてのこれらのスコアを取得する 異なる軸、そして、あなたは残すことができます これらのフィードバック。 そして、一ヶ月後のような、 私はすべてのことにフィードバックを得られます。 そして、ちょうどフィードバックのようにあなたがしてきた 私は、学期を通して私を与える すべてのことをお読みください。 そして、それは本当に便利だし、それが役立ちます 私は教師としてとして成長 個々の。 だから、それを行うには時間をかけてください。 私たちはここにいるつもりだ 30分、のような、ため。 だから、必要に応じて、このの終わりに、へ 5分かかり、わずかに記入 Q、それはとりませんので、 それよりも、それ以上の時間。 つまり、あなたも素晴らしいこととなります バックより迅速にあなたの成績を取得した場合 あなたはQを記入 だから、あなたのほとんどは、その前にやっています - またはいいえ、あなたの約半分 その前にやっています。 しかし、あなたは新入生なら、 それはそれが何であるかです。 それは、すべてのクラスで同じになるでしょう。 それを行う。 それは5分かかります。 しかし、また、あなたは少し真剣にそれを行う場合には、 つまり、最悪のことではありません 世界では、ので、私は確か 真剣にそれを取る。 だから、私に笑顔を残している場合、 私はそれを理解するであろう。 もしあれば私もいただければ幸いです スマイリーフェイス以上に私を残しました。 しかし、それはあなた次第です。 またはビッグスマイリーのように - 私はあなたを伝えることはできません 資本D.その思いで、直面している さらに良いこと。 あなたもOK、それはQ.ために私が持っているすべての ご質問がある、あなたが求めることができます 私が、一目瞭然。 ただ、それを記入してください。 私は実際にそれをいただければ幸いです、 そしてそれは私に多くのことを意味します。 [OK]を、これは我々が過ごすつもりだものです 15分を通して行く。 私はあなたにいくつかのコードを表示するつもりです。 私は、これは本当にクールだと思う これはより多くの私を得た コンピュータサイエンスで励起さ。 だから私はそれを行うことを期待 あなたのすべてに同じ。 私たちは、開くしようとしている - そして、このすべて コー​​ドは、私は後であなたにお送りします。 しかし、我々だけで開くことになるだろう - 私は自分の端末にいる - 私たちは、このプログラムを開くことになるだろう [と呼ばれる? MySum。 ?] 誰もがそれを読むことができます、または 私はそれを大きくする必要がありますか? 誰かが私に言うことができるものを、このコードは意志 私はそれを実行するときに実行するか、どのような本 私はそれを実行するとプログラムがしますか? [? AVI、?]あなたはどう思いますか それはどうするつもりだ? 仕上げ噛む。 あなたが話すべきではありません あなたの口を開ける。 観客:それはの束を取るか 引数は、戻ってそれらの総和を見つける 合計し、それをプリントアウト? それとも2引数に取り、 それは、[聞こえない]ん。 そしてそれは何をプリントアウト 結果である。 スピーカー:閉じる、本当に近く。 誰に追加する [?何アビ?]言った? このプログラムを提供する必要がありますか 任意のコマンドライン引数? 観客:いいえ。 スピーカー:いいえ。 あなたはそれを与えていないとどうなるか 任意のコマンドライン引数? 私はちょうどドットスラッシュMySumを記述します。 観客:1プラス2が3に等しい。 スピーカー:1プラス2は3に等しい。 そして、それはそれをプリントアウトします。 それはまさにそうです。 あなたはそのプリントFが表示されます 一番下の行。 それは、Bをプリントアウトして、よ 次いで、a及びbの合計。 と私はあなたがいることを前提と推測 合計は正しく動作します。 グッド仮定。 [OK]をクリックし、何が起こるかの私 何の引数を与える? [?マヌー? ?] 観客:それはどのような追加します 最初の引数はBです。 または2に、申し訳ありません。 スピーカー:右、2へ。 strtol関数が何をするか誰も知っていますか? それは基本的にATOIだ。 ATOIは実際の空想バージョンです - またはstrtol関数の簡単なバージョン。 しかし、それは実際にはstrtolを使用しています。 私が望んでいたので、私はそれを見つけた atoi関数のようなもの、次にとき、私 atoi関数をした、私はここでダウンしてください。 そして、私は「この動作を発見 strtolは」と同じである。 だから、基本的にのためにATOIだ すべての意図や目的。 そして、あなたは私もNULLと10を使用して参照してください。 これは実際には文字列を取ることができます、 と番号に変えて、選択した あなたはそれをインチ何をしたいベース だから、これはここベース10です。 私は、小数点のために2ベース行っている可能性が 進するための基本16。 それはかなりクールだ。 しかし、長い話を短く、これは2を取る 数字と一緒に追加されます。 それでは、それを実行してみましょう。 そして、あなたもあり、わかります いくつかのものがあります - 私はここmakefileを持っており、 あなたがそれを開くと、いくつかのこと あなたは異なっているがわかります。 具体的には、この引数 右ここでは、おそらく、 その前に見ていない。 一般的に、我々は物事をコンパイル ダッシュゼロ、ゼロの。 ゼロ、ゼロにダッシュ、しないことを意味 任意の最適化コンパイラ。 試してみて、手の込んだことをするものではありません 何がより迅速に実行すること、または取得 必要な変数を取り除く。 全くこのコードを最適化しないでください 私は第3レベルを求めています 最適化。 だから私は何をするコンパイラを求めている 最適化がたくさん。 あなたは、メイクファイルでそれを変更することができたとき あなたが望む場合は、このコードを持っている 別のものを参照します。 我々は、第二​​に紹介している。 だから我々は、私の合計が1プラス2プラス3を​​実行します。 誰かが私に二つの引数を与える。 観客:4と5。 スピーカー:4と5。 ありがとう。 偉大な、それは動作します。 いくつかの他の良いの引数はどのようなものがあります これが動作することを確認するために、試してみる? 誰ですか? 観客:0。 スピーカー:0と? 観客:マイナス3。 スピーカー:それが動作する。 しかし、これらは良い選択だった。 OK、それでは、ここに戻って行きましょう。 これはmysum.cです。 あなたは何もありませ気づくでしょう sumfunction.c呼ばれる。 そして、これはああ、何かがある、と言う sumfunction.cで定義されている。 私はここで、このファイルが含まれていません 私はする必要がないため。 私はコンパイルすると、私は、それを内のリンク そのあなたが気づいた。 それでは上にスクロールしてみましょう。 我々はmysum、権利をコンパイルしたとき、我々は見た そこに、私達はからバイナリにリンクされて sumfunction.o。 と私は、ヘッダファイルを必要としない もちろん、ありますので、 関数宣言。 だから、シャープは、通常は単にプットを含み 関数宣言中。 ここで私はちょうどまっすぐに置いてきた コー​​ド内。 そして私がする必要があるリンクです 私はバイナリで。 何であるかのための任意の推測 sumfunction.c中? 私が書いてきたどのようなコード sumfunction.c中? 観客:[聞こえない]。 スピーカー:任意の推測? うん? 読者:私が思うに、定義 いくつかの[聞こえない]。 スピーカー:はい。 だから私は、int型のintの和を書きます。 私は、この行を記述し、その後、私が開いている 中括弧は、中括弧を閉じた。 私はそれらの中に書いてどう思いますか その関数内中括弧、? うん? 観客:リターンに等しい。 プロセッサ:それは本当に良い推測だ。 [誰が考えている? MANUは?]ですよね? それはプラスbを返しますと言います。 [OK]を、しない皆。 [? Akshar、?] あなたもですか? 自信がありますか? [OK]をクリックします。 何が? 読者:あなたはそれが間違ってい綴ら。 スピーカー:いいえ、私はしませんでした。 ええ、冗談。 あなたは正しい。 つまり、それが言うがまさにそれだ。 それはプラスbを返します。 それは理にかなって。 さあ、ここに戻ってみましょう。 我々はどのようにヘッダを参照してください - つまり、戻り値の型です。 覚えておいて、私たちはその日1を見てきました、 関数の型を返しますが、行く int型の関数の名前の前に。 ここで、私はint型を書きました。 あなたはこの中であれば何が起こるかと思います 機能、私はint型を書きませんが、 私は、符号なし書くのか? 違いは、もちろん、ということである 符号なしには、唯一の肯定を表す 整数、intが可能 正または負の。 だから私はリターンを変更しました この関数の型。 このコードは、一致していません この戻りはここで入力します。 あなたは何が起こるかと思います ときに私がコンパイル? あなたは私を叫ぶ必要があります。 いいえ叫んん。 私はプログラムを実行するときにはどうでしょうか? それでは0負の前にやってみましょう 3、または負の1。 それはまだ私が言っているにもかかわらず、動作します それは符号なし整数を返すだ。 明らかにそれが戻ってないです 符号なし整数。 これは、符号付き整数を返すだ。 これは、負の1を返しています。 [OK]を、それは奇妙なことだ。 私が中に行けば約 こことそれを行う? だから私はすべてを変更しました int型から符号なしへ。 それが唯一の符号​​なし整数を取ることができます。 しかし、我々はまだそれが実行することになるでしょうと思いますか? 観客:はい。 スピーカー:それはします。 それはクレイジーだ。 そして、我々は明確に割り当てを渡し 整数は、符号付きの2を渡すことができます 整数、それはまだ動作します。 なぜそれがまだの[OK]を、任意のアイデア 働くか、何が起こっているの? うん、ジェフ。 観客:それは何かをしている あなたの最適化があること 強調した。 スピーカー:いいえ。 私たちは、最適化を変更することができ、 それはまだ動作します。 私はあなたのためにそれを行うことができますが - 読者:私はそれのためにあなたの言葉を取るよ。 スピーカー:うん。 あなたはここmakefileを開くと、 私は最適化を変更しました。 だから、ダッシュ、ゼロ、ゼロを行うことができます。 それはまだ動作します。 他の考え? 君たちはすべてのように、動作するように期待 あなたはそれが動作することを期待一体何でまた〜なのか? なし? 沈黙。 [OK]をクリックします。 私は7秒を待たなければならない、 私は質問をしているため。 とてもクール、Cについての事、あなたがした あなた - おそらく前に経験した このマイトを持っていない可能性があります 初めてのこと。 しかし、あなたはすべて知っているように、私が書くとき C言語で何か、それがどのように保存されません このコンピュータ上。 これは、1と0として保存さだ。 これは、Cコードからアセンブリコードに移動します。 誰もが前にアセンブリコードを見ている、 マシン·アセンブリ·コード? 我々は、第二​​に見ていきます。 これは、Cコードからアセンブリコードに移動します。 そしてあなたたちは、段階を知って コンパイル。 あなたは、クイズ1のためにそれを暗記しなければならなかった して、クイズをゼロに書き出す。 ほとんどの人はそれが間違っていました。 私はあなたたちはそれを釘付けと思います。 しかし、あなたたちは最高の部分です クイズのため、ところで。 その驚くばかりである。 それはあなたを傷つけることはありません。 心配してはいけません。 しかし、それは本当にクールだ。 よくできました。 だから、アセンブリ言語に進み、 それは1と0になります。 と1と0は上に保存されている コンピュータ、それが中に保存されたものだ a.outのか、この場合は、 実行ファイル。 コンピュータは1と0を実行します。 右? 我々は前にこれを学んだ。 とてもクールなことは、この符号なし アイデア、型のアイデアは、符号なしint型 エトセトラ、エトセトラ、それはだ ここでは、C言語で最大。 それらが存在する。 しかし、種類はに存在しない 1と0。 種類はあっても、本当にに存在しない アセンブリ言語レベル。 だから、Cに存在するものだ 世界はなく、コンピュータに存在しない 世界やプロセッサの世界。 それはいくつかの抽象化だと、C 言語は私たちを作るために、含まれています 簡単に住んでいます。 だから、一日の終わりに、私は書くことができます それは多くの、ここでは異なるもの、及び 違いはありません。 それが唯一存在するため、 C言語の世界では。 それは内に存在しません 1と0の世界。 そして、私たちのプログラムの中には、実行中 1と0の世界。 だから、あなたの心のは、明らかに、まだ切れていない。 しかし、私はそれはクールだと思います。 うん、ジェフ。 観客:だから、もし代わりに int型をしている、あなたは、charを行う。 そして、あなたはなかった - スピーカー:それでは秒でそれをやってみましょう。 読者:あなたが付いているので 符号なしに否定的な128から行く 127または0から255。 スピーカー:だから、charが問題となる。 CHARは次のようになり、なぜ誰もが知っていますか 問題のある、そしてそれは実際だろ もので物事を変更する そして世界がゼロに? 観客:ので文字のサイズ。 スピーカー:文字のサイズは1です。 だから、符号なしには、4バイトです。 だから、チャーは物事を台無しになります。 しかし、4バイト何がある CHARに関連する? またはその時点で追加の1が追加されます - あなたが1以上の文字を入れることができます 文字の後に。 読者:チャースター。 スピーカー:チャースターは4バイトである。 それでは、何かをやらせる つまり、char型のスターだ。 だから、これはおそらく動作しますが、我々はしている でも、何かをやろうとし これよりもスゴい。 私の意見では、スゴい。 私は今返す関数を書きました ポインタは、それがかかり ポインタと符号なしの値 - 私たちはよ 私たちはわからないintにこのバックを変更 一度にあまりにも多くの変更を行う。 そしてそれは、インデックスと呼ばれる配列を持つ 配列に、戻り のアドレス。 我々は前にこれらの演算子を見てきました。 これは、これは何が起こっているかと思います 私はそれを実行すると、お返しに、行うには? あなたはそれが何になるだろうどう思いますか? 任意の推測? 観客:セグメンテーションフォールト。 スピーカー:何? セグメンテーションフォルト? それは良いの推測だ。 トムは同じことを述べています。 他の推測? 誰がそれがために起こっていると考えている 同じことをする? 誰がそれがセグメンテーション違反になるだろうと考えている? それは同じことを行います。 申し訳ありません。 しかし、もちろん、我々は、1及び2に置く。 そして、それらは両方とも有効ですよね? 我々は行くことができ、見てみましょう 配列の2番目の場所。 しかし、私たちは、Bを行った場合 負の数? それはおそらく良い推測です 何かのセグメンテーションフォールトのため。 それはまだ動作します。 [OK]を、これは今クレイジーです。 これは同様に有効SUM関数である。 これはまったく同じことを行います リターンaおよびbである。 これは良いですなぜ誰も説明することができます SUM関数、または、なぜこの作品? ここで何が起こっている? なぜこれが正確に同じことをするん 私たちの古いSUM関数などの事? [? Akshar、?] 何が起こっているの? 読者:あなたが持っているときので、 アドレスへのA 位置記憶 - あなたはアンパサンドを行うと、それ そのメモリアドレスに進む。 あなたがBに行くとき、あなたは親切なのだ そのメモリアドレスからのステップを移動 あなたはそれを返している。 だから、実際には、実際にしている、 Aを追加し、B [聞こえない]。 標準的な操作どこにいる その復帰か? 同様に、括弧はどこに落ちるのですか? 上のアドレスのリターンです [聞こえない]の前または後に? スピーカー:それは、Bへのインデックスになるだろう - またはインデックスに - そして、 アドレスを返す。 [OK]を、ので、誰もが理解してなかった 何[? Akshar?] なぜこの作品、言った、と説明した? 私が、初めて誰かをしませんでした 私にこれを説明した。 誰でも絵が欲しい これを説明するために? 我々に、絵を描くつもりだ 何マーカー、それは素晴らしいことですん。 いくつかを発見した。 だから我々はの配列を持っている 一連のボックス。 最初のものはインデックス0、インデックスである 1、2、3、4、ドット、ドット、ドット。 典型的な配列。 及びインデックスを有することに加えて、 彼らはすべてのメモリアドレスを持つ。 それでは、このメモリアドレスを与えてみましょう 13、14、15、16、17、エトセトラ。 誰もがこれまでにここにある。 そうアドレスです。 配列の名前、ポインタ そこに保存されます。 それは、それがメモリ位置のポインタの 配列の先頭に。 だから、これは配列であるか、 13の値になります。 そして、もちろん、私たちは与えることができます 私たちが望む任意の値。 Charが主演する、我々はすべてを与えることができます 私たちが望むのメモリアドレス。 我々はそれを0を与えることができ、我々はそれを与えることができます 1負 - 負の1が存在しない、 だから、おそらく、問題だが、 あなたはそれがまだ働いていたことを見た。 だから我々は、私たちが望む任意の数を与えることができます 私たちが望むあらゆるメモリアドレス。 その後、int型Bが言う、[OK]を、この数を行く 配列へのステップ。 だからbが2に等しく、aは13に等しい場合、 我々は、メモリアドレス13にいる。 そして、我々は、2つのステップを行って、 そして私たちはここにいる。 アンパサンドはリターンを意味します この場所のアドレス。 およびアドレスは、もちろん、15である。 だから我々は13プラス2の入手、 15でプラスB、。 質問は、しかし、である - ごめんなさい。 それは、物事を明確ん この作業の理由の? 観客:なぜそれが起こってうまくいく - だから、配列を持つことができ、 負のインデックスに行く? スピーカー:右。 だから我々は負の数をやった、 ようだ - これは、しかし意味がありません 最初に、[? AVI、?] あなたのために? 観客:うん、私はちょうどよ [聞こえない]が - スピーカー:うん、これは15を返します。 13であり、bが2である場合、 これは15を返します。 観客:だからゼロインデックス作成にはない 右、問題になって? あなたは0から移動しているからです。 スピーカー:右。 だから、移動している - ので、bが0だった場合、 あなたはどこにも移動しないでしょう。 そしてあなただけのアドレスを返却したい - bが0である場合、それは本質的だ のアドレスを返す。 CHARスターAに渡して返す のアドレスは、ちょうど戻っている、 基本的に。 なぜOK、問題は、 負の数は動作しますか? そして、それは本当にクールなことだ これ、これがセグメンテーション違反べきだから。 そして、それはセグメンテーション違反たい場合、我々 このような何かをした。 それでは、INT、としましょう​​。 したがって、このコードでは、同じに見えると 同じように動作する必要があります。 基本的に、xはごみ変数であり、 そしてこれは同じように動作する必要があります。 それでは、これを作ろう - おっと - スター。 [OK]を、我々はすでに、ここでエラーを取得している それは既に怒っになりそうだから 私に、それのために既に 来るのかを知っている。 特に、第2 1。 関連する積層メモリのアドレス ローカル変数と。 基本的に、私はコンパイルするつもりはない この、その後、私は何元に戻すつもりです 我々だけで何をしたか。 しかし、我々は実際には決してならないため、 メモリに何にアクセス 場所、それがセグメンテーション違反するつもりはない。 私たちは、実際に何を見たことがないている 第二ボックスまたはどの任意のボックスには この配列の。 私たちは、ここでしかアドレスだ、と言っている 事の私たちは、探しています そのアドレスを返す。 私たちは、実際に入ることはないだ その場所を見て配列。 そして、我々は、メモリには絶対に触れないので、 我々はトラブルに得ることはありません。 私たちは、セグメンテーション違反を得ることはありません。 我々はしようとした場合は、再度、ことに触れる メモリは、AまたはBであったものに触れる - またはブラケットb、および仮定する 0であった - 0だった場合でも、それはかなりになります 我々は行くことができないので、悪い そこにすべての方法ダウン。 とBは両方とも0であった、そして我々はしようとした場合 そこにあったものに触れ、その後、我々はだろう トラブルに巻き込まれる。 しかし、我々はそこにあるものに触れていない場合、 私達はちょうどそれは、アドレスを返す 実際にセグメンテーション違反するつもりはありませんので、 それはあなたがこれらの操作を実行できます。 それはあなただけで怒る、超を取得 あなたがしようとタッチすると、怒っている 実際のメモリと何返す そのメモリ位置。 それは理にかなっていますか? つまり、C.そうに夢中一部だ 我々は、これらの1以上を持っている。 誰が、これはクールだと思う? より多くの人々。 そうか。 [OK]を、これは私たちの最後のものである。 と私はあなたがいるかどうかを教えしたいと思います または、これが起こっているとは思いませ まったく同じことをする。 私はこれらのどこかに書き留めてきた。 私はそれらを暗記ていないよ。 見てみましょう、8、B 4、4、2、4、0、 8,0、3,4、4,2、4,0、4。 だから、これは今、配列で、 機能しない。 我々は正方形の持っているので、それは、配列の 括弧ではなく、中括弧。 そして、それはどのような型の配列ですか? 誰でも、うーん? 観客:16進数値? スピーカー:しかし、Cタイプは何ですか? 彼らはすべて16進数を持っています。 Cタイプは何ですか? それはあなたに伝えます。 観客:これは符号なしの文字です。 スピーカー:右、符号なしの文字。 と2進数 1バイトです。 そこでこれらは1、2、3、4、 5、6、7、8、9バイト。 これは、9バイトの配列です。 [OK]を、あなたはおそらく既に知っている この質問への答え。 しかし、あなたはどうなるかと思います 私はこれを実行したときに起こるの? 私は、mysum.cで、もう一度、言う 私は機能を期待しています それは、2つの整数を取ります。 そして、私は代わりにその合計を言っている 文字の配列です。 何が起きようとしているとき 私は。/ mysumを実行して作る? さて、最初に、あなたのほとんどはうまくいくと思います そのメイクを同意する - ああ、いや、冗談。 ホワッド私は間違っていますか? OH UH。 つまり、中括弧でなければなりません。 つまり、配列を初期化する方法を説明します。 私の悪い。 だから我々はすでにそのタイプの前に見た Cレベルの抽象化、ではありません コンピュータレベルの抽象化。 だから、あなたのほとんどは、おそらくそれが期待される 作るか、それはなるだろうと想定。 しかし、どのようなときに私は。/ mysumを実行? 何が起こるだろう? 任意の推測? 観客:それが起こっている 単語をプリントアウト。 スピーカー:それが起こっている 単語をプリントアウト。 何語? 観客:[聞こえない]。 スピーカー:その他の推測? [OK]を、フレーズをプリントアウト。 任意のフレーズを持つことができます。 それはあなたの側になります。 別の推測を持って誰? アンナ、あなたの推測は何ですか? 観客:それは、プリントアウトします - 2文字、または[聞こえない] 1手紙。 スピーカー:一つの手紙。 読者:私はどのように数えることができます 多くの[聞こえない]? スピーカー:ナイン。 まあ、私はそれを実行するつもりです。 それはまったく同じことを行います。 これは、2つの数値を追加します。 さて、2引数を渡すことができます。 これは、引数をとりません。 だから私は知らない場所、それができた おそらく、これらの引数を取得します。 しかし、ここでは100と0で渡すことができます。 そして、それは100と0が追加されます。 それは非常識だ。 そう思います。 あまりにも動作する、4負。 あなたが欲しいものを行うことができます。 これは同様に有効sum関数である。 これはSUM関数である。 しかし、いや、あなたはそれがだと言っている バイトの配列。 それでは、ここで起こっている? だから、もう一度、のはこのアイデアに戻りましょう 我々は非常に冒頭で言った。 あなたは、Cレベルのコードから、アセンブリに行く 1と0の言語、。 これは16進数です。 しかし、これは実際にはある 1と0がたくさん。 これは右、72と0ですか? 72と0。 9バイト。 各バイトは8ビットである。 各ビットは1かゼロである。 だから、72 1または0。 私はこのようにそれらを書いた - むしろ、多くのようにそれを書くより 1と0。 しかし、これはCレベルから行くでしょう アセンブリ言語、 コー​​ドの言語、。 これは、コード内で出力します どこかで、これらの72の1と0 私はここに書いたことを。 だから、どこかにある - それでは、ここで行ってみよう - そこmysumのどこかに、プログラム、 ある私がしたこれらの72の1と0 書かれており、書き込みにそれを言った。 何の方に、今、どんな推測 72 1と0を意味ですか? 観客:おそらく同じ 事は、プラスbを返します。 スピーカー:おそらく同じ 事は、プラスbを返します。 それでは次のことを確認してみましょう。 それでは私はこれをしなかった方法を見つけ出すしてみましょう。 あなたはここに戻って行くのであれば、私はあなたを教えて このコマンドを実行するには、objdumpは-S sumfunction.o。 のはそれを実行に行こう。 objdumpは - OBJ、ダンプ。 基本的には私を与えることができます 私が見てみたいものは何でも。 それは私に、アセンブリ言語を与えることができます。 それは私に1と0を与えることができます。 これは、フラグのトンを持っています。 これは、我々が行っているものです 今に使用する。 ドット - あなたはスライドで見るように - ダッシュ首都Sは、に散在言う ソフトウェアのソースコード - この行のCからの - アセンブリと コー​​ドと1と0で。 そして、我々は実行するつもり それsumfunction.o上。 それは見て容易になるだろうから。 再び - うーん? 読者:あなたはそれが間違ってい綴ら。 スピーカー:しかし、私は実際に行くよ 第二のためにそれをクリアする。 私が最初に開くつもりだ ただsumfuntion.o。 読者:あなたはそれを綴ら 間違っ初めて。 スピーカー:クラシック。 和 - それはしかし、硬い言葉である。 あなたは驚かれることと思います。 [OK]を、これはsumfunction.oです。 私もあなたを伝えることができませんでした。 ゼロの多くは、多くは明らかに、そこ ゼロの、および他のいくつかがあります ゼロではないもの。 しかし、ほとんどはゼロ。 いくつかのものがありますように見えます。 そう明らかに、これは読みにくいです。 それは、バイナリ、言語の。 それでは、それを開いてみましょう - 何? 私が間違って何をしているのですか? 私はそれを正しく綴るましたか? [OK]を、これは厄介である。 私は、図のように1秒を必要とする 私は間違ってやっているのかを。 それは1のエラーです。 それは奇妙なことだ。 ああ、それは理由です。 私は、我々の最初に戻って行くつもりです 1、私たちは見ることができます このオブジェクトコード。 本当にあるように行くわけではないので、 我々だけ入れると何もすることが 1と0インチ そこに私達は行く。 [OK]を、ので、誰もがこれを見ることができます。 この関数は、私が言ったように、 Cラインを消す - ソースコード行 - いくつかのアセンブリ命令と。 ここに私たちのソースコード行です。 ここに1つはですが、ここでもう一つです。 ここで、アセンブリ命令である。 それは彼らがどのようなものです。 組立説明書 - あなたが取る場合は、これらの詳細を学ぶことができます 他のCSのクラスが、彼らはしている 一般的に命令。 して、ソースとデスティネーション。 して、こっちのバイナリコードです それは、そのアセンブリに対応 命令。 ご覧のように、このSUM関数、 一日の終わりに、3である アセンブリ命令。 のみ3。 一楽章 - このM-O - Vは、移動の略です。 追加の略を追加します。 とR-E-Tはリターンを意味します。 だから1楽章、1 ADD、1リターン。 これらは、こっち、ゼロであり、 そのコードに対応したもの。 ので、これらの0と1に、もし それらを知って、あなただけ置くことができます これらのストレートインチ そして、それはやります まったく同じもの。 一日の終わりに、全て、なぜなら あなたが実行しているが、長いシリーズのです 0と1。 そして、それはあなたのコードが実際にあるものだ。 と理由 - 一つのことを見てみましょう。 私はメイクファイルを開いてありましたか? 我々は、ダッシュに戻ったそうであれば ゼロ、ここまでゼロ - 申し訳ありませんが、大文字のOで、資本 Oゼロ、ゼロではない、ゼロ。 そして、我々は、それが作ったのだろう それでも同じように機能する。 しかし、今、あなたがあることに注意してください より多くのアセンブリ命令。 繰り返しますが、私は尋ねた、からだ 任意の最適化を行うことがないようにコンパイラ。 だから私はまだこれらのすべてを取ることができる 0と1とでそれらを投げる、 それが働くだろう。 私はちょうどので、最適化を行いました それは少し簡単です、そして、 その配列を書き込みます。 しかし、これは全く同じように動作します。 [OK]を、我々は1の最終のことをやろうとしている、 私はクールな部分であると思うので。 誰もが明確なのに すでに吹き言葉。 私たちの心が溶断している。 [聞こえない] したがって、これらは、別のCSクラスからである、 その超面白いです、 私が撮影していることを - CS61。 私は非常にそれを取ることをお勧めします。 しかし、この事実についてのクールな部分は、その 物事は、単に0と1である、 すべてがあることである 0と1。 だから、あるファイルを取ることができます あなたが望む正しい0と1 その中のどこかに、とのそのセクションを使用 SUM関数として0と1。 私は何を意味するのですか? 私は、あなたがそのイメージファイルを取ることを意味 正しいゼロのシリーズを持っている 何かを印刷したもの、 イメージに不足しています。 そして一つのプログラムを解釈かもしれないです イメージがありますが、あれば、それを解釈することができます あなたはsum関数として、欲しい。 だから我々はのために、オープンしたい場合 たとえば、このイメージ。 行こう、ハローキティ。 素晴らしい小さな画像。 ここでは、その文字列があります 0と1の。 これらの72 0と1 このイメージに存在しています。 だから私は何ができるか、そして、書き込みである - 私は、彼らがどこにあるか覚えておく必要があります。 私は2番目でそれを見つけることができます。 しかし、我々は何 - 彼らはどこに私が調べてみましょう。 1秒。 それではやってみましょう - 観客:[聞こえない]。 スピーカー:ありがとうございます。 だから我々はこのプログラムを実行すると、その 代わりに、それは行く、ファイルを読み込み ファイルにこのインデックスに。 そして、再び、同じよう mysum 2つの数値を取ります。 私たちは、まったく同じ番号を追加することができます 私たちは、に行く、これの前に何をしていた その最後にどのように実際にお見せ その日に、これらすべてのことがある 0と1。 それはあなたが選んだ方法です それらを解釈する。 そして、あなたが実際に見てみると このイメージでは - のビットに拡大してみましょう。 誰もがそれを見ることはできますか? あなたはここに気づくでしょう、あります いくつかの奇妙な汚れ。 行きましょう - これは、元の画像である。 あなたがここには汚れがありませんがわかります。 つまり、SUM関数のコードです、 その小さな汚れはすぐそこです。 そして実際に、もう一度、あなたがより多くを学べば これについて、あなたは気づくでしょう、この さらに大きなを持っているハローキティ、 汚れは、引き継ぐことができるコードがあります コンピュータは保護されなかったら 適切。 だから、実際にこれを実行することができます。 私は今それを実行するつもりはない。 しかし、あなたは、このハローを実行することができます キティのイメージ、それができる お使いのコンピュータを引き継ぐ。 だから、デモのためにすべてです。 誰もが疑問を持っていますか、 コメント、懸念? 私はこのようなものが魅力的だと思います。 それはより多くを学ぶために私に影響を与えた。 もし興味があるなら、私は非常にお勧め CSの上のすべてで、私に話しています。 私は社会科だにもかかわらず、 コンセントレータ、私はCSのよ、二次なので、 私はまだ少し知っている。 しかし、私は確かに知っている あなたが取るべきクラス。 私は、それがすべて本当に面白いと思う そして私がするには、確かに、なることをお勧めします もし興味があるなら詳細を学ぶ。 [OK]を、私は1の最終のものがあります。 申し訳ありません。 ご質問? 誰かどうかは待たなければ一時停止しませんでした そのことについてご質問がありました。 誰になるだろう CSコンセントレータ? またはそれについて考えて? 一つ、二つ、三つ、四つ。 一 - のみ1。 アンナのは唯一の手です 厳然と提起した。 [OK]を、それはクールだ。 アッサム、何をするつもりですか? 観客:[聞こえない]。 スピーカー:コンスタンティン? 観客:物理学。 スピーカー:おっ、速かった。 あなたはCS50での悪い経験を持っていた? [聞こえない]、何をするつもりですか? 読者:私はわかりません。 スピーカー:カート·? 観客:イーコンまたはCS。 スピーカー:イーコンまたはCS。 トム? 読者:私は統計をやっている。 スピーカー:STAT? [OK]をクリックします。 あなたは何ですか? 観客:ミー? スピーカー:うん。 観客:統計。 スピーカー:統計。 ああ、そこに行く。 トムは、オールデンと話す。 エミリー、あなたは何ですか? 観客:バイオメディカル - スピーカー:あなたは、このセクションでいますか? 観客:いいえ。 スピーカー:OK、それはエミリーの。 彼女は私の友人だ。 友人のはっきりしない、良い、 彼女は私に苦労を与えるので。 あなたが前に私にはよりよいかもしれない みんなの、私の学生 - 読者:私はあなたの質問ガイドをやっている。 スピーカー:本当に? OH UH。 [OK]を、あなたは素晴らしいです。 私はあなたがそんなに大好きです。 ああ。 とにかく、私は、最後の夜、 すべてのもののように - 私は誰もが本当に確信しているようだ 今強調した。 私は知らない、新人である - である あなたたちはストレスを感じですか? 私が強調した感じている。 それはあなたが家に帰る、のようだった 感謝祭のために。 あなたは私が行くよ、のようにしている これらすべてのことを行う。 観客:それはとても違う。 スピーカーは:うん、あなたが戻ってくる。 ジェフは、あなたがそのように感じませんか? 読者:私は思った 私は少しビットを行うと思います。 スピーカー:OK、素晴らしい。 だから私は戻ってくると、私はそうではありません 何もして。 そして、それはすべてのスーパーストレスです。 そして、私は純粋に心配、心配、 私はかどうかについて 私がしているすべてのものを終了する予定。 しかし、最後の夜、私は強調していなかった、 私はちょうど少し悲しかった。 だから私は約私の日記に書いた 私は悲しかったものを。 そして、私は、この項について悲しかった このクラスでは終わりに近づいて。 だから、僕はあなたたちのために読みするつもりだった 日記の小さなスニペット、 昨日の夜から。 私はいくつかのナプキンを得ることができ、 トムからのいくつかの組織? いいえ、私は泣くつもりです。 私は泣かない。 あなたが泣くことができないではないことを、 私は泣かない。 私もわからない場合は、私の涙 腺が働いていた - 涙管を。 私は長い時間で泣いていない。 観客:[聞こえない]。 スピーカー:[OK]を、ありがとうございます。 [OK]を、ほとんどの序文があります - 日記の一部の他の部分があります エントリ、私はすべてのジャーナルにしようとするため 夜私はベッドに着く前に。 私は非常にジャーナリングをお勧めします。 また、あなたが物事を処理するのに役立ちますし、 あなたの一日の非常に感謝している。 そして、それはそれは非常に簡単に見えるようになります 戻ってあなたの日にしていることを実感 良いが多かった 起こったもの。 あなたは本当にストレスを感じていても 夜間や、本当に動揺するか、 本当に悲しいか疲れた。 ああ、私の神。 それが書かれているかどうかも分からないこと よく私はそれを校正しなかったため。 しかし、我々はそれを読んであげる。 私は通常私を読んでいない ジャーナル、明らかに。 「明日、私は私の最後のを教えてあげる 今年のCS50セクション。 それは時間が飛んでどのくらいの速クレイジーだ。 しかし、私がどれだけ異なる打ただ 今年教える私の経験だった 私は二年生だったときよりも。 まず第一に、私は間違いなく より良い素材を知っている。 しかし、私の最初のコホートを教えていない 学生のそれ。 さらに重要なことは、しかしながら、Iが実現 その立ちから来る喜び 出発するものの部屋の前で 見知らぬ人が、で、のようになってしまうなどの 少なくとも、Facebookの友人であり、 ではない一年のまぐれ。 むしろ、それはで、次のことを知ることからです いくつかの小さな方法は、あなたが助けている 、才能のある思慮深い、楽しい、そして 情熱的な人々は、もう少し学ぶ コンピュータサイエンスについて。 あなただけの、その電球をシフトしている ソケット内のビット、それはできますように あなたよりも明るく、またはそれらを照らすために、 学期の開始時に想像していた。 あなたが逆さまそれらのしかめ面を回して助けている ダウンや質問をすること サポートを提供していますが、まだ許可 生徒自分で立ち上がる。 それは確かにても過言ではありません このセクションでは、私のお気に入りであると言う 週の一部。 あるいは私が言うことを躊躇していること、それはです すべて、午後5時30分毎週で、知っている それはあまりにも長くなるだろうと 我々は再び会うまで。 しかし、私は信じられないほど感謝している 私はこれを与えられたのは、誰も 他の人に恩返しするチャンス。 ダビデに、彼の忍耐と信頼の。 映画や生産乗組員のために 私は多少立派に見えるように。 そして、最も重要なのは、私の生徒たちに、 誰せずに私は理由はないだろう ベストを考え出す10時間を過ごす ポインタを描く、またはAをレイアウトする方法 JavaScriptでイルカのテーブル、。 いつものように、それは祝福されています。 " だからと、君たちに感謝。 私はCS50のフェアであなたのすべてを見ることができますし、 ハッカソン、あなたがそこにいるかどう。 ご質問がある場合には、私が固執するよ これ以上存在しない頃まで。 しかし、私はのために皆さんに感謝 素晴らしい年。 [拍手] スピーカー:私は泣くことがあります。