1 00:00:00,000 --> 00:00:10,940 2 00:00:10,940 --> 00:00:13,060 >> DAVID Jマラン:すべて 右、これはCS50です。 3 00:00:13,060 --> 00:00:15,040 そして、これは明らかに金曜日です。 4 00:00:15,040 --> 00:00:16,850 そして、これは1週間の終わりです。 5 00:00:16,850 --> 00:00:21,020 ですから、私たちはオフに左ことを思い出して、 ある種の接戦と最後の時間、。 6 00:00:21,020 --> 00:00:25,020 これにより、我々はありませんことを、この嘘を公開 あなたが成長して教えられてきたかは重要 7 00:00:25,020 --> 00:00:31,610 で、10で割った1ではなく、アップ 事実、0.1または0.100または0.10000。 8 00:00:31,610 --> 00:00:35,270 実際には、我々はこれをコンパイルした場合 プログラム、私たちが、昨日のように、 9 00:00:35,270 --> 00:00:39,770 不正確を行い、その後、 、ドット、スラッシュ、不正確を行います 10 00:00:39,770 --> 00:00:43,600 我々は、これは何であることを学びました 図1は、実際には10で割った値。 11 00:00:43,600 --> 00:00:46,140 だから、実際にはかなりの場合ではありません。 12 00:00:46,140 --> 00:00:49,014 しかし、これは、いくつかをほのめかすん コンピュータの基本的な制限。 13 00:00:49,014 --> 00:00:50,930 そして実際、間 私たちがやろうとしているもの 14 00:00:50,930 --> 00:00:55,130 今日はこれを持っている理由を見ています 起こった、これは持っているものの影響、 15 00:00:55,130 --> 00:00:58,430 人類は失敗しましたか いくつかの非常にこれを把握します 16 00:00:58,430 --> 00:01:00,410 深刻situations-- 結果 17 00:01:00,410 --> 00:01:03,141 非常に悲劇的なされています またexpensive--と 18 00:01:03,141 --> 00:01:04,849 どのように我々を見てみましょう 実際に守ることができます 19 00:01:04,849 --> 00:01:06,530 制限これらの種類に対して。 20 00:01:06,530 --> 00:01:10,940 そう直感的に、おそらく、 なぜ1は、10で割って、 21 00:01:10,940 --> 00:01:15,480 私のコンピュータに応じて ここでは、だけではなく、1月10日、0.10? 22 00:01:15,480 --> 00:01:15,980 うん。 23 00:01:15,980 --> 00:01:16,530 どう思いますか? 24 00:01:16,530 --> 00:01:17,860 >> 聴衆:基数が違うのですか? 25 00:01:17,860 --> 00:01:18,550 >> DAVID Jマラン:何ですか? 26 00:01:18,550 --> 00:01:19,730 ああ、基数は違うのですか? 27 00:01:19,730 --> 00:01:20,720 だから、かなりありません。 28 00:01:20,720 --> 00:01:23,200 それは実際にはよりです ハードウェアの基本。 29 00:01:23,200 --> 00:01:23,980 その他の考えですか? 30 00:01:23,980 --> 00:01:24,584 うん。 31 00:01:24,584 --> 00:01:26,750 聴衆:彼ら 異なる数値を表しますか? 32 00:01:26,750 --> 00:01:27,880 DAVID Jマラン:だからthey--右。 33 00:01:27,880 --> 00:01:29,338 彼らは異なった数を表します。 34 00:01:29,338 --> 00:01:30,700 不正確、明らかに。 35 00:01:30,700 --> 00:01:33,190 、まあis--だから 異なったものとは? 36 00:01:33,190 --> 00:01:34,490 それとも誰から? 37 00:01:34,490 --> 00:01:35,050 会社から? 38 00:01:35,050 --> 00:01:35,966 聴衆:うん。 39 00:01:35,966 --> 00:01:38,930 彼らは、小数点を使用しません [聞こえない]にシステム。 40 00:01:38,930 --> 00:01:39,680 DAVID Jマラン:OK。 41 00:01:39,680 --> 00:01:41,560 だからある意味で、彼らはしないでください 十進法を使用しています。 42 00:01:41,560 --> 00:01:43,720 ボンネットの下に、 すべては、確かに、バイナリで、 43 00:01:43,720 --> 00:01:45,510 それは実際には、関連です。 44 00:01:45,510 --> 00:01:48,135 しかし、それも簡単です それより説明。 45 00:01:48,135 --> 00:01:48,635 うん。 46 00:01:48,635 --> 00:01:49,970 >> 聴衆:彼ら 唯一の非常に多くのビットを有します。 47 00:01:49,970 --> 00:01:52,370 彼らは、特定のまで保存することができます 程度、小数と同じように。 48 00:01:52,370 --> 00:01:52,780 >> DAVID Jマラン:うん。 49 00:01:52,780 --> 00:01:54,420 これは、実際にそれになっているものです。 50 00:01:54,420 --> 00:01:57,180 これは、そのコンピュータが判明 通常は、常に唯一の意志 51 00:01:57,180 --> 00:01:59,690 情報の有限量を使用 何かを表現します。 52 00:01:59,690 --> 00:01:59,870 右? 53 00:01:59,870 --> 00:02:02,110 結局のところ、我々は固定されています ハードディスク領域の量。 54 00:02:02,110 --> 00:02:04,210 私たちは、一定量を持っています RAM、またはコンピュータのメモリ。 55 00:02:04,210 --> 00:02:06,251 そして、あなたが持っている場合にのみ、 何かの一定量、 56 00:02:06,251 --> 00:02:09,611 きっとあなたは、実際にカウントアップすることはできません 無限大またはあなたが望む任意の番号に。 57 00:02:09,611 --> 00:02:11,610 あなたは、一種のに持っています 選んで、どのような範囲を選択 58 00:02:11,610 --> 00:02:13,220 値のあなたはサポートするつもりです。 59 00:02:13,220 --> 00:02:18,100 >> だから例えば、週または2 前、私たちは、ASCIIの話をするとき、 60 00:02:18,100 --> 00:02:21,610 私たちは約8ビットを話しました、 またはバイト、いわば、 61 00:02:21,610 --> 00:02:26,360 我々は可能性が最大の数 8ビットで表現するものでしたか? 62 00:02:26,360 --> 00:02:28,350 255。 63 00:02:28,350 --> 00:02:31,850 そして、私たちは256の合計値を表すことができます しかし、我々はそれらのいずれかを過ごすない場合 64 00:02:31,850 --> 00:02:34,190 まあ0--のが、我々の場合 0にそれらのいずれかを過ごします、 65 00:02:34,190 --> 00:02:36,830 その後、最大の数 もちろん、255です。 66 00:02:36,830 --> 00:02:39,410 >> だから、これがあること、が判明 この文脈ではあまりに場合​​、。 67 00:02:39,410 --> 00:02:42,350 我々は前回、話し始め、 浮動小数点数は約います 68 00:02:42,350 --> 00:02:44,640 で、整数とは異なります 彼らは小数点を持っていること 69 00:02:44,640 --> 00:02:47,056 そして、うまくいけば、いくつかの数字 その後、彼らはあまりにもあります。 70 00:02:47,056 --> 00:02:51,730 コンピュータがのみ一般的に起こっています 32ビット、多分64ビットを使用します 71 00:02:51,730 --> 00:02:53,497 浮動小数点値を表現します。 72 00:02:53,497 --> 00:02:56,080 だから私たちは育ったにも関わらず、 数学を学び、知ること 73 00:02:56,080 --> 00:02:58,750 あなたは絶対に持つことができること 数字の無限の数 74 00:02:58,750 --> 00:03:01,650 小数点以下のではなく、 あなたは有限のメモリを持っている場合。 75 00:03:01,650 --> 00:03:03,930 あなたは、一種の、四捨五入する必要があり、 またはピックアップし、選択します 76 00:03:03,930 --> 00:03:05,346 数字はあなたが表すようになるだろう。 77 00:03:05,346 --> 00:03:08,710 だから、あなたはある意味で、考えることができ、 これは、コンピュータの最も近いという 78 00:03:08,710 --> 00:03:14,050 その値の1/10に近似 それはちょうど32かそこらビットで、取得することができます。 79 00:03:14,050 --> 00:03:15,300 そして、それはちょうど1/10ではありません。 80 00:03:15,300 --> 00:03:19,820 >> 例えば、私はこれを変更した場合 私たちが考える1/3は、さらに簡単です。 81 00:03:19,820 --> 00:03:21,300 だから、1〜3で割りました。 82 00:03:21,300 --> 00:03:22,355 私は、ファイルを保存してみましょう。 83 00:03:22,355 --> 00:03:24,680 私が先に行くと、それを再コンパイルしてみましょう。 84 00:03:24,680 --> 00:03:25,820 そして、私はそれを再実行してみましょう。 85 00:03:25,820 --> 00:03:30,000 ここでも、どうやら、1/3は0.3ではありません して、3者の無限の数 86 00:03:30,000 --> 00:03:30,770 その後。 87 00:03:30,770 --> 00:03:32,540 あなたは最後に、この不正確さを持っています。 88 00:03:32,540 --> 00:03:35,544 だから我々人間が正しいか、どのような あなたは正しい、実際には、ISを学びました、 89 00:03:35,544 --> 00:03:37,460 しかし我々は、最大バンピングしています いくつかの制限に対して。 90 00:03:37,460 --> 00:03:39,420 >> そして、私が考えたもの 我々は、現在と思い始めています 91 00:03:39,420 --> 00:03:42,190 率直に言って、を見て この悲劇的な結果 92 00:03:42,190 --> 00:03:45,490 時には、とき人類 全く実装されていません。 93 00:03:45,490 --> 00:03:48,460 この現実と、これらの制限のために。 94 00:03:48,460 --> 00:03:52,360 そして、我々はビネットのシリーズを参照してくださいよ かかるヒストリーチャンネルから 95 00:03:52,360 --> 00:03:53,950 物事がうまく行っているかを見て。 96 00:03:53,950 --> 00:03:56,340 それは、約8分の長です 私たちは、この後に戻ってきます 97 00:03:56,340 --> 00:03:59,439 そして、正確に見てみましょう 他に何が間違って行くことができます。 98 00:03:59,439 --> 00:04:00,605 我々はlights--を暗くすることができれば 99 00:04:00,605 --> 00:04:02,350 >> [ビデオ再生] 100 00:04:02,350 --> 00:04:06,310 >> -Computers、我々はすべて受け入れるようになってきました 頻繁にイライラすることの問題 101 00:04:06,310 --> 00:04:07,750 彼らと一緒に行きます。 102 00:04:07,750 --> 00:04:11,370 バグ、ウイルス、およびソフトウェア グリッチは、小さな価格です 103 00:04:11,370 --> 00:04:13,230 便宜のために支払います。 104 00:04:13,230 --> 00:04:17,519 しかし、ハイテク、高速 軍事と宇宙プログラムアプリケーション、 105 00:04:17,519 --> 00:04:22,130 できる最小の問題 災​​害に拡大します。 106 00:04:22,130 --> 00:04:27,750 1996年6月4日には、科学者が用意します 無人アリアン5ロケットを起動します。 107 00:04:27,750 --> 00:04:29,890 それは科学的運んでいました 衛星設計 108 00:04:29,890 --> 00:04:33,030 正確にどのように確立します 地球の磁場の相互作用 109 00:04:33,030 --> 00:04:35,600 太陽風と。 110 00:04:35,600 --> 00:04:37,930 ロケットがために建てられました 欧州宇宙機関 111 00:04:37,930 --> 00:04:41,620 その施設からリフトオフ フランス領ギアナの海岸に。 112 00:04:41,620 --> 00:04:44,924 >> - そして、約30秒に フライト、最初に彼ら 113 00:04:44,924 --> 00:04:46,340 何かが間違っているつもりだった気づきました。 114 00:04:46,340 --> 00:04:49,280 ノズルが旋回していることが 方法で彼らは本当にいけません。 115 00:04:49,280 --> 00:04:53,042 飛行中に40秒付近、 明らかに車両がトラブルにありました、 116 00:04:53,042 --> 00:04:55,250 彼らが作ったとき、それはです それを破壊することを決定。 117 00:04:55,250 --> 00:04:58,970 レンジ安全管理者と 驚異的な根性はボタンを押し、 118 00:04:58,970 --> 00:05:03,940 それができたの前にロケットを爆破 公共の安全に危険になります。 119 00:05:03,940 --> 00:05:06,600 >> - これは処女でした アリアン5の航海、 120 00:05:06,600 --> 00:05:09,270 その破壊がかかりました なぜなら傷の場所 121 00:05:09,270 --> 00:05:10,992 ロケットのソフトウェアに組み込まれ。 122 00:05:10,992 --> 00:05:12,700 上-The問題 アリアンはそれがありました 123 00:05:12,700 --> 00:05:15,370 必要な数でした 表現するために64ビット、 124 00:05:15,370 --> 00:05:18,150 彼は変換したいです それ16ビット数に。 125 00:05:18,150 --> 00:05:21,160 彼らは数と仮定 非常に大きいことを行っていませんでした、 126 00:05:21,160 --> 00:05:25,020 その中で、これらの数字のほとんど 64ビット数が0でした。 127 00:05:25,020 --> 00:05:26,310 彼らは間違っていました。 128 00:05:26,310 --> 00:05:28,680 >> 1の-Theできません 受け入れるようにソフトウェアプログラム 129 00:05:28,680 --> 00:05:32,820 によって生成された番号の種類 別のは、障害の根本にありました。 130 00:05:32,820 --> 00:05:37,190 ソフトウェア開発はなっていました 新技術の非常に高価一部。 131 00:05:37,190 --> 00:05:40,760 アリアン4ロケットは非常にされていました ソフトウェアの成功、そんなに 132 00:05:40,760 --> 00:05:43,990 それがまたあったために作成さ アリアン5で使用されます。 133 00:05:43,990 --> 00:05:49,750 >> -The基本的な問題は、アリアンました 図5は、早かったより速く加速しました。 134 00:05:49,750 --> 00:05:53,000 そして、ソフトウェアはいませんでした そのために占めています。 135 00:05:53,000 --> 00:05:56,330 >> ロケットの-The破壊 巨大な金融災害でした、 136 00:05:56,330 --> 00:05:59,670 分のソフトウェア・エラーに起因するすべて。 137 00:05:59,670 --> 00:06:01,990 しかし、これは最初ではなかったです 時間データの変換の問題 138 00:06:01,990 --> 00:06:05,310 現代のロケット技術を悩ませていました。 139 00:06:05,310 --> 00:06:08,300 >> 開始と、1991 -in 第一次湾岸戦争の、 140 00:06:08,300 --> 00:06:10,650 パトリオット・ミサイル 似たようなものを経験しました 141 00:06:10,650 --> 00:06:12,650 番号変換の問題。 142 00:06:12,650 --> 00:06:15,620 その結果、28人、 28アメリカ兵 143 00:06:15,620 --> 00:06:18,440 殺された程度 100他の人が負傷し、 144 00:06:18,440 --> 00:06:21,900 ときになっていたパトリオット、 着信scudsから保護するために、 145 00:06:21,900 --> 00:06:24,630 ミサイルを発射することができませんでした。 146 00:06:24,630 --> 00:06:29,440 >> -Whenイラクはクウェートとアメリカを侵略 初期の1991年に砂漠の嵐を立ち上げ、 147 00:06:29,440 --> 00:06:33,800 パトリオットミサイル電池が配備されました サウジアラビアとイスラエルを守るために 148 00:06:33,800 --> 00:06:37,000 イラクのスカッドミサイル攻撃から。 149 00:06:37,000 --> 00:06:40,610 パトリオットは、米国、中距離であります 表面 - 空気システム 150 00:06:40,610 --> 00:06:43,010 レイセオン社製。 151 00:06:43,010 --> 00:06:49,080 >> パトリオット迎撃の-Theサイズ、 それ自体は、約20フィートの長さ、についてです。 152 00:06:49,080 --> 00:06:51,250 そして、それは約2000ポンドの重さ。 153 00:06:51,250 --> 00:06:55,195 そして、それはabout--の弾頭を運びます 私はそれがおよそ150ポンドだと思います。 154 00:06:55,195 --> 00:06:59,500 そして弾頭、それ自体、 高性能爆薬です、 155 00:06:59,500 --> 00:07:02,570 それの周りの断片があります。 156 00:07:02,570 --> 00:07:06,890 弾頭のケーシングであります 散弾のよ​​うに動作するように設計。 157 00:07:06,890 --> 00:07:09,130 >> -Theミサイルがあります 4コンテナあたり、実施、 158 00:07:09,130 --> 00:07:12,080 そして、セミトレーラーで輸送されています。 159 00:07:12,080 --> 00:07:19,100 >> -Theパトリオット反ミサイルシステム 今20年以上さかのぼります。 160 00:07:19,100 --> 00:07:22,320 これはもともと設計されました 防空ミサイルなど 161 00:07:22,320 --> 00:07:24,180 敵の飛行機を撃墜します。 162 00:07:24,180 --> 00:07:27,860 第一次湾岸戦争では、 その戦争が一緒に来たときに、 163 00:07:27,860 --> 00:07:32,745 陸軍はそれを使用したいです scudsではなく、飛行機を撃墜。 164 00:07:32,745 --> 00:07:36,150 イラクの強制ではありませんでした 問題のあまり、 165 00:07:36,150 --> 00:07:39,110 しかし軍はscuds心配していました。 166 00:07:39,110 --> 00:07:42,340 だから彼らがしようとしました パトリオットをアップグレードします。 167 00:07:42,340 --> 00:07:44,760 >> 敵を-Intercepting マッハ5で走行ミサイル 168 00:07:44,760 --> 00:07:47,250 十分に挑戦するつもりでした。 169 00:07:47,250 --> 00:07:50,000 しかし、時パトリオット サービスに突入して、 170 00:07:50,000 --> 00:07:54,030 陸軍は、知りませんでした 作られたイラクの変更 171 00:07:54,030 --> 00:07:56,840 そのscudsヒットすることはほぼ不可能。 172 00:07:56,840 --> 00:08:01,020 >> - 何が、起こったことscudsです で来ていた、不安定で、 173 00:08:01,020 --> 00:08:02,310 彼らはウォブリングされました。 174 00:08:02,310 --> 00:08:05,140 その理由、 ためには、イラク人でした 175 00:08:05,140 --> 00:08:09,450 外の600キロを取得します 300キロのミサイル、 176 00:08:09,450 --> 00:08:12,930 フロント弾頭のうち、重量を取りました そして、弾頭を軽量化。 177 00:08:12,930 --> 00:08:17,710 だから今、パトリオットのが来るようにしよう スカッドであり、ほとんどの時間、 178 00:08:17,710 --> 00:08:21,700 の圧倒的多数 時間、それだけでスカッドによって飛んでいくのです。 179 00:08:21,700 --> 00:08:25,700 >> パトリオットシステムオペレータ-once パトリオットは、そのターゲットを逃し実現し、 180 00:08:25,700 --> 00:08:29,790 彼らは、パトリオットの弾頭を爆発させ、 それならば可能な死傷者を避けるために 181 00:08:29,790 --> 00:08:32,380 地面に落下させました。 182 00:08:32,380 --> 00:08:36,340 >> - つまりは、ほとんどの人が見たものでした 空にはそれらの大きい火の玉、 183 00:08:36,340 --> 00:08:41,289 とと誤解 スカッド弾頭のインターセプト。 184 00:08:41,289 --> 00:08:43,590 夜が、 空、ペイトリオッツが登場 185 00:08:43,590 --> 00:08:47,020 正常にすることが ダーランで、scudsを破壊し、 186 00:08:47,020 --> 00:08:49,730 間違いがない可能性が そのパフォーマンスについて。 187 00:08:49,730 --> 00:08:53,990 そこでは、パトリオットのレーダーシステム 着信スカッドのトラックを失いました、 188 00:08:53,990 --> 00:08:56,650 そして、立ち上げたことはありません ソフトウェアの欠陥に起因します。 189 00:08:56,650 --> 00:08:59,650 190 00:08:59,650 --> 00:09:04,100 これは、最初に発見したイスラエル人を 長いシステムがオンになっていること、 191 00:09:04,100 --> 00:09:07,510 長い時間の不一致 、埋め込まれたクロックに起因になりました 192 00:09:07,510 --> 00:09:09,490 システムのコンピュータです。 193 00:09:09,490 --> 00:09:12,670 >> -About 2週間前 ダーランで悲劇、 194 00:09:12,670 --> 00:09:15,010 イスラエルはに報告 国防総省、 195 00:09:15,010 --> 00:09:17,940 システムが時間を失ったこと、 その実行中の約8時間後に、 196 00:09:17,940 --> 00:09:21,410 彼らは、システムがあったことに気づきました 著しく少ない正確​​になってきて。 197 00:09:21,410 --> 00:09:25,290 国防総省はで対応 パトリオット電池のすべてを伝えます 198 00:09:25,290 --> 00:09:28,070 システムのままにしないように 長い時間のために。 199 00:09:28,070 --> 00:09:29,960 彼らは長い時間が何であったか言ったことはありません。 200 00:09:29,960 --> 00:09:30,460 8時間? 201 00:09:30,460 --> 00:09:30,960 10時間? 202 00:09:30,960 --> 00:09:31,870 1000時間? 203 00:09:31,870 --> 00:09:33,734 誰も知りませんでした。 204 00:09:33,734 --> 00:09:35,650 -Theパトリオットバッテリー 兵舎に駐屯 205 00:09:35,650 --> 00:09:40,410 ダーラン、その欠陥のある内部に 、100時間以上のクロックされていました 206 00:09:40,410 --> 00:09:43,041 2月25日の夜に。 207 00:09:43,041 --> 00:09:47,416 >> - それは正確さに時間を追跡しました 約1/10秒のの。 208 00:09:47,416 --> 00:09:49,290 今すぐ1/10秒のです 興味深い数 209 00:09:49,290 --> 00:09:52,700 それができないため、 正確には、2進数で表します。 210 00:09:52,700 --> 00:09:54,820 どの意味、それができません 表現することが、正確に、 211 00:09:54,820 --> 00:09:57,420 現代の任意のデジタルコンピュータです。 212 00:09:57,420 --> 00:10:01,460 それは信じがたいですが、 例として、これを使用しています。 213 00:10:01,460 --> 00:10:03,520 番号、1/3を見てみましょう。 214 00:10:03,520 --> 00:10:07,110 1/3を表現することができません 小数で、正確に。 215 00:10:07,110 --> 00:10:11,490 1/3は、無限大のために起こって0.333です。 216 00:10:11,490 --> 00:10:15,486 それをする方法はと、ありません 小数で絶対精度、。 217 00:10:15,486 --> 00:10:18,360 それはまさに同じようなものです パトリオットで起こった問題。 218 00:10:18,360 --> 00:10:22,510 長いシステムが実行されました、 悪化時エラーになりました。 219 00:10:22,510 --> 00:10:28,420 >> 操作の100時間、エラー-after 時間内にわずかに約1/3秒のでした。 220 00:10:28,420 --> 00:10:31,830 しかし、ターゲットの面で ミサイルマッハ5で走行し、 221 00:10:31,830 --> 00:10:35,890 それは追跡をもたらし 600メートル以上のエラーが発生しました。 222 00:10:35,890 --> 00:10:38,970 それは致命的なエラーになります ダーランで兵士のため。 223 00:10:38,970 --> 00:10:45,035 >> - 何が、起こったスカッド発射だったです 早期警戒衛星によって検出さ 224 00:10:45,035 --> 00:10:48,930 彼らはスカッドがあったことを新しいです 彼らの一般的な方向に来ます。 225 00:10:48,930 --> 00:10:51,170 それは来ていたどこに彼らは知りませんでした。 226 00:10:51,170 --> 00:10:53,990 >> - それは、レーダーまでになりました パトリオットシステムの構成要素、 227 00:10:53,990 --> 00:10:58,520 見つけ、維持するために、ダーランを擁護 入ってくる敵のミサイルの軌道。 228 00:10:58,520 --> 00:10:59,690 >> -Theレーダーは非常にスマートでした。 229 00:10:59,690 --> 00:11:01,710 それは実際に追跡するだろう スカッドの位置 230 00:11:01,710 --> 00:11:04,040 して、どこを予測 それはおそらくだろう、 231 00:11:04,040 --> 00:11:06,140 次回、 レーダーはアウトパルスを送りました。 232 00:11:06,140 --> 00:11:07,660 それはレンジゲートと呼ばれていました。 233 00:11:07,660 --> 00:11:11,870 >> パトリオット一度-Then、 十分な時間をしていることを決定 234 00:11:11,870 --> 00:11:16,280 戻って、次を確認するために渡されました この検出された物体の位置、 235 00:11:16,280 --> 00:11:17,280 それが戻って行きます。 236 00:11:17,280 --> 00:11:21,690 だから、間違ったに戻ったとき、 場所は、それが次に何のオブジェクトを見ていません 237 00:11:21,690 --> 00:11:25,230 それが全く存在しないと判断します オブジェクト、それが誤検出でした、 238 00:11:25,230 --> 00:11:26,650 トラックを削除します。 239 00:11:26,650 --> 00:11:29,690 着信スカッドは消失しました レーダー画面から、 240 00:11:29,690 --> 00:11:32,670 秒後に、それ 兵舎に激突。 241 00:11:32,670 --> 00:11:38,100 スカッドは28を殺し、最後でした 1は、第一次湾岸戦争中に発射しました。 242 00:11:38,100 --> 00:11:43,460 悲劇的に、更新されたソフトウェア 翌日ダーランに到着しました。 243 00:11:43,460 --> 00:11:46,150 ソフトウェアの欠陥がありました 、閉鎖を修正されて 244 00:11:46,150 --> 00:11:48,940 問題を抱えた中の1つの章 パトリオットミサイルの歴史。 245 00:11:48,940 --> 00:11:50,220 >> [END再生] 246 00:11:50,220 --> 00:11:54,340 >> DAVID Jマラン:だから、私たちは見てみましょう 少しだけで、いくつかの同様の制限。 247 00:11:54,340 --> 00:11:58,470 しかし、最初に、してみましょう 数への移行は参考です。 248 00:11:58,470 --> 00:12:01,575 この週末選ぶ - だから、そこに スーパーセクションとなり、 249 00:12:01,575 --> 00:12:04,200 取って代わることを意図されています 定期的にスケジュールされたセクション、どの 250 00:12:04,200 --> 00:12:05,460 したがって、週に起動します。 251 00:12:05,460 --> 00:12:08,204 CS50のウェブサイトを見てみましょう それらの詳細については。 252 00:12:08,204 --> 00:12:11,120 また、撮影やストリーミングされます 出席できない人のために住んでいます。 253 00:12:11,120 --> 00:12:12,980 問題は、上にある1を設定 既にコースのウェブサイト、 254 00:12:12,980 --> 00:12:15,105 私たちは見てみましょう ほんの少しのもの。 255 00:12:15,105 --> 00:12:18,350 また、営業時間もかかります 木曜日までこの月曜日を配置します。 256 00:12:18,350 --> 00:12:20,960 >> だから、これは最も標準的なでした 我々は最後の時間を見てプログラム。 257 00:12:20,960 --> 00:12:23,590 それは最も簡単なようなものです あなたがC言語で書くことができるプログラム、 258 00:12:23,590 --> 00:12:25,250 さらには、それは大胆な主張のビットです。 259 00:12:25,250 --> 00:12:25,750 右? 260 00:12:25,750 --> 00:12:28,070 がたくさんあり​​ますので これに複雑さを思わ。 261 00:12:28,070 --> 00:12:30,445 それでは、簡単に見てみましょう 何これらの要素の一部 262 00:12:30,445 --> 00:12:33,080 提供するために試行したと 方法のためのメンタルモデル 263 00:12:33,080 --> 00:12:35,710 プログラムのこれらの最も簡単な 仕事、その後、私たちは始めましょう 264 00:12:35,710 --> 00:12:38,050 これまで以上に複雑なものを見ています。 265 00:12:38,050 --> 00:12:41,280 そこでここでは、この行は、現在ハイライト表示さ​​れ 黄色で、我々は最後の時間、何を言いました、 266 00:12:41,280 --> 00:12:43,200 これが私たちのためにしていますか? 267 00:12:43,200 --> 00:12:45,220 それが役立つ目的は何ですか? 268 00:12:45,220 --> 00:12:46,984 遠く後ろから誰ですか? 269 00:12:46,984 --> 00:12:47,483 うん。 270 00:12:47,483 --> 00:12:48,649 >> 聴衆:[聞こえません] 271 00:12:48,649 --> 00:12:50,871 272 00:12:50,871 --> 00:12:51,704 DAVID Jマラン:良いです。 273 00:12:51,704 --> 00:12:53,537 だから、あなたのアクセスを提供します コマンドに、またはしてみましょう 274 00:12:53,537 --> 00:12:56,750 それらを呼び出す機能、誰か 他に宣言されていること、書きました、 275 00:12:56,750 --> 00:12:58,350 ので、いくつかの他のファイルに、話します。 276 00:12:58,350 --> 00:13:02,370 だから我々はまさに.hファイルが表示されます 最終的には、.cファイルに対してです。 277 00:13:02,370 --> 00:13:04,710 しかし、今のところ、ちょうど知っています そのprintf関数、例えば、 278 00:13:04,710 --> 00:13:08,370 されている機能の中で どこかで、他のいくつかのファイルで宣言 279 00:13:08,370 --> 00:13:12,930 クラウドのハードドライブ上の他のもの 私たちはprintf関数にアクセスし、それを使用することができます 280 00:13:12,930 --> 00:13:15,240 再発明することなく それは自分自身をホイール。 281 00:13:15,240 --> 00:13:16,930 一方、メイン。 282 00:13:16,930 --> 00:13:19,690 メイン、先週のアナログは何でしたか? 283 00:13:19,690 --> 00:13:20,190 うん。 284 00:13:20,190 --> 00:13:21,460 >> 聴衆:グリーンフラグをクリックします。 285 00:13:21,460 --> 00:13:21,740 >> DAVID Jマラン:うん。 286 00:13:21,740 --> 00:13:23,490 スクラッチの、緑色のフラグがクリックされたとき。 287 00:13:23,490 --> 00:13:25,560 これは、パズルのピースのようなものです それは、物事をキックオフ。 288 00:13:25,560 --> 00:13:28,306 だから同じように、世界を行いました 、C言語で何年か前にそのことを決めました 289 00:13:28,306 --> 00:13:30,930 他の言語の束、 あなたがプログラムを書きたい場合は、 290 00:13:30,930 --> 00:13:33,410 あなたの最初の関数 メイン、と呼ばれることがあります。 291 00:13:33,410 --> 00:13:34,641 そして、それはこのようにする必要があります。 292 00:13:34,641 --> 00:13:36,640 しかし、我々は戻ってくるだろう、 別の時間、何のために、int型、 293 00:13:36,640 --> 00:13:38,690 そして、ボイドが、そのコンテキストで意味します。 294 00:13:38,690 --> 00:13:42,860 ここでは、中括弧は親切です スクラッチのパズルのピースのような形状 295 00:13:42,860 --> 00:13:45,080 それは、行のいくつかの数をカプセル化します。 296 00:13:45,080 --> 00:13:47,070 そして、ラインの間 ここで、ここでこの1です。 297 00:13:47,070 --> 00:13:51,610 printf関数は、その目的関数です 人生は、フォーマットされた文字列を印刷することです。 298 00:13:51,610 --> 00:13:55,010 、フォーマットによって、私はあなたを意味します プレースホルダの値をプラグインすることができ、 299 00:13:55,010 --> 00:13:58,360 あなたはどのように多くの小数点を指定することができます ポイントは、どのように多くの数字を印刷します 300 00:13:58,360 --> 00:14:00,040 小数点などの後。 301 00:14:00,040 --> 00:14:05,040 そして、printf関数は、もちろん、1を取ります 以上の引数やパラメータ、 302 00:14:05,040 --> 00:14:06,770 そうでなければ入力として、より簡単に、知ら。 303 00:14:06,770 --> 00:14:09,230 >> たくさんの好きなので、printfの 関数は、入力を取ります。 304 00:14:09,230 --> 00:14:12,730 そして、それらの入力が包含されます ここでは、2つのカッコで。 305 00:14:12,730 --> 00:14:15,180 そして、それらの中に1が入力されます。 306 00:14:15,180 --> 00:14:18,600 それは我々がそれを呼ばれてきたように、文字列ですが、 文字だけの配列があり、 307 00:14:18,600 --> 00:14:22,310 ワード、フレーズ、または全体のような 二重引用符の間にエッセイであっても、。 308 00:14:22,310 --> 00:14:25,712 そして、それは影響を与えるために何が起こっているのです printf関数の動作のため、当然のことながら、 309 00:14:25,712 --> 00:14:27,170 それだけで、一般的な印刷機能です。 310 00:14:27,170 --> 00:14:29,600 それは何を知っていることはないだろう あなたがそれを指示しない限り、印刷します。 311 00:14:29,600 --> 00:14:31,000 そして、いくつかの特徴点。 312 00:14:31,000 --> 00:14:34,056 我々は、この奇妙な何を言ったの シンボルのシーケンスはありますか? 313 00:14:34,056 --> 00:14:34,556 うん。 314 00:14:34,556 --> 00:14:35,410 >> 聴衆:改行。 315 00:14:35,410 --> 00:14:35,990 >> DAVID Jマラン:改行。 316 00:14:35,990 --> 00:14:39,340 だから、判明し、あなただけの、ヒットすることはできません あなたがプログラムを書いているときに、入力します。 317 00:14:39,340 --> 00:14:42,590 一般的に、コンパイラは、取得しようとしています あなたは何を意味するかのように少し混乱。 318 00:14:42,590 --> 00:14:45,340 むしろ、あなたは文字通りに持っています ここで私に新しい行を与える、と言います。 319 00:14:45,340 --> 00:14:49,506 だから/ nが、一般的に私たちです エスケープ文字を呼び出します。 320 00:14:49,506 --> 00:14:50,870 だからnは、新しい行のため。 321 00:14:50,870 --> 00:14:53,810 そして、コンパイラが知っています 、それは見ている/ nは 322 00:14:53,810 --> 00:14:57,420 それは実際にコンピュータを誘導する必要があり、 最終的に、またはprintfの、この場合には、 323 00:14:57,420 --> 00:15:00,260 実際の新しいを印刷します 、Enterキーを押すような行、 324 00:15:00,260 --> 00:15:01,480 キーボードのキーを押します。 325 00:15:01,480 --> 00:15:05,620 そして最後に、我々は何を言ったの 構文のこの作品は、のためにあるのですか? 326 00:15:05,620 --> 00:15:06,591 それは何を表しているのでしょうか? 327 00:15:06,591 --> 00:15:07,090 うん。 328 00:15:07,090 --> 00:15:07,490 >> 聴衆:[聞こえません] 329 00:15:07,490 --> 00:15:08,660 >> DAVID Jマラン:それだけです 行の終わり。 330 00:15:08,660 --> 00:15:09,909 これは、文の終わりです。 331 00:15:09,909 --> 00:15:11,890 そして、私たちがいないことを認識 どこでもそれらを置きます。 332 00:15:11,890 --> 00:15:13,900 我々は確かにそれらを入れていません すべての行の両端に。 333 00:15:13,900 --> 00:15:16,680 たとえば、上のどれもありません 最初の行、どれもライン上にありません 334 00:15:16,680 --> 00:15:18,680 メイン、と、どれもありません 中括弧の後に、 335 00:15:18,680 --> 00:15:21,740 しかし、あなたは見て取得することから始めましょう それがために呼ばれていますどこに精通しています。 336 00:15:21,740 --> 00:15:26,014 そして、それは関数の後、ほとんどの場合です いくつかのアクションは、電話またはステートメント 337 00:15:26,014 --> 00:15:27,180 あなたが実際に取っていること。 338 00:15:27,180 --> 00:15:29,520 >> そして、特に場合は、今知っています 少ない快適なものの中で、 339 00:15:29,520 --> 00:15:32,540 これらは愚かなものの種類があります あなたが誤って叩いて終わるだろうということ 340 00:15:32,540 --> 00:15:33,873 壁にあなたの頭の上に。 341 00:15:33,873 --> 00:15:36,107 あなたは論理的になるだろうので、 いくつかの問題に自信 342 00:15:36,107 --> 00:15:38,440 あなたは問題のために解決してきました セット、ちょうどこいつ 343 00:15:38,440 --> 00:15:40,187 コンパイル、あるいは実行されません。 344 00:15:40,187 --> 00:15:43,270 だから多くの場合、早い段階で、それがために起こっています あなたは括弧を逃したためです、 345 00:15:43,270 --> 00:15:44,455 または、セミコロンを逃しました。 346 00:15:44,455 --> 00:15:46,547 そして、これだけ注意して 物事のこれらの種類の、 347 00:15:46,547 --> 00:15:49,380 とによってイライラしないようにしよう 彼らは非常に迅速にこれを行いますので、 348 00:15:49,380 --> 00:15:50,640 古い帽子になります。 349 00:15:50,640 --> 00:15:53,910 しかし、それは得ることは非常に簡単です 結果として、早い段階で挫折。 350 00:15:53,910 --> 00:15:57,020 >> だから今、のは、どのように見てみましょう この行は、実際に働いています 351 00:15:57,020 --> 00:15:59,170 して、少し見て より複雑なもの。 352 00:15:59,170 --> 00:16:02,017 だから我々は、以上のここにあります この画面に描画する機能。 353 00:16:02,017 --> 00:16:04,100 そして、仮定しよう これは私のコンピュータの画面で、 354 00:16:04,100 --> 00:16:08,589 私は、ハロープログラムを書いています、 私は、printfのを実装していません。 355 00:16:08,589 --> 00:16:10,130 他の誰かが、printfのを実施しています。 356 00:16:10,130 --> 00:16:12,420 誰がと主張したいと思います 、printfのを実装していますか? 357 00:16:12,420 --> 00:16:12,920 我々は可能性がある場合? 358 00:16:12,920 --> 00:16:13,830 すべての権利、あなたの名前は何ですか? 359 00:16:13,830 --> 00:16:14,155 >> 学生1:[?コパル。 ?] 360 00:16:14,155 --> 00:16:15,529 >> DAVID Jマラン:コパルは、アップに来ます。 361 00:16:15,529 --> 00:16:16,430 アップさあ。 362 00:16:16,430 --> 00:16:17,070 大丈夫。 363 00:16:17,070 --> 00:16:22,260 だから我々は、ここでは、いくつかの名前タグを持っています、 我々はこれを少しゲームを作ってあげるためです。 364 00:16:22,260 --> 00:16:26,270 そして、私たちはprintfの、あなたを呼び出します。 365 00:16:26,270 --> 00:16:30,170 そして、あなたはここに来たい場合は、 私はちょうど、画面に描かれてきました、 366 00:16:30,170 --> 00:16:32,340 それは私は、これは、あります、非常に単純です。 367 00:16:32,340 --> 00:16:35,550 >> すべての権利なので、こんにちは、私の名前は、 printfの、あなたはそれを置くしたいと思います。 368 00:16:35,550 --> 00:16:35,740 大丈夫。 369 00:16:35,740 --> 00:16:37,360 そして、あなたは、スタンドに行くことができれば コンピュータの画面によって 370 00:16:37,360 --> 00:16:39,730 あなたはその関数であるかのように このコンピュータシステムに付属。 371 00:16:39,730 --> 00:16:42,063 そして、生活の中であなたの目的は、 実際に何かを印刷します。 372 00:16:42,063 --> 00:16:44,560 しかし、プログラムのような多くの我々 ちょうどここで、画面上に持っていました、 373 00:16:44,560 --> 00:16:47,060 我々はする必要があるとしています 実際にあなたにいくつかの入力を与えます。 374 00:16:47,060 --> 00:16:51,810 >> だから、私の入力ならば、ここでは、あります 明らかに、何がprintf関数に渡され、 375 00:16:51,810 --> 00:16:53,730 のは、一種のこのようにそれをモックアップしましょう​​。 376 00:16:53,730 --> 00:16:58,720 私は、文字通りに書くつもりです 一枚の紙、「こんにちは、世界、 " 377 00:16:58,720 --> 00:17:03,020 バックスラッシュN.そして明確にするために、どのような 私はこの紙に描かれてきました、 378 00:17:03,020 --> 00:17:04,020 このようになります。 379 00:17:04,020 --> 00:17:08,730 だから私はこのプログラムを実行し、このとき コー​​ドの黄色のラインが実行されます、 380 00:17:08,730 --> 00:17:12,970 それは私、ハロープログラムかのようです、 機能にいくつかの入力をハンドオフしています 381 00:17:12,970 --> 00:17:13,970 誰か他の人が書きました。 382 00:17:13,970 --> 00:17:16,595 >> そして、あなたの場合、あなたの指で、 実際にできた、あなたの指で、 383 00:17:16,595 --> 00:17:21,520 画面に描画何でも それはあなたが渡されてきたが、 384 00:17:21,520 --> 00:17:27,465 効果は、最終的に、です 正確には、画面上を参照してください。 385 00:17:27,465 --> 00:17:29,140 そして、ここでリトルコーナーケース。 386 00:17:29,140 --> 00:17:31,540 そして、良い、我々は表示されません この時点で、新しい行、。 387 00:17:31,540 --> 00:17:33,900 それはあなたのために正しくないだろう 明示的に改​​行を描画します。 388 00:17:33,900 --> 00:17:36,810 しかし、我々は上の言葉を書いて守れば 画面には、彼らがその下に終わるだろう。 389 00:17:36,810 --> 00:17:39,560 >> だから、どうもありがとうございましたが、スティック この辺りに一つだけちょっと。 390 00:17:39,560 --> 00:17:42,860 我々は現在、他のいずれかが必要 ボランティア、私たちがすることができれば、 391 00:17:42,860 --> 00:17:46,830 それは役割を果たしている必要になるだろう それはオーケストラで唯一の人ですof-- 392 00:17:46,830 --> 00:17:47,355 たった今。 393 00:17:47,355 --> 00:17:47,980 どのように[OK]をabout--。 394 00:17:47,980 --> 00:17:48,480 ここ。 395 00:17:48,480 --> 00:17:49,180 アップさあ。 396 00:17:49,180 --> 00:17:49,955 あなたの名前は何ですか? 397 00:17:49,955 --> 00:17:50,922 >> 学生2:[? Ivay。 ?] 398 00:17:50,922 --> 00:17:51,796 DAVID Jマラン:申し訳ありませんか? 399 00:17:51,796 --> 00:17:52,990 学生2:[? Ivay。 ?] 400 00:17:52,990 --> 00:17:55,320 DAVID Jマラン:イーサンは、アップに来ます。 401 00:17:55,320 --> 00:17:55,820 なし? 402 00:17:55,820 --> 00:17:58,390 私も、その間違ったを取得しました あなたはそれを2回言った後? 403 00:17:58,390 --> 00:17:58,890 アップさあ。 404 00:17:58,890 --> 00:18:00,030 それはここに聞くことは難しいです。 405 00:18:00,030 --> 00:18:05,240 406 00:18:05,240 --> 00:18:05,740 OK。 407 00:18:05,740 --> 00:18:07,190 そして、私は申し訳ありませんが、あなたの名前は何ですか? 408 00:18:07,190 --> 00:18:07,680 >> 学生2:[? Ivay。 ?] 409 00:18:07,680 --> 00:18:08,790 >> [? DAVID Jマラン:Ivay。 ?] OK。 410 00:18:08,790 --> 00:18:10,430 今のところ、あなたがしなければありません 心、あなたはのgetStringています。 411 00:18:10,430 --> 00:18:11,013 >> 学生2:[OK]をクリックします。 412 00:18:11,013 --> 00:18:11,797 クール。 413 00:18:11,797 --> 00:18:14,630 DAVID Jマラン:だから希望の場合は ちょっとここに立って、 414 00:18:14,630 --> 00:18:17,100 それでは、少し見てみましょう それより複雑なプログラム、 415 00:18:17,100 --> 00:18:18,670 今3行のコードがあります。 416 00:18:18,670 --> 00:18:24,080 だから我々は、1、持って使用してあなたの名前を述べます printf関数; 2、のGetStringを呼び出し、 417 00:18:24,080 --> 00:18:28,060 への割り当てが続きます 文字列変数sを、と呼ばれる、またはsと呼ばれます。 418 00:18:28,060 --> 00:18:31,260 して、printf関数に別の呼び出し、 しかし、2つの入力を使用してこの時間。 419 00:18:31,260 --> 00:18:33,646 >> だから我々はすでにやった状態 あなたの名前、またはむしろ、我々ました 420 00:18:33,646 --> 00:18:34,770 既にprintfの呼び出しを行います。 421 00:18:34,770 --> 00:18:38,960 だから私はあなたの名前を状態、書くつもりです。 422 00:18:38,960 --> 00:18:42,089 だから、私はするつもりだもの 一瞬で、printfの、渡します、 423 00:18:42,089 --> 00:18:43,005 これは、非常に単純です。 424 00:18:43,005 --> 00:18:47,760 ですから、先に行くとこれを描きたい場合 画面上で、それが今、あなたの入力です。 425 00:18:47,760 --> 00:18:48,260 大丈夫。 426 00:18:48,260 --> 00:18:51,160 そして、我々が今持っている、文字列を忘れます ここでのコードの私たち自身のライン。 427 00:18:51,160 --> 00:18:54,470 だからのGetString、で、我々が必要とします 実際に、のGetStringを呼び出します。 428 00:18:54,470 --> 00:18:57,920 だから、生活の中であなたの目的はただ歩くことです オーケストラに出て、あなたができれば、 429 00:18:57,920 --> 00:18:58,980 そして、誰かの名前を取得します。 430 00:18:58,980 --> 00:19:00,860 しかし、ここではあなたを与えてみましょう それを置くために何か。 431 00:19:00,860 --> 00:19:02,908 あなたがしたい場合は、行きます 先に、文字列を取得し、 432 00:19:02,908 --> 00:19:05,241 その上で誰かの名前を取得 一枚の紙、あなたができれば。 433 00:19:05,241 --> 00:19:12,940 434 00:19:12,940 --> 00:19:13,530 >> 大丈夫。 435 00:19:13,530 --> 00:19:15,250 そして、私たちは、一瞬で、表示されます 名前は私たちが取得しています。 436 00:19:15,250 --> 00:19:17,630 その間、私はに何をつもりです 準備して、空白の作品です 437 00:19:17,630 --> 00:19:21,340 紙、ここで、私は行きますよ どのような値にそれを保存します 438 00:19:21,340 --> 00:19:25,752 GetStringが私に戻っているということです、 I、S、と呼ばれる文字列変数です。 439 00:19:25,752 --> 00:19:26,252 大丈夫。 440 00:19:26,252 --> 00:19:27,293 だから、ここで何がありますか? 441 00:19:27,293 --> 00:19:27,950 ニック。 442 00:19:27,950 --> 00:19:28,450 大丈夫。 443 00:19:28,450 --> 00:19:30,910 そこで、ここではニックの名前を持っています。 444 00:19:30,910 --> 00:19:33,750 だから、これはどのような文字通り 返されました 445 00:19:33,750 --> 00:19:35,810 私には、そうのGetStringにより、話します。 446 00:19:35,810 --> 00:19:38,720 >> 私は、今、するつもりです 左側の実行 447 00:19:38,720 --> 00:19:43,440 私は単にその式の 今日の目的、ニックのために、ダウンしてコピーします。 448 00:19:43,440 --> 00:19:46,470 だから今、私は、変数を持っています 呼ばれ、ニックの名前を格納する、です。 449 00:19:46,470 --> 00:19:49,520 私はすでにに手渡しました printfの、前の引数。 450 00:19:49,520 --> 00:19:52,800 しかし、私たちの3番目と最後の行に コー​​ドは、私は実際に手に持っているのprintf 451 00:19:52,800 --> 00:19:58,500 何か少しdifferent-- 「こんにちは、%sを、「バックスラッシュnを。 452 00:19:58,500 --> 00:20:01,510 >> だから、私は行くよ、最後の行 私は最後のものをsend--します 453 00:20:01,510 --> 00:20:03,060 今ダウン書くつもり、これです。 454 00:20:03,060 --> 00:20:06,310 だから、2行のコード、または コー​​ドの最後の行ではなく、 455 00:20:06,310 --> 00:20:10,690 2 inputs--のためのコール 1、この、および2つ、これ。 456 00:20:10,690 --> 00:20:13,330 私たちのprintf関数は、もしそうであれば 今、入力としてこれらを取ることができ、 457 00:20:13,330 --> 00:20:16,000 私はあなたのために画面をクリアしましょう​​。 458 00:20:16,000 --> 00:20:17,250 実際には、あなたが先に行くことができます。 459 00:20:17,250 --> 00:20:19,333 私たちは、以来、それを残しておきます それは、同じプログラム上です。 460 00:20:19,333 --> 00:20:21,760 461 00:20:21,760 --> 00:20:27,380 私たちは、こんにちは、ニックが表示されるはずです。 462 00:20:27,380 --> 00:20:27,880 大丈夫。 463 00:20:27,880 --> 00:20:29,670 だから、これはかなりの数でした ちょうど、通じジャンプするフープ 464 00:20:29,670 --> 00:20:31,620 書くために、あなたを述べます 、こんにちは、ニックに名前を付け、。 465 00:20:31,620 --> 00:20:37,210 しかし、メッセージパッシングのこのシンプルなアイデア、 入力渡すと出力の受信、 466 00:20:37,210 --> 00:20:40,430 我々が持っているとしている正確なモデルであります 最も複雑な機能のために。 467 00:20:40,430 --> 00:20:41,804 だから両方にそんなにありがとう。 468 00:20:41,804 --> 00:20:43,730 我々は、素敵なストレスを持っています ここにあなたのためのボール。 469 00:20:43,730 --> 00:20:48,890 そして、私たちのGetStringをお願い致します 同様とprintfのボランティア。 470 00:20:48,890 --> 00:20:49,551 ありがとう。 471 00:20:49,551 --> 00:20:50,050 大丈夫。 472 00:20:50,050 --> 00:20:50,966 あなたの両方に感謝します。 473 00:20:50,966 --> 00:20:56,640 474 00:20:56,640 --> 00:21:00,430 >> だから私たちは話してきました これまで、主に文字列に関する。 475 00:21:00,430 --> 00:21:06,550 そして、それは、Cが実際にできることが判明しました いくつかの異なるデータ型を理解しています。 476 00:21:06,550 --> 00:21:08,860 実際には、のは見てみましょう ここではこれらを見て。 477 00:21:08,860 --> 00:21:12,490 そこで、C、および言語の多くは、 文字と呼ばれるものを理解しています。 478 00:21:12,490 --> 00:21:16,852 チャーは、一般に シングルバイト、または8ビット。 479 00:21:16,852 --> 00:21:19,810 そして、それは、単一の文字を表し、 文字A、または資本金のような 480 00:21:19,810 --> 00:21:21,990 文字A、または小文字 、または感嘆符、 481 00:21:21,990 --> 00:21:25,440 あなたが入力するか、任意の文字 キーボード、時にはそれ以上。 482 00:21:25,440 --> 00:21:26,795 また、浮動小数点数を見ることが起こります。 483 00:21:26,795 --> 00:21:31,160 フロートは、一般に、aは 32ビット値、または4バイト 484 00:21:31,160 --> 00:21:33,660 再びので、1バイトは8ビットです。 485 00:21:33,660 --> 00:21:36,675 >> そのようにフロートの浮動小数点値であり、 小数点で何か。 486 00:21:36,675 --> 00:21:38,550 そして実際、それは何です 映画は話していました 487 00:21:38,550 --> 00:21:42,240 彼らは浮動について話したときについて ポイント値、ビットのいくつかの固定された数 488 00:21:42,240 --> 00:21:43,940 実数を表すために使用されています。 489 00:21:43,940 --> 00:21:45,740 しかし、また、ダブルスと呼ばれるものがあります。 490 00:21:45,740 --> 00:21:47,860 これらは、Javaに存在し、 あなたがAPCS撮影した場合、 491 00:21:47,860 --> 00:21:51,540 ありがたいことに名前として、ダブル 示唆、フロートの倍の大きさです。 492 00:21:51,540 --> 00:21:54,540 それはまだ実数です、 それはちょうどより多くのビットを持っています 493 00:21:54,540 --> 00:21:58,390 これで、これまで以上に正確に またはさらに大きな数を格納します。 494 00:21:58,390 --> 00:21:58,890 int型は簡単です。 495 00:21:58,890 --> 00:22:00,181 私たちは、その最後の時間について話しました。 496 00:22:00,181 --> 00:22:01,160 それはちょうど整数です。 497 00:22:01,160 --> 00:22:03,980 そして、それは一般的に32です ビット、または4バイト。 498 00:22:03,980 --> 00:22:07,850 >> だから、あなたが持っている場合は、今度は見てみましょう 32 bits--、我々は0週でこれをやりました、 499 00:22:07,850 --> 00:22:10,820 あなたが持っている場合は、これまでそうbriefly-- 32ビット、最大のものです 500 00:22:10,820 --> 00:22:13,580 あなたは整数として表現できる数? 501 00:22:13,580 --> 00:22:16,080 与えるか、または取りますか? 502 00:22:16,080 --> 00:22:18,380 これは、40億のようなものです それは私たちがしている場合にのみです 503 00:22:18,380 --> 00:22:20,690 唯一の正の数を表します。 504 00:22:20,690 --> 00:22:23,930 あなたは32ビットを持っている、あなたがしたい場合は 同様に負の数を表し、 505 00:22:23,930 --> 00:22:27,100 あなたの範囲は、基本的に、負であります 正2000000000から2000000000。 506 00:22:27,100 --> 00:22:29,250 しかし、一般的に、私たちは始めましょう 0で40億に上がります。 507 00:22:29,250 --> 00:22:32,400 >> あなたは正確に知っている必要はありませんが、 ちょうど私があれば、私たちは、実際には、これを見ることができます 508 00:22:32,400 --> 00:22:36,400 ここで、ちょっと電卓を開きます。 509 00:22:36,400 --> 00:22:41,070 私は、2 32を行うことができますし、 それは正確にどのように大きなです、 510 00:22:41,070 --> 00:22:43,190 どのように多くの値のことができます。 32ビットで表します。 511 00:22:43,190 --> 00:22:44,442 そして、それはおよそ40億です。 512 00:22:44,442 --> 00:22:46,900 だから我々はその数を見ておこう いくつかの異なる場所です。 513 00:22:46,900 --> 00:22:48,890 しかし、あなたは、より長い必要がある場合 それより数、 514 00:22:48,890 --> 00:22:51,670 それはそこのが判明 何かが長い長いと呼ばれます。 515 00:22:51,670 --> 00:22:54,005 そして、長い長いです 一般的にこれは64ビット、 516 00:22:54,005 --> 00:22:56,380 それは大きさの順であることを意味し int型よりもさらに大きな。 517 00:22:56,380 --> 00:22:59,510 >> だから私も最大の発音ができません あなたが表現できる数、 518 00:22:59,510 --> 00:23:01,340 それが顕著に大きいです。 519 00:23:01,340 --> 00:23:05,190 さて余談として、歴史的に、 intは32ビットである場合、 520 00:23:05,190 --> 00:23:12,780 そして長い長いか、64ビットであり、 ビッグは、長い長い、長くはないのですか? 521 00:23:12,780 --> 00:23:16,500 522 00:23:16,500 --> 00:23:20,330 あなたはそれがintより長いだと思うだろう 多分あまり長い長い長いよりも、 523 00:23:20,330 --> 00:23:21,400 それは実際に依存しています。 524 00:23:21,400 --> 00:23:23,400 >> そしてそれは1が判明 あまりにも欲求不満の、 525 00:23:23,400 --> 00:23:26,830 特定のシステムでコードを書くと、 これらのデータ・タイプのものではないすべてであります 526 00:23:26,830 --> 00:23:28,440 予め定められた値を有します。 527 00:23:28,440 --> 00:23:29,771 場合によっては、このビット数です。 528 00:23:29,771 --> 00:23:31,020 時にはそれは、多くのビットということです。 529 00:23:31,020 --> 00:23:32,750 ですから、実際に知っている必要があり、 時には、どのようなハードウェア 530 00:23:32,750 --> 00:23:34,083 あなたは上でソフトウェアを実行しています。 531 00:23:34,083 --> 00:23:36,960 ありがたいことに、他の言語や 今存在する他のデータ型、 532 00:23:36,960 --> 00:23:38,400 あなたがより正確にすることができます。 533 00:23:38,400 --> 00:23:41,220 まあ、我々は文字列を見て、 我々はあまりにも、ブール値を見て、 534 00:23:41,220 --> 00:23:43,960 それはそれらが来る判明します のみCS50ライブラリと。 535 00:23:43,960 --> 00:23:46,240 だから、それらが構築されていません C.にそれらの代わりに、 536 00:23:46,240 --> 00:23:49,340 呼ばれる、そのファイルに来ます CS50.h、私たちは最終的にだろうと 537 00:23:49,340 --> 00:23:51,831 の層をバック剥離。 538 00:23:51,831 --> 00:23:53,830 しかし今のところ、彼らはただです 追加のデータ型。 539 00:23:53,830 --> 00:23:57,060 ブール値はtrueまたはfalseであり、A 文字列は文字のシーケンスです、 540 00:23:57,060 --> 00:23:57,970 言葉のように。 541 00:23:57,970 --> 00:24:01,690 今のprintf、我々が見てきた、い プレースホルダは、%sが1です。 542 00:24:01,690 --> 00:24:05,430 そして、あなたは、今、できるかもしれません どのように、これらの他の例から推測 543 00:24:05,430 --> 00:24:07,720 あなたはプレースホルダを持つことができます 異なるデータ型のため。 544 00:24:07,720 --> 00:24:11,150 あなた例えば、もし、推測を取ります 使用して単一の文字を印刷したいです 545 00:24:11,150 --> 00:24:15,270 printf関数は、プレースホルダは、おそらく%cです。 546 00:24:15,270 --> 00:24:19,650 そして、あなたがプリントアウトしたい場合 プレースホルダは、%Iと整数。 547 00:24:19,650 --> 00:24:25,150 %のLLDは、長い長い10進値です しかし、長い長い、それはそれにマッピングさそう。 548 00:24:25,150 --> 00:24:28,640 そして、%F浮動用 ポイント値や二重のために、 549 00:24:28,640 --> 00:24:31,270 だから時には彼らは再利用しています 異なる文脈インチ 550 00:24:31,270 --> 00:24:33,350 だから我々は見て使用します 時間をかけてそれらのいくつか。 551 00:24:33,350 --> 00:24:36,420 printf関数と他の機能と 他人のエスケープシーケンスをサポートし、 552 00:24:36,420 --> 00:24:38,080 時には、これらが必要です。 553 00:24:38,080 --> 00:24:39,770 だから、バックスラッシュnが新しいラインです。 554 00:24:39,770 --> 00:24:42,886 バックスラッシュtは、誰にもありません 刺しを取るしたいですか? 555 00:24:42,886 --> 00:24:43,760 聴衆:タブ。 556 00:24:43,760 --> 00:24:44,551 DAVID Jマラン:タブ。 557 00:24:44,551 --> 00:24:46,810 だから、あなたが実際にしたい場合 、タブではなくプリントアウトします 558 00:24:46,810 --> 00:24:49,940 スペースの固定数が、実際の タブ文字は、あなたをヒットしません、 559 00:24:49,940 --> 00:24:53,490 タブ、キーボードのキー、一般的に、 あなたが実際にバックスラッシュtを行います。 560 00:24:53,490 --> 00:24:57,750 バックスラッシュ、二重引用符、 なぜ私が今までそれをしたいですか? 561 00:24:57,750 --> 00:24:58,250 右? 562 00:24:58,250 --> 00:25:00,417 なぜ私は入力できません 私のキーボードの二重引用符? 563 00:25:00,417 --> 00:25:02,124 聴衆: そのため、それ以外の場合は、それはです 564 00:25:02,124 --> 00:25:04,830 それは終わりだと思うつもり あなたの印刷[のような?テキスト。 ?] 565 00:25:04,830 --> 00:25:05,420 >> DAVID Jマラン:その通り。 566 00:25:05,420 --> 00:25:07,211 覚えておいて、私たちと printf関数の例では、ときに我々 567 00:25:07,211 --> 00:25:10,075 入力にprintfのために集めて、 その入力文字列の左側に 568 00:25:10,075 --> 00:25:12,950 その入力の右側に 春はもちろん、二重引用符でした。 569 00:25:12,950 --> 00:25:16,270 独自の入力は、二重されている場合 その途中で引用、 570 00:25:16,270 --> 00:25:18,920 コンピュータは、潜在的かもしれません のように、混乱してしまい、 571 00:25:18,920 --> 00:25:20,760 この二重引用符はありません 真ん中に属していますか? 572 00:25:20,760 --> 00:25:22,150 それは左の1に属していますか? 573 00:25:22,150 --> 00:25:23,566 それは右のいずれかに属していますか? 574 00:25:23,566 --> 00:25:26,780 だから、あなたはそれがスーパーにする場合 明らかに、バックスラッシュ、二重引用符を行います、 575 00:25:26,780 --> 00:25:30,480 それはいわば、エスケープだように、と それは何か他のもののために融合していません。 576 00:25:30,480 --> 00:25:34,400 そして、ここでいくつかの他があります、 バックスラッシュR、単一引用符、0、 577 00:25:34,400 --> 00:25:36,510 我々としても、時間をかけて見ることができること。 578 00:25:36,510 --> 00:25:37,760 そして今、何の機能は? 579 00:25:37,760 --> 00:25:41,630 >> 我々はこれまでに取ることができるようにアクション この言語で、Cは、よく、私たちは見てきました、 580 00:25:41,630 --> 00:25:44,320 printf関数はもちろん、すべての 画面上の他の、 581 00:25:44,320 --> 00:25:47,140 ここで、我々はのために使用しますことを 唯一のコースの最初の数週間、 582 00:25:47,140 --> 00:25:48,485 時CS50ライブラリ来ます。 583 00:25:48,485 --> 00:25:51,850 そして、彼らはに、それははるかに容易になります Cは、実際にユーザー入力を取得します。 584 00:25:51,850 --> 00:25:54,200 これは、Cであることを判明し、 率直に言って、いくつかの言語で、 585 00:25:54,200 --> 00:25:57,450 それが行うには首の本当の痛みです プロンプトユーザーのような単純なもの、 586 00:25:57,450 --> 00:26:01,310 キーボードのために、彼または彼女の入力のために。 587 00:26:01,310 --> 00:26:03,240 だから、これらの機能は、それが容易になります。 588 00:26:03,240 --> 00:26:05,472 >> そしてそれはまた、エラーが発生しました 全体にチェック、 589 00:26:05,472 --> 00:26:07,180 そのように、ときに 水曜日、私たちのリコール 590 00:26:07,180 --> 00:26:09,740 、再試行し、警告を見ました 私は協力しなかったとき、 591 00:26:09,740 --> 00:26:11,700 私は言葉の代わりに、番号を入力しましたか? 592 00:26:11,700 --> 00:26:15,402 我々は早期に力仕事をやりました ユーザーが協力することを確認します。 593 00:26:15,402 --> 00:26:17,860 しかし、これらは単なるトレーニングです 我々は最終的に意志の車輪、 594 00:26:17,860 --> 00:26:19,640 かつ迅速に、離陸。 595 00:26:19,640 --> 00:26:22,630 >> その後、要約するだから、 それでは、簡単に見てみましょう、 596 00:26:22,630 --> 00:26:26,620 私たちはで、スクラッチで行ったのと同じよう C言語でいくつかの標準的な構成物 597 00:26:26,620 --> 00:26:28,580 これは、ソート、ことを意味しています 駆け足です、 598 00:26:28,580 --> 00:26:30,990 ちょうどようにするために、参照を持っています あなたが最初に物事を見てきたこと。 599 00:26:30,990 --> 00:26:34,100 しかし、その後、私たちは実際のコーディングを見てみましょう これらのビルディングブロックの一部を使用しています。 600 00:26:34,100 --> 00:26:36,710 あまりにも多くのスクラッチのように、 我々のようなステートメントを持っていたとき、 601 00:26:36,710 --> 00:26:41,570 C言語で、私たちは持っているん、待って、言いますか printfのような関数だけでなく、。 602 00:26:41,570 --> 00:26:45,350 >> 我々は条件を表現したい場合 C言語で、それは精神で、似ています、 603 00:26:45,350 --> 00:26:47,840 そのパズルピースにその スクラッチでこのように見えました。 604 00:26:47,840 --> 00:26:49,850 しかし、その代わりに、我々 文字通り場合、書き込み。 605 00:26:49,850 --> 00:26:51,830 そして、括弧で、 我々は条件を入れて、 606 00:26:51,830 --> 00:26:54,807 その条件がある場合私たちはよ 、再び、ブール式を呼び出します。 607 00:26:54,807 --> 00:26:56,390 そして再び、これは、擬似コードの一種です。 608 00:26:56,390 --> 00:26:58,830 そして、実際には、//はコメントです。 609 00:26:58,830 --> 00:27:00,550 それは自分自身にちょうど英語の単語です。 610 00:27:00,550 --> 00:27:03,000 しかし、これは一般的です 、もし、状態の構造。 611 00:27:03,000 --> 00:27:05,220 しかし、我々は具体的な表示されます 一瞬の例。 612 00:27:05,220 --> 00:27:07,960 >> あなたが持っているしたい場合は 道路の双方向のフォーク、 613 00:27:07,960 --> 00:27:11,740 私たちは、上の私たちのボランティアで行ったのと同じよう 水曜日は、あなたがそれ以外の場合は、することができます。 614 00:27:11,740 --> 00:27:16,020 そして、あなたは三分の一を持っているしたい場合は 最終的な条件、またはデフォルトの状況、 615 00:27:16,020 --> 00:27:19,006 あなたはそこに、ちょうど他のブロックを持つことができます。 616 00:27:19,006 --> 00:27:21,880 そして同様に、ブール式で、 あなたが一緒にすることができ、および、それら。 617 00:27:21,880 --> 00:27:24,296 そして、私たちは、水曜日に見ています それは、単一のアンパサンドではありません、 618 00:27:24,296 --> 00:27:28,220 その低レベルの理由のために、2の 我々は最終的に見て、一緒にプレイします。 619 00:27:28,220 --> 00:27:30,410 一緒に物事をOR接続 2垂直バーです。 620 00:27:30,410 --> 00:27:32,240 USキーボードでは、この 鍵は、一般に 621 00:27:32,240 --> 00:27:35,730 上記のShiftキーと あなたのEnterキーまたはキーを返します。 622 00:27:35,730 --> 00:27:38,620 >> 次に、これらの事があります 我々は多分一度か二度使用します。 623 00:27:38,620 --> 00:27:42,570 彼らは、機能的に同等です あなたが、もし、他の場合に何を行うことができ、 624 00:27:42,570 --> 00:27:44,950 それ以外の他の場合には、構築、 しかし、彼らはスイッチと呼ばています。 625 00:27:44,950 --> 00:27:48,020 彼らは非常に異なって見えるが、我々はよ 物流コードの一部で見、 626 00:27:48,020 --> 00:27:51,890 設定将来の問題のために、最も可能性の高いです、 それはちょうど、時々きれいだということ 627 00:27:51,890 --> 00:27:54,060 全体を表現する方法 条件の束、 628 00:27:54,060 --> 00:27:57,590 中括弧を多く含むとせず 括弧とインデントがたくさん。 629 00:27:57,590 --> 00:28:01,910 しかし、彼らは私たちにこれ以上を与えません 我々はすでに持っているよりもパワー。 630 00:28:01,910 --> 00:28:02,550 そして今、ループします。 631 00:28:02,550 --> 00:28:05,020 そして、この一つは、私たちは見てみましょう もう少しゆっくりで。 632 00:28:05,020 --> 00:28:08,470 しかし、その後、我々はこれらを使用することから始めましょう、 特に、すでに慣れているため。 633 00:28:08,470 --> 00:28:13,830 信じられないほどなら、これは、標準的な方法です 難解な方法は、Cでループを記述するために 634 00:28:13,830 --> 00:28:15,896 >> 今スクラッチでループがありました かなり簡単。 635 00:28:15,896 --> 00:28:17,020 あなたは、永遠に、ブロックを持っています。 636 00:28:17,020 --> 00:28:19,760 あなたは、繰り返し、ブロックとを持っています あなたが入力する必要がちょうど数。 637 00:28:19,760 --> 00:28:22,220 また、ループのために、あなたができると これらのアイデアの両方を実装し、 638 00:28:22,220 --> 00:28:23,595 それはもう少し技術的です。 639 00:28:23,595 --> 00:28:25,994 しかし、率直に言って、それはまたです 比較的単純な。 640 00:28:25,994 --> 00:28:28,160 あなたは順序を知ったら、 操作、文字通り 641 00:28:28,160 --> 00:28:30,910 値だけをプラグインしようとしています そして何をすべきかをコンピュータに伝えます。 642 00:28:30,910 --> 00:28:32,800 そこでここでは例です。 643 00:28:32,800 --> 00:28:38,040 これはループである、非常に 単に、1印刷数からカウント 644 00:28:38,040 --> 00:28:40,187 別を通して。 645 00:28:40,187 --> 00:28:42,020 そして、ちょうどかすめることで あなたが持っている場合でも、それで 646 00:28:42,020 --> 00:28:44,660 とは経験ありません この言語、どのような数 647 00:28:44,660 --> 00:28:46,920 それはおそらくでカウントを開始しますか? 648 00:28:46,920 --> 00:28:47,730 [OK]を、0。 649 00:28:47,730 --> 00:28:50,240 そして、私はあなたのためです推測しています int型と私があることを参照してください。 650 00:28:50,240 --> 00:28:51,073 どの変数です。 651 00:28:51,073 --> 00:28:52,390 これは、0に初期化されています。 652 00:28:52,390 --> 00:28:55,670 >> そして後に、それは次のようになります 我々は、値をprintfのを渡しています。 653 00:28:55,670 --> 00:28:58,000 そして、実際に、私はここで少しタイプミスをしました。 654 00:28:58,000 --> 00:28:59,850 しかし、それは簡単に固定されます。 655 00:28:59,850 --> 00:29:02,390 私はここで、私の中に追加してみましょう。 656 00:29:02,390 --> 00:29:06,150 現在のprintf幸福を持っています そのプレースホルダの値を渡しました。 657 00:29:06,150 --> 00:29:08,299 そしてを通じてカウントアップするために何が起こっていますか? 658 00:29:08,299 --> 00:29:08,840 聴衆:50。 659 00:29:08,840 --> 00:29:09,340 50。 660 00:29:09,340 --> 00:29:10,160 49。 661 00:29:10,160 --> 00:29:10,910 DAVID Jマラン:49。 662 00:29:10,910 --> 00:29:13,340 だから50は、一見、右のようです。 663 00:29:13,340 --> 00:29:16,990 しかし、結局のところ、あることを行っていること 我々はチェックして私たちの状態。 664 00:29:16,990 --> 00:29:21,740 そして、私たちは一度停止するつもりです 私はもはや50未満ではありません。 665 00:29:21,740 --> 00:29:24,920 したがって、このループ、逆に、すべきです 長い間、私は50未満であるように、実行されます。 666 00:29:24,920 --> 00:29:28,891 しかし、すぐにそれが50、または51になると、 または悪化し、それが自動的に停止する必要があります。 667 00:29:28,891 --> 00:29:29,390 大丈夫。 668 00:29:29,390 --> 00:29:31,200 >> それでは、実際にここになりますか? 669 00:29:31,200 --> 00:29:33,160 だから、これは順序であります forループ操作。 670 00:29:33,160 --> 00:29:35,440 一つは、あなたが持っています 初期いわゆる。 671 00:29:35,440 --> 00:29:38,264 この黄色の強調表示されたチャンク コー​​ドの最初に実行され、 672 00:29:38,264 --> 00:29:40,930 それは、そのあたりの効果を有します 水曜日は、おそらく想像してみてください。 673 00:29:40,930 --> 00:29:45,500 それは、私、それという変数を作成します。 その変数に格納値0。 674 00:29:45,500 --> 00:29:47,560 だから私は、物語の中で、この時点では0です。 675 00:29:47,560 --> 00:29:49,680 >> 次の事その この構築物に起こります、 676 00:29:49,680 --> 00:29:51,540 条件がチェックされることをです。 677 00:29:51,540 --> 00:29:54,325 だから私は、すぐに確認します 私は50未満のですか? 678 00:29:54,325 --> 00:29:57,700 そしてもちろん、答え 今のところ、はい、確かに、です。 679 00:29:57,700 --> 00:30:00,710 はい私は、0であり、ため それは確かに50未満です。 680 00:30:00,710 --> 00:30:03,866 次に何が起こるか、このことです コー​​ドの行が実行されます。 681 00:30:03,866 --> 00:30:06,740 そして、実際には、複数があるかどう これらの中括弧内のコードの行、 682 00:30:06,740 --> 00:30:09,020 それらはすべて次々に実行されます。 683 00:30:09,020 --> 00:30:11,450 >> そして、ここでは有効であり、 どうやら、プリントアウトします 684 00:30:11,450 --> 00:30:15,365 に起こっている番号I、 0であること、およびその後1、次に2。 685 00:30:15,365 --> 00:30:15,865 しかし、なぜ? 686 00:30:15,865 --> 00:30:17,410 なぜそれがインクリメントされますでしょうか? 687 00:30:17,410 --> 00:30:20,680 さて、第四の事その たまたまこの構文ということです 688 00:30:20,680 --> 00:30:22,610 セミコロンの後、実行されます。 689 00:30:22,610 --> 00:30:27,506 私は++というのが簡単な方法です。 iの値を取り、それに1を追加します。 690 00:30:27,506 --> 00:30:30,380 して、周りの次回は、追加します それまで1。そして、周り次回、 691 00:30:30,380 --> 00:30:31,330 それに1を追加します。 692 00:30:31,330 --> 00:30:33,640 >> だから我々は続ける場合、 何が起こるだろう 693 00:30:33,640 --> 00:30:35,890 次の私はするつもりはないされています 私は二度と初期化します。 694 00:30:35,890 --> 00:30:38,290 私は初期化保持していた場合 iを0に、この例 695 00:30:38,290 --> 00:30:41,110 ので、決して終わらないだろう 私は0で立ち往生されることになります。 696 00:30:41,110 --> 00:30:43,870 しかし、何が起こっていことです 条件がチェックされることを、 697 00:30:43,870 --> 00:30:54,280 コー​​ドの行が実行されてしまいます、 私はインクリメントされ、 698 00:30:54,280 --> 00:30:56,970 条件がチェックされます、 コー​​ドが実行されてしまいます。 699 00:30:56,970 --> 00:30:59,790 そして、それは再びサイクリングを保持し、 そして再び、そして再び、 700 00:30:59,790 --> 00:31:03,340 私まで++ 50の値を誘導します。 701 00:31:03,340 --> 00:31:05,870 >> 条件はその後、言います 50以上50未満のですか? 702 00:31:05,870 --> 00:31:09,360 答えは、もちろん、無であり、そして だから全体のコードが実行を停止します。 703 00:31:09,360 --> 00:31:13,020 そして、あなたは、画面上でより多くのコードがある場合 下方に、それは次に何が起こるかです。 704 00:31:13,020 --> 00:31:17,530 それは、これらの中括弧の外にポップし、 その後、よりを印刷し続けています。 705 00:31:17,530 --> 00:31:20,470 >> だから、フォックストロットから今ジョーク、その あなたはおそらく、今理解します。 706 00:31:20,470 --> 00:31:30,810 707 00:31:30,810 --> 00:31:31,560 それはいつも面白いです。 708 00:31:31,560 --> 00:31:34,110 それは笑うようなものです 種類の浸透、 709 00:31:34,110 --> 00:31:38,370 して、あなたはいけない実現します このようなユーモアで笑いします。 710 00:31:38,370 --> 00:31:41,160 しかし、いくつかのお持ち帰りがあります ここでは、教育学、あまりにも。 711 00:31:41,160 --> 00:31:43,577 だから、私はことが判明 構文の一部が欠落し、 712 00:31:43,577 --> 00:31:45,410 またはフォックストロットのは行方不明 ここでは、構文の一部。 713 00:31:45,410 --> 00:31:48,076 私たちが持っていたことを、欠けています 他のすべての例では、これまで? 714 00:31:48,076 --> 00:31:51,599 715 00:31:51,599 --> 00:31:53,390 そう、そこにある、戻ります それは何か他のものです、 716 00:31:53,390 --> 00:31:54,440 我々の前にlongに戻ってくること。 717 00:31:54,440 --> 00:31:55,398 何が不足しています、しかし? 718 00:31:55,398 --> 00:31:55,908 うん。 719 00:31:55,908 --> 00:31:58,150 >> 聴衆: [聞こえない]の初期化。 720 00:31:58,150 --> 00:31:58,470 >> DAVID Jマラン:OK。 721 00:31:58,470 --> 00:31:58,980 そうそう。 722 00:31:58,980 --> 00:32:03,210 だから実際には、これはまあis--、 そしてカウントが初期化されます 723 00:32:03,210 --> 00:32:05,470 上記アップ、またはむしろ、上記アップ宣言しました。 724 00:32:05,470 --> 00:32:06,960 これはそれを行うための別の方法があります。 725 00:32:06,960 --> 00:32:08,685 ではなく、1行でそれはしかし有効です。 726 00:32:08,685 --> 00:32:09,310 どのようにここでは? 727 00:32:09,310 --> 00:32:10,196 >> 聴衆:それは中括弧ですか? 728 00:32:10,196 --> 00:32:10,640 >> DAVID Jマラン:うん。 729 00:32:10,640 --> 00:32:12,080 だから、中括弧が欠落しています。 730 00:32:12,080 --> 00:32:15,495 しかし、このコードは、私は彼らの名誉のために、意味します、 実際、構文的に有効です。 731 00:32:15,495 --> 00:32:17,610 それは結局のところ、あなたはしないでください 中括弧を必要とします 732 00:32:17,610 --> 00:32:21,691 あなただけの1行のコードを持っている場合に あなたは、ループの内部で実行します。 733 00:32:21,691 --> 00:32:24,190 今、私たちは常に、クラスやで 物流コードのすべて、 734 00:32:24,190 --> 00:32:26,730 中括弧を含めます とにかく、ちょうど明確さのために。 735 00:32:26,730 --> 00:32:29,010 しかし、教科書にそれを実現 オンライン例、 736 00:32:29,010 --> 00:32:31,300 あなたは非常によくカーリー表示される場合があり いつか不足している中括弧。 737 00:32:31,300 --> 00:32:34,850 そして、それは、[OK]を何場合 インデントと意図しています 738 00:32:34,850 --> 00:32:38,650 コー​​ドの1行だけではなく、 潜在的に複数行のコード、。 739 00:32:38,650 --> 00:32:39,150 大丈夫。 740 00:32:39,150 --> 00:32:44,500 の問題に非常に関連しました 不正確は、オーバーフローの問題であり、 741 00:32:44,500 --> 00:32:48,560 その意味では、同様に、 整数は、それらには限界がありますか 742 00:32:48,560 --> 00:32:49,970 ちょうど浮動小数点値のような? 743 00:32:49,970 --> 00:32:53,120 世界では、浮動小数点 値は、我々は、そのように正確にすることができます 744 00:32:53,120 --> 00:32:55,710 時々、これは後に 悪いことが起こることができ、 745 00:32:55,710 --> 00:32:57,760 私たちのプログラムは、バギー、エラーをすることができます。 746 00:32:57,760 --> 00:33:00,050 今でも整数で、 あなたが問題に実行することができます。 747 00:33:00,050 --> 00:33:03,820 今整数はありません 小数点以下またはそれの後の数字。 748 00:33:03,820 --> 00:33:07,130 それは、典型的には、単に自然数です。 749 00:33:07,130 --> 00:33:09,430 それでは、int型と間違って行くことができますか? 750 00:33:09,430 --> 00:33:12,210 私はにint型を使用している場合 間違って行くことができるもの、カウント? 751 00:33:12,210 --> 00:33:13,230 多くの単純なようです。 752 00:33:13,230 --> 00:33:13,873 うん。 753 00:33:13,873 --> 00:33:16,240 >> 聴衆:もし 数が取得[聞こえません] 754 00:33:16,240 --> 00:33:17,073 >> DAVID Jマラン:うん。 755 00:33:17,073 --> 00:33:20,820 あなたは、非常に高い数えますその場合はどう その本当に大きな数を表現することはできません。 756 00:33:20,820 --> 00:33:21,320 右? 757 00:33:21,320 --> 00:33:23,910 ある時点で、あなたが行っています 境界を超え 758 00:33:23,910 --> 00:33:27,077 32ビット値または64ビット値の。 759 00:33:27,077 --> 00:33:29,410 ここでもう一度、私はどのようにわかりません 64ビット値を発音します、 760 00:33:29,410 --> 00:33:32,230 私は32ビットの整数で知っています、 それができる最大値は、 761 00:33:32,230 --> 00:33:35,490 それが唯一の肯定的な場合 値は、およそ40億です。 762 00:33:35,490 --> 00:33:39,000 だから私は50億にカウントしようとした場合、 何かが起こるだろう。 763 00:33:39,000 --> 00:33:41,050 しかし、ここでは、実際には、何が起こるか、見てみましょう。 764 00:33:41,050 --> 00:33:44,570 整数の世界では 意味でオーバーフロー、あなた、 765 00:33:44,570 --> 00:33:48,270 の容量をオーバーフロー 整数、何が起こるのでしょうか? 766 00:33:48,270 --> 00:33:51,190 >> そこでここでは2進数ですが、 それが0に先祖返りです。 767 00:33:51,190 --> 00:33:54,630 これは、すべての1の、およびプレースホルダです そこに、2の累乗です、 768 00:33:54,630 --> 00:33:55,980 これはバイナリです。 769 00:33:55,980 --> 00:33:59,416 したがって、これらは、画面上の8、1ビットです。 770 00:33:59,416 --> 00:34:01,290 そして、あなたが思い出す場合や あなたはすぐに計算を行います、 771 00:34:01,290 --> 00:34:06,074 どのような値が示されています ここではこれら8つの1ビットで? 772 00:34:06,074 --> 00:34:06,950 255。 773 00:34:06,950 --> 00:34:09,260 そして、あなたはかなり確実ではなかった場合でも、 数学の、あなたはそれを行うことができます。 774 00:34:09,260 --> 00:34:10,550 それとも、ただ親切でし 理由のそれを通じて、 775 00:34:10,550 --> 00:34:12,633 私は場合は、数分待ちます 8ビット値を表します 776 00:34:12,633 --> 00:34:17,750 私は、256の可能な値を持っています、 しかし、最初は0であります 777 00:34:17,750 --> 00:34:19,909 私はことを知っています 最大は255になるだろう、 778 00:34:19,909 --> 00:34:21,510 それはこの1つがあるかもしれないものです。 779 00:34:21,510 --> 00:34:26,060 >> だから私はこの値に1を追加しようとします。 780 00:34:26,060 --> 00:34:28,750 あなたは学年で何をするだろう 学校1を加算し、その時 781 00:34:28,750 --> 00:34:31,139 本当にために収まりません あなたは1を運ぶために持っていますか? 782 00:34:31,139 --> 00:34:34,380 何この数が起こっています あなたが1を追加したときになるには? 783 00:34:34,380 --> 00:34:37,030 これは、0になることだろう。 784 00:34:37,030 --> 00:34:37,530 右? 785 00:34:37,530 --> 00:34:41,139 あなたがより多くのbits--持っていた場合ので、私はよ 種類の、here--それを入力し、してみてください 786 00:34:41,139 --> 00:34:44,710 我々はより多くのビットを持っていた場合、私たち 1を追加され、ここで行うことができ、 787 00:34:44,710 --> 00:34:47,370 し、我々はこれを取得したいです。 788 00:34:47,370 --> 00:34:48,739 おっと。 789 00:34:48,739 --> 00:34:52,250 我々はすべての方法ここにかけて1ビットを持っていると思います。 790 00:34:52,250 --> 00:34:55,530 >> しかし、これは有限である場合 値は、それは8ビットのみですが、 791 00:34:55,530 --> 00:34:57,480 そしてそれは、所定の情報 コンピュータによって、 792 00:34:57,480 --> 00:34:59,370 1が効果的ではないこと。 793 00:34:59,370 --> 00:35:00,980 それはちょうど種類の崖から落ちます。 794 00:35:00,980 --> 00:35:05,480 だから、あなたが255に1を追加した場合、どのような あなたは明らかに値を得るのですか? 795 00:35:05,480 --> 00:35:06,180 0。 796 00:35:06,180 --> 00:35:09,700 そして偶然の数字ので、 おそらく、意図せずに、 797 00:35:09,700 --> 00:35:12,040 このように折り返してしまいます。 798 00:35:12,040 --> 00:35:14,079 それでは、これを含意することができますか? 799 00:35:14,079 --> 00:35:15,620 まあ、いくつかの異なるものがあります。 800 00:35:15,620 --> 00:35:18,751 そこで一つは、それが見て終わるん 0のように、意図せずに、 801 00:35:18,751 --> 00:35:20,750 しかし、あなたは一種の見ることができ、 でも、現実の世界では、 802 00:35:20,750 --> 00:35:23,416 良くも悪くものために、 制限のこの考え方の現れ。 803 00:35:23,416 --> 00:35:26,630 あなたのインスタンスのために、あらゆる人 レゴスターウォーズは、これまで演じてきました、 804 00:35:26,630 --> 00:35:28,880 誰もが知っていることが起こるん 硬貨の最大数 805 00:35:28,880 --> 00:35:32,032 あなたはレゴスターウォーズに集めることができますか? 806 00:35:32,032 --> 00:35:35,640 基づく推測を取ります 今日有数の質問。 807 00:35:35,640 --> 00:35:39,140 それは、256または255よりも大きいです。 808 00:35:39,140 --> 00:35:40,330 それは40億です。 809 00:35:40,330 --> 00:35:42,080 だから、判明し、 いくつかのpeople--があります 810 00:35:42,080 --> 00:35:46,080 いくつかのグーグルで確認された最後のnight-- 40億金貨を得ています、 811 00:35:46,080 --> 00:35:47,730 またはその他もろもろ、レゴスター・ウォーズインチ 812 00:35:47,730 --> 00:35:49,860 明らかにかかわらず、あります ゲームをトリックする方法、 813 00:35:49,860 --> 00:35:53,222 バグの報告と機能があり、それはあなたのことができます ちょうどポイントのとてもたくさんを生じます。 814 00:35:53,222 --> 00:35:54,930 しかし、最大の可能性を 応じた値、 815 00:35:54,930 --> 00:35:58,360 誰かのこのスクリーンショットの私 オンラインで見つける、実際に40億です。 816 00:35:58,360 --> 00:35:59,240 >> さて、なぜそのようになるのですか? 817 00:35:59,240 --> 00:36:03,040 それは、正確には40億です おそらく誰かが決めたので、 818 00:36:03,040 --> 00:36:05,500 誰がこのゲームを書いていました、 彼らは40億を行うことができること、 819 00:36:05,500 --> 00:36:07,340 何か、何か、何か、 値のように私は我慢します 820 00:36:07,340 --> 00:36:10,256 電卓とそれ以前のバージョンでは、しかし、 それは、人間のためのほんの少しクリーナーです 821 00:36:10,256 --> 00:36:12,610 最大数を言って coins--またはスタッドの、 822 00:36:12,610 --> 00:36:14,860 彼らはあなたのことをthem--呼んで 40億で収集することができます。 823 00:36:14,860 --> 00:36:16,290 だから、これはなぜですか? 824 00:36:16,290 --> 00:36:20,310 レゴゲームはどのようにあります カウンタを実装 825 00:36:20,310 --> 00:36:23,420 それはを追跡しています あなたが持っているコインの枚数? 826 00:36:23,420 --> 00:36:24,266 彼らは何を使っていますか? 827 00:36:24,266 --> 00:36:26,390 聴衆:それは停止します 40億後にカウント。 828 00:36:26,390 --> 00:36:27,720 DAVID Jマラン:それは停止します 40億後にカウント、 829 00:36:27,720 --> 00:36:29,525 これはあなたができることを意味します プログラマーとして、推測、 830 00:36:29,525 --> 00:36:31,960 彼らはおそらくしていること 32ビット整数を使用して。 831 00:36:31,960 --> 00:36:35,380 プログラマのように文字通り 型付き、int型、彼または彼女のコードで、 832 00:36:35,380 --> 00:36:39,620 それはその変数のタイプです 彼らは誰かのコードを格納するために使用しています。 833 00:36:39,620 --> 00:36:42,230 だから、他の症状があります 制限これらの種類の。 834 00:36:42,230 --> 00:36:45,063 >> だから私はこのgame--をプレイしていません そして、私は歴史上に読んでいました 835 00:36:45,063 --> 00:36:48,470 much--としてではなくで確認します 文明、元のバージョン 836 00:36:48,470 --> 00:36:53,240 あなたは明らかに、それぞれとの対話 他と戦争や平和を持つことができ、 837 00:36:53,240 --> 00:36:56,590 ガンジーは、のいずれかになるはずでした 私として最も平和な文字、 838 00:36:56,590 --> 00:36:59,280 最初に、それを理解 文明のバージョン。 839 00:36:59,280 --> 00:37:03,250 そして、実際には、1〜10のスケールで、 彼の攻撃性はわずか1でした。 840 00:37:03,250 --> 00:37:05,620 だから、どんなに穏やかに 明らかに、積極的な。 841 00:37:05,620 --> 00:37:11,590 >> しかし、いくつかの点で、あなたは明らかにすることができます あなたの地域で民主主義をインストールしてください。 842 00:37:11,590 --> 00:37:14,900 そして、あなたは民主主義をインストールする場合 ゲームのバージョンに、 843 00:37:14,900 --> 00:37:17,320 その後、あなたの攻撃性のレベルが下がります。 844 00:37:17,320 --> 00:37:18,460 それは良いことです。 845 00:37:18,460 --> 00:37:20,890 人々はより静かです どうやら、そのような状況です。 846 00:37:20,890 --> 00:37:23,190 しかし、どうやら、誰かがやりました 、もし、条件を持っていません 847 00:37:23,190 --> 00:37:24,780 コー​​ドの元のバージョンです。 848 00:37:24,780 --> 00:37:30,650 >> だから、ガンジーの攻撃レベルから行ってきました 負の1に、1陽性、マイナス2、 849 00:37:30,650 --> 00:37:33,840 しかし、ゲームはしていません 負の数を理解します。 850 00:37:33,840 --> 00:37:38,680 だから何が起こったことはガンジーの攻撃でした レベルは、負の1に、0に、1から行ってきました 851 00:37:38,680 --> 00:37:40,900 の効果を有しています であることにラップアラウンド 852 00:37:40,900 --> 00:37:44,690 最も積極的な文字 ゲームでは、255の値で、 853 00:37:44,690 --> 00:37:46,630 1〜10のスケールで。 854 00:37:46,630 --> 00:37:49,887 それ以来、そこをされています このゲームのより多くの化身、 855 00:37:49,887 --> 00:37:51,720 彼らはとしてそれを守ってきました イースターエッグの並べ替え、 856 00:37:51,720 --> 00:37:53,870 ガンジーは明らかであること そうひどく攻撃的。 857 00:37:53,870 --> 00:37:56,740 しかし、それはの結果でした 非常に単純なプログラミングエラー 858 00:37:56,740 --> 00:37:58,630 ゲームの非常に初期のバージョンです。 859 00:37:58,630 --> 00:38:02,860 >> 今より多くの不穏、より 最近では、ボーイング787型機 860 00:38:02,860 --> 00:38:05,720 有していると記載されていました バグではなく、デバイスの種類 861 00:38:05,720 --> 00:38:07,340 あなたは、特にバグを持っていると思います。 862 00:38:07,340 --> 00:38:10,130 私が読んであげること、症状、 ここでは、オンラインの記事から、 863 00:38:10,130 --> 00:38:13,840 この、モデル787飛行機でした それは、継続的に電力を供給されています 864 00:38:13,840 --> 00:38:18,030 248日間のすべてを失う可能性が 交流、交流、 865 00:38:18,030 --> 00:38:20,850 に起因する電力、 発電機制御装置、 866 00:38:20,850 --> 00:38:23,330 同時にGCUs、 フェイルセーフモードに入ります。 867 00:38:23,330 --> 00:38:26,790 だから、これは発行された警告でした この問題が発見されたとき。 868 00:38:26,790 --> 00:38:28,750 この状態が発生します ソフトウェアカウンタによって、 869 00:38:28,750 --> 00:38:32,230 GCUsの内部なので、 整数または変数、 870 00:38:32,230 --> 00:38:36,850 それは、248の後にオーバーフローします 連続電力の日。 871 00:38:36,850 --> 00:38:40,350 ボーイング社は処理中です そのGCUソフトウェアのアップグレードを開発 872 00:38:40,350 --> 00:38:42,350 危険な状態を改善します。 873 00:38:42,350 --> 00:38:44,226 >> ミサイルのようにあまりにも多くの シナリオ、前記 874 00:38:44,226 --> 00:38:46,850 彼らは、変数のいくつかの種類を持っていました それはカウントし、カウントして、 875 00:38:46,850 --> 00:38:50,720 そして、数えるが、徐々に溢れ その能力の境界、 876 00:38:50,720 --> 00:38:54,890 同様に気の飛行機をしました 変数のオーバーフローを持っています 877 00:38:54,890 --> 00:38:56,410 実行中の十分な時間後。 878 00:38:56,410 --> 00:38:59,240 だから冗談の方法 この問題を回避作業の 879 00:38:59,240 --> 00:39:04,400 本当に、すべての、あなたの飛行機を再起動することです メモリが拭き取られますように247日、 880 00:39:04,400 --> 00:39:06,100 変数は0に戻ります。 881 00:39:06,100 --> 00:39:09,410 しかし、これは非常にあり、実現 ソフトウェアの大規模な化身、 882 00:39:09,410 --> 00:39:14,070 しかし我々は、Appleのを聞い特にとして 車に入るオペレーティングシステム、 883 00:39:14,070 --> 00:39:18,030 Googleからの車を自己駆動、および ソフトウェアの化身の任意の数 884 00:39:18,030 --> 00:39:21,000 私たちの日常生活の中で、テレビ や時計、さらに、 885 00:39:21,000 --> 00:39:24,950 ソフトウェアに囲まれていた実現、 これらは全て米国人によって書かれています。 886 00:39:24,950 --> 00:39:28,150 >> そして、私たちはすべてすぐに発見するだろうとして、 それは非常に簡単で、非常に典型的です 887 00:39:28,150 --> 00:39:30,250 ソフトウェアを書くときに間違いを犯しました。 888 00:39:30,250 --> 00:39:32,745 そして、あなたはそれらをキャッチしない場合は、 いくつかの悪いことが起こることができます。 889 00:39:32,745 --> 00:39:35,400 今時々、いくつかの 面白いことが起こることができ、 890 00:39:35,400 --> 00:39:38,280 または少なくとも時には我々 いくつかの悪さを期待する知っています。 891 00:39:38,280 --> 00:39:41,550 だから、0等級から、0で割りました 学校は、一般的に悪いことです。 892 00:39:41,550 --> 00:39:43,050 それは未定義です。 893 00:39:43,050 --> 00:39:46,440 そして、それはout--になり、場合を見てみましょう これを選ぶことができます私のマイクは、アップルのup-- 894 00:39:46,440 --> 00:39:47,790 最近これにいくつかの楽しみを持っていました。 895 00:39:47,790 --> 00:39:48,850 だから私はここにiPhoneを持っています。 896 00:39:48,850 --> 00:39:54,160 私はシリに話すと、彼女に依頼するつもりです 私は0で割っ0への回答を得ました。 897 00:39:54,160 --> 00:39:55,850 0で割っ0とは何ですか? 898 00:39:55,850 --> 00:39:59,350 899 00:39:59,350 --> 00:40:02,230 >> SIRI:あなたは0を持っていることを想像し クッキーは、あなたが均等に分割しました 900 00:40:02,230 --> 00:40:03,540 0友人の間で。 901 00:40:03,540 --> 00:40:05,810 それぞれの人はどのように多くのクッキーを取得していますか? 902 00:40:05,810 --> 00:40:06,350 参照してください? 903 00:40:06,350 --> 00:40:07,660 それは意味がありません。 904 00:40:07,660 --> 00:40:10,540 そして、クッキーモンスターは悲しいです 何のクッキーが存在しないこと。 905 00:40:10,540 --> 00:40:13,987 そして、あなたはその悲しいです あなたは友達がいません。 906 00:40:13,987 --> 00:40:15,570 DAVID Jマラン:それは嫌なのようなものです。 907 00:40:15,570 --> 00:40:17,550 だから、これはただそこに言われたものです。 908 00:40:17,550 --> 00:40:21,380 それは、それが定義されていない、不確定だが、 実際、多くのプログラミング言語 909 00:40:21,380 --> 00:40:24,950 または、実際に、コンパイラはなります ときに、プログラムで、検出、 910 00:40:24,950 --> 00:40:27,050 0と0を分割してみてください。 911 00:40:27,050 --> 00:40:29,830 このかかわらず、より多くの楽しみであり、 その明らかに、クッキーモンスター 912 00:40:29,830 --> 00:40:31,270 Twitterでこれらの日です。 913 00:40:31,270 --> 00:40:37,610 そして、彼はこれで、これに答え、 これは絶対に愛らしいです。 914 00:40:37,610 --> 00:40:40,110 しかし、ここでは簡単に見てみましょう 他の構築物のカップル、 915 00:40:40,110 --> 00:40:43,459 そして、こののいくつかを置きます 良い方法で、使用するコード。 916 00:40:43,459 --> 00:40:45,250 だから、他にも、判明します ループのために、あります 917 00:40:45,250 --> 00:40:49,174 そのwhileループと呼ばれるもの、 違って見えると実装されています 918 00:40:49,174 --> 00:40:51,590 少しdifferently--と 我々は最終的にexamples--表示されます 919 00:40:51,590 --> 00:40:53,500 しかし、ある意味で、 それがために簡単です 920 00:40:53,500 --> 00:40:56,670 あなたは初期化す​​ることはできません。また、 ループの境界内に更新します。 921 00:40:56,670 --> 00:40:57,794 あなたはまだそれを実装することができます。 922 00:40:57,794 --> 00:41:01,219 だから、正確に同じことを行うことができます whileループで、forループと同様に、 923 00:41:01,219 --> 00:41:03,260 しかし、あなたの構文、ultimately-- 我々は最終的にはよなど 924 00:41:03,260 --> 00:41:04,551 see--異なることになるだろう。 925 00:41:04,551 --> 00:41:07,450 do-whil​​e文は、さえあります 実際には少し異なっています、 926 00:41:07,450 --> 00:41:09,640 その一方のためのループで いつもとwhileループ 927 00:41:09,640 --> 00:41:13,005 場合、最初に自分の状態をチェック あなたは、一番下にこの事トップを読みます 928 00:41:13,005 --> 00:41:16,440 それが起こっているようにそれは一種の見えます それが最後だので、それの状態を確認します 929 00:41:16,440 --> 00:41:17,910 コー​​ドの真の最後の行。 930 00:41:17,910 --> 00:41:20,580 そして実際、それが便利になるだろう 私たちが書く特定のプログラムで、 931 00:41:20,580 --> 00:41:23,746 あなただけ盲目的に何かをしたい場合 そして最終的に状態を確認。 932 00:41:23,746 --> 00:41:25,205 それは必ずしも悪いことではありません。 933 00:41:25,205 --> 00:41:27,912 我々は変数を使用する場合は、我々が行うことができます それいくつかの異なる方法です。 934 00:41:27,912 --> 00:41:30,290 そして、我々はフォックストロットで見ました 漫画、それを行うための一つの方法、 935 00:41:30,290 --> 00:41:33,400 あなたは、変数を宣言する場合は、 int型のカウンタのセミコロンのような、 936 00:41:33,400 --> 00:41:36,570 そして多分次のlater-- ライン、多分10行later-- 937 00:41:36,570 --> 00:41:37,800 あなたが実際にそれを初期化します。 938 00:41:37,800 --> 00:41:42,230 だから、コードのこれらの2行は、 int型の変数を宣言 939 00:41:42,230 --> 00:41:44,930 それが与えるように、カウンタを呼び出します int型を保持するために私に十分なビット。 940 00:41:44,930 --> 00:41:48,230 そしてその後、最終的に、それが入れ その変数に値0。 941 00:41:48,230 --> 00:41:51,250 それは、0と1のを配置 パターン、先週から知っていること、 942 00:41:51,250 --> 00:41:53,260 我々は0として知っている数を表します。 943 00:41:53,260 --> 00:41:56,920 または、率直に言って、あなたはこの多くを行うことができます より簡潔に、ちょうどこれが好き。 944 00:41:56,920 --> 00:41:59,390 >> 今も持っています 関数を呼び出す機能。 945 00:41:59,390 --> 00:42:03,070 そして、実際には、ここで2行です プログラム、またはその抜粋、 946 00:42:03,070 --> 00:42:06,157 それは、私たちが実際にすることができます そのいくつかのコードを書きます 947 00:42:06,157 --> 00:42:08,990 ずっとuser--から文字列を取得します 私たちのボランティア瞬間のようなago-- 948 00:42:08,990 --> 00:42:11,320 に結果を格納します 名前と呼ばれる変数、 949 00:42:11,320 --> 00:42:15,470 そして、then--ずっと私たちのボランティアとのような これらの値アウトprintf--プリントを 950 00:42:15,470 --> 00:42:19,180 二つの引数に渡すことで、 変数に続く文字列、 951 00:42:19,180 --> 00:42:20,781 自身、名前、呼ばれます。 952 00:42:20,781 --> 00:42:23,155 それでは、前に、見てみましょう 我々は、そこにマリオに戻ります 953 00:42:23,155 --> 00:42:26,010 今のカップルで、このの例。 954 00:42:26,010 --> 00:42:30,537 >> 私は先に、オープン行くつもりです アップ、の機能0.c、としましょう​​。 955 00:42:30,537 --> 00:42:33,120 そしていつものように、このコードがあります コー​​スのウェブサイトで利用可能な、 956 00:42:33,120 --> 00:42:35,660 あなたがでに沿ってプレイすることができます 家庭、後でそれを見てください。 957 00:42:35,660 --> 00:42:40,400 しかし、ここでのプログラムは、その中にいます 行17から22に本質、。 958 00:42:40,400 --> 00:42:43,270 メインプログラムがどこにありますか プログラムは常に起動しようとしています。 959 00:42:43,270 --> 00:42:46,980 このプログラムは、明らかに、起こっています あなたの名前、コロンをプリントアウトします。 960 00:42:46,980 --> 00:42:50,320 その後のGetStringを呼び出すために起こっています、 私たちはボランティアでやったように。 961 00:42:50,320 --> 00:42:53,365 そして、このことは、興味深いことです それはのprintNameを呼び出すために起こっています。 962 00:42:53,365 --> 00:42:56,490 それが、すべてのこの時間判明します printName呼び出される関数であるように思われます。 963 00:42:56,490 --> 00:42:57,614 それが誰かの名前を出力します。 964 00:42:57,614 --> 00:43:01,210 我々は、からのprintfを使用する必要はありませんでした 往年、のprintNameがあります。 965 00:43:01,210 --> 00:43:03,500 >> しかし、それは誤解を招くです printNameはしていませんので、 966 00:43:03,500 --> 00:43:06,760 C.人々はなかったが付属して いくつかの40または50年前にそれを発明し、 967 00:43:06,760 --> 00:43:07,990 私の代わりに、でした。 968 00:43:07,990 --> 00:43:10,330 そして実際に、私はスクロールする場合 さらに、予告ダウン 969 00:43:10,330 --> 00:43:14,200 私は自分自身を書くことができますか 我々は最終的によCの関数 970 00:43:14,200 --> 00:43:16,319 我々が言い続ける理由を説明し、 いくつかの場所で、空洞、 971 00:43:16,319 --> 00:43:18,110 しかし、今日のために、してみましょう 名前だけを見てください。 972 00:43:18,110 --> 00:43:20,905 >> 24行目では、あなたがしたい場合は 独自の関数を作成し、 973 00:43:20,905 --> 00:43:22,780 あなたは文字通り書きます 関数の名前。 974 00:43:22,780 --> 00:43:24,340 私はのprintNameを選びました。 975 00:43:24,340 --> 00:43:26,159 括弧では、あなた その後、どのような種類を指定します 976 00:43:26,159 --> 00:43:28,450 入力、どのように多くのあなたの この機能は利用したいです。 977 00:43:28,450 --> 00:43:31,906 この場合、私は利用したいです 呼ばれる1変数、名前、 978 00:43:31,906 --> 00:43:34,030 それがあることになるだろう タイプ、文字列なので、それが起こっています 979 00:43:34,030 --> 00:43:35,780 一部の文字列であることを。 980 00:43:35,780 --> 00:43:39,170 そして、このprogram-- 多くのスクラッチのように、 981 00:43:39,170 --> 00:43:42,590 カスタムパズルを持つことができますpieces-- このカスタム動作を持っているとしています。 982 00:43:42,590 --> 00:43:46,760 これは、printfのを呼び出すために起こっています 渡し、こんにちは、プレースホルダ、 983 00:43:46,760 --> 00:43:49,110 そして、それはプラグインになるだろう どのようなユーザが呼ばれます。 984 00:43:49,110 --> 00:43:51,450 >> だから、これは何の例です。 コンピューター科学者になります 985 00:43:51,450 --> 00:43:55,090 コー​​ル抽象化または機能 ちょうどある分解、 986 00:43:55,090 --> 00:43:58,110 場合ですsaying--の空想の方法 あなたは、この高いレベルのアイデアが好き 987 00:43:58,110 --> 00:44:01,569 以下のような私は、機能が必要なこと あなたは絶対、誰かの名前を出力します 988 00:44:01,569 --> 00:44:04,360 文字通りその後のprintfを書くことができ、 あなたがしたい引数を渡し、 989 00:44:04,360 --> 00:44:07,340 プログラムは動作しますが、 それは水曜日以来持っているとして。 990 00:44:07,340 --> 00:44:10,510 しかし、あなたは離れて抽象的に開始することができます 名前を印刷する概念。 991 00:44:10,510 --> 00:44:13,270 あなたはそれに名前を付けることができ、 printName、このような 992 00:44:13,270 --> 00:44:15,280 0週から重ね着のこの考えはあります。 993 00:44:15,280 --> 00:44:19,910 >> 今後、私とあなたが知っている必要はありません またはのprintNameがどのように実装されるか気になります。 994 00:44:19,910 --> 00:44:22,470 はい、それは多分、それをprintf関数を使用しています 誰が使用するかを知っている、ではないのですか? 995 00:44:22,470 --> 00:44:23,410 誰も気にしない? 996 00:44:23,410 --> 00:44:26,034 今、私はここまで話して、 代わりに、ここでダウン。 997 00:44:26,034 --> 00:44:28,700 そして実際、我々のプログラムを得るよう より高度で洗練されました、 998 00:44:28,700 --> 00:44:32,550 我々は当たり前の取っておくつもりです 下位レベルのパズルのピースが存在していること。 999 00:44:32,550 --> 00:44:34,780 私たちはそれらを書いたので または他の誰かがそう、でした 1000 00:44:34,780 --> 00:44:36,910 我々は、それらの上に構築することができます。 1001 00:44:36,910 --> 00:44:39,430 それでは、これを見てみましょう バリアント、機能1。 1002 00:44:39,430 --> 00:44:41,780 >> したがって、この1はもう少しです 高度は、それが判明します 1003 00:44:41,780 --> 00:44:44,570 CS50のライブラリ内のその、 のみGetIntで機能があります。 1004 00:44:44,570 --> 00:44:47,720 我々はに、数年前に、考えていませんでした GetPositiveInt機能を実装しています。 1005 00:44:47,720 --> 00:44:50,970 そして、それは少し迷惑なんだかの理由 君たちはプログラム特徴を書いています 1006 00:44:50,970 --> 00:44:53,325 あなたが肯定的なを取得したいです ユーザーからの整数、 1007 00:44:53,325 --> 00:44:55,010 あなたは絶対にGetIntで使用することができます。 1008 00:44:55,010 --> 00:44:57,840 そして、あなたは絶対に確認することができます 条件と多分ループ 1009 00:44:57,840 --> 00:45:00,320 そのintが大きい場合 0よりも、ユーザーで叫びます 1010 00:45:00,320 --> 00:45:02,699 彼または彼女は与えていない場合 あなた正の数。 1011 00:45:02,699 --> 00:45:04,740 しかし、ここではこれを作成してみましょう 建物は、自分自身を遮断し、 1012 00:45:04,740 --> 00:45:06,555 カスタムスクラッチピース、可能ならば。 1013 00:45:06,555 --> 00:45:08,680 私はプログラムを持っているつもりです ここでは、その最終的に、私 1014 00:45:08,680 --> 00:45:11,780 呼び出すことができるようにしたいです GetPositiveInt、と私はなりたいです 1015 00:45:11,780 --> 00:45:14,200 そのint型が何であれプリントアウトすることができます。 1016 00:45:14,200 --> 00:45:16,240 しかし、これは今離れて抽象化されています。 1017 00:45:16,240 --> 00:45:19,050 それはちょうど高いレベルを与えられています それが何をするかと言う名、 1018 00:45:19,050 --> 00:45:21,780 それはだから素晴らしいですします 読み現在、非常に直感的。 1019 00:45:21,780 --> 00:45:24,710 そして、私は下に何があるか気にしない場合 フードは、私は下にスクロールしてみましょう。 1020 00:45:24,710 --> 00:45:27,140 そして、それは少し威圧的です 最初は、特に 1021 00:45:27,140 --> 00:45:29,470 これはあなたの最初のプログラムである場合、 しかしそれでは、見てみましょう。 1022 00:45:29,470 --> 00:45:32,860 >> 私はもはや、ボイド、言っていませんよ それは機能をオンにするので、 1023 00:45:32,860 --> 00:45:34,777 あまりのGetStringと同様に、することができます 私に値を返します。 1024 00:45:34,777 --> 00:45:36,610 彼らはただ持っていません 画面に印刷するには、 1025 00:45:36,610 --> 00:45:38,410 彼らは実際に渡すことができます 戻って私は何か。 1026 00:45:38,410 --> 00:45:41,535 そして、前のprintNameのに対し、 私は何も戻って必要はありませんでした。 1027 00:45:41,535 --> 00:45:44,160 私はの副作用が必要 何かが、画面上に表示 1028 00:45:44,160 --> 00:45:46,570 私は人間を必要としませんでした 私に何かをバック手に。 1029 00:45:46,570 --> 00:45:48,840 ここでは、GetPositiveIntと、 GetIntでと同じように、 1030 00:45:48,840 --> 00:45:50,640 私は戻って何かを渡したことにしたいです。 1031 00:45:50,640 --> 00:45:53,220 だから私は、空洞ではなく、言っています ライン23が、int型に、 1032 00:45:53,220 --> 00:45:55,570 これは言う、この機能 私が書いていることを、 1033 00:45:55,570 --> 00:45:58,860 GetPositiveIntがに行くと呼ばれます 整数ではなく、何も私をバック手、 1034 00:45:58,860 --> 00:45:59,890 無効ではありません。 1035 00:45:59,890 --> 00:46:03,280 >> 一方、それはを取るつもりはありませんです 入力は、私は、この種のは、それを逆にしました。 1036 00:46:03,280 --> 00:46:08,280 私はGetPositiveIntいずれかを与えていませんよ 入力は、私はそれが私にその出力を与えたいと思います。 1037 00:46:08,280 --> 00:46:09,800 そして、何が今起こりますか? 1038 00:46:09,800 --> 00:46:11,640 だからここに私は変数を宣言することができる方法です。 1039 00:46:11,640 --> 00:46:15,090 私は、ループの外でそれをやりました 理由のために、私たちは最終的に表示されます、 1040 00:46:15,090 --> 00:46:17,700 しかし、これはちょうど与えます 私は32ビットと呼ばれ、nは、 1041 00:46:17,700 --> 00:46:20,952 私は、事前に決定しました それらは、整数を格納します。 1042 00:46:20,952 --> 00:46:23,660 そして、ここでは、構築物ながら行う、ということです それは便利ですなぜこれがあります。 1043 00:46:23,660 --> 00:46:26,700 文字通りこれを行います、 nが1未満である間。 1044 00:46:26,700 --> 00:46:28,030 それでは、何が起こるか見てみましょう。 1045 00:46:28,030 --> 00:46:30,760 私は、プリントアウトしてください。 私に正の整数を与えます。 1046 00:46:30,760 --> 00:46:34,300 私は、CS50の使用して、int型を取得します 機能及びnに格納されています。 1047 00:46:34,300 --> 00:46:38,990 >> そして、コードのどの行おそらく 論理的に、次に実行されますか? 1048 00:46:38,990 --> 00:46:41,890 どの行番号? 1049 00:46:41,890 --> 00:46:42,571 うん、そう31。 1050 00:46:42,571 --> 00:46:45,320 あなたがするまで、あなたはこのことを知っているだろう 言ったかの並べ替えのそれを推測して、 1051 00:46:45,320 --> 00:46:45,986 それは本当です。 1052 00:46:45,986 --> 00:46:48,280 それは、上から下へ行きます して、繰り返し続けます。 1053 00:46:48,280 --> 00:46:55,840 だから私は数、発言に入力した場合 1陰性、1負nより少ないのですか? 1054 00:46:55,840 --> 00:46:56,340 うん。 1055 00:46:56,340 --> 00:46:58,470 負の1が1未満であるためです。 1056 00:46:58,470 --> 00:46:59,510 だから何が起こるのでしょうか? 1057 00:46:59,510 --> 00:47:03,260 私はこれを行うつもりです nが1未満であるが、 1058 00:47:03,260 --> 00:47:05,760 私は戻ってライン28に行くつもりです。 1059 00:47:05,760 --> 00:47:09,530 >> また、各time--とのはthis--を実行してみましょう それをコンパイルする機能1を行い、 1060 00:47:09,530 --> 00:47:11,340 現在は機能1をスラッシュドット。 1061 00:47:11,340 --> 00:47:14,280 私は負の1を入力すると、それはです 私に叫んで維持するつもり 1062 00:47:14,280 --> 00:47:17,530 私はそれぞれのために協力まで 私の入力の1未満であります 1063 00:47:17,530 --> 00:47:20,070 それが1未満ながらだ場合、 私はこれをやり続けるつもりです。 1064 00:47:20,070 --> 00:47:24,240 私は最終的にそれを50のような数を与えると、 ありがたいことに、それは、50への感謝を述べています。 1065 00:47:24,240 --> 00:47:24,970 なぜ? 1066 00:47:24,970 --> 00:47:30,640 nが以上である理由として、すぐに 1、私はこのループで立ち往生停止します、 1067 00:47:30,640 --> 00:47:33,840 この新しいキーワード今日、 リターンは、文字通りそれを行います。 1068 00:47:33,840 --> 00:47:36,800 だから私はちょうどで、実装しました 感覚、のGetStringと同等の、 1069 00:47:36,800 --> 00:47:40,590 ここで私はに戻って渡しています 誰が、いくつかの値を、私を使用しています。 1070 00:47:40,590 --> 00:47:42,820 それはする必要はありません 文字列は、それがint型です。 1071 00:47:42,820 --> 00:47:44,990 シンプルなので、迅速な たとえば、私たちはすぐによ 1072 00:47:44,990 --> 00:47:47,930 いくつかのより洗練されたを参照してください まだバージョン。 1073 00:47:47,930 --> 00:47:53,882 実際には、のを見てみましょう return.cと呼ばれる数値の1、。 1074 00:47:53,882 --> 00:47:55,590 そして、この1は実際にはです 少し単純。 1075 00:47:55,590 --> 00:47:59,010 そのため、このプログラムの目的で life--のは、コンパイルして実行してみましょう、 1076 00:47:59,010 --> 00:48:03,090 そう、ドットリターンを作ります スラッシュ、return--予告 1077 00:48:03,090 --> 00:48:05,530 プログラムは単純に値2を立方体。 1078 00:48:05,530 --> 00:48:08,410 それは難しい、かなり愚かです コー​​ドは、任意の入力を取ることはありません、 1079 00:48:08,410 --> 00:48:12,220 しかし、それは別のものを実証ん 私は自分自身を書いている機能。 1080 00:48:12,220 --> 00:48:15,760 だからここに、私は宣言しました int型のXと呼ばれる変数、、 1081 00:48:15,760 --> 00:48:17,840 数2に等しいです、 完全に任意。 1082 00:48:17,840 --> 00:48:19,530 これは、単にいくつかのふわふわ印刷です。 1083 00:48:19,530 --> 00:48:23,070 このような、xは今で言うと このような、キュービングドットドットドット。 1084 00:48:23,070 --> 00:48:26,390 そして魔法がライン21で明らかです。 1085 00:48:26,390 --> 00:48:30,120 私は、キューブ、呼び出された関数を呼んでいます、 私はそれを一枚の紙を手渡しています 1086 00:48:30,120 --> 00:48:32,890 それに書かれた番号2の、 数学的にどのような値、 1087 00:48:32,890 --> 00:48:34,860 私はそれから抜け出すためにしたいですか? 1088 00:48:34,860 --> 00:48:36,570 ちょうど健全性チェックとして? 1089 00:48:36,570 --> 00:48:37,070 8。 1090 00:48:37,070 --> 00:48:37,570 右? 1091 00:48:37,570 --> 00:48:40,160 私は2は2に、バック立方たいです 3のパワーなので、8バック。 1092 00:48:40,160 --> 00:48:42,570 >> だからここでキューブが実装されていますか? 1093 00:48:42,570 --> 00:48:44,349 まあ、それはここでダウンして実装されています注意してください。 1094 00:48:44,349 --> 00:48:47,140 そして、ちょうど前のように、論理的に、 構文はおそらくあるにもかかわらず 1095 00:48:47,140 --> 00:48:49,320 あなたの多くに非常に新しいです、 私はこの機能が欲しいです 1096 00:48:49,320 --> 00:48:51,780 のシートを私に戻って手に その上にint型と紙。 1097 00:48:51,780 --> 00:48:53,990 だから私は、int型を持っています 名前は任意ですが、 1098 00:48:53,990 --> 00:48:55,530 しかし、便利なキューブと呼ばれます。 1099 00:48:55,530 --> 00:48:58,430 それへの入力は、のnは 整数型、のように 1100 00:48:58,430 --> 00:49:00,800 どのように私は数に渡すことができます 一枚の紙に2。 1101 00:49:00,800 --> 00:49:03,910 そしてそれは、Cのサポートが判明 数学、あなたが時間のためのxのを持っていないので、 1102 00:49:03,910 --> 00:49:06,680 あなただけのアスタリスクを使用 乗算のため。 1103 00:49:06,680 --> 00:49:11,070 これはn回n回を返します 単純に乗値であるN、。 1104 00:49:11,070 --> 00:49:12,840 >> だからここで我々はこのすべてを行っていますか。 1105 00:49:12,840 --> 00:49:14,570 これは間違いなくあります 駆け足、安心、 1106 00:49:14,570 --> 00:49:16,410 そのスーパーのセクションで 問題で、1セット 1107 00:49:16,410 --> 00:49:18,368 あなたはを通して歩いたことでしょう このすべてすべてより。 1108 00:49:18,368 --> 00:49:22,490 そして、問題が1セットで、我々が移行します スクラッチのグラフィカルな世界から 1109 00:49:22,490 --> 00:49:25,640 もっと何かコマンドラインに C言語でしかし、我々はインスピレーションを描画します 1110 00:49:25,640 --> 00:49:27,680 このここにゲームから 往年から、前記 1111 00:49:27,680 --> 00:49:31,591 Cとの標準版を使用して、 p個のセットは、あなたはマリオのピラミッドを実装します。 1112 00:49:31,591 --> 00:49:34,340 とのハッカー版で p個のセット、あなたがそう選出することを選択した場合、 1113 00:49:34,340 --> 00:49:38,280 あなたはもう少しを実装します 二つのピークでピラミッドに挑戦。 1114 00:49:38,280 --> 00:49:41,239 また、実装します アルゴリズム、貪欲アルゴリズム。 1115 00:49:41,239 --> 00:49:43,030 それはそこのが判明 いくつかの興味深いロジック 1116 00:49:43,030 --> 00:49:45,640 のプロセスの背後にあります レジ係のステーションを実行しています 1117 00:49:45,640 --> 00:49:47,410 実際に手渡し 誰かバック変更。 1118 00:49:47,410 --> 00:49:50,410 かなりのアルゴリズムがあります あなたも可能性があることを、簡単な 1119 00:49:50,410 --> 00:49:53,576 あなたが最初に読んだとき直感的に把握 それは私がいつもてきたものだ実現it-- 1120 00:49:53,576 --> 00:49:57,110 私は誰かいくつかを与えた任意の時間に行わ あなたが常にすることを可能にするマネーback-- 1121 00:49:57,110 --> 00:50:00,679 の数を最小限に抑えます 紙のノートや金属コイン 1122 00:50:00,679 --> 00:50:02,220 あなたは戻ってユーザーに手渡していること。 1123 00:50:02,220 --> 00:50:04,610 これは、もちろん、説得力があります あなたがCVSやその他もろもろに行けばあるため、 1124 00:50:04,610 --> 00:50:06,430 あなたが手渡されたくありません ものの全体の束 1125 00:50:06,430 --> 00:50:07,596 またはペニーの全体の束。 1126 00:50:07,596 --> 00:50:10,120 あなたが最も少ないたい コイン、おそらく、可能。 1127 00:50:10,120 --> 00:50:13,070 >> 最後に、あなたも挑戦することがあります 水の世界に手を出します 1128 00:50:13,070 --> 00:50:17,220 実際に感謝を取得 流れの速度との間のマッピングのために、 1129 00:50:17,220 --> 00:50:19,890 シャワーで水などの、 使用されているだけでどのくらいの水。 1130 00:50:19,890 --> 00:50:22,640 そして、その中にほのめかし、 ここに、このクリップになり、 1131 00:50:22,640 --> 00:50:24,840 我々はのために終了しますました わずか60秒で、その 1132 00:50:24,840 --> 00:50:29,070 の映像を塗ります 低流量のシャワーヘッド。 1133 00:50:29,070 --> 00:50:30,886 >> [ビデオ再生] 1134 00:50:30,886 --> 00:50:31,385 -大丈夫。 1135 00:50:31,385 --> 00:50:32,774 私はここにすべてのものを得ました。 1136 00:50:32,774 --> 00:50:35,800 私はサイクロンFシリーズを持って、 ヒドラ、Jetflow、ストックホルム 1137 00:50:35,800 --> 00:50:37,660 Supersteam、あなたはそれに名前を付けます。 1138 00:50:37,660 --> 00:50:39,265 >> - そして、あなたは何を勧めますか? 1139 00:50:39,265 --> 00:50:40,460 >> -何を探していますか? 1140 00:50:40,460 --> 00:50:41,300 >> - パワー男。 1141 00:50:41,300 --> 00:50:42,285 力。 1142 00:50:42,285 --> 00:50:42,910 シルクウッド様。 1143 00:50:42,910 --> 00:50:44,520 - つまり、放射線のためです。 1144 00:50:44,520 --> 00:50:46,335 -そのとおり。 1145 00:50:46,335 --> 00:50:48,275 これは何ですか-now? 1146 00:50:48,275 --> 00:50:49,704 - つまりはコマンドー450です。 1147 00:50:49,704 --> 00:50:50,620 私はそのいずれかを販売していません。 1148 00:50:50,620 --> 00:50:51,700 >> ブトそれは我々が望むものです。 1149 00:50:51,700 --> 00:50:52,680 それはコマンドー450です。 1150 00:50:52,680 --> 00:50:53,882 >> -Noは私を信じています。 1151 00:50:53,882 --> 00:50:55,090 それは唯一のサーカスで使われています。 1152 00:50:55,090 --> 00:50:56,512 それはゾウのためです。 1153 00:50:56,512 --> 00:50:59,356 >> 何かを支払う-I'll。 1154 00:50:59,356 --> 00:51:01,252 >> ジェリーについて - 何? 1155 00:51:01,252 --> 00:51:02,760 >> -HEはそれを扱うことができませんでした。 1156 00:51:02,760 --> 00:51:04,910 彼は繊細です。 1157 00:51:04,910 --> 00:51:05,750 そうそう。 1158 00:51:05,750 --> 00:51:36,737 1159 00:51:36,737 --> 00:51:37,320 [END再生] 1160 00:51:37,320 --> 00:51:37,700 DAVID Jマラン:すべての権利。 1161 00:51:37,700 --> 00:51:38,820 CS50用の場合はそのためです。 1162 00:51:38,820 --> 00:51:40,050 私たちは来週お会いしましょう​​。 1163 00:51:40,050 --> 00:51:45,910 1164 00:51:45,910 --> 00:51:49,029 >> SPEAKER 1:[?スカリー?]、[?イアン、?] 限りこのアウトロプロジェクトとして、 1165 00:51:49,029 --> 00:51:50,362 あなたたちは何をして出ていますか? 1166 00:51:50,362 --> 00:51:51,990 >> SPEAKER 2:まあ、私たちが与えてくれました その思考の様々な、 1167 00:51:51,990 --> 00:51:53,250 私たちは最善の方法だと思いますto-- 1168 00:51:53,250 --> 00:51:53,660 >> SPEAKER 3:私もいいですか? 1169 00:51:53,660 --> 00:51:54,326 >> SPEAKER 2:うん。 1170 00:51:54,326 --> 00:51:56,360 ぜひ、実際に。 1171 00:51:56,360 --> 00:51:59,425 >> SPEAKER 3:だから私は思います 私たちは私たちの考えをまとめることができます 1172 00:51:59,425 --> 00:52:05,450 1 word--何もoutrosため。 1173 00:52:05,450 --> 00:52:08,950 1174 00:52:08,950 --> 00:52:10,409 >> DAVID Jマラン:何? 1175 00:52:10,409 --> 00:52:11,200 SPEAKER 3:何もありません。 1176 00:52:11,200 --> 00:52:12,990 DAVID Jマラン:それはどういう意味? 1177 00:52:12,990 --> 00:52:16,260 SPEAKER 3:outrosは何としています。 1178 00:52:16,260 --> 00:52:21,720 SPEAKER 2:まあ、私は意味、哲学で、 私が意味する、何も常に何かではありません。 1179 00:52:21,720 --> 00:52:24,200 SPEAKER 1:だからwhat's-- 前提は何ですか? 1180 00:52:24,200 --> 00:52:25,720 SPEAKER 3:だから、それは人生のようなものです。 1181 00:52:25,720 --> 00:52:26,680 OK。 1182 00:52:26,680 --> 00:52:28,294 今日は何をしましたか? 1183 00:52:28,294 --> 00:52:31,811 >> DAVID Jマラン:私は、立ち上がっていました 朝食、および動作するようになりました。 1184 00:52:31,811 --> 00:52:34,056 >> SPEAKER 3:それはエンディングです。 1185 00:52:34,056 --> 00:52:36,806 SPEAKER 2:しかし、私は意味、すべきでありません 何かがthe--で彼に起こります 1186 00:52:36,806 --> 00:52:37,889 SPEAKER 3:いや、いや、いや、いや。 1187 00:52:37,889 --> 00:52:40,220 何も起こりません。 1188 00:52:40,220 --> 00:52:42,910 >> SPEAKER 1:では、なぜ私たちが見ていますか? 1189 00:52:42,910 --> 00:52:46,956 >> SPEAKER 3:ので、 それはCS50のためのエンディングです。 1190 00:52:46,956 --> 00:52:48,652 >> DAVID Jマラン:まだです。 1191 00:52:48,652 --> 00:52:49,151