[音楽再生] ALLISON BUCHHOLTZ-AU:ちょっとみんな。 あなたの最初へようこそ 公式CS50セクション。 あなたは、これは見ることができるように ただ、セクションCS50-様 今日の私たちのアジェンダをプルアップする。 だから、私は誰だ、私は確信しているように あなたは、すべての疑問に思っている。 私はあなたのTFだ。 私はちょうどランダム学生ではないよ 誰があなたのTFを偽装だ。 と私は通過するつもりだ 種類のセクションが流れます持っている、 我々が持っている期待、 リソースようになど。 私たちは、配列について話をするつもりだ、アスキー 関数、コマンドライン引数、 そしてそれはここではありませんが、 私も助けます あなたはちょっとを通して考える この週のあなたの次のPSET。 どの私はあなたがすべてを理解するであろうと確信しています。 私はそう、最初question--、 ここにあなたの熱狂的なTFのほかに。 私はアリソンBuchholtz-Auのだ。 これは私の二年目TFing CS50です。 春に私はまた、タスクフォースCS51。 あなたはそこに再び表示される場合があります あなたはそれを取ることにした場合。 私はまた、PAFよ、ので、任意のFreshmen-- そしてあなたが新入生いないのであれば、 これは私の三年目です 助言仲間として。 私は非常に精通しています 生活やコースであなたをアドバイス CS内としないCS内。 私はコンピュータサイエンスコンセントレータです。 私はアダムスハウス、最高の家の中で先輩だ。 そして、私はに切り替える前に、 CS私のソフォモア春、 私は実際に生物医学エンジニアだった。 私はメッドの学校に行くつもりだった。 私は、外傷外科医になる予定だった。 そして、それは完全に持って 私はCS50を取った以降に変更。 私は2年生の秋のコースを取った。 それは、今までにCSに私の最初の導入でした。 私はあなたの78%の一つであった人 入ってくるゼロ経験を持っていた、 そしてそれは完全に私の人生を変えました。 そして今、私はで働いている Microsoft、およびあなたの素敵なTF。 とCS50はおそらく一つです 最高の経験の 私はここで持っていたこと 両方のクラスを取ってHarvard-- そして助けることができること あなたのような学生を教えています。 だから私は本当に興奮している あなたがすべてここにいること。 ケースでは、入って来た 後半、お菓子があり、 あなたが感じるべきか グラブを来て、または送信すること自由 あなたのためにそれをつかむために他の誰か。 それはOKです。 私はそれを食べにしたくない。 私の部屋には、十分なチョコレートを持っていそう y'allのはそれを試してみて、完了する必要があります。 私は100個がいることを知っている、 しかし同様に、月曜日の4時、 私は誰もが、いくつかの砂糖を使用することができますだと思います。 だから、すべてあなたの誰であるか 正式に私のセクションに 電子メールを得ている必要があります 私から私の電話番号と、 電子メールは私を自由に追加してaddress-- Gchat、Facebook上で私を自由に追加して、 また、あなたの残りの部分のために、 あなたは右ここに私を電子メールで送信できます。 2つのHさんがあります。 誰もが常に行います 2 L'Sまたは2つのCのような。 姓での2つのHさん。 それ以外の場合は、バウンスします。また、だ 私はあなたの電子メールを取得するつもりはない。 だから、私にメールして自由に感じる いつでも私に連絡すること。 私はに戻って取得することはできません 24分以内にあなたの、 しかし、私は戻って取得することを約束 24時間以内にあなたに。 あなたは半時間前に私を呼び出す場合 あなたのpsetは、あなたがどの​​ようにされて、原因である 私はアリソンをやっているか分からない。 私を助けて。 私は、あなたを落ち着かするつもりだ 一日の終わりに、 あなたは半時間前に私を呼んでいる場合 あなたのpsetは、書かれた何も起因している 私は多分、よく、のようにするつもりです それはその後半毎日使用する時間です。 だから私はあなたのすべてに対応させていただきます 非常にタイムリーに要求する。 私の携帯電話は、通常、 私の手に装着。 私は通常、非常に応じる 24時間よりも速く、 しかし、私は唯一の保証することができます 24時間対応。 わかりました。 では、なぜ私たちはここにいる? また、あなたはで質問がある場合 どんな時間が、私に教えてください。 私は多くのことを話しています。 私は速い話が、お願い致します 私を中断して自由に感じる。 それは同様に私は部屋を呼吸できます。 セクションは時間であるので、 私たちは本当にただのダイビングへのための で、いくつかの実践的な経験を得るに 我々が言及したトピックを経る クラス内またはその教材で 私たちはオンラインの君たちにお勧め。 そして、我々は実際に通って行くよ ビットでこれらのリソースの一部。 セクションのサポートに関するので、いくつかの注意事項。 CS50--なりますことの一つに それ私のお気に入りのクラスのいずれか あなたは一人では決してならない感じです。 我々は、100以上のスタッフを持っている あなたを助けるためにここにいる人たち。 当社は、営業時間を持っている 月曜日から木曜日まで。 だから、非常に多くの人が誰であるか 同じくらい私がそうであるように、クラスを愛し 誰が本当にここにいる 彼らはここになりたいので。 私たちのほとんどは学生であり、この 加えて、第五のクラスのようです 我々の仕事の残りの部分へ。 そして、それは多くの作業だが、 我々はそれを愛しているから、我々はそれを行う、 私たちは本当にあなたを教えることが大好き と私たちの興奮を共有して助ける この主題とこのクラスの。 だから、活用してください。 私たちに話を来る。 私は孤独取得するとき私の生徒 あなたが欲しいので、もし、私に話をしない、 私と一緒にたむろてくる。 それは素晴らしいことでしょう。 だから、セクションは明らかである あなたの最大のものの一つ。 私たちは物事を通して行くよ あなたが講義で学んだことを、 いくつかの簡単な例を行う 我々は時間があるとき、 一般的な種類の 物事についてのアイデアを得る あなたが考えるべき あなたの問題は、設定のために約。 実際にどのように多くの人々をShorts-- あなたのゼロからビデオを見 短い? 誰もが私を認識? だから、それらは非常に素晴らしいです。 あなたは間違いなくそれらを監視する必要があります。 多くの仕事はそれらに置かれている。 それらはわずかであることを意味している あなただけ見てするための一口大 3つまたは​​4つ分とを得る 概念をより良く理解する。 どのthroughs--歩く 多くの人が見ている 以前のもののためのウォークスルー? Zamylaは右、素晴らしいです? 同様に、私は時々Zamylaなあ。 だから、間違いなくあなたのウォークスルーを使用しています。 彼女はにそれを打破します 小、一口大。 そして、あなたはこれらの巨大なを持っているとき あなたの問題セットから仕様、 それは本当に重要になるだろう ただどこかに見つけることができるようにする 起動して、それを介してゆっくりと動作するように。 すべての権利、我々はまた、Study50を持っている study50.harvard.eduですが、私は信じています。 あなただけのGoogleの缶 勉強、それが出てくるでしょう。 これはの一つです 私たちが持っている最高のリソース。 それは、リアクションパワーポイントです そしてあなたのために問題を練習 そのあなたのソリューションと 実際にウォークスルーすることができます。 だから、これまで以上に練習をしたい場合は、 私たちはセクションで以上やるより 問題の組よりも、これは 私は行くことをお勧め本当に場所。 それは、によって昨年夏に建設されました 私の本当に良い友人の何人か。 そして、それは驚くべきことだ。 実際には、多くのスライド 私は、セクションのために使用することがありますことを Study50から来る。 だから、TFの多くはそれを使用します。 そして最後に、私のように 述べたように、オフィスアワー。 あなたは問題がある場合 宿題で、あなたがしている に問題がある コンセプトは、営業時間に来る。 できれば週に早期に行く。 クワッドに出て行け、 それは一種の遠いですので。 誰もそこに歩くことを好きではない。 しかし、それは、あなたの利点にある その後あなたがしているので、 これらすべてのTFを持っているつもり、 [聞こえない]あなたを囲む。 特に今、 氷山、木曜日 で、今は非常に寒さです メイザーあなたのpset理由 木曜日に起因している。 と知ることは、望んだ あなたの後半の日は、まだ使用しています。 だから、あなたが持っている場合 概念とのトラブル、 誰のTFがたくさんあり​​ます あなたを助けるためにあります。 だから、木曜日にメイザーに出てくる。 あなたが私を見たい場合は、 私はそこにするつもりです。 私は通常、私自身の宿題をやっている 誰も私の助けを望んでいないため。 だから、私たちを見に来。 途中で私たちを満たしています。 だから、どのように多くの人が出席した 講義や、オンライン視聴? どのように多くの人々がに行ってきました スーパーセクション先週? 涼しい。 それは実際にかなりの数だ。 どのようにあなたの多く読んだあなた あなたのpsetのためのこの週のスペック、? ああ、私はあなたたちを誇りに思う! y'allのためのより多くのキャンディー。 グッドので、我々は何を意味するか 「途中で私たちを満たして、 "ある そのセクションが本当に唯一である あなたに超便利になるだろう あなたが読んで来る場合は、 あなたのpsetの仕様。 私は概要を通って行くときので、 あなたが探して探している必要があります物事の、 それは作ることはないだろう もしあまり意味としてあなた あなたの問題がセットかわからない あなたがしなければ尋ねるされようとしている。 あなたは明らかに、セクションに来ていない場合 私はあなたにその便利にすることはできません。 場合、私は個人的にそれを取るつもりはない あなたは、今の私のセクションに来ることはありません 間違いなくあなたがすべきである。 あなたは、それらをオンラインで見ることができない場合。 彼らは理由のためにそこにいる。 鉱山は右があるでしょう。 あなたが気づくように、我々は記録されている、 ので、それはあなたたちのために権利があるだろう。 同様に、に行く lectures--ことは明らかだ どこで取得している ここにあなたの材料の始まり。 だから私は間違いなく試してみます 、同じくらい私はできる限りのお手伝いを しかし、私は唯一のこれまでお会いすることができます。 あなたはの種類に持っている 途中でそこに私たちを満たしています。 ので、あなたのすべてをGrading-- 誰が、私からのメールを得た あなたは私の公式セクションです。 私はあなたのpsetをグレーディングされます。 そして、私はひとつだけという、言いたい あなたは本当にに注意を払う必要があります コメントです。 コメントは、多くの場合、より有用である 私たちはあなたを与える実際のスコアより。 とコメントは、実際にある 私は私の多くの時間を費やす場所 私はグレーディングいる時。 だから私は幸いです それはあなたがそれらを読んでいる場合。 そして、彼らはあなたがつもりかを実際にしている デザインとスタイルについて詳しく知ることができます そしてあるもの 少しカットして乾燥させます。 だから、本当に注意を払う それらのコメントに。 あなたがそれらについての質問がある場合は、 またはあなたのスコアについての質問、 私に話を来てください どちらかのセクションの前に、 私はおそらくぶらぶらことでしょう ロビーで、またはその後。 あなたがスケジュールする場合 方法については、1対1のミーティング 後で向上させることができます 問題は、ちょうど私に知らせて、設定します。 その後だけのカップル 君たちのためのヒントの。 最も大きなものの一つだから、 私はいつも私のセクションにストレス あなたがコーディングする方法を学習しているときである 最初の紙の上で物事を書き込みます。 あなたがのためにゲームプランを持っている場合 あなたのコードは行く必要がどこに そしてそれが必要なもの やるとそれがダウンして壊れて 擬似コードの小さなビットに あなたが書いたコードが、 あなたがより少ないことになるだろう 構文エラーをする可能性が高い または、もしループを作成 他にはありません。 あなたが知っている場合は、どこ 全体的に行く、あなたがしている これらの小さなを作成する可能性が低い 時々行くことができます間違い あなたが似ているので、修正するための時間、 どこで私は、このブラケットをしないのです? そのノートに、Style50をご利用ください。 あなたがいる場合は特に 営業時間に行く、 あなたのコードは、すべてのであれば 一方の側に切り替え、 それはもちろん、ポリシーです 私たちが言うことができ、それを修正 Style50が言うように見えますように それがなければならず、その後、私たちはあなたを助けるでしょう。 だから、あなたの人生を容易にするだろう。 それは、私たちの生活を楽にします。 誰もが幸せだ。 誰もがより良い成績を取得します。 それは我々すべてが望むものではないですか? だから、前に紙の上に物事を書き出す あなたは今までお使いのコンピュータに触れる。 ハイレベルで物事を話すと、 あなたが行っている場所を知っていることを確認します。 そして、あなたがわからない場合には、 誰かと腰を下ろす そして、ステップバイステップを介してそれらを歩く 何あなたのコードが行うことになっている。 そして10のうち9回は、あなたができるでしょう ああ、のような、私はif条件を忘れてしまった または私はここにセミコロンを忘れてしまったか、 私は、この変数を更新して、間違ったんだ。 だから、それらは成功のための私のヒントがあります。 あなたの約半分が見えるので、そう あなたのようなスーパーセクションに出席し、 私はちょうど非常に行くよ 簡単にループを通過、 これは私たちのオリジナルの議題になかった。 しかし、彼らは本当に重要です。 そして私は親切に行くよ それらを通してスピード 私たちは実際のセクションに入る前に。 私は、あることを行う前に どんなquestions--ロジスティック、 個人的には、そこにある あなたが望む何か 私についてかについて知っているために 一般的に、セクションやクラス? すべての良い? クール、[OK]をクリックします。 ラブリー。 だからloops--君たちは、すべてべき ゼロからこれらの作品を認識する。 だから、ループは基本的にあり 私たちは何かをするための方法 何回かは、いくつかの繰り返し いくつかの条件に基づいて行動。 だから我々は、3つの異なるタイプを持っている。 私たちは、forループを持って、しばらく、そして日曜しばらく。 だから我々はちょうど持っているloops--のために非常に ここでforループの一般的なレイアウト。 あなたはどのように知っているとき、これが最適です 何度も何かを実行する必要がある。 我々はについて話すとき 他のループ、あなたはよ それは重要な区別である理由を参照してください。 しかし、ループの設定何かのためである。 あなたはどちらができます知っている 数を計算する または、回数を知っているあなた これは冒頭で繰り返さたい。 ここで見るのであれば、私たち 単に一般的な種類を持っている スケルトンフレームワークの ここでforループのために。 そうするために初期に、これはどこにある あなたの変数が初期化されます。 マリオで、私は君たちがやったと確信している int型のようなもの、私は0に等しい。 それが青で起こるだろうどこにいるのです。 あなたは、あなたの状態を持っている 毎回チェックしているものです。 この条件が真であれば、 残りのコードが実行されます。 それはagain--を実行し、頼むよ。 そして、我々は、どこで更新を持っている あなたの変数を更新している。 だから、もう一度、マリオなどと、私は確信している 君たちは私プラスプラスのような何かをした。 だから、毎回ループ 走った、私はそのように更新されてしまった 我々はそれをチェックしたところに対して、その いくつかの条件は、それが変化した。 あなたのためならちょうど 静的変数を持っている、 それが最初に実行した場合、それがだ ただ無限に実行しよう。 だから、あなたを確認する必要があります あなたの変数が正しく更新されます。 そして、我々はまた、単に持っている そこに視覚的に表現。 みんな良い? forループ。 あなたのpsetでこれらを見てきたはずです。 涼しい。 だからここだけの簡単な例です。 印刷するこれはCS50です! 10倍。 そして私たちは私たちの初期化を持っている、 我々はint型のiと、そこに見るように 私が小さいため、0に等しい 10を超える、と私プラスプラス。 そして、それは、その10倍を印刷します。 だから、ループがある間loops--ながら 偉大なあなたは必ずしもないとき それはだ何回知っている必要があります 初めに更新する予定。 あなただけのいくつかを持っている チェックされた状態だ。 そして、これはwhile--のようなものかもしれない それでは、あなたのpsetから例を見てみましょう。 マリオ場合は、しよう 入力負の数。 右? あなたがすることになった。 あなたのユーザーを再要求します。 ですから、よく、言うことができ、ユーザ入力の場合 ゼロより小さいものは、再プロンプト 彼ら。 そして、私はそれが持っているかもしれないと確信している あなた方のうちの何人か何かあった あなたのコードで使用。 だから、簡単なことだ。 あなたはしばらく、いくつかを持っている チェックされていることが条件 毎回コードを実行することになる。 それが真と評価された場合、我々はそれを実行します。 そうでなければ我々にはありません。 本当に何 important--何か私 ダビデは話をすることを考える lecture--にブレースです。 内何でさん ブレースは、実行ているものです。 あなたがそれらを忘れてしまった場合 ブレースは、それだけで起こっている 直接ラインであると しばらくは、処刑された。 だから、あなたは3を持っている場合 想定されているもの ときは、この発生する 条件がtrueに評価され、 そしてあなただけの、それらの中括弧を持っていない 最初の事は起こるだろうされています。 だから、非常に認識して あなたはあなたの中括弧を置く場所。 あなたがStyle50に固執する場合は、 これは間違いなくあなたを助けるでしょう。 涼しい。 だから、これは10からカウントダウンZEROです。 あなたがここに見るようにと、私たちは初期化 それ以外のいくつかのカウンター。 違うの一つです 私たちは、変数を初期化していない 私たちのwhileループ内で。 それはそれの外で初期化さだ。 私たちは単純に入れている 我々しばらく内の条件。 したがって、この場合には、一方の カウントがゼロよりも大きい。 そして、私たちは、私たちの数が何であるかをプリントアウト その後、我々は我々の変数をデクリメント。 そして、それはまた、注目すべきもう一つのことだ。 私たちの更新が内起こらない whileループの最初の部分。 これは、実際に内に行われます 中括弧、テキストの本文。 そう-しばらくは何-ながらloops--ループ ユーザー検証に最適です。 だから、あなたのいくつかは持っているかもしれません また、あなたのpsetでこれを使用していました。 あなたは、のような、何、言うことができます ユーザに入力をお願いします。 その後しばらく、のような、 入力がいくつかの数より少ない。 マリオとの明示的な場合のためにそう、それ 整数を入力し、printfのを行うだろう、 その後、いくつかの整数がGetIntで等しい。 そしてそれは実際によ 最初にそのコードを実行する。 あなたが実際にあります 整数のいくつかの並べ替え。 そして、あなたはしながら、言うことができる その整数はゼロ未満である。 だから何それはどうするつもりなのはそれがだです 少なくとも一度は実行しよう。 これは、条件をチェックするために起こっている。 条件がある場合 真、それは再度実行します。 そう-whil​​eループである ユーザー検証のための偉大な、 あなたは、コードを知っているので 少なくとも実行しようとしている かつて、との一方 ループしながら、あなたがわからない それはだということが保証さ 一度実行しよう。 これは、条件をチェックするために起こっている まず、それを実行することを決定し、 DO-しばらくはしますが 最初のコードを実行する その後かどうかをチェック あなたはそれを繰り返す必要があります。 その区別を行います みんなに意味をなさない? [OK]をクリックします。 涼しい。 したがって、この場合、これは一種である 私が話していたものの、 あなたまで、この再プロンプト 正の数を取得します。 だから我々は知っているのprintfこと 「正の数を入力してください」 そして実際にその求める 入力は、少なくとも一度起こります。 ユーザーは悪であると続けた場合 負の数を入力し、誰が それが実行よ何回知っている。 しかし、このコードが保証されています 少なくとも一度実行します。 そして、それはそれは素晴らしいことだ理由です 入力を検証するため。 そして、あなたはかなりのことを使用します。 すべての権利、これまでのご質問? 我々は、すべての良いしている? 私はあまりにも速く話している? 我々は良いしている? [OK]をクリックします。 素晴らしい だから我々は先に行くつもりです と配列について話しています。 涼しい。 だから、配列は基本的に 単にデータ構造 それは私たちが保存することができます 同じタイプのもの。 あなたは今まで、配列を持っているのであれば、それはだ どちらかだけのint型を持っているつもり またはそれだけで山車を持っているために起こっている またはそれは単に文字を持っているつもりだ。 あなたがint型を持っているつもりはない 二重のfloatとCHAR。 一つのこと。 配列は、ちょうどワンサイズです または彼らはただ一つのタイプだ。 そこでここでは、サイズの配列を持っている その中に三つの整数を持つ3つ。 彼らは浮くこともできますが、我々はしている 彼らはint型だと言うつもり。 だから、実現するための一つのことは配列ということです あなたは初期化時に設定されたサイズである 彼らは、彼らはeasily--されていない みなさんはあまり快適であるため、 あなただけのようにそれらを考える必要があります サイズに拡張することができない。 あなたが設定したが、大きな 初めに、アレイ、 それはそれは起こっているサイズです アレイのため、滞在する メモリの連続ブロックである。 そして皆さんが取得するとき もう少しへ メモリが実際にレイアウトている方法の ディスクおよびヒープとスタックで、 それは少しより多くの意味を作ります。 しかし、あなたはちょうどそれがだ、などから考えることができます あなたのディスク上のスペースのちょうど行。 そして、あなたはそこだと保証することはできません それの後に空き領域があることを行って。 あなたは配列を初期化できた 3のその後多分あなた 5の別の配列を初期化する 後で、それはその直後だ。 だから、過去のスポットに行くした場合 その最初の配列では3つ あなたが書くことになる 何か他のものの上。 だから、配列はただ、あなたたちのためにare-- 固定サイズとしてそれらを考える。 だから、あなたがつもりarray--を作成する このかなりビットを行う必要があります。 我々が持っているのと同じ方法でそう forループのための私たちの一般的な構造、 私たちはすてきな一般的なを持っている 私たちのアレイの構造。 これらは一種類であるため、すべての 配列内の要素は、1つのタイプのものであり、 あなたは初期化す​​る必要があります そのタイプは何ですか。 ここで見るように、私たちは持っている ちょっといいブラケットデータ型。 だから我々はint型を作成する場合 アレイは、それが整数になる。 我々は、charを作成する場合 アレイは、それは、charでしょう。 我々は、文字列を作成している場合 配列は、それが文字列であるだろう。 その後、あなたの配列の名前、 何でもあなたはそれになりたいと思います。 だから、多分それは多分テストの点数やだ それは学生だか、多分それはキャンディーだ。 あなたの名前を付けることにしたものは何でも アレイは、それはそれはなるだろう何。 その後括弧内の、あなたはよ 希望のサイズを持っている。 だから、私たちは10の学生を格納しているか、 私たちはキャンディーの15種類を格納していますか? ものではありません。 だからここに私たちの例では、 私たちは、アレイを作成している サイズ3、君たちの 右の上で右ここを参照してください。 そして、我々が最初に初期化するとき それは、すべてがゼロに設定される。 だから、それだけで考えただ の白紙状態のような。 私たちは、すべて持っている、すべてのこれらのスペースを持っている これらのボックス我々は、我々のデータを入れなかった しかし、彼らはただの空白だ 当分の間。 だから我々は、実際にしたい場合は、 これらの値に割り当てる、 私たちは右ここに示して下のようにそうする。 つまり、あなたの任意の名前を持っている アレイは、何をしたいのインデックス、次にあると。 そこでインデックスだけを指し のような、どのようなスロット我々は見ている。 そして重要なことは、気付かする 配列はゼロインデックス付けされていることである。 だから我々は、メモリ内の最初のスペースが必要な場合 私たちのアレイで、それがゼロになるだろう。 私たちは第二をしたい場合は、それは1になるでしょう。 我々は第三をしたい場合は、それが2になるでしょう。 ようになど。 これはまた、なぜ、従来、 我々はloops--のために行うとき、私は確信している あなたたちはなぜ、不思議に思っていた 我々は1対0で始まるのですか? 私たちが移行したときので、それはだ アレイを使用してに、それが正しくマッピングされます。 だから、あなたがしたい場合は、 、配列にそれを反復 へのより多くの理にかなっている 私たちので、私は、0に等しいん それが対応させていただきます知っている メモリ内の最初のスポット。 それと良い皆? 涼しい。 その後、ここで一番下にちょうどある 配列を初期化する別の方法。 あなたはまだしてい データ型と名前、 その代わりに、実際の そこにサイズを入れて、 あなただけの空の括弧を行うことができます。 その後、これらの巻き毛を持つ 一番下にあるブレース、 あなただけの入力データがその缶 あなたはカンマで区切ってください。 そして、それは自動的に意志 [OK]を、私が見る、と言う あなたは3を持っていること これらの中括弧内の事。 だから私は、私は3つを割り当てる必要があることを知っている その後、メモリのブロックとそれらを格納します。 だから、あなたが使用する可能性の最初のバージョンは、 あなたが入力するユーザーを求めている場合は、 値あなたができるように、 配列を反復処理 と入力し、それらをいくつかのint型を取得しask--。 あなたが事前に値を知っていれば、 それはより多くの理にかなっている 二番目の方法を使用します。 しかし、ほとんどの場合、あなたは知らないかもしれない 何それらの値があることを行っている。 涼しい。 他の質問? さてさて。 まあまあ1をelements--アク​​セス アレイに関する素晴らしいことの 彼らはランダムであるということです アクセス、そのあなたの意味 すべてのブロックに目を通す必要はありません。 あなたがいることがわかっている場合 欲しいブロック2に何があるか、 あなただけの私が2をブロック与える、と言うことができます。 そして、なぜこのようなことはだ インデックスはとても重要であり、 そしてそれは我々が実際にそれらにアクセスする方法です。 私たちは時前に見たように、この場合はそう 私たちは一つに、値を割り当てるた 前、私たちは名前を持っていたし、 インデックスは、我々は正しい、アクセスしたいですか? だから、同じように、それがすべてです、私たち 実際にそのデータを引き出すために行う。 私たちは、名前を持っていると私たち 私たちが望むのインデックスを持っている。 この場合には、forループので ダウンここで一番下にある、誰でも それはやっているか知っている、 それは何をプリントアウトでしょうか? ビー·マイ·エスケイプ? 正確に。 そんなわけで、それだけを反復処理だ。 私たちは歩くことができるzero--に等しい ちょうどすぐにコードを通して。 iがゼロに等しく、iが小さい この時点で3よりも、右か? だから、チェックアウトされます。 そして、我々はOK、印刷fは、言う 何でもiが温度である。 私は、ときに我々最初に右ここにゼロです 私たちはこの最初のスポットに行くので、反復処理、 そして我々は、OK、65がある、と言う 私たちはプリントアウトしたい番号。 だから、65をプリントアウトします その後新しい行を行う。 それは87を出力しますので、私は、更新されます。 再度更新し、それは30を印刷します。 みんなかっこいい? 恐ろしい。 わかりました。 だからここに1のようなものだ 私はどのようなことを言っていた あなたはを追跡することができます 誰かのスコアとその理由 あなたが最初にを使用します それを初期化する方法 代わりに、その第二の方法の。 そして、これは単なる通過します。 そして、我々は30のクラスのサイズを持っているに気づく。 そして、我々はこれを初期化している サイズ30であるintの配列。 そして、我々は、反復処理されている を通じて、私たちはしている 入力をユーザに尋ねる これらのそれぞれのスコア その後に割り当てる メモリ内の特定の場所 その配列内のどこか。 クール? それは皆に意味があるか? ビー·マイ·エスケイプ? だから、ハッシュタグは、クラスサイズを定義 30は、プリプロセッサディレクティブです、 それだけで、それが持つ意味gets-- コンパイル処理と同様に行う。 あなたはそれを考えることができます グローバル変数として。 我々はそれを行う方法です それはあなたのコードを可能にするtypically-- より簡単に変更することができる。 それでは、私たちのクラスのサイズとしましょう 突然30から15になり、 私はそれをこのように定義されていなかったら、私はだろう 私の全体のプログラムを介して行かなければならない そして30から15のすべてのインスタンスを変更します。 しかし、これで、私は1つを変更するために取得 スポット、および他のすべての変更。 あなたは今まで何をしたい場合は ハッシュは大文字で定義する どこに、いくつかを追跡している クラスのスコアの数を設定する またはあなたが番号を使用している それは次のように、使用され、 非常に長いプログラム全体で、それはだ 冒頭でそれを定義することがより良い 今までそれが変更された場合、あなたが得るように、 代わりに100の1つのスポットを変更します。 はい? 学生:それをやっ間だけ 上部にある[聞こえない]オーバー宣言する。 ALLISON BUCHHOLTZ-AU:だから efficient--に関係しています それはの範囲外の種類のだ 私たちが、このセクションでカバーすることができます。 それは、効率的に、より関係しています とどのように物事を実際 コンパイル処理中の作業。 あなたが本当に知りたい場合は それについて、私はあなたを送って幸せ それについてのリソースとのメール。 定義ハッシュすることになる傾向がある 物事のため​​に好ましい。 そして、あなたは、より多くのあなたのコードとして 種類のニュアンスを学ぶ あなたが使用する必要があるときの ハッシュに対してグローバルに定義します。 しかし、当分の間、 あなたが本当に持っていない それを心配することです 短い答えこと。 それと良い皆? そしてまた、あなたがしたい場合 ハッシュを使用するように定義し、 それが気づくことは本当に重要です その名前は、すべて大文字にする必要があります。 私達はちょうどやっていない クラスのサイズは劇的である。 これは、実際にすべて大文字にする必要があります。 涼しい。 そこに他の何か? 我々は良いしている? ラブリー。 ようこそ。 [OK]を、ので、私は君たちが見てみたい この時、あなたがバグを見つけることができるかどうかを確認します。 私はあなたにヒントを与えるでしょう。 それは、そのforループのどこかにありま​​す。 ビー·マイ·エスケイプ? 学生:2に等しい未満でなければならない。 アリソン:だからそれは以下かもしれない 2に等しいか、またはそれは3未満とすることができる。 そして、そのための理由は何ですか? STUDENT:[聞こえない]、0、1、2。 アリソン:その通り。 サイズnの配列内だから、私たち 唯一のインデックスnのマイナス1を持っている。 涼しい。 そして、我々は本当にクレイジー取得することができます および多次元配列を取得します。 私は私にそれを取った問題の一つ 今年は多次元配列を必要とし、 そして私はそれらのいずれかが必要になる場合がありますと思います それが今年は、とても快適である。 今、その周りにあなたの頭をラップ。 それは悩ませ戻ってくる あなたが、クールな方法で。 だから、本当にただ考えることができます 多次元配列の 配列の配列として。 だから、一種のこのトップと考えることができます メモリの最初のチャンクとして行。 そしてこの1つはある メモリの第2のチャンク そして最後の行です メモリの第三のチャンク。 その中で、アレイがあります。 しかし、もちろん、それは簡単です このように描写します。 だから、それを同じように初期化する。 これは文字です 3×3のボード。 だから、3つの行を持っている 3列。 私たちはこのようにそれを表現している。 そして、あなたはそれにアクセスします 同じように、行ごとに列。 それで1,1我々がここで見るように。 我々は、ゼロ割り当てるそこまでゼロ。 2,0と0,2。 だから、あなただけの場合は、them--にアクセスします 誰もが、線形代数を行うの あなたは内の要素にアクセスするのと同じ方法 MATRICE、それはここでは同じ考えです。 だから、戻って数学にそれを関連付けることができます。 あなたも心配する必要はありません 今、この権利についてはあまり。 これは、露出を持って良いことだ、 あなたがそれを行うことができることを知っている。 あなたは、いくつかを作成することができます あなたができるnumber--クレイジー クレイジー配列を作成している すべての私が言うつもりです。 [聞こえない] それは、少しクレイジーを取得 それは本当にクールだ。 恐ろしい。 その後、私たちはここでの例を持っている。 これは、文字列の長さを算出する。 だから、どのように多くの人々がいることを知っていた あなたが使っている文字列 文字だけの配列がありますか? うん、[OK]をクリックします。 だから、あなたたちは、あなたが持っていないと思うかもしれ 使用済みのアレイが、どの時間前 あなたは内のgetStringを使用 CSViewライブラリ、あなたがしている 実際にちょうど求める 文字の配列。 そして、我々はすべての世話をしている あなたのためのバックエンドのその。 しかし、あなたが使用してきた あなたが開始してからの配列。 あなたはまだそれを知らなかった。 そして、あなたは文字配列を持っているときはいつでも または文字列を格納だ配列、 最後のものは常に何です ヌルターミネータと呼ばれるもの ここでこの権利はある。 そして、それはの端にあり あなたが保存しているすべての単語。 だから我々は把握したい場合 文字列の長さは、我々が言うことができ、 さて、あなたが知っている、 そのブロックの内容 私たちのヌルターミネータに等しくない。 それはいくつかが存在することを意味 文字は、私たちが実際にその それは単語の一部だ気。 あなたの長さを増やす。 そして、我々は実際に取得するとき 単語の終わりは、それが終了するよ それが私たちのために私達の長さを返すでしょう。 ビー·マイ·エスケイプ? 学生:スペースしていますか ヌルターミネータとしてカウント? アリソン:だからスペースがある NOT NULLターミネータ。 ですから、multiple--スペースを持っている場合 実際に特定のASCII値です。 学生:何が 感嘆等しい再び? アリソン:だから、これはあなたが何を参照してくださいです。 あなたは今までの営業時間内に私を聞く場合は、 私はいつもそれを呼び出す、のような、bangが等しい。 だから、ビッグバンではありません。 だから、これはイコールではありません。 だから、あなたがしようとしている場合は 何かが偽だかどうかを確認し、 あなたはいつも、ビッグバン何をやる知っている 変数があり、それは偽の場合、 それがtrueと評価され、あなた それとクールなものを行うことができます。 その上もっと後で。 涼しい。 すべてそこに良い? 恐ろしい。 だから今それがためにあなたの男」の時間です 仕事、私が話をしてきたからです。 だから私は、あなただけの配列を作成したい 整数と一、二、三、 し、それらをプリントアウトしてきた。 あなたは、のように、行う必要はありません メイン、何とか、何とか、何とか、何でも。 私はちょうどあなたが初期化したい その後アレイおよび作成 それらかゆうパック印刷するforループ またはwhileループ、あなた次第。 私はちょうどあなたにカップルをあげる その上で動作する分。 私は私の声を休ませるつもりです。 ご質問があれば、私は幸せです 周りに来て、あなたたちに話をする。 お互いに話をして自由に感じる。 より多くのキャンディーを入手してください。 実際に、私はちょうどよ お菓子と歩き回る。 それはどのようにですか? あなたがいずれかをしたいですか? この部屋の誰がお菓子をしたいですか? また、二つ以上の、男を取ることができます。 必要に応じて一握りを取る。 月も同様。 皆良い? [OK]をクリックします。 また、私は作成するつもりです 匿名のGoogleフォーム、 そしてあなたたちはただ提出することができます すべてのセクションの後のフィードバック あなたがしたい何かがあるかどう あなたがDONEたい時や何か改善する。 私は少しあまりにも元気いっぱいだ場合 あなたのために、私はそれをトーンダウンすることができます。 私はそれを作成し、それを受けています その後、あなたのすべてに出。 わかりました。 それでは、小さな始めましょう。 どのように我々は我々の配列を初期化でしょうか? 私たちの配列の型は何ですか? int型、右? [OK]を、ので、あなたは何をしたいです あなたの配列を呼び出すには? int配列、涼しい。 すべての権利、私たちはint型のint配列を持っている 等しく、我々はそれの後に何を持っていますか? 学生:[聞こえない]カッコ。 アリソン:中かっこ。 その後ブレースの内側? 一コンマ2コンマ3。 涼しい。 だから、すべての権利です。 だから今我々は、forループを持っている。 私たちの最初の部分で非常に forループ、我々は何がありますか? 学生:iが0に等しい? アリソン:だから私は0に等しいint型、 その後私たちの条件は何ですか? 私は何よりも小さくなるように起こっているのですか? 3未満、および どのように私たちは私たちを更新すればよいですか? 私プラスプラス、1でそれを更新する。 そして、我々は持っているつもり 整数のいくつかのprintf、 その最後のものです 実際の部品 私たちは、印刷すべきかを言うつもり? それはの名前になります int配列である配列、右? とint配列の括弧内に何ですか? I。 [?だから私は?]と呼ばれる私の たとえば、しかしそこに行く。 悪くはない。 みんな良い? 涼しい。 だから我々は配列で完了です。 おめでとう。 あなたは、反復するために管理され すべてを通してイエスthe--? 学生:[聞こえない] アリソン:はい。 学生:私は疑問を持っている。 あなたは括弧をインデントすることになっている? アリソン:ブレースは並ぶ必要がありますので、 forループ、その後、すべてのものを持つ 内側に中括弧をインデントする必要があります。 学生:OK、はず forループをインデントする? アリソン:forループしません この時点でインデントされる必要がある。 あなたがメインであった場合は、私たちの場合 実際に、ここでの主な機能を持っていた それは主からインデントされます。 しかしこの場合、それは大丈夫です。 はい、質問。 学生:あなたが持っている必要がありますか 例の後の括弧? アリソン:はい、あなたはなら そのように初期化する。 だから、これが第二である、覚えている どこで配列を初期化する方法 我々はブレースを持っているし、私達の実際 内のカンマで区切られたデータ。 学生:私は思っていた その例として、ブラケット。 アリソン:いいえ、彼らは括弧だ。 彼らは括弧だ。 あなたはそれを初期化している場合 その第二の方法は、それは括弧だ。 私たちが言うとしたら、int型example--場合 我々だけで、int型のための空白の配列が欲しかった それはint型の例ブラケット3になります。 ブラケットはサイズを表しています。 あなたがブレースを持っている場合には、 それは、実際のデータの あなたはこの方法でそれに入れている。 私たちは本当に速いバックスクロールすることができます。 したがって、このいずれかで、これはちょうど私たちです 初期配列、初期化。 そしてここで、私たちは個々にある 彼らにスポットを割り当て、 これはインデックスを表し、私たち 我々はブラケットを持っている理由である配列。 あなたが気づくしかし、もしここで、我々はしました サイズなしで私たちのブラケットを左に、 そして我々はそれを初期化する 括弧付きオールインワン実際のデータ。 学生:だから、なぜ私たちが持っていない この例では、括弧? アリソン:だから、どの部分で? 学生:私たちではないだろう たとえば、int型の例ブラケット 等しい括弧[聞こえない] 例えば括弧。 アリソン:ああ、申し訳ありません。 あなたは正しい。 私たちはそこにブラケットを持っています。 申し訳ありませんがみんな、私の悪い。 はい、あなたは持っている必要があります 例の後の括弧。 あなたは絶対に正しいです。 学生:[聞こえない]にそれをやっていない。 アリソン:いいえ、あなたは持っている必要があります ブラケット、それ以外の場合はだから 配列を宣言するつもりはない。 学生:[聞こえない]。 そのことについて申し訳ありません。 アリソン:申し訳ありませんが、あなたが必要とする 例の後の括弧。 タイプミス。 グッドキャッチ、あなたのために金の星。 また、あなたが質問をしている場合、もし 君たちはちょうど私にあなたの名前を言うだろう、 私はそれをみたい。 私のことができるようにしてみたい すべてのあなたの名前を知っている。 私は寒さにつもりはない 私は実際に、あなたを呼び出す ちょうどあなたの名前を知りたいです。 だから、実際に私にあなたの名前を教えてください。 LEAH:リア。 アリソン:リア。 [OK]を、そうfunctions--私は簡単に知っている 彼らは講義中にこのについて話しました。 だから、関数はだけの種類のものである これらの小さな一口サイズのもののような あなたが入力を渡し、何か 魔法が起こる、あなたは出力を得る。 涼しい。 だから、実際に使用 これらの多くはすでに。 int型を取得し、文字列、印刷Fを取得する。 これらは、すべての関数である あなただけのそれらを呼び出す場合には、 魔法の事の多くがあります バックグラウンドで起こっている あなたは必ずしも表示されていないこと、 そしてあなたが望むものを出す。 または少なくともあなたが得る あなたが欲しいものを願っています。 基本的な機能の点、 とCSのメインテーマの一つ、 あなたのコードを破ることです 管理しやすい部分に。 あなたが書き込みを開始するとき これらの本当に長いプログラム、 またはスクラッチであなたが持っていたとき ゲームのためのこの壮大なアイデア、 それを破壊できるようにする必要が [OK]を、のような、まで、どのように始めるのですか? 私は必要な少し作品は何ですか? ああ、私は尋ねる必要 何かのためのユーザー。 今、私は何かを印刷する必要があります。 ああ、私は、この値を計算する必要があります。 そして、あなたのを分割する方法を学ぶ コー​​ドと大きな問題あなた これらの小片がある と関数を作成する 実際の一つです CSの大きな礎石。 だから、同じように機能と考えることができます ブラックボックスのような、魔法のようなブラックボックス、 あなたがに物を置くこと そしてあなたは、いくつかの出力を得る。 そしてプログラムの残りの部分 必ずしも知る必要はありません 何がそのブラックボックスの中で起こっている。 それが気にすべては何ですか に行くと何が出てくる。 涼しい。 では、なぜ機能? 私はあなたがいるときに、言ったようにOrganization-- 非常に大規模なコードベースを扱う、 あなたはあなたのコードがされる整理方法 あなたは関数を使用する場合は、はるかに簡単。 あなたができるようになりますので、 [OK]を、のような、とすることで、これを この関数が何をするかで、 ここで別の1が何をするかだ。 そして、あなたは簡単に見ることができます どのようにすべてが一緒に収まる。 だから、すべてにそれを解体 これらの管理可能サブパート。 だから私は君たちと確信しているsimplification-- 私が言ったように、すべてのスクラッチで、これを見た。 あなたは、この壮大なアイデアを持っている、と あなたはこのすべての作業を行う方法、のようにしている? しかし、あなたはそれに近づいている場合 断片的な、あなたはOK、と言う、 どのように私は1つのスプライトを作るのですか 画面上フロート? それは少し簡単です。 関数なりのとても良い使用 あなたのコード読みやすく。 それはより簡単にデバッグすることができますどのよう あなたは、あなたの後に問題がセットに取得 あなたが本当にするつもりだ 行うことができるようにしたい。 彼らはまた、より簡単にしている 設計および実装する。 あなたは小さなアップコーディングすることができます 比較的早く機能 それはしようとして対動作することを確認 この全体の長いプログラムを作成するには その後種類の貫通行くと ではない何の作業だと何を参照してください。 その後再利用性。 だから、機能だけが必要 一度書き込まれる、 そして、あなたはそれらを使用することができます できるだけ多くの回数。 だから、環境に優しい意味では、同じように、だ。 あなたはのようなものを持っていた場合 プリントfは、あなたを 行く魔法を書かなければならなかった 背後に毎回fを印刷する あなたは、何かを印刷したかった それのかなりうんざりしているだろう 年末まで。 あなたですものの一つ 後で、CSクラスで学ぶ、 または最高の一つ アドバイスの作品私が手 あなたがコピー&ペーストされた場合、ある コー​​ドは、それはおそらく関数であること。 あなたが正確に同じを持っている場合 すべてのコードを通じて行、 あなたがそれらを因数分解した場合、 あなたのコードはおそらくだろう 5倍短い、のように、あること 読みはるかに簡単である。 その代わりのトラブルシューティングをしようとしている どこで物事すべてのこれらの異なる場所 うまくいかないかもしれない、あなたは一つの機能を持っている あなたはトラブルシューティングを取得すること。 そして私は、このたくさんのを約束 、今や一種の抽象的に見えるかもしれません しかし、あなたは後で入るように 以降問題セット、 それは多くの方が理にかなっているだろう 本当に家を駆動すること。 ご質問はありますか 関数についてのこれまでのところ? なぜ我々はそれらを使用している? 私たちはもらっていない知っている まだ核心に。 だから、同じようにfunction--を定義する アレイは、我々はこのof--いくつかの並べ替えを必要とする ただ、一般的な出力である。 だから、これはだ機能です 単にいくつかの入力をキューブに行く。 そして次のページで、実際には、我々は持っている ここにすべてのこれらの素晴らしいささいなこと。 だから、誰もが読むことができます 好奇心、それ? 私は紫と黒を知っている 少し難しいかもしれません。 しかし、大きなものはそう最初にknow--する 右ここ1は、我々の戻り値の型である。 だから、これは出力について話している この関数の場合には、この場合には、 私たちは何をしている、いくつかの数に入れ 取得は、その数の三乗である。 だから、この場合はint型でなければなりません。 多分それは、二重またはだろう 何か他のもの、後が、この場合、 それはint型です。 Cを使用すると、常に戻り値の型を必要としています。 それはint型になるでしょう。 それはフロートになるでしょう。 それは二重になるでしょう。 しかし、あなたは何を指定する必要が この関数は返すために起こっている。 それ以外の場合は、大声で叫ぶん あなたは、それがコンパイルされません。 あなたは悲しいだろう、と私は悲しいことでしょう。 そして、それはちょうど良いではありません。 [OK]をクリックします。 そして、我々は我々の関数名を持っている。 そして、あなたがCで、ここで見ることができるように この非常に一貫性のパラダイムがあります。 あなたのタイプは何ですか、名前何、 その後最後にいくつかの他の事。 だから我々は、我々の戻り値の型を持っている 我々の関数名と、その後 私たちはと私たちのヘッダを持っている 私たちのパラメータリスト。 パラメータリストがあるので、何がある この関数はで取るつもり? パラメータリストは、単純である 同義語のために、私たちの入力は何ですか? そして、私たちと同じ方法で、 私たちの関数を定義する必要があります それにリターンを与える タイプは、当社の各入力 それに関連付けられたタイプを有する必要がある。 だから我々は知っている私達の機能 実際に操作することができます。 したがって、この場合には、我々はいくつかの整数の入力を有している。 だから、もう一度、それはタイプだろう そして、あなたはそれを呼び出しているのか。 そして、あなたが見るように ここで、私たちは私たちの体を持っている。 だから我々は、そのいくつかのINT出力を持っている ちょうど私たちの入力回数そのものです ちょうどそれをキューブ回自体、。 そして、我々はその出力を返します。 ここで見るように、私たちは持っている 倍のint int型回int型、 ので、int型を返す そこに宣言されています。 だから、すべてが凝集される。 すべてが幸せです。 あなたの関数が実行されます。 そして、これは単に一般的なものです。 だから、常に戻り値の型を持っている、 名前、そして、あなたのパラメータリスト。 あなたの中の各事 パラメータリスト、または入力、 それに関連付けられたタイプを有する必要がある。 そして、あなたはあなたを持っている ここでは何でもしたボディ あなたの入力にやってみたい。 その後明らかにあなた 何かを返したい。 時には関数は単に返されます。 彼らは実際に返されません あなたが使用するための何か。 しかし、あなたはいくつかの方法で返すことがあります。 そして、あなたが作っているとき 独自の関数、 我々はその少し深く入ることができる。 必要に応じて個人的に、たくさんあり​​ます あなたがそこに何ができるの異なるものの。 みんな良い? あなたは私が欲しいこのリストに何も あなたが理解していなかったことを、オーバー行く? 誰もがそこに良いことだ? 涼しい。 恐ろしい。 [OK]を、私たちは入れている このすべて一緒になりました。 だから我々はそのように、いくつかのint型キューブ入力を持っている これは、ここで完全なプログラムです。 今まで、私はしました あなたを与えての一種 みんなスニペットかもしれない プログラム内で行くことに。 私達はちょうどの機能を見てきました。 しかし、ここでプログラム全体です。 だから、どのように多くのあなたのは覚えている 講義から単語のプロトタイプ? 涼しい。 我々は1を持っている。 あなたの名前は何ですか? STEPH:ステフ。 アリソン:ステフ? [OK]を、素晴らしい。 だから、あなたはプロトタイプが何であるかを覚えていますか? 学生:あなたが言う[聞こえない] あなたが実際にそれに対処する前に。 アリソン:あなたはなぜ覚えていますか? 学生:いいえ。 アリソン:[OK]をクリックします。 ゴールドスター。 我々が持っているそうです、プロトタイプ あらかじめ、そうでないので、 私たちのコンパイラは、私たちに大声で叫ぶしようとしている。 これは、[OK]を、言おうとしています このキューブ機能は何ですか? 同様に、あなたは文字通り持っている 私にこのことについては何も言わなかった。 ときにそれはようなものだ 教室に歩いて、 そして誰かが、ようなものだ 今日はクイズにあります。 そして、あなたはあなた、似ている このことについて私に言ったことはありません。 私は、私たちに満足していないよ。 プロトタイプは、基本的に似ている あなたのシラバスは、見て言って。 ヘッズアップ。 この日のクイズがあるように起こっている。 あなたはそれを取得するときに陥るしないでください。 あなたは細かいことになるだろう。 だから、すべてのプロトタイプは伝えているん 主に、私はこの関数を使用するつもりです。 私は後でそれを定義してい約束します。 私に陥るしないでください。 ただコンパイルして私はあなたを教えて何をすべきか。 だから我々はそこに試作品を持っている ちょうど私たちのコンパイラを幸せにする。 そして、それは基本的にはその約束だ 後で、この関数を定義している そしてあなただけの呼び出しされていないこと このランダムなもの、それそれ あなたがしているか分かっていない やっているつもり。 したがって、この場合には、ここでは主に有している。 我々はいくつかの整数xを初期化します。 すなわち、2つのです。 我々は、xが何であるかをプリントアウトするつもりだ。 私たちは、キューブxになるだろう。 ご覧のように、我々は持っている私たちの 関数の宣言 ダウンここでその私たち 以前について話しました。 我々場合は、その後Xをキューブ、およびよ 実際には、キューブの機能を覚え 整数を返す 保存されている私達、 再びxの私たちが印刷できるように 今は8、またはキューブxの外。 それは皆に意味があるか? 我々は良いしている? わかりました。 恐ろしい。 わかりました。 どのように多くの皆さんの このため、これを覚えている あなただけの基本的 スタックとヒープ、 のちょうど可視化 どのようにメモリがここに格納されます。 だから我々はただ作りたい あなたが理解していることを確認してください どのようにこれらがメモリに表されている。 あなたのようなクラスを取る場合 CS61とか後で、 あなたがここまで詳細を学ぶために得る 深さ、そしてそれは本当にクールだ。 私は非常にそれをお勧めします。 しかし、今のところ、私があげる あなた概観 そうあなたがする必要はありません 核心を知っている。 だからテキストセグメントトップは、 実際の0と1が含まれている、 そのためのバイナリ。 これは、格納するために使用される グローバル変数は、あなたがいずれかを持っている場合。 あなたが下に移動したように、私たち あなたがここに見るように、持っている、 初期化されたデータ、初期化されていない データ、およびヒープ。 だから我々は本当に話をしない 今、ヒープ約。 私たちは、後でそれを取得します。 今のところ、私はちょうどに行くよ 私の手を振るなどであっても、 あなたは今このことについて知っている必要はありません。 しかし、我々は少しお話します スタックについて少し。 私たちは、ズームを持ってwhere--のでスタックがある。 これは実際にどのようなプログラムです 私達はちょうどメモリで発生を見た。 だから、何が起こるか、すべてのは、ある 時間は、我々は、関数を呼び出す 我々はスタックと呼ば​​れるものを手に入れる これらのいずれかであるフレーム、。 ですので、主なパラメータ。 これらのようなものがあります 私たちは主に通過する。 そこで、彼らは一番下にある右ここにいる、 それは私たちが呼んで最初のものだからです。 そして、我々は、メインのに着く 地元の人々、そして我々はそれを言うとき、 我々は、ローカル変数を意味 それは、メイン内に格納されている。 だからここに地元の人々は、のように、だろう xは、この場合は2に等しい。 そのため、メインに局在います。 誰もがスコープを覚えていますか、 講義でその上で行く? [OK]をクリックします。 だから、単に変数という メイン内で初期化されます。 我々は、メイン[を持っている理由だからですか?ボーカル。 ?] その後、メインの中、私たちはキューブを呼び出します。 右? だから我々は別のフレームを取得する キューブのパラメータを持つ。 したがって、この場合には、キューブの パラメータは、今ある 私たちは、渡されたのx、 私たちは、渡された2。 され、その後、キューブの地元の人々、 ここで実際のキュービングが起こる。 そしてそれは返します。 キューブは、実際に同じようにだから何が起こるかである それが行うことになっているのか、それが返されます。 それが返す、これはフレームの葉、 その主まで戻った。 その後メイン内で、我々 実際にそれを印刷することができます。 だから、あなたが何かを返すしているとき、 ときに関数が戻る、 それはにそれらの値に渡すようなものだ その下のフレームと、次に残す。 物事には順序で実行する必要があります。 そして、あなたはより大きなプログラムに取得するとき、 我々はクーラー、より複雑にすることができます ダイアグラム。 しかし、今のところ、これは ただ一般的な概要 だから、のようなものを持っている 何の理解 あなたが関数を呼び出しているときに何が起こる そしてそれは実際にメモリにどのように見えるか。 クール? みんな良い? 恐ろしい。 だから、これはものである 物事を交換しようとしている。 私たちはここで見るように、我々は持っている 私たちの関数プロトタイプ 私たちのコンパイラは、私たちに大声で叫ぶしないように。 私たちは、いくつかの主要なを持っている、と私たち xとyを切り替えたい。 彼らは、このデモを行っていない まだ講義で、彼らが持っている? 彼らは持っていない? [OK]をクリックします。 だから我々は行くつもりです この非常に簡単にオーバー。 あなたは、この例よりに買ってあげる 深さに、私は今週、と思います。 その後来週我々は本​​当に缶 これが機能しない理由に飛び込む。 だから我々はこの間隙を持っている 機能here--スワップ。 ちょうどことを意味しますので、空隙 何も返されません。 そして、我々は、スワップのint aとint型bを持っている。 そして、我々はいくつかの一時を持っている だ変数。 A bに代入し、その後されます Bは、一時に割り当てられます その結果、aとbの 値が今に切り替えられる。 しかし、プロットツイスト、これは動作しません。 その一部は実際にあります 事実に関係すること そして、ここでBは渡さもの ここで、実際にはxとyのコピーである。 だから、関数が実際に返すとき、 それはコピーをスイッチではなく、 実際のxとyの。 だから、それについて考えるための1つの方法である that--は、これらのスワップのふり。 OK? そこで主に、我々は、初期化され、xおよびyを有する。 しかし、我々は実際に行くとき スワップとこれらのフレームに、 我々は値をオーバー渡している そこに、彼らは初期化している。 そして、彼らは今まで右ここに住んでいます。 だから、bはここに住んでいます。 そして、彼らがスワップう。 私たちが戻ったときにしかし、私たちにはありません aとbとの何でもする。 A aとbは、我々の機能を残す。 だから、xとyは同じまま。 あなたはそれを修正する方法に多くを得るだろうと 私たちは実際に、後でその対処方法について説明します。 しかし、それはただ一つのことだ 一種の心に留めておく。 将来のためにそれを使用してください。 それはしなかった場合は、心配しないでください 世界のすべての感覚。 彼らは最大のものであるコピーです。 あなたが何かを取るつもりなら 離れてそれから、あなたはコピーで渡される。 だから、原稿が同じまま。 みんな良い? 涼しい。 だから、コマンドライン引数。 私はあなたたちのすべての初めに確信している int型メインボイド、のような偉大なものを持っていた。 そして、あなたは、OKをクールに似ている。 私は本当に気にしない。 これは私が書かなければならないものばかりである。 しかし、あなたの新しいプログラムでは、 特にこのPSETで、 そしてなぜ地面にチョークはありますか? あなたの次のpsetを使用すると、している これを見てするつもり。 メインint型、int型の引数cは、 文字列アークV、かっこ。 だから、私たちからわずか 何を、今日学んだ 私たちは二番目のパラメータと思います または第2の要素はここですか? それは配列です。 配列のどのタイプ? 文字列配列、はい。 涼しい。 だから、あなたがつもり方法です 今これらを宣言することができる。 誰もが覚えているん これらは何のために立っている? いいえ? うーん? 学生:引数cを。 アリソン:だから引数cがカウンタを保持しています。 それはint型です。 それは右、数ですか? だから、その数はである何を思いますか? うん。 そこで引数cは列の数である それは、コマンドラインを構成している。 だから我々は実際にdo--した場合、 例は、この後にある、 そう私は先に自分の取得することはできません。 それは、その文字列の数です ちょうどあなたのコマンドラインを構成している。 あなたが行うときに、のような、マリオスラッシュドット、 それは、それを構成する1文字列です。 この作品では、実際にはなるだろう コマンドラインに物事を供給し、 私は君たち誰確信しているように スペックソーを読んだことがある。 だから、そのような場合は、多分あなたはよ 2または3つの引数を持っている。 それは、使用する便利なものになるだろう。 その後、V argは、私たちが言ったように、 単なる文字列配列です。 実際に何が格納されるように コマンドラインに入力できます。 だから我々は、これらを持っている。 あなたは、いくつかのドットスラッシュを持っている INFILE OUTFILEをコピーします。 それで、もし引数cは列の数である 我々は、コマンドに渡していることを 行、この場合、当社のarg cは何ですか? 三つ。 正確に。 だからゼロの引数vは何ですか? だから我々は保存されてきた最初の事は何ですか? ドットは正確に、コピーをスラッシュ。 その後、第2は、infileになります。 第三は、OUTFILEだろう。 だから何のarg V 3はどうですか? それはだから、それは、nullになります 私たちの配列の末尾、右? 涼しい。 その後何六約1? それはトリックの質問のようなものだ。 ISH。 我々はそれが何であるかを知っていますか? それは未定義です。 我々はそれが何ができるかわかりません。 それは右である何だ メモリ内の配列の後に、 そして我々はそれが何であるか見当もつかない。 そしてそれはそれらのに触れることは危険だ 物事、あなたが知っているすべてのためにあるため、 それはあなたことをメモリーの一部だ アクセスまたはnullであってはならない。 そして、それはクレイジーなことを行うことができます。 これは、オーバーインデックス作成と呼ばれています あなたのお使いのアレイに結合した。 あなたの境界の外側に行ってはいけない 配列、または悪い事が起こる可能性があります。 あなたは、戻って来て、法律、などの 物理学の破壊された か何か。 涼しい。 それは皆に意味があるか? あまりにも悪くはない。 だから今、みんなの 好きな部分、PSETのレビュー。 イェーイ! [OK]をクリックします。 あなたのそれらのために、いったい誰 PSET仕様を読んでいない、 あなたが実際にいくつかをやっている 暗号とクールなもの。 あなたはシーザーを作成するつもりだ 暗号と暗号Vigenere。 あなたは間違いなくお読みください それらがどのように動作するかを確認する仕様。 そして、あなたはどの程度問題がある場合 それは実際に何をやるべき、 私に話を来てください、 私にメール、またはテキスト私。 私の周りだ。 だから、3つの主がある ここで物事我々その だけの種類about--話をしたい 講義の延長。 あなたが知らないかもしれないもの 役に立つヒントやツール、約。 だから我々はやろうとしている アスキーのクイックレビュー、 そのため、スーパーになるだろう Vigenereの暗号のために重要。 我々は、変換するつもりだ コマンドライン入力、どの シーザー暗号のために非常に参考になります。 その後モジュロ。 涼しい。 だから、ASCIIは数字に文字をマップします。 これは素晴らしいチャートである。 あなたはこれを持っている必要があります どこかにブックマークされた。 あなたはそれをお勧めします あなたの最初の中期。 私は誰もがこれを持ってかなり確信している 彼らの中期シート上のグラフ。 だから、それを学ぶ。 それを愛する。 手元に保管してください。 それは便利でしょう。 そしてそれはすべてがエンコーディングです それは、数字、アルファベットにマップ そして他の文字に 当社のコンピュータのための数字。 理由はもちろん、中 最後、私たちはすべてのものを格納 変換された取得する予定です 0と1にダウンし、 私たちは表現するために、いくつかの方法が必要です 我々はすべてしているテキストや文字 数のいくつかの並べ替えとして見慣れて。 私たちはここに見るように、私たちは持っているので、 右がある大文字のA、。 それは65だ。 と小文字のAは97です。 だからかゆうパックで把握することができます 私は以前に述べたように、 あなたは、複数の配列を持っていた場合 それらの文字列は、どのような各 ヌルターミネータを持っています。 それはスペースになります。 スペースは、独自のspecial--を持って それはここにあり、私は忘れている。 ああ。 32はスペースです。 だから、すべてはそれにマッピングされます。 だから我々は、ASCII数学を持っている。 Vigenere年代のプロtip--、 あなたが誘惑されるかもしれません 整数にあなたの番号を変換するには、 それは実際にはより良いプラクティスです 使用することができるように このような文字 あなたが実際にそれらを操作しているとき。 あなたが番号を使用したいのであれば、することができます。 しかし、より良い方法、またはその方法 私たちはあなたにそれを行うには男が好きな傾向にあり、 あなたがしているこの方法です 実際に文字を差し引く。 だから私はあなたたちがしたい 種類のこれらを把握。 なぜあなたは他のすべてのものを試してみませんか? だから、最初のいずれかを実行します。 三番目、5番目の1。 私たちは話していることを確認したいので、 すべてについて、我々はについて話をする必要があります。 私はちょうど、のいずれかを言うつもりです 重要なことは、いや待てto-- 君たちはこの1つを見ていない。 [OK]をので、最初の三つを行う。 のはそれをやってみましょう。 我々はモジュロについて話をする必要があるため。 私は知っている。 数学は難しいです。 あなたは電卓を使用することができます。 それはOKです。 またはので、アスキーテーブルをプルアップ あなたはおそらくそれをするつもりだ。 涼しい。 だから私はすぐに歩いていく これらを通して皆さん。 だから、人々は、ASCIIテーブルをプルアップしている? 私たちの数値とは何ですか 小文字のAの番号? 学生:セブン。 ALLISON:Aはそう小文字 97と大文字のAは65です。 だから、97のマイナス65? 読者:32? アリソン:62、ええ。 したがって、この場合には、どのような それはプリントアウトでしょうか? その最初のもの? 我々は、パーセントdを持っている場合、 それは何を示しているでしょうか? 学生:ナンバー。 アリソン:私たちは、印刷している 実際の数が不足しています。 だから我々は実際に行っている ここに32を印刷する。 そして、これはパーセントのCだった場合には、 32は私たちにスペースを与えるだろう。 だから、という理解 文字を印刷することができ 数字などとの両方 実際の文字 本当に重要であり、支払う 実際のタイプに注目 私たちはここでやっていること。 涼しい。 これらの他のすべての1のためにそのように、 私たちは、印刷されようとしている? 学生:文字。 アリソン:文字。 涼しい。 だからみんな、あなたを知りたい場合は、 自分でこれらを回避することができます。 あなたは問題がある場合、私にメール。 しかし、もう一つは意志 小文字のbをプリントアウト。 3つ目が出力されます 大文字B.第1印刷されます 大文字のC OUT、および 最後のものは小文字のAになります 私たちが実際に行っているし、最後のひとつ選ぶ 何そのクレイジーパーセントに入るため カップルスライドでさえ手段に署名する。 だから、あなた自身の上のものを試してみてください。 あなたは問題がある場合は、 私に話を来てください。 あなたはアダムスのDホールで、通常であれば、 あなたはおそらく私を周りに見つけることができます。 だから、ATOI。 どのように多くのあなたのは、これを見てきました 機能はまったくそれを聞いたか? 誰ですか? 涼しい。 だから、実際に立って何を のためには整数へのASCIIです。 だから、何ができるかシーザーと、ある、 仕様を読んでいる人のために、 あなたは、ドットスラッシュシーザーをやろうとしている あなたがプログラムを書くした後、 そして、あなたはするつもりだ 入力あなたいくつかの数 とあなたの秘密のメッセージをエンコードしたい。 しかし、私たちは、すべてを覚えていれば私たちの 入力は、文字列として格納されます。 右? 私たちは、argのVの配列を持っている それは、すべてのタイプの文字列です。 だから、あなただけにしようとした場合 それは、そのいずれかを引くであろう その1または何番号と思う あなたが実際に文字で使用される。 だから、取得するつもりだ いくつかのクレイジーな結果。 だから、あなたが実際にしたい場合は、 整数にこれを回す あなたが操作するために使用できること あなたの言葉やメッセージ、 あなたはATOIを使うことになるでしょう。 税引後営業利益はちょうど変換し、 int型への文字列。 だから我々は呼んでいる場合我々は、12の文字列を持っている場合 12にはatoi、または任意のその入力され、 それは実際に返されます 整数あなたに。 ていない文字または文字列12。 これ、あなたが起動したとき 数字にそれを追加するには、 非常に異なるものになります、 文字列12があるため いくつかのクレイジーな数の アスキーが、整数12 あなたが望むものである、実際には12である。 だから、atoi関数を使用して確認したい。 あなたはこれをするつもりだ シーザーで、あなたのため によって供給されたint型を必要とする コマンドラインでユーザー。 しかし、彼らはコマンドでそれを置くとき ラインは、それが文字列として保存されている で開始します。 それは理にかなっていますか? あなたは必ずしもない Vigenereのためにこれを必要とする。 Vigenereで、私が言ったように 前に、試してみて、使用する必要があります もっとのように見えるのASCII数学 この、あなたが実際にどこ 私たちはあなたに与えられている文字を使用して。 涼しい。 誰もそこに良い? 恐ろしい。 だから、モジュロ。 それで、あなたは何を与えられている場合 シーザーは、この膨大な数? あなたはこのアイデアを持っている あなたは、Zにいる、あなたはなら ナンバー2が与えられ、 それはあなたを意味need-- Zは、第二になります 自体の後の文字は、右? だから、何とか周りにラップする必要がある モジュロはそれを行うための方法です。 だから、それがないすべてである あなたの残りの部分を提供します の分割 第二による最初の番号です。 そして、我々はいくつかの例にしてい もう少し具体的なことを確認してください。 しかし、基本的には、モジュロときを使用 何かがラップアラウンドしたい。 だから、あなただけしたい場合 数字8を通じて1、 あなたは他のどの上モジュロを使用することができます 番号、常に意志 ゼロから8までの数を返します。 もしそうであれば、いくつかのexamples-- 我々は、55モジュロ10を持っている それはちょうどあなたの残りの部分を提供します 55は5となる10で割った。 その後3モジュロ5、 誰もがそれがどうなるかね? 三つ。 だから、あなたが前に、より少ない数を持っている場合 モジュロは、それが均等で行くことができない。 それはゼロです。 だから、それだけで数自身を返します。 だから、8モジュロ8のようになります? 学生:ゼロ。 アリソン:ゼロ。 それが均等に行くので。 図16は、15を法? 聴衆:One。 アリソン:クール。 その後、この最後のものはちょうどにある 、[OK]を、あなたは不思議に思われるかもしれませんyou--示し ここでの操作の順序は何ですか? 我々が最初に分けるのですか? 我々が最初にモジュロていますか? だから、モジュロは同じ優先順位を保持している 除算や乗算など、 とその左連想。 だから、同じようにだ。 あなたは、常に括弧を行うだろう、 その後乗算、除算、 を順にモジュロ左から右へ。 だから、標準的​​な規則。 ちょうど同じカテゴリに入れ 除算と乗算など。 したがって、この場合には、我々はだろ 1プラス2は私たちに3を与えている。 私たちは、その2を掛け、私たちは6を得る。 私たちは私たちを与える、2であることを法? 学生:0。 アリソン:0。 そして、我々は2を追加するので、私たち この最後のケースでは2を取得する。 だから、あなたは間違いになるだろうmodulo-- 組み込む方法を考えること あなたがラップしているときに、その アルファベットの周り。 あなたは、Zにいる、あなたは移動する必要がある場合 Cに到達するために3つのスペースを転送し、 その全体のコンセプトがあります ラップアラウンドの。 だから私はそれを残します 君たち把握する どのように正確にあなたがそれを使用することになるだろう。 しかし、間違いなく便利なツール あなたのpset今週。 私は本当にこれが好き。 これは私のお気に入りのpsetの一つです。 その後、あなたがそれを行った後、 あなたは友人を持っている場合、 あなたは、のような、お互いに秘密を送信することができます メッセージとそれが動作することを確認してください。 それはそれまたは何を復号化しますので。 たくさんの楽しみ。 そして、それはセクションの終わりである。 私は早期に終了しました。 私はまだ15分を持っている ので、もしあなたたち、何でもあります あなたがオーバー行きたいと さらに、私はそれを行うことが幸せになると思います。 上の他の質問 あなたのそれらのためのあなたのPSET 誰が始めたか、仕様を読んだことがある。 私たちが話した何でも 最後の1時間で約 あなたは私が欲しい15分 焼き直しの種類には、私は幸せになるだろう。 または私達はそれが終了し呼び出すことができ、そして次のことができます すべてのままにして、あなたとより多くのキャンディーを取る あなたが行くように。 しかし、どのような余韻がある場合 の質問は、私に教えてください。 あなたも出てくることができますし、 その後、私に話しています。 私はかまないことを約束。 他には? 誰もが良いことだ? みんなの気持ちのように 彼らはこのPSETを扱うことができる? あなたが細かい男ことになるだろう。 営業時間は理由があります。 涼しい。 さてさて。 まあ、その場合には、感謝 みなさん来てそんなに。 私は来週お会いしたいと考えています。 もっとお菓子があるでしょう。 他のクールなものがあるかもしれません。 そして、私は取得を楽しみにしています 今年あなたのすべてを知っている。