1 00:00:00,000 --> 00:00:11,952 2 00:00:11,952 --> 00:00:13,800 >> DAVID J.マラン:これはCS50である。 3 00:00:13,800 --> 00:00:18,970 そして、これはCS50自身コルトンオグデンだった、 あなたができる音楽だ人の多くのため 4 00:00:18,970 --> 00:00:22,820 soundcloud.com/cs50でダウンロードしてください。 5 00:00:22,820 --> 00:00:26,690 >> だから、今日私たちは、すべてのより多くの焦点を合わせる プログラミングの技術について。 6 00:00:26,690 --> 00:00:28,980 私たちがしたところから、私たちは取る 先週オフ、焦点 7 00:00:28,980 --> 00:00:31,660 このたスクラッチ、上 グラフィカルプログラミング言語。 8 00:00:31,660 --> 00:00:35,490 また、下位レベルまでの事を取る より伝統的なプログラミングを使用して 9 00:00:35,490 --> 00:00:38,420 言語Cとして知られているが、 道に沿って、実現する 10 00:00:38,420 --> 00:00:40,730 その同じアイデアたち 先週の金曜日の話 11 00:00:40,730 --> 00:00:44,390 これだけでなく再発する 言語Cが、ほとんどの他のすべての内 12 00:00:44,390 --> 00:00:46,350 私たちは、この学期を見ていること。 13 00:00:46,350 --> 00:00:50,247 >> だから私たちはこの事を呼ばれる ここに最後の何時? 14 00:00:50,247 --> 00:00:51,830 これは、ステートメントを表している。 15 00:00:51,830 --> 00:00:53,080 そこで、この文と呼ばれる。 16 00:00:53,080 --> 00:00:54,100 そして、それは何かを。 17 00:00:54,100 --> 00:00:56,910 それは命令だこと コンピュータまたはスクラッチが実行可能性があります。 18 00:00:56,910 --> 00:00:59,910 そして今後、のも始めましょう この関数のようなものを呼び出すと、 19 00:00:59,910 --> 00:01:02,070 理由のために、私たちはすぐに参照しなければならない。 20 00:01:02,070 --> 00:01:03,681 >> 一方で、私たちはこのようなものを見た。 21 00:01:03,681 --> 00:01:05,680 これらは一般的に 構築何として知られている? 22 00:01:05,680 --> 00:01:06,240 >> 聴衆:ループ。 23 00:01:06,240 --> 00:01:06,860 >> DAVID J.マラン:だからループ。 24 00:01:06,860 --> 00:01:07,943 だから、非常に簡単。 25 00:01:07,943 --> 00:01:09,470 これは文字通り、それは言うことありません。 26 00:01:09,470 --> 00:01:12,210 スクラッチには、あなたがしたい場合は、 そこに、よりパズルのピースを詰め込む、 27 00:01:12,210 --> 00:01:13,950 作品は、それに合わせて成長します。 28 00:01:13,950 --> 00:01:16,790 そして、私たちは、そのC言語で表示されます 私たちは同じことを行うことができます。 29 00:01:16,790 --> 00:01:20,000 >> ループ別のタイプの、しかし、 スクラッチで永遠かもしれないが、 30 00:01:20,000 --> 00:01:21,820 または、任意の数があります 他のアプローチの。 31 00:01:21,820 --> 00:01:24,150 しかし、ここでもっとてみましょう 顔とジェネラリスト表情、 32 00:01:24,150 --> 00:01:27,402 それは、おそらく非常に精通してい より一般的に、ループで。 33 00:01:27,402 --> 00:01:29,110 Mark Zuckerbergは:ワン 事そのコンピュータ 34 00:01:29,110 --> 00:01:31,860 ある時は本当に良いです コマンドを繰り返す。 35 00:01:31,860 --> 00:01:33,910 人として、あなたは取得したい よろしければ本当に退屈 36 00:01:33,910 --> 00:01:36,730 同じことをしなければならなかった 行の回数がたくさん。 37 00:01:36,730 --> 00:01:40,530 しかし、コンピュータは、同じことを行うことができます 何回でも何百万あるいは何十億、 38 00:01:40,530 --> 00:01:43,290 そして退屈して、できないことが 本当によくそれを行った。 39 00:01:43,290 --> 00:01:45,650 >> 例えば、もしだから私 誰もが望むたかった 40 00:01:45,650 --> 00:01:48,840 Facebookの幸せな誕生日に それらのメールを送信することにより、 41 00:01:48,840 --> 00:01:51,550 それは私よりも多くかかることがあります 実際に書き出す世紀 42 00:01:51,550 --> 00:01:53,000 誰にでも、これらの電子メールのすべて。 43 00:01:53,000 --> 00:01:57,780 しかし、わずか数行のコードで、私がすることができます システムはすべての人に電子メールを送信している 44 00:01:57,780 --> 00:01:59,930 希望のFacebookの その誕生日おめでとう。 45 00:01:59,930 --> 00:02:02,730 だから、ループがあるものだと、なぜ 彼らは貴重な何かだ 46 00:02:02,730 --> 00:02:04,740 コンピュータは非常によく行うことができます。 47 00:02:04,740 --> 00:02:05,630 >> DAVID J.マラン:もしそうであれば あなたが受賞してきた 48 00:02:05,630 --> 00:02:07,820 CS50のうちのいくつかのと 後半のDropboxののスペース、 49 00:02:07,820 --> 00:02:10,590 それは、実際には正確に私たちの 全くそのようなコードを使用して、実行します。 50 00:02:10,590 --> 00:02:12,600 私たちは、基本的には大きなを持っている スプレッドシート、その中に 51 00:02:12,600 --> 00:02:15,016 人々は彼らを入力されています 名前とメールアドレス。 52 00:02:15,016 --> 00:02:18,160 そして、私たちは、コードのほんの少しを書いた これらのアドレスを反復処理することができます 53 00:02:18,160 --> 00:02:21,860 とに固有のアドレスを吐き出す ケースの誰もが複数回提出した。 54 00:02:21,860 --> 00:02:25,120 その後、私たちはお送り CS50のボットからの自動送信メール、 55 00:02:25,120 --> 00:02:27,190 クーポンコードを含む。 56 00:02:27,190 --> 00:02:29,290 >> 今、私たちにも見 これが最後の時間を構築する。 57 00:02:29,290 --> 00:02:33,100 そして、これは特定のです ものの例? 58 00:02:33,100 --> 00:02:35,050 だから、ええ、ブール式。 59 00:02:35,050 --> 00:02:37,050 そして、形状が意味される 同様にそれをキャプチャします。 60 00:02:37,050 --> 00:02:39,966 すべてのそのような質問 スクラッチでの真または偽のフォーム 61 00:02:39,966 --> 00:02:41,590 このような小さなものになります。 62 00:02:41,590 --> 00:02:43,200 そして、私たちは、これはブール式を呼び出す。 63 00:02:43,200 --> 00:02:46,170 それは確かに真または偽ません、yesまたはno。 64 00:02:46,170 --> 00:02:49,150 これは、質問に答えるの方法です。 65 00:02:49,150 --> 00:02:52,420 >> そして、その間、あなたは、これらのブールを使用することができます コンストラクトの内部表現 66 00:02:52,420 --> 00:02:54,720 これらのような、そのうちの もちろん条件は、 67 00:02:54,720 --> 00:02:57,259 または支店、ことわざ 道路のフォーク。 68 00:02:57,259 --> 00:02:59,550 そして、彼らはだけでなく、見ることができる このように、彼らはまた、缶 69 00:02:59,550 --> 00:03:02,080 それらとよそ関連付けられています。 70 00:03:02,080 --> 00:03:05,820 そして、あなたは実際には3つの方法を持つことができます 道路の分岐点または4ウェイフォーク 71 00:03:05,820 --> 00:03:08,340 道路では、単純にすることにより これらのことをネスト、 72 00:03:08,340 --> 00:03:10,510 あなたがスクラッチに表示されますように あなたは既にいない場合。 73 00:03:10,510 --> 00:03:13,550 そして、あなたは同様にC言語で行うことができますように。 74 00:03:13,550 --> 00:03:16,810 >> それでは別のジェネラリストを見てみましょう だけでなく、alumnistを見て誰が 75 00:03:16,810 --> 00:03:21,490 異なるアプローチを提示するかもしれない これらの事に条件を呼んだ。 76 00:03:21,490 --> 00:03:24,060 >> ビル·ゲイツ:人が作る 決断毎日。 77 00:03:24,060 --> 00:03:27,530 たとえば、あなたが外に行く前に ちょっと、言いif文を持っている 78 00:03:27,530 --> 00:03:31,480 それがその後雨が降っているかの私 私のジャケットを取得する必要があります。 79 00:03:31,480 --> 00:03:36,820 そして、コンピュータはあなたに一度素晴らしいです 文のそれらの種類を決定し、 80 00:03:36,820 --> 00:03:42,280 彼らは確実に実行できるよう 信じられないほどの速度でそれらの事。 81 00:03:42,280 --> 00:03:48,240 だから、コンピュータプログラムは本当に 数学といくつかの少しはある 82 00:03:48,240 --> 00:03:53,050 文どこかの 決定が行われます。 83 00:03:53,050 --> 00:03:55,020 >> DAVID J.マラン:よう ご存知かもしれませんが、それがあった 84 00:03:55,020 --> 00:03:57,880 ビル·ゲイツのような人々、 ポール·アレンなど 85 00:03:57,880 --> 00:04:00,240 それは本当に開幕 パーソナルコンピュータ、いわゆる 86 00:04:00,240 --> 00:04:01,990 数年前の革命。 87 00:04:01,990 --> 00:04:04,140 私たちはダイビングをする前に私は、思った いくつかの付記に、 88 00:04:04,140 --> 00:04:09,920 私たちは、アルバカーキから物語を関連付けると思います ニューメキシコ自然史博物館 89 00:04:09,920 --> 00:04:13,650 科学どこビル·ゲイツの一部」 とポール·アレン最古の物語 90 00:04:13,650 --> 00:04:17,470 私達が今持っているどのように詳述されている 今日のPCとMacなど。 91 00:04:17,470 --> 00:04:22,390 このためには、しかし、私たちは2人のボランティアを必要とする 非常に良好なナレーションの声を持っている人 92 00:04:22,390 --> 00:04:23,735 スクリプトを声を出して読むこと。 93 00:04:23,735 --> 00:04:25,530 >> すべての権利は​​、どのように戻ってそこでは約。 94 00:04:25,530 --> 00:04:26,120 アップさあ。 95 00:04:26,120 --> 00:04:27,770 そして、どの程度前でここに。 96 00:04:27,770 --> 00:04:28,340 ダウンさあ。 97 00:04:28,340 --> 00:04:29,600 ここにあなたの場所を取る。 98 00:04:29,600 --> 00:04:32,444 あなたたちが出てくるように、カップル 行政の発表。 99 00:04:32,444 --> 00:04:34,360 切片化、プロセス セクションを選択する、 100 00:04:34,360 --> 00:04:36,068 これを開始します 金曜まで水曜日。 101 00:04:36,068 --> 00:04:38,400 今度のことの詳細 講義中の水曜日。 102 00:04:38,400 --> 00:04:41,770 >> スーパーセクションは、一方、ある 私たちは来週提供何か 103 00:04:41,770 --> 00:04:45,310 クラス全体が招待される かなり大規模に参加する 104 00:04:45,310 --> 00:04:47,690 セクション、より快適な1、 一つ少なく快適。 105 00:04:47,690 --> 00:04:51,340 そして、私たちは詳細を発表する それの、だけでなく、今週後半。 106 00:04:51,340 --> 00:04:53,310 >> 一方のセクション、 自体は、開始されます 107 00:04:53,310 --> 00:04:57,241 週コースの3人に、ゼロのインデックス、 あるものは、数週間であることを意味し 108 00:04:57,241 --> 00:04:57,740 アウト。 109 00:04:57,740 --> 00:04:58,450 だから心配しない。 110 00:04:58,450 --> 00:05:01,014 あなたはまだ欠席していない これらの線に沿って何か。 111 00:05:01,014 --> 00:05:03,930 一方その間に、よろしければ 管理上不明な点がございまし、 112 00:05:03,930 --> 00:05:08,120 自分自身とデヴォンとゲイブを電子メールで送信 そして、ここでこのアドレスのロブ。 113 00:05:08,120 --> 00:05:10,320 >> 最後に、問題が設定され 0アウト、もちろんである。 114 00:05:10,320 --> 00:05:12,320 あなたはそれを気づいているかもしれません コー​​スのウェブサイトで。 115 00:05:12,320 --> 00:05:14,840 それはであなたを提供する必要があります 質問に対するすべての回答 116 00:05:14,840 --> 00:05:18,250 あなたがのために道に沿って持っているかもしれません 問題のあるセットを使い始める。 117 00:05:18,250 --> 00:05:21,430 しかし、あなたは自分自身を見つける場合は、 救いの手を必要としている、 118 00:05:21,430 --> 00:05:25,020 是非オフィスアワーに出席、 月曜日、火曜日、水曜日、木曜日 119 00:05:25,020 --> 00:05:27,290 夕方には、今週の 4ダイニングホールで。 120 00:05:27,290 --> 00:05:31,650 細目のためにそこにそのURLを参照してください 営業時間は、でなければならない場所。 121 00:05:31,650 --> 00:05:34,000 >> 今度は、私たちにお会いしましょう 2名様今日ここに。 122 00:05:34,000 --> 00:05:34,740 あなたの名前は? 123 00:05:34,740 --> 00:05:35,290 >> JAY PAUL:ジェイポール。 124 00:05:35,290 --> 00:05:36,880 >> DAVID J.マラン:ジェイ ポール、はじめまして。 125 00:05:36,880 --> 00:05:37,330 >> ひかり:ひかり。 126 00:05:37,330 --> 00:05:37,975 >> DAVID J.マラン:ひかり? 127 00:05:37,975 --> 00:05:38,250 >> ひかり:ひかり。 128 00:05:38,250 --> 00:05:38,810 >> DAVID J.マラン:ひかり。 129 00:05:38,810 --> 00:05:39,790 同様にはじめまして。 130 00:05:39,790 --> 00:05:42,123 ジェイ·ポールとひかりで持っている これらの音楽に彼らの前 131 00:05:42,123 --> 00:05:45,100 私は印刷された2つのスクリプトをスタンド ニューメキシコ州から今朝アウト 132 00:05:45,100 --> 00:05:46,692 自然史科学博物館。 133 00:05:46,692 --> 00:05:48,400 そして、私が考えたもの 私は、オーバーヘッドで行うだろう 134 00:05:48,400 --> 00:05:52,830 あなたの暗唱を同行さ スクリプトとその歴史の 135 00:05:52,830 --> 00:05:54,700 いくつかの視覚的なイメージを持つ、ない驚き。 136 00:05:54,700 --> 00:05:57,512 >> そして、私は事前に何をやったか スクリプトにprehighlightさ 137 00:05:57,512 --> 00:05:59,470 あなたが読むべきか、 そして何を読むべきです。 138 00:05:59,470 --> 00:06:00,920 そして、私たちは基本的によ ちょうど別の段落。 139 00:06:00,920 --> 00:06:03,211 だから、ずっとあなたのようなかもしれないです 英語の授業で行った。 140 00:06:03,211 --> 00:06:06,875 それは本当に観客を強要だ ここにあなたの話を信じている。 141 00:06:06,875 --> 00:06:07,600 私たちはしなければならない? 142 00:06:07,600 --> 00:06:13,272 だからここの話は、私たちが持っている、である BASIC、そしてそれは、ケンブリッジで始まる。 143 00:06:13,272 --> 00:06:18,750 >> JAYポール:それは冬だった1974年、 ケンブリッジ、マサチューセッツ州 144 00:06:18,750 --> 00:06:20,240 冬は寒いことができる場所。 145 00:06:20,240 --> 00:06:22,800 ひげを生やした、毛足が長く 大学中退命名 146 00:06:22,800 --> 00:06:27,280 ポール·アレン氏はハーバード大学を越えdrudgingた 彼の考えで吸収さ広場。 147 00:06:27,280 --> 00:06:31,050 当時の彼の主な関心事 彼の友人、ビル·ゲイツを取得する方法であった、 148 00:06:31,050 --> 00:06:34,974 学校を終了して行くために 彼と一緒に事業へ。 149 00:06:34,974 --> 00:06:37,890 ひかり:二人はすでに行っていた ビジネスベンチャーの数まで 150 00:06:37,890 --> 00:06:40,850 一緒に、レイクサイドで始まる シアトルどこの学校 151 00:06:40,850 --> 00:06:45,220 それらはへの無料コ​​ンピュータ時間に支払われた 現地時間のPDP-10コンピュータをテスト 152 00:06:45,220 --> 00:06:46,580 会社を共有する。 153 00:06:46,580 --> 00:06:50,930 最新の計画は終了していた 学校とは、ソフトウェア会社を設立する。 154 00:06:50,930 --> 00:06:53,440 アレンはワシントンを離れていた 州立大学。 155 00:06:53,440 --> 00:06:58,380 しかし、最後の最後で、ゲイツ ハーバードに固執することを決めた。 156 00:06:58,380 --> 00:07:02,080 >> JAYポール:あの日、ハーバード大学を横断 広場、アレンは1月を発見、 157 00:07:02,080 --> 00:07:07,530 人気のエレクトロニクス1975年問題 地球がヘッドラインを停止して、 158 00:07:07,530 --> 00:07:11,900 世界初のミニコンピュータキット 商業モデルに匹敵する。 159 00:07:11,900 --> 00:07:14,430 見出しの下にあった 小箱の絵 160 00:07:14,430 --> 00:07:16,160 照明とスイッチで飾ら。 161 00:07:16,160 --> 00:07:19,770 それは、MITS Altairは8800と呼ばれていました。 162 00:07:19,770 --> 00:07:24,100 そしてアレンは、これは何を知っていた 彼が探していた。 163 00:07:24,100 --> 00:07:26,350 >> ひかり:議論の日数が続いた。 164 00:07:26,350 --> 00:07:30,170 アレンとゲイツ氏は理解 アルタイルの意義。 165 00:07:30,170 --> 00:07:32,480 彼らは頻繁に話していた マイクロプロセッサに関する 166 00:07:32,480 --> 00:07:35,250 何を見るために待っていた それらを用いて行うことになる。 167 00:07:35,250 --> 00:07:39,770 さて上のミニコンピュータキットがあった 人気のエレクトロニクスの表紙。 168 00:07:39,770 --> 00:07:42,830 それは明らかにまだソフトウェアがありませんでした。 169 00:07:42,830 --> 00:07:46,830 彼らは国家を想像 プログラマはMITSに下降。 170 00:07:46,830 --> 00:07:49,590 だから彼らは、エド·ロバーツと呼ばれる 会社の頭、 171 00:07:49,590 --> 00:07:53,330 のバージョンを持っていると主張する ほとんど準備ができて、BASICプログラミング言語 172 00:07:53,330 --> 00:07:54,710 アルテアのため。 173 00:07:54,710 --> 00:07:55,570 彼らはしませんでした。 174 00:07:55,570 --> 00:07:58,910 そして、ロバーツは、彼らはしなかった知られている必要があります。 175 00:07:58,910 --> 00:08:03,170 彼は、10コールから一日を得ていた BASICは、ほぼ準備ができていた人。 176 00:08:03,170 --> 00:08:05,570 そして、彼の株式応答 「最初の人だった 177 00:08:05,570 --> 00:08:11,090 誰が作業して現れる BASICは、契約を取得します。 " 178 00:08:11,090 --> 00:08:13,910 >> JAY PAUL:ゲイツ氏とアレン アルテアを見たことがなかった。 179 00:08:13,910 --> 00:08:17,600 彼らは見たことがなかった インテル8080マイクロプロセッサ 180 00:08:17,600 --> 00:08:19,060 アルテアの中心にある。 181 00:08:19,060 --> 00:08:21,470 しかし、数年先に アレンは、プログラムを書いていた 182 00:08:21,470 --> 00:08:25,220 エミュレートされたメインフレームコンピュータ上で 以前のインテルの動作 183 00:08:25,220 --> 00:08:26,217 マイクロプロセッサ。 184 00:08:26,217 --> 00:08:28,300 そして、彼らの周りのこの時間は 同じことをするだろう。 185 00:08:28,300 --> 00:08:31,530 186 00:08:31,530 --> 00:08:34,380 >> ひかり:インテル付 彼の側で8080マニュアル、 187 00:08:34,380 --> 00:08:37,770 アレンはに座っ ハーバードPDP-10コンピュータ 188 00:08:37,770 --> 00:08:42,010 とエミュレータとソフトウェアを書いた プログラミングを行うために必要なツールを提供します。 189 00:08:42,010 --> 00:08:45,820 またゲイツ氏は行くが停止 クラスへと身を捧げた 190 00:08:45,820 --> 00:08:48,120 BASICを設計する、 すべてのトリックを使用して、 191 00:08:48,120 --> 00:08:53,130 彼はサイズを取得するために知っていた 4キロバイト以下にダウン。 192 00:08:53,130 --> 00:08:55,870 >> JAY PAUL:アルバカーキのうち、 エド·ロバーツは、ゲイツから電話があった 193 00:08:55,870 --> 00:08:59,754 方法の詳細を求める Altairは特定のルーチンを処理していました。 194 00:08:59,754 --> 00:09:01,170 誰も前にあることを頼まなかった。 195 00:09:01,170 --> 00:09:02,670 そして、ロバーツは興味を持ち始めました。 196 00:09:02,670 --> 00:09:05,240 197 00:09:05,240 --> 00:09:07,970 >> ひかり:発展に伴い ツールおよびデザイン準備、 198 00:09:07,970 --> 00:09:10,780 ゲイツとアレンは書いた PDP-10上のコード、 199 00:09:10,780 --> 00:09:16,060 別のハーバード大学の学生を入隊、 モンテダビドフ、数学ルーチンを書くこと。 200 00:09:16,060 --> 00:09:19,450 の最後の晩の後 プログラミング、アレンは飛行機に乗った 201 00:09:19,450 --> 00:09:22,970 MITSに彼らの基本を提供します。 202 00:09:22,970 --> 00:09:25,800 彼は飛行機が気に乗り切る過ごした。 203 00:09:25,800 --> 00:09:28,490 そして戻ってケンブリッジの ゲイツは心配しました。 204 00:09:28,490 --> 00:09:32,100 彼らは基本的にテストされていたし、 それはエミュレータ上で働いていた。 205 00:09:32,100 --> 00:09:35,444 しかし、どのようなエミュレータが間違っていた場合は? 206 00:09:35,444 --> 00:09:37,360 JAYポール:平面として アルバカーキに近づいた、 207 00:09:37,360 --> 00:09:40,070 アレンは、そのことに気づいた BASIC、今きちんと含まれている 208 00:09:40,070 --> 00:09:42,460 小さなロール上 、紙テープだろ打ち抜か 209 00:09:42,460 --> 00:09:44,970 独立したことなく、役に立たない ローダと呼ばれるプログラムと、その 210 00:09:44,970 --> 00:09:47,550 どのアルタイルを言うだろう 紙テープ幸福を読み取る 211 00:09:47,550 --> 00:09:49,620 テレタイプ機に供給。 212 00:09:49,620 --> 00:09:52,970 彼はノートブックを取り出し、すぐに ローダプログラムを走り書き 213 00:09:52,970 --> 00:09:56,819 アセンブリ言語では、手動で 1と0にその翻訳 214 00:09:56,819 --> 00:09:57,985 Altairは理解するであろう。 215 00:09:57,985 --> 00:10:00,530 216 00:10:00,530 --> 00:10:03,830 >> ひかり:アレンは期待していた きれいな、少し、ハイテク企業 217 00:10:03,830 --> 00:10:05,470 ビジネススーツの男性が経営する。 218 00:10:05,470 --> 00:10:09,210 ロバーツが満たされたときに彼は驚いた 空港で彼の牧場のように見える 219 00:10:09,210 --> 00:10:10,270 手。 220 00:10:10,270 --> 00:10:12,070 ロバーツも驚きました。 221 00:10:12,070 --> 00:10:16,340 彼はハーバード大学を落としたときに 高価なホテルで、プログラマ、 222 00:10:16,340 --> 00:10:20,790 アレンはそれを告白しなければならなかった 彼は部屋を余裕がなかった。 223 00:10:20,790 --> 00:10:24,510 >> JAY PAUL:MITS、そのものだった ほこりストリップモールに位置しています。 224 00:10:24,510 --> 00:10:27,040 雑然とした上でインサイド ワークベンチは、アルタイルだった 225 00:10:27,040 --> 00:10:30,390 の5キロバイトで、最大ロードされた メモリとケーブルで接続 226 00:10:30,390 --> 00:10:32,030 テレタイプマシンに。 227 00:10:32,030 --> 00:10:37,200 ロバーツとチーフエンジニア、 ビル·イエーツは、期待し待っていた 228 00:10:37,200 --> 00:10:40,660 アレンは彼のローダーを切り替えるように アルテアにプログラム。 229 00:10:40,660 --> 00:10:44,980 テレタイプは、それが引っ張られたよう一気飲み始めました テープリーダを介して紙テープ。 230 00:10:44,980 --> 00:10:47,215 それはおそらく、15分を要した プログラムをロードします。 231 00:10:47,215 --> 00:10:52,110 その後、テレタイプが突然印刷 その後メモリプロンプト、準備プロンプト、 232 00:10:52,110 --> 00:10:55,340 とアレンはタイピング始まった いくつかのテストコマンド。 233 00:10:55,340 --> 00:10:57,400 みんなの驚きに、 ソフトウェアが働いた。 234 00:10:57,400 --> 00:10:58,525 もちろんバグがありました。 235 00:10:58,525 --> 00:11:02,070 しかし、主なものは、それが働いた。 236 00:11:02,070 --> 00:11:06,570 >> HIKARI:その後、自分の道上へ パンチョさんで3.00ドルランチ、ハチが飛んだ 237 00:11:06,570 --> 00:11:10,470 ピックアップのウィンドウ内 トラックや腕にアレンを刺さ。 238 00:11:10,470 --> 00:11:13,070 しかし、その点は何もで 気分を台無しに可能性があります。 239 00:11:13,070 --> 00:11:17,210 Altairは今、その基本を持っていた 家庭用の最初の商用ソフトウェア 240 00:11:17,210 --> 00:11:23,260 ポール·アレンとビル·製コンピュータ、 ゲイツ氏は、Microsoftのような事業を行って。 241 00:11:23,260 --> 00:11:25,336 >> DAVID J.マラン:多くの 両国の読者のおかげ。 242 00:11:25,336 --> 00:11:30,690 >> [拍手] 243 00:11:30,690 --> 00:11:32,520 >> DAVID J.マラン:今 あなたの選択肢を持って、 244 00:11:32,520 --> 00:11:35,880 あなたが去る前に、キラキラの またはdark--ああグロー、 245 00:11:35,880 --> 00:11:40,810 1秒待ってから、キラキラwait-- と暗い象グロー 246 00:11:40,810 --> 00:11:42,534 CS50自身チェンゴングから。 247 00:11:42,534 --> 00:11:43,450 HIKARI:おやおや、ありがとうございました。 248 00:11:43,450 --> 00:11:45,324 DAVID J.マラン:すべて 右、本当にありがとうございました。 249 00:11:45,324 --> 00:11:49,855 [拍手] 250 00:11:49,855 --> 00:11:51,105 DAVID J.マラン:だから本当の話。 251 00:11:51,105 --> 00:11:54,380 これは、これらのすべてのことを言うことである マシンと私たちとのしやすさ 252 00:11:54,380 --> 00:11:56,270 ここでそれらを使用し、取り 当然のこと、本当に 253 00:11:56,270 --> 00:12:00,070 ここに始め、わずか数歩 この実際の劇場から。 254 00:12:00,070 --> 00:12:03,930 そして今、今日、あなたがされていませんでした場合には、 これはマクスウェルドーキン、コンピュータであり、 255 00:12:03,930 --> 00:12:05,810 科学の建物、 また、角を曲がった。 256 00:12:05,810 --> 00:12:09,760 そして、この2階 建物は3つのページがハングアップしない 257 00:12:09,760 --> 00:12:12,740 オリジナルのソースコードから、その ビル·ゲイツとポール·アレンは書いている。 258 00:12:12,740 --> 00:12:14,770 実際には、使用する場合は、ズーム あなただけでなく見ることができます 259 00:12:14,770 --> 00:12:17,350 における彼らの名前 元の型だけでなく、 260 00:12:17,350 --> 00:12:22,100 彼らが飾られ、そのシグネチャ 数年前、彼らが最後に訪問したとき。 261 00:12:22,100 --> 00:12:25,800 >> しかし、特に説得力のあるものだった このことについて、彼らがやろうと設定したものです。 262 00:12:25,800 --> 00:12:29,760 するプログラムを書くことだった 書き込みを他の人に有効 263 00:12:29,760 --> 00:12:30,950 独自のプログラム。 264 00:12:30,950 --> 00:12:34,280 当時すべてとありました MITSによるこのアルテア機。 265 00:12:34,280 --> 00:12:40,020 そして、彼らは必要なすべてのいくつかの方法でした 愛好家や人のために簡単にそれを作る 266 00:12:40,020 --> 00:12:45,300 実際にプログラムにこの部屋で私たちを好き その必ずしも理解せず 267 00:12:45,300 --> 00:12:49,060 アセンブリコード、またはマシン コー​​ド、または神は、0と1を禁じる。 268 00:12:49,060 --> 00:12:51,190 私たちのようなプログラマは、 この部屋のものは、 269 00:12:51,190 --> 00:12:54,070 表現できるようにする 自分自身ずっと擬似コードのような 270 00:12:54,070 --> 00:12:57,330 それはもう少しNITであったとしても 先週話したよりもうるさい。 271 00:12:57,330 --> 00:13:00,970 私たちは、このようなコードを記述する必要はありません、 そのポール·アレンとビル·ゲイツがした。 272 00:13:00,970 --> 00:13:04,850 私たちは、その代わりに、そのコードを書きたい もう少しユーザーフレンドリーに見えます。 273 00:13:04,850 --> 00:13:07,150 >> さて、これはBASICとして知られている言語です。 274 00:13:07,150 --> 00:13:11,497 と行番号がある何を 単純にコードの行に番号を付けるために使用する 275 00:13:11,497 --> 00:13:12,330 あなたが書いていること。 276 00:13:12,330 --> 00:13:14,038 私たちもする必要はありません これらの日それを行う。 277 00:13:14,038 --> 00:13:16,060 しかし、あなたはここで見ることができます どのPRINT「こんにちは、世界」 278 00:13:16,060 --> 00:13:18,660 確かに、おそらくちょうどそれを印刷することになる。 279 00:13:18,660 --> 00:13:22,710 だから何ビルとパウロがしたことはあった このようなコードを書くために人々に力を与える 280 00:13:22,710 --> 00:13:27,240 代わりに、あなたが見てみた場合of-- コンピュータサイエンスは、このようなコードをwall--。 281 00:13:27,240 --> 00:13:29,290 >> 実際には、CS50最近 機会がありました 282 00:13:29,290 --> 00:13:32,540 教授ハリー·ルイスで座るために コンピュータサイエンス部門で、誰 283 00:13:32,540 --> 00:13:34,640 実際に法案を教えた 何年か前にゲイツ、 284 00:13:34,640 --> 00:13:38,460 そして前にここに立っている 抜粋のものの3ページ。 285 00:13:38,460 --> 00:13:39,560 それでは見てみましょう。 286 00:13:39,560 --> 00:13:45,520 >> HARRY LEWIS:何ここにあることである ソフトウェアの初期の作品のリスト 287 00:13:45,520 --> 00:13:50,240 ビル·ゲイツとポールによって書かれた アレン、マイクロソフトの創設者。 288 00:13:50,240 --> 00:13:52,570 だから、コードは面白いです 二つの理由。 289 00:13:52,570 --> 00:13:55,480 まず第一に、それはなった マイクロソフト社の最初の製品、 290 00:13:55,480 --> 00:14:01,810 の通訳だった BASICプログラミング言語。 291 00:14:01,810 --> 00:14:04,940 そして第二に、これがあった 最初の試みの一つ 292 00:14:04,940 --> 00:14:10,580 インタプリタを作成するので、通常の の人がパソコンを使用することができます。 293 00:14:10,580 --> 00:14:12,670 >> だから、ビル·ゲイツだった ハーバード大学の学部。 294 00:14:12,670 --> 00:14:14,820 私は1974年にハーバード大学で教鞭を始めました。 295 00:14:14,820 --> 00:14:16,560 これは、1975年に行われた。 296 00:14:16,560 --> 00:14:20,180 だから、彼のキャリアの中で早かった 初頭、私のキャリアの中で。 297 00:14:20,180 --> 00:14:23,790 私は実際に法案を教えた この頃のコース。 298 00:14:23,790 --> 00:14:27,130 ポール·アレンはありませんでした ハーバード大学の学生が、彼 299 00:14:27,130 --> 00:14:31,020 高校であった ビル·ゲイツの同級生。 300 00:14:31,020 --> 00:14:33,740 あなたが来て、見てみると 上場時に、あなたはよ 301 00:14:33,740 --> 00:14:36,230 実際に三分の一を見つける 名前、モンテダビドフ、 302 00:14:36,230 --> 00:14:39,260 ゲイツの同級生は誰だった ここでハーバード大学。 303 00:14:39,260 --> 00:14:41,340 >> そう、ここにある ここに興味深いコメントをバックアップします。 304 00:14:41,340 --> 00:14:47,150 これは、4Kで平方根を削除することができます」と言う しかしループのまだ動作するはずです。 " 305 00:14:47,150 --> 00:14:53,080 そう、それが何を意味するかというがある このプログラムをコンパイルするには二つの方法があった。 306 00:14:53,080 --> 00:14:57,860 一つは、バージョンで実行することでした このアルテア·コンピュータの 307 00:14:57,860 --> 00:15:04,310 その唯一の4Kワードを持っていた メモリ、メモリの4,096ワード。 308 00:15:04,310 --> 00:15:07,050 しかし、大きなバージョンは8Kを持っていた。 309 00:15:07,050 --> 00:15:09,770 だから何、これは言うことはあり 4Kのバージョンでその 310 00:15:09,770 --> 00:15:12,770 あなたは、いくつかを削除する必要がありました それが収まるようにするコード。 311 00:15:12,770 --> 00:15:14,790 そしてものの一つ それは削除される 312 00:15:14,790 --> 00:15:16,290 平方根ルーチンになります。 313 00:15:16,290 --> 00:15:20,360 しかし、どうやら ループはまだすべき用 314 00:15:20,360 --> 00:15:26,392 あなたがダウンしてコンパイルしている場合であっても動作し コンピュータのちょうど4Kバージョンの。 315 00:15:26,392 --> 00:15:29,350 DAVID J.マラン:テーマのだから1、 私たちはコンピュータサイエンスに表示されますように、 316 00:15:29,350 --> 00:15:31,430 この概念は、 階層化と抽象化、 317 00:15:31,430 --> 00:15:34,670 本当に肩の上に立って 私たちの前に来た人たちではなく、の 318 00:15:34,670 --> 00:15:37,890 ビル·ゲイツのいくつかとは異なり、 こことポール·アレンの物語。 319 00:15:37,890 --> 00:15:40,080 そして、これが意味することである 今日私達はのために取ることができます 320 00:15:40,080 --> 00:15:43,490 物事が実際にあることを許可され 私たちは、コードを記述するために容易になります。 321 00:15:43,490 --> 00:15:47,170 私たちは金曜日に言ったように実際のコードは、ある より技術的にソースコードとして知られる。 322 00:15:47,170 --> 00:15:52,210 そしてそれは、構文のように、この英語だ それは、より適切な、より明確に定義されます 323 00:15:52,210 --> 00:15:55,480 擬似コードのようなものよりも、用 これは正式な定義はない。 324 00:15:55,480 --> 00:15:58,320 >> そして今日、私たちは何を行っている に焦点を当てることは、ソースコードである 325 00:15:58,320 --> 00:16:01,010 それは、次のようになります 確かに一見 326 00:16:01,010 --> 00:16:02,690 完全に不可解に見える。 327 00:16:02,690 --> 00:16:08,540 そして、率直に言って、それは道より美的だ 基本となるプログラムより複雑です。 328 00:16:08,540 --> 00:16:13,300 すべてのこのプログラムは、ない リコール、私たちが何を言ったのでしょうか? 329 00:16:13,300 --> 00:16:14,990 それだけの "Hello World"を出力します 330 00:16:14,990 --> 00:16:19,600 そして、まだ私たちに必要なもののすべてを見て その非常に単純なフレーズを包み込む。 331 00:16:19,600 --> 00:16:21,750 しかし、やがてすべての これらのラインより 332 00:16:21,750 --> 00:16:24,800 あなたにはるかに良い意味になる。 333 00:16:24,800 --> 00:16:26,940 >> 以下のように流れがある。 334 00:16:26,940 --> 00:16:31,220 私達は私達の処分で必要なもの ソースのように、コードを取ることです 335 00:16:31,220 --> 00:16:32,340 先ほど見たコード。 336 00:16:32,340 --> 00:16:35,060 そして、私たちは新しいプログラムを必要とする それを介して実行します。 337 00:16:35,060 --> 00:16:39,130 私たちは、その缶のアルゴリズムを必要とする このように、ソースコードを変換し、 338 00:16:39,130 --> 00:16:41,932 オブジェクトコード、0と1に変換する。 339 00:16:41,932 --> 00:16:43,890 言い換えれば、どのような 今日は学ぶつもりだ 340 00:16:43,890 --> 00:16:46,620 書き、これを行う方法です。 ソースコードアップトップ、 341 00:16:46,620 --> 00:16:49,930 特別なへの入力として渡します コンパイラとして知られているプログラム、 342 00:16:49,930 --> 00:16:52,140 私たちはオブジェクトコードを生成しようとしている。 343 00:16:52,140 --> 00:16:54,600 どちらの変わった方法である 私たちは何かを取ると言って 344 00:16:54,600 --> 00:16:58,350 それは次のようになり、それを渡す コンパイラと呼ばれるプログラムに、 345 00:16:58,350 --> 00:17:01,210 オブジェクトコードを生成する それは次のようになります。 346 00:17:01,210 --> 00:17:04,720 >> したがって、これらは文字通りです 0と1のパターン 347 00:17:04,720 --> 00:17:08,550 理解されていること インテルのコンピュータこれらの日、 348 00:17:08,550 --> 00:17:12,480 CPUが解釈した場合、その、 コンピュータ内部の頭脳、 349 00:17:12,480 --> 00:17:16,130 文字通り、プリントアウトされます 非常に単純に、 "こんにちは世界。" 350 00:17:16,130 --> 00:17:19,670 今、あなたよりずっとより、0と1があります そのために必要になることがあります望んでいるだろう。 351 00:17:19,670 --> 00:17:22,520 私たちが構築しているので、しかし、それはだ 複雑さのかなり上 352 00:17:22,520 --> 00:17:24,270 私たちは今後当たり前のことができます。 353 00:17:24,270 --> 00:17:27,869 換言すれば、スマートな多くの人 私たちにクールなツールの多くを与えている 354 00:17:27,869 --> 00:17:32,480 強力なソフトウェアで、私たち 今私たち自身のプロジェクトを作ることができます。 355 00:17:32,480 --> 00:17:33,400 >> それでは始めましょう。 356 00:17:33,400 --> 00:17:36,640 先週の金曜日、そして一方 問題セット0今週、 357 00:17:36,640 --> 00:17:39,000 あなたはに再生されます このようになります世界。 358 00:17:39,000 --> 00:17:42,180 今日からと問題の 来週のコードを1に設定し 359 00:17:42,180 --> 00:17:45,410 もう少し見に行くされている 不可解な、しかし、機能的である 360 00:17:45,410 --> 00:17:46,940 同じになるだろう。 361 00:17:46,940 --> 00:17:50,770 だから、トップはスクラッチで、気づく 底がC.率直スクラッチです 362 00:17:50,770 --> 00:17:52,780 より多くのユーザーです フレンドリーでアクセス可能。 363 00:17:52,780 --> 00:17:56,890 しかし、あなたは、今まで視覚的に比較すると、トップ 一番下、一から一のようなものがあります 364 00:17:56,890 --> 00:17:59,690 との対応 パズルのピースと言語 365 00:17:59,690 --> 00:18:00,870 私たちはと遊ぶしようとしています。 366 00:18:00,870 --> 00:18:04,420 具体的には、たとえば、 青いパズルピースまでのトップ、 367 00:18:04,420 --> 00:18:08,370 何キーワードに明らかに相当します この言語で、または特別なフレーズ 368 00:18:08,370 --> 00:18:09,062 Cと呼ばれる? 369 00:18:09,062 --> 00:18:09,770 聴衆:のprintf。 370 00:18:09,770 --> 00:18:10,728 DAVID J.マラン:のprintf。 371 00:18:10,728 --> 00:18:12,140 つまり、フォーマットされた印刷を意味します。 372 00:18:12,140 --> 00:18:15,240 そして、それはただの空想だ C言語でのprintfを言ってする方法 373 00:18:15,240 --> 00:18:18,615 ステートメントや関数になるだろう それは、画面に何かを出力します。 374 00:18:18,615 --> 00:18:19,990 それは、画面に何を印刷するのですか? 375 00:18:19,990 --> 00:18:23,627 どのようなあなたが内側にそれを教えて 引用符の括弧の内側。 376 00:18:23,627 --> 00:18:25,460 だからもう一度、確かに、 多くのものがあります 377 00:18:25,460 --> 00:18:27,990 あなたが心に留めておく必要があることを、 括弧、引用符、セミコロン、 378 00:18:27,990 --> 00:18:28,656 そしてこのすべて。 379 00:18:28,656 --> 00:18:30,600 しかし、それがすべての並べ替えである ポイントの横の。 380 00:18:30,600 --> 00:18:33,660 今のところ面白いお持ち帰り スクラッチのその発言ブロックである 381 00:18:33,660 --> 00:18:37,520 ほとんど同等程度である C言語のprintf文 382 00:18:37,520 --> 00:18:41,390 >> 一方、黄色のパズルピース トップアップ、緑の旗がクリックされたとき、 383 00:18:41,390 --> 00:18:44,736 おそらく同等です ここにキーワード何に? 384 00:18:44,736 --> 00:18:45,360 聴衆:メイン。 385 00:18:45,360 --> 00:18:46,359 DAVID J.マラン:だからメイン。 386 00:18:46,359 --> 00:18:47,410 多分、多分、ボイドint型。 387 00:18:47,410 --> 00:18:51,280 しかし、のような音の主な種類 それが重要だ、と確かにそれはある。 388 00:18:51,280 --> 00:18:54,080 だから、グリーンフラッグがクリックされたとき パズルピースは、再び、である 389 00:18:54,080 --> 00:18:56,390 それがキックオフ 全体スクラッチプログラム。 390 00:18:56,390 --> 00:19:02,140 しかし、私たちは今呼び出しを開始しようとしている メインとして知られている、主に、この関数。 391 00:19:02,140 --> 00:19:06,410 >> 今、その間私たちはよ 次のようにこれを一般化する。 392 00:19:06,410 --> 00:19:08,780 私たちは、呼び出す関数を言うかもしれない。 393 00:19:08,780 --> 00:19:10,580 そして、それは見えるかもしれません 特にこのような。 394 00:19:10,580 --> 00:19:11,770 さて、どのようなループはどうですか? 395 00:19:11,770 --> 00:19:16,540 私たちが変換を開始したい場合、または Cまでスクラッチでよりを翻訳、 396 00:19:16,540 --> 00:19:19,400 ここで、このことは明らかにただ 「Hello World」の永遠に言います。 397 00:19:19,400 --> 00:19:23,060 ですから、これらを関連付けている場合 スクラッチ猫とスクリプト、 398 00:19:23,060 --> 00:19:26,560 それだけで言い続けるだろう 漫画のバブルのいくつかの種類には、 399 00:19:26,560 --> 00:19:29,922 「こんにちは、世界、ハローワールドこんにちは 世界では、「広告nauseum、永遠に。 400 00:19:29,922 --> 00:19:33,130 私たちは、同様の何かをしたい場合は Cは、それは少し不可解に見えるだろう。 401 00:19:33,130 --> 00:19:35,463 しかし、私たちは同じことを達成することができます 結果、私たちは最終的にはよなど 402 00:19:35,463 --> 00:19:36,861 このような構文で、見つける。 403 00:19:36,861 --> 00:19:39,360 私は、再びのprintfを使用するつもりだ なぜなら、一日の終わりに 404 00:19:39,360 --> 00:19:42,040 私は、プリントしたい "こんにちは世界を。" 405 00:19:42,040 --> 00:19:45,610 そして、私は、明らかに使用しています 永遠ではないキーワード。 406 00:19:45,610 --> 00:19:47,320 それは、代わりにしばらく言葉だ。 407 00:19:47,320 --> 00:19:49,650 しかし、単に意味的に中 英語、一方の種類の 408 00:19:49,650 --> 00:19:52,120 ループまたはサイクルのいくつかの種類を示唆している。 409 00:19:52,120 --> 00:19:55,070 >> だからであることを起こる Cが使用するキーワード。 410 00:19:55,070 --> 00:20:00,700 そして真ながら、なぜしばらくし 効果的に永遠に真の意味ですか? 411 00:20:00,700 --> 00:20:04,240 さて、一方で、私たちはすぐによように すべてのより多くの感謝、 412 00:20:04,240 --> 00:20:08,140 その横に、この挿入句を持って どこにブール式を置くことができます。 413 00:20:08,140 --> 00:20:11,360 そして、そのように長い間 式がtrueの場合、このコードは、 414 00:20:11,360 --> 00:20:14,750 これら二つの間に示すように 私たちは彼らを呼ぼうとして、中括弧、 415 00:20:14,750 --> 00:20:16,880 ただ何度も何度も動作し続けます。 416 00:20:16,880 --> 00:20:18,410 >> だから、本当の真実である。 417 00:20:18,410 --> 00:20:20,900 だから、本当の意味する ただ永遠にこれを行う。 418 00:20:20,900 --> 00:20:23,480 それはほとんど愚かだ 自分を表現するために構築する。 419 00:20:23,480 --> 00:20:26,590 しかし、誰永遠にありませんでした C言語でのキーワードはしばらくありました。 420 00:20:26,590 --> 00:20:29,390 そして、非常にシンプルながあった 真のようなブール式。 421 00:20:29,390 --> 00:20:32,210 だからこれ、私達は、表示されます 同じ結果を達成しています。 422 00:20:32,210 --> 00:20:33,890 >> 他にどのようにしてループを実装するのでしょうか? 423 00:20:33,890 --> 00:20:36,980 さて、スクラッチでは、かもしれない 特定の数のハードコード 424 00:20:36,980 --> 00:20:39,430 ここで、ループ内の繰り返し。 425 00:20:39,430 --> 00:20:43,210 そしてそうそれはまさに私たち Cのこのバージョンで行う可能性があり、 426 00:20:43,210 --> 00:20:46,140 私たちが持っていることにより、forループ、いわゆる。 427 00:20:46,140 --> 00:20:49,850 そして、ここでforループが起こっている ややひそかに、反復処理するために、 428 00:20:49,850 --> 00:20:54,100 投入時の値は0〜 へ未満10。 429 00:20:54,100 --> 00:20:55,955 >> 今スクラッチの変数。 430 00:20:55,955 --> 00:20:57,830 あなたが持っていたていない可能性があります これらを利用する機会。 431 00:20:57,830 --> 00:21:02,516 しかし、ポイントは、一般的に、何が、 変数の私たちは、先週言ったの? 432 00:21:02,516 --> 00:21:03,015 なにそれ? 433 00:21:03,015 --> 00:21:03,780 >> 聴衆:ポイント。 434 00:21:03,780 --> 00:21:05,200 >> DAVID J.マラン:指すように? 435 00:21:05,200 --> 00:21:05,700 ああ、指摘している。 436 00:21:05,700 --> 00:21:07,620 [OK]を、ポイントを追跡すること、 例えば、ゲーム内の。 437 00:21:07,620 --> 00:21:09,510 またはより一般的にやって 変数を使用してどのような? 438 00:21:09,510 --> 00:21:10,450 それらの有用性は何ですか? 439 00:21:10,450 --> 00:21:10,825 >> 聴衆:メモリ。 440 00:21:10,825 --> 00:21:11,750 >> DAVID J.マラン:うん、そうメモリ。 441 00:21:11,750 --> 00:21:13,000 それは、何かを格納するためです。 442 00:21:13,000 --> 00:21:17,336 そして、愚かな視覚的な私のようなものが使用さ 最後の時間は、このガラスボウルのようだった。 443 00:21:17,336 --> 00:21:19,710 そして、私たちは保存したい場合 変数の内部に何か、 444 00:21:19,710 --> 00:21:21,918 例えば今、 値は6であるため、そこに 445 00:21:21,918 --> 00:21:23,450 ここでは6個のピンポン球がある。 446 00:21:23,450 --> 00:21:26,158 これは、ストレージのほんの一部のようなものだ フードの下にコンテナ 447 00:21:26,158 --> 00:21:30,030 ビット0と1を使用して実装されている、 しかし、コンピュータはそれを行うことを起こる。 448 00:21:30,030 --> 00:21:32,900 >> スクラッチは、もしそうであれば、私たち 変数を持つようにしたい、 449 00:21:32,900 --> 00:21:34,840 私たちはこのようなオレンジ色のブロックを使用することができます。 450 00:21:34,840 --> 00:21:37,050 私たちは、そのカウンタと呼ぶことにします この特定のケースである。 451 00:21:37,050 --> 00:21:38,890 私はそれを0に初期化しました。 452 00:21:38,890 --> 00:21:41,080 そして、それは私は、何をすべきか? 453 00:21:41,080 --> 00:21:44,780 フォーエバー、カウンターを言う、その場合 あなたは、スクラッチにそれと遊ぶ 454 00:21:44,780 --> 00:21:45,780 あなただけのスクラッチが表示されます。 455 00:21:45,780 --> 00:21:49,920 猫やどんな衣装あなたが上に置く 彼は、問題の数を話すでしょう。 456 00:21:49,920 --> 00:21:52,840 >> 1カウンタを変更している 1ずつ増加などである。 457 00:21:52,840 --> 00:21:56,580 だから、これはしようとしている だから何ものから数える? 458 00:21:56,580 --> 00:21:59,114 0から無限大ゴマ、または スクラッチが破断するまで、 459 00:21:59,114 --> 00:22:01,030 またはあなたまで、種類の 見ることに興味を失う 460 00:22:01,030 --> 00:22:02,650 彼は実際にカウントすることができますどれだけ高い。 461 00:22:02,650 --> 00:22:04,800 >> では、どのようにC言語にこれを変換するのでしょうか? 462 00:22:04,800 --> 00:22:06,480 それは少し不可解に見えるだろう。 463 00:22:06,480 --> 00:22:08,896 しかし、再び、あなたはそれぞれのを見れば これらのラインの個別 464 00:22:08,896 --> 00:22:10,410 一般的にはラインアップの彼らは親切。 465 00:22:10,410 --> 00:22:13,526 だから、明らかにしようとしているint型 C言語でいくつかの特別な意味を持つ 466 00:22:13,526 --> 00:22:14,400 私たちはそれを再び表示されます。 467 00:22:14,400 --> 00:22:15,810 余談として、それは整数を意味します。 468 00:22:15,810 --> 00:22:16,990 だから、単に数を意味する。 469 00:22:16,990 --> 00:22:18,920 だから、のタイプです 私が欲しいガラスボウル、1 470 00:22:18,920 --> 00:22:21,120 それは数字を格納することができ、 ピンポン玉をpingしない。 471 00:22:21,120 --> 00:22:25,520 そして、私は等号を使用するつもりだ それを0の値が割り当てます。 472 00:22:25,520 --> 00:22:29,440 だから、かなりのセットのようなものだ カウンタを0にするが、Cの 473 00:22:29,440 --> 00:22:32,840 >> 一方、真の間に、それはあった 同等の、もちろん、永遠に、 474 00:22:32,840 --> 00:22:35,980 それは少し不可解だとしても、 してから中括弧の内側。 475 00:22:35,980 --> 00:22:39,188 そして、あなたはこれらの中括弧を考えることができ、 どのキーボードで入力することができ、 476 00:22:39,188 --> 00:22:43,110 として本当に曲率のようなもの スクラッチでこれらの黄色のループをブロックします。 477 00:22:43,110 --> 00:22:45,700 これは、複数行のコードを包含する。 478 00:22:45,700 --> 00:22:48,120 >> のprintfなっている 怖いちょっと今、私のため 479 00:22:48,120 --> 00:22:51,120 だけではなく、括弧で引用している参照してください。 480 00:22:51,120 --> 00:22:55,160 しかし、他に何が新しいです 構文上、この例では? 481 00:22:55,160 --> 00:22:57,300 パーセントdがあります。 482 00:22:57,300 --> 00:22:58,551 そして、バックスラッシュnがあります。 483 00:22:58,551 --> 00:23:00,883 私たちも、その前に見た けれども私はそれを言及しなかった。 484 00:23:00,883 --> 00:23:01,886 その後、コンマがあります。 485 00:23:01,886 --> 00:23:03,010 そして、カウンターがあります。 486 00:23:03,010 --> 00:23:05,010 >> しかし、私たちはただで表示されます これは単なるであることを一瞬 487 00:23:05,010 --> 00:23:09,080 プリントaを言うための標準的な方法 「10進数」の引用、引用終わり、 488 00:23:09,080 --> 00:23:10,500 いくつかの小数。 489 00:23:10,500 --> 00:23:13,370 しかし、私は後であなたに言うつもりだ その進数は何ですか。 490 00:23:13,370 --> 00:23:16,835 カンマがあることを事実そう この行にはprintfを言って、 491 00:23:16,835 --> 00:23:18,710 手段は、先に行くと印刷 いくつかの小数。 492 00:23:18,710 --> 00:23:23,110 ああ、ところで、数である 何この変数の値がある。 493 00:23:23,110 --> 00:23:25,880 だから、この多くを作る 明確な、私たちは例が表示されます 494 00:23:25,880 --> 00:23:30,930 やがて、正確にはprintf含む 実際のCプログラムのコンテキストで。 495 00:23:30,930 --> 00:23:33,472 >> 今だけ一部をラップする これらの構築物。 496 00:23:33,472 --> 00:23:36,680 ブール式は、あなたが持っていない可能性があり あなたのプログラムでこれらを使用する機会 497 00:23:36,680 --> 00:23:39,450 しかし、あなたは非常によくかもしれない、 特に条件を使用している場合。 498 00:23:39,450 --> 00:23:43,460 からですからこの2つの例 xがyよりも小さい場合を意味傷、 499 00:23:43,460 --> 00:23:48,770 またはxがyより小さく、yが小さい場合 zはなく、私たちはそれをどのように翻訳するのでしょうか? 500 00:23:48,770 --> 00:23:50,810 >> さて、C言語でそれだけだ このように見に行く。 501 00:23:50,810 --> 00:23:55,300 少し不可解な、より多くの括弧、 基本的にはいくつかの奇妙なアンパサンドが、 502 00:23:55,300 --> 00:23:59,160 アイデアは、彼らのように単純である パズルピースの世界である。 503 00:23:59,160 --> 00:24:02,690 私たちは単純に何かあればチェックしている 何か他のものよりも小さい。 504 00:24:02,690 --> 00:24:03,910 >> どのような条件は? 505 00:24:03,910 --> 00:24:09,710 英語で一言で言えば、何がこれを行います あなたがスクラッチコードの塊を言うでしょうか? 506 00:24:09,710 --> 00:24:11,050 >> 観客は:二つの数字を比較します。 507 00:24:11,050 --> 00:24:13,760 >> DAVID J.マラン:2を比較します 数字、xがyよりも小さい場合 508 00:24:13,760 --> 00:24:14,860 それは同じくらい言う。 509 00:24:14,860 --> 00:24:18,080 xがyよりも大きい場合 それは同じくらい、他に言う 510 00:24:18,080 --> 00:24:20,740 xがyと等しい場合には、できるだけ多く言う。 511 00:24:20,740 --> 00:24:22,180 今、xとyはどこから来たのか? 512 00:24:22,180 --> 00:24:22,680 誰が知っている。 513 00:24:22,680 --> 00:24:25,380 スクラッチのこのチャンク コー​​ドは、コンテキストから外れている。 514 00:24:25,380 --> 00:24:29,050 しかし、私たちが今やってみたいことは翻訳している ただちょっとこれを確認します。 515 00:24:29,050 --> 00:24:31,660 >> あなたが快適になるように 問題セット内の今週 516 00:24:31,660 --> 00:24:34,190 0この世界で遊ぶ 左側の実現 517 00:24:34,190 --> 00:24:36,940 アイデアは変更しないことを 今週または次または超えた。 518 00:24:36,940 --> 00:24:38,690 私たちは単純にするつもりだ 物事を書き始める 519 00:24:38,690 --> 00:24:41,240 私たちと違った方法で 代わりに、私たちのマウスのキーボード。 520 00:24:41,240 --> 00:24:44,577 >> そのように、xがyよりも小さい場合、および そこにいくつかの括弧があると、 521 00:24:44,577 --> 00:24:47,160 その後、いくつかの中括弧があります 再び種類のそれをカプセル化する 522 00:24:47,160 --> 00:24:48,970 ちょうどない黄色のパズルのピースのように。 523 00:24:48,970 --> 00:24:53,000 そして、私は、Xのprintfするつもりです などyおよびより少ない。 524 00:24:53,000 --> 00:24:56,540 >> どのようなCのいいです、 あなたがここで見ることができるように、 525 00:24:56,540 --> 00:25:00,480 このネスティングを取得しないことです、 ネスティング、それは必然的だネスティング 526 00:25:00,480 --> 00:25:02,220 右にあなたのコードをプッシュするつもり。 527 00:25:02,220 --> 00:25:04,990 代わりに、すべてのものを持つことができます きちんとこのようなラインナップ。 528 00:25:04,990 --> 00:25:08,960 しかし、それは単なる審美的だ 詳細私たちはずっと前に再び表示されます。 529 00:25:08,960 --> 00:25:09,660 >> かしこまりました。 530 00:25:09,660 --> 00:25:13,290 だから、戻って私たちをもたらし この不可解な見てプログラム。 531 00:25:13,290 --> 00:25:15,180 それでは、実際にいくつかのコードを書いてみましょう。 532 00:25:15,180 --> 00:25:16,830 今、どのようにコードを書いて行くのですか? 533 00:25:16,830 --> 00:25:21,310 あなたが所有してすべてのこれらの年 MacやPC、デスクトップまたはラップトップ、 534 00:25:21,310 --> 00:25:24,520 あなたが実際に機能を持っていた プログラミングコードを書くことを開始します。 535 00:25:24,520 --> 00:25:27,050 しかし、あなたはおそらく不足している プログラムの特殊なタイプ。 536 00:25:27,050 --> 00:25:28,470 確かにコードを書くことができます。 537 00:25:28,470 --> 00:25:30,740 しかし、あなたは、必ずしもできない 箱から出して、 538 00:25:30,740 --> 00:25:34,210 そのソースコードを変換する オブジェクトコード、0と1に 539 00:25:34,210 --> 00:25:35,619 お使いのコンピュータ上で何をすることなく? 540 00:25:35,619 --> 00:25:36,410 聴衆:コンパイラ。 541 00:25:36,410 --> 00:25:37,630 DAVID J.マラン:だから、コンパイラ、右。 542 00:25:37,630 --> 00:25:39,730 今、あなたの可能性が最も高い コンパイラを所有していない、 543 00:25:39,730 --> 00:25:41,259 コンパイラをダウンロードしたことがありません。 544 00:25:41,259 --> 00:25:44,300 しかし、あなたはそれをダウンロードすることができます表示されます ソフトウェアのほとんどは、他の作品のように。 545 00:25:44,300 --> 00:25:47,470 Mac OSのの世界では、かもしれない ダウンロードしたり、すでにダウンロードしている 546 00:25:47,470 --> 00:25:50,437 Xcodeのか、GCCまたはクラングと呼ばれるもの。 547 00:25:50,437 --> 00:25:52,270 あなたがから来ている場合 Windowsの世界、あなたかもしれない 548 00:25:52,270 --> 00:25:56,190 Visual Studioをダウンロードしている、 Visual Basicで、そのような環境。 549 00:25:56,190 --> 00:25:59,200 コンパイラの数十があります あなたが使用する可能性があり、これらの日。 550 00:25:59,200 --> 00:26:01,940 しかし、ここでそれを短い それは苦痛であるだろうということです 551 00:26:01,940 --> 00:26:04,480 そして、率直に言って、技術的 何百ものための悪夢 552 00:26:04,480 --> 00:26:07,680 異なるがい者の すべてのコンピュータの構成 553 00:26:07,680 --> 00:26:09,800 自分のマシンを設定する 全く同じ様に 554 00:26:09,800 --> 00:26:11,700 ように、私たちはすべて同じページ上に置くことができます。 555 00:26:11,700 --> 00:26:15,240 >> だから私たちは、その代わりに、何をすべきか CS50に私たちはあなたを与えるされている 556 00:26:15,240 --> 00:26:18,349 標準的な環境、 のLinux環境 557 00:26:18,349 --> 00:26:20,140 少し見に行く このようなもの。 558 00:26:20,140 --> 00:26:22,980 あなたは、このの詳細を参照します 問題セット1仕様れる 559 00:26:22,980 --> 00:26:25,330 今週の金曜日の夜オンラインになります。 560 00:26:25,330 --> 00:26:28,360 >> そして、これが何を意味するのか あなたことは今後あり 561 00:26:28,360 --> 00:26:32,060 にできるようにしようとしている プログラムをダウンロードしてインストール 562 00:26:32,060 --> 00:26:33,650 CS50アプライアンスと呼ばれる。 563 00:26:33,650 --> 00:26:36,275 そして、あなたがダウンロードしようとしていると と呼ばれる別のプログラムをインストールする 564 00:26:36,275 --> 00:26:40,300 ちょうどあるハイパーバイザ、 これを達成するファンシーな方法。 565 00:26:40,300 --> 00:26:44,600 あなたは、MacまたはPCまたはAを所有しているかどうか LinuxコンピュータまたはSolarisコンピュータ、 566 00:26:44,600 --> 00:26:46,830 または何狂気運転 あなたが実行しているシステムで、 567 00:26:46,830 --> 00:26:49,820 あなたがプログラムをダウンロードしようとしている のハイパーバイザーと呼ばれる 568 00:26:49,820 --> 00:26:53,350 CS50を実行するつもり お使いのコンピュータ上のアプライアンス 569 00:26:53,350 --> 00:26:55,430 どんなご使用のオペレーティング·システムではありません。 570 00:26:55,430 --> 00:27:00,640 換言すれば、ハイパーバイザーは、変換され どんな言語に私たちのもの、 571 00:27:00,640 --> 00:27:03,850 どのような手順あなたの 自分のコンピュータが理解しています。 572 00:27:03,850 --> 00:27:04,962 >> だから、これはレイヤーです。 573 00:27:04,962 --> 00:27:06,920 そして再び、これが一種である コンピュータ内のテーマ別の 574 00:27:06,920 --> 00:27:08,722 科学、物事の上に建物。 575 00:27:08,722 --> 00:27:09,680 あなたは、Windowsを持っているかもしれません。 576 00:27:09,680 --> 00:27:10,710 あなたは、Mac OSを持っているかもしれません。 577 00:27:10,710 --> 00:27:12,960 しかし、あなたがしている来週から ダウンロードしたつもり 578 00:27:12,960 --> 00:27:14,980 ソフトウェアの自由な作品 ハイパーバイザーと呼ばれる。 579 00:27:14,980 --> 00:27:17,800 あなたが作品をダウンロードしているつもりだ CS50アプライアンスと呼ばれるソフトウェアの。 580 00:27:17,800 --> 00:27:21,050 >> つまり、ハイパーバイザーで動作するように起こっている これは、コンピュータ上で実行しようとしている。 581 00:27:21,050 --> 00:27:23,030 最終結果は、 私たちのすべてをすることを 582 00:27:23,030 --> 00:27:26,220 のような単純なウィンドウを持っている お使いのMacまたはPC上でこの 583 00:27:26,220 --> 00:27:30,160 それは私たちにすべての錯覚を与えます 同じオペレーティングシステムを実行し、 584 00:27:30,160 --> 00:27:32,800 他のなしで お使いのコンピュータへの影響。 585 00:27:32,800 --> 00:27:34,870 そして、あなたは、フルスクリーンすることができます それと本質的に振る舞う 586 00:27:34,870 --> 00:27:37,550 あなたが実行しているかのように リナックスと呼ばれるオペレーティングシステム、 587 00:27:37,550 --> 00:27:40,270 何CS50これは アプライアンスがオンに基づいています。 588 00:27:40,270 --> 00:27:42,930 >> それでは、実際にこれを使ってみましょう 今のプログラムを書くこと。 589 00:27:42,930 --> 00:27:45,450 あなたがプログラムを書くことができます Microsoft Wordを使用して。 590 00:27:45,450 --> 00:27:48,160 あなたがプログラムを書くことができます テキストエディット、またはメモ帳を使用して、 591 00:27:48,160 --> 00:27:51,880 またはワードパッド、またはほとんどすべての単語 あなたが今まで使用した処理プログラム。 592 00:27:51,880 --> 00:27:55,174 しかし、現実はあなたがいけないです 本当にこれらのプログラムのいずれかを使用します。 593 00:27:55,174 --> 00:27:57,840 あなたは確かに使うべきではありません Microsoft Wordの、どのようなもの 594 00:27:57,840 --> 00:28:01,120 太字の対面や斜体があり、 大きなフォントと小さいフォント、 595 00:28:01,120 --> 00:28:03,560 コンピュータにはありませんので、 そのいずれかの気に。 596 00:28:03,560 --> 00:28:05,600 すべてのコンピュータである 気にされるだろう 597 00:28:05,600 --> 00:28:09,040 C言語で書かれた説明書のような英語 598 00:28:09,040 --> 00:28:12,050 >> だから私たちは内部にやるかを CS50アプライアンスの 599 00:28:12,050 --> 00:28:14,290 自由にプログラムを使用している それが利用可能な、とだ 600 00:28:14,290 --> 00:28:17,360 この中にプリインストールされ アプライアンスやgeditと呼ばれる。 601 00:28:17,360 --> 00:28:22,280 そして、Geditのは単なる超簡単です Mac OSののテキストエディットなどのテキストエディタ、 602 00:28:22,280 --> 00:28:26,200 に起こっているWindowsのメモ帳のような このような小さなものになり。 603 00:28:26,200 --> 00:28:28,910 >> だから、実際にしてみましょうしない このスライドを見てください。 604 00:28:28,910 --> 00:28:32,580 しかし、ここで実際にに行こう 環境そのもの。 605 00:28:32,580 --> 00:28:36,090 私が先に行くつもりだと この他のウィンドウに、ログインし、 606 00:28:36,090 --> 00:28:40,910 私がした私のCS50アプライアンスへ ここに私のラップトップ上でプリインストールされています。 607 00:28:40,910 --> 00:28:43,771 >> Windowsと同じようことに、注意してください Mac OSは、、それはいくつかのメニューを持っている。 608 00:28:43,771 --> 00:28:45,520 ウィンドウズのようにそれを置く そこにダウンする代わり 609 00:28:45,520 --> 00:28:47,020 そこにそれを下に置くのMac OSの。 610 00:28:47,020 --> 00:28:48,930 しかし、現実には、それはですです 同じのすべての種類。 611 00:28:48,930 --> 00:28:50,770 そして、ここで全体で ソフトウェアの束。 612 00:28:50,770 --> 00:28:51,770 Dropboxはあります。 613 00:28:51,770 --> 00:28:54,780 付属品の全体の束があります、 グラフィカルなプログラムを私たちはよ 614 00:28:54,780 --> 00:28:56,430 問題·セットの任期の後半で使用します。 615 00:28:56,430 --> 00:28:59,650 そこらで構築されたWebブラウザがあります これは本格的なコンピュータであること 616 00:28:59,650 --> 00:29:01,240 コンピュータの内部。 617 00:29:01,240 --> 00:29:04,170 >> しかし、私はこれをクリックするつもりです ここ一番左の白いアイコン、 618 00:29:04,170 --> 00:29:05,890 これGeditのためのアイコンです。 619 00:29:05,890 --> 00:29:09,650 そしてそれは、ウィンドウを開くために起こっている それは、3つのパネルを有し、 620 00:29:09,650 --> 00:29:12,590 左が、一番上の、下1。 621 00:29:12,590 --> 00:29:16,071 >> 今では、この右上1にだ 私は実際にいくつかのコードを記述するつもりです。 622 00:29:16,071 --> 00:29:16,820 それでは、これをやらせる、。 623 00:29:16,820 --> 00:29:19,040 私は、[保存]をファイルに行くつもりです。 624 00:29:19,040 --> 00:29:22,100 そして、あなたが今まで見ていない可能性があります 前に、この特定のウィンドウ。 625 00:29:22,100 --> 00:29:23,620 しかし、これは、Mac OSやWindowsのようなものです。 626 00:29:23,620 --> 00:29:25,490 それはちょうど、ウィンドウの すべてのフォルダと 627 00:29:25,490 --> 00:29:27,290 私は、このコンピュータの内部に持っていること。 628 00:29:27,290 --> 00:29:30,320 >> そして、私は保存するつもりです hello.cのようにファイル。 629 00:29:30,320 --> 00:29:32,690 そして、私は行くつもりです 先に、[保存]をクリックします。 630 00:29:32,690 --> 00:29:36,364 そして今、私はタブを持って気づく 左上のhello.cと呼ばれる。 631 00:29:36,364 --> 00:29:38,280 だから、おそらくかなり あなたがいませんでした場合であってもおなじみの 632 00:29:38,280 --> 00:29:40,240 前に、この特定のプログラムを使用していました。 633 00:29:40,240 --> 00:29:44,890 >> そして今、私はそれらを入力するつもりです コマンドのかなり不可解なシーケンス 634 00:29:44,890 --> 00:29:46,360 私たちは一瞬前に見たこと。 635 00:29:46,360 --> 00:29:49,330 インクルード、標準I / O.h。 636 00:29:49,330 --> 00:29:50,600 そのすぐ上のほかの。 637 00:29:50,600 --> 00:29:55,670 int型メインボイドオープンカーリー ブレース、中括弧を閉じた。 638 00:29:55,670 --> 00:30:01,570 そして、そこの中に私があると思います ここで、私たちは「こんにちは世界」、セミコロンを持っていた。 639 00:30:01,570 --> 00:30:03,100 そして今、保存してください。 640 00:30:03,100 --> 00:30:08,780 >> だから、これは、C言語で書かれたプログラムです。 ソースコード内で、従って、書かれた。 641 00:30:08,780 --> 00:30:10,720 しかし、私はこのプログラムを実行することはできません。 642 00:30:10,720 --> 00:30:13,390 私はこの種の二倍にしたい どこかのアイコンをクリックし、 643 00:30:13,390 --> 00:30:16,390 しかしアイコンは、他の存在しない ソースコードファイルより。 644 00:30:16,390 --> 00:30:20,359 、もう一度、今そのプロセスは何ですか 私が通ってこのファイルを実行する必要がありますか? 645 00:30:20,359 --> 00:30:21,150 聴衆:コンパイラ。 646 00:30:21,150 --> 00:30:22,399 DAVID J.マラン:だからコンパイラ。 647 00:30:22,399 --> 00:30:24,890 だから、別のコンピュータでの使用 さまざまな方法でこれを行う。 648 00:30:24,890 --> 00:30:27,480 しかし、私たちはここで何をやったか だCS50アプライアンス 649 00:30:27,480 --> 00:30:31,260 どのようにかもしれないの代表 多くの異なるシステム上でこれを行う、 650 00:30:31,260 --> 00:30:34,036 私は単純に行くよさ メイクというコマンドを実行します。 651 00:30:34,036 --> 00:30:35,660 そして、メイクは文字通りそれを行うとしている。 652 00:30:35,660 --> 00:30:36,640 私のプログラムを確認します。 653 00:30:36,640 --> 00:30:39,060 >> だからに行くされていることを確認 私のためにコンパイラを実行します。 654 00:30:39,060 --> 00:30:42,160 そして、プログラムの名前 私はハローであることを確認したいと思います。 655 00:30:42,160 --> 00:30:43,510 今のプログラムであることを確認。 656 00:30:43,510 --> 00:30:47,170 そして作るのに十分スマートです 、私が言ったらハロー作ることを実現 657 00:30:47,170 --> 00:30:50,980 それは自動的に探すために起こっている のhello.cというファイルのための 658 00:30:50,980 --> 00:30:53,420 それはだからといって 道に構成しています。 659 00:30:53,420 --> 00:31:00,300 >> だから私は今ここに、これを入力して打ったとき 狂気の不可解なラインは、直前に実行しまった。 660 00:31:00,300 --> 00:31:02,720 そして前に、私を信頼 ちょうど日以内に、長く、 661 00:31:02,720 --> 00:31:05,590 あなたは何のすべてを理解するだろう そのナンセンス手段の。 662 00:31:05,590 --> 00:31:11,150 しかし、今のところ、ちょうど作ることを知っている コンパイラの実行を誘発した。 663 00:31:11,150 --> 00:31:13,290 言い換えれば、見つかっ 私のコンピュータ上でのコンパイラ 664 00:31:13,290 --> 00:31:14,820 それがプリインストールされます CS50アプライアンス上の 665 00:31:14,820 --> 00:31:16,560 私たちは問題セット1であなたに渡しますことを。 666 00:31:16,560 --> 00:31:20,990 そして、それはその後のようにhello.cを取った 入力と、明らかに生産さ 667 00:31:20,990 --> 00:31:23,040 出力として0と1。 668 00:31:23,040 --> 00:31:29,410 >> また、デフォルトでは何それがない、それが保存されている ファイル内の0と1はハローと呼ばれる。 669 00:31:29,410 --> 00:31:33,180 そして、この構文があまりにかもしれないが 単にドットを言うことによって、あなたに新しいこと 670 00:31:33,180 --> 00:31:37,110 ハローがあることを行っているスラッシュ それによって、私はこのプログラムを実行することを意味します。 671 00:31:37,110 --> 00:31:40,360 >> 今のところ少なくともカップルのための 週間の、ほぼすべてのプログラムの 672 00:31:40,360 --> 00:31:44,230 私達はであることを行っているライト 黒と白のテキストウィンドウ。 673 00:31:44,230 --> 00:31:47,006 いいえマウス、いいえクリック、 は窓なし、アイコン。 674 00:31:47,006 --> 00:31:49,630 私たちは、それをシンプルに保つつもりだ 基礎となるアイデアに焦点を当てる 675 00:31:49,630 --> 00:31:52,490 私たちは、何かに到達する前に、最初に より高いレベル、例えば、 676 00:31:52,490 --> 00:31:56,410 私たちが話をブレークアウトゲームのような 最初の講義の最後の週に約。 677 00:31:56,410 --> 00:32:00,820 >> 私はここでEnterキーを押すときに、それはだ テキストのみの環境での同等の 678 00:32:00,820 --> 00:32:03,272 ハローと呼ばれるアイコンをクリックすると倍増する。 679 00:32:03,272 --> 00:32:05,480 あなたは何を期待しています 私は、Enterキーを押したときの動作? 680 00:32:05,480 --> 00:32:07,120 >> 聴衆:それは "こんにちは世界"を印刷します 681 00:32:07,120 --> 00:32:10,000 >> DAVID J.マラン:うまくいけば、 それは "こんにちは世界"を出力します 682 00:32:10,000 --> 00:32:11,370 そして実際、それはやった。 683 00:32:11,370 --> 00:32:13,690 現在、いくつかあっただ ここで不可解な構文。 684 00:32:13,690 --> 00:32:15,950 ちょうどのために巻き戻してみましょう 瞬間、私たちかどうかを確認 685 00:32:15,950 --> 00:32:19,530 ちょうどによる推論起動することはできません しようとすると失敗し、いじり、 686 00:32:19,530 --> 00:32:21,130 ここで何が起こっているのかに関して。 687 00:32:21,130 --> 00:32:23,609 私は、バックスラッシュnを取り除くときは? 688 00:32:23,609 --> 00:32:25,650 今、あなたのいくつかした方 おそらく前にプログラム 689 00:32:25,650 --> 00:32:27,054 それが何を意味するか瞬時に知っている。 690 00:32:27,054 --> 00:32:29,220 しかしだ人のために 前にプログラムされません、 691 00:32:29,220 --> 00:32:34,052 少なくとも、何が起こっているかを自分自身に思う 私はこのプログラムを再実行するときに変更するには? 692 00:32:34,052 --> 00:32:37,010 だから私は戻ってダウンして、私に行くつもりです 少し黒と白の窓、その 693 00:32:37,010 --> 00:32:39,290 内窓である 私はこれをコンパイルすることができます。 694 00:32:39,290 --> 00:32:41,130 私はハローを再コンパイルするつもりです。 695 00:32:41,130 --> 00:32:43,520 私たちは同じことを見ることになるだろう コマンドの不可解なシーケンス。 696 00:32:43,520 --> 00:32:45,719 そして、私はハロードットスラッシュをするつもりです。 697 00:32:45,719 --> 00:32:48,260 そして今、誰か、あなたが希望の場合は、 誰が、以前にプログラムされたことはないでしょう 698 00:32:48,260 --> 00:32:49,770 何がこの時間と異なる場合があります? 699 00:32:49,770 --> 00:32:50,020 うん。 700 00:32:50,020 --> 00:32:51,840 >> 聴衆:それは停止しません 印刷の "Hello World。" 701 00:32:51,840 --> 00:32:52,660 >> DAVID J.マラン:それはto--残念起こっているの? 702 00:32:52,660 --> 00:32:54,210 >> 聴衆:それはそれを印刷を停止しないのだろうか? 703 00:32:54,210 --> 00:32:55,810 >> DAVID J.マラン:それはしません 印刷を中止に "Hello World。" 704 00:32:55,810 --> 00:32:56,560 悪いアイデアではないので、。 705 00:32:56,560 --> 00:32:58,633 他のアイデア? 706 00:32:58,633 --> 00:32:59,132 うん。 707 00:32:59,132 --> 00:33:00,060 >> 聴衆:エラーメッセージ? 708 00:33:00,060 --> 00:33:01,750 >> DAVID J.マラン:エラー メッセージには、[OK]を、である可能性があります。 709 00:33:01,750 --> 00:33:02,250 他には? 710 00:33:02,250 --> 00:33:05,479 聴衆:それは印刷することがあります 同様にセミコロンでブラケット? 711 00:33:05,479 --> 00:33:08,270 DAVID J.マラン:印刷する場合がある 同様にセミコロンでブラケット。 712 00:33:08,270 --> 00:33:11,950 そのため、おそらくそのバックスラッシュは、その後いくつかある 重要なのterminousの一種。 713 00:33:11,950 --> 00:33:14,860 その他の考え? 714 00:33:14,860 --> 00:33:16,412 >> だから、すべての良いアイデア。 715 00:33:16,412 --> 00:33:18,370 そして、実際に、それは起こっている エラーメッセージである。 716 00:33:18,370 --> 00:33:20,400 それはおそらく最も可能性が高いです 一般的には答えであるように 717 00:33:20,400 --> 00:33:22,420 今後数週間 私たちはここでコーディングすることを学ぶように。 718 00:33:22,420 --> 00:33:27,680 >> しかし、今のコンピュータのことを覚えている 唯一のあなたがしなければそれらを教えてやり。 719 00:33:27,680 --> 00:33:30,400 とんでもないピーナッツのような多くの バターとゼリーの例。 720 00:33:30,400 --> 00:33:33,860 私たち人間のコンピュータのみになっていた あなたがしなければ、それらを言ったことができません。 721 00:33:33,860 --> 00:33:36,250 この場合、もしそうであれば、あなた コンピュータを教えていない 722 00:33:36,250 --> 00:33:41,190 にその点滅カーソルを移動し、 次の行、それはそれを行うことはないだろう。 723 00:33:41,190 --> 00:33:45,390 だから私はこのプログラムを実行すると、 今、違いに気付く。 724 00:33:45,390 --> 00:33:46,900 >> バグのように見える。 725 00:33:46,900 --> 00:33:49,190 それはおそらく、美的バグです。 726 00:33:49,190 --> 00:33:53,310 しかし、この程度は異なるものです 明らかに最後の1対の出力? 727 00:33:53,310 --> 00:33:53,810 うん。 728 00:33:53,810 --> 00:33:54,920 >> 聴衆:それは新しい行をしませんでした。 729 00:33:54,920 --> 00:33:56,586 >> DAVID J.マラン:それは新しい行をしませんでした。 730 00:33:56,586 --> 00:33:58,740 今、あなたのそれらの人 多分Webページを作った 731 00:33:58,740 --> 00:34:01,910 前に、知っているかもしれません BRタグや段落タグ、 732 00:34:01,910 --> 00:34:03,120 精神に非常に似ています。 733 00:34:03,120 --> 00:34:06,680 ウェブブラウザは、までを無視します あなたが正確に何をすべきかということを教え。 734 00:34:06,680 --> 00:34:10,020 同様に、Cのような言語であるだけ あなたがすることを教え何をするつもり。 735 00:34:10,020 --> 00:34:12,730 >> 理由だから これらの例のすべて、 736 00:34:12,730 --> 00:34:15,350 これまで、この種の持っている 何気なくこのバックスラッシュを持っていた 737 00:34:15,350 --> 00:34:18,560 そこでは、その手段がだ それによってあなたは自分を表現 738 00:34:18,560 --> 00:34:21,380 改行文字として、いわば。 739 00:34:21,380 --> 00:34:26,219 そして、あなたは親切なのは、おそらく、理解することができる これはちょっと愚かに見えるだろうと 740 00:34:26,219 --> 00:34:27,070 何もない場合。 741 00:34:27,070 --> 00:34:29,150 私は、新しい行を望んでいた場合は、単に 入力し、親切な打撃 742 00:34:29,150 --> 00:34:32,219 のようなコードを食肉 本当に正しい方法をこすってはいけません。 743 00:34:32,219 --> 00:34:33,830 そして、そうでない場合でも、 本当にこの時点では気にし、 744 00:34:33,830 --> 00:34:35,830 あなたはそれを理解するであろう これは、特にありません 745 00:34:35,830 --> 00:34:37,870 コー​​ドの格好良い作品。 746 00:34:37,870 --> 00:34:39,969 >> だから何の世界 決めた数年前である 747 00:34:39,969 --> 00:34:43,420 あなたが置きたいときに 明示的に新しい行にカーソル、 748 00:34:43,420 --> 00:34:46,332 あなたが明示的に言わなければならない 新しい行は、バックスラッシュnを。 749 00:34:46,332 --> 00:34:48,040 そして、いくつかの他のがあります そのようなシンボル。 750 00:34:48,040 --> 00:34:50,719 しかし、今の私たちはよ バックスラッシュnに焦点を当てる。 751 00:34:50,719 --> 00:34:53,790 >> それでは、プログラムを作ってみよう もう少し面白い。 752 00:34:53,790 --> 00:34:59,200 私が先に行くつもりだと 今回は、新しいファイルを開く。 753 00:34:59,200 --> 00:35:02,520 私はこのようなハロー1.Cを保存するつもりです。 754 00:35:02,520 --> 00:35:05,540 そして、ちょうどキックのために、私はするつもりだ 私のDropboxフォルダに入れて行く。 755 00:35:05,540 --> 00:35:09,030 >> あなたはCS50でわかるように アプライアンスのドキュメント、 756 00:35:09,030 --> 00:35:11,210 問題の今週後半 1を設定し、私たちは奨励します 757 00:35:11,210 --> 00:35:13,230 あなたのDropboxを使用するか、 いくつかの同等のサービス、 758 00:35:13,230 --> 00:35:15,430 すべてのコードのための 自動的にバックアップされる予定。 759 00:35:15,430 --> 00:35:17,830 私がした理由となるようです ここで、このフォルダに入っ。 760 00:35:17,830 --> 00:35:20,230 >> そして今、私は書くつもりだ わずかに異なるプログラム。 761 00:35:20,230 --> 00:35:24,740 標準I / O.h、int型メインボイド含めます。 762 00:35:24,740 --> 00:35:29,660 そして、ここでのprintf、こんにちは世界で、 その前とまったく同じです。 763 00:35:29,660 --> 00:35:32,450 >> しかし、今私は何かを印刷したい それは少し違う。 764 00:35:32,450 --> 00:35:34,800 私は、プリントアウトしたい 「こんにちは、デビッド。」と言う 765 00:35:34,800 --> 00:35:37,590 ので、明らかにすべての権利、、 それがうまくいけばべき 766 00:35:37,590 --> 00:35:40,360 私は再コンパイルする場合は、そのケースである このプログラムは、それを再実行し、 767 00:35:40,360 --> 00:35:41,840 それは言うために起こっている「こんにちは、デビッド。 " 768 00:35:41,840 --> 00:35:45,160 >> しかし、私が紹介したい場合はどう 変数のこの種の、 769 00:35:45,160 --> 00:35:49,240 起こっているコンテナの概念 D--V-I-dおよびハードではないコードを格納する 770 00:35:49,240 --> 00:35:50,600 私のプログラムに変換する。 771 00:35:50,600 --> 00:35:53,430 さて私は何を起動した場合 このような何かをやって? 772 00:35:53,430 --> 00:35:57,120 >> 文字列sは、これは可変である。 773 00:35:57,120 --> 00:36:00,250 あなたは、文字列をしたい場合は、 単語または語句別称。 774 00:36:00,250 --> 00:36:03,485 文字のシーケンスは何ですか プログラミングで、文字列を呼び出します。 775 00:36:03,485 --> 00:36:06,610 私達はちょうど一般的にコールするつもりだ それはすてきな単純な名前だから、それは、だ。 776 00:36:06,610 --> 00:36:08,010 しかし、私は何もそれを呼び出すことができます。 777 00:36:08,010 --> 00:36:12,920 >> 私は、文字列sのequalsを言うつもりだ 引用終わり、「デイヴィッド、「セミコロン引用。 778 00:36:12,920 --> 00:36:18,330 そして今、私は、挿入したい D--V-I-D私は印刷だものに。 779 00:36:18,330 --> 00:36:23,720 そして、私たちの前にティーザーを見た いくつかの特別な構文の画面 780 00:36:23,720 --> 00:36:26,050 それは私たちがすることができ 価値の代用。 781 00:36:26,050 --> 00:36:29,250 特別なは何だった いくつかのスライド前のシンボル? 782 00:36:29,250 --> 00:36:30,040 >> だからパーセント。 783 00:36:30,040 --> 00:36:33,830 当時それはパーセントであった 小数の研究開発。 784 00:36:33,830 --> 00:36:35,850 それは本当にここでは関係ないようです。 785 00:36:35,850 --> 00:36:38,650 そこのが判明 別のパーセント記号、 786 00:36:38,650 --> 00:36:42,810 スタンドでのパーセントの、 文字列のプレースホルダ。 787 00:36:42,810 --> 00:36:49,350 >> だから今、非常に簡単に、私は 、ハロー-1を作るに行くつもり 788 00:36:49,350 --> 00:36:54,210 このファイルが呼ばれていますので、 ハロー1.C、Enterを押します。 789 00:36:54,210 --> 00:36:56,230 そして、私はめちゃくちゃ。 790 00:36:56,230 --> 00:36:57,394 どうなってるの? 791 00:36:57,394 --> 00:37:00,560 私たちがし始めることがある場所さて、ここに 私たちは、このコマンドにしていることを理解する 792 00:37:00,560 --> 00:37:02,810 ライン環境、この 環境だけテキスト。 793 00:37:02,810 --> 00:37:06,114 アイコンにはクリックしてはありません 今のフォルダのように。 794 00:37:06,114 --> 00:37:07,280 そして、少し前バックだと思います。 795 00:37:07,280 --> 00:37:10,740 どのフォルダに私は言った 私は自分のコードを保存したのか? 796 00:37:10,740 --> 00:37:11,657 だから、Dropboxフォルダ。 797 00:37:11,657 --> 00:37:12,989 何と呼ばれてきませんでした。 798 00:37:12,989 --> 00:37:14,530 しかし、それはDropboxの呼ばれるように起こる。 799 00:37:14,530 --> 00:37:18,380 だから私は、何とか上にダブルクリックする必要が そのDropboxフォルダを取得するために、 800 00:37:18,380 --> 00:37:21,657 そこに、私の時に取得 ハロー1.C呼ばれるコード。 801 00:37:21,657 --> 00:37:24,490 実際に、私が先に行くと、最小化してみましょう ただちょっとこのウィンドウ。 802 00:37:24,490 --> 00:37:27,560 ちょうどWindowsとMac OSのように、 Linuxでのフォルダがあります。 803 00:37:27,560 --> 00:37:29,410 CS50アプライアンス内のフォルダがあります。 804 00:37:29,410 --> 00:37:32,380 それはちょうど今、私たちが閉じ込めているだ このテキスト環境に自分自身。 805 00:37:32,380 --> 00:37:34,700 >> しかし、私は、クリックを倍増した場合 Dropboxの上で、そこに気付く 806 00:37:34,700 --> 00:37:37,210 私がコンパイルしたいファイルがある。 807 00:37:37,210 --> 00:37:41,430 しかし、私はこの黒と白を必要とする ターミナルウィンドウ、いわば。 808 00:37:41,430 --> 00:37:45,750 しかし、私が必要とするため、移動するには そのフォルダまたはディレクトリにコピーします。 809 00:37:45,750 --> 00:37:48,290 だから少し難解な、しかし あなたもこれに慣れるでしょう。 810 00:37:48,290 --> 00:37:50,430 >> リナックスの世界では、 これを再び作動される 811 00:37:50,430 --> 00:37:54,860 私たちはCS50の内部で実行しているシステム アプライアンスは、CDと呼ばれるコマンドがあります。 812 00:37:54,860 --> 00:37:58,310 どの私は、CD、スペース、Dropboxのを行うことができますことを意味します。 813 00:37:58,310 --> 00:37:59,900 CD、ディレクトリ変更。 814 00:37:59,900 --> 00:38:00,400 右。 815 00:38:00,400 --> 00:38:02,890 戻る日に人がいたとき コンピュータを発明し、操作する 816 00:38:02,890 --> 00:38:05,806 このようなシステムは、彼らがしたかった 可能な最も少ないキーストロークを入力します。 817 00:38:05,806 --> 00:38:08,760 だからと言って、最も簡単な方法 ディレクトリ変更は、CDであった。 818 00:38:08,760 --> 00:38:13,910 >> だから私は、CD、スペースDropboxがヒットした場合、 ここで何が変更されたかがわかります。 819 00:38:13,910 --> 00:38:16,480 括弧の内側 アプライアンスは、一種である 820 00:38:16,480 --> 00:38:19,360 私をhumoringとの 私はどこに思い出させ。 821 00:38:19,360 --> 00:38:21,480 だから、開いているフォルダをDropboxのである。 822 00:38:21,480 --> 00:38:24,950 私は今のlsと入力した場合 リスト、再び簡潔、 823 00:38:24,950 --> 00:38:27,540 人は望んでいないので、 一日のL-I-S-Tには入力します。 824 00:38:27,540 --> 00:38:29,300 そこで、彼らは代わりに、LSた。 825 00:38:29,300 --> 00:38:30,110 >> 入力してください。 826 00:38:30,110 --> 00:38:35,740 、ハロー1.C、私は二つのことを参照してください注意してください そして、この不可解な事、ソース1メートル。 827 00:38:35,740 --> 00:38:38,310 それは言っての私の方法です 週1月曜日のソースコード。 828 00:38:38,310 --> 00:38:42,020 それは私がからダウンロードしたフォルダです 私は以前の今日行わCS50のウェブサイト 829 00:38:42,020 --> 00:38:43,990 だけに入れて 事前にアプライアンス。 830 00:38:43,990 --> 00:38:47,550 >> しかし、今唯一の事のために私たち このプログラムを作っている気に。 831 00:38:47,550 --> 00:38:50,440 だから私は、ハロー-1は、入力してください入力したとき。 832 00:38:50,440 --> 00:38:51,320 ちくしょう。 833 00:38:51,320 --> 00:38:53,060 何かが間違っていた。 834 00:38:53,060 --> 00:38:54,580 それでは、これを離れていじめるましょう。 835 00:38:54,580 --> 00:38:58,489 そして、残念ながら、これはどこのものです。 最初は少しストレスの取得、 836 00:38:58,489 --> 00:39:00,280 少なくとも、あなたがしている場合 前にプログラムすることはありません。 837 00:39:00,280 --> 00:39:00,980 >> 信じられない! 838 00:39:00,980 --> 00:39:04,990 私は2つのラインプログラムを書き、 私は、エラーの4行を持っている。 839 00:39:04,990 --> 00:39:07,180 だからここに何が起こっているのか。 840 00:39:07,180 --> 00:39:11,370 まず第一に、常にスクロールバック アップおよび最初のエラーメッセージを見つけ、 841 00:39:11,370 --> 00:39:15,730 しばしば単にコンパイラので あなたと私は何をすべきかによって混乱してしまう。 842 00:39:15,730 --> 00:39:17,000 コンパイラはかなり馬鹿です。 843 00:39:17,000 --> 00:39:18,360 彼らは何をやる あなたが彼らに教えてください。 844 00:39:18,360 --> 00:39:21,484 あなたがそれらを混同している場合、彼らはただだ 種類の手を投げるつもり 845 00:39:21,484 --> 00:39:25,010 多分より多くのエラーメッセージを投げる より実際に関連しています。 846 00:39:25,010 --> 00:39:26,380 >> それでは、最初に見てみましょう。 847 00:39:26,380 --> 00:39:27,540 最初はスーパー不可解。 848 00:39:27,540 --> 00:39:31,050 しかし、通知は、ここでの名前だ 私は明らかにめちゃくちゃれるファイル。 849 00:39:31,050 --> 00:39:36,570 コロン5、コロン5はちょうど上の意味 第五の文字で5行目。 850 00:39:36,570 --> 00:39:39,760 だから文字の第5列、 エラー、可能ならば。 851 00:39:39,760 --> 00:39:41,870 宣言されていない識別子の文字列の使用。 852 00:39:41,870 --> 00:39:43,120 あなたは、標準的なnのことですか? 853 00:39:43,120 --> 00:39:44,850 >> いいえ、私は文字列を意味した。 854 00:39:44,850 --> 00:39:47,640 そして、それは一種のだ コピーと貼り付け 855 00:39:47,640 --> 00:39:50,700 私は本当に私を描画するために入力した 私はめちゃくちゃにどこに注目する。 856 00:39:50,700 --> 00:39:54,260 何らかの理由でCについてだから、 または少なくともコンパイラ 857 00:39:54,260 --> 00:39:56,470 単語列を理解していません。 858 00:39:56,470 --> 00:39:57,890 私たちはそれを作ったので、それはです。 859 00:39:57,890 --> 00:40:01,440 だから、stringは存在しません。 Cで、どういうCS50 860 00:40:01,440 --> 00:40:03,380 最初の数週間のために クラス唯一の、 861 00:40:03,380 --> 00:40:05,700 私たちはいくつかのトレーニングを提供している ホイールは、いわば。 862 00:40:05,700 --> 00:40:11,160 そして、私たちはこれらの補助輪を置く CS50.h.と呼ばれる特殊ファイルの内部 863 00:40:11,160 --> 00:40:14,970 >> だから、これは2つのファイルの秒です どうやらドット時間で終わる名前。 864 00:40:14,970 --> 00:40:16,300 の巻き戻してみましょう。 865 00:40:16,300 --> 00:40:19,360 のprintf文または関数です それは明らかに何かを印刷します 866 00:40:19,360 --> 00:40:20,580 画面に。 867 00:40:20,580 --> 00:40:23,470 しかし、あなたは私を見ていない 右のprintfを実装します。 868 00:40:23,470 --> 00:40:26,360 誰かが年前のprintfを実装しました。 869 00:40:26,360 --> 00:40:30,420 どのファイルでは、彼を賭けるだろう または彼女は、実装を置く 870 00:40:30,420 --> 00:40:34,270 printfのため、printfのためのコード? 871 00:40:34,270 --> 00:40:36,860 >> 標準I / O.hというファイルに。 872 00:40:36,860 --> 00:40:39,930 実際に、それはおそらくだ 二つのファイル、標準I / O.h、 873 00:40:39,930 --> 00:40:42,650 ヘッダーを表している ファイル、および標準I / O.c、 874 00:40:42,650 --> 00:40:44,060 そのCソースコードの略です。 875 00:40:44,060 --> 00:40:48,220 そこで彼または彼女は何年か前にそのまま流し 彼らはそのファイルに書いたコード 876 00:40:48,220 --> 00:40:51,240 その結果、私たちのような人 年後にそれを含めることができ、 877 00:40:51,240 --> 00:40:53,040 ので、私たちの独自のプログラムで、話す。 878 00:40:53,040 --> 00:40:56,320 >> そして実際、それは何ポンド記号だ 言葉が続くん含まれています。 879 00:40:56,320 --> 00:41:00,250 これは、ローカルハードドライブに見えますが、 、標準I / O.hというファイルを検索します 880 00:41:00,250 --> 00:41:03,840 した後、効果的にコピーと、 私自身のファイルの内側に貼り付けられます。 881 00:41:03,840 --> 00:41:07,210 だから今私のプログラムが知っている どのように画面に出力します。 882 00:41:07,210 --> 00:41:11,120 >> そのロジックによりそう 文字列が定義されている? 883 00:41:11,120 --> 00:41:12,260 >> 聴衆:CS50.h. 884 00:41:12,260 --> 00:41:13,290 >> DAVID J.マラン:CS50.h. 885 00:41:13,290 --> 00:41:15,540 そして実際、それは私たちですが、 コアスタッフは、行っている。 886 00:41:15,540 --> 00:41:19,590 私たちは、いくつかのデータ型を発明した、 ため、文字列のように、話す、 887 00:41:19,590 --> 00:41:22,370 ものに加えて、あなた int型のように、自由のために得る。 888 00:41:22,370 --> 00:41:26,010 そして、私たちは、charのような他の人が表示されます 文字といくつかのより多くのために。 889 00:41:26,010 --> 00:41:30,670 CS50.hの内側に明らかである 文字列の少なくともいくつかに言及。 890 00:41:30,670 --> 00:41:34,980 >> だから今私は先に行ってみよう とハロー-1を作る再実行します。 891 00:41:34,980 --> 00:41:37,100 私は再びズームインして私の指を渡ります。 892 00:41:37,100 --> 00:41:41,370 今1をしたことで 変更は、私はほとんどのものを修正しました。 893 00:41:41,370 --> 00:41:42,100 しかし、畜生。 894 00:41:42,100 --> 00:41:44,290 データ引数よりもパーセント。 895 00:41:44,290 --> 00:41:45,980 私は間違ってこの時間は何をした? 896 00:41:45,980 --> 00:41:47,420 >> だから、まだかなり不可解だ。 897 00:41:47,420 --> 00:41:51,560 しかし、このエラーはオンになっている 7行目と文字21。 898 00:41:51,560 --> 00:41:53,880 それでは、ここまで見て行きましょう。 899 00:41:53,880 --> 00:41:55,350 それはちょっと微妙だ。 900 00:41:55,350 --> 00:41:59,167 しかし、あなたは何を考えてみれば ここで基本的なアイデアがあり、 901 00:41:59,167 --> 00:42:00,500 おそらく私たちは、これを離れていじめることができます。 902 00:42:00,500 --> 00:42:02,300 >> だからのprintf関数の名前です。 903 00:42:02,300 --> 00:42:04,960 括弧は、これまで、ある ちょうど私達が周りに入れたもののような 904 00:42:04,960 --> 00:42:07,005 私たちが渡しているもの 関数への入力として。 905 00:42:07,005 --> 00:42:08,921 すべての権利、ちょうど 任意の人間の慣習。 906 00:42:08,921 --> 00:42:09,919 括弧を使用します。 907 00:42:09,919 --> 00:42:12,460 これらの括弧の内側 私たちは、二重引用符を入れてきた、 908 00:42:12,460 --> 00:42:14,810 してからのような文字列に "Hello World。" 909 00:42:14,810 --> 00:42:18,160 >> しかし、その先の例では非常に 簡単に私たちはスクラッチで見てました。 910 00:42:18,160 --> 00:42:22,590 そして、私たちは他に何パーセントdを持っていた これらの括弧の中にあった 911 00:42:22,590 --> 00:42:23,730 私は口頭で呼び出さこと? 912 00:42:23,730 --> 00:42:24,230 うん。 913 00:42:24,230 --> 00:42:28,166 >> 聴衆:だからそれはあなたが取っているものだ [聞き取れない]の中から[聞き取れない] 914 00:42:28,166 --> 00:42:30,200 何これらの[聞き取れない]? 915 00:42:30,200 --> 00:42:31,200 DAVID J.マラン:その通りです。 916 00:42:31,200 --> 00:42:32,700 そこでパーセントdを持っていた。 917 00:42:32,700 --> 00:42:36,620 しかし、私たちは近くにあった 引用符、カンマ、カウンター。 918 00:42:36,620 --> 00:42:37,120 右。 919 00:42:37,120 --> 00:42:40,680 私たちは、私たちが望むものを指定 プレースホルダとして行う。 920 00:42:40,680 --> 00:42:44,621 それでは、私はここでやろうとしてたんだけどある コンマ、あなたは私が入れて何をしたいですか? 921 00:42:44,621 --> 00:42:45,120 聴衆:S. 922 00:42:45,120 --> 00:42:46,828 DAVID J.マラン:S、 この場合の理由 923 00:42:46,828 --> 00:42:48,700 貯蔵容器の名前です。 924 00:42:48,700 --> 00:42:50,180 それは、ガラスのボウルの名前です。 925 00:42:50,180 --> 00:42:53,610 それがその中にカウンターになる前に一方 私たちが見て、簡単なスクラッチ例。 926 00:42:53,610 --> 00:42:56,630 だから今2をした 変更は、私はズームインしましょう 927 00:42:56,630 --> 00:42:59,800 とにもう一度試す このプログラムをコンパイルします。 928 00:42:59,800 --> 00:43:01,596 >> 今、私はその不可解な行を参照してください。 929 00:43:01,596 --> 00:43:03,470 しかし、それは実際にだ コンパイラの名前。 930 00:43:03,470 --> 00:43:04,886 打ち鳴らすは、コンパイラの名前です。 931 00:43:04,886 --> 00:43:07,100 私だけを保存していることを確認 これまでの頭痛 932 00:43:07,100 --> 00:43:09,830 その長い狂気のコマンドを入力してアウト。 933 00:43:09,830 --> 00:43:14,900 だから今、私はドットハロー-1を大幅に削減しなければ、 私は「こんにちは、デービッド」を参照してください。必要があります 934 00:43:14,900 --> 00:43:16,450 >> しかし、右、プリティがっかり? 935 00:43:16,450 --> 00:43:18,158 私たちは行っている可能性が このロットより簡単に 936 00:43:18,158 --> 00:43:20,940 変数の話をせずに CS50.hとそのすべてと。 937 00:43:20,940 --> 00:43:23,080 それでは、それにしましょう もう少し面白い。 938 00:43:23,080 --> 00:43:31,010 >> CS50.hに加えて、 文字列のようなものを持つ 939 00:43:31,010 --> 00:43:34,550 宣言され、CS50ライブラリ また、いくつかの機能を備えています。 940 00:43:34,550 --> 00:43:38,520 だから様年前、誰かが書いた printfや標準I / O.hに入れて 941 00:43:38,520 --> 00:43:39,530 といくつかの他のファイル。 942 00:43:39,530 --> 00:43:44,010 >> 私たちは、CS50のスタッフは、関数を書いた GETCHAR、getDoubleは、getFloatは、と呼ばれる 943 00:43:44,010 --> 00:43:47,610 GetIntで、GetLongLong、のGetString、 私たちは、ファイルの中にあるものを置く 944 00:43:47,610 --> 00:43:49,890 CS50.hとCS50.c.呼ばれる 945 00:43:49,890 --> 00:43:51,880 そして、私たちは内部にそれらを置く CS50アプライアンスの。 946 00:43:51,880 --> 00:43:53,880 そして、人々がすることもできます 彼らは場合は、オンラインそれらをダウンロード 947 00:43:53,880 --> 00:43:55,880 彼らの上に置きたい 自分のコンピュータにも。 948 00:43:55,880 --> 00:44:00,880 私たちが作成したと言うことである ユーザからの入力を取得する機能。 949 00:44:00,880 --> 00:44:02,930 私は何のすべてを知らない これらのデータの種類がある。 950 00:44:02,930 --> 00:44:06,490 GetIntでは次のように、一種のは簡単である ユーザから何とか整数を取得します。 951 00:44:06,490 --> 00:44:09,980 そしてのGetStringは、getのように思われる 単語やユーザーからの文章。 952 00:44:09,980 --> 00:44:11,770 >> それでは、そのに焦点を当ててみましょう。 953 00:44:11,770 --> 00:44:14,710 そして、私はに戻って行くつもりです アプライアンスと私が先に行くつもりです 954 00:44:14,710 --> 00:44:20,790 そして、このファイルを保存し、のは呼ぶことにしましょう 私の第二のバージョンとして、それはハロー2.C。 955 00:44:20,790 --> 00:44:23,030 そしての変更のカップルを作ってみよう。 956 00:44:23,030 --> 00:44:25,800 >> この時間の代わりに、 ハードコーディングデビッド、その 957 00:44:25,800 --> 00:44:29,120 信じられないほど一貫して行い しかしがっかりプログラム、 958 00:44:29,120 --> 00:44:32,640 私の代わりにのGetStringを何をすれば? 959 00:44:32,640 --> 00:44:35,660 今のGetStringに気付く 開き括弧があり、 960 00:44:35,660 --> 00:44:38,500 括弧を閉じた、ので、 それはすべての入力を必要としません。 961 00:44:38,500 --> 00:44:40,850 それはちょうど取りに行くために起こっている ユーザーからの文字列。 962 00:44:40,850 --> 00:44:42,460 >> そして今、他の構文の言葉。 963 00:44:42,460 --> 00:44:45,439 セミコロンだけのコード行を終了します。 964 00:44:45,439 --> 00:44:46,730 あなたはどこでもそれらを必要としません。 965 00:44:46,730 --> 00:44:48,896 しかし、それはちょうど私が私を意味 このコード行で行わ。 966 00:44:48,896 --> 00:44:51,080 私は別の上に移動しましょう ステートメントまたは関数。 967 00:44:51,080 --> 00:44:53,010 文字列変数を宣言しています。 968 00:44:53,010 --> 00:44:55,920 文字列が言うようなものです。 私にボウルをしてください与える。 969 00:44:55,920 --> 00:44:57,940 そして、私はそれに文字列を入れてみましょう。 970 00:44:57,940 --> 00:44:59,430 >> そして今、等号。 971 00:44:59,430 --> 00:45:03,510 等号は何ですか と基本的に同等? 972 00:45:03,510 --> 00:45:04,500 >> 聴衆:割り当てます。 973 00:45:04,500 --> 00:45:06,190 >> DAVID J.マラン:うん、値を割り当てる。 974 00:45:06,190 --> 00:45:09,872 もしそうなら私は、例えば、コール この関数のGetString、 975 00:45:09,872 --> 00:45:12,830 私たちはだ瞬間に表示されます 文字列をユーザーに要求する予定。 976 00:45:12,830 --> 00:45:17,810 これは私が次に書くせるようなものである D--V-I-dの紙の上。 977 00:45:17,810 --> 00:45:21,060 そして、私は、文字列を言うとき sは、のGetStringに等しい 978 00:45:21,060 --> 00:45:24,140 等しいは本当に意味するものではありません Cプログラミング等しい。 979 00:45:24,140 --> 00:45:27,880 これは、右から割り当てることを意味 左側に左側。 980 00:45:27,880 --> 00:45:29,510 >> だから私は、文字列を得ている。 981 00:45:29,510 --> 00:45:32,785 と等号手段はそれを置く Sと呼ばれる貯蔵容器内。 982 00:45:32,785 --> 00:45:36,730 そして、その後にこれを渡す 実際にそのことを行うにはprintfの。 983 00:45:36,730 --> 00:45:39,790 >> したがって、最終結果が起こっている 少し違って見えるように。 984 00:45:39,790 --> 00:45:40,840 それではハロー-2を作るやってみましょう。 985 00:45:40,840 --> 00:45:43,940 986 00:45:43,940 --> 00:45:45,260 いずれかが動作する可能性があります。 987 00:45:45,260 --> 00:45:46,450 あなたが一緒にフォローしている。 988 00:45:46,450 --> 00:45:47,940 ハロー2が働いてください。 989 00:45:47,940 --> 00:45:52,640 ドットはハロー2を大幅に削減、入力してください。 990 00:45:52,640 --> 00:45:54,620 >> 私は無限を持っているように見える ループか何か。 991 00:45:54,620 --> 00:45:55,453 何も起こっていないだ。 992 00:45:55,453 --> 00:45:56,134 なぜ? 993 00:45:56,134 --> 00:45:57,805 >> 聴衆:それは無限ループを作っている。 994 00:45:57,805 --> 00:45:59,430 DAVID J.マラン:それは無限ループです。 995 00:45:59,430 --> 00:46:02,710 それは一種のに私を待っています 実際にいくつかの入力とそれを提供する。 996 00:46:02,710 --> 00:46:05,800 だから私が先に行くと入力してみましょう デイヴィッドに、Enterを押します。 997 00:46:05,800 --> 00:46:07,230 そして今、それは「こんにちは、デビッド "と述べている。 998 00:46:07,230 --> 00:46:09,040 私は再びそれを実行した場合。 999 00:46:09,040 --> 00:46:11,530 それではロブ、入力しましょう​​「こんにちは、ロブを。 " 1000 00:46:11,530 --> 00:46:13,900 >> さて、これは最悪です これまでのユーザーインターフェイス。 1001 00:46:13,900 --> 00:46:16,110 ユーザーの明らかに 何をすべきか知っているはず。 1002 00:46:16,110 --> 00:46:17,120 しかし、どんなに。 1003 00:46:17,120 --> 00:46:19,570 これらの同じ建物を使用して、 ちょうどスクラッチのようブロック、 1004 00:46:19,570 --> 00:46:24,980 私たちはその問題を解決し、言うことができる お願いお名前のようなもの、コロン、 1005 00:46:24,980 --> 00:46:27,820 スペース、引用符、クローズクローズ 括弧、セミコロン。 1006 00:46:27,820 --> 00:46:30,680 だから、多くの再び 構文で愚か。 1007 00:46:30,680 --> 00:46:34,040 >> しかし、私はちょうど追加した気づく この1以上のパズルのピース 1008 00:46:34,040 --> 00:46:35,280 この1つ以上の。 1009 00:46:35,280 --> 00:46:38,870 だから今、私はこれを再実行した場合、ハロー2、入力してください。 1010 00:46:38,870 --> 00:46:41,180 ちょっと待ってください。 1011 00:46:41,180 --> 00:46:41,830 何が気に入らないのだ。 1012 00:46:41,830 --> 00:46:43,570 これは、異なる方法でいずれも動作してないです。 1013 00:46:43,570 --> 00:46:44,200 うん。 1014 00:46:44,200 --> 00:46:46,010 >> 聴衆:あなたは再びmakeを実行しませんでした。 1015 00:46:46,010 --> 00:46:47,968 >> DAVID J.マラン:私はしませんでした 右、再びmakeを実行。 1016 00:46:47,968 --> 00:46:49,430 だから、私は、ソースコードを変更しました。 1017 00:46:49,430 --> 00:46:50,638 しかし、再び、そのフローがあります。 1018 00:46:50,638 --> 00:46:54,530 コンパイラを通じてソースコードは提供します 新しいオブジェクト·コード、または0と1あなた。 1019 00:46:54,530 --> 00:47:00,209 だから私は、実際に必要とする 再放送のhello-2が入力してください。 1020 00:47:00,209 --> 00:47:01,750 [OK]を、何かが起こっているようだ。 1021 00:47:01,750 --> 00:47:04,220 ドットはハロー2を大幅に削減。 1022 00:47:04,220 --> 00:47:05,390 あなたのお名前お願いします。 1023 00:47:05,390 --> 00:47:09,990 そして今、明確にするためには、なぜです 同じ行にカーソル? 1024 00:47:09,990 --> 00:47:10,490 その通り。 1025 00:47:10,490 --> 00:47:13,020 私は、バックスラッシュを入れていない nはここまで私のコード内。 1026 00:47:13,020 --> 00:47:16,110 だから今、私は書くことができます 祈るようなものが、入力してください。 1027 00:47:16,110 --> 00:47:18,710 私は再びそれを実行して入力することができます ゲイブのようなもの、を入力し、 1028 00:47:18,710 --> 00:47:22,250 私たちは別のプログラムを入手 何度も何度も何度も。 1029 00:47:22,250 --> 00:47:28,940 >> 今、最終的に私たちは必要になるだろう いくつかの異なる機能を使用します。 1030 00:47:28,940 --> 00:47:32,860 私たちは最終的にいくつかを紹介する必要がある 条件付きで物事を行うための条件。 1031 00:47:32,860 --> 00:47:35,550 たぶん私たちが行うことができますループを 物事何度も何度も。 1032 00:47:35,550 --> 00:47:38,220 >> 多分それは、私たちの場合いいだろう 私たち自身の関数を実装することができ、 1033 00:47:38,220 --> 00:47:41,355 のような私たちは私たち自身を実装することができ printfのかのGetStringの私たち自身のバージョン 1034 00:47:41,355 --> 00:47:45,870 そしてGetFlow、最終的にさえ理由 このコマンドライン環境を使用して、 1035 00:47:45,870 --> 00:47:49,780 私たちも、ほとんどを行うことができます 物事の視覚的に興味深い。 1036 00:47:49,780 --> 00:47:51,950 >> 実際の結論に私はこれを実行しましょう​​。 1037 00:47:51,950 --> 00:47:54,020 私が先に行くつもりです そしてこれらのウィンドウを閉じます 1038 00:47:54,020 --> 00:47:57,400 ここで、このアイコンを開いて、 これだけの大きい 1039 00:47:57,400 --> 00:48:00,020 それのバージョンが埋め込ま ターミナルウィンドウ。 1040 00:48:00,020 --> 00:48:02,329 だから、Geditのだけではなく持って 私のコードのための場所、 1041 00:48:02,329 --> 00:48:05,620 だけでなく、ターミナルウィンドウに建てられ、 私は実行することができ、黒と白の窓 1042 00:48:05,620 --> 00:48:06,230 コマンド。 1043 00:48:06,230 --> 00:48:08,600 >> 私はちょうど開くために起こった これの大きいバージョン。 1044 00:48:08,600 --> 00:48:11,170 そして今、私は入るつもりです 私はすでにしたフォルダ 1045 00:48:11,170 --> 00:48:13,150 コー​​スのウェブサイトに事前に置く。 1046 00:48:13,150 --> 00:48:16,720 そして、私は先に行くつもりだと thadgavin.cというファイルを開いて、 1047 00:48:16,720 --> 00:48:18,710 これは、他の誰かによって書かれました。 1048 00:48:18,710 --> 00:48:21,220 >> そして、私たちはこれを見ても、 これは、コードのようなものではありません 1049 00:48:21,220 --> 00:48:24,370 私たちは以来書き込みされます このコードの目的 1050 00:48:24,370 --> 00:48:28,450 美しいを書くことだった 彼または彼女ができることを、コードを見て、 1051 00:48:28,450 --> 00:48:31,290 無関係にあるか否かの 別の人間が今までできた 1052 00:48:31,290 --> 00:48:33,660 このコードを理解しています。 1053 00:48:33,660 --> 00:48:37,050 >> 実際、毎年何あります 、難読化されたC言語のコンテストと呼ばれる 1054 00:48:37,050 --> 00:48:39,570 書き込み本当のオタクのためにある 誰も読むことができ、コード、 1055 00:48:39,570 --> 00:48:42,050 それはどちらか何かを 本当に簡単か本当に素晴らしい。 1056 00:48:42,050 --> 00:48:43,890 そして、私たちは私たちがしようと思いました この表情で締結する 1057 00:48:43,890 --> 00:48:48,300 かなり驚くべきことだ何かで あなたは前に一度見たことがあります。 1058 00:48:48,300 --> 00:48:52,650 しかし、私たちはこれを終了します ノート、ドットスラッシュ、thadgavin。 1059 00:48:52,650 --> 00:48:53,860 次いで、これを待っていたものです。 1060 00:48:53,860 --> 00:48:57,140 1061 00:48:57,140 --> 00:48:58,500 >> つまり、CS50はこれで終わりです。 1062 00:48:58,500 --> 00:48:59,935 私たちは、水曜日にお会いします。 1063 00:48:59,935 --> 00:49:04,284 1064 00:49:04,284 --> 00:49:10,016 >> [音楽再生] 1065 00:49:10,016 --> 00:53:31,883