1 00:00:00,000 --> 00:00:05,530 2 00:00:05,530 --> 00:00:09,790 >> 教授:だからの議題 今週、それほどではないもの。 3 00:00:09,790 --> 00:00:12,801 しかし、うまくいけば非常に、非常に有用 そして皆さん、今週に関連します。 4 00:00:12,801 --> 00:00:15,550 しかし、我々は、多分15を過ごすつもりです ちょうどすぐに話を20分 5 00:00:15,550 --> 00:00:17,370 リンクリストについて。 6 00:00:17,370 --> 00:00:19,694 リンクリストがしようとしています クイズに覆われています。 7 00:00:19,694 --> 00:00:22,610 だから、おそらくそれは非常に参考になります それが何であるかについて少し学びます。 8 00:00:22,610 --> 00:00:25,210 >> 私たちは、広大なを過ごすつもりです 今日のセクションの過半数 9 00:00:25,210 --> 00:00:27,640 クイズゼロ練習問題の上に行きます。 10 00:00:27,640 --> 00:00:30,970 そして、我々は多分20、30分を節約できます 任意の余韻の質問のための終わりに 11 00:00:30,970 --> 00:00:32,850 誰もが持っています。 12 00:00:32,850 --> 00:00:34,610 >> そして、最後に 5分、私は行きますよ 13 00:00:34,610 --> 00:00:36,467 クイズのためにスピーチをポンプを放棄します。 14 00:00:36,467 --> 00:00:38,050 君たちはすべてのことのためにここにいたいです。 15 00:00:38,050 --> 00:00:39,591 それは良い時間になるだろうから。 16 00:00:39,591 --> 00:00:42,650 17 00:00:42,650 --> 00:00:49,230 >> すべての権利なので、いくつかの リンクリストの材料。 18 00:00:49,230 --> 00:00:52,620 どのように彼らは一般的に構造化しているあります あなたは正しい、ノードと呼ばれるものがありますか? 19 00:00:52,620 --> 00:00:54,870 あなたはと呼ばれるこれらのものを持っています ノード、構造体です。 20 00:00:54,870 --> 00:00:57,360 私が作成する方法の上に行きますよ 次のスライド内のノード。 21 00:00:57,360 --> 00:01:00,680 しかし、本質的にすべてのリンク データはリストであります 22 00:01:00,680 --> 00:01:03,340 ポインタを経由してつなぎ合わせてきました。 23 00:01:03,340 --> 00:01:09,110 >> そして、私たちが持っている利点 リンクリストの上を使用するのではなく、 24 00:01:09,110 --> 00:01:11,280 おそらく、配列のように、あります その配列内の事実 25 00:01:11,280 --> 00:01:15,000 あなたは、1つの連続ブロックを必要とします すべての同じ場所でのメモリ、1 26 00:01:15,000 --> 00:01:16,870 別の後に、それを持ってできるようにします。 27 00:01:16,870 --> 00:01:20,200 リンクリストのに対し、あなたは可能性 メモリのランダムな小さなビットを持っています 28 00:01:20,200 --> 00:01:23,020 すべてのコンピュータの上 ポインタによってつなぎ合わせ。 29 00:01:23,020 --> 00:01:26,270 >> このようにします 情報にアクセスすることができます 30 00:01:26,270 --> 00:01:28,610 それは次々来ます 他の後に、他の 31 00:01:28,610 --> 00:01:32,720 だけの巨大な塊を必要とせず どこかお使いのコンピュータのメモリ。 32 00:01:32,720 --> 00:01:35,910 そして、これは主要なの一つであります 我々は、リンクリストを使用する理由。 33 00:01:35,910 --> 00:01:40,300 >> 第二に、それは動的には非常に簡単です なぜなら配列のリンクリストのサイズを変更し、 34 00:01:40,300 --> 00:01:44,720 あなたは配列を宣言するときに、 あなたは、特定の設定値を持っています。 35 00:01:44,720 --> 00:01:47,340 のは、私が作成したいとしましょう 10整数の配列。 36 00:01:47,340 --> 00:01:49,970 私は10の配列を作成 整数、それはそれです。 37 00:01:49,970 --> 00:01:50,580 それは10です。 38 00:01:50,580 --> 00:01:52,038 私はそれの後に何をすべきかわかりません。 39 00:01:52,038 --> 00:01:53,680 私はそれ11作りたい場合は、それを行うことはできません。 40 00:01:53,680 --> 00:01:55,710 私はそれ9を作りたい場合は、それを行うことはできません。 41 00:01:55,710 --> 00:01:59,910 >> リンクリストのに対して、あなたが追加することができますし、 削除して、必要な場所に挿入します。 42 00:01:59,910 --> 00:02:04,940 あなたは、動的にサイズを変更することができます ここで構造、あなたのデータ構造。 43 00:02:04,940 --> 00:02:08,370 そして、それは私たちに多くのことを与えます より柔軟性 44 00:02:08,370 --> 00:02:11,320 我々は一般的にないこと 配列で持っています。 45 00:02:11,320 --> 00:02:15,210 >> 誰もが基本的に混乱しました リンクリストがいかにの構造 46 00:02:15,210 --> 00:02:17,930 または、なぜ私たちは、アレイ上の1つを使用する必要がありますか? 47 00:02:17,930 --> 00:02:20,330 ええ、私たちは詳細に渡って行きますよ どのように実際に1を作成します。 48 00:02:20,330 --> 00:02:24,121 しかし、これは一種のちょうどです 今一般的な意味。 49 00:02:24,121 --> 00:02:24,620 クール。 50 00:02:24,620 --> 00:02:28,770 そしてそうアレイは一緒に張られています これらの素敵なささいなことの 51 00:02:28,770 --> 00:02:29,960 ノードと呼ばれます。 52 00:02:29,960 --> 00:02:32,210 すべてのノードは、構造体の型です。 53 00:02:32,210 --> 00:02:36,090 あなたが望んでいた場合は構造体であり、覚えておいてください 変数の特定のタイプを作成します 54 00:02:36,090 --> 00:02:39,850 C言語でそれはまだありません あなたがプログラマとして、存在して、 55 00:02:39,850 --> 00:02:42,030 実際に自分で作成することができます。 56 00:02:42,030 --> 00:02:46,540 >> データのの​​で、このタイプ 構造はノードと呼ばれ、 57 00:02:46,540 --> 00:02:50,770 実際にすることを、私たちが作成しました 独自にC内に存在しません。 58 00:02:50,770 --> 00:02:53,150 そして、あなたの方法に あなたが持っているある1作成 59 00:02:53,150 --> 00:02:57,170 typedefは構造体のヘッダ、 これは私は、コンパイラに指示します 60 00:02:57,170 --> 00:02:59,640 構造体を作成しよう。 61 00:02:59,640 --> 00:03:00,830 >> 我々はそれに名前を付けるつもりだ」ノード。」 62 00:03:00,830 --> 00:03:03,350 そして、内部の私たちはなるだろう で変数を宣言するには、 63 00:03:03,350 --> 00:03:05,060 値を格納しようとしています。 64 00:03:05,060 --> 00:03:09,320 そして、我々はまた、しようとしています 「次の」と呼ばれるポインタを有しています 65 00:03:09,320 --> 00:03:12,090 それは次を指します リンクリスト内のノード。 66 00:03:12,090 --> 00:03:14,730 そして、あなたはそれを終えます ちょうどようにノードを再度繰り返すことにより、 67 00:03:14,730 --> 00:03:17,490 コンパイラは、[OK]を、知っています それが私の構造体の終わりです。 68 00:03:17,490 --> 00:03:22,540 >> だから、このように、我々は親切です かわいいアレイを作成します 69 00:03:22,540 --> 00:03:25,450 との事のようなもの 値とポインタで。 70 00:03:25,450 --> 00:03:27,757 そして、あなたはそれらすべてをリンクすることができます 一緒にこれらのポインタを持ちます。 71 00:03:27,757 --> 00:03:30,090 それらは、すべての種類のことができるように チェーンでつなぎ合わせ。 72 00:03:30,090 --> 00:03:32,920 73 00:03:32,920 --> 00:03:34,162 >> クール。 74 00:03:34,162 --> 00:03:35,453 あなたは少し良くすることを聞くことができますか? 75 00:03:35,453 --> 00:03:36,140 >> 聴衆:うん。 76 00:03:36,140 --> 00:03:38,540 >> 教授:すべての権利。 77 00:03:38,540 --> 00:03:44,280 だからみんなが見ることができるよう、方法、 典型的なリンクリストが構成されています 78 00:03:44,280 --> 00:03:45,500 あなたは頭を持っています。 79 00:03:45,500 --> 00:03:49,460 あなたではありませんヘッド値を持っています 他のポインターが指し示すされています。 80 00:03:49,460 --> 00:03:53,177 しかし、それはを指すように起こっています、 または参照、別のノード。 81 00:03:53,177 --> 00:03:56,510 ノードは、後に参照するために起こっています ノード、などなど、その後 82 00:03:56,510 --> 00:03:59,170 あなたは最終的にヒットするまで、 あなたのリンクリストの最後。 83 00:03:59,170 --> 00:04:00,980 そして、あなたはただそこにポインタを持っていません。 84 00:04:00,980 --> 00:04:04,659 >> そしてそう、でもチェーンに、のように考えますか、 君たちのいずれかがなされた場合、私は知りません、 85 00:04:04,659 --> 00:04:06,450 フルーツループと同じように あなたは少しだったとき。 86 00:04:06,450 --> 00:04:08,590 あなたは、文字列は一緒だろう そしてあなたの首の周りにそれらを身に着けます。 87 00:04:08,590 --> 00:04:09,840 それは同じことだと思います。 88 00:04:09,840 --> 00:04:12,964 あなたはこれらの小さなものを持っています することができます一緒に文字列1に、そのポイント 89 00:04:12,964 --> 00:04:15,291 それの後、次々に また、などなど 90 00:04:15,291 --> 00:04:17,040 あなたは、チェーンを持つまで データ構造 91 00:04:17,040 --> 00:04:21,190 あなたが好きしかし、あなたが使用できます。 92 00:04:21,190 --> 00:04:27,370 >> この私たちはなるような方法 通常、挿入または削除 93 00:04:27,370 --> 00:04:30,020 リンクから任意のノード リストは非常に異なっています 94 00:04:30,020 --> 00:04:31,970 そのノードがどこにあるかによって異なります。 95 00:04:31,970 --> 00:04:34,880 だから、例えば、なぜなら ポインタが常にあります 96 00:04:34,880 --> 00:04:38,645 特定の値を指し、 削除またはノードを挿入すると、 97 00:04:38,645 --> 00:04:41,770 あなたはポインタをことを確認します すべての正しいことを指しています。 98 00:04:41,770 --> 00:04:46,200 >> だから、あなたが潜在的に挿入したい場合 1の値を使用して新しいノード 99 00:04:46,200 --> 00:04:48,379 ソートされたリンクの内側 リスト、我々はすべてここに知っています 100 00:04:48,379 --> 00:04:51,170 に起こっている画像から 右、頭と2の間に行きますか? 101 00:04:51,170 --> 00:04:52,620 一つはすぐそこに収まるので。 102 00:04:52,620 --> 00:04:59,060 しかし、方法は、ここで我々はそれを行うだろう 最初のポインタを逆参照することです 103 00:04:59,060 --> 00:05:02,160 頭から一つにそれを送信します。 104 00:05:02,160 --> 00:05:05,040 >> しかし、我々はここでの問題の中にいます。 105 00:05:05,040 --> 00:05:08,280 誰もがどのような問題が確認できます 我々は最初のデリファレンスした場合であります 106 00:05:08,280 --> 00:05:10,090 頭から1へのポインタ? 107 00:05:10,090 --> 00:05:14,202 何が問題私たちがしようとした場合に実行される可能性があります 私たちの配列の前にこれを追加するには? 108 00:05:14,202 --> 00:05:15,409 >> 聴衆:[聞こえません] 109 00:05:15,409 --> 00:05:16,200 教授:その通り。 110 00:05:16,200 --> 00:05:20,000 そこでここではあったポインタを持っています かつて2頭から指しています。 111 00:05:20,000 --> 00:05:23,120 しかし、あなたはそのを取り除く場合 ポインタは、1つを指すように、 112 00:05:23,120 --> 00:05:26,500 我々は今は考えています ここ2を見つけるために行きます。 113 00:05:26,500 --> 00:05:29,850 私が前に言ったように、あなたが持っているので お使いのコンピュータのメモリの巨大な塊。 114 00:05:29,850 --> 00:05:31,860 これらのすべてのノードができました ランダムに散在します 115 00:05:31,860 --> 00:05:33,350 お使いのコンピュータの任意の場所です。 116 00:05:33,350 --> 00:05:36,140 そして、あなたが方法がわかりません それを見つけることについて移動します。 117 00:05:36,140 --> 00:05:40,420 >> だから、あなたはポインタを持っている必要があります 最後に、すべてのノードを指しています。 118 00:05:40,420 --> 00:05:42,420 そうしない場合、誤って 1間接参照 119 00:05:42,420 --> 00:05:44,485 最初に割り当てず 最初の値、あなたがしています 120 00:05:44,485 --> 00:05:47,410 ただ失うつもり その後すべてのもの。 121 00:05:47,410 --> 00:05:49,720 >> それでは、私たちがしようとしています 行うには、まず、あるだろう 122 00:05:49,720 --> 00:05:53,270 上のポインタを作成したいです ノードは、あなたが挿入します。 123 00:05:53,270 --> 00:05:55,270 どこにそれをポイント にそれを挿入します、 124 00:05:55,270 --> 00:05:59,410 して、後であなた 1に戻って頭を向けることができます。 125 00:05:59,410 --> 00:06:02,800 >> それは、ここでみんなに意味がありますか? 126 00:06:02,800 --> 00:06:03,346 グレート。 127 00:06:03,346 --> 00:06:04,720 ちょうどチェーンのようにと考えてください。 128 00:06:04,720 --> 00:06:07,420 あなたがチェーンを追加した場合、 それは、直感的なのようなものです 129 00:06:07,420 --> 00:06:10,742 どのようにそれを挿入して行くと思います。 130 00:06:10,742 --> 00:06:15,274 >> [OK]を、ので、それははるかに実際にあります 私はそれがあることだろうと思ったよりも短く、 131 00:06:15,274 --> 00:06:16,690 リンクリストの5分熱弁。 132 00:06:16,690 --> 00:06:19,960 あなたたちは持っているだけので それが何であるかの基本的な考え方。 133 00:06:19,960 --> 00:06:23,580 >> ここでは、クイズゼロの議題を持っています。 134 00:06:23,580 --> 00:06:24,895 これがあなたを威嚇せてはいけません。 135 00:06:24,895 --> 00:06:26,270 私はそれが多くの情報を知っています。 136 00:06:26,270 --> 00:06:27,580 それは非常に怖い見えます。 137 00:06:27,580 --> 00:06:33,130 それはまた、私のたくさんです 用語のCSCのようなもの、と考えています。 138 00:06:33,130 --> 00:06:37,440 16進文字列のようなもの、 ポインタ、動的なメモリ割り当て 139 00:06:37,440 --> 00:06:40,120 非常に恐ろしい響きの用語です。 140 00:06:40,120 --> 00:06:42,700 >> しかし、我々は彼らを破るしようとしています ダウン、いくつかの練習問題を行います 141 00:06:42,700 --> 00:06:44,980 そのようにあなたたちすべて このテストの準備ができています。 142 00:06:44,980 --> 00:06:47,104 どのように多くの皆さんの持っています すでに勉強を始め? 143 00:06:47,104 --> 00:06:50,040 144 00:06:50,040 --> 00:06:53,670 >> [OK]を、君たちはおそらくしたいです 始める開始します 145 00:06:53,670 --> 00:06:56,480 その上で、クイズは明日からです。 146 00:06:56,480 --> 00:06:58,739 それとも、いくつかのための木曜日。 147 00:06:58,739 --> 00:07:01,030 ええ、私たちは行くつもりです いくつかの練習問題の上に。 148 00:07:01,030 --> 00:07:04,600 君たちは、すべて取りたい場合 一枚の紙、鉛筆アウト。 149 00:07:04,600 --> 00:07:07,310 私達はちょうど過ごすつもりです 今日のセクションの大半 150 00:07:07,310 --> 00:07:11,590 あなたたちは持っているので、その一部の上を行きます クイズに何を期待するのアイデア。 151 00:07:11,590 --> 00:07:14,957 152 00:07:14,957 --> 00:07:16,890 >> OK。 153 00:07:16,890 --> 00:07:19,730 物流のカップル 誰のための詳細と、 154 00:07:19,730 --> 00:07:25,120 誰があれば、そこにそのリンクになっていません あなたが前面に、cs50.yale.eduに行きます 155 00:07:25,120 --> 00:07:28,566 このページのリンクがあります それは、「クイズゼロいます。」と言います 156 00:07:28,566 --> 00:07:29,440 リンクが表示されます。 157 00:07:29,440 --> 00:07:31,065 あなたがそれを読んでいない場合は、それをお読みください。 158 00:07:31,065 --> 00:07:34,470 それはあなたが本当に重要伝えているので クイズに関する情報。 159 00:07:34,470 --> 00:07:37,410 >> 私はからこれを引き出すつもりです その理由だけで、物理的に、 160 00:07:37,410 --> 00:07:40,200 あなたたちは、場所がわからない場合は、 行くために、我々は問題が発生します。 161 00:07:40,200 --> 00:07:44,220 そして、Aとの観点から、もしそうなら、あなたの最後の Nに、ロースクールの講堂に移動します。 162 00:07:44,220 --> 00:07:47,500 そして、もしPとのあなたの最後の開始 Zに、デイヴィス講堂に移動します。 163 00:07:47,500 --> 00:07:50,240 そして、これはのみに適用されます 水曜日のセクションの人々。 164 00:07:50,240 --> 00:07:53,420 >> あなたは上のクイズを取っている場合 木曜日には、SSS 114に行きます 165 00:07:53,420 --> 00:07:55,078 あなたの講義は、通常です。 166 00:07:55,078 --> 00:07:55,953 聴衆:[聞こえません] 167 00:07:55,953 --> 00:07:59,316 168 00:07:59,316 --> 00:08:01,940 教授:ZへのOは、あなたが行っています デイビスの講堂に移動します。 169 00:08:01,940 --> 00:08:03,273 私は右、それを変更するつもりですか? 170 00:08:03,273 --> 00:08:05,670 171 00:08:05,670 --> 00:08:09,698 >> ああ、ええ、あなただけ自動的に失敗します。 172 00:08:09,698 --> 00:08:11,753 >> そうそう、それはあなたがクリスタです。 173 00:08:11,753 --> 00:08:15,190 174 00:08:15,190 --> 00:08:16,030 ええ、私の悪いです。 175 00:08:16,030 --> 00:08:17,610 うん、ZにOが、あなたが行っています デイヴィスAuditorimに移動します。 176 00:08:17,610 --> 00:08:19,140 私がアップロードしたら、この問題を修正するつもりです。 177 00:08:19,140 --> 00:08:20,320 うん。 178 00:08:20,320 --> 00:08:22,160 >> そして、また何か 心に重要な 179 00:08:22,160 --> 00:08:25,290 水曜日は、あなたが正式にされている場合ということです 水曜日のセクションに在籍し、 180 00:08:25,290 --> 00:08:26,832 あなたは水曜日にあなたのクイズを取る必要があります。 181 00:08:26,832 --> 00:08:29,706 そして、あなたは木曜日に在籍している場合、 あなたのクイズ木曜日を取る必要があります。 182 00:08:29,706 --> 00:08:31,000 そして、それは授業時間中です。 183 00:08:31,000 --> 00:08:35,970 どこで、私はそれが1:00のようなものだと思います 水曜日の午前2時15分と午前2時30分に午前3時45分 184 00:08:35,970 --> 00:08:37,220 木曜日に。 185 00:08:37,220 --> 00:08:41,710 >> あなたは競合状態を持っている場合は、 ディーンの言い訳は唯​​一のものであり、 186 00:08:41,710 --> 00:08:43,030 残念ながら、我々は取ることができます。 187 00:08:43,030 --> 00:08:45,560 私たちが持っていたので 要求の大部分 188 00:08:45,560 --> 00:08:47,970 木曜日水曜日から切り替えます。 189 00:08:47,970 --> 00:08:51,265 どの我々がない限り尊重することはできません 我々はディーンの要求を持っています。 190 00:08:51,265 --> 00:08:52,650 >> OK。 191 00:08:52,650 --> 00:08:57,000 私たちはを始める前に、そう 練習問題のカップル、 192 00:08:57,000 --> 00:09:00,540 私はわずか行くつもりです 成功のためのアンディの役に立つヒント。 193 00:09:00,540 --> 00:09:04,140 あなたは本当にみんな、あなたが勉強し、あなたが 手でコードを書く練習をしたいです。 194 00:09:04,140 --> 00:09:07,050 初めてこれまで私 CSのクイズを取った、私はしていませんでした 195 00:09:07,050 --> 00:09:09,960 手で実際の書き込みコード 前にそれが非常にありました 196 00:09:09,960 --> 00:09:11,890 それがいかに困難で衝撃的。 197 00:09:11,890 --> 00:09:16,125 >> 君たちはに取得しない場合には すべてを入力するのは習慣、 198 00:09:16,125 --> 00:09:20,260 それは非常に自然にされてきます 自動補完していることができます 199 00:09:20,260 --> 00:09:22,015 そこにブラケットとセミコロン。 200 00:09:22,015 --> 00:09:23,890 あなたはそれを記述する場合 手で、時にはそれがです 201 00:09:23,890 --> 00:09:27,100 セミコロンを忘れることは非常に、非常に簡単に、 またはブラケットを閉じることを忘れ、 202 00:09:27,100 --> 00:09:30,970 またはコロンを閉じることを忘れ、 またはそのような何か。 203 00:09:30,970 --> 00:09:34,322 >> だから、手でコードを書くとき、 それは非常に異なった感触です。 204 00:09:34,322 --> 00:09:37,280 だからみんな、あなたが作業しています 練習問題のいくつかを介して、 205 00:09:37,280 --> 00:09:38,904 それは実際に今日練習する良いでしょう。 206 00:09:38,904 --> 00:09:41,770 あなたがしている場合か明日、私は、と仮定します 木曜日にクイズを取ります。 207 00:09:41,770 --> 00:09:45,280 >> 第二に、我々は次のように、最後を持っています、 練習の8年分 208 00:09:45,280 --> 00:09:47,070 オンラインクイズ。 209 00:09:47,070 --> 00:09:50,759 今年のクイズは、おそらくになります それらのすべてに非常に、非常に似ています。 210 00:09:50,759 --> 00:09:51,800 彼らはすべての非常によく似ています。 211 00:09:51,800 --> 00:09:54,220 あなたは親切なのに入ります 質問の種類のスタイル 212 00:09:54,220 --> 00:09:57,250 我々は聞いていることを、種類の 私たちはそれを書くつもり機能、 213 00:09:57,250 --> 00:09:58,580 エトセトラ、エトセトラ。 214 00:09:58,580 --> 00:10:01,980 >> だから、練習クイズを取ります 特に時間的な制約の下で。 215 00:10:01,980 --> 00:10:05,390 クイズを行うための75分されています 時間の量の多くありません。 216 00:10:05,390 --> 00:10:07,254 それは非常に、非常に長いです。 217 00:10:07,254 --> 00:10:09,670 だから君たちは本当にしたいです 君たちがあることを確認します 218 00:10:09,670 --> 00:10:11,990 書き込みの癖で すぐに手でコード。 219 00:10:11,990 --> 00:10:15,070 あなたが最初にしたくないので、 その長さのクイズを参照するには時間 220 00:10:15,070 --> 00:10:16,560 クイズになります。 221 00:10:16,560 --> 00:10:20,540 君たちは本当に確認します あなたが事前に練習していること。 222 00:10:20,540 --> 00:10:24,550 >> 第四に、あなたは確認したいです 講義と切片スライド。 223 00:10:24,550 --> 00:10:25,980 あなたは物事を暗記する必要はありません。 224 00:10:25,980 --> 00:10:30,430 実際には、誰もが許可されています ホワイトペーパーノートの一枚、 225 00:10:30,430 --> 00:10:31,090 前面と背面。 226 00:10:31,090 --> 00:10:32,920 君たちは入力するか、書くことができます。 227 00:10:32,920 --> 00:10:37,070 あなた自身が記憶する必要が判明した場合 何でも、そのシートの上にそれを置きます。 228 00:10:37,070 --> 00:10:40,810 >> 私はあなたを保証する、あなたがしたくありません そのクイズの途中で立ち往生します 229 00:10:40,810 --> 00:10:43,890 そうそう、何、ようなもの その種対この種の実行時。 230 00:10:43,890 --> 00:10:46,490 ちょうどそれを置いて、それをコピーします ストレートご了承シートから。 231 00:10:46,490 --> 00:10:50,420 次に、あなたが実際には使用することができますあなたの 問題について考える脳 232 00:10:50,420 --> 00:10:52,190 むしろ事実をリコールしたよりも。 233 00:10:52,190 --> 00:10:55,250 だから本当に活用します あらゆるニッチの詳細 234 00:10:55,250 --> 00:11:00,140 あなたが暗記する必要があると思うこと、 レビューシートの上にドスンと座ります。 235 00:11:00,140 --> 00:11:02,680 >> [OK]を、任意の質問ロジスティック クイズに関する 236 00:11:02,680 --> 00:11:05,510 我々が開始する前に、いくつかの クイズの問題は練習しますか? 237 00:11:05,510 --> 00:11:06,416 うん? 238 00:11:06,416 --> 00:11:10,040 >> 聴衆:私はチャンスがありませんでした クイズ[聞こえない]を見て 239 00:11:10,040 --> 00:11:11,757 それがあることを行っています ほとんどのアプリケーション、 240 00:11:11,757 --> 00:11:14,090 あるいはまた、があるように起こっています、 以下のように、知識の質問? 241 00:11:14,090 --> 00:11:14,940 >> 教授:それはたくさんです。 242 00:11:14,940 --> 00:11:16,731 私だから、道 クイズを記載う 243 00:11:16,731 --> 00:11:18,810 is--私は一緒に入れ いくつかの練習問題 244 00:11:18,810 --> 00:11:20,960 私はすべてのクイズから引き出されていること。 245 00:11:20,960 --> 00:11:25,210 しかし、あなたは、2つの主があることがわかります 質問の種類は、私たちはあなたを求めるで​​しょう。 246 00:11:25,210 --> 00:11:28,750 >> 一つは、ものの非常に低いレベルの詳細です。 247 00:11:28,750 --> 00:11:31,720 私たちはあなたのコードの小さな塊をあげます そして、言って、エラーがここにありますか? 248 00:11:31,720 --> 00:11:33,110 ここで何を印刷するのでしょうか? 249 00:11:33,110 --> 00:11:35,980 このコードは、エトセトラ、何が生成されます。 250 00:11:35,980 --> 00:11:38,710 だから、非常に低レベルの情報の詳細を表示します。 251 00:11:38,710 --> 00:11:42,700 >> フリップ側では、我々は非常にあります ハイレベルの知識ベースの質問。 252 00:11:42,700 --> 00:11:45,190 あなたは何を説明することができます 二分探索の違い 253 00:11:45,190 --> 00:11:46,148 リニア検索とは? 254 00:11:46,148 --> 00:11:48,500 なぜ我々はしたいと思います 他の上の1つを使うのか? 255 00:11:48,500 --> 00:11:49,960 おそらく、GDBは何ですか? 256 00:11:49,960 --> 00:11:51,560 なぜ我々は、GDBを使用したいのですか? 257 00:11:51,560 --> 00:11:54,590 より高いレベル、より根本的な 質問を理解します。 258 00:11:54,590 --> 00:11:58,240 だから、の混合物が表示されます クイズの二人。 259 00:11:58,240 --> 00:12:01,462 >> 我々の前に何か他のもの まっすぐに向かいますか? 260 00:12:01,462 --> 00:12:02,879 OK。 261 00:12:02,879 --> 00:12:03,670 聴衆:もう一つ。 262 00:12:03,670 --> 00:12:04,030 教授:ああ、もう一つ。 263 00:12:04,030 --> 00:12:04,340 ごめんなさい。 264 00:12:04,340 --> 00:12:05,631 >> 聴衆:ええ、それはすべての権利です。 265 00:12:05,631 --> 00:12:10,140 だから、75分を言っているあります それがそうであるように、短すぎます 266 00:12:10,140 --> 00:12:11,640 我々は終了しますその? 267 00:12:11,640 --> 00:12:13,571 また、のような、75分 正確に同じくらいの時間です 268 00:12:13,571 --> 00:12:15,700 我々があった場合、私たちは必要になりますように 適切に準備? 269 00:12:15,700 --> 00:12:17,450 教授:[OK]を、ので、 クイズは困難です。 270 00:12:17,450 --> 00:12:19,550 これは間違いなく困難です。 271 00:12:19,550 --> 00:12:21,092 あなたは時間に自分が短いでしょう。 272 00:12:21,092 --> 00:12:24,341 あなたはおそらく、10のように、ヒットするつもりです 15へ行く分、たわごと、ようなもの。 273 00:12:24,341 --> 00:12:25,520 私はあまりを行うに残っています。 274 00:12:25,520 --> 00:12:26,520 そして、それは完全に罰金です。 275 00:12:26,520 --> 00:12:28,740 誰もが同じように感じるだろう。 276 00:12:28,740 --> 00:12:31,074 >> ただ、非常に注意してください どのくらいの時間、あなたは持っています。 277 00:12:31,074 --> 00:12:33,490 私はあなたを教えてなぜ、そのためです みんなは練習クイズを行います。 278 00:12:33,490 --> 00:12:36,672 それは本当に素晴らしい感覚を与えるので 何のクイズは次のようになるだろう。 279 00:12:36,672 --> 00:12:39,130 だから、自分がされて発見した場合 練習を終えすることができます 280 00:12:39,130 --> 00:12:41,671 の良い量でクイズ 時間、あなたも自分のペースすることができ、 281 00:12:41,671 --> 00:12:45,695 あなたは問題がありません 水曜日か木曜日に。 282 00:12:45,695 --> 00:12:46,575 >> クール。 283 00:12:46,575 --> 00:12:49,200 だから私は誰もが思うwants--場合 ほとんどの人は、紙のシートを持っています 284 00:12:49,200 --> 00:12:49,810 すでにアウト。 285 00:12:49,810 --> 00:12:52,604 私は基本的にするつもりです あなたのサンプルの質問を与え、 286 00:12:52,604 --> 00:12:54,520 Aのように、君たちを与えます それらを行うには数分。 287 00:12:54,520 --> 00:12:59,610 そして、私たちはクラスとしての上に行きますよ 何それらに対する回答を示します。 288 00:12:59,610 --> 00:13:02,860 >> だから、これは非常に典型的です 我々はよ早めのご質問 289 00:13:02,860 --> 00:13:06,720 ただ変換、あなたを求めます 異なる拠点間の数字。 290 00:13:06,720 --> 00:13:09,070 バイナリ、君たちことができますように リコールは、ベース2です。 291 00:13:09,070 --> 00:13:12,470 小数点は、ベース10、または私たちがあります 人間は一般的に解釈するように。 292 00:13:12,470 --> 00:13:17,120 16進数ゼロであるベース16であり、 〜9と同様にFまで 293 00:13:17,120 --> 00:13:19,990 >> だから、私は4つの数字があります ここで変換することが君たちを尋ねます。 294 00:13:19,990 --> 00:13:23,909 私は、あなたが好き〜3をあげます どのように通って考える4分 295 00:13:23,909 --> 00:13:25,200 我々はこれを解決するに行きますか。 296 00:13:25,200 --> 00:13:32,832 297 00:13:32,832 --> 00:13:35,710 >> 聴衆:私たちは電卓を許可していますか? 298 00:13:35,710 --> 00:13:37,630 >> 教授:あなたはしません ええ、電卓を必要としています。 299 00:13:37,630 --> 00:13:42,420 私は基本的な添加は、私が思う、だと思います すべての皆さんが行うように求められます。 300 00:13:42,420 --> 00:14:41,700 301 00:14:41,700 --> 00:14:45,070 >> そして、ちょうどので、私は一種の感覚を持っています 誰もが実行されたときの、ルックアップ 302 00:14:45,070 --> 00:14:47,429 波は、私は、笑顔を知りません、 設定が完了した場合に幸せそうに見えます。 303 00:14:47,429 --> 00:14:47,929 うん。 304 00:14:47,929 --> 00:17:21,680 305 00:17:21,680 --> 00:17:23,945 多分カップル分以上。 306 00:17:23,945 --> 00:18:28,080 307 00:18:28,080 --> 00:18:29,600 >> [OK]を、のはそれを持ってみましょう。 308 00:18:29,600 --> 00:18:31,580 私は意図的に行きますよ みんなにあなたのより少ない時間を与えます 309 00:18:31,580 --> 00:18:33,760 あなたはおそらく必要以上に これらの問題のいくつかの操作を行い、 310 00:18:33,760 --> 00:18:37,124 私はそれを確認するというだけの理由 我々は問題の束を介して取得します。 311 00:18:37,124 --> 00:18:39,290 だから、心配ありません、あなたがしなかった場合 終了するチャンスがあります。 312 00:18:39,290 --> 00:18:43,770 あなたが持っている限り、完全にOK このについて移動する方法のアイデア。 313 00:18:43,770 --> 00:18:45,850 それでは、先に行くと最初のいずれかを実行してみましょう。 314 00:18:45,850 --> 00:18:52,690 315 00:18:52,690 --> 00:18:57,870 >> したがって、最初、誰も私に伝えたいん バイナリでは、どのようなこれらの数字をそれぞれ行います 316 00:18:57,870 --> 00:19:00,484 それらの値の点で表しますか? 317 00:19:00,484 --> 00:19:01,250 うん? 318 00:19:01,250 --> 00:19:03,349 >> 聴衆:2つに 電力ゼロ、一から二。 319 00:19:03,349 --> 00:19:04,140 教授:その通り。 320 00:19:04,140 --> 00:19:04,640 Soが 321 00:19:04,640 --> 00:19:13,430 322 00:19:13,430 --> 00:19:16,430 >> 右ので、一般的に 我々は、ベース10にいるとき 323 00:19:16,430 --> 00:19:20,580 これらはすべて、のような、している表します ゼロのベースに10、右? 324 00:19:20,580 --> 00:19:21,810 それはあなたの1の場所です。 325 00:19:21,810 --> 00:19:24,520 あなたのすべての10の場所があります 1の電源に10。 326 00:19:24,520 --> 00:19:26,600 あなた100の場所は10です 2のべき乗に。 327 00:19:26,600 --> 00:19:29,570 >> どのようなベースあなたが起こっているにしています 全く同じことを行うには、 328 00:19:29,570 --> 00:19:31,480 ちょうど別の塩基で。 329 00:19:31,480 --> 00:19:34,130 だからバイナリ、すべてのことは、ベース2です。 330 00:19:34,130 --> 00:19:37,110 あなたはすべて変換するつもりです どのようなパワーに2つに桁 331 00:19:37,110 --> 00:19:38,190 その数字の。 332 00:19:38,190 --> 00:19:41,450 ので、この意味では、我々 もっと簡単な方法を持つことができます 333 00:19:41,450 --> 00:19:43,800 まで追加することができるというのか ために、すべての数字を合計 334 00:19:43,800 --> 00:19:46,010 ベース10に変換します。 335 00:19:46,010 --> 00:19:50,362 >> だから、誰もが何を教えたいん 最初の答えは、ベース10にありますか? 336 00:19:50,362 --> 00:19:51,674 >> 聴衆:二つの、[聞こえません] 337 00:19:51,674 --> 00:19:52,340 教授:ええ。 338 00:19:52,340 --> 00:19:53,230 聴衆:42。 339 00:19:53,230 --> 00:19:56,560 教授:42、そこに行きます。 340 00:19:56,560 --> 00:20:00,660 だから我々は、この答えを得た方法があったことにより、 2である、最初の二つをやって。 341 00:20:00,660 --> 00:20:02,760 プラス2〜8である第三、。 342 00:20:02,760 --> 00:20:07,590 プラス2、第五にします 残されているものです。 343 00:20:07,590 --> 00:20:09,390 あなたはそれらを合計し、それは42です。 344 00:20:09,390 --> 00:20:12,000 >> 我々はそれを得た方法上の誰も混乱しますか? 345 00:20:12,000 --> 00:20:15,630 以下のようなので、基本的に加え、 私はあなたがOKであるべき、と述べました。 346 00:20:15,630 --> 00:20:17,410 ない場合は、よく、私たちもそれを練習することができます。 347 00:20:17,410 --> 00:20:18,720 しかし、それは大丈夫です。 348 00:20:18,720 --> 00:20:20,560 クール。 349 00:20:20,560 --> 00:20:25,570 >> 誰も私に与えたいと思うん 同様に第1に答えますか? 350 00:20:25,570 --> 00:20:26,860 >> 50? 351 00:20:26,860 --> 00:20:27,600 良い。 352 00:20:27,600 --> 00:20:30,044 どのように混乱し誰でも 我々は、いずれかのことを得ましたか。 353 00:20:30,044 --> 00:20:31,960 クール、私が持っているでしょう 次のスライドに回答。 354 00:20:31,960 --> 00:20:34,440 だから、何の心配もなく、あなたの場合 それをコピーする必要があります。 355 00:20:34,440 --> 00:20:38,860 >> [OK]を、ので、進は少しトリッキーです。 356 00:20:38,860 --> 00:20:41,840 私は君たちを表示するつもりです それを行う方法のショートカット。 357 00:20:41,840 --> 00:20:44,800 進だから、あなたのように すべてのそれは16にすることで、覚えておいてください。 358 00:20:44,800 --> 00:20:48,920 そして、人間が実際にしていないため、私たちのように それを表すために16の番号を持っています、 359 00:20:48,920 --> 00:20:56,940 私たちは私たちの最初の9つのゼロから行きます 10の値は、その後、我々は、Fを介して行います 360 00:20:56,940 --> 00:20:58,630 これは次の6つの値です。 361 00:20:58,630 --> 00:21:03,040 >> からどこへ行くので、最も簡単な方法 16進数に任意のバイナリ数 362 00:21:03,040 --> 00:21:05,350 半分にそれらを分割することです。 363 00:21:05,350 --> 00:21:10,042 そして、私たちがあげる任意のバイナリ数 おそらく8桁になります。 364 00:21:10,042 --> 00:21:11,750 あなたは破ることができます 途中でそれらをアップ。 365 00:21:11,750 --> 00:21:17,460 >> したがって、最初の選ぶ - 1 1、 一つ一つ、1、1、1 1。 366 00:21:17,460 --> 00:21:21,340 種類の、あなたが知っている、それを考えて描きます スラッシュまたはそれらの間にカンマ。 367 00:21:21,340 --> 00:21:23,800 そして、あなたは、単に変換することができます 直接どのような 368 00:21:23,800 --> 00:21:26,670 これは、最初にあります 進数、 369 00:21:26,670 --> 00:21:29,880 そして、、ここで何をしています 16進数秒。 370 00:21:29,880 --> 00:21:37,584 >> だから、一般的な表記法から覚えています、 どのような16進数値で始まるのですか? 371 00:21:37,584 --> 00:21:38,460 >> 聴衆:ゼロ。 372 00:21:38,460 --> 00:21:39,270 >> 教授:0X。 373 00:21:39,270 --> 00:21:45,210 だから我々は、任意の時間は、我々はあなたを求めることを知っています 16進数に任意の数を変換します、 374 00:21:45,210 --> 00:21:48,230 あなたが任意の参照または任意の時間 0Xで始まる番号、 375 00:21:48,230 --> 00:21:50,230 あなたはそれが16進数の値だということを知っています。 376 00:21:50,230 --> 00:21:54,160 >> そして、あなたはに尋ねたことになるだろう これら二つの数字が何であるかを決定します。 377 00:21:54,160 --> 00:21:59,690 そして、あなたのやり方は、最大集計、ということ その半分と半分を集計。 378 00:21:59,690 --> 00:22:02,870 したがって、この例では、どのような 一つは、1、1、1はでしょうか? 379 00:22:02,870 --> 00:22:04,890 それは何の値でしょうか? 380 00:22:04,890 --> 00:22:06,040 それは右、Fだろうか? 381 00:22:06,040 --> 00:22:08,050 それは15になるだろう。 382 00:22:08,050 --> 00:22:11,780 >> だから、これはFで一つになり、 ここ1、1、1にもあります 383 00:22:11,780 --> 00:22:21,270 F.だから1、1、1、1、1、1、1、 16進数で1、それはすべてが0XFFです。 384 00:22:21,270 --> 00:22:25,350 この半分が表さので、 F、15の値、 385 00:22:25,350 --> 00:22:27,331 この半分が表さ F値15。 386 00:22:27,331 --> 00:22:29,456 覚えているので、私たちはしています ゼロから9までカウント。 387 00:22:29,456 --> 00:22:35,290 Aは、Fは15で、Bは11のようなものです、10のようなものです。 388 00:22:35,290 --> 00:22:41,690 >> どのように皆に意味があるかという 我々は、16進数にバイナリから得ましたか。 389 00:22:41,690 --> 00:22:44,595 >> 聴衆:だから、私たちはどのようにして手に入れました 1、1、1、1から15? 390 00:22:44,595 --> 00:22:46,220 教授:うん、これは右、バイナリのですか? 391 00:22:46,220 --> 00:22:48,090 これはただの二進数である想像してみてください。 392 00:22:48,090 --> 00:22:50,792 だから、2つにを持っています 1でゼロ番目、。 393 00:22:50,792 --> 00:22:51,500 聴衆:ああ、[OK]をクリックします。 394 00:22:51,500 --> 00:22:51,670 だから、あなたはそれを合計します。 395 00:22:51,670 --> 00:22:52,670 >> 教授:ええ、その後、 あなたはちょうどそれを合計します。 396 00:22:52,670 --> 00:22:53,380 それはそれはすべてです。 397 00:22:53,380 --> 00:22:54,890 >> 聴衆:[OK]をクリックします。 398 00:22:54,890 --> 00:22:55,830 >> 教授:[OK]をクリックします。 399 00:22:55,830 --> 00:23:00,740 >> 聴衆:だから、バイナリから行きます 16進数に小数するには? 400 00:23:00,740 --> 00:23:04,590 >> 教授:それは そうするための最も簡単な方法は、ええ。 401 00:23:04,590 --> 00:23:11,390 あなたはので、小数するつもりはありません 小数はわずか9にゼロを持っています。 402 00:23:11,390 --> 00:23:13,410 私達はちょうど種類のです 二つにこれを分割。 403 00:23:13,410 --> 00:23:15,201 >> 聴衆:[聞こえません] 見つけるために小数を使用して 404 00:23:15,201 --> 00:23:17,809 何それは16進数にまでマッチします。 405 00:23:17,809 --> 00:23:20,100 教授:私は意味、あなたがしています 基本的な数学を使って集計。 406 00:23:20,100 --> 00:23:20,725 聴衆:うん。 407 00:23:20,725 --> 00:23:22,300 教授:うん、かなり。 408 00:23:22,300 --> 00:23:23,630 それは少し混乱しています。 409 00:23:23,630 --> 00:23:26,410 しかし、あなたことを知っています 何を分割することができます 410 00:23:26,410 --> 00:23:28,160 この値は、ちょうど半​​分にあります。 411 00:23:28,160 --> 00:23:29,570 見て、これはバイナリで何ですか? 412 00:23:29,570 --> 00:23:30,610 それは何番ですか? 413 00:23:30,610 --> 00:23:33,270 これは、になるだろう ゼロからFに何か 414 00:23:33,270 --> 00:23:35,722 >> ここでもあることを行っています ゼロからFに何か 415 00:23:35,722 --> 00:23:37,722 そして、あなただけ置くことができます 右がこれら二つ。 416 00:23:37,722 --> 00:23:38,263 >> 聴衆:[OK]をクリックします。 417 00:23:38,263 --> 00:23:38,910 教授:うん。 418 00:23:38,910 --> 00:23:39,410 OK。 419 00:23:39,410 --> 00:23:42,320 だからみんながしたいです その後、次のいずれかを試してみてください! 420 00:23:42,320 --> 00:23:49,601 ゼロ、1、ゼロワン、 1、ゼロ、1つのゼロ。 421 00:23:49,601 --> 00:23:52,350 私はあなたの30秒のような連中を与えるでしょう、 あなたはおそらく知らなかったので、 422 00:23:52,350 --> 00:23:53,850 これ以前のバージョンを実行する方法のトリック。 423 00:23:53,850 --> 00:24:24,950 424 00:24:24,950 --> 00:24:27,381 >> [OK]を、誰もがこの1つをショットを取得したいですか? 425 00:24:27,381 --> 00:24:28,774 >> 0X5A。 426 00:24:28,774 --> 00:24:29,440 教授:0X5A。 427 00:24:29,440 --> 00:24:30,470 図5a。 428 00:24:30,470 --> 00:24:31,340 良い。 429 00:24:31,340 --> 00:24:37,050 だから、これは、ここであなたが望むbe--う あなたがそれを得た方法を教えますか? 430 00:24:37,050 --> 00:24:38,920 まず、どのように5を得たのですか? 431 00:24:38,920 --> 00:24:42,030 >> 聴衆:ゼロので、 1、0個、1個は5です。 432 00:24:42,030 --> 00:24:45,170 >> 教授:誰もが理解しています なぜ、0個、1個、0個、1個が5? 433 00:24:45,170 --> 00:24:46,260 ここに1を持っています。 434 00:24:46,260 --> 00:24:48,010 最初の二つには何もありません。 435 00:24:48,010 --> 00:24:50,300 2第二に、あなたを 4であるものを持っています。 436 00:24:50,300 --> 00:24:52,600 だから、4プラスを追加 1、あなたは5を持っています。 437 00:24:52,600 --> 00:24:53,600 みんな良いですか? 438 00:24:53,600 --> 00:24:54,100 OK。 439 00:24:54,100 --> 00:24:56,570 そして、何これはである、なぜ? 440 00:24:56,570 --> 00:24:58,350 Aは、どのような数を次のように対応していますか? 441 00:24:58,350 --> 00:24:59,350 >> 聴衆:10。 442 00:24:59,350 --> 00:25:00,976 >> 教授:そして、何このベース2で? 443 00:25:00,976 --> 00:25:01,850 聴衆:[聞こえません] 444 00:25:01,850 --> 00:25:03,010 教授:その通り。 445 00:25:03,010 --> 00:25:06,370 そこでここでは、この2番目の値が0X5Aだろう。 446 00:25:06,370 --> 00:25:08,410 >> みんなに変換する方法の良いですか? 447 00:25:08,410 --> 00:25:10,770 それはあなたがそれが思っているよりもずっと簡単です。 448 00:25:10,770 --> 00:25:13,330 私はちょうど確認します あなたは役に立つヒントを知っています 449 00:25:13,330 --> 00:25:14,950 それを行う方法についてやトリック。 450 00:25:14,950 --> 00:25:18,432 >> 聴衆:なぜあなただ​​け分割することができます それそのような途中で? 451 00:25:18,432 --> 00:25:21,390 ただ、[OK]を、私はするつもりだ、のようなもの これらの最初の[聞こえない]を気に? 452 00:25:21,390 --> 00:25:24,240 >> 教授:それは実際だから 道の16進値が表現されます。 453 00:25:24,240 --> 00:25:26,890 実際に意味0X、 あなたを伝える以外には何もありません 454 00:25:26,890 --> 00:25:28,710 それは16進数だという。 455 00:25:28,710 --> 00:25:31,580 そして、これは常に表し 最初の4桁。 456 00:25:31,580 --> 00:25:34,330 そして、これは常に表し 最後の4桁。 457 00:25:34,330 --> 00:25:37,835 だからこれらの2桁だけ 異なるビットに対応しています。 458 00:25:37,835 --> 00:25:39,200 >> 聴衆:だから私たちはalways--ます 459 00:25:39,200 --> 00:25:41,830 >> 教授:あなたはいつもしています 8値のビットを取得するつもり。 460 00:25:41,830 --> 00:25:44,580 >> 観客は:だけのものが好きということです ここに、またはすべての上の事こと? 461 00:25:44,580 --> 00:25:46,883 教授:それはちょうどです コンピュータでの事、うん。 462 00:25:46,883 --> 00:25:47,424 聴衆:[OK]をクリックします。 463 00:25:47,424 --> 00:25:48,240 驚くばかり。 464 00:25:48,240 --> 00:25:51,290 >> 教授:また、この例ではそう 我々は、2進数から10進数への変換から 465 00:25:51,290 --> 00:25:53,290 バイナリから16進数に。 466 00:25:53,290 --> 00:25:56,610 君たちはまた、あなたを確認します 周りに他の道を進んで実践しています。 467 00:25:56,610 --> 00:26:03,370 私はあなたに0XFFを与えたのであれば、あなたは可能性 右、バイナリのそれを引き出しますか? 468 00:26:03,370 --> 00:26:06,820 >> あなたは、バイナリにFを変換します ある1、1、1、1、 469 00:26:06,820 --> 00:26:09,380 これは、バイナリFに変換します 一つ一つ一つものです。 470 00:26:09,380 --> 00:26:11,310 >> だから我々は何をお願いすることがあり 他の方法で回避。 471 00:26:11,310 --> 00:26:14,817 だから、バイナリにDECIMAL、または バイナリへの進。 472 00:26:14,817 --> 00:26:16,650 だから、作りたいです あなたは両方の方法を知ってください。 473 00:26:16,650 --> 00:26:19,371 私たちは、おそらくあなた頼みますよ 二つの組み合わせ。 474 00:26:19,371 --> 00:26:20,660 >> うん、あなたは疑問がありますか? 475 00:26:20,660 --> 00:26:22,724 私はあなたが良いですsee--ことができますか? 476 00:26:22,724 --> 00:26:23,348 聴衆:うん。 477 00:26:23,348 --> 00:26:24,560 教授:[OK]をクリックします。 478 00:26:24,560 --> 00:26:26,101 私はこれを消去してもいいですか? 479 00:26:26,101 --> 00:26:26,600 グレート。 480 00:26:26,600 --> 00:26:33,965 481 00:26:33,965 --> 00:26:40,437 >> 誰もあれば答えはここにあるので、すべての権利 後に好奇心旺盛で、混乱してしまいます。 482 00:26:40,437 --> 00:26:41,844 OK。 483 00:26:41,844 --> 00:26:46,070 >> 観客:我々は置けば、それは問題ではありません 首都または小文字で私たちの手紙? 484 00:26:46,070 --> 00:26:50,360 >> 教授:それはない、なぜなら 16進数で、慣例により、 485 00:26:50,360 --> 00:26:52,840 すべての文字は大文字です。 486 00:26:52,840 --> 00:26:54,650 だからFまであります 大文字になるだろう。 487 00:26:54,650 --> 00:26:58,660 あなたは小文字のaを入れた場合、私は知りません 私たちは必ずしも、それが間違ってマークするならば。 488 00:26:58,660 --> 00:27:00,679 しかし、理論的には、 それは技術的にはありません 489 00:27:00,679 --> 00:27:01,970 どのようにそれを持っていることになっています。 490 00:27:01,970 --> 00:27:03,303 そこで、彼らはすべて大文字でなければなりません。 491 00:27:03,303 --> 00:27:05,910 うん、良い質問。 492 00:27:05,910 --> 00:27:07,780 >> OK。 493 00:27:07,780 --> 00:27:08,790 2番目の質問。 494 00:27:08,790 --> 00:27:12,750 ここにこの素敵なプログラムを考えてみましょう。 495 00:27:12,750 --> 00:27:15,180 私は質問をするでしょう、 私はこれを戻ってきます。 496 00:27:15,180 --> 00:27:23,170 >> そこで、まず、標準の内部で何が そのio.hプログラムに関心のですか? 497 00:27:23,170 --> 00:27:26,640 第二に、ボイドが何を ライン3に意味? 498 00:27:26,640 --> 00:27:30,572 そして第三に、何からゼロを返すん メイン、ライン6のように、一般的に意味? 499 00:27:30,572 --> 00:27:33,280 あなたたちはそれらを書きたい場合 私は戻って切り替える必要があるため、ダウン 500 00:27:33,280 --> 00:27:36,810 スライドにちょうどあなたがコードを見ることができます。 501 00:27:36,810 --> 00:27:40,400 これは、のような、多分の例であり、 私たちはあなたを求める、より高いレベルの質問 502 00:27:40,400 --> 00:27:42,435 何の事は、プログラムに意味します。 503 00:27:42,435 --> 00:27:47,290 504 00:27:47,290 --> 00:27:49,215 >> 私のために良いみんな スライドに戻りますか? 505 00:27:49,215 --> 00:27:53,400 506 00:27:53,400 --> 00:27:54,361 うんいいね。 507 00:27:54,361 --> 00:27:57,610 だから私はあなたに多分3のような連中をあげます この1実際に素早く見て分。 508 00:27:57,610 --> 00:28:41,330 509 00:28:41,330 --> 00:28:44,140 >> [OK]を、ので、この1のような 概念的に、かなり簡単。 510 00:28:44,140 --> 00:28:49,280 何誰もが私に伝えたいん 含むハッシュによって第1内側 511 00:28:49,280 --> 00:28:52,630 当社の標準io.hライブラリファイル? 512 00:28:52,630 --> 00:28:55,510 なぜ我々はそのライブラリが必要なのですか このプログラムに含まれますか? 513 00:28:55,510 --> 00:28:56,930 ここで私たちは何のためにそれが必要なのでしょうか? 514 00:28:56,930 --> 00:28:56,980 >> うん? 515 00:28:56,980 --> 00:28:58,340 >> 観客は:されたときに あなたはそれのprintfを置きますか? 516 00:28:58,340 --> 00:28:59,131 >> 教授:その通り。 517 00:28:59,131 --> 00:29:01,780 あなたはいつでも、だからprintfの ユーザからの入力を取ります 518 00:29:01,780 --> 00:29:04,140 印刷何か 画面に、それはです 519 00:29:04,140 --> 00:29:05,600 標準入力、出力ライブラリ。 520 00:29:05,600 --> 00:29:07,170 、出力を入力しway--ことと考えてください。 521 00:29:07,170 --> 00:29:08,430 >> 私は出力を持っていますか? 522 00:29:08,430 --> 00:29:09,207 はい、そうです。 523 00:29:09,207 --> 00:29:12,040 だから私は、私はいつもするつもりだことを知っています 標準化のi.oライブラリを必要としています。 524 00:29:12,040 --> 00:29:16,400 >> だからのprintf関数であります これによって、私たちはアクセスする必要があります 525 00:29:16,400 --> 00:29:19,370 そして、ハッシュタグは、 標準i.oライブラリ。 526 00:29:19,370 --> 00:29:20,280 OK。 527 00:29:20,280 --> 00:29:22,660 >> 第二に、ボイドが何を意味するのでしょうか? 528 00:29:22,660 --> 00:29:26,970 私たちは何をするか、int型メイン(ボイド)を持っています ここで無効ライン3にここで意味ですか? 529 00:29:26,970 --> 00:29:28,080 うん、戻りました。 530 00:29:28,080 --> 00:29:29,020 >> 聴衆:[聞こえません] 531 00:29:29,020 --> 00:29:29,920 >> 教授:その通り。 532 00:29:29,920 --> 00:29:33,320 だから我々は学んだ、覚えています 私たちのpsetで始まります 533 00:29:33,320 --> 00:29:35,360 あなたが実際にできること コマンドラインを指定します 534 00:29:35,360 --> 00:29:39,010 引数プログラム、あなたのこと 主な機能は、あなたのようにユーザーをとり、 535 00:29:39,010 --> 00:29:39,650 それを呼び出します。 536 00:29:39,650 --> 00:29:42,650 私たちは、ボイドがあれば、それはあなたということ 単にプログラムを直接実行することができます 537 00:29:42,650 --> 00:29:44,680 任意のコマンドライン引数なし。 538 00:29:44,680 --> 00:29:46,160 その上で明確な誰? 539 00:29:46,160 --> 00:29:46,660 OK。 540 00:29:46,660 --> 00:29:52,850 >> そして最後に、なぜ我々はやって気にしません ここで、この戻りゼロのこと? 541 00:29:52,850 --> 00:29:54,740 なぜ私たちも、int型のメインがありますか? 542 00:29:54,740 --> 00:29:57,330 私たちは無効メインの空隙を持つことができないのはなぜ? 543 00:29:57,330 --> 00:29:59,216 うん? 544 00:29:59,216 --> 00:30:01,590 聴衆:ちょうど私たちすることができますように プログラムがあることを確認してください 545 00:30:01,590 --> 00:30:04,247 成功裏に終了します それが数えられた場合には反対しました。 546 00:30:04,247 --> 00:30:06,580 そして、我々はそれがだと知っているだろう エラーの異なる種類。 547 00:30:06,580 --> 00:30:07,621 >> 教授:うん、まさに。 548 00:30:07,621 --> 00:30:10,670 これは非常にだけです 私たちは従来のもの、 549 00:30:10,670 --> 00:30:13,840 それはただの端にあり あなたのプログラム、念のため 550 00:30:13,840 --> 00:30:15,830 あなたの主な機能はその 正しく実行されています、 551 00:30:15,830 --> 00:30:17,940 私たちは常にリターンゼロをしたいです。 552 00:30:17,940 --> 00:30:21,160 でも私たちは必ずしもかもしれないが それはどこにも印刷され表示されません。 553 00:30:21,160 --> 00:30:25,092 >> プログラマとして、あなたが知っている、もしので、 あなたは、コードの多くの異なるラインを持っています 554 00:30:25,092 --> 00:30:27,050 あなたがどこかわかりません これらは、間違って行きます 555 00:30:27,050 --> 00:30:30,240 エラーが発生した場合、あなたがしたいです あなたがそのエラーを取得していることを確認してください。 556 00:30:30,240 --> 00:30:33,240 だから一般的に何かが行く場合 私たちは一つだけのリターンがあるでしょうが間違っ 557 00:30:33,240 --> 00:30:34,669 我々はそれがあることを知っているかどうかを確認します。 558 00:30:34,669 --> 00:30:36,460 ですから、リターンが表示された場合 その一般的にはゼロ、 559 00:30:36,460 --> 00:30:38,293 あなたのプログラムがあることを意味 正常に実行されました。 560 00:30:38,293 --> 00:30:40,490 561 00:30:40,490 --> 00:30:40,990 良い? 562 00:30:40,990 --> 00:30:45,180 563 00:30:45,180 --> 00:30:45,680 クール。 564 00:30:45,680 --> 00:30:48,710 565 00:30:48,710 --> 00:30:52,680 >> [OK]を、ここでは第2のプログラム。 566 00:30:52,680 --> 00:30:54,827 それを考えてみましょう。 567 00:30:54,827 --> 00:30:56,910 そして、あなたたちが見たら フロート、君たちはおそらくすることができます 568 00:30:56,910 --> 00:31:00,810 何の良いアイデアを持っています 私はあなたを聞いてんですよ。 569 00:31:00,810 --> 00:31:05,200 >> だからときに、このプログラム あなたが見ることができるように、実行され、 570 00:31:05,200 --> 00:31:09,330 私は、フロートを宣言しています 私の主な関数の内部。 571 00:31:09,330 --> 00:31:13,470 私は "、答えを「名前を付けていると私は設定してい 10で割ったものに等しくなること。 572 00:31:13,470 --> 00:31:17,860 私は1つに、プリントアウトしています 小数点以下の桁数、そのフロート。 573 00:31:17,860 --> 00:31:19,880 そして、私はゼロを返しています。 574 00:31:19,880 --> 00:31:24,470 >> だから、プログラムを実行する際に、 すぐに戻って貪欲に考えます、 575 00:31:24,470 --> 00:31:26,550 このプログラムは、0.0を出力します。 576 00:31:26,550 --> 00:31:29,993 我々はすべて知っているように、うまくいけば、我々はすべて 10で割ったものは0.00ではないが、知っています、 577 00:31:29,993 --> 00:31:32,350 それは0.1です。 578 00:31:32,350 --> 00:31:37,810 このプログラムは考えしかし、なぜ説明 他の0.1に10プリントで割ったもの1 579 00:31:37,810 --> 00:31:39,504 0.1よりも? 580 00:31:39,504 --> 00:31:42,545 私はあなたかもしれない30のような連中をあげます ちょうどすぐにそれについて考える秒 581 00:31:42,545 --> 00:31:43,878 私は戻ってプログラムに行きますよ。 582 00:31:43,878 --> 00:32:17,800 583 00:32:17,800 --> 00:32:20,290 >> OK。 584 00:32:20,290 --> 00:32:22,205 誰もがそれに打撃を与えたいと思いますか? 585 00:32:22,205 --> 00:32:24,330 3文以下では、 通常、私たちはしているので、 586 00:32:24,330 --> 00:32:27,650 すべての答えを制限するつもりは 3文以下に 587 00:32:27,650 --> 00:32:31,130 だからあなただけの逆流はありません あなたのクイズへのランダムなもの。 588 00:32:31,130 --> 00:32:32,740 >> うん、写真を撮ります。 589 00:32:32,740 --> 00:32:36,390 >> 聴衆:だから私はこれがあると思います 以下のように、というもの、[聞こえません] 590 00:32:36,390 --> 00:32:42,320 だからがあるかもしれません、例えば、 0.09、のような、あるかもしれません、 591 00:32:42,320 --> 00:32:47,250 あなたが最初の印刷どこにいます 数字は、それが0.0になるでしょうか? 592 00:32:47,250 --> 00:32:49,100 >> 教授:全くない、閉じます。 593 00:32:49,100 --> 00:32:49,810 Christabell? 594 00:32:49,810 --> 00:32:51,770 >> 観客:あなたは1を分割していて、 10、彼らは両方とも整数です。 595 00:32:51,770 --> 00:32:54,610 そしてそれは起こっている方法 それは整数としてで保存します。 596 00:32:54,610 --> 00:32:56,480 だから、最も近い整数は0.0になります。 597 00:32:56,480 --> 00:32:57,471 そして、そのためには、0.1です。 598 00:32:57,471 --> 00:32:58,970 教授:ええ、それは本当に良いです。 599 00:32:58,970 --> 00:33:00,040 それが正しい答えです。 600 00:33:00,040 --> 00:33:03,597 だから、これは非常に混乱して 子供たちの多くのための概念。 601 00:33:03,597 --> 00:33:06,680 そして、私は本当にそれを確認します これは、みんなの頭の中で強化されています。 602 00:33:06,680 --> 00:33:10,090 >> だから我々は、フローティングと呼ぶもの ポイントの不正確、 603 00:33:10,090 --> 00:33:12,800 ここで、理由はたくさん 貪欲であなたのプログラムの 604 00:33:12,800 --> 00:33:17,010 最初は動作しませんでしたがためでした あなたは変数をキャストするのを忘れました。 605 00:33:17,010 --> 00:33:19,370 だからChristabellが言ったこと 完全に正しかったです。 606 00:33:19,370 --> 00:33:21,990 >> フロートは本質的に不正確です。 607 00:33:21,990 --> 00:33:26,400 コンピュータに、右、私たちは持っているので、 メモリのビットの有限量 608 00:33:26,400 --> 00:33:28,480 我々は数を表すために使用することができます。 609 00:33:28,480 --> 00:33:33,480 そこで、例えば、このCS50 IDをis-- 私はそれが64ビットのコンピュータだと思います。 610 00:33:33,480 --> 00:33:37,520 >> フロートのみを表すことができます。 これらのビットの有限量だけ。 611 00:33:37,520 --> 00:33:42,260 だから0.1無限のゼロで、 そののは0.1であった、右ですか? 612 00:33:42,260 --> 00:33:45,450 しかし、我々は実際に保管することはできません 当社のコンピュータでその数。 613 00:33:45,450 --> 00:33:47,810 私達はちょうど持っていません これを行うには十分なメモリ。 614 00:33:47,810 --> 00:33:52,340 >> だから最も近い近似 どのメモリに格納されていることは実際にあります 615 00:33:52,340 --> 00:33:55,390 0.000何かのようなもの、 何か、何か、何か。 616 00:33:55,390 --> 00:34:01,240 どの、あなた切り捨て回 それは、0.0にダウン丸めます。 617 00:34:01,240 --> 00:34:05,640 >> ので、この例では、一つだけです それは、問題の多くを示してい 618 00:34:05,640 --> 00:34:08,469 私たちがしているときはいつでも、私たちは持っています 間違って数学をやろうとしています 619 00:34:08,469 --> 00:34:11,000 異なる整数としてキャストなし。 620 00:34:11,000 --> 00:34:14,870 だからこの出来事を警戒します。 621 00:34:14,870 --> 00:34:18,239 >> クイズでは、我々はあなたを与える場合 コー​​ドのブロックと、それはようなものです、 622 00:34:18,239 --> 00:34:19,510 何が最後に出力しますか? 623 00:34:19,510 --> 00:34:24,096 そして、それはいくつかのランダムな値だ場合 それが起こって、なぜ人は知っている必要があります。 624 00:34:24,096 --> 00:34:24,909 うん? 625 00:34:24,909 --> 00:34:27,926 >> 聴衆:切り捨ては取り除くされます 特定のポイントの後のすべて? 626 00:34:27,926 --> 00:34:28,513 [聞こえません] 627 00:34:28,513 --> 00:34:30,929 教授:ええ、実際にそう これは本当に悪い例であり、 628 00:34:30,929 --> 00:34:37,870 実際に0.100どんな理由 0.1まで切り捨てることになります。 629 00:34:37,870 --> 00:34:41,389 あなたがit--を実行した場合しかし、私はしないでください 覚えて、昨年彼らので、 630 00:34:41,389 --> 00:34:42,830 別のプログラムでそれを実行しました。 631 00:34:42,830 --> 00:34:45,300 彼らはと呼ばれるもので、それを実行しました これはCS50アプライアンス、 632 00:34:45,300 --> 00:34:46,389 IDとは異なります。 633 00:34:46,389 --> 00:34:48,520 それは、私が思うに、32ビットのシステムでした。 634 00:34:48,520 --> 00:34:50,290 それで異なる番号がありました。 635 00:34:50,290 --> 00:34:53,330 >> しかし、本質的に、ちょうどそれを知っています 切り捨ての全体のコンセプト 636 00:34:53,330 --> 00:34:54,815 どのようにそれだけで物事を遮断します。 637 00:34:54,815 --> 00:34:55,690 そしてそれならばrounds-- 638 00:34:55,690 --> 00:34:56,300 >> 聴衆:丸めなし。 639 00:34:56,300 --> 00:34:57,370 >> 教授:その通り。 640 00:34:57,370 --> 00:34:57,870 うん。 641 00:34:57,870 --> 00:35:02,330 642 00:35:02,330 --> 00:35:04,380 クール。 643 00:35:04,380 --> 00:35:05,250 >> こんにちは、バックインチ 644 00:35:05,250 --> 00:35:07,634 我々はいくつかの上で行っています クイズの復習問題。 645 00:35:07,634 --> 00:35:08,430 >> 大丈夫。 646 00:35:08,430 --> 00:35:10,150 だからここに別のプログラムを検討してください。 647 00:35:10,150 --> 00:35:12,797 648 00:35:12,797 --> 00:35:15,380 私はA君たちを与えるつもりです 数分は、この上で読み取ります。 649 00:35:15,380 --> 00:35:18,588 これは非常にためたものです 最近、私はあなたの多くを吹いたと思うこと 650 00:35:18,588 --> 00:35:19,142 みんなの心。 651 00:35:19,142 --> 00:35:21,100 しかし、我々は話をするつもりです このを通じてもう一度だけ 652 00:35:21,100 --> 00:35:24,152 あなたを確認します それを完全に理解しています。 653 00:35:24,152 --> 00:35:24,652 OK。 654 00:35:24,652 --> 00:35:41,280 655 00:35:41,280 --> 00:35:41,780 OK。 656 00:35:41,780 --> 00:35:44,342 誰もがより多くの時間を必要とします このコードを読みますか? 657 00:35:44,342 --> 00:35:45,650 OK。 658 00:35:45,650 --> 00:35:50,630 >> だから、と私には思われます このプログラムでは、私はよ 659 00:35:50,630 --> 00:35:53,460 GetStringを使用して2つの文字列を作成します。 660 00:35:53,460 --> 00:35:55,180 ワンと呼ばれるsおよび1トンと呼ばれます。 661 00:35:55,180 --> 00:35:58,680 そして、それらが等しいなら 互いに等しいです 662 00:35:58,680 --> 00:36:00,880 それは「あなたを印刷する必要があります 同じことを入力します。」 663 00:36:00,880 --> 00:36:04,170 >> しかしelsewise、それは "、あなたを印刷することになります 右」、別のものを入力しましたか? 664 00:36:04,170 --> 00:36:05,990 非常に、非常に単純なようです。 665 00:36:05,990 --> 00:36:08,720 しかし、しかし、実際に私の場合 このプログラムを書いてみます、 666 00:36:08,720 --> 00:36:12,230 その場合でも、私はそうです 入力まったく同じ文字列、 667 00:36:12,230 --> 00:36:15,490 それはまだ "、あなたを印刷 異なるものを入力しました! " 668 00:36:15,490 --> 00:36:18,020 誰もが利用したいん なぜこのプログラムは常に、ショット 669 00:36:18,020 --> 00:36:20,370 応答入力は、その あっても、異なっていて 670 00:36:20,370 --> 00:36:22,090 時の言葉自体は同じですか? 671 00:36:22,090 --> 00:36:24,870 672 00:36:24,870 --> 00:36:29,170 >> だから私はデビッドの愛をinput--した場合 右、お母さんのよう例を使用するには? 673 00:36:29,170 --> 00:36:37,890 S、Tのための小文字のM-O-M 小文字のM-O-Mに等しいです。 674 00:36:37,890 --> 00:36:40,340 私は、を介してこれを実行した場合 そのコード、なぜだろう 675 00:36:40,340 --> 00:36:44,180 "あなたは別のものを入力した?」プリントアウト 676 00:36:44,180 --> 00:36:46,336 >> 誰もがより多くを必要としています このことについて考える時間? 677 00:36:46,336 --> 00:36:47,294 [OK]を、私たちは良いしていると思います。 678 00:36:47,294 --> 00:36:48,716 うん? 679 00:36:48,716 --> 00:36:53,930 >> 聴衆:[OK]を、ので、それは、約何か それは右、メモリに保存されている場合は? 680 00:36:53,930 --> 00:36:54,890 >> 教授:うん。 681 00:36:54,890 --> 00:37:00,400 >> 観客:それはこの場合には、ようなものです 文字列sは、メモリに格納されていますspot-- 682 00:37:00,400 --> 00:37:01,689 私はthis--がゼロで発明しています。 683 00:37:01,689 --> 00:37:02,355 教授:確かに。 684 00:37:02,355 --> 00:37:05,290 聴衆:そして文字列トン メモリ場所に格納され、 685 00:37:05,290 --> 00:37:11,000 167、等が挙げられ、その後、 ゼロは167と等しくありません。 686 00:37:11,000 --> 00:37:12,610 >> 教授:その通り。 687 00:37:12,610 --> 00:37:18,350 [OK]を、ので、この信じられないほどのを覚えています 私たちはあなたたちに説明した啓示 688 00:37:18,350 --> 00:37:21,530 この一週間、その 文字列は実際には存在しないのですか? 689 00:37:21,530 --> 00:37:25,380 我々はと呼ばれるものを作成する場合 実際に私たちがしている文字列、 690 00:37:25,380 --> 00:37:29,330 char型の星と呼ばれるものを作成します。 691 00:37:29,330 --> 00:37:34,470 どのすべてのそれはへのポインタです 文字列や文字の配列に。 692 00:37:34,470 --> 00:37:39,480 >> だから、この例では、私があれば 入力M-O-Mウェイにしました 693 00:37:39,480 --> 00:37:49,350 私のコンピュータはそれが保管することを メモリバックスラッシュゼロ内で、右? 694 00:37:49,350 --> 00:37:53,180 これらの4文字、文字、 どこかに保存されることになります。 695 00:37:53,180 --> 00:37:59,290 >> そして、これら4 文字、バックスラッシュゼロ、 696 00:37:59,290 --> 00:38:01,275 右、どこか別の場所に保存されていますか? 697 00:38:01,275 --> 00:38:04,685 私はどこのアドレス見当がつかない 彼らは私のコンピュータのどこかにいる、あります。 698 00:38:04,685 --> 00:38:07,080 彼らがどこにあるかが、私は正確に知りません。 699 00:38:07,080 --> 00:38:10,170 >> 私は文字列を作成する場合 秒、すべてのことは本当にあります 700 00:38:10,170 --> 00:38:15,550 へのポインタであります この文字列の先頭。 701 00:38:15,550 --> 00:38:21,130 そして、私はこのt値を作成するときに、 すべてのことは、ここへのポインタです。 702 00:38:21,130 --> 00:38:23,980 だから、あなたがしようとしているとき 同一視するとチェックします 703 00:38:23,980 --> 00:38:27,710 sが対等であるかどうかを確認します tに等しく、コンピュータ 704 00:38:27,710 --> 00:38:31,635 本当にただに戻っています あなたこのメートルのアドレス 705 00:38:31,635 --> 00:38:33,390 そのメートルのアドレス。 706 00:38:33,390 --> 00:38:36,230 そして、彼らは、2つだから データの別々の部分 707 00:38:36,230 --> 00:38:38,750 異なる2に格納されています お使いのコンピュータのアドレス、 708 00:38:38,750 --> 00:38:41,750 お使いのコンピュータのに行くことはありません 同じであるとして、それらを認識しています。 709 00:38:41,750 --> 00:38:43,500 誰もがしたいん 私たちに打撃を与えます 710 00:38:43,500 --> 00:38:46,900 我々は修正したい場合に実行する必要のあります この、正しい実行中のプログラムを持っています 711 00:38:46,900 --> 00:38:49,360 代わりに? 712 00:38:49,360 --> 00:38:52,070 数秒のためにそれについて考えてみよう。 713 00:38:52,070 --> 00:38:54,929 我々はに変更する必要がありますどのような このプログラムの機能を取得 714 00:38:54,929 --> 00:38:56,220 我々はそれが機能するようにしたい方法はありますか? 715 00:38:56,220 --> 00:39:17,260 716 00:39:17,260 --> 00:39:18,918 >> ええ、それで刺しを取るしたいですか? 717 00:39:18,918 --> 00:39:24,082 >> 聴衆:私たちは、間接参照しようとすることができます ポインタと、配列を確認してください? 718 00:39:24,082 --> 00:39:25,540 教授:それはそれを行うための一つの方法です。 719 00:39:25,540 --> 00:39:27,880 だから、あなたの名前は再び何ですか? 720 00:39:27,880 --> 00:39:29,010 ごめんなさい、私に思い出させます。 721 00:39:29,010 --> 00:39:29,589 >> ジー:ジー。 722 00:39:29,589 --> 00:39:32,130 教授:ええ、だから何ジー 絶対に働くだろうが示唆されました。 723 00:39:32,130 --> 00:39:32,629 右? 724 00:39:32,629 --> 00:39:35,730 私たちは、ポインタ参照解除できました 実際に行くとアクセス 725 00:39:35,730 --> 00:39:38,460 ここの内部の物理的なデータ。 726 00:39:38,460 --> 00:39:40,300 そして、私たちはただ比較することができます 画面全体。 727 00:39:40,300 --> 00:39:43,670 >> 我々は、[OK]を、ポインタを言うことができ、 ここで中身を私を与えます。 728 00:39:43,670 --> 00:39:44,960 これは、メートルを返します。 729 00:39:44,960 --> 00:39:47,168 そして、私が言う、ポインタ、 ここで中身を私を与えます。 730 00:39:47,168 --> 00:39:47,750 メートルを返します。 731 00:39:47,750 --> 00:39:48,410 これらの試合をしますか? 732 00:39:48,410 --> 00:39:49,410 はい。 733 00:39:49,410 --> 00:39:50,340 その後、我々は上に移動します。 734 00:39:50,340 --> 00:39:54,240 >> 我々は全体の2を定期的にチェックしてください すべての方法まで最後までの文字列 735 00:39:54,240 --> 00:39:56,635 それらが等しい場合には、参照 すべての値が等しい場合。 736 00:39:56,635 --> 00:39:59,680 すべての値が等しい場合、 その後、我々は、文字列が真である知っています。 737 00:39:59,680 --> 00:40:01,600 絶対に、それは我々がそれを行うだろうかですか? 738 00:40:01,600 --> 00:40:03,930 >> 誰もこれのいずれかで混乱していますか? 739 00:40:03,930 --> 00:40:06,970 どのように文字列の全体のコンセプト 本当にただのポインタです、 740 00:40:06,970 --> 00:40:08,440 どのように彼らは本当に存在しないのですか? 741 00:40:08,440 --> 00:40:10,480 そして、なぜ我々はエラーが出ます 我々はそれを得る方法のように? 742 00:40:10,480 --> 00:40:15,070 私はあなたたち、ポインタを保証しているため 文字列の割り当てとメモリ 743 00:40:15,070 --> 00:40:16,470 思い付くしようとしています。 744 00:40:16,470 --> 00:40:17,410 >> うん? 745 00:40:17,410 --> 00:40:21,072 >> 聴衆:[聞こえない]間接参照 それは、あなただけの星を入れて[聞こえません] 746 00:40:21,072 --> 00:40:21,780 教授:右。 747 00:40:21,780 --> 00:40:28,430 だから、ポインタ手段をderererenceします ポインタのそのアドレスに移動します 748 00:40:28,430 --> 00:40:30,390 データ、そこに値を取得します。 749 00:40:30,390 --> 00:40:32,700 そして、それを行う方法は星のポインタです。 750 00:40:32,700 --> 00:40:34,262 それを混同しないでください。 751 00:40:34,262 --> 00:40:35,186 >> 聴衆:[聞こえません]。 752 00:40:35,186 --> 00:40:35,852 >> 教授:ええ。 753 00:40:35,852 --> 00:40:39,750 聴衆:だからあなただけ書くことができます 星の等しいスターTに等しい場合。 754 00:40:39,750 --> 00:40:40,630 >> 教授:まあ、ありません。 755 00:40:40,630 --> 00:40:40,960 いいえ。 756 00:40:40,960 --> 00:40:41,640 >> 観客:それは右、十分ではないのか? 757 00:40:41,640 --> 00:40:43,760 >> 教授:あなたがしているので、それはありません 最初の文字だけをチェックします。 758 00:40:43,760 --> 00:40:46,010 あなたは、おそらくしようとしています ループのいくつかの並べ替えを必要とします 759 00:40:46,010 --> 00:40:49,055 ひとつひとつを反復 両方の文字列内の文字。 760 00:40:49,055 --> 00:40:49,837 うん。 761 00:40:49,837 --> 00:40:52,920 だから、あなただけのかを確認したい場合 彼らは同じことで開始した場合、 762 00:40:52,920 --> 00:40:58,220 あなたは、星の場合は行うことができます Sはスタートンに等しいです。 763 00:40:58,220 --> 00:41:01,300 そして、あなたが知っている、少なくとも彼ら 同じ文字で開始しました。 764 00:41:01,300 --> 00:41:01,952 >> うん? 765 00:41:01,952 --> 00:41:04,056 >> 聴衆:だから方法 あなたはそれは次のようになります 766 00:41:04,056 --> 00:41:06,064 ループまたはポインタに埋め込まれたような? 767 00:41:06,064 --> 00:41:06,730 教授:ええ。 768 00:41:06,730 --> 00:41:08,170 かなり単にforループ。 769 00:41:08,170 --> 00:41:12,430 クラスのデビッド言及したことを覚えておいてください 無料のシンタックスシュガー? 770 00:41:12,430 --> 00:41:17,690 そして、彼は非常にこれを持っていました 星tの混乱もの 771 00:41:17,690 --> 00:41:22,030 プラスワン、それが統合になります 通って、それがポインタを移動? 772 00:41:22,030 --> 00:41:29,910 行うための簡単​​な方法 これは私だけのトンです。 773 00:41:29,910 --> 00:41:31,090 >> だから、配列だけです。 774 00:41:31,090 --> 00:41:34,630 あなたが持っているであろうこと方法 ゼロから私に走っループ、どこ 775 00:41:34,630 --> 00:41:36,580 私はの長さであり、 文字列、あなただけの可能性 776 00:41:36,580 --> 00:41:39,510 その代わりに行うので書きます 全体のポインタ、参照の事。 777 00:41:39,510 --> 00:41:43,510 したがって、これらの事はまったく同じです お使いのコンピュータで同等。 778 00:41:43,510 --> 00:41:45,905 >> 君たちはおそらくないでしょう それを知っている必要があり、 779 00:41:45,905 --> 00:41:48,280 それだけの種類のに良いことです 後ろにあなたの心を持っています。 780 00:41:48,280 --> 00:41:52,630 ただ、コンピュータがことを知っています コー​​ドの異なるブロックを認識し、 781 00:41:52,630 --> 00:41:53,890 同じことのように。 782 00:41:53,890 --> 00:41:57,510 これは単なるはるかユーザーであるため それはだように、私たちはそれを提示するのはやさしいです 783 00:41:57,510 --> 00:41:58,150 配列。 784 00:41:58,150 --> 00:42:00,990 それだけで簡単です。 785 00:42:00,990 --> 00:42:02,719 >> 聴衆:だから好きにはstrlenを使用し、get-- 786 00:42:02,719 --> 00:42:03,385 教授:ええ。 787 00:42:03,385 --> 00:42:03,926 聴衆:[OK]をクリックします。 788 00:42:03,926 --> 00:42:05,940 教授:あなたは可能性が あなたがあれば、strlen関数を使用または 789 00:42:05,940 --> 00:42:10,420 あなたはちょうど行うことができますstrlen関数がありませんでした あなたは両方のためにバックスラッシュゼロを打つまで。 790 00:42:10,420 --> 00:42:11,568 いずれかが動作します。 791 00:42:11,568 --> 00:42:12,068 うん。 792 00:42:12,068 --> 00:42:14,871 793 00:42:14,871 --> 00:42:17,996 観客は:だから、すべての間接参照にです 私たちは実際にあった場合は単一の文字 794 00:42:17,996 --> 00:42:21,044 我々は、このコードを書きます ちょうどトンブラケットiを行うことができます 795 00:42:21,044 --> 00:42:22,460 その前にスターを好きですか? 796 00:42:22,460 --> 00:42:27,700 >> 教授:ええ、等号秒に等しいです 私は、そして私を動かし続けるブラケット 797 00:42:27,700 --> 00:42:29,790 あなたが最後のヒットまでダウン。 798 00:42:29,790 --> 00:42:31,286 ええ、それはあなたがどうなるかです。 799 00:42:31,286 --> 00:42:33,660 そして、私は実際には次があるでしょう 実際にときに我々の例 800 00:42:33,660 --> 00:42:36,740 あなたたちは一種ますので、strlen関数を書きます それを少しいじってもらいます。 801 00:42:36,740 --> 00:42:43,567 >> それでは、メモリ上の誰も明確です 文字列、ポインタ、品質のアドレス? 802 00:42:43,567 --> 00:42:46,650 そのあなたいくつかのより高いレベルの概念 クイズで知るようにしてください必要性のための意志 803 00:42:46,650 --> 00:42:48,928 明日。 804 00:42:48,928 --> 00:42:49,904 >> 大丈夫。 805 00:42:49,904 --> 00:42:50,404 良い。 806 00:42:50,404 --> 00:42:54,824 807 00:42:54,824 --> 00:42:55,324 うん。 808 00:42:55,324 --> 00:42:58,770 809 00:42:58,770 --> 00:43:04,180 我々はまた、お願いします[OK]を、ので、一つのこと あなた、私たちはクイズに毎年行うよう、され、 810 00:43:04,180 --> 00:43:08,340 (あなたが忘れてしまったとしています 私たちは毎年行うことを忘れているようです) 811 00:43:08,340 --> 00:43:10,810 ここでヘッダファイルのstrlenが宣言されています。 812 00:43:10,810 --> 00:43:13,860 そして、私たちはそれを自分自身を書き換える必要があります。 813 00:43:13,860 --> 00:43:16,350 >> ここではガイドラインのリストがあります 私たちはあなたを提示することができること 814 00:43:16,350 --> 00:43:20,660 あなたがいると仮定してもらう男 文字列がnullではありませんよ。 815 00:43:20,660 --> 00:43:23,830 あなたはSがされると仮定することができます バックスラッシュゼロで終了。 816 00:43:23,830 --> 00:43:26,670 だから、それが何を知っています それは、で終わるだろう。 817 00:43:26,670 --> 00:43:29,500 >> そして、例えば、その ハローの長さは5になります。 818 00:43:29,500 --> 00:43:32,890 だから、そのハローをとることができます 5、H-E-L-L-Oになります。 819 00:43:32,890 --> 00:43:35,890 あなたがいることを想定する必要はありません 長さゼロのアカウントを裏側。 820 00:43:35,890 --> 00:43:39,720 821 00:43:39,720 --> 00:43:42,300 >> ここで、この最後のものは、ありません 整数オーバーフローを心配します。 822 00:43:42,300 --> 00:43:45,270 誰もが覚えていません 何整数オーバーフローのですか? 823 00:43:45,270 --> 00:43:48,041 >> 者:超えて行きます [聞こえない]の長さ。 824 00:43:48,041 --> 00:43:50,740 >> 教授:ええ、あなたが説明することができます ビット、それは何を意味するのでしょうか? 825 00:43:50,740 --> 00:43:55,330 >> 聴衆:だから、私はそれが戻って推測 以前の切捨て例に。 826 00:43:55,330 --> 00:43:58,380 しかし、あなただけの非常に多くの数字を持っている場合 それは、ビット数を超えて 827 00:43:58,380 --> 00:44:01,409 あなたが実際にそれを割り当てることができます それだけの種類のカットオフされること。 828 00:44:01,409 --> 00:44:04,242 教授:ええ、そう典型的に コンピュータ、我々はどのように多くのビットを持っていますか? 829 00:44:04,242 --> 00:44:05,306 聴衆:32? 830 00:44:05,306 --> 00:44:06,430 教授:ええ、32、右。 831 00:44:06,430 --> 00:44:10,030 そして、そのためには、何を、4です 億、20億? 832 00:44:10,030 --> 00:44:13,579 40億までの40億、 正の整数、右? 833 00:44:13,579 --> 00:44:15,370 二億負、 正の20億、 834 00:44:15,370 --> 00:44:16,900 あなたはそれをしたいかによって異なります。 835 00:44:16,900 --> 00:44:21,470 >> だから基本的に私たちが持っていることができます 上がることができます十分な整数 836 00:44:21,470 --> 00:44:25,800 31日には2つのマイナス1に、右? 837 00:44:25,800 --> 00:44:27,980 我々は、2つを打つ一度ので 第32回に、私たちにはありません 838 00:44:27,980 --> 00:44:30,040 当社のコンピュータでその多くのメモリを持っています。 839 00:44:30,040 --> 00:44:32,310 >> だから、理論的には、私 数を思い付くことができ 840 00:44:32,310 --> 00:44:34,560 それは、のように、第46回には2つです。 841 00:44:34,560 --> 00:44:38,040 これは、巨大なお尻の番号ですが、 理論的には、あなたは可能性があります。 842 00:44:38,040 --> 00:44:42,730 あなたがしようとするので、整数オーバーフローがあります 何を超えた整数を作成 843 00:44:42,730 --> 00:44:44,790 お使いのコンピュータは、記憶することができます。 844 00:44:44,790 --> 00:44:46,590 >> 用だから君たち この例ではありません 845 00:44:46,590 --> 00:44:51,330 私たちはあなたに巨大なを与えることを心配します 第32回の文字には、2つの文字列であります 846 00:44:51,330 --> 00:44:51,830 ロング。 847 00:44:51,830 --> 00:44:54,010 それは本当に意味することになります。 848 00:44:54,010 --> 00:44:59,430 >> すべての権利、私はちょうど与えるつもりです 君たちこれの基本構造。 849 00:44:59,430 --> 00:45:02,020 あなたが作成しようとしています int型のstrlen呼び出される関数 850 00:45:02,020 --> 00:45:08,436 char型のスター、中域、または文字列、 Sと呼ばれる文字列へのポインタ。 851 00:45:08,436 --> 00:45:10,820 >> すべての権利、誰もがそれを下にコピーします。 852 00:45:10,820 --> 00:45:13,550 853 00:45:13,550 --> 00:45:14,850 クール。 854 00:45:14,850 --> 00:45:17,020 他の方法Oops--。 855 00:45:17,020 --> 00:45:21,360 >> だから、これは次のような種類のあります 問題の困難作品、 856 00:45:21,360 --> 00:45:25,320 私はあなたに多分5人をあげます ブレーンストーミングのようなものに6分 857 00:45:25,320 --> 00:45:27,478 この機能を書き出します。 858 00:45:27,478 --> 00:45:29,710 >> 聴衆:我々はしないでください [聞こえない]のアカウント、 859 00:45:29,710 --> 00:45:30,200 我々は、整数を使用する必要はありませんか? 860 00:45:30,200 --> 00:45:31,241 >> 教授:いいえ、その必要はありません。 861 00:45:31,241 --> 00:48:05,847 862 00:48:05,847 --> 00:48:06,930 私はあなたたちにヒントを与えるでしょう。 863 00:48:06,930 --> 00:48:12,325 whileループは、ここで非常に有用である可能性があります。 864 00:48:12,325 --> 00:48:12,825 うん。 865 00:48:12,825 --> 00:48:44,995 866 00:48:44,995 --> 00:48:45,495 ここでの 867 00:48:45,495 --> 00:48:45,995 キャンディ。 868 00:48:45,995 --> 00:48:49,980 869 00:48:49,980 --> 00:48:53,410 キャンディも利用できるようになります クイズのために、私は思います。 870 00:48:53,410 --> 00:48:55,315 だから人はすべてになります 明日まで砂糖。 871 00:48:55,315 --> 00:49:01,110 872 00:49:01,110 --> 00:49:02,962 あなたはそれを得たI--ことができます。 873 00:49:02,962 --> 00:49:03,718 >> 聴衆:[OK]をクリックします。 874 00:49:03,718 --> 00:49:04,384 教授:ええ。 875 00:49:04,384 --> 00:49:10,550 876 00:49:10,550 --> 00:49:11,870 >> たぶん30秒以上かそこら。 877 00:49:11,870 --> 00:50:02,220 878 00:50:02,220 --> 00:50:07,340 >> すべての権利、あなたがしている場合 行われていない、心配ありません。 879 00:50:07,340 --> 00:50:08,810 私たちは一緒にこの間を移動します。 880 00:50:08,810 --> 00:50:09,310 OK。 881 00:50:09,310 --> 00:50:13,800 だから、僕はレイアウトに行きますよ ここで、この機能のための基本的な構造。 882 00:50:13,800 --> 00:50:17,255 strlen関数のInt。 883 00:50:17,255 --> 00:50:20,040 884 00:50:20,040 --> 00:50:23,460 まず、誰もが伝えたいん 私は何そのintは意味? 885 00:50:23,460 --> 00:50:25,160 我々は、この機能を持っている必要があります。 886 00:50:25,160 --> 00:50:26,709 >> 聴衆:STRLEN [聞こえません]。 887 00:50:26,709 --> 00:50:27,500 教授:その通り。 888 00:50:27,500 --> 00:50:31,140 だからここで起こるものは何でも、 我々は、整数を返す必要があります。 889 00:50:31,140 --> 00:50:36,367 そして、に指定されています スペック、我々はreturn--たい 890 00:50:36,367 --> 00:50:37,700 ちょうど続ける、それがみんなのために行きます。 891 00:50:37,700 --> 00:50:40,480 大丈夫だよー。 892 00:50:40,480 --> 00:50:42,960 私が持っていないそれをすべて食べます 実際に、それを取り戻します。 893 00:50:42,960 --> 00:50:46,022 894 00:50:46,022 --> 00:50:48,855 int型はちょうどあなたがしていることを意味します 整数を返すことになるだろう。 895 00:50:48,855 --> 00:50:55,350 896 00:50:55,350 --> 00:50:57,106 >> このchar型のスターSとは何ですか? 897 00:50:57,106 --> 00:50:58,640 どういう意味ですか? 898 00:50:58,640 --> 00:51:00,879 >> 聴衆:で入力されているものと同様に、。 899 00:51:00,879 --> 00:51:01,670 教授:その通り。 900 00:51:01,670 --> 00:51:04,142 そして、ほとんど何です char型の星と同じもの? 901 00:51:04,142 --> 00:51:04,850 聴衆:文字列? 902 00:51:04,850 --> 00:51:05,641 教授:その通り。 903 00:51:05,641 --> 00:51:09,080 だから、私たちはやっているすべては与えています この文字列へのポインタ。 904 00:51:09,080 --> 00:51:09,580 OK。 905 00:51:09,580 --> 00:51:12,860 906 00:51:12,860 --> 00:51:13,360 クール。 907 00:51:13,360 --> 00:51:16,650 >> 私たちが忘れてしまった場合にも、忘れてはいけません あなたにこれらのブラケットを与えるために、 908 00:51:16,650 --> 00:51:18,330 それらを自分で書くことを忘れないでください。 909 00:51:18,330 --> 00:51:20,720 理論的には、あなたのコードがあるため あなたがそれらを書くことを忘れてしまった場合、誤りました。 910 00:51:20,720 --> 00:51:21,803 ただ、常に注意を払います。 911 00:51:21,803 --> 00:51:23,750 同様に、ささいなこと あなたが気づかないこと 912 00:51:23,750 --> 00:51:26,917 あなたのラップトップ上でプログラミングしているとき、 あなたのラップトップがあなたのためにそれをしない理由? 913 00:51:26,917 --> 00:51:28,624 時を忘れてはいけません あなたが手で書いています。 914 00:51:28,624 --> 00:51:29,170 うん? 915 00:51:29,170 --> 00:51:30,954 >> 聴衆:しかし、どのように間違いましたか? 916 00:51:30,954 --> 00:51:33,190 同様に、私たちは間違った問題全体を得るのですか? 917 00:51:33,190 --> 00:51:34,190 >> 教授:いいえ、ありません。 918 00:51:34,190 --> 00:51:34,860 心配しないでください。 919 00:51:34,860 --> 00:51:39,270 それは実際に理論的には可能です あなたは質問に完全なポイントを取得するために 920 00:51:39,270 --> 00:51:41,980 でも、あなたのコードがする場合 実際の生活の中で実行されません。 921 00:51:41,980 --> 00:51:46,052 私は、あなたがしようとしない示唆します それを実現するために。 922 00:51:46,052 --> 00:51:48,260 たとえば、すべての場合のように それがここに右です、 923 00:51:48,260 --> 00:51:51,850 しかし、あなたは、結腸またはブラケットを忘れて、 あなたのコードが実際に実行されません。 924 00:51:51,850 --> 00:51:53,740 しかし、我々は慈悲深いかもしれません。 925 00:51:53,740 --> 00:51:54,394 >> うん? 926 00:51:54,394 --> 00:51:56,050 >> 観客:あなたがする必要がありますか 私たちの筆跡にコメント? 927 00:51:56,050 --> 00:51:57,758 >> 教授:いや、いや、ありません そのことについて心配。 928 00:51:57,758 --> 00:51:58,440 ノーコメント。 929 00:51:58,440 --> 00:51:59,400 スタイルは良いことがあります。 930 00:51:59,400 --> 00:52:01,470 同様に、押しつぶすはありません 1行にすべて。 931 00:52:01,470 --> 00:52:04,580 私たちは幸せではありません あなたとあなたがそれを行う場合。 932 00:52:04,580 --> 00:52:07,250 >> 誰もがしたいん 私の最初の行を与えますか? 933 00:52:07,250 --> 00:52:08,633 ヒント、それは非常に簡単です。 934 00:52:08,633 --> 00:52:09,320 >> うん? 935 00:52:09,320 --> 00:52:11,920 >> 聴衆:int型、nはゼロに等しいです。 936 00:52:11,920 --> 00:52:13,734 ただ、カウンタを設定します。 937 00:52:13,734 --> 00:52:15,900 教授:だから我々はいくつかをしたいです カウンタの種類、右? 938 00:52:15,900 --> 00:52:19,780 私は「カウント」という名前をするつもりです 読みやすさのために。 939 00:52:19,780 --> 00:52:21,265 私たちは同じに設定したいですか? 940 00:52:21,265 --> 00:52:21,890 >> 聴衆:ゼロ。 941 00:52:21,890 --> 00:52:23,840 教授:うん。 942 00:52:23,840 --> 00:52:24,340 セミコロン。 943 00:52:24,340 --> 00:52:26,250 それはまた、非常に奇妙な描画セミコロンです。 944 00:52:26,250 --> 00:52:28,870 ちょうどそれをやって練習します。 945 00:52:28,870 --> 00:52:31,990 >> だから我々は最初に持っていたいです int型のカウンター。 946 00:52:31,990 --> 00:52:35,360 私たちはどのようにカウントアップしたいので 多くの文字や文字があります 947 00:52:35,360 --> 00:52:36,780 この文字列で、右か? 948 00:52:36,780 --> 00:52:38,330 非常に簡単な最初のステップ。 949 00:52:38,330 --> 00:52:42,140 >> [OK]を、多分少し複雑 今、どのように我々はそうするつもりですか? 950 00:52:42,140 --> 00:52:45,400 誰もがしたいん 私はコードの行を与えます 951 00:52:45,400 --> 00:52:48,450 それは、ループを助けることができるかもしれません どんなを通じてこれは? 952 00:52:48,450 --> 00:52:54,540 953 00:52:54,540 --> 00:52:56,900 >> バックでええ、勇敢な魂? 954 00:52:56,900 --> 00:53:06,832 >> 聴衆:[OK]を、ので、しばらくポイント アスタリスク、Sのええ、星、 955 00:53:06,832 --> 00:53:09,465 ゼロに等しくない場合は、何かをしますか? 956 00:53:09,465 --> 00:53:11,090 教授:それは本当に、本当に近いです。 957 00:53:11,090 --> 00:53:11,835 本当に近いです。 958 00:53:11,835 --> 00:53:13,710 だから私は対処するつもりです それに二つのこと。 959 00:53:13,710 --> 00:53:18,240 まず第一に、それは正確にゼロではありません。 960 00:53:18,240 --> 00:53:20,110 それは何ですか? 961 00:53:20,110 --> 00:53:22,550 これは、ヌル終端ですが、 これはバックスラッシュゼロです。 962 00:53:22,550 --> 00:53:24,960 そこで、彼らはで異なっています それらが保存されているかという点。 963 00:53:24,960 --> 00:53:26,270 だから、本当に近いです。 964 00:53:26,270 --> 00:53:30,330 >> そして第二に、私たちは望んでいません 単にポインタを移動します。 965 00:53:30,330 --> 00:53:32,320 私たちは、実際にしたいです 右、値にアクセスしますか? 966 00:53:32,320 --> 00:53:34,050 だからどのように我々はそれを行うのですか? 967 00:53:34,050 --> 00:53:34,550 非常に簡単。 968 00:53:34,550 --> 00:53:36,841 ポインタについて考えてはいけません、 思い出について考えていません。 969 00:53:36,841 --> 00:53:38,525 このコースの2週に戻ります。 970 00:53:38,525 --> 00:53:39,555 >> 聴衆:[聞こえません]。 971 00:53:39,555 --> 00:53:40,680 教授:のように、覚えていますか? 972 00:53:40,680 --> 00:53:41,400 文字列は何ですか? 973 00:53:41,400 --> 00:53:42,650 彼らはどのようにメモリに保存されていますか? 974 00:53:42,650 --> 00:53:43,300 >> 観客:彼らは上昇しています。 975 00:53:43,300 --> 00:53:43,810 >> 教授:彼らは上昇しています。 976 00:53:43,810 --> 00:53:45,550 だから我々はどのようにアクセスします 内部の各文字? 977 00:53:45,550 --> 00:53:46,466 >> 聴衆:[聞こえません]。 978 00:53:46,466 --> 00:53:47,530 教授:その通り。 979 00:53:47,530 --> 00:53:53,195 だからここ内側何が起こっwhile--? 980 00:53:53,195 --> 00:53:54,940 S - 981 00:53:54,940 --> 00:53:55,920 >> 聴衆:I. 982 00:53:55,920 --> 00:53:58,216 >> 教授:ああ、私は存在しないが、それをしませんか? 983 00:53:58,216 --> 00:53:59,620 >> 聴衆:ああ、カウント? 984 00:53:59,620 --> 00:54:01,640 >> 教授:私たちはすることができます 我々はできない、カウントを使うのか? 985 00:54:01,640 --> 00:54:03,050 >> 聴衆:申し訳ありませんが、私はそれを呼びました。 986 00:54:03,050 --> 00:54:04,341 >> 教授:ええ、それはすべて良いことです。 987 00:54:04,341 --> 00:54:06,710 988 00:54:06,710 --> 00:54:10,760 我々はそれがだ、ここで変数を持っています すでに私たちのカウンタとして宣言されて。 989 00:54:10,760 --> 00:54:13,650 では、なぜ私たちはそれを使用しないでください whileループ内を移動するには? 990 00:54:13,650 --> 00:54:15,230 それは理にかなっていますか? 991 00:54:15,230 --> 00:54:20,864 >> だからcount--のsは誰もしたいんが ここで後に何が起こるか私を与えるには? 992 00:54:20,864 --> 00:54:22,030 観客:それは等しくありません。 993 00:54:22,030 --> 00:54:23,405 教授:右、等しくないのですか? 994 00:54:23,405 --> 00:54:26,200 これは、ビッグバンの対等です、 感嘆符は、等しいです 995 00:54:26,200 --> 00:54:28,500 あなたたちがしたいものは何でも equal--ませんそれを呼び出します 996 00:54:28,500 --> 00:54:29,496 >> 聴衆:[聞こえません]。 997 00:54:29,496 --> 00:54:30,990 >> 教授:ええ。 998 00:54:30,990 --> 00:54:37,110 、charの単一引用符を覚えています 二重引用符は、文字列のためのものです。 999 00:54:37,110 --> 00:54:38,630 それらを使用する場合は注意してください。 1000 00:54:38,630 --> 00:54:42,430 だから我々はを通して見ているとき 配列、最後の文字、 1001 00:54:42,430 --> 00:54:46,420 私たちは望んでいない知っています それはバックスラッシュゼロにします。 1002 00:54:46,420 --> 00:54:47,340 >> しばらくそう。 1003 00:54:47,340 --> 00:54:48,840 私たちは、文字列の最後にはありません。 1004 00:54:48,840 --> 00:54:52,335 私たちは、内部の何をしたいですか? 1005 00:54:52,335 --> 00:54:55,269 >> 観客:我々はに追加します カウンタは、カウントプラスプラスそう? 1006 00:54:55,269 --> 00:54:56,060 教授:その通り。 1007 00:54:56,060 --> 00:55:03,064 そこでここでは、やろうとしています カウント、カウントプラスプラス。 1008 00:55:03,064 --> 00:55:03,980 1行がありません。 1009 00:55:03,980 --> 00:55:05,090 私たちはほとんどがしています。 1010 00:55:05,090 --> 00:55:07,398 私たちは何をする忘れていますか? 1011 00:55:07,398 --> 00:55:08,770 >> 聴衆:ゼロを返しますか? 1012 00:55:08,770 --> 00:55:10,820 >> 教授:あなたがゼロを返すようにしたいですか? 1013 00:55:10,820 --> 00:55:12,962 >> 聴衆:いいえ、strlenをに戻ります。 1014 00:55:12,962 --> 00:55:13,511 待つ。 1015 00:55:13,511 --> 00:55:14,760 教授:に格納されていますか? 1016 00:55:14,760 --> 00:55:15,090 聴衆:カウント。 1017 00:55:15,090 --> 00:55:15,589 カウント。 1018 00:55:15,589 --> 00:55:17,150 教授:その通り。 1019 00:55:17,150 --> 00:55:20,760 そこでここでは、カウントを返すつもりです。 1020 00:55:20,760 --> 00:55:23,450 1021 00:55:23,450 --> 00:55:25,380 >> 私たちは何をしているため、 ここで行ってultimately-- 1022 00:55:25,380 --> 00:55:29,780 我々はだカウンタ変数を持っています 私たちの文字列を介してインクリメントする予定。 1023 00:55:29,780 --> 00:55:33,050 我々は続けるつもりだ、続けます このループの周りとその周辺、行きます。 1024 00:55:33,050 --> 00:55:37,700 そして、我々は、このの終わりにないている間 null終端文字列です。 1025 00:55:37,700 --> 00:55:40,410 >> そして、我々が通過するたびに それは、私たちはカウンターに追加しています。 1026 00:55:40,410 --> 00:55:42,640 そして、我々はさらにつもりです この配列内に沿って。 1027 00:55:42,640 --> 00:55:44,880 そして最後に、私たちは一度 ヌルターミネータを打ちます、 1028 00:55:44,880 --> 00:55:48,469 私たちは、私たちすることができ、ああ、知っています 壊れ、数を返します。 1029 00:55:48,469 --> 00:55:49,260 私たちは、strlen関数を持っています。 1030 00:55:49,260 --> 00:55:52,280 1031 00:55:52,280 --> 00:55:56,400 >> 誰もがどのように取得しています これが実装されましたか? 1032 00:55:56,400 --> 00:55:58,830 私が知っているloops--ながら、私たちはそうではありません 彼らとあまりにも多く行われ、 1033 00:55:58,830 --> 00:56:01,240 しかし、彼らは通常です あなたの場合、非常に、非常に便利 1034 00:56:01,240 --> 00:56:05,390 あなたが停止しているかわかりません 条件は必ずしもにする必要があります。 1035 00:56:05,390 --> 00:56:06,220 >> 質問? 1036 00:56:06,220 --> 00:56:10,080 >> 聴衆:私たちは、nullを書くことができます while条件の? 1037 00:56:10,080 --> 00:56:10,940 >> 教授:ながら? 1038 00:56:10,940 --> 00:56:15,304 うん、そうこの問題で私はあなたを持っていました 人はsがNULLでないことを前提としています。 1039 00:56:15,304 --> 00:56:17,220 覚えているので、 理論的には、私はあなたを与えた場合 1040 00:56:17,220 --> 00:56:21,180 メモリの大きすぎたポインタ、 それは正しい、あなたはnullを与えるだろうか? 1041 00:56:21,180 --> 00:56:23,770 それは何の動作 システムが行うだろう。 1042 00:56:23,770 --> 00:56:26,960 >> だから私は仮定することを教えてくれなかった場合 sがNULLになり、あなたは確認する必要があります。 1043 00:56:26,960 --> 00:56:32,050 だからここまで、あなたはどうしたら、sの場合 ヌル等しい等しく、1を返します。 1044 00:56:32,050 --> 00:56:33,028 そのような何か。 1045 00:56:33,028 --> 00:56:34,153 聴衆:[聞こえない]ゼロ。 1046 00:56:34,153 --> 00:56:37,287 1047 00:56:37,287 --> 00:56:39,370 教授:[OK]を、私は教えてあげましょう あなた、なぜ我々はそれを行うことはできません。 1048 00:56:39,370 --> 00:56:43,357 そのため、右、ここでは、メモリ内に覚えています。 1049 00:56:43,357 --> 00:56:43,940 私たちはここに行きますよ。 1050 00:56:43,940 --> 00:56:49,940 1051 00:56:49,940 --> 00:56:54,090 >> あなたは巨大なブロックを持っています メモリのすべてのグリッドで 1052 00:56:54,090 --> 00:56:56,680 その店の異なる値、右? 1053 00:56:56,680 --> 00:57:00,110 だから、すべての文字列がためis-- 例えば、我々はハロー入力する場合は、 1054 00:57:00,110 --> 00:57:05,490 それは、H-E-L-L-Oになります バックスラッシュゼロ、右? 1055 00:57:05,490 --> 00:57:09,570 そして、誰がランダムのように、知っています それの後にここにある事。 1056 00:57:09,570 --> 00:57:11,220 >> 私たちは、実際にそこに何があるか分かりません。 1057 00:57:11,220 --> 00:57:13,350 そしてそうあなたがした場合 代わりに、バックスラッシュゼロの、 1058 00:57:13,350 --> 00:57:15,590 ヌルは、nullではないかもしれません。 1059 00:57:15,590 --> 00:57:17,680 それだけでは意味がありますので いくつかのランダムな他のもの 1060 00:57:17,680 --> 00:57:19,270 それはあなたの文字列に属していません。 1061 00:57:19,270 --> 00:57:23,219 だから私たちは常にことを知っている方法を 終了文字列はバックスラッシュゼロです。 1062 00:57:23,219 --> 00:57:25,760 そして、そのためには、常にどのように我々です 文字列の最後を見て確認してください。 1063 00:57:25,760 --> 00:57:30,820 >> あなたが持っている場合はnull、すべてのことの手段があります すべての最初の非存在ポインタ、 1064 00:57:30,820 --> 00:57:36,160 またはあなたの記憶は、単に非常に大きい場合 あなたはそれを返すことができない、それはnullになるだろう。 1065 00:57:36,160 --> 00:57:40,150 差別ときに非常に注意してください ヌルの違い 1066 00:57:40,150 --> 00:57:42,130 バックスラッシュゼロ。 1067 00:57:42,130 --> 00:57:43,670 うん。 1068 00:57:43,670 --> 00:57:46,886 >> これでOK誰? 1069 00:57:46,886 --> 00:57:48,150 OK。 1070 00:57:48,150 --> 00:57:50,440 >> だから私はあなたたちはstrlenを書き出すていました。 1071 00:57:50,440 --> 00:57:53,790 都合良く我々はまた、あなたが書く求めることができます 私に出て、「Atwoa」ことを覚えておいてください 1072 00:57:53,790 --> 00:57:55,400 または何でもあなたたちはそれを呼び出すようにしたいですか? 1073 00:57:55,400 --> 00:57:58,010 この関数で そのVigenereとシーザー、 1074 00:57:58,010 --> 00:58:00,900 ASCII値は整数に変換? 1075 00:58:00,900 --> 00:58:04,360 それはまた、過去のクイズに来ています 関数のように書くためにあなたを求めてきました。 1076 00:58:04,360 --> 00:58:08,280 >> ほとんどすべての機能 あなたが使用されたこと 1077 00:58:08,280 --> 00:58:11,660 自分で作成するのは非常に簡単、 以下のようなセンサが低く、 1078 00:58:11,660 --> 00:58:14,620 アッパーに、下げるために、上側のです。 1079 00:58:14,620 --> 00:58:17,964 変換になる機能 小文字から大文字に文字列。 1080 00:58:17,964 --> 00:58:19,380 我々は、すべての権利、それを行う方法を知っていますか? 1081 00:58:19,380 --> 00:58:21,100 それは非常に簡単です。 1082 00:58:21,100 --> 00:58:24,770 ちょうどことを確認するあなた can--それは同じ思考プロセスです。 1083 00:58:24,770 --> 00:58:26,940 あなただけを反復処理 あなたは物事をオンにします。 1084 00:58:26,940 --> 00:58:30,190 あなたのいずれかの数または あなたは違っを回します。 1085 00:58:30,190 --> 00:58:32,280 >> 私は私をsuggest--う 私たちが行っているかどうかを知りません 1086 00:58:32,280 --> 00:58:39,080 何資本Aを暗記するように依頼したり、 資本Z、または小文字のAまたは小文字 1087 00:58:39,080 --> 00:58:42,640 Z ASCIIであるが、私はお勧めします おそらく場合にそれを書き留め 1088 00:58:42,640 --> 00:58:44,124 おります。 1089 00:58:44,124 --> 00:58:45,540 ちょうどそのように、あなたたちは参照を持っています。 1090 00:58:45,540 --> 00:58:47,180 大文字のAのように、何を、197ですか? 1091 00:58:47,180 --> 00:58:51,320 そして、小文字は50何かのようです。 1092 00:58:51,320 --> 00:58:52,492 65、ええ、そこに行きます。 1093 00:58:52,492 --> 00:58:54,950 だからかなり知っています 両者の差は32です。 1094 00:58:54,950 --> 00:58:57,670 これは非常に重要です。 1095 00:58:57,670 --> 00:58:58,170 うん。 1096 00:58:58,170 --> 00:59:01,445 私はこの上で良いのですか? 1097 00:59:01,445 --> 00:59:01,945 OK。 1098 00:59:01,945 --> 00:59:03,109 >> 観客:我々は可能性が 理論的にはいくつかを書きます 1099 00:59:03,109 --> 00:59:04,410 同様にこれらのダウン私たちのlittle--上の 1100 00:59:04,410 --> 00:59:07,035 >> 教授:あなたは理論的 ちょうど機能を下にコピーできます。 1101 00:59:07,035 --> 00:59:08,482 それは本当だ。 1102 00:59:08,482 --> 00:59:11,080 >> 聴衆:ない[聞こえません]。 1103 00:59:11,080 --> 00:59:12,720 >> 教授:君たちはシートを持っています。 1104 00:59:12,720 --> 00:59:14,194 君たちはノートシートを持っています。 1105 00:59:14,194 --> 00:59:14,860 あなたはそれを入力することができます。 1106 00:59:14,860 --> 00:59:15,490 あなたはそれを書くことができます。 1107 00:59:15,490 --> 00:59:17,031 あなたはそれでやりたいことができます。 1108 00:59:17,031 --> 00:59:18,530 うん。 1109 00:59:18,530 --> 00:59:21,406 だから理論的には、もし あなたは、のために行きたいです。 1110 00:59:21,406 --> 00:59:23,338 >> 聴衆:[聞こえません] しかし、私たちは本当にありません 1111 00:59:23,338 --> 00:59:25,994 必ずしも覚えておく必要があります 値、私たちはすることができます 1112 00:59:25,994 --> 00:59:28,914 上位またはに使用 下の機能、右? 1113 00:59:28,914 --> 00:59:29,580 教授:ええ。 1114 00:59:29,580 --> 00:59:32,740 しかし、我々はあなたに質問を与えた場合 それは、上に書き込みを言います 1115 00:59:32,740 --> 00:59:34,350 その後、あなたはそれを記述する必要があります。 1116 00:59:34,350 --> 00:59:38,150 だから、あなたたちはあなたと仮定することができます 男は、すべての機能にアクセスすることができ、 1117 00:59:38,150 --> 00:59:41,523 しかし、あなたが上にまたはに使用したい場合 下、何もしなければならないのですか? 1118 00:59:41,523 --> 00:59:43,840 >> 聴衆:[聞こえません] 使用CS50 [聞こえません] 1119 00:59:43,840 --> 00:59:44,840 >> 教授:それはCS50.hますか? 1120 00:59:44,840 --> 00:59:47,320 1121 00:59:47,320 --> 00:59:48,310 そこに注意してください。 1122 00:59:48,310 --> 00:59:50,640 >> 上位になるよう、下げるには、 、上部で低くなります 1123 00:59:50,640 --> 00:59:52,990 関与する機能 文字列操作は、 1124 00:59:52,990 --> 00:59:55,490 すべてのいずれかのアスキー内 または数学ライブラリ内 1125 00:59:55,490 --> 00:59:57,350 または文字列ライブラリ内。 1126 00:59:57,350 --> 01:00:00,290 だから、あなたたちはそれらを使用する場合 機能は、忘れないように注意してください 1127 01:00:00,290 --> 01:00:01,451 そのヘッダを含めます。 1128 01:00:01,451 --> 01:00:03,950 だから、おそらくまた、何かあなたを あなたのシートに含めます、 1129 01:00:03,950 --> 01:00:04,892 ヘッダーは何ですか? 1130 01:00:04,892 --> 01:00:06,600 ライブラリは何ですか あなたが使用してきましたか? 1131 01:00:06,600 --> 01:00:08,550 何の機能です これらのライブラリの内部? 1132 01:00:08,550 --> 01:00:09,230 それは重要です。 1133 01:00:09,230 --> 01:00:10,420 >> うん? 1134 01:00:10,420 --> 01:00:12,570 >> 観客:我々だけでした 警官アウトとハッシュタグを行います 1135 01:00:12,570 --> 01:00:14,955 絶対に通じ 私たちが今までしたすべての文字 1136 01:00:14,955 --> 01:00:17,340 全ての質問にように見たことありますか? 1137 01:00:17,340 --> 01:00:18,320 >> 教授:あなたは可能性があります。 1138 01:00:18,320 --> 01:00:20,361 どのように幸せな私にはわかりません 我々はグレードになるとしています 1139 01:00:20,361 --> 01:00:25,090 そのクイズ時にコードのすべての部分 2倍の長それがあることが必要であるようです。 1140 01:00:25,090 --> 01:00:27,200 私たちはかもしれないが、知りません スタイルにポイントを取ります。 1141 01:00:27,200 --> 01:00:28,790 しかし、理論的にはあなたの コー​​ドが右になります。 1142 01:00:28,790 --> 01:00:30,915 君たちは警官が出でき、 ただ、すべてを含んでいます。 1143 01:00:30,915 --> 01:00:32,044 それはええ、あまりにも大丈夫です。 1144 01:00:32,044 --> 01:00:32,960 聴衆:[聞こえません]。 1145 01:00:32,960 --> 01:00:33,270 教授:ええ。 1146 01:00:33,270 --> 01:00:34,900 でも、私はそれをしていないお勧めします。 1147 01:00:34,900 --> 01:00:35,505 うん。 1148 01:00:35,505 --> 01:00:36,130 聴衆:クール。 1149 01:00:36,130 --> 01:00:36,620 教授:良い質問。 1150 01:00:36,620 --> 01:00:37,480 聴衆:だから、最悪のシナリオ。 1151 01:00:37,480 --> 01:00:38,563 教授:最悪の場合。 1152 01:00:38,563 --> 01:00:40,350 あなたは完全に忘れてしまった場合、 あなたはそれを行うことができます。 1153 01:00:40,350 --> 01:00:40,850 うん。 1154 01:00:40,850 --> 01:00:43,870 1155 01:00:43,870 --> 01:00:45,400 >> うん、コードはすぐそこです。 1156 01:00:45,400 --> 01:00:49,176 私は使用されるnの代わりにカウントしますが、あなた あなたのボートを浮かぶものは何でも、知っています。 1157 01:00:49,176 --> 01:00:51,092 聴衆:待って、私たち ハッシュタグする必要はありません 1158 01:00:51,092 --> 01:00:53,460 私たちがしているので、含ま int型から始まりますか? 1159 01:00:53,460 --> 01:00:56,150 1160 01:00:56,150 --> 01:00:59,924 >> 教授:ええ、私はちょうどと仮定 我々は、関数を記述するように求めていました。 1161 01:00:59,924 --> 01:01:02,340 あなたが安全になりたいと思ったら、 おそらくそれをそこに置くことができます。 1162 01:01:02,340 --> 01:01:05,650 しかし、私はちょうどええ、気にしませんでした。 1163 01:01:05,650 --> 01:01:09,919 >> 私も知らないあなたの場合 このため、任意のライブラリを必要としています。 1164 01:01:09,919 --> 01:01:12,710 あなたは本当に印刷していないので 何か何か出て、右か? 1165 01:01:12,710 --> 01:01:16,500 1166 01:01:16,500 --> 01:01:19,568 ええ、私はかどうかを知りません あなたは、ライブラリを必要としています。 1167 01:01:19,568 --> 01:01:22,400 >> OK。 1168 01:01:22,400 --> 01:01:26,020 これは、もう少し沿っもあります メモリ操作のライン。 1169 01:01:26,020 --> 01:01:27,400 少しトリッキーこの種の。 1170 01:01:27,400 --> 01:01:28,960 これについて考えてみよう。 1171 01:01:28,960 --> 01:01:30,580 あなたは、FUNCと呼ばれる機能を有しています。 1172 01:01:30,580 --> 01:01:33,570 私は何でもそれを命名している可能性があり、 私はFUNCそれに名前を付けることを選択します。 1173 01:01:33,570 --> 01:01:36,000 私は私のメインの上にそれを持っています。 1174 01:01:36,000 --> 01:01:39,790 あなたは持っていたい、忘れないでください メインの後に関数、 1175 01:01:39,790 --> 01:01:42,370 あなたが確認します トップのプロトタイプが含まれています。 1176 01:01:42,370 --> 01:01:45,750 >> しかし、この場合には、それはとても短かったです ことを私はちょうどできたと感じていました 1177 01:01:45,750 --> 01:01:47,260 メインの上にそれが含まれています。 1178 01:01:47,260 --> 01:01:51,170 私はプロトタイプを持っている必要はありませんでした、 それはすでに上記書かれているため。 1179 01:01:51,170 --> 01:01:55,430 だから、すべて私は私の主な機能でやっています 10に等しい整数xを作成しています。 1180 01:01:55,430 --> 01:02:00,490 私は、私のFUNC関数を呼び出しています して、何かを印刷します。 1181 01:02:00,490 --> 01:02:02,840 >> そしてそれは実際にはです 何funcはやっています。 1182 01:02:02,840 --> 01:02:04,340 君たちはこのを通して考えたいです。 1183 01:02:04,340 --> 01:02:05,423 それは少しトリッキーだからです。 1184 01:02:05,423 --> 01:02:07,220 それは実際、非常に、非常にトリッキーです。 1185 01:02:07,220 --> 01:02:09,549 何このを通して考えます プログラムが出力されます。 1186 01:02:09,549 --> 01:02:10,840 私はあなたに2分の人を与えるでしょう。 1187 01:02:10,840 --> 01:03:36,660 1188 01:03:36,660 --> 01:03:37,891 >> 良い議論? 1189 01:03:37,891 --> 01:03:38,853 >> 聴衆:うん。 1190 01:03:38,853 --> 01:03:39,815 >> 教授:ええ。 1191 01:03:39,815 --> 01:03:42,220 すべての権利なので、これは 理由はトリッキー。 1192 01:03:42,220 --> 01:03:44,845 私が持って望んでいた理由は、これはあります このみんなの注目を。 1193 01:03:44,845 --> 01:03:47,870 1194 01:03:47,870 --> 01:03:51,147 誰も私を与えたいと思うん 提案、試み? 1195 01:03:51,147 --> 01:03:52,230 これは何をプリントアウトするのでしょうか? 1196 01:03:52,230 --> 01:03:53,930 あなたが間違っている場合は完全に罰金。 1197 01:03:53,930 --> 01:03:55,619 うん? 1198 01:03:55,619 --> 01:03:59,483 >> 聴衆:私はそれが100だと思うし、 2つの別々の行に10。 1199 01:03:59,483 --> 01:04:00,940 >> 教授:そして、10? 1200 01:04:00,940 --> 01:04:03,154 誰もが、他の推測を持っていますか? 1201 01:04:03,154 --> 01:04:04,150 うん? 1202 01:04:04,150 --> 01:04:09,040 >> 聴衆:たぶんわずか10理由 funcは何も返さないのですか? 1203 01:04:09,040 --> 01:04:11,610 >> 教授:[OK]をので、私たち 推測番号1を持っています 1204 01:04:11,610 --> 01:04:14,990 推測番号2であるということです わずか10をプリントアウトする予定。 1205 01:04:14,990 --> 01:04:17,623 誰もが、他の推測を持っていますか? 1206 01:04:17,623 --> 01:04:19,654 OK。 1207 01:04:19,654 --> 01:04:21,070 それでは、右、この中を歩くようにしますか? 1208 01:04:21,070 --> 01:04:23,903 あなたは、コードの一部を取得するたびに、 ちょうどそれを見て、のようなことはありません、 1209 01:04:23,903 --> 01:04:25,060 ああ、それはあまりのものです! 1210 01:04:25,060 --> 01:04:26,460 私は困惑しています! 1211 01:04:26,460 --> 01:04:28,220 同様に、自分自身を落ち着かせます。 1212 01:04:28,220 --> 01:04:31,602 ただあなただけの可能性ことを知っています 線でコード行に目を通します。 1213 01:04:31,602 --> 01:04:32,310 それはそれはすべてです。 1214 01:04:32,310 --> 01:04:33,840 それは、本を読むようなものです。 1215 01:04:33,840 --> 01:04:38,000 >> だから、任意の関数で、 私たちは常に主から始まります。 1216 01:04:38,000 --> 01:04:40,860 だから我々はするつもりです int型メイン空洞から始まり、 1217 01:04:40,860 --> 01:04:43,010 でも、プログラムの 既に右、ダウンを実行? 1218 01:04:43,010 --> 01:04:45,070 メイン空洞内で起動します。 1219 01:04:45,070 --> 01:04:48,030 整数xは10に等しいです。 1220 01:04:48,030 --> 01:04:50,400 >> だから私はこれを消去するつもりです。 1221 01:04:50,400 --> 01:04:55,179 1222 01:04:55,179 --> 01:04:58,470 私はちょうどあなたので、メモリを描くつもりです 人は一種の何が起こっているかを見ることができます。 1223 01:04:58,470 --> 01:05:02,190 >> ここで我々は、スタックを持って下に覚えていますか? 1224 01:05:02,190 --> 01:05:05,810 ここに私達は私達を持っています どこかここで盛り上げ。 1225 01:05:05,810 --> 01:05:07,470 スタックは右、育ちますか? 1226 01:05:07,470 --> 01:05:10,150 そして、スタック内の、あなたが持っています 電源は機能だけでなく、 1227 01:05:10,150 --> 01:05:12,230 電源のローカル変数がすべて表示されます。 1228 01:05:12,230 --> 01:05:14,310 >> そこでここでは、int型のxは10に等しいです。 1229 01:05:14,310 --> 01:05:17,670 私たちの主な機能の中で我々がいます Xという変数を作成します。 1230 01:05:17,670 --> 01:05:20,590 私たちは10のその同じ設定しています。 1231 01:05:20,590 --> 01:05:24,200 ここでは、いくつかのXを持っている、あなたがしています 、10に等しい、右のことを設定します 1232 01:05:24,200 --> 01:05:25,400 メイン内。 1233 01:05:25,400 --> 01:05:27,430 みんな良いですか? 1234 01:05:27,430 --> 01:05:28,070 >> 機能。 1235 01:05:28,070 --> 01:05:30,330 だから今、私たちの主な内 機能、我々が呼んでいます 1236 01:05:30,330 --> 01:05:31,810 我々は上記の書いた関数。 1237 01:05:31,810 --> 01:05:34,550 だから我々は今、第2の機能を入力しています。 1238 01:05:34,550 --> 01:05:40,120 私たちは別のものを作成しようとしています 変数はint xは100に等しいです。 1239 01:05:40,120 --> 01:05:42,410 何がスタックにここに起きているのでしょうか? 1240 01:05:42,410 --> 01:05:46,980 あなたが呼び出すときに、何が起こります 新しい変数を作成する関数? 1241 01:05:46,980 --> 01:05:50,038 何がスタックにここになりますか? 1242 01:05:50,038 --> 01:05:52,134 >> 聴衆:上部の[聞こえない]の山? 1243 01:05:52,134 --> 01:05:52,800 教授:ええ。 1244 01:05:52,800 --> 01:05:54,050 だから、実際にコピーを作成します。 1245 01:05:54,050 --> 01:05:56,560 1246 01:05:56,560 --> 01:05:57,740 上部の杭そしてそれは一種。 1247 01:05:57,740 --> 01:06:00,700 stack--スタックを考えます 書籍、何のスタックの。 1248 01:06:00,700 --> 01:06:06,520 最後の最初の上部の杭、 うち、最初に出て、の最後の。 1249 01:06:06,520 --> 01:06:08,471 >> だから、ここでXを作成するために起こっています。 1250 01:06:08,471 --> 01:06:12,080 1251 01:06:12,080 --> 01:06:14,450 >> それは持っているつもりです すべてのfuncs変数。 1252 01:06:14,450 --> 01:06:14,950 グレート。 1253 01:06:14,950 --> 01:06:20,980 だから今、私たちは二つの異なるXがそれを持っています 2つの非常に異なるものを表しています。 1254 01:06:20,980 --> 01:06:24,470 その後、我々は印刷するつもりです xの整数アウト。 1255 01:06:24,470 --> 01:06:26,430 それでは、右、100を印刷してみましょうか? 1256 01:06:26,430 --> 01:06:29,389 ここで、それは100だから。 1257 01:06:29,389 --> 01:06:31,680 だから、最初のものです それはプリントアウトになるだろうということ。 1258 01:06:31,680 --> 01:06:35,710 この関数は何も返さないように、 今その関数、主にその行 1259 01:06:35,710 --> 01:06:37,070 終わらせる。 1260 01:06:37,070 --> 01:06:39,160 これまで私と一緒に良い誰? 1261 01:06:39,160 --> 01:06:43,034 >> だから我々は中2を通して今です 私たちの主な機能の3行。 1262 01:06:43,034 --> 01:06:44,450 今、私たちは三行目になるだろう。 1263 01:06:44,450 --> 01:06:46,350 我々は、printf関数になるだろう。 1264 01:06:46,350 --> 01:06:48,222 メイン内のこのxは何ですか? 1265 01:06:48,222 --> 01:06:49,263 それは何を表しているのでしょうか? 1266 01:06:49,263 --> 01:06:52,720 1267 01:06:52,720 --> 01:06:54,280 >> 今のx何値はありますか? 1268 01:06:54,280 --> 01:06:55,220 >> 聴衆:100。 1269 01:06:55,220 --> 01:06:56,799 >> 教授:それは100ですか? 1270 01:06:56,799 --> 01:06:57,590 聴衆:まだ10。 1271 01:06:57,590 --> 01:06:58,878 教授:まだ10。 1272 01:06:58,878 --> 01:07:00,870 うん。 1273 01:07:00,870 --> 01:07:06,810 内、覚えているので、 私たちのfuncは、xは100に等しいです。 1274 01:07:06,810 --> 01:07:09,690 しかし、我々は戻って返す場合 私たちの主な機能に、 1275 01:07:09,690 --> 01:07:12,440 その変数がに保存されています 私たちのスタック上の別の場所。 1276 01:07:12,440 --> 01:07:16,250 >> だから今、私たちは戻って行く必要があります メインスタックは、ローカル変数を幹線。 1277 01:07:16,250 --> 01:07:18,460 そして、ここでxは10に等しいです。 1278 01:07:18,460 --> 01:07:20,300 そして、私たちは10をプリントアウトするつもりです。 1279 01:07:20,300 --> 01:07:22,530 >> そこで彼女は絶対に正しかったです。 1280 01:07:22,530 --> 01:07:25,053 我々は、必要があるとしています 100と10の出力。 1281 01:07:25,053 --> 01:07:25,553 うん? 1282 01:07:25,553 --> 01:07:28,700 観客:あなたはmalloc関数、それであります ヒープまたは[聞こえない]はスタック? 1283 01:07:28,700 --> 01:07:31,950 教授:あなたはをmalloc、 あなたは、ヒープからメモリを取っています 1284 01:07:31,950 --> 01:07:32,830 それを割り当てます。 1285 01:07:32,830 --> 01:07:34,950 あなたが持っていないように、 こののいずれかと混乱します。 1286 01:07:34,950 --> 01:07:38,100 だから私は大きなお持ち帰りを推測 ここでスコープと呼ばれるものです。 1287 01:07:38,100 --> 01:07:39,650 >> いた人のために レビューセッションの最後の夜、 1288 01:07:39,650 --> 01:07:41,080 我々はこのことについて簡単に話しました。 1289 01:07:41,080 --> 01:07:45,380 適用範囲はどのように定義しているかと あなたの変数が存在する場合。 1290 01:07:45,380 --> 01:07:48,050 あるいは、どのようなフレーム内の あなたの変数が存在します。 1291 01:07:48,050 --> 01:07:51,690 >> かなり一般的経験則 あなたがそれらを作成した場合、あなたのvariables--です 1292 01:07:51,690 --> 01:07:56,660 カーリーbraces--内部でそれらが存在します それらの中括弧内のみ。 1293 01:07:56,660 --> 01:08:00,312 >> だから、私たちの機能で、たとえば FUNC、あなたはそれらの2ブレースを参照してください。 1294 01:08:00,312 --> 01:08:02,020 あなたが作成している場合 その中の何でも、 1295 01:08:02,020 --> 01:08:06,500 チャンスはあなたがやっているすべてはあるあります スタックを作成し、そこにそれを保存します。 1296 01:08:06,500 --> 01:08:07,430 メインで同じこと。 1297 01:08:07,430 --> 01:08:09,950 それはちょうど、メインの内部に格納されています。 1298 01:08:09,950 --> 01:08:13,560 >> また、あなたはなりたいです ここでは非常に、非常に慎重に。 1299 01:08:13,560 --> 01:08:18,310 スコープにも適しているため 別の例に自身。 1300 01:08:18,310 --> 01:08:25,950 ですから、例えばaのための ループは、int型のために私は0に等しいです。 1301 01:08:25,950 --> 01:08:28,460 私は、10私は知らない、より少ないです。 1302 01:08:28,460 --> 01:08:32,111 私プラスプラス。 1303 01:08:32,111 --> 01:08:34,560 そして、あなたは、右のそれの内のコードを持っていますか? 1304 01:08:34,560 --> 01:08:38,830 >> この変数はどこを行い、 私は、実際には存在しますか? 1305 01:08:38,830 --> 01:08:40,510 あなたのためのループの内側のみ。 1306 01:08:40,510 --> 01:08:43,640 だから私はあなたたちの多くが持っている賭けます おそらくときに、このエラーが発生しました 1307 01:08:43,640 --> 01:08:45,930 あなたのpsetでプログラムをやっています。 1308 01:08:45,930 --> 01:08:49,990 どのようにあなたたちの多くは、私を使用しようとしました forループの外側とエラーが発生しましたか? 1309 01:08:49,990 --> 01:08:53,310 参照されていない整数のよう もしくはそのようなものですか? 1310 01:08:53,310 --> 01:08:56,069 >> それが起こる理​​由 ここにあなたがいるからです 1311 01:08:56,069 --> 01:08:59,109 それだけで何かを作成します あなたのforループ内に存在します。 1312 01:08:59,109 --> 01:09:01,972 あなたがそれを使用しようとした場合、私はしていません 実際にそれの外に存在します。 1313 01:09:01,972 --> 01:09:04,930 したがって、基本的にコンピュータが私は、言って あなたは何を言ってるのか分かりません。 1314 01:09:04,930 --> 01:09:08,689 私が知っているすべては私があったことです ここでは、今、もはや。 1315 01:09:08,689 --> 01:09:12,580 >> だから私は作成した場合 右、内側のループのために? 1316 01:09:12,580 --> 01:09:19,080 そして、私は別のものを作成するつもりです、 int型のJのように、それが何を行う必要があります。 1317 01:09:19,080 --> 01:09:23,689 そして、あなたは内部のコードを持って そのループ、jは、ここでしか存在しています。 1318 01:09:23,689 --> 01:09:26,029 しかし、それはまた、私の中に存在します。 1319 01:09:26,029 --> 01:09:29,310 そしてそうjが存在しているだけ このforループ内で、 1320 01:09:29,310 --> 01:09:33,850 私は全部に存在するのに対し。 1321 01:09:33,850 --> 01:09:34,500 >> 誰も明確な? 1322 01:09:34,500 --> 01:09:37,416 条件文と同じこと あなたは何を作成したい場合。 1323 01:09:37,416 --> 01:09:40,390 一方、ループの場合と同じこと あなたは何を作成したいです。 1324 01:09:40,390 --> 01:09:42,390 それはなるように何か 非常に約非常に慎重。 1325 01:09:42,390 --> 01:09:45,681 だから、これは本当に良い問題がでました それは二つのことを実証したという意味。 1326 01:09:45,681 --> 01:09:47,160 これは、最初のスコープを示しました。 1327 01:09:47,160 --> 01:09:49,550 そして、それが実証 また、メモリの割り当て。 1328 01:09:49,550 --> 01:09:54,130 あなたたちはそれを知っている必要がありますので 機能は、スタック内に上向きに成長します。 1329 01:09:54,130 --> 01:09:56,710 そして、あなたが呼び出すときこと 機能、あなたが作成しています 1330 01:09:56,710 --> 01:09:59,060 メモリの基本的新しいスタック。 1331 01:09:59,060 --> 01:10:02,100 それは非常に異なっています あなたのメインメモリは何ですか。 1332 01:10:02,100 --> 01:10:03,300 うん。 1333 01:10:03,300 --> 01:10:03,800 やれやれ! 1334 01:10:03,800 --> 01:10:05,470 その上で[OK]をみんな? 1335 01:10:05,470 --> 01:10:06,750 それは混乱しました。 1336 01:10:06,750 --> 01:10:09,380 オーバー行くには非常に良いのトピック、 あなたはおそらくだから 1337 01:10:09,380 --> 01:10:12,255 いくつかのトリッキーを取得するつもり クイズにそのようなこと。 1338 01:10:12,255 --> 01:10:13,350 うん。 1339 01:10:13,350 --> 01:10:13,850 クール。 1340 01:10:13,850 --> 01:10:16,014 1341 01:10:16,014 --> 01:10:18,430 私はあなたが1に100を取得してあげますよ 行し、他の10。 1342 01:10:18,430 --> 01:10:21,468 うん、非常に良いです。 1343 01:10:21,468 --> 01:10:26,350 >> [OK]を、今、あなたたちが取得します TAになるチャンス。 1344 01:10:26,350 --> 01:10:30,600 あなたはすべての素敵に答えるために得ます 私は時々得るのメール。 1345 01:10:30,600 --> 01:10:34,290 >> だから、親愛なるアンディは、私が何かだと思う参照してください。 私のコンパイラを使用して間違っています。 1346 01:10:34,290 --> 01:10:37,910 私は、私のコードが正しいことを確信しています 私はセグメンテーションフォールトを取得しておきます 1347 01:10:37,910 --> 01:10:39,074 私は実行するたびに。 1348 01:10:39,074 --> 01:10:39,740 どうしたの? 1349 01:10:39,740 --> 01:10:42,844 、愛の多くを助けてください。 1350 01:10:42,844 --> 01:10:45,740 1351 01:10:45,740 --> 01:10:49,410 >> 君たちのようなものを持っている場合 どのように応答するであろうこと? 1352 01:10:49,410 --> 01:10:51,860 これらは、実際には非常に一般的です 質問は、私たちはあなたを頼みますよ。 1353 01:10:51,860 --> 01:10:54,090 私たちはあなたを与えるだろう、場合です シナリオ、私たちは私たちを与えるだろう 1354 01:10:54,090 --> 01:10:56,350 何が起こっているのかであなたの最高の推測。 1355 01:10:56,350 --> 01:11:00,710 誰もが何が起こっているかで刺しがありますか? 1356 01:11:00,710 --> 01:11:02,654 うん? 1357 01:11:02,654 --> 01:11:06,056 >> 聴衆:たぶん逆参照 ヌルポインタのようなもの 1358 01:11:06,056 --> 01:11:08,924 ヌル何かを指しています。 1359 01:11:08,924 --> 01:11:11,590 教授:ええ、それはなるだろう それが起こる場合の例。 1360 01:11:11,590 --> 01:11:14,467 しかし、より大きな絵は何ですか ここで何が起こっているの? 1361 01:11:14,467 --> 01:11:17,050 観客:あなたがそれをしようとしているされています あなたがいないなら、メモリにアクセスします 1362 01:11:17,050 --> 01:11:18,175 へのアクセス権を持つことになって? 1363 01:11:18,175 --> 01:11:19,200 教授:その通り。 1364 01:11:19,200 --> 01:11:24,800 だから、ワンセグ断層のオフを考えます メモリ内の制限、制限区域 1365 01:11:24,800 --> 01:11:27,780 あなたが触れてはならないこと。 1366 01:11:27,780 --> 01:11:31,670 >> だから、かなりあなたがしようとしているとき 例えばのようにindex--します、 1367 01:11:31,670 --> 01:11:34,110 あなたが宣言しました ゼロから9までの配列。 1368 01:11:34,110 --> 01:11:37,360 しかし、あなたはその10回目に触れることを試みます 値は、あなたはそれにアクセスすることはできません。 1369 01:11:37,360 --> 01:11:38,694 あなたはそれを宣言していないため。 1370 01:11:38,694 --> 01:11:40,943 それでコンピュータが起こっています それを見てするようになり、 1371 01:11:40,943 --> 01:11:43,440 ああええと、あなたが行くようにしようとしています インデックスの範囲外。 1372 01:11:43,440 --> 01:11:45,270 私はあなたを与えるつもりです セグメンテーションフォールト。 1373 01:11:45,270 --> 01:11:46,590 >> セグメントとしての考え、右? 1374 01:11:46,590 --> 01:11:49,665 余分なセグメントは、障害があります あなたが何かを破るしようとすると、 1375 01:11:49,665 --> 01:11:50,790 あなたはそこにあってはなりません。 1376 01:11:50,790 --> 01:11:53,660 セグメンテーションフォールトがいつでもあります あなたは物事に触れることを試みます 1377 01:11:53,660 --> 01:11:54,970 あなたが触れてはならないこと。 1378 01:11:54,970 --> 01:11:56,815 >> だから、一般的な例は、インデックスされています。 1379 01:11:56,815 --> 01:11:58,940 もちろん、あなたがしようとしている場合 それに触れると、nullでした、 1380 01:11:58,940 --> 01:12:00,220 それも同様に動作します。 1381 01:12:00,220 --> 01:12:02,300 あなたのポインタがにしようとしていた場合 触れてはならないものに触れ、 1382 01:12:02,300 --> 01:12:03,730 それも同様に仕事ができます。 1383 01:12:03,730 --> 01:12:07,120 最も典型的には、あなたはよ 配列でこれを参照してください。 1384 01:12:07,120 --> 01:12:07,740 みんな良いですか? 1385 01:12:07,740 --> 01:12:10,374 >> 観客:あなたがしたいのであれば 第10回ポイントにアクセスします 1386 01:12:10,374 --> 01:12:12,290 そして唯一の制限があります 9か何かの。 1387 01:12:12,290 --> 01:12:13,160 >> 教授:うん、まさに。 1388 01:12:13,160 --> 01:12:13,660 ほとんど。 1389 01:12:13,660 --> 01:12:15,930 1390 01:12:15,930 --> 01:12:16,430 クール。 1391 01:12:16,430 --> 01:12:19,070 1392 01:12:19,070 --> 01:12:19,920 >> 親愛なるアンディ。 1393 01:12:19,920 --> 01:12:23,440 だから我々はこれらの素晴らしいを持っています 物事は、ソートと呼ばれます。 1394 01:12:23,440 --> 01:12:25,472 我々としてsort--マージすると 時の例で見ました 1395 01:12:25,472 --> 01:12:27,180 ダビデは、全体をしました なぜclass--での事、 1396 01:12:27,180 --> 01:12:29,760 それはよりそんなに速くなら 他の種類のいずれか、 1397 01:12:29,760 --> 01:12:33,310 なぜ私たちも知っている気にしません 他の種類のいずれか? 1398 01:12:33,310 --> 01:12:35,100 >> 本当にあなたを求め、この質問は何ですか? 1399 01:12:35,100 --> 01:12:36,659 3 word--は何ですか 1400 01:12:36,659 --> 01:12:37,950 対象:トレードオフは何ですか? 1401 01:12:37,950 --> 01:12:38,530 教授:その通り。 1402 01:12:38,530 --> 01:12:39,946 それは質問が求めているものです。 1403 01:12:39,946 --> 01:12:43,682 間のトレードオフは何ですか 任意の他の種類の詩マージソート? 1404 01:12:43,682 --> 01:12:45,850 >> 観客は:右、メモリをとりますか? 1405 01:12:45,850 --> 01:12:47,720 >> 教授:あなたを行います もう少しことを説明しますか? 1406 01:12:47,720 --> 01:12:49,490 まずはマージストアを説明しましょう​​。 1407 01:12:49,490 --> 01:12:50,970 どのように動作するマージソートのでしょうか? 1408 01:12:50,970 --> 01:12:55,220 >> 聴衆:だから、それはすることで動作し 半分にすべてを分割 1409 01:12:55,220 --> 01:13:00,660 して、それを一緒に入れて そして、順番にそれを再配分、 1410 01:13:00,660 --> 01:13:02,862 毎回のようにあなたがセットをマージします。 1411 01:13:02,862 --> 01:13:03,820 教授:ほとんど。 1412 01:13:03,820 --> 01:13:06,861 だから私はこれを引き出すことができますが、それは希望 それを引き出すために私に5分かかります。 1413 01:13:06,861 --> 01:13:10,220 切片スライドを振り返ります どこにマージソートをカバーしました。 1414 01:13:10,220 --> 01:13:10,790 その通りです。 1415 01:13:10,790 --> 01:13:13,406 >> だから方法は、ソート作品をマージ それは半分で物事を分割され、 1416 01:13:13,406 --> 01:13:15,780 そしてそれはちょうど見 それらのすべての最初の値 1417 01:13:15,780 --> 01:13:17,000 そして、だけそれをソートします。 1418 01:13:17,000 --> 01:13:20,364 継続的に新しいアレイを作成し、 順序で物事がより多くなります。 1419 01:13:20,364 --> 01:13:23,030 そしてそうそれは本当にですが、本当に 高速あなたが知っているit's--ため、 1420 01:13:23,030 --> 01:13:25,380 二分探索は、nのn個のログです。 1421 01:13:25,380 --> 01:13:27,880 あなたは非常に多くを作成しています あなたがしている異なるアレイ 1422 01:13:27,880 --> 01:13:29,700 メモリの膨大な量を使用して。 1423 01:13:29,700 --> 01:13:33,080 そしてそれはより速く、トレードオフの間 ここであなたはより多くのメモリを使用していることです。 1424 01:13:33,080 --> 01:13:38,490 >> だから、ヒント、ソートや検索 今年より多くをカバーしました 1425 01:13:38,490 --> 01:13:41,610 彼らは前の年にされているよりも。 1426 01:13:41,610 --> 01:13:45,100 君たちはそれを見る必要があります クイズに応じて反映されています。 1427 01:13:45,100 --> 01:13:49,160 私は間違いなく行く時間を費やすだろう 異なる種類のものをすべての上 1428 01:13:49,160 --> 01:13:52,320 、どのようにバイナリ検索され、 どのように線形探索作業。 1429 01:13:52,320 --> 01:13:54,750 どのように、おそらく擬似コード それらをコーディングします。 1430 01:13:54,750 --> 01:13:55,950 実行時間は何ですか? 1431 01:13:55,950 --> 01:13:59,210 実行時間のような何かが非常にあります ノートシートにコピーして保存するのは簡単、 1432 01:13:59,210 --> 01:13:59,710 右? 1433 01:13:59,710 --> 01:14:01,420 >> あなたがしているとき、それは本当に難しいです 途中でテスト 1434 01:14:01,420 --> 01:14:02,390 そしてあなたはそれを把握する必要があります。 1435 01:14:02,390 --> 01:14:03,160 それをコピーします。 1436 01:14:03,160 --> 01:14:05,550 私はあなたがしているあなたを保証します それを知っている必要がありますつもり。 1437 01:14:05,550 --> 01:14:06,860 トレードオフは何ですか? 1438 01:14:06,860 --> 01:14:10,064 最悪の場合、最良の場合のシナリオ それらのすべてのために、非常に知るようになります。 1439 01:14:10,064 --> 01:14:10,564 うん? 1440 01:14:10,564 --> 01:14:12,730 >> 観客:我々はする必要がありますか マージソートをコーディングする方法を知っていますか? 1441 01:14:12,730 --> 01:14:15,470 同様に、我々はする必要があります 再帰を覚えていますか? 1442 01:14:15,470 --> 01:14:18,950 >> 教授:私は非常にだけ、それを疑います なぜなら、それはかなり複雑なようです。 1443 01:14:18,950 --> 01:14:22,282 しかし、それは実行不可能ではないかもしれない、私たちの場合 擬似コードにそれを使用するようにお願いします。 1444 01:14:22,282 --> 01:14:22,781 うん。 1445 01:14:22,781 --> 01:14:25,470 1446 01:14:25,470 --> 01:14:29,170 >> うん、[OK]を、1以上。 1447 01:14:29,170 --> 01:14:31,387 これは、中に出ていること ビットでは、最後のピース。 1448 01:14:31,387 --> 01:14:42,101 1449 01:14:42,101 --> 01:14:43,090 うん? 1450 01:14:43,090 --> 01:14:44,930 誰もがそれを聞いていましたか? 1451 01:14:44,930 --> 01:14:48,360 >> [OK]を、ので、かなり最初の すべて、どのようなプログラムの種類 1452 01:14:48,360 --> 01:14:51,000 あなたにこのような出力を与えるだろうか? 1453 01:14:51,000 --> 01:14:54,350 我々はについて学ぶためにあなたを求めて覚えておいてください デバッグツールのこの新しいタイプの? 1454 01:14:54,350 --> 01:14:57,340 それの名前は何でしたか? 1455 01:14:57,340 --> 01:14:59,460 Valgrindは、右 1456 01:14:59,460 --> 01:15:02,600 >> それはどこのプログラムでした あなたができることをを呼び出すことができます 1457 01:15:02,600 --> 01:15:05,940 あなたがしているすべてのメモリを追跡します プログラムで使用して起こっていました。 1458 01:15:05,940 --> 01:15:11,090 だから、あなたのような、何かを持っている場合は、 確かに1つのブロックに、40バイトを失いました。 1459 01:15:11,090 --> 01:15:14,870 おそらくあなたはないです それを解放するために覚えています。 1460 01:15:14,870 --> 01:15:18,710 あなたは、メモリのバイトを使用している場合ので、 それは、あなたがそのメモリにアクセスしてきた意味します 1461 01:15:18,710 --> 01:15:20,240 しかし、あなたは解放することができていません。 1462 01:15:20,240 --> 01:15:21,948 だから、作りたいです あなたもしていることを確認してください 1463 01:15:21,948 --> 01:15:31,420 それはだfree--使用して すべてを解放しますfunction-- 1464 01:15:31,420 --> 01:15:34,930 malloc関数によって再割り当てメモリの。 1465 01:15:34,930 --> 01:15:35,500 >> クール。 1466 01:15:35,500 --> 01:15:37,140 したがって、このスライドは、私はそれを持っています。 1467 01:15:37,140 --> 01:15:41,050 それは多くののいたるところです セクションのスライドの多くで講演。 1468 01:15:41,050 --> 01:15:44,254 あなたは本当に確認します あなただけのこのすべてを知っています。 1469 01:15:44,254 --> 01:15:47,170 ご了承シートのかのいずれかの場合 それを暗記したい、お気軽に。 1470 01:15:47,170 --> 01:15:48,836 それは本当に、本当に、本当に重要です。 1471 01:15:48,836 --> 01:15:53,200 1472 01:15:53,200 --> 01:15:56,890 >> また、非常に良いです 私たちが求めることができる質問。 1473 01:15:56,890 --> 01:16:00,320 なぜ選択sort--外観がにあります ランタイムのすべてsort--選択 1474 01:16:00,320 --> 01:16:02,060 N乗されています。 1475 01:16:02,060 --> 01:16:06,714 かかわらず、リストにはどのようになるの あなたなぜ選択がある、としてsort-- 1476 01:16:06,714 --> 01:16:08,630 私は君たち30をあげます 二本について考えます。 1477 01:16:08,630 --> 01:16:10,700 それは一種の混乱だから。 1478 01:16:10,700 --> 01:16:12,710 これは、いくつかの概念の考えを必要とします。 1479 01:16:12,710 --> 01:16:16,470 なぜ実行時間は同じになります 最悪と最良の場合のシナリオの両方? 1480 01:16:16,470 --> 01:16:28,850 1481 01:16:28,850 --> 01:16:30,000 >> うん? 1482 01:16:30,000 --> 01:16:38,084 >> 聴衆:選択ソート各ので、 この小さな配列内の位置や空間 1483 01:16:38,084 --> 01:16:40,350 事や何でも。 1484 01:16:40,350 --> 01:16:44,430 そうであっても最良の場合のシナリオにおいて、 それは完全に並べ替えていたとしても、 1485 01:16:44,430 --> 01:16:47,380 それはまだ1、[OK]を、のようでなければならないであろう。 1486 01:16:47,380 --> 01:16:49,000 私の最初の場所で私は1つを持っています。 1487 01:16:49,000 --> 01:16:50,250 そして、それらのすべてを通過します。 1488 01:16:50,250 --> 01:16:51,249 OK、一つは最小です。 1489 01:16:51,249 --> 01:16:53,053 そしてそれは再び行き そして、[OK]を、のように2個です 1490 01:16:53,053 --> 01:16:54,594 すべてのものの中で最小です。 1491 01:16:54,594 --> 01:16:56,804 しかし、それはまだする必要があります 一人一人をチェックしてください。 1492 01:16:56,804 --> 01:16:57,470 教授:ええ。 1493 01:16:57,470 --> 01:17:00,490 したがって、たとえば、ちょうど言わせ 我々はすでにソート、リストを持って、 1494 01:17:00,490 --> 01:17:03,390 配列五から一。 1495 01:17:03,390 --> 01:17:07,100 選択ソートはということですする方法 それは、これら2つをチェックし、通過します。 1496 01:17:07,100 --> 01:17:08,234 そして、それは、これらの2つのチェック。 1497 01:17:08,234 --> 01:17:09,650 そして、それはチェックし、それがチェックします。 1498 01:17:09,650 --> 01:17:13,285 これは、それらのすべてをチェックし続けます かかわらずか否か 1499 01:17:13,285 --> 01:17:14,160 それは実際にソートしています。 1500 01:17:14,160 --> 01:17:16,450 それは単純だから ソートが機能する方法。 1501 01:17:16,450 --> 01:17:19,530 >> だからこの質問は種のようなものです 我々は頼むよ概念的な質問。 1502 01:17:19,530 --> 01:17:21,430 どこで最初に、あなたに どのような選択ソートを知っています 1503 01:17:21,430 --> 01:17:23,304 できるようにするには、右であり、 質問に答えます。 1504 01:17:23,304 --> 01:17:26,200 あなたが理解できるようにする必要があります 概念的に何が起こっているのか。 1505 01:17:26,200 --> 01:17:30,760 そして、[OK]をクリックすると、それを適用し、考えることができます ちょうど最悪のシナリオを想像してみましょう。 1506 01:17:30,760 --> 01:17:32,230 彼らはすべての降順にしています。 1507 01:17:32,230 --> 01:17:33,290 どのようにそれはそれに影響を与えるのでしょうか? 1508 01:17:33,290 --> 01:17:34,650 >> それは何の昇順ですか? 1509 01:17:34,650 --> 01:17:35,640 それはすでにソートですか? 1510 01:17:35,640 --> 01:17:37,240 どのようにそれが実行時間に影響を与えるのでしょうか? 1511 01:17:37,240 --> 01:17:40,270 そして選択ソート、あなたは気づくでしょう それは実際には問題ではないこと。 1512 01:17:40,270 --> 01:17:43,500 あなたがチェックしているので、すべての 関係なく、何が起こっているかの値。 1513 01:17:43,500 --> 01:17:45,810 >> そして忘れてはならないので、良いもの。 1514 01:17:45,810 --> 01:17:50,290 いくつかの種類が他と異なるのはなぜ どのように最善と最悪の場合のシナリオ 1515 01:17:50,290 --> 01:17:52,740 それらのすべてに影響を与えるだろう。 1516 01:17:52,740 --> 01:17:56,700 >> 私は実際にソートでヒットするつもりです それはクイズになりますので。 1517 01:17:56,700 --> 01:17:57,199 うん。 1518 01:17:57,199 --> 01:18:00,820 1519 01:18:00,820 --> 01:18:01,320 OK。 1520 01:18:01,320 --> 01:18:05,590 左の6分があります。 1521 01:18:05,590 --> 01:18:09,880 私は質問の3分かかることがあります。 1522 01:18:09,880 --> 01:18:12,290 私はまたのためにたむろすることができます セクションの後に20分のような 1523 01:18:12,290 --> 01:18:13,850 あなたにも質問をしたい場合。 1524 01:18:13,850 --> 01:18:16,330 誰もが本当に簡単に持っています 質問や概念的な問題 1525 01:18:16,330 --> 01:18:17,360 彼らは今、約不明確ですか? 1526 01:18:17,360 --> 01:18:17,832 うん? 1527 01:18:17,832 --> 01:18:19,720 >> 観客は:あなたは少し話をすることができます ビット演算子についてビット? 1528 01:18:19,720 --> 01:18:20,280 >> 教授:ええ。 1529 01:18:20,280 --> 01:18:22,446 だから、ビット演算子があります おそらく何か 1530 01:18:22,446 --> 01:18:24,170 ちょうどあなたのシートの上に置くことをお勧めします。 1531 01:18:24,170 --> 01:18:27,540 だから私はしたくありませんquickly-- 深さのあまり行きます 1532 01:18:27,540 --> 01:18:31,164 自分のレビューで、ハーバード理由 セッションは、かなりよくそれをカバーしました。 1533 01:18:31,164 --> 01:18:33,080 ビット単位の演算子は、あります そのうちの5、右? 1534 01:18:33,080 --> 01:18:41,370 >> これは、xまたは関数である、あります、 あるアンパサンドは、あります。 1535 01:18:41,370 --> 01:18:44,050 またはであるパイプ、。 1536 01:18:44,050 --> 01:18:46,790 そして、次の2つを持っています シフトの異なるタイプ。 1537 01:18:46,790 --> 01:18:50,610 >> 私はあなたに2つの値を与えた場合、もし 私は1つずつ、同じように、あなたを与えます。 1538 01:18:50,610 --> 01:18:52,390 それは何をするに評価するのでしょうか? 1539 01:18:52,390 --> 01:18:55,490 なら、私はあなたが本当の、真の、真与えますか? 1540 01:18:55,490 --> 01:18:56,930 何trueまたはfalseはどうですか? 1541 01:18:56,930 --> 01:18:57,830 右、まだ本当? 1542 01:18:57,830 --> 01:18:59,762 またはがありますので。 1543 01:18:59,762 --> 01:19:01,220 私たちは、最も可能性の高いあなたの番号を与えるでしょう。 1544 01:19:01,220 --> 01:19:03,780 だから、1等号を覚えています 真、ゼロが偽に等しいです。 1545 01:19:03,780 --> 01:19:07,407 そして、私たちはあなたにこれらの事を与えるかもしれません そして、何が起こるか私達に伝えるためにお願いします。 1546 01:19:07,407 --> 01:19:10,240 ハーバード大学は、最初の中でそれをカバー その勉強会の10分 1547 01:19:10,240 --> 01:19:11,230 本当に、本当によく。 1548 01:19:11,230 --> 01:19:14,260 だからみんなが作りたいです あなたが戻ってその上を見てください。 1549 01:19:14,260 --> 01:19:16,387 >> 観客は:pisa5です クイズにになるだろうか? 1550 01:19:16,387 --> 01:19:16,970 教授:いいえ。 1551 01:19:16,970 --> 01:19:18,240 でも今pisa5を見てはいけません。 1552 01:19:18,240 --> 01:19:18,810 それは難しいです。 1553 01:19:18,810 --> 01:19:22,830 ただでさえpisa5を見て気にしないでください。 1554 01:19:22,830 --> 01:19:25,665 >> しかし、いくつかのヒントとして 提案、私 1555 01:19:25,665 --> 01:19:28,320 あなたがpisa5を開始することをお勧め すぐにクイズが終わったよう。 1556 01:19:28,320 --> 01:19:30,319 これが一番難しいだろう 週が、その後君たち 1557 01:19:30,319 --> 01:19:34,590 丘の上に渡されます 緑と子犬の圧延、 1558 01:19:34,590 --> 01:19:36,115 それは大丈夫です。 1559 01:19:36,115 --> 01:19:39,810 >> このクラスは、かなりの取得します 第五のpset後に容易になります。 1560 01:19:39,810 --> 01:19:41,560 聴衆:オフィス時間 日曜日、月曜日はありますか? 1561 01:19:41,560 --> 01:19:44,260 教授:ええ、そうオフィスアワーます PSET月曜日に日曜日。 1562 01:19:44,260 --> 01:19:47,009 オフィスアワー今夜、本質的に ただクイズのレビューになります。 1563 01:19:47,009 --> 01:19:50,350 誰もが来て、お願いしたい場合 質問のTAは、我々はそこになるだろう。 1564 01:19:50,350 --> 01:19:53,220 >> 私は多分もう一つの質問を取りますよ 誰もが疑問を持っている場合はどうなりますか? 1565 01:19:53,220 --> 01:19:53,809 うん? 1566 01:19:53,809 --> 01:19:55,850 観客:あなたがしています 定義ノード、[聞こえません] 1567 01:19:55,850 --> 01:20:00,700 あなたは次の、ノードの星と言うならば、 コンピュータが自動的に行います 1568 01:20:00,700 --> 01:20:03,610 あなたがしていることを理解 別のポインタを参照しますか? 1569 01:20:03,610 --> 01:20:04,580 >> 教授:いいえ。 1570 01:20:04,580 --> 01:20:06,710 >> 観客:あなたがする必要があります [聞こえない]それを再リンク? 1571 01:20:06,710 --> 01:20:09,270 >> 教授:だから、基本的に ノードの構造体には、覚えています、 1572 01:20:09,270 --> 01:20:12,620 ノードを作成するようなものだと その後、あなたは次のと呼ばれるポインタを持っています。 1573 01:20:12,620 --> 01:20:14,630 あなたがやっているすべては持っています そこに構造。 1574 01:20:14,630 --> 01:20:16,387 あなたが割り当てる必要があります それはどこかのポインタ。 1575 01:20:16,387 --> 01:20:18,470 だから、コンピュータはしていません それはまだやっているか知っています。 1576 01:20:18,470 --> 01:20:20,250 あなたが実際にするときにそれを割り当てる必要があります あなたのリンクリストを作成しています。 1577 01:20:20,250 --> 01:20:22,170 そして、それは主に何 PSET 5がオンになります。 1578 01:20:22,170 --> 01:20:24,106 そんなに心配しません 今では右のいずれか。 1579 01:20:24,106 --> 01:20:26,380 >> 聴衆:だから我々はする必要はありません ただ、リンクリストにあまり焦点を合わせます 1580 01:20:26,380 --> 01:20:27,440 一般的な概念? 1581 01:20:27,440 --> 01:20:30,980 >> 教授:ちょうどかなりのスタック、 キュー、リンクリスト、ツリー、ハッシュテーブル。 1582 01:20:30,980 --> 01:20:33,639 ただ、彼らが何であるかを知ることができます。 1583 01:20:33,639 --> 01:20:35,680 私たちはお願いするつもりはありません あなたが特定の何が好き 1584 01:20:35,680 --> 01:20:39,300 私たちは本当に行っていないので、 まだそのいずれかをカバーしていPSET。 1585 01:20:39,300 --> 01:20:45,540 >> だから、最後の2分間で前 私はこのクイズを殺すためにあなたが自由に設定してください。 1586 01:20:45,540 --> 01:20:49,370 かなり、のような、方法を考えます これまであなたたちは、このクラスに来ています。 1587 01:20:49,370 --> 01:20:52,820 >> 私は、ときに2週を覚えて このクラス、あなたのいくつかの 1588 01:20:52,820 --> 01:20:55,720 水を書いて三時間を費やしています。 1589 01:20:55,720 --> 01:20:57,970 どのくらいの時間があなたを取ります みんな今水を書くには? 1590 01:20:57,970 --> 01:20:59,670 30秒、多分? 1591 01:20:59,670 --> 01:21:01,810 どのくらいを考えてみて あなたたちは学びました。 1592 01:21:01,810 --> 01:21:04,320 CSは本当に、本当に難しい課題です。 1593 01:21:04,320 --> 01:21:06,190 そののは間違いありません。 1594 01:21:06,190 --> 01:21:09,160 それは、誰もそれを研究していない理由だと、難しいです。 1595 01:21:09,160 --> 01:21:10,730 それだけでは難しいです。 1596 01:21:10,730 --> 01:21:11,650 そして、それは完全に罰金です。 1597 01:21:11,650 --> 01:21:14,150 >> そして、私は本当に誇りに思っています 誰もがここまでそれを作りました。 1598 01:21:14,150 --> 01:21:16,380 Psetは簡単ではありません。 1599 01:21:16,380 --> 01:21:17,790 彼らは多くの時間がかかります。 1600 01:21:17,790 --> 01:21:22,580 君たちは、私が書くように頼むことはありません PSETの15またはVigenereのゲーム。 1601 01:21:22,580 --> 01:21:24,160 ちょうどそれについてフリークアウトする必要はありません。 1602 01:21:24,160 --> 01:21:28,080 私たちはここでテストしているすべてが評価することです あなたの概念の知識だけでなく 1603 01:21:28,080 --> 01:21:31,524 コー​​ディングの基本的なスキルの一部として。 1604 01:21:31,524 --> 01:21:33,440 テストはするように設計されています 本当に挑戦します。 1605 01:21:33,440 --> 01:21:36,180 同様に、それが設計されています あなたのためには、100を取得しないように。 1606 01:21:36,180 --> 01:21:39,880 また、あなたはおそらくのために設計されています 75分で終了することができません。 1607 01:21:39,880 --> 01:21:41,995 そして、それは完全に罰金です。 1608 01:21:41,995 --> 01:21:42,870 私は自分自身学生です。 1609 01:21:42,870 --> 01:21:45,960 私が歩くとき、私は知っている、私はそれを嫌います クイズのたわごと、のようになります。 1610 01:21:45,960 --> 01:21:47,044 それは本当に大変でした。 1611 01:21:47,044 --> 01:21:49,460 おそらく何が起こっているに happen--、それは完全に罰金ですが、 1612 01:21:49,460 --> 01:21:50,751 私は今あなたの人を言っています。 1613 01:21:50,751 --> 01:21:53,190 これらの事の手段 全然高くありません。 1614 01:21:53,190 --> 01:21:55,360 >> そして、あなたのそれらのための人 以下のように、取得されました、 1615 01:21:55,360 --> 01:21:57,870 あなたの問題セットのスリー、 それはあなたがしているという意味ではありません 1616 01:21:57,870 --> 01:21:59,536 このクラスでは60%を取得するつもり。 1617 01:21:59,536 --> 01:22:01,440 あなたは上の60%を取得する場合 ないクイズ、 1618 01:22:01,440 --> 01:22:03,330 あなたがしようとしている意味 このクラスではDを得ます。 1619 01:22:03,330 --> 01:22:05,740 我々は、特に私のために、参照してください。 私のセクションであなたのもの、 1620 01:22:05,740 --> 01:22:07,406 私はあなたたちはすべての作業をしているいかに難しいかを参照してください。 1621 01:22:07,406 --> 01:22:09,190 そして、私はそれを追跡します。 1622 01:22:09,190 --> 01:22:11,420 >> 君たちは罰金になります。 1623 01:22:11,420 --> 01:22:14,580 のない制度メモリはありません 学期の終わりに幸せ。 1624 01:22:14,580 --> 01:22:16,840 すべてのハーバード大学の子供たちが言っているので、 その友人は、ああ、あなたは大丈夫です。 1625 01:22:16,840 --> 01:22:18,381 誰もあなたにここでみんなを語っていません。 1626 01:22:18,381 --> 01:22:20,950 だから私はあなたに、ここでみんなに指示する必要があります。 1627 01:22:20,950 --> 01:22:22,280 >> 君たちは罰金になります。 1628 01:22:22,280 --> 01:22:24,080 私はあなたたちのすべてのように誇りに思っています。 1629 01:22:24,080 --> 01:22:25,680 テストは難しいでしょう。 1630 01:22:25,680 --> 01:22:28,140 それのための研究、その後 ちょうどそれを捨てます。 1631 01:22:28,140 --> 01:22:31,280 新しいことを学ぶために準備をしなさい。 1632 01:22:31,280 --> 01:22:33,990 そして、お菓子を食べます。 1633 01:22:33,990 --> 01:22:35,940 私たちはお菓子をたくさん持っていました。 1634 01:22:35,940 --> 01:22:37,760 >> 良い夜の眠りを取得します。 1635 01:22:37,760 --> 01:22:40,420 寝ていてはいけない、なぜなら それは本当に悪いだろう。 1636 01:22:40,420 --> 01:22:41,490 CSはロジックがたくさんあり​​ます。 1637 01:22:41,490 --> 01:22:44,960 あなたが寝ていない場合は、機能しないことができ、 あなたの脳が機能することはできません。 1638 01:22:44,960 --> 01:22:48,780 そして、私は次の20のためにここにいますよ 分誰もがたむろしたい場合。 1639 01:22:48,780 --> 01:22:51,150 君たちはそれを殺すためにしようとしています。 1640 01:22:51,150 --> 01:22:53,000 がんばろう。 1641 01:22:53,000 --> 01:22:55,663