>> スピーカー：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のフェアであなたのすべてを見ることができますし、 ハッカソン、あなたがそこにいるかどう。
ご質問がある場合には、私が固執するよ これ以上存在しない頃まで。
しかし、私はのために皆さんに感謝 素晴らしい年。
>> [拍手]
>> スピーカー：私は泣くことがあります。