1 00:00:00,000 --> 00:00:12,410 >> [音楽再生] 2 00:00:12,410 --> 00:00:12,830 >> DAVIDマラン:すべての権利。 3 00:00:12,830 --> 00:00:13,370 お帰りなさい。 4 00:00:13,370 --> 00:00:16,510 これは、CS50であり、これは 週に一つは、続く。 5 00:00:16,510 --> 00:00:20,050 だから私たちが渡してきた理由の一つ のような技術の周り 6 00:00:20,050 --> 00:00:24,120 グーグルグラスは彼らが来るということです APIとして知られている何か、 7 00:00:24,120 --> 00:00:25,980 アプリケーション·プログラミング·インターフェース。 8 00:00:25,980 --> 00:00:28,830 そして、何この手段が持つということである 右のファイルと権利を持つ 9 00:00:28,830 --> 00:00:32,850 マニュアルには、あなたが実際に書くことができます これらのようにもデバイスのためのソフトウェア。 10 00:00:32,850 --> 00:00:36,200 >> そして、我々に向かって心に持っているもの プロジェクト場合、学期の終わりには、ある 11 00:00:36,200 --> 00:00:39,310 Googleのガラスは、言うかもしれませんが関与 アピール、私たちは、私たちが何ができるかわかります 12 00:00:39,310 --> 00:00:42,220 いくつかにあなたをフックの観点 代替品のハードウェアだけでなく、 13 00:00:42,220 --> 00:00:46,500 公的にアクセス可能なAPIにはことができるように 実際にソフトウェアの作成を開始 14 00:00:46,500 --> 00:00:48,630 それは、同じGoogleのガラス上で実行されます。 15 00:00:48,630 --> 00:00:51,710 >> 私たちが演奏してきたこと、他の装置 我々はあるかもしれないと思った後半のと 16 00:00:51,710 --> 00:00:53,910 学期の終わりに楽しいです ここで、この小さなもの。 17 00:00:53,910 --> 00:00:56,860 これは、リープモーションと呼ばれ、あなたがいるものです 参照しようとしてすることは技術的に 18 00:00:56,860 --> 00:01:00,280 デバイス用の広告、それ この特定のものに話すん 19 00:01:00,280 --> 00:01:01,240 装置が可能である。 20 00:01:01,240 --> 00:01:05,550 そしてそれは、あまりにも、経由してAPIが付属しています あなたは、ソフトウェアを書き込むことができる 21 00:01:05,550 --> 00:01:10,545 な方法で自分のコンピュータを制御 かなりここでこの1分の映画が好きです。 22 00:01:10,545 --> 00:01:12,070 >> [ビデオの再生] 23 00:01:12,070 --> 00:02:08,002 24 00:02:08,002 --> 00:02:08,590 >> [ENDビデオ再生] 25 00:02:08,590 --> 00:02:11,190 >> だから今は、このデバイスははどうなる 少しUSBとして実施すること 26 00:02:11,190 --> 00:02:14,290 あなたに差し込むことができるコネクタ コンピュータが、私は驚かないだろう 27 00:02:14,290 --> 00:02:17,930 長い間、我々はこれらの種類のを持って前にあれば パソコンの次のバッチで技術 28 00:02:17,930 --> 00:02:20,510 とMacにはことができるように、確かに、 それとの対話に 29 00:02:20,510 --> 00:02:21,650 そのようなやり方。 30 00:02:21,650 --> 00:02:24,250 実際に、私は、あまりにも、私がしたいのかを考えている 私は少しデモを引き上げ 31 00:02:24,250 --> 00:02:25,860 このソフトウェアに付属のプログラム。 32 00:02:25,860 --> 00:02:28,700 だから私は少しセンサーを入れてきた 私のラップトップの正面にあります。 33 00:02:28,700 --> 00:02:32,420 >> そして、あなたが見ることができるように、それが既に実現 私の手がそこにあること 34 00:02:32,420 --> 00:02:33,400 それを制御する。 35 00:02:33,400 --> 00:02:37,900 そして、このすべてのアプリケーションがされません このようなトントン拍子ささいなこと。 36 00:02:37,900 --> 00:02:41,080 しかし、あなたは、確かに、それを見ることができます 私はそこに5本の指を持っている。 37 00:02:41,080 --> 00:02:44,270 我々はそれがすべての10を行うために得ることができる場合は、 あなたはきちんとしたピアノを想像することができます 38 00:02:44,270 --> 00:02:45,390 アプリケーションなど。 39 00:02:45,390 --> 00:02:47,820 あなたは、クラスの後に出てくるしたいのであれば そのように、今日と遊び 40 00:02:47,820 --> 00:02:49,720 さて、あなたはに歓迎され。 41 00:02:49,720 --> 00:02:52,930 学期の終わりに向けて、その上で非常に多くの。 42 00:02:52,930 --> 00:02:54,420 >> だから、行政のカップル 発表。 43 00:02:54,420 --> 00:02:58,690 一つは、今週の金曜日でセクションを行う cs60.net/sectionで正午。 44 00:02:58,690 --> 00:03:01,260 そのURLは、コースの上にある ホームページにも。 45 00:03:01,260 --> 00:03:04,010 その間には、しかし、スーパーセクション 今週の日曜日デビューする。 46 00:03:04,010 --> 00:03:07,800 スーパーセクションは、一回限りのものです それは私たちに動作するようにいくつかの時間がかかるため 47 00:03:07,800 --> 00:03:09,470 どのセクションで、どこで誰がだから。 48 00:03:09,470 --> 00:03:12,280 >> 今度の日曜日だから、1があるだろう それらの少ない快適のためのセクション、 49 00:03:12,280 --> 00:03:14,040 それらのために一つのセクション もっと快適に。 50 00:03:14,040 --> 00:03:16,110 そして、あなたのものは、どこかで の間に行くことを歓迎します 51 00:03:16,110 --> 00:03:17,850 いずれかまたは両方またはどちら。 52 00:03:17,850 --> 00:03:19,150 これらの両方が撮影される。 53 00:03:19,150 --> 00:03:22,740 彼らはより大きな講堂になるでしょう セクションでは、通常はインチだろう 54 00:03:22,740 --> 00:03:26,110 しかし、ここでの目標は、を身につけることです 問題といくつかの快適さは、1を設定 55 00:03:26,110 --> 00:03:29,910 CS50アプライアンスとC、A、これに あなたがあなたを見つける前であっても週末、 56 00:03:29,910 --> 00:03:31,050 正式なセクションの割り当て。 57 00:03:31,050 --> 00:03:34,700 つまり、あなたのTFとあなた小さく会う 約におけるsectionmatesのグループ 58 00:03:34,700 --> 00:03:36,350 週の時間。 59 00:03:36,350 --> 00:03:38,200 >> 営業時間、その間、 が起こってきた。 60 00:03:38,200 --> 00:03:41,020 または今夜それらを活用して行う ご希望の場合は明日の夜。 61 00:03:41,020 --> 00:03:43,460 問題セット0が金曜日に起因している。 62 00:03:43,460 --> 00:03:46,680 これは後でより日です 木曜日定期的な。 63 00:03:46,680 --> 00:03:50,410 しかし、問題のセット1を使用すれば、表示されます それはいくつかのウォームアップが含まれていること 64 00:03:50,410 --> 00:03:52,770 あなた自身と演習 あなたを拡張することができます 65 00:03:52,770 --> 00:03:54,660 金曜日の木曜日締め切り。 66 00:03:54,660 --> 00:03:58,410 問題セット1は、一方、デビューする もちろんのウェブサイトこれが来るで 67 00:03:58,410 --> 00:04:02,000 金曜日には、と丸くしたい場合 それは私は遅い時間に一回行ったように 68 00:04:02,000 --> 00:04:04,370 お部屋で金曜の夜。 69 00:04:04,370 --> 00:04:07,660 >> だからcs50.net/applianceは場所です あなたはCS50アプライアンスを得ることができます 70 00:04:07,660 --> 00:04:09,040 我々は月曜日に使用し始めた。 71 00:04:09,040 --> 00:04:10,140 今日はもう少しそれを使います。 72 00:04:10,140 --> 00:04:14,040 しかし、残りの部分は、問題は1を設定することを保証 仕様では、見ていきます 73 00:04:14,040 --> 00:04:16,490 あなたが必要とする正確にステップ それを起動して実行する。 74 00:04:16,490 --> 00:04:22,120 だから、前のことをやって心配しないでください PSET 1あなたではなくではないと思います。 75 00:04:22,120 --> 00:04:22,660 >> わかりました。 76 00:04:22,660 --> 00:04:27,180 だから私たちは、ソースコードを月曜日に見て しかし新しいのコンテキストで 77 00:04:27,180 --> 00:04:30,895 プログラミング言語、すなわちC.およびC、 スクラッチとは違って、グラフィカルではありません。 78 00:04:30,895 --> 00:04:32,270 それは、作品をパズルはない。 79 00:04:32,270 --> 00:04:34,450 これは、より多くの英語のような構文です。 80 00:04:34,450 --> 00:04:37,140 と必要な手順のカップルがあり 実際に書き込み、実行中 81 00:04:37,140 --> 00:04:41,650 なぜならソース以外にC言語でプログラム、 このようなコードは、あなたが何かを必要とする 82 00:04:41,650 --> 00:04:42,890 コンパイラと呼ばれる。 83 00:04:42,890 --> 00:04:46,682 と素人の観点から、どのような コンパイラは、私たちのためにするのでしょうか? 84 00:04:46,682 --> 00:04:47,650 うん。 85 00:04:47,650 --> 00:04:51,040 >> 学生:それはコードを変換 あなたには、0と1に書き込む。 86 00:04:51,040 --> 00:04:51,151 >> DAVIDマラン:良い。 87 00:04:51,151 --> 00:04:53,580 だから、コードを変換する 私たちは、0と1に書き込む。 88 00:04:53,580 --> 00:04:57,730 それは、いわゆるソースコードに変換 オブジェクトコード、見えるそのうちの後者 89 00:04:57,730 --> 00:04:59,140 このような小さなもの。 90 00:04:59,140 --> 00:05:02,860 そしてそれはあなたのCPUの内部頭脳だ お使いのコンピュータ、理由の 91 00:05:02,860 --> 00:05:06,280 これらのコンピュータを作成した人々、 知っているこれらの配列 92 00:05:06,280 --> 00:05:07,460 0と1の平均値。 93 00:05:07,460 --> 00:05:08,640 >> 多分それは、印刷を意味している。 94 00:05:08,640 --> 00:05:10,265 多分それは追加を意味します。 95 00:05:10,265 --> 00:05:11,610 多分それは減算を意味します。 96 00:05:11,610 --> 00:05:13,350 多分それは、グラフィックを表示することを意味します。 97 00:05:13,350 --> 00:05:16,870 ビットの定義済みのパターンがあります 世界が意味することを決定したことを 98 00:05:16,870 --> 00:05:17,700 特定の物事。 99 00:05:17,700 --> 00:05:20,760 しかし、このコースで、ほとんどの部分は、 私たちは、より高いレベルでうまくいく、と 100 00:05:20,760 --> 00:05:24,180 付与されたために我々はそこに存在していることをみましょう することができますコンパイラのようなもの 101 00:05:24,180 --> 00:05:27,670 私たちのソースコードを機能させる ように我々は意図。 102 00:05:27,670 --> 00:05:31,660 >> 我々は先週初めて書いたプログラムでは、そう そしてそのようにし、ポートに始まった 103 00:05:31,660 --> 00:05:33,920 Cこの過去に、話す 月曜日は、これだった。 104 00:05:33,920 --> 00:05:35,700 グリーンフラッグがクリックすると、挨拶。 105 00:05:35,700 --> 00:05:37,430 これは、もちろん、だっ スクラッチで書かれた。 106 00:05:37,430 --> 00:05:40,710 と私は主張している同等の C言語でプログラムが少し見えた 107 00:05:40,710 --> 00:05:41,520 このような何か。 108 00:05:41,520 --> 00:05:45,050 >> だから私は、我々は最初のものです、で何だろうと思っていたのか 最初は、見えるものは別にいじめてみましょう 109 00:05:45,050 --> 00:05:48,790 かなり難解なように確かに一見、 構文、しかし、あなたは気づいてから始めましょう 110 00:05:48,790 --> 00:05:50,160 非常に迅速にパターン。 111 00:05:50,160 --> 00:05:53,770 私たちが今日もやることは提供することです あなたのいくつかのためのメンタルモデルと 112 00:05:53,770 --> 00:05:57,280 標準的な、いくつかの標準的な構文 プログラミングした。 113 00:05:57,280 --> 00:06:00,420 そして、我々は実際に我々の手を取得します 同様にいくつかの例で汚れ。 114 00:06:00,420 --> 00:06:04,140 >> だから、あなたのそれらのためのより快適な、 次のその今週実現し、 115 00:06:04,140 --> 00:06:05,940 今週は非常によく見直しの少しかもしれません。 116 00:06:05,940 --> 00:06:08,810 しかし、特にハッカー版 問題セット1に出る 117 00:06:08,810 --> 00:06:12,330 金曜日にはもちろんのウェブサイトは、私は思います ユーザが入力さえもあなたはそれを見つけることができます 118 00:06:12,330 --> 00:06:15,390 来週か2つ、上にいくつかの空白 あなたは今まで以上取得することから始めましょう 119 00:06:15,390 --> 00:06:18,410 挑戦と遭遇 新しいと新しいもの。 120 00:06:18,410 --> 00:06:21,310 >> だからみましょう離れて、このプログラムをいじめる 一度に数行。 121 00:06:21,310 --> 00:06:24,140 一番上に、我々は何がある 技術的に呼ばれる 122 00:06:24,140 --> 00:06:25,950 プリプロセッサディレクティブ。 123 00:06:25,950 --> 00:06:30,510 これはちょうど言うコードの行です ファイルの内容を含めるには、 124 00:06:30,510 --> 00:06:35,080 - 標準のI / N、標準入力と呼ばれる または、申し訳ありませんが、標準I / O、標準 125 00:06:35,080 --> 00:06:38,670 入力/出力、。H、内部 私自身のプログラムの。 126 00:06:38,670 --> 00:06:41,670 >> だから、他の言葉で、私はこれを書いた場合 のような単純なテキストエディタを使用してプログラム 127 00:06:41,670 --> 00:06:45,260 geditの、より簡単な同等 Microsoft Wordのような、何か 128 00:06:45,260 --> 00:06:50,970 命令は、#stdio.hのを含んで、ちょうどです コンパイラに伝えるつもり、つかむ 129 00:06:50,970 --> 00:06:56,080 そのほかのファイルの内容は、stdio.hに、 そしてここに貼り付けます。 130 00:06:56,080 --> 00:06:57,090 >> さて、なぜ私は気にしますか? 131 00:06:57,090 --> 00:07:01,850 我々は何を主張したのは、このファイルの中にある 保存されているstdio.hに、呼ばれる 132 00:07:01,850 --> 00:07:05,490 どこかに私のハードドライブ上、またはこれに 場合、どこかCS50アプライアンスで? 133 00:07:05,490 --> 00:07:06,635 他の誰かが私のためにそこにそれを置く。 134 00:07:06,635 --> 00:07:09,910 しかし、それには何ですか? 135 00:07:09,910 --> 00:07:13,020 >> ええ、そう、それはの宣言だ この関数は、printf関数と呼ばれる。 136 00:07:13,020 --> 00:07:17,400 だから、printf関数のことを想起 ディスプレイの単語や文字や 137 00:07:17,400 --> 00:07:20,160 私の入札の画面上の数字。 138 00:07:20,160 --> 00:07:21,220 しかし、私はそれを書いていない。 139 00:07:21,220 --> 00:07:22,230 CS50はそれを書いていない。 140 00:07:22,230 --> 00:07:26,990 誰かが数年前にそれを書いた、そして、彼ら 本質的に私達にそれのためのレシピを与えた 141 00:07:26,990 --> 00:07:29,110 stdio.hに呼ばれるファイルに記録します。 142 00:07:29,110 --> 00:07:33,240 だから、最初の行は、ちょうど私がアクセスすることができます その誰か機能へ 143 00:07:33,240 --> 00:07:36,500 の間で、数年前に書いた これはprintfのです。 144 00:07:36,500 --> 00:07:39,450 >> さて、次の行で私を振っするつもりです 手元に、少なくとも来週まで。 145 00:07:39,450 --> 00:07:43,620 しかし、今のところ、(ボイド)int型の主であることを知っている 本質的にこ​​れと同等の 146 00:07:43,620 --> 00:07:46,310 黄色のパズルピース時 緑の旗はクリックしました。 147 00:07:46,310 --> 00:07:49,510 世界は、数年前に、決めた場合 あなたは、プログラムを書いている 148 00:07:49,510 --> 00:07:53,150 Cと呼ばれる言語では、あなたが開始 ラインとプログラム 149 00:07:53,150 --> 00:07:54,410 それはそのように見えます。 150 00:07:54,410 --> 00:07:57,650 ちょうど一週間の時間について、それは作ってあげる 感覚何int型は無効とは何か、である。 151 00:07:57,650 --> 00:08:00,840 しかし、今のために、ただそれを考える この黄色のパズルのピースのように。 152 00:08:00,840 --> 00:08:04,550 >> さて次は、我々は中括弧が続いている 別の近い中括弧によって、 153 00:08:04,550 --> 00:08:05,240 いわば。 154 00:08:05,240 --> 00:08:07,430 そして、私たちは、これらの全体が表示されます C言語でのプログラムと同様に、 155 00:08:07,430 --> 00:08:08,930 JavaScriptとPHP。 156 00:08:08,930 --> 00:08:11,345 そして、これらは単にカプセル化 コー​​ドの関連行。 157 00:08:11,345 --> 00:08:14,600 本質的にオープン中括弧 と言い、ここでいくつかのコードが付属しています。 158 00:08:14,600 --> 00:08:17,590 とある閉じ中括弧、 ただ、他の方向に傾斜 159 00:08:17,590 --> 00:08:19,920 のためのそれの手段、 関連するコード。 160 00:08:19,920 --> 00:08:22,970 >> したがって、この最初のジューシーな行 このプログラムは、printf関数、最後です 161 00:08:22,970 --> 00:08:25,080 引用 - 引用終わり、こんにちは世界。 162 00:08:25,080 --> 00:08:30,670 そして、私は事の間で呼ばれる 何前回符? 163 00:08:30,670 --> 00:08:31,285 だから、文字列です。 164 00:08:31,285 --> 00:08:35,309 と文字列は単なる技術屋です のシーケンスのための用語 165 00:08:35,309 --> 00:08:37,169 文字、単語、フレーズ。 166 00:08:37,169 --> 00:08:39,380 さえ一文字でし 二重引用符で囲む。 167 00:08:39,380 --> 00:08:41,840 しかし、それはゼロの系列だ 以上の文字。 168 00:08:41,840 --> 00:08:43,650 >> バックスラッシュnを、しかし、見える 少し奇妙。 169 00:08:43,650 --> 00:08:46,290 しかし、それは単に何かを意味し コンピュータに簡単。 170 00:08:46,290 --> 00:08:48,060 バックスラッシュnは何ですか? 171 00:08:48,060 --> 00:08:48,570 新しいライン。 172 00:08:48,570 --> 00:08:52,490 だから、それはただの特別なシーケンスだ 世界が決めたことを文字 173 00:08:52,490 --> 00:08:56,880 手段は、すぐそこに改行を入れて コンパイラは、実際に得られますので、 174 00:08:56,880 --> 00:09:02,280 混乱して、通常は、あなたであれば、非常に 当然のことですが、間違って、単に 175 00:09:02,280 --> 00:09:04,570 入れてEnterを押すと開始 あなたのコード内の新しい行。 176 00:09:04,570 --> 00:09:07,150 あなたは、もう少しする必要がある バックスラッシュnの明示。 177 00:09:07,150 --> 00:09:10,540 >> そして我々はそのような他のいくつかがあるがわかります 特殊文字のパターン。 178 00:09:10,540 --> 00:09:14,340 例えば、あなたがあなたを聞かせしたい場合 、コーナーケースにさまよう心 179 00:09:14,340 --> 00:09:18,080 私は印刷したいと仮定し ための画面上の二重引用符 180 00:09:18,080 --> 00:09:21,840 何らかの理由で、それがあるように思えるでしょう 少し問題が、正しいかも? 181 00:09:21,840 --> 00:09:24,990 ので、私は二重引用符を置く場合 何のための "こんにちは、世界"の真ん中 182 00:09:24,990 --> 00:09:30,120 理由は、なぜそれが見えるん 潜在的に問題? 183 00:09:30,120 --> 00:09:32,180 これは、文字列を分割します。 184 00:09:32,180 --> 00:09:34,700 >> コンパイラはただのプログラムです。 185 00:09:34,700 --> 00:09:37,210 コンパイラのようなプログラムは、ちょうど起こっている 下部にコードトップを読み取るため、 186 00:09:37,210 --> 00:09:37,990 左から右へ。 187 00:09:37,990 --> 00:09:41,850 その代わりに3つの二重引用符を見ている場合 2のために、それは知っていることはないだろう 188 00:09:41,850 --> 00:09:45,210 あなたは左側にそのことを意味している場合 文字列、またはするものでなければなりません 189 00:09:45,210 --> 00:09:46,570 右、または全部。 190 00:09:46,570 --> 00:09:50,560 それは曖昧だし、典型的なので、どのような コンパイラが行うのと同じフリークアウトされ、 191 00:09:50,560 --> 00:09:53,710 とあなたにいくつかのエラーメッセージを与え、 あなたは問題に対処する。 192 00:09:53,710 --> 00:09:58,120 >> だからバックスラッシュnは新しいを意味する与えられた 行、何が今、あなたの本能だろう 193 00:09:58,120 --> 00:10:02,610 含めるしたい場合であることが開始 二重のような変則的な何か 194 00:10:02,610 --> 00:10:06,210 これ以外の場合、引用符で囲まれた内部を引用 文字列? 195 00:10:06,210 --> 00:10:07,640 バックスラッシュ二重引用符。 196 00:10:07,640 --> 00:10:09,630 そして我々はこれを表示されます あまりにパターンの一種。 197 00:10:09,630 --> 00:10:12,490 >> あなたは少し何かをしたい場合 奇妙な、あなたがそれを見つけることができます 198 00:10:12,490 --> 00:10:15,060 ソリューションは、多くの場合、パターンに従う とバックスラッシュ 199 00:10:15,060 --> 00:10:17,150 エスケープシーケンスを示している。 200 00:10:17,150 --> 00:10:20,320 そして、それだけで何か特別なことを意味します 我々はに表現する必要があること 201 00:10:20,320 --> 00:10:21,060 別の方法。 202 00:10:21,060 --> 00:10:23,830 あなたが表現するにはどうすればよい場合と スラッシュ、まあ、我々はよ 203 00:10:23,830 --> 00:10:24,550 それに戻ってくる。 204 00:10:24,550 --> 00:10:26,930 しかし答えは、あまりにも、実際には ビット明白。 205 00:10:26,930 --> 00:10:31,080 >> それでは、現在いくつかの他のをご紹介しましょう プログラミングコンストラクト 206 00:10:31,080 --> 00:10:31,915 あなたは、スクラッチで見た。 207 00:10:31,915 --> 00:10:34,790 あなたは、おそらく当然の撮影した すでにに飛び込んき既に場合 208 00:10:34,790 --> 00:10:36,060 問題は、0を設定します。 209 00:10:36,060 --> 00:10:40,950 しかしそれではC言語での構文を紹介させて これら以外の場合、かなり直感的なため 210 00:10:40,950 --> 00:10:42,300 アイデアは、そのうちの少なくともいくつか。 211 00:10:42,300 --> 00:10:45,570 >> したがって、この条件の概念や 以前に我々に対し、支店、 212 00:10:45,570 --> 00:10:49,330 見えたコードとそれを表現 スクラッチの左側のこのような - 213 00:10:49,330 --> 00:10:52,200 xがyより小さい場合には、そのように言う - 214 00:10:52,200 --> 00:10:56,760 代わりに、今、Cで - 私が磨くせ 最も単純なケースでで - 215 00:10:56,760 --> 00:11:01,235 オープンであれば、我々は単に、言おうとしている 括弧は、何かが真である - 216 00:11:01,235 --> 00:11:04,190 ブール式は行くために起こっている 私は条件を言ったところ - 217 00:11:04,190 --> 00:11:08,170 閉じ括弧は、その後何か それらの中括弧の内側。 218 00:11:08,170 --> 00:11:11,020 >> だからここに、あまりにも、中括弧 スクラッチのような種類のものである 219 00:11:11,020 --> 00:11:12,460 U字型のパズルのピース。 220 00:11:12,460 --> 00:11:14,890 これらの中括弧の内側に何でください。 221 00:11:14,890 --> 00:11:16,790 このケースでは、スラッシュをスラッシュ。 222 00:11:16,790 --> 00:11:19,720 そして、これが前方であることがわかる スラッシュ、バックスラッシュではない。 223 00:11:19,720 --> 00:11:21,440 フォワード、スラッシュ、スラッシュ プログラムされた人のために 224 00:11:21,440 --> 00:11:23,370 前に、ただ意味 - 225 00:11:23,370 --> 00:11:24,190 それだけのコメントだ。 226 00:11:24,190 --> 00:11:26,630 コメント行ではない コー​​ドは、それ自体。 227 00:11:26,630 --> 00:11:30,200 それはあなた、英語のラインだ 人間、自分自身にに書かれている 228 00:11:30,200 --> 00:11:33,540 多分に、何かをすることを思い出さ に説明し、自分自身に説明 229 00:11:33,540 --> 00:11:35,260 他の誰かが、あなたのコードが何をやっている。 230 00:11:35,260 --> 00:11:37,050 それだけで説明するコメントです。 231 00:11:37,050 --> 00:11:40,880 >> 現在、もちろん、我々は、双方向を有することができる ただこれを行うことにより、道路の分岐点、 232 00:11:40,880 --> 00:11:43,930 行って、道路の3ウェイフォーク この、そしてあなたがこれを続ける場合 233 00:11:43,930 --> 00:11:47,570 パターンは、十字を有することができ、 道路の5ウェイ、6ウェイ·フォーク場合 234 00:11:47,570 --> 00:11:50,150 あなたは、確かに、処理する必要が 多くの条件という。 235 00:11:50,150 --> 00:11:52,010 そして、ここで並列に気づく - 236 00:11:52,010 --> 00:11:55,070 、他の(条件)であれば、(条件)であれば と少しだつだけ 237 00:11:55,070 --> 00:11:58,010 奇妙が最後であり、その ちょうどそのほかにある。 238 00:11:58,010 --> 00:12:01,170 しかし、再び、これは、同一である 概念的には、私たちが何をやったかに 239 00:12:01,170 --> 00:12:04,690 すでに、さえ構文はするものの に慣れて少し時間がかかる。 240 00:12:04,690 --> 00:12:07,730 >> さて、この例では、ある 他のいくつかの奇妙な構文。 241 00:12:07,730 --> 00:12:11,220 我々は、再びprintfの開き括弧を参照してください、 と閉じ括弧。 242 00:12:11,220 --> 00:12:13,190 との内部がある 引用符で囲まれた文字列。 243 00:12:13,190 --> 00:12:17,060 文脈における括弧、 printf関数で、左に行く 244 00:12:17,060 --> 00:12:18,160 と右何の? 245 00:12:18,160 --> 00:12:22,190 我々は、引用符で囲まれていることは何を記述しない より一般的に、文字列? 246 00:12:22,190 --> 00:12:23,320 >> だから、引数です。 247 00:12:23,320 --> 00:12:26,620 いつでもあなたのような機能を持って printfは、その後開いた括弧と 248 00:12:26,620 --> 00:12:30,330 近く括弧と内側の何か それ、それが文字列であるかどうか、または 249 00:12:30,330 --> 00:12:34,420 整数、または何か他の、事で これらの括弧が呼び出される間 250 00:12:34,420 --> 00:12:35,110 引数。 251 00:12:35,110 --> 00:12:37,910 >> と引数は、単に影響を与える 関数の動作。 252 00:12:37,910 --> 00:12:39,990 この場合、それはどのように非常に明らかだ。 253 00:12:39,990 --> 00:12:44,480 X 00:12:47,720 とprintfのために起こっている まさにそれを印刷します。 255 00:12:47,720 --> 00:12:51,590 確かに、人の数年前にあるため printfの実装わからなかった人 256 00:12:51,590 --> 00:12:55,000 我々人間の後継者は何であったか のためにprintfを使用するつもり。 257 00:12:55,000 --> 00:12:58,610 引数に、存在する理由だからです 関数の後の行動に影響を与える 258 00:12:58,610 --> 00:12:59,450 書かれて。 259 00:12:59,450 --> 00:13:00,780 >> さて、ブール式。 260 00:13:00,780 --> 00:13:02,470 私たちは、スクラッチにする前に、これらを見てきました。 261 00:13:02,470 --> 00:13:06,680 それはあなたは、Cにすることができます判明 "または" いわば一緒に、。 262 00:13:06,680 --> 00:13:10,930 二つの縦棒このブロックすることを意味 コー​​ドは、これはこれを行う、意志 263 00:13:10,930 --> 00:13:15,350 最初の条件が真である場合に実行 または第二の条件は真です。 264 00:13:15,350 --> 00:13:17,710 そして、あなたが行われていない可能性がありますにもかかわらず、 このスクラッチでは、確かに可能性 265 00:13:17,710 --> 00:13:20,580 スクラッチでこれを行う、そして、あなたがすることもできます 違った自分を表現 - 266 00:13:20,580 --> 00:13:25,300 もし最初の条件と第二 条件が真である場合、何か 267 00:13:25,300 --> 00:13:27,160 中括弧の内側。 268 00:13:27,160 --> 00:13:31,210 >> そして、ちょうど余談として、それが理由 二重アンパサンドとダブル 269 00:13:31,210 --> 00:13:34,610 縦棒、我々は最終的に表示されます その単一の縦棒と 270 00:13:34,610 --> 00:13:38,710 単一のアンパサンドは実際に異なっている 今のところだからCの意味は、 271 00:13:38,710 --> 00:13:41,840 そのシンボルの重複 意図的なものです。 272 00:13:41,840 --> 00:13:45,070 >> だから、簡単に、ご紹介してみましょう 構文のこの他のビット。 273 00:13:45,070 --> 00:13:48,940 これは非常に引き継がれません スクラッチ、しかし私は私ができることを主張 274 00:13:48,940 --> 00:13:55,190 場合、もし他の概念を実装する 他に、他の場合、else文が使用している場合 275 00:13:55,190 --> 00:13:56,760 何かが、switch文と呼ばれる。 276 00:13:56,760 --> 00:14:00,820 そして、これが実際に存在する唯一の理由 プログラマは、ちょうどあなたを与えることです 277 00:14:00,820 --> 00:14:05,470 いくつかを解決するためのわずかに異なる方法 問題は、たとえ論理的にそれ 278 00:14:05,470 --> 00:14:07,340 あなたに何か新しい機能を与えるものではありません。 279 00:14:07,340 --> 00:14:08,530 >> そのことで私はこれを意味します。 280 00:14:08,530 --> 00:14:13,330 ときは、スイッチを言った後、スペース、 その後内側の括弧のペア、 281 00:14:13,330 --> 00:14:14,570 そのうちの式が行く - 282 00:14:14,570 --> 00:14:18,010 これは少し非自明かもしれない 、まず、これは引数ではありません 283 00:14:18,010 --> 00:14:20,680 技術的には、スイッチがあるため 関数ではありません。 284 00:14:20,680 --> 00:14:24,230 だから今は、ちょうど私達が使用していることを前提としてい 別の場所でのかっこ 285 00:14:24,230 --> 00:14:25,250 さまざまな理由で。 286 00:14:25,250 --> 00:14:29,310 >> だから、表現上のスイッチは、私ができることを意味し これらの変数の内部を置く 287 00:14:29,310 --> 00:14:31,350 それは表現を言う括弧。 288 00:14:31,350 --> 00:14:33,090 そして、その変数であれば - 289 00:14:33,090 --> 00:14:35,400 それはXと呼ばれると仮定し、 それはちょうど整数だ - 290 00:14:35,400 --> 00:14:38,900 私はその後、私のスライドに列挙することができます ここにこのような何か。 291 00:14:38,900 --> 00:14:41,690 xが私の変数であり、私た場合 何かをしたい場合X 292 00:14:41,690 --> 00:14:43,480 1に等しく、私はそれを行うことができます。 293 00:14:43,480 --> 00:14:46,660 >> 私の代わりに何かをしたい場合 xが2であれば、私はそれを行うことができます。 294 00:14:46,660 --> 00:14:50,390 そうでなければ、私は何かを行いたい場合 完全に、私は、デフォルトのケースを持つことができます 295 00:14:50,390 --> 00:14:52,750 その場合、私は、この他のことを行う。 296 00:14:52,750 --> 00:14:58,730 だから、その意味で、それは同等だ xが他にあれば、他に、1に等しいと等しい場合 297 00:14:58,730 --> 00:15:01,150 しかし、私はちょうどので今これを言及 我々は再びそれを見ることができます。 298 00:15:01,150 --> 00:15:03,720 しかし今のところ、それが存在することを知っている。 299 00:15:03,720 --> 00:15:04,220 >> わかりました。 300 00:15:04,220 --> 00:15:07,660 したがって、これらの最後のカップルは、もう少しです 一見複雑な、しかし、彼らはやる 301 00:15:07,660 --> 00:15:09,385 かなり簡単なもの。 302 00:15:09,385 --> 00:15:14,410 Cのforループのコードの塊である もう一度何かを行い、 303 00:15:14,410 --> 00:15:15,330 何度も何度も。 304 00:15:15,330 --> 00:15:17,590 そして、それについての唯一の迷惑な事は それはそれは少し不可解だということです 305 00:15:17,590 --> 00:15:21,380 この循環の中で自分自身を表現する 上のパターンが、世界は、標準化された 306 00:15:21,380 --> 00:15:22,450 次の方法。 307 00:15:22,450 --> 00:15:25,760 >> あなたはforループを使用するときは、持っている 再び括弧のペア。 308 00:15:25,760 --> 00:15:27,570 と2つのセミコロンに気づく そこにいます。 309 00:15:27,570 --> 00:15:34,380 3つの別々のそれらの2つのセミコロン の内側に別の表現 310 00:15:34,380 --> 00:15:35,020 括弧。 311 00:15:35,020 --> 00:15:37,170 一つは、いわゆる初期化である。 312 00:15:37,170 --> 00:15:38,830 一つは、いわゆる条件である。 313 00:15:38,830 --> 00:15:40,210 そして、もう一つは、いわゆるアップデートです。 314 00:15:40,210 --> 00:15:43,240 >> 抽象的に見て、これは 完全に非自明、それでは見てみましょう 315 00:15:43,240 --> 00:15:44,630 具体的な例で。 316 00:15:44,630 --> 00:15:46,720 スクラッチでは、リピートブロックを持っていた。 317 00:15:46,720 --> 00:15:50,670 そして、このブロックは言う、10回繰り返して言った "こんにちは、世界。"私はのために主張しましょう 318 00:15:50,670 --> 00:15:53,810 今、私たちはこれに戻ってくる、と これは、あまりにも、にもっと理解していきましょう 319 00:15:53,810 --> 00:15:57,345 ずっと前にあなた、同等のC コー​​ドは、このことが言える - 320 00:15:57,345 --> 00:16:02,320 声明と空間のペアの 括弧内にセミコロンに気づく 321 00:16:02,320 --> 00:16:05,730 独立した存在、その3つの異なる 物事、初期化、 322 00:16:05,730 --> 00:16:07,320 状態、および更新。 323 00:16:07,320 --> 00:16:08,840 >> そして、何の推測を取る 最初はやっている。 324 00:16:08,840 --> 00:16:10,690 int型私= 0。 325 00:16:10,690 --> 00:16:15,120 ラフ素人の面では、何ですか おそらく、私たちのためにやっている? 326 00:16:15,120 --> 00:16:15,590 うんそう。 327 00:16:15,590 --> 00:16:19,630 それは私と呼ばれる変数を宣言するのは、 そしてそれは、それをどのような価値を与えている? 328 00:16:19,630 --> 00:16:20,220 0。 329 00:16:20,220 --> 00:16:24,280 だから、という変数を作成しています 私は、その中に値0を格納。 330 00:16:24,280 --> 00:16:26,420 ことは、いわゆる初期化です。 331 00:16:26,420 --> 00:16:29,360 >> すべての権利、今、私が前に主張した その中のもの、私 332 00:16:29,360 --> 00:16:31,760 <10が、条件である。 333 00:16:31,760 --> 00:16:32,730 だから何をやっている? 334 00:16:32,730 --> 00:16:36,560 さて、何のためにループがないとき forループでプログラムが実行され、ある 335 00:16:36,560 --> 00:16:41,050 コンピュータが通るたびに このループ、上から下へ、トップへ 336 00:16:41,050 --> 00:16:43,740 君たちがやったようにボトム、 自分をカウントし、座っ 337 00:16:43,740 --> 00:16:47,090 もう一度、もう一度、もう一度、 コンピュータが起こっている 338 00:16:47,090 --> 00:16:48,560 その状態をチェックします。 339 00:16:48,560 --> 00:16:51,140 そして、iが10未満である場合 それは再びそれをやる。 340 00:16:51,140 --> 00:16:53,100 iが10未満である場合、 それは再びそれをやる。 341 00:16:53,100 --> 00:16:55,030 iが10未満である場合、 それは再びそれをやる。 342 00:16:55,030 --> 00:16:57,330 だからあることを示唆しているようだ うまくいけば、私は変化しています。 343 00:16:57,330 --> 00:16:59,010 そうでなければ、我々は無限ループを持っていると思います。 344 00:16:59,010 --> 00:17:02,590 ので、実際に、私は、変化している セミコロンの後の最​​後のものが 345 00:17:02,590 --> 00:17:05,569 iは+ +のやや不可解な構文です。 346 00:17:05,569 --> 00:17:07,630 しかし、これをやった人の 前に、それはただ意味 347 00:17:07,630 --> 00:17:08,609 非常に単純に何が? 348 00:17:08,609 --> 00:17:09,730 >> 学生:[介在VOICES]。 349 00:17:09,730 --> 00:17:10,740 >> DAVIDマラン:私に1を追加します。 350 00:17:10,740 --> 00:17:11,819 私をインクリメント。 351 00:17:11,819 --> 00:17:13,910 だから我々は、スクラッチのパズルを見た そのための作品、実際に。 352 00:17:13,910 --> 00:17:18,230 それは私+ +が、ちょうどそのようには見えませんでした 手段は、非常に単純に、インクリメント 353 00:17:18,230 --> 00:17:24,040 私は1でこの操作を行うたびに、大切にしています。 354 00:17:24,040 --> 00:17:26,910 だから文字通り、次の方法で起動する 0 iに初期化する。 355 00:17:26,910 --> 00:17:29,520 次に、あなたの状態を確認してください。 356 00:17:29,520 --> 00:17:31,070 10 0より小さい? 357 00:17:31,070 --> 00:17:31,730 はい。 358 00:17:31,730 --> 00:17:32,910 我々は、ループを通過します。 359 00:17:32,910 --> 00:17:35,150 >> 私はコンピュータのを主張する次の事 やろうと、それが起こっているのです 360 00:17:35,150 --> 00:17:35,910 私をインクリメントする。 361 00:17:35,910 --> 00:17:37,080 だから私は今1です。 362 00:17:37,080 --> 00:17:37,940 それは、条件をチェックします。 363 00:17:37,940 --> 00:17:39,290 10 1より小さい? 364 00:17:39,290 --> 00:17:39,930 もちろん。 365 00:17:39,930 --> 00:17:41,030 だから、もう一度行います。 366 00:17:41,030 --> 00:17:43,580 次にiをインクリメント+ + 2。 367 00:17:43,580 --> 00:17:44,610 10より2小さい? 368 00:17:44,610 --> 00:17:45,230 はい。 369 00:17:45,230 --> 00:17:46,670 と何度も何度も何度も。 370 00:17:46,670 --> 00:17:50,070 そして最終的には、理由の プラスplussing、私たちは、私が10に等しいに着く。 371 00:17:50,070 --> 00:17:51,675 10以上10未満でありますか? 372 00:17:51,675 --> 00:17:52,990 まあ、明らかにしない。 373 00:17:52,990 --> 00:17:55,320 そして、それは時のポイントだ ループのためだけを停止します。 374 00:17:55,320 --> 00:17:58,320 そして、あなたは上のより多くのコードを持っている場合 以下の画面下に、コンピュータ 375 00:17:58,320 --> 00:18:01,620 代わりにそのコードを実行に進む。 376 00:18:01,620 --> 00:18:05,380 >> そう再度、これはに起こっているにもかかわらず を見て、少し奇妙に感じる 377 00:18:05,380 --> 00:18:07,830 まず、確かに人のために 前にプログラムしたことがない、それ 378 00:18:07,830 --> 00:18:11,640 文字通り概念的軽減 そうしないと、非常に何に 379 00:18:11,640 --> 00:18:14,330 簡単なパズル スクラッチでの作品。 380 00:18:14,330 --> 00:18:19,130 >> すべての権利、私はそこだろうと約束した スクラッチで他の類似である。 381 00:18:19,130 --> 00:18:20,060 これは、あまりにもあります。 382 00:18:20,060 --> 00:18:21,700 そして我々は、この簡単に最後の時間を見た。 383 00:18:21,700 --> 00:18:23,530 しかし、永遠に覚えている スクラッチでブロック? 384 00:18:23,530 --> 00:18:25,490 それだけで永遠に何かしていますか? 385 00:18:25,490 --> 00:18:27,470 私はあなたが実装できると主張し このようにこの。 386 00:18:27,470 --> 00:18:29,740 そして、あなたが実際にこれを実装することができます さまざまな方法の束である。 387 00:18:29,740 --> 00:18:34,260 >> しかし、whileループは違うだけです。 自分を表現するC言語での方法。 388 00:18:34,260 --> 00:18:37,080 一日の終わりには、あなたが行うことはできません whileループを使って何というあなた 389 00:18:37,080 --> 00:18:38,360 できないforループと。 390 00:18:38,360 --> 00:18:41,430 そこで、彼らはの終わりにいる 機能的には毎日同じ。 391 00:18:41,430 --> 00:18:43,840 しかし、それはあなた自身を表現することができます 少し違ったで 392 00:18:43,840 --> 00:18:44,850 次の方法。 393 00:18:44,850 --> 00:18:49,720 >> whileループを使用すると、それはに何があるかだ もう一度チェックしている括弧 394 00:18:49,720 --> 00:18:51,050 何度も何度も。 395 00:18:51,050 --> 00:18:55,100 とすぐに、その式が偽であるとして、 その後ループは、実行を停止 396 00:18:55,100 --> 00:18:57,890 コンピュータはに進み 実行する任意の他のコードあなた 397 00:18:57,890 --> 00:18:59,230 あなたのファイルを持っている。 398 00:18:59,230 --> 00:19:02,180 >> しかし、ここで興味深い何ですよ 私は文字通り本当の入力した。 399 00:19:02,180 --> 00:19:06,680 そして真は、ブール値のタイプです trueまたはfalseの値。 400 00:19:06,680 --> 00:19:09,750 だから真のこれまでになる可能性 私は文字通りした場合はfalse 401 00:19:09,750 --> 00:19:11,970 私のプログラムにそれをハードコーディングされて? 402 00:19:11,970 --> 00:19:12,470 ないそう。 403 00:19:12,470 --> 00:19:13,730 それは私がこれをしたことを少し奇妙だ。 404 00:19:13,730 --> 00:19:15,190 しかし、真のは本当です。 405 00:19:15,190 --> 00:19:16,320 全くプラスplussingはありません。 406 00:19:16,320 --> 00:19:17,820 ここでの変数の無駄はありません。 407 00:19:17,820 --> 00:19:22,740 だから私は本当、このときにハードコーディングされているので ループは常に評価するために起こっている 408 00:19:22,740 --> 00:19:24,090 もう一度、もう一度、もう一度。 409 00:19:24,090 --> 00:19:27,660 >> だからこんにちは世界は何回です 画面上で印刷するつもり? 410 00:19:27,660 --> 00:19:28,170 永遠に。 411 00:19:28,170 --> 00:19:31,980 まで無限回 バッテリーダイスまたは他の外部 412 00:19:31,980 --> 00:19:32,730 イベントが発生します。 413 00:19:32,730 --> 00:19:35,880 だから、これはおそらく最高のプログラムではありません ユーザならないため、書き込む 414 00:19:35,880 --> 00:19:38,660 あなたのプログラムを終了することはできません、それはだ おそらくあなたが意図したもの。 415 00:19:38,660 --> 00:19:41,070 >> しかし、時には、プログラムがすべき 無限ループを持っている。 416 00:19:41,070 --> 00:19:44,050 たとえば、お使いのコンピュータが持っている場合 その上に時計、それは確かだろう 417 00:19:44,050 --> 00:19:48,130 それは更新し続けるんあなたの時計ばいい 一度はいえ永遠自体、 418 00:19:48,130 --> 00:19:50,500 秒または1分または まあそんなところです。 419 00:19:50,500 --> 00:19:53,690 そうであっても無限ループ その場所を持っている。 420 00:19:53,690 --> 00:19:54,360 >> わかりました。 421 00:19:54,360 --> 00:19:55,190 最後に、この1。 422 00:19:55,190 --> 00:19:57,770 、この1つは少し異なってい 機能的に、そして我々はに戻ってくる 423 00:19:57,770 --> 00:19:59,460 このおそらくPsetに1インチ 424 00:19:59,460 --> 00:20:02,370 しかし、ループの別のタイプはあり DO WHILEループと呼ばれる。 425 00:20:02,370 --> 00:20:07,100 との間に、ここでの唯一の違い ループと、言う、whileループしながら行う、 426 00:20:07,100 --> 00:20:11,120 条件がチェックされていることではありません あなたがコードを実行する前に、しかし、後に 427 00:20:11,120 --> 00:20:12,080 あなたは、コードを実行する。 428 00:20:12,080 --> 00:20:15,380 だからしばらくの間上部に ループ、行うのに対しながら 429 00:20:15,380 --> 00:20:16,560 一番下にそれをチェックします。 430 00:20:16,560 --> 00:20:21,370 >> そして、これは単にwhileループすることを意味 通常は複数回実行されます 431 00:20:21,370 --> 00:20:24,630 またはwhileループより少ない回? 432 00:20:24,630 --> 00:20:30,810 行うため、潜在的に複数回、 ループは明らかにこの操作を行うと言っている間に、 433 00:20:30,810 --> 00:20:34,600 だけした後は、チェックポイント の内部状態であれば 434 00:20:34,600 --> 00:20:35,980 括弧はtrueです。 435 00:20:35,980 --> 00:20:37,940 >> だから我々は再びこれを見るだろう おそらくPsetに1インチ 436 00:20:37,940 --> 00:20:41,150 あなたは今までに何かをしたい場合 少なくとも一度、その後おそらくいくつかのより多くの 437 00:20:41,150 --> 00:20:43,350 回、これは良いです 使用することを構築します。 438 00:20:43,350 --> 00:20:46,970 しかし、whileループは、対照的に、意志 最初にその状態を確認してください。 439 00:20:46,970 --> 00:20:50,660 そして、それは、C言語でのforループそれかだ しばらく、およびforループ、しばらく。 440 00:20:50,660 --> 00:20:54,700 そして再び、彼らは戻ってかなりうまくマッピング この1つはないことを除いて、スクラッチする 441 00:20:54,700 --> 00:20:57,350 かなりスクラッチで同じアナログを持っています。 442 00:20:57,350 --> 00:20:58,880 >> さて、方法について、今、変数? 443 00:20:58,880 --> 00:21:02,600 だから、これは私は、変数を宣言した方法です 構文的先日。 444 00:21:02,600 --> 00:21:06,440 私が主張したint型を持っていた 整数です。 445 00:21:06,440 --> 00:21:09,690 私はその後、カウンタと呼ばれる変数を持っていた その後セミコロン。 446 00:21:09,690 --> 00:21:11,070 だから、このコード行は何をやっている? 447 00:21:11,070 --> 00:21:14,540 これは宣言し、非常に単純であり、 変数 - 448 00:21:14,540 --> 00:21:17,940 コンピュータを尋ねる、つまり、私を与える いくつかのメモリは、私にいくつかのビットを与える - に 449 00:21:17,940 --> 00:21:19,450 私は何を格納できる? 450 00:21:19,450 --> 00:21:20,300 int型。 451 00:21:20,300 --> 00:21:23,570 とセミコロンはただ意味 コー​​ドの行の終わり。 452 00:21:23,570 --> 00:21:25,500 >> さて、2行目はおそらく かなり推測可能。 453 00:21:25,500 --> 00:21:29,710 カウンタ= 0とは何ですか。やって? 454 00:21:29,710 --> 00:21:31,690 それは対抗するため0を割り当てている。 455 00:21:31,690 --> 00:21:33,470 そして、これは他の事である 少し迷惑だ 456 00:21:33,470 --> 00:21:34,540 代数、と言うのに対し、。 457 00:21:34,540 --> 00:21:39,110 代数のに対し、等号を意味 等しく、Cここで、等しい 458 00:21:39,110 --> 00:21:40,470 記号は代入を意味している。 459 00:21:40,470 --> 00:21:45,380 だから、右側に何置く意味 左側にあるものに。 460 00:21:45,380 --> 00:21:49,030 そして我々は等しく、別のシンボルが表示されます 私たちが実際にテストしたいときに、等しい 461 00:21:49,030 --> 00:21:50,570 品質のために、多少うるさく。 462 00:21:50,570 --> 00:21:52,590 >> しかし、これは少し非効率的です。 463 00:21:52,590 --> 00:21:55,090 それは私が持っている迷惑のようなものだ 変数を宣言すると 464 00:21:55,090 --> 00:21:56,110 その後、値を与える。 465 00:21:56,110 --> 00:21:59,380 だからCは実際に私達はこれを簡素化することができます とだけ一度にすべてそれを行う。 466 00:21:59,380 --> 00:22:01,330 あなたは、変数を宣言することができます 左に。 467 00:22:01,330 --> 00:22:04,590 あなたはまだ上の割り当てを行うことができます でその等号を置くことによって、右 468 00:22:04,590 --> 00:22:05,030 真ん中。 469 00:22:05,030 --> 00:22:08,740 そう一日の終わりには、これら二つは 同等のが、この1、率直に言って、 470 00:22:08,740 --> 00:22:11,840 おそらくに入るために良い習慣です それは少し少なめだという理由だけで 471 00:22:11,840 --> 00:22:15,040 コー​​ドは、それが、読みは少し簡単です そしてそれはちょうど引き締め 472 00:22:15,040 --> 00:22:17,470 あなたのコードは、いわば。 473 00:22:17,470 --> 00:22:22,120 >> これまでのループ上のどの質問でも、 変数について、条件に、上 474 00:22:22,120 --> 00:22:27,001 ブール値のいずれか技術的に または概念的? 475 00:22:27,001 --> 00:22:28,010 わかりました。 476 00:22:28,010 --> 00:22:30,690 だから今この次のものを取得します もう少し面白い。 477 00:22:30,690 --> 00:22:34,790 そして、これは私が最後の我慢する例です ただスクラッチ例をマッピング時間 478 00:22:34,790 --> 00:22:35,820 Cに上 479 00:22:35,820 --> 00:22:36,580 >> この関数は、そう。 480 00:22:36,580 --> 00:22:38,110 素人の面では、この関数は何ですか? 481 00:22:38,110 --> 00:22:42,900 482 00:22:42,900 --> 00:22:44,350 あなたの答えを持つ大胆なことになった。 483 00:22:44,350 --> 00:22:45,020 機能は何ですか? 484 00:22:45,020 --> 00:22:46,320 >> 学生:何かしていますか。 485 00:22:46,320 --> 00:22:46,780 >> DAVIDマラン:あれは、何ですか。 486 00:22:46,780 --> 00:22:48,000 >> 学生:何かしていますか。 487 00:22:48,000 --> 00:22:48,710 >> DAVIDマラン:何かしていますか。 488 00:22:48,710 --> 00:22:49,000 OK。 489 00:22:49,000 --> 00:22:49,590 我々はそこを始めましょう。 490 00:22:49,590 --> 00:22:51,270 だから、この関数は何かを。 491 00:22:51,270 --> 00:22:55,160 だから、だコードの一部です 本質的に別の場所でその実装 492 00:22:55,160 --> 00:22:56,620 確かに何かがありません。 493 00:22:56,620 --> 00:23:00,180 さて、関数についての興味深いものだ 、それが入力を取ることができるということです 494 00:23:00,180 --> 00:23:02,710 そして、出力を生成することができる。 495 00:23:02,710 --> 00:23:05,090 としましょう​​、実際に取る これを見て。 496 00:23:05,090 --> 00:23:09,030 >> だから、カーテンの後ろの男 一瞬前に意図的であった。 497 00:23:09,030 --> 00:23:10,320 ここでは、テーブルを持っている。 498 00:23:10,320 --> 00:23:13,010 しかし、それは実際にこの仮定 大きな箱を表しています。 499 00:23:13,010 --> 00:23:14,940 だから、これは、いわゆるブラックボックスである。 500 00:23:14,940 --> 00:23:19,800 そして一般的には、設計では、コンピュータ内の 科学、ブラックボックスは、単に参照してください 501 00:23:19,800 --> 00:23:22,510 機能性の部分誰か 実装されており、あなたはしないでくださいました 502 00:23:22,510 --> 00:23:26,140 必ずしも知っているか、それはどのように気 ボンネットの下に実装されています。 503 00:23:26,140 --> 00:23:28,960 あなたはただ気に、このブラックボックス、 我々は今、呼び出しを開始しますた 504 00:23:28,960 --> 00:23:30,730 この関数は、何かを。 505 00:23:30,730 --> 00:23:34,710 >> だから、例えば、このブラックボックスの場合 ここのステージは、printf関数を表す 506 00:23:34,710 --> 00:23:38,040 この関数は、私がこれまでの例から知っている それはprintfの取りつ以上 507 00:23:38,040 --> 00:23:40,910 引数、およびそれらの最初の 引数は以下のように、文字列でなければなりません 508 00:23:40,910 --> 00:23:44,780 "こんにちは、世界。"まあ、私は人間だ場合 プログラムを書いて、私が欲しい 509 00:23:44,780 --> 00:23:50,460 printfを使用するには、私は、例えば、かもしれない ここで空白の紙を取り、 510 00:23:50,460 --> 00:23:55,060 黒のマーカーと、その上に書いて - 511 00:23:55,060 --> 00:23:56,580 私は "世界"スペルミス - 512 00:23:56,580 --> 00:23:59,560 H-E-L-L-O。 513 00:23:59,560 --> 00:24:04,220 >> だから、私は黒のマーカーを取るだろうと私はよ 上のように大きくて読みやすく、私はできる限り、書き込み 514 00:24:04,220 --> 00:24:07,260 この一枚の紙、 "こんにちは、世界"と 今、私は、これが私の議論であると主張している。 515 00:24:07,260 --> 00:24:09,740 これは、で表された文字列です 白い紙。 516 00:24:09,740 --> 00:24:13,030 そして今、関数への私の入力 printfはこのことを行っている。 517 00:24:13,030 --> 00:24:18,250 だから私は、printfの呼び出し合格しています それへの入力として、その引数。 518 00:24:18,250 --> 00:24:22,110 519 00:24:22,110 --> 00:24:26,740 >> そして今、私はどのように人は誰かわからない printfは数年前にそれをやった書いたが、 520 00:24:26,740 --> 00:24:31,110 私は、マニュアルからのことを知っていますか 生活の中でその目的は何I印刷することです 521 00:24:31,110 --> 00:24:34,410 それを入力としてに提供します。 522 00:24:34,410 --> 00:24:40,630 そして、にもかかわらず、この実装 私に知られていないです 523 00:24:40,630 --> 00:24:44,170 ボンネットの下に、今 私は、ああ、それが行われている、参照してください。 524 00:24:44,170 --> 00:24:45,740 それは何かを印刷した 画面上で。 525 00:24:45,740 --> 00:24:49,070 そこにあれば、今、プログラムの制御 、コードの行以上あったでしょう 526 00:24:49,070 --> 00:24:51,070 今、私に戻ってきた。 527 00:24:51,070 --> 00:24:52,290 そしてそのコルトン事実 - 528 00:24:52,290 --> 00:24:55,370 彼の心を祝福、下にここに隠れている 皆様の前のテーブル - 529 00:24:55,370 --> 00:24:59,530 私は知らないという点で、意図的なもので と私はどのようにprintfのです気にしない 530 00:24:59,530 --> 00:25:00,100 実装されています。 531 00:25:00,100 --> 00:25:03,390 私はちょうどそのから、再び、知っている それが何をするかドキュメント、およびどのように 532 00:25:03,390 --> 00:25:05,040 それを使用することになっています。 533 00:25:05,040 --> 00:25:09,140 >> さて、printfを得ることができることを思い出してください もう少し洗練された。 534 00:25:09,140 --> 00:25:12,220 繰り返しますが、私達はちょうど話をしている スクラッチだと言うブロックと同等。 535 00:25:12,220 --> 00:25:14,230 しかし、私はまた、この最後の時間でした。 536 00:25:14,230 --> 00:25:17,270 私はこんにちはプログラムを作りたかった ただ一生懸命もう少しダイナミックではなく 537 00:25:17,270 --> 00:25:19,740 コー​​ドのようなもの "世界"と 間違いではないハードコード何か 538 00:25:19,740 --> 00:25:22,520 D-A-V-I-Dのような任意の プログラムに。 539 00:25:22,520 --> 00:25:27,510 私は彼または彼女のためにユーザーに確認したかった 名前、その後に何かをする 540 00:25:27,510 --> 00:25:29,720 それらが提供する、その文字列。 541 00:25:29,720 --> 00:25:32,690 >> だから少し違う何かがあります ここに。 printfは、一瞬前に、 542 00:25:32,690 --> 00:25:35,860 でしたが、確かに、何かをするが、それ 私には何も返しませんでした。 543 00:25:35,860 --> 00:25:36,020 右? 544 00:25:36,020 --> 00:25:38,910 コルトン私に何をお渡ししませんでした 裏紙のない作品。 545 00:25:38,910 --> 00:25:40,320 副作用はそこにあった。 546 00:25:40,320 --> 00:25:44,510 私のように "こんにちは、世界"を提供 引数はコルトンもたらしする 547 00:25:44,510 --> 00:25:48,420 単語の副作用、いくつかの単語、 画面上に現れる。 548 00:25:48,420 --> 00:25:51,350 >> GetStringメソッドは、しかし、少しです 異なる。 GetStringメソッドでもあります 549 00:25:51,350 --> 00:25:54,590 この関数は、それはいくつかの値を返します。 550 00:25:54,590 --> 00:25:56,370 それだけではありません 美的副作用。 551 00:25:56,370 --> 00:26:00,230 これは、実際に人に、私を与える 、関数を呼び出すか、または使用した 552 00:26:00,230 --> 00:26:01,320 戻って何か。 553 00:26:01,320 --> 00:26:05,740 したがって、この場合には、GetStringメソッドである GetStringメソッドオープンで呼び出さ 554 00:26:05,740 --> 00:26:07,510 括弧、近くに括弧。 555 00:26:07,510 --> 00:26:11,370 GetStringメソッドは、そのため、時間がかかりますか 任意の引数や入力? 556 00:26:11,370 --> 00:26:12,340 いいえ、それはないようです。 557 00:26:12,340 --> 00:26:14,460 生活の中でその目的はある 単に文字列を取得します。 558 00:26:14,460 --> 00:26:16,910 それは超えない詳細を必要とします。 559 00:26:16,910 --> 00:26:20,430 だから私は先に行くと、そのふりをさせ、 再び、このブラックボックスは、printf関数ではない 560 00:26:20,430 --> 00:26:25,160 しかしGetStringメソッド、そして私を聞かせて、人 このプログラムを書いて、電話または使用 561 00:26:25,160 --> 00:26:29,720 ただ書くことでGetStringメソッド 近いG-E-T-S-T-R-I-N-G、オープン括弧、 562 00:26:29,720 --> 00:26:32,170 括弧、GetStringメソッド。 563 00:26:32,170 --> 00:26:36,920 >> 今、私は全く分からない方法CS50スタッフ GetStringメソッドを実装しますが、私は知っている 564 00:26:36,920 --> 00:26:41,240 私は十分な長さ待っていれば、それはそのを行います フードの下のものは、多分使用 565 00:26:41,240 --> 00:26:44,940 おそらくいくつかを使用して、いくつかの変数は、 条件、おそらくいくつかのループを使用して、 566 00:26:44,940 --> 00:26:48,170 おそらくいくつかの関数を使用して、 多分使用して - 567 00:26:48,170 --> 00:26:52,290 ただ失速しよう - 多分使用 いくつかの他のプログラミング機能。 568 00:26:52,290 --> 00:26:55,350 しかし、私は十分な長さ待っていれば - 現実には、 コンピュータに、これが起こる 569 00:26:55,350 --> 00:26:56,270 超高速 - 570 00:26:56,270 --> 00:26:59,910 私は十分な長さ待っていれば、この機能 GetStringメソッドは、文字列を取得しようとしている 571 00:26:59,910 --> 00:27:04,060 おそらく、入力されたユーザーからの 彼らのキーボードの外にそれて、 572 00:27:04,060 --> 00:27:08,090 その後、あなたはGetStringメソッドが実行されるときに取得 ユーザーからそれらの文字 573 00:27:08,090 --> 00:27:14,080 と文字列にそれらを格納し、その 機能、GetStringメソッドは、持っているために起こっている 574 00:27:14,080 --> 00:27:17,990 私はいくつかの出力を私のための準備 を介して取得するつもり 575 00:27:17,990 --> 00:27:19,470 代入演算子。 576 00:27:19,470 --> 00:27:25,390 >> そして、私が行けば、確かに、出力に ここで、Obosiは寛大に持って 577 00:27:25,390 --> 00:27:29,900 でこれを知らずに、参加した この上に自分の名前を書くことで、進める 578 00:27:29,900 --> 00:27:33,100 表現されている変数、 文字列。 579 00:27:33,100 --> 00:27:35,640 さて、代入演算子でも、意味 これは少しを感じるかもしれませんが 580 00:27:35,640 --> 00:27:38,790 冗長、私は実際に必要なの この私自身のコピーを作成します。 581 00:27:38,790 --> 00:27:40,700 左手の理由 サイド - おっと! - 582 00:27:40,700 --> 00:27:45,760 私は基本的に文字列を持っていることに気付く 左側の名前。 583 00:27:45,760 --> 00:27:48,280 だから私も作るつもりです 私自身のこれのコピー。 584 00:27:48,280 --> 00:27:50,990 そして、これは、白嘘のビットです 我々は、週または2つの年代に表示されますので、 585 00:27:50,990 --> 00:27:54,100 文字列は実際にはないことを即座 彼らはあるように見えるのか。 586 00:27:54,100 --> 00:27:56,700 >> しかし、今のところ、ここで戻り値です。 587 00:27:56,700 --> 00:28:00,160 ここでの私自身のコピーが後です 代入演算子を使用して。 588 00:28:00,160 --> 00:28:01,790 そして今、私は次に何をすべきかをしたいですか? 589 00:28:01,790 --> 00:28:04,080 我々は今、第二を持っている 2行のコードの。 590 00:28:04,080 --> 00:28:05,640 だから私は今、printfの呼び出したい。 591 00:28:05,640 --> 00:28:08,500 その黒い今ふりましょう ボックスがあることに再び戻っている 592 00:28:08,500 --> 00:28:10,210 printf関数ではないGetStringメソッド。 593 00:28:10,210 --> 00:28:12,200 >> printfはこの時間がに行っている どのように多くの引数を取る? 594 00:28:12,200 --> 00:28:14,890 595 00:28:14,890 --> 00:28:16,770 だから見て、それには2つのようなものだ。 596 00:28:16,770 --> 00:28:18,860 そこに2つのコンマだが、 それはそれらのコンマの一つ、 597 00:28:18,860 --> 00:28:20,220 引用符の内側。 598 00:28:20,220 --> 00:28:23,190 だから、最初の引数は、文字通りです これになるだろう。 599 00:28:23,190 --> 00:28:31,850 H-E-L-L-O、カンマ、パーセント S、バックスラッシュnを。 600 00:28:31,850 --> 00:28:36,560 そして今、私は、しないつの引数を提供しています しかし、printf関数には2つの引数。 601 00:28:36,560 --> 00:28:39,530 >> そして、何のprintfで行うことになっている 私はそれらを渡すこれらの二つの入力後 602 00:28:39,530 --> 00:28:42,050 引数として? 603 00:28:42,050 --> 00:28:45,360 それは、第二を取ることになっている 私は名前を呼ばれる彼ら、そう 604 00:28:45,360 --> 00:28:48,660 私が書いた紙2枚目 ちょっと前に名前呼ばれています。 605 00:28:48,660 --> 00:28:53,550 これは、値の内部のプラグに起こっている その変数のプレースホルダーに、 606 00:28:53,550 --> 00:28:58,310 %sは、そう、再び、その一瞬の中で 時間、我々は、副作用が表示され 607 00:28:58,310 --> 00:29:04,180 我々は今、それによって、printf関数と呼ばれた しない "こんにちは、世界、"しかし、 "こんにちは、以下を参照してください 608 00:29:04,180 --> 00:29:04,710 Obosi。 " 609 00:29:04,710 --> 00:29:08,730 >> だから、の両方に大きな拍手 私たちボランティアは、知っていた唯一の人の 610 00:29:08,730 --> 00:29:12,010 これは起きているだろう。 611 00:29:12,010 --> 00:29:12,990 わかりました。 612 00:29:12,990 --> 00:29:16,480 それがあったように、おそらく、単純な、 確かに、あなたはすでに精通している場合 613 00:29:16,480 --> 00:29:20,190 などを使用すると、うまくいけば、決して どのようにその特定のビジュアルを忘れる 614 00:29:20,190 --> 00:29:21,220 機能が働く。 615 00:29:21,220 --> 00:29:23,000 >> だからGetStringメソッドよりも多くはあり。 616 00:29:23,000 --> 00:29:26,020 CS50ライブラリの内部では、そこ すべての機能の全体の束、 617 00:29:26,020 --> 00:29:29,510 ただ明確にするために計上される 我々はこれらの関数を書いた。 618 00:29:29,510 --> 00:29:33,610 一般的には、C言語で、ほとんどすべての他の あなたが使用します機能は小文字です。 619 00:29:33,610 --> 00:29:36,190 しかし、我々は意図的に大文字を使用 ただ、これらのことを明確にする 620 00:29:36,190 --> 00:29:39,880 我々はだろうという一種の補助輪です ほんの数週間のために使用する 621 00:29:39,880 --> 00:29:42,890 取得プロセスを簡略化 ユーザからの入力。 622 00:29:42,890 --> 00:29:46,740 >> CS50ライブラリは何もしません あなたがたは、で行うことができないこと 623 00:29:46,740 --> 00:29:50,230 だけからCコードを使用して oldschoolの教科書。 624 00:29:50,230 --> 00:29:53,310 しかし、再度、我々は訓練としてそれらを使用する だけのカップルのための一種の車輪 625 00:29:53,310 --> 00:29:57,250 週間我々はを取り除くことができるように あなたはすぐに理解できるだろうという複雑 626 00:29:57,250 --> 00:30:00,460 として何かをするのを自分 取得などの比較的簡単 627 00:30:00,460 --> 00:30:02,080 ユーザからの入力。 628 00:30:02,080 --> 00:30:05,540 >> ですから、アクセス権を持っているだろうことを知っている 、getchar関数getDoubleはする - 629 00:30:05,540 --> 00:30:06,050 ダブル。 630 00:30:06,050 --> 00:30:07,050 What's - その後getFloatは。 631 00:30:07,050 --> 00:30:07,600 フロートとは何ですか? 632 00:30:07,600 --> 00:30:09,382 そこから始めましょう。 633 00:30:09,382 --> 00:30:10,600 >> 学生:[聞こえない]。 634 00:30:10,600 --> 00:30:10,790 >> DAVIDマラン:うん。 635 00:30:10,790 --> 00:30:12,120 これは、小数点を持つ数値です。 636 00:30:12,120 --> 00:30:15,930 int型は整数ですので、一方で、その 、0〜9と数字だけです 637 00:30:15,930 --> 00:30:18,940 その繰り返しのいくつかの数が、 フロートが何か 638 00:30:18,940 --> 00:30:20,100 小数点付き。 639 00:30:20,100 --> 00:30:26,090 と二重のは、一方、またある 小数点付きの数が、より 640 00:30:26,090 --> 00:30:28,160 小数点以下の数字 点、潜在的に。 641 00:30:28,160 --> 00:30:30,040 >> 長い前に、だから私たちはこれに戻りましょう。 642 00:30:30,040 --> 00:30:34,560 典型的には、これらのタイプのそれぞれ データは、これらの型の変数の各々 643 00:30:34,560 --> 00:30:39,380 我々のようなライブラリは、に戻ることができ あなた、ビット数が異なるのを使用 644 00:30:39,380 --> 00:30:40,290 情報を保存する。 645 00:30:40,290 --> 00:30:43,910 ただ意味一般的には、シャア、 1文字は、8ビットを使用します。 646 00:30:43,910 --> 00:30:47,490 そして、それは私たちと実際に一致してい ボランティアのバイト先週 647 00:30:47,490 --> 00:30:50,410 思いついたと1を表す 当時のASCII文字。 648 00:30:50,410 --> 00:30:51,850 だからシャアは8ビットです。 649 00:30:51,850 --> 00:30:54,430 >> フロートがあることを起こる 典型的には32ビット。 650 00:30:54,430 --> 00:30:59,230 と二重の、ご想像のように、ある ちょうどより、実際には64ビット、 651 00:30:59,230 --> 00:31:01,360 これは、あなたがより大きいがあることを意味します 数字以上の精度。 652 00:31:01,360 --> 00:31:03,000 しかし、再び、多くのその別の時間に。 653 00:31:03,000 --> 00:31:06,550 GetLongLong一方、しかし愚か 名前、本当にある 654 00:31:06,550 --> 00:31:10,770 二倍大きいです整数倍の 長い間、潜在的に、正規のように 655 00:31:10,770 --> 00:31:12,940 整数ではなく、32の64ビット。 656 00:31:12,940 --> 00:31:14,560 そして、我々が使用してきたGe​​tStringメソッド。 657 00:31:14,560 --> 00:31:18,870 >> しかし、それは、CS50ライブラリに、判明 で、我々はわかりますように、実装される 658 00:31:18,870 --> 00:31:23,560 2つのファイルの形式の一 cs50.hと呼ばれ、他の二つを持っている 659 00:31:23,560 --> 00:31:24,770 それのデータ型。 660 00:31:24,770 --> 00:31:29,700 ブールはC.であなたをすることができますが存在しない ちょうど0と1使用してそれらをシミュレート 661 00:31:29,700 --> 00:31:30,850 プログラム全体。 662 00:31:30,850 --> 00:31:35,500 しかし、我々はCS50ライブラリで作成した 記号は、 "true"と "false" 663 00:31:35,500 --> 00:31:38,580 1と0を表現するために、あなたはしないでください ハードコード何かを持っている 664 00:31:38,580 --> 00:31:39,810 文字通り1と0のような。 665 00:31:39,810 --> 00:31:40,980 しかし、我々は再びそれらを見ることができます。 666 00:31:40,980 --> 00:31:42,330 >> 文字列は、あまりにも、存在しません。 667 00:31:42,330 --> 00:31:44,520 私はそれは言及理由だ 今の白嘘のビット。 668 00:31:44,520 --> 00:31:46,660 しかし、我々はピールバックだろうこと やがて層。 669 00:31:46,660 --> 00:31:49,540 しかし、今のところ、文字列です 文字のシーケンス。 670 00:31:49,540 --> 00:31:51,790 >> 一方、C言語では、確かに 異なるデータ型を持っている。 671 00:31:51,790 --> 00:31:53,200 これらは小文字であることに注意してください。 672 00:31:53,200 --> 00:31:56,960 機能だから、一瞬前に見た CS50によって機能と書かれている 673 00:31:56,960 --> 00:32:02,310 あなたに落ちる値を返します これらのカテゴリの1つに。 674 00:32:02,310 --> 00:32:06,730 >> カップルだけで植える虎の巻 ここでシード。 printf関数だけではありません 675 00:32:06,730 --> 00:32:08,600 プレースホルダとして%sを取る。 676 00:32:08,600 --> 00:32:13,490 これは、小数点整数の%dを受け取り または%iは、同様に動作します。 677 00:32:13,490 --> 00:32:19,450 %fは、浮動小数点値をている。 %cはのためである あなただけの1を接続したい場合はchar型、 678 00:32:19,450 --> 00:32:23,510 フォーマット済みの文字列に文字 私たちが行ってきたように、あなたは、%cを使うことができます。 679 00:32:23,510 --> 00:32:28,490 >> そして、多少うるさく、%LLDです 長い、長い10進整数のために、 680 00:32:28,490 --> 00:32:31,050 あなたが本当に必要な場合だけを意味する 大きな数とは何かを使っている 681 00:32:31,050 --> 00:32:35,450 長い長い、私たちが来ると呼ばれる バックPSETでするには、にLLD%を使用することができます 682 00:32:35,450 --> 00:32:40,700 、printfは本当に大きなプラグインを教えてください ここではその第二の方法でまたは整数 683 00:32:40,700 --> 00:32:41,830 いくつかの他の引数。 684 00:32:41,830 --> 00:32:45,700 >> そして最後に、私が約束したこと 他のいくつかのエスケープはあり 685 00:32:45,700 --> 00:32:47,670 printfのサポートシーケンス。 686 00:32:47,670 --> 00:32:49,160 私たちは、バックスラッシュnを見てきました。 687 00:32:49,160 --> 00:32:50,510 バックスラッシュ-rをあなたが見ることがあります。 688 00:32:50,510 --> 00:32:51,780 これは、古い学校の事のようなものです。 689 00:32:51,780 --> 00:32:55,920 あなたは今まで本物のタイプライターの年を使用した場合 前に、あなたがクランクに引っ張ら 690 00:32:55,920 --> 00:32:59,810 これは、ホイールを回転させるだけでなく、 ラインナップを移動することも移動させる 691 00:32:59,810 --> 00:33:03,730 にオーバー背中全部ははるばる 左は、よく、バックスラッシュに-rだけ 692 00:33:03,730 --> 00:33:06,480 本質的にあなたのカーソル背中が動く 行の先頭へ 693 00:33:06,480 --> 00:33:07,830 それを下に移動せずに。 694 00:33:07,830 --> 00:33:09,780 しかし、再び、もっとその上で、 おそらく、将来インチ 695 00:33:09,780 --> 00:33:13,670 >> バックスラッシュ引用符、バックスラッシュ二重引用符、 バックスラッシュバックスラッシュです 696 00:33:13,670 --> 00:33:16,600 小さな小さな謎を解決 私は以前に触れた。 697 00:33:16,600 --> 00:33:18,920 バックスラッシュ-0は、実際にある 非常に興味深い。 698 00:33:18,920 --> 00:33:21,470 しかし、我々に戻ってくる そのずっと前に。 699 00:33:21,470 --> 00:33:25,640 >> だからCS50、今、私に行かせて アプライアンス、そして実際に行うにしましょう 700 00:33:25,640 --> 00:33:28,930 迅速な例の一つでウォームアップ 我々はすでに、その後に移りました 701 00:33:28,930 --> 00:33:31,160 もう少し複雑な何か。 702 00:33:31,160 --> 00:33:34,980 私は私のプログラムを開くのであれば geditの呼ばれる - 703 00:33:34,980 --> 00:33:36,840 これは私のグラフィカルなエディタです。 704 00:33:36,840 --> 00:33:38,460 そして、私はそれを行うことができます - 705 00:33:38,460 --> 00:33:39,820 私はそこに、そのウィンドウを閉じてみましょう - 706 00:33:39,820 --> 00:33:42,720 ここでダウンしてこのアイコンを経由して、 左下のテキストエディタで、 707 00:33:42,720 --> 00:33:44,170 メニューの横にあるコーナー。 708 00:33:44,170 --> 00:33:48,670 >> 私が先に行くと進めるつもりだ、と 、と言う、にジョンをこの例を保存 709 00:33:48,670 --> 00:33:49,660 ハーバードのフォルダ。 710 00:33:49,660 --> 00:33:52,690 ジョン·ハーバードのフォルダには、ちょうど彼の家である 彼のすべてのファイルが住んディレクトリ 711 00:33:52,690 --> 00:33:53,340 デフォルトでは。 712 00:33:53,340 --> 00:33:58,410 そして、私はこのように保存するつもり ハロー0.cというファイル。 713 00:33:58,410 --> 00:34:01,260 そして、私はこの名前を選んだだけでそう 上のサンプルコードでラインアップ 714 00:34:01,260 --> 00:34:04,210 もちろんのウェブサイトやで オンラインでYouTubeの動画。 715 00:34:04,210 --> 00:34:06,320 >> だから今、私は始めるつもりです 私の最初のプログラムを書く。 716 00:34:06,320 --> 00:34:08,469 私は読みやすくするためにズームインすることができます。 717 00:34:08,469 --> 00:34:12,760 そして、私は先に行くとint言うつもり ちょうどそのようであるメインボイド 718 00:34:12,760 --> 00:34:14,900 黄色のパズルピースその プログラムが起動します。 719 00:34:14,900 --> 00:34:18,290 私は上の習慣になったこと その後、私の中括弧を開く年 720 00:34:18,290 --> 00:34:22,000 また、それを閉じて、その後に戻って 私はちょうど、私のコードを配置したい場所 721 00:34:22,000 --> 00:34:24,630 それは私がすべてのものを保持するのに役立ちますので、 特に私のように、バランスのとれた 722 00:34:24,630 --> 00:34:25,880 プログラムが長くなる。 723 00:34:25,880 --> 00:34:29,239 >> そして今、ここで、私が先に行くつもりです そして、引用終わりを引用、printfは、言う 724 00:34:29,239 --> 00:34:34,330 こんにちは世界、バックスラッシュnを、近く引用、 閉じ括弧、セミコロン。 725 00:34:34,330 --> 00:34:38,100 だから私はちょうど私達がしたすべてのものを繰り返しています これまで当たり前に取って。 726 00:34:38,100 --> 00:34:39,270 今、私はズームアウトするつもりです。 727 00:34:39,270 --> 00:34:43,030 >> そして、このターミナルウィンドウダウンここで、どのような 私は、この黒でやるさせて頂いております 728 00:34:43,030 --> 00:34:44,389 と白の窓? 729 00:34:44,389 --> 00:34:46,977 私はそれを何に使用することができますか? 730 00:34:46,977 --> 00:34:49,770 だから、これは私がコマンドを実行する場所であると ここで私は物事をコンパイルすることができます。 731 00:34:49,770 --> 00:34:50,620 そして、私はそれをシンプルに保つつもりです。 732 00:34:50,620 --> 00:34:52,780 私は、プログラムを使用するつもりです メイクと呼ばれる、それはない 733 00:34:52,780 --> 00:34:54,020 技術的にはコンパイラ。 734 00:34:54,020 --> 00:34:56,360 コンパイラと呼ばれるClangのですが、 我々はにそれに戻ってくる 735 00:34:56,360 --> 00:34:57,190 週または2つの時間。 736 00:34:57,190 --> 00:35:03,410 >> 今のところ、私はただ作る入力するつもりです こんにちは-0、しかし、あなたのものであった人 737 00:35:03,410 --> 00:35:07,050 私はちょうどあなたの心の中に何を比較する 私が入力している必要がありますものに入力した可能性が 738 00:35:07,050 --> 00:35:10,180 私がしたことを既に知っている ここで間違って何か。 739 00:35:10,180 --> 00:35:12,160 さて、多少の誤差は明らかにあり。 740 00:35:12,160 --> 00:35:16,742 私もいずれ、彼らが何であるかを見る前に 私が間違っていたものとしての考えですか? 741 00:35:16,742 --> 00:35:18,590 >> 学生:[介在VOICES]。 742 00:35:18,590 --> 00:35:18,840 >> DAVIDマラン:うん。 743 00:35:18,840 --> 00:35:20,640 私はライブラリのヘッダファイルが欠けている。 744 00:35:20,640 --> 00:35:24,240 これらの。hファイルのいずれかが、ヘッダーと呼ばれ ファイル、およびそれらを総称 745 00:35:24,240 --> 00:35:25,680 ライブラリと呼ばれるものに属しています。 746 00:35:25,680 --> 00:35:28,030 図書館は単にコードの塊である 他の人が書いた。 747 00:35:28,030 --> 00:35:32,140 標準の[だから?私?]ライブラリです コー​​ドを含むファイルのコレクション 748 00:35:32,140 --> 00:35:33,330 他の人が書いた。 749 00:35:33,330 --> 00:35:34,820 >> だから私はそれが欠けている。 750 00:35:34,820 --> 00:35:36,520 では、なぜ私は、エラーを取得しています? 751 00:35:36,520 --> 00:35:40,840 まあ、私はバックアップにスクロールさせて ここに私のターミナルウィンドウ。 752 00:35:40,840 --> 00:35:44,310 そして残念なことに、C言語で、多くののように 特にプログラミング言語、 753 00:35:44,310 --> 00:35:47,830 それはすべてあなたに新しいだ場合は、エラー メッセージは正確であるが、彼らはまた、している 754 00:35:47,830 --> 00:35:48,620 かなり不可解。 755 00:35:48,620 --> 00:35:51,720 そして、ここでエラーが赤色であり、 "暗黙的に宣言するライブラリ関数 756 00:35:51,720 --> 00:35:57,660 printfの型と、 "とし、それをスクロール 次の行に、 "int型のconst char *を、 757 00:35:57,660 --> 00:36:00,220 ... "それはちょうど実際に取得する すぐに圧倒的。 758 00:36:00,220 --> 00:36:04,420 >> しかし、あなたは、あれば、何をすべきかを開始する必要があります 再び、このすべてに新しいだけにある 759 00:36:04,420 --> 00:36:06,010 キーワードを探すために始める。 760 00:36:06,010 --> 00:36:08,770 明らかに、私は半分を理解していない可能性があり 私はまだ見ている言葉。 761 00:36:08,770 --> 00:36:10,140 あなたは、一週間の時間では、しかし、意志。 762 00:36:10,140 --> 00:36:11,230 しかし、私はprintfを参照してください。 763 00:36:11,230 --> 00:36:14,310 そして、それはに、ずっと前に、開始する必要があります 、すべての権利、printfのあなたの記憶を呼び起こす。 764 00:36:14,310 --> 00:36:15,210 何かがprintfのと間違っている。 765 00:36:15,210 --> 00:36:16,580 私はそれが間違ってスペルましたか? 766 00:36:16,580 --> 00:36:18,130 いいえ、それは見えない - ああ。 767 00:36:18,130 --> 00:36:21,350 私が教えていない限り、私はそれを使用することはできません それが存在することをコンパイラ。 768 00:36:21,350 --> 00:36:25,220 そして、もう一度、あなたの本能に行く あなたが実際に理解していない場合でも、 769 00:36:25,220 --> 00:36:26,510 実際のエラーメッセージ。 770 00:36:26,510 --> 00:36:30,240 >> そして実際、ここでの解決策はただにある ファイルの先頭にそれを含める 771 00:36:30,240 --> 00:36:34,340 そのような、と私のファイルを再保存 コントロール-Sか、[ファイル]メニュー。 772 00:36:34,340 --> 00:36:36,730 そして、私は今、ここに戻ってダウンして行けば、 私はこれをクリアするつもりです。 773 00:36:36,730 --> 00:36:39,150 コントロール-Lは、ちょうど良い方法です 画面をクリアする。 774 00:36:39,150 --> 00:36:44,870 そして私はこんにちは作る "と入力するつもりです 0 "と入力し、今では私はまだ見 775 00:36:44,870 --> 00:36:47,710 シンボルの不可解なシーケンスが、 我々はそれに戻ってくる。 776 00:36:47,710 --> 00:36:49,230 というメイクがあなたのためにやっていることだ。 777 00:36:49,230 --> 00:36:52,590 それは服用プロセスを自動化するのは 関与かなり迷惑なコマンド 778 00:36:52,590 --> 00:36:54,050 打ち鳴らす、実際のコンパイラ。 779 00:36:54,050 --> 00:36:57,460 しかし、私はエラーを得ないという事実を意味 このことは働くべきであること。 780 00:36:57,460 --> 00:37:00,630 >> だから私は今何をするつもりだ - 私は再び拡大させて - 781 00:37:00,630 --> 00:37:07,070 ./hello-0は入力して、確かに、私が参照してください "こんにちは、世界。"だから今高めてみましょう 782 00:37:07,070 --> 00:37:12,105 これは、ほんの少しだけ複製する 我々が意図したステップ。 783 00:37:12,105 --> 00:37:15,370 私は、この名前を変更するつもりです hello1.cに名前を付けて保存。 784 00:37:15,370 --> 00:37:20,300 そして今、私は変数を宣言するつもりだ いわゆる名前なので、文字列名、 785 00:37:20,300 --> 00:37:23,420 と私はそれに置くつもりです 引用·引用終わりの値 786 00:37:23,420 --> 00:37:27,030 D--V-I-Dクローズ引用セミコロン。 787 00:37:27,030 --> 00:37:31,150 そして今、私は "世界"を交換するつもりです 文字列の何プレースホルダと? 788 00:37:31,150 --> 00:37:32,200 %sは。 789 00:37:32,200 --> 00:37:35,040 >> そして今、どのように多くの引数をすべき printfはこの時間がかかる? 790 00:37:35,040 --> 00:37:35,700 2だから。 791 00:37:35,700 --> 00:37:37,090 だから私は、引用符の外に出る。 792 00:37:37,090 --> 00:37:39,330 私は、カンマの後に "名前"を入力します。 793 00:37:39,330 --> 00:37:41,550 しかし、私は何かをやった 今回は他に間違って。 794 00:37:41,550 --> 00:37:43,940 しかし、のは、私はしなかったと仮定してみましょう それはまだ実現しています。 795 00:37:43,940 --> 00:37:44,910 私はここに行ってみよう。 796 00:37:44,910 --> 00:37:48,850 >> と通知は、あまりにも、私は少しを得て すべての "こんにちは0 make"を入力するのは退屈 797 00:37:48,850 --> 00:37:50,180 時間は、 "make"を、すべてこの。 798 00:37:50,180 --> 00:37:53,270 だから、それはあなたができるライナスで、判明 頻繁に上向き矢印をヒット 799 00:37:53,270 --> 00:37:56,850 キーボード、あなたが実際にスクロールすることができます 私がしたことをすべてのコマンドを通じ 800 00:37:56,850 --> 00:37:58,830 ちょうど今前に実行されます。 801 00:37:58,830 --> 00:38:02,040 私がやるのであれば、アップ、アップ、その こんにちは0メイクあり。 802 00:38:02,040 --> 00:38:02,610 私はそれを望んでいない。 803 00:38:02,610 --> 00:38:05,450 私はちょうどにそれを変更したい こんにちは1今回は、入力します。 804 00:38:05,450 --> 00:38:07,620 最終的には、その意志 あなたにいくつかの時間を節約できます。 805 00:38:07,620 --> 00:38:08,150 >> わかりました。 806 00:38:08,150 --> 00:38:09,520 残念なことに、エラーが発生しているのです。 807 00:38:09,520 --> 00:38:10,980 だから私は上にスクロールしてみましょう。 808 00:38:10,980 --> 00:38:13,120 これは本当に私のように見えます このプログラムを虐殺。 809 00:38:13,120 --> 00:38:16,530 私は、私の神を意味し、それは、2行のコードです のエラーとその10行。 810 00:38:16,530 --> 00:38:18,800 しかし、最初に一番上を見てください。 811 00:38:18,800 --> 00:38:21,640 宣言されていない識別子の文字列の使用。 812 00:38:21,640 --> 00:38:23,270 私は標準のI Nを意味しましたか? 813 00:38:23,270 --> 00:38:23,930 私はしませんでしたありません。 814 00:38:23,930 --> 00:38:24,940 私は文字列を意味した。 815 00:38:24,940 --> 00:38:29,390 >> しかし、文字列変数はどこにある タイプは、私たちが言う、DD宣言? 816 00:38:29,390 --> 00:38:30,730 だから、CS50ライブラリにあります。 817 00:38:30,730 --> 00:38:33,740 だから、これらの最初には、十分ではありません 数週間だけ使用する 818 00:38:33,740 --> 00:38:34,860 何Cは私たちを与えます。 819 00:38:34,860 --> 00:38:38,120 私もここに行く、と私だ 上か下に置くが、私は可能性がよ 820 00:38:38,120 --> 00:38:40,340 ちょうどそれがアルファベット順に保つ 物事が整然と維持する。 821 00:38:40,340 --> 00:38:43,470 私は、cs50.hを含めるつもりです にあらかじめインストールされている 822 00:38:43,470 --> 00:38:44,900 CS50アプライアンス上のあなた。 823 00:38:44,900 --> 00:38:47,640 そしてそれは人であっても、オープンソースなので、 インターネット上で自分でそれを使用することができます 824 00:38:47,640 --> 00:38:48,450 自分のコンピュータ。 825 00:38:48,450 --> 00:38:50,700 しかし、それはCS50アプライアンスが付属しています。 826 00:38:50,700 --> 00:38:55,320 >> だから今私は戻って、再コンパイルしてみましょう これでこんにちは1作る。 827 00:38:55,320 --> 00:38:55,710 畜生。 828 00:38:55,710 --> 00:38:57,240 まだ別のエラー。 829 00:38:57,240 --> 00:38:59,370 しかし、私が最初までスクロールしてみましょう。 830 00:38:59,370 --> 00:39:00,630 こちらは、少し複雑です。 831 00:39:00,630 --> 00:39:03,830 マルチ文字文字定数。 832 00:39:03,830 --> 00:39:04,890 それは私を助けていない。 833 00:39:04,890 --> 00:39:08,220 しかし、通知は、Clangのは、少なくとも少しです それによって少しと、少しまとも 834 00:39:08,220 --> 00:39:11,890 緑色のキャレット記号は、それが言っている 私はめちゃくちゃ場所ここにある。 835 00:39:11,890 --> 00:39:16,160 なぜそれがその少しが、指している 次の単一引用符に緑色の矢印、 836 00:39:16,160 --> 00:39:18,290 私の名前に? 837 00:39:18,290 --> 00:39:20,880 >> だから、これはあなただけのものの一つです あなたがしてきた場合は特に、慣れる 838 00:39:20,880 --> 00:39:23,980 Pythonの、またはJavaScriptでのプログラミング、 または他の言語どここの詳細 839 00:39:23,980 --> 00:39:24,560 関係ありません。 840 00:39:24,560 --> 00:39:25,740 C言語では、それは重要ではありません。 841 00:39:25,740 --> 00:39:29,520 あなたは文字列を宣言している場合、これはです 0個以上の文字の並び、 842 00:39:29,520 --> 00:39:32,280 実際には二重引用符を使用する必要があります。 843 00:39:32,280 --> 00:39:36,670 だから私は、実際にこのバックを変更する必要があります 見積もりを開くために、と、引用を閉じ 844 00:39:36,670 --> 00:39:37,800 二重引用符。 845 00:39:37,800 --> 00:39:41,610 単一引用符は、その場所を持っているが、 あなたは、個々の使用している場合にのみ 846 00:39:41,610 --> 00:39:44,100 その別の時間に文字が、より多くの。 847 00:39:44,100 --> 00:39:46,550 今のところ、二重引用符 必要です。 848 00:39:46,550 --> 00:39:50,460 >> だから今、私は私の端末に戻りましょう 窓、こんにちは1作る。 849 00:39:50,460 --> 00:39:51,450 と自信を持って誰ですか? 850 00:39:51,450 --> 00:39:53,800 このプログラムは、今起こっている 正しくコンパイルするには? 851 00:39:53,800 --> 00:39:58,250 852 00:39:58,250 --> 00:39:58,540 OK。 853 00:39:58,540 --> 00:39:59,780 だから私たちの3人はこのことを考えています。 854 00:39:59,780 --> 00:40:00,280 わかりました。 855 00:40:00,280 --> 00:40:01,190 入力します。 856 00:40:01,190 --> 00:40:02,440 そしてそれは実際にやった。 857 00:40:02,440 --> 00:40:05,130 だからエラーが今回も、ありません このプログラムは、ビットを得ているものの 858 00:40:05,130 --> 00:40:05,840 より複雑。 859 00:40:05,840 --> 00:40:10,110 私は今ドットスラッシュこんにちは1を行う場合、入力 それを言うために起こっている "こんにちは、デヴィッド。" 860 00:40:10,110 --> 00:40:11,750 >> しかしみましょう第三の反復を行う これは、ここで 861 00:40:11,750 --> 00:40:13,380 プログラムは本当にダイナミックです。 862 00:40:13,380 --> 00:40:16,770 私が先に行くと、ファイルを変更してみましょう だけとの整合性のために名前、 863 00:40:16,770 --> 00:40:20,410 あなたが利用できる必要がありますファイル その後オンラインであなたに。 864 00:40:20,410 --> 00:40:21,620 入力します。 865 00:40:21,620 --> 00:40:25,510 そして今、私はではなく、行くつもりです ハードコーディングされて、ここで "デビッド"を格納します。 866 00:40:25,510 --> 00:40:28,826 私は非常に単純に何ができ このプログラムを改善する? 867 00:40:28,826 --> 00:40:30,520 >> 私は、GetStringメソッドを呼び出すことができます。 868 00:40:30,520 --> 00:40:33,240 それは少し非自明何かもしれない 起こることについては、私は行くよ 869 00:40:33,240 --> 00:40:38,470 実際には別のライン、printf関数を追加する とだけ、名、コロン、近い引用を言う 870 00:40:38,470 --> 00:40:40,790 ユーザにプロンプ​​トを与えるために 画面上で。 871 00:40:40,790 --> 00:40:42,980 そして今、私はここに行くつもりだ、と私はよ 私のキーボードショートカットを使用するつもり。 872 00:40:42,980 --> 00:40:47,680 私は、上に行くと、変更するつもりだ こんにちは2〜1こんにちは、入力します。 873 00:40:47,680 --> 00:40:49,260 そしてありがたいことに、私は進歩しています。 874 00:40:49,260 --> 00:40:52,720 >> そして今、私は行くつもりです ドットスラッシュこんにちはへと 875 00:40:52,720 --> 00:40:54,690 2には、次のように入力することに変更。 876 00:40:54,690 --> 00:40:55,650 そして今、私のプログラム - 877 00:40:55,650 --> 00:40:57,700 私にズームインよ - なっている 少しきれい。 878 00:40:57,700 --> 00:41:02,190 名前はのは、ロブを言わせて、あることを行っている 今回は、、こんにちは、ロブを入力してください。 879 00:41:02,190 --> 00:41:03,260 我々は再びそれを行うことができます。 880 00:41:03,260 --> 00:41:05,360 名前、ローレンは、入力します。 881 00:41:05,360 --> 00:41:07,820 名前、ヨセフは、入力します。 882 00:41:07,820 --> 00:41:11,596 名前、のがために試してみましょう 難しい、入力します。 883 00:41:11,596 --> 00:41:12,410 ええ。 884 00:41:12,410 --> 00:41:14,680 それは本当にバグではありません。 885 00:41:14,680 --> 00:41:16,090 だから、ほんの少し醜いです。 886 00:41:16,090 --> 00:41:18,640 だから多分私達はこの問題を解決することができ 将来的には、今ではない。 887 00:41:18,640 --> 00:41:20,840 >> しかし、どのように本能的にあなたでしょう アドレッシング取り掛かる 888 00:41:20,840 --> 00:41:21,990 その特定の挑戦? 889 00:41:21,990 --> 00:41:23,710 それはちょうど愚かに見えます。 890 00:41:23,710 --> 00:41:27,320 どのようなことを避けるか 愚か探しですか? 891 00:41:27,320 --> 00:41:29,890 だから我々は行うことができ、[OK]を、私はカップルを聞いた 物事の、条件とループ。 892 00:41:29,890 --> 00:41:33,340 我々はチェックするために、、、の条件をいずれかを使用することができ 文字列の長さは何ですか 893 00:41:33,340 --> 00:41:34,190 ユーザーは私たちを与えた? 894 00:41:34,190 --> 00:41:37,100 そして、それが0だと、それだけで、引用終わりを引用だ 彼らはその後、Enterキーを打つ 895 00:41:37,100 --> 00:41:38,930 多分私は彼らに叫ぶべき そしてそれらを再度促す。 896 00:41:38,930 --> 00:41:39,970 しかし、どのようにそれらを再度促すのですか? 897 00:41:39,970 --> 00:41:44,230 まあ、私はまた、ループを聞いて、私は可能性 何度も何度も何度もそれを行うこと 898 00:41:44,230 --> 00:41:47,010 同じことをユーザーに促す。 899 00:41:47,010 --> 00:41:48,880 >> さて、もう一つの例を実行してみましょう 別のを使用して 900 00:41:48,880 --> 00:41:50,620 CS50ライブラリ内の関数。 901 00:41:50,620 --> 00:41:52,330 私は、このファイルを閉じてみましょう。 902 00:41:52,330 --> 00:41:53,510 私は新しいものを作成してみましょう。 903 00:41:53,510 --> 00:41:58,510 そして、私はちょうどので、それはadder.c呼ぶことにします それは、単純な計算を行うのは簡単です 904 00:41:58,510 --> 00:42:00,890 これは完全になるにもかかわらず あなたは何ができるかとがっかり 905 00:42:00,890 --> 00:42:02,250 現代の任意のコンピュータで。 906 00:42:02,250 --> 00:42:03,750 >> しかし、今私が先に行かせてと - 907 00:42:03,750 --> 00:42:10,680 私は最後の時間私の教訓を学んだ - 含む cs50.h、インクルードstdio.hに、int型 908 00:42:10,680 --> 00:42:14,170 メインボイド、今のところ、私はちょうどよ 盲目の信仰を取るが、我々は仮定します 909 00:42:14,170 --> 00:42:16,380 何を理解すること 前に長いことを意味します。 910 00:42:16,380 --> 00:42:21,030 そして、私は何かを言うつもりです のように "私にはintを与える。" 911 00:42:21,030 --> 00:42:22,140 >> そして今、どのように私はint型を得るのですか? 912 00:42:22,140 --> 00:42:26,820 私は最終的に変数を宣言したい int型のxと呼ばれる 913 00:42:26,820 --> 00:42:29,240 その中にユーザーからの整数を格納します。 914 00:42:29,240 --> 00:42:29,970 だから一口でした。 915 00:42:29,970 --> 00:42:35,680 誰かが提案したい場合、どのように 私はXと呼ばれる整数を宣言するのですか? 916 00:42:35,680 --> 00:42:36,310 int型X。 917 00:42:36,310 --> 00:42:37,430 >> だからそれは本当に簡単です。 918 00:42:37,430 --> 00:42:38,240 私にint型を与える。 919 00:42:38,240 --> 00:42:39,070 それX呼ぶ。 920 00:42:39,070 --> 00:42:40,580 今私は、代入演算子を使用しています。 921 00:42:40,580 --> 00:42:43,400 そして、どのように私はから保存か ユーザーの値を左? 922 00:42:43,400 --> 00:42:47,310 私は、GetStringメソッドをコールする必要はありません 当然、むしろ場合、getInt。 923 00:42:47,310 --> 00:42:49,060 引数? 924 00:42:49,060 --> 00:42:49,350 いいえ。 925 00:42:49,350 --> 00:42:51,870 だから、括弧、近く括弧開いている 直ちに、次いで 926 00:42:51,870 --> 00:42:53,440 セミコロンは、行を終了します。 927 00:42:53,440 --> 00:42:54,930 >> 今私は再びこれを行うことができます。 928 00:42:54,930 --> 00:42:57,070 私に別のint型を与える。 929 00:42:57,070 --> 00:43:01,850 今回は私がintやる、みましょう それY呼び出す場合、getIntに等しい。 930 00:43:01,850 --> 00:43:05,060 そして今、私は超シンプルな何かをしてみましょう いくつかの数学のような。 931 00:43:05,060 --> 00:43:14,340 だからprintfは、%d個の合計です int型のプレースホルダ。 932 00:43:14,340 --> 00:43:20,030 と%dは、期間、バックスラッシュnを。 933 00:43:20,030 --> 00:43:20,360 >> わかりました。 934 00:43:20,360 --> 00:43:21,670 だから、実際には数学ではありません。 935 00:43:21,670 --> 00:43:25,500 しかし、私はこれの合計を言いたい場合 値を加えた、この値は、これを等しく 936 00:43:25,500 --> 00:43:29,320 他の値は、どのように多くの引数に 合計は、私は、printfを与えるべきである 937 00:43:29,320 --> 00:43:30,520 最終的には? 938 00:43:30,520 --> 00:43:31,420 4だから、右? 939 00:43:31,420 --> 00:43:33,790 この文字列は、次に三つの値。 940 00:43:33,790 --> 00:43:37,560 xが最初であるので、私はなりたい %dと最初にプラグイン。 941 00:43:37,560 --> 00:43:39,270 yは次のことを行っている。 942 00:43:39,270 --> 00:43:42,030 >> そして今、私は一種の言いたい Zが、zは存在しません。 943 00:43:42,030 --> 00:43:43,190 しかし、それは大したことではありません。 944 00:43:43,190 --> 00:43:45,440 なぜならあなたは、本能的に何をしますか あなたは持っていた場合は特に 945 00:43:45,440 --> 00:43:47,820 グラフ電卓、あなたは何を入力するのですか? 946 00:43:47,820 --> 00:43:48,760 どのようにXプラスYはどうでしょうか? 947 00:43:48,760 --> 00:43:50,200 だから、実際の変数ではありません。 948 00:43:50,200 --> 00:43:51,820 それは、ちょうど2つの合計です 他の変数。 949 00:43:51,820 --> 00:43:53,170 そして、それは完全に合法です。 950 00:43:53,170 --> 00:43:56,630 Cは確かに簡単な理解 このような算術。 951 00:43:56,630 --> 00:43:58,450 >> セミコロンは、保存してください。 952 00:43:58,450 --> 00:44:02,080 今私はここでダウンして手放すと 加算を行う入力し、入力します。 953 00:44:02,080 --> 00:44:04,100 エラーなし、あまりにも進歩だそう。 954 00:44:04,100 --> 00:44:04,890 加算を入力します。 955 00:44:04,890 --> 00:44:07,100 また、別のキーボードショートカット、 あなたが退屈し始めた場合 956 00:44:07,100 --> 00:44:08,760 - すべてのコマンドと 957 00:44:08,760 --> 00:44:12,650 は、ドットのように、コマンドを入力して起動した場合 広告を大幅に削減し、どこにあなたのことです 958 00:44:12,650 --> 00:44:16,020 退屈は、あなたが普段打つことができ、中キック タブには、コンピュータが終了しているため 959 00:44:16,020 --> 00:44:20,510 あなたのためのフレーズの残りの部分、それがない場合 あいまいな何が広告の後に来る必要があります。 960 00:44:20,510 --> 00:44:23,950 >> だから今、私は先に行かせて そしてあなたは[Enter]をクリックします。 961 00:44:23,950 --> 00:44:27,490 私にint型、1、2を与え、 ありがたいことに、それは3だ。 962 00:44:27,490 --> 00:44:29,900 しかし、いつものように、プログラムをテストする に減らすべきではありません 963 00:44:29,900 --> 00:44:30,820 一度だけ、それをしようとしています。 964 00:44:30,820 --> 00:44:35,560 私は負のようなコーナーケースを試してみましょう 1、私に1を与え、もの 965 00:44:35,560 --> 00:44:36,210 同様にチェックアウトします。 966 00:44:36,210 --> 00:44:38,870 そして、私はおそらくいくつかの詳細をやってみたい 厳密なテストが、私は可愛いよ 967 00:44:38,870 --> 00:44:40,630 それはATの場所で快適。 968 00:44:40,630 --> 00:44:43,110 >> さて、今のは、別のプログラムを試してみましょう この時間は、使用していること 969 00:44:43,110 --> 00:44:44,620 その他の構文のビット。 970 00:44:44,620 --> 00:44:46,100 私は、新しいファイルを作成してみましょう。 971 00:44:46,100 --> 00:44:51,050 私はラインにこのconditions0.cを呼ぶことにします までいくつかのサンプルコードをオンラインで。 972 00:44:51,050 --> 00:44:55,550 そして、私が先に行くとやらせる 含む、cs50.hを含める 973 00:44:55,550 --> 00:45:00,320 メイン空間でstdio.hに、 - 974 00:45:00,320 --> 00:45:01,030 OK。 975 00:45:01,030 --> 00:45:01,850 そうしよう。 976 00:45:01,850 --> 00:45:03,010 私たちは、当社の標準定型を持っている。 977 00:45:03,010 --> 00:45:08,170 >> そして、今回は私が、printfを言うつもりです だけに "私はint型、お願いをしたいのです" 978 00:45:08,170 --> 00:45:10,030 プロンプトを少し作る もっと優しい。 979 00:45:10,030 --> 00:45:11,620 そして今、私は取得したい ユーザーからint型。 980 00:45:11,620 --> 00:45:15,010 私はちょうど、そのnのこの時間を呼び出すつもりだ nは数字のように聞こえるので。 981 00:45:15,010 --> 00:45:18,140 場合、getInt、そして今、何をすべきか 私はそれで何をしたい? 982 00:45:18,140 --> 00:45:21,640 さて、nがあれば - と、私は、ズームインします - 983 00:45:21,640 --> 00:45:25,930 nが0より大きい場合、Iが欲しい 次のことを行うには - 984 00:45:25,930 --> 00:45:36,060 printfの "あなたは正の数を選んだ。" そうでなければ、私はあなたは "printfを入力するつもりです 985 00:45:36,060 --> 00:45:37,870 負を選んだ 986 00:45:37,870 --> 00:45:39,650 数。 "すべての権利。 987 00:45:39,650 --> 00:45:44,410 このプログラムでは、だから、私はそれをしなかったにもかかわらず、 速く、右構文的に見えます。 988 00:45:44,410 --> 00:45:45,010 私はこれを試してみましょう。 989 00:45:45,010 --> 00:45:46,890 条件0を作る。 990 00:45:46,890 --> 00:45:47,710 実行するように思われる。 991 00:45:47,710 --> 00:45:49,230 状態0、入力します。 992 00:45:49,230 --> 00:45:51,910 のはそれを50の整数を与えてみましょう。 993 00:45:51,910 --> 00:45:53,160 私は、正の数を選んだ。 994 00:45:53,160 --> 00:45:54,230 のは再びそれを試してみましょう。 995 00:45:54,230 --> 00:45:54,930 コンディション0。 996 00:45:54,930 --> 00:45:56,260 50負。 997 00:45:56,260 --> 00:45:57,290 私は負の数を選んだ。 998 00:45:57,290 --> 00:46:00,350 >> しかし、今、我々はしておこうか私が選択できるよう 以上でコーナーケース、呼び出し 999 00:46:00,350 --> 00:46:04,702 あなたが考えることは興味深いケース あなたにいくつかのトラブル、0を与えるかもしれない。 1000 00:46:04,702 --> 00:46:07,940 さて、私はこれがの一つであるかなり確信している ゼロであるそれらのコーナーケース 1001 00:46:07,940 --> 00:46:12,330 正でも負でもないので、私の プログラム、構文にかかわらず 1002 00:46:12,330 --> 00:46:15,440 正しい - それはコンパイルし、それを実行する - 論理的に正しくありません。 1003 00:46:15,440 --> 00:46:21,050 私がしたい場合はそう単純では修正はここで何 私がnを処理したい場合は、検出する 1004 00:46:21,050 --> 00:46:23,840 別々に0に等しい? 1005 00:46:23,840 --> 00:46:32,980 >> nは0に等しいのであれば、私は言いたい printfのようなものが "あなたは0を選んだ。" 1006 00:46:32,980 --> 00:46:33,990 私は今、これを試してみましょう。 1007 00:46:33,990 --> 00:46:38,320 明確に、私はここに戻って行ってみよう 私の窓、再コンパイル。 1008 00:46:38,320 --> 00:46:38,690 フム。 1009 00:46:38,690 --> 00:46:39,770 一つのエラーが生成されます。 1010 00:46:39,770 --> 00:46:41,630 しかし、私はあなたがチェックしたい nが0に等しい場合。 1011 00:46:41,630 --> 00:46:44,230 1012 00:46:44,230 --> 00:46:47,720 >> だからもう一度、別の愚かなこと 慣れるために、等号は 1013 00:46:47,720 --> 00:46:48,910 代入演算子。 1014 00:46:48,910 --> 00:46:52,240 だから、これは、実際にその中に間違いです 技術的には、たとえコンパイラ 1015 00:46:52,240 --> 00:46:56,450 我々は、自分から私を保護したい 技術的にはn個に0をコピーすることが、どの 1016 00:46:56,450 --> 00:46:57,590 私が欲しいものではありません。 1017 00:46:57,590 --> 00:47:00,950 私は平等のためにテストしたい とに等しい等しい。 1018 00:47:00,950 --> 00:47:03,390 そしてそれは今かもしれない 私のよりよい解決策。 1019 00:47:03,390 --> 00:47:07,810 >> 私は実際に、言う、としてこれを保存し直してみましょう 条件1、新しく改良すべき。 1020 00:47:07,810 --> 00:47:10,480 だから今私はこれをコンパイルする場合、 それが条件になるだろう - 1021 00:47:10,480 --> 00:47:16,960 おっと - 条件1ドットスラッシュを作る 条件1、入力し、 "私は、int型をしたい、 1022 00:47:16,960 --> 00:47:18,760 お願いします "私は行くつもりです 先に、50を入力します。 1023 00:47:18,760 --> 00:47:19,660 それはまだ良いことだ。 1024 00:47:19,660 --> 00:47:21,200 50負、まだ良い。 1025 00:47:21,200 --> 00:47:24,920 0、それは、実際に、検出された 私は0を選んだこと。 1026 00:47:24,920 --> 00:47:28,200 >> だから私は今、これでもっと何ができるのでしょうか? 1027 00:47:28,200 --> 00:47:32,280 さて、私たちは確かにますます行うことができます 複雑な物事。 1028 00:47:32,280 --> 00:47:37,240 しかし、私が提案したいのはです 我々はここで、このノートに終了すること。 1029 00:47:37,240 --> 00:47:41,680 我々はこれをプルアップした場合は、おそらく、わかります 君の好きな漫画 1030 00:47:41,680 --> 00:47:43,326 あなた次第では可能性がある今日まで 理解したことはなかった。 1031 00:47:43,326 --> 00:47:46,550 1032 00:47:46,550 --> 00:47:49,520 そして、それは笑いの質についてです あなたは、CSのジョークを取得する必要があります。 1033 00:47:49,520 --> 00:47:51,060 だから、約そうですね。 1034 00:47:51,060 --> 00:47:54,900 >> しかし、もっと説得力、私はしようと思いました 問い合わせ月曜日少しティーザーを与える。 1035 00:47:54,900 --> 00:47:56,430 だから我々は、整数を使用して開始しました。 1036 00:47:56,430 --> 00:47:57,510 私たちは、山車と呼ばた。 1037 00:47:57,510 --> 00:48:00,120 私たちも、ダブルスの呼びましたが、 その、もう一度、あなたの番号を与える 1038 00:48:00,120 --> 00:48:01,390 小数点の後。 1039 00:48:01,390 --> 00:48:04,230 >> しかし、それは浮かぶ、その判明 ダブルス、そして、実際には、コンピュータ、 1040 00:48:04,230 --> 00:48:08,470 根本的に、表現することはできません 正確にいくつかの値。 1041 00:48:08,470 --> 00:48:12,840 あなたができることを我々は数学のクラスから知っている 後の数字は任意の数を有する 1042 00:48:12,840 --> 00:48:13,510 小数点。 1043 00:48:13,510 --> 00:48:16,460 あなたも縦棒を置くことができます これらは永遠に行くと言っています。 1044 00:48:16,460 --> 00:48:18,810 >> 残念なことに、あなたは本当にできません コンピュータにそれを行う。 1045 00:48:18,810 --> 00:48:20,400 そしてコーナーケースが発生します。 1046 00:48:20,400 --> 00:48:23,120 たとえば、あなたがしていると仮定 金融の何かをする。 1047 00:48:23,120 --> 00:48:25,700 あなたは数学をやっている 割合とし、 1048 00:48:25,700 --> 00:48:27,030 ドルとセントで。 1049 00:48:27,030 --> 00:48:29,230 そして、それらのセントはしないでください ラインを必ずしも。 1050 00:48:29,230 --> 00:48:34,120 まあ、それはの端数が判明 ペニーは時まで追加を開始することができます 1051 00:48:34,120 --> 00:48:37,250 コンピュータシステムでモデル化 その巧妙な方法で 1052 00:48:37,250 --> 00:48:39,100 人間が利用することができます。 1053 00:48:39,100 --> 00:48:42,650 >> そして、私は、と思い見ていない人の あなたの30秒のティーザーを与えたい 1054 00:48:42,650 --> 00:48:48,290 オフィススペースとして知られている素晴らしい映画、 の絵をペイントされる 1055 00:48:48,290 --> 00:48:51,205 私たちが取り組むものと問題 月曜日の最初のもの。 1056 00:48:51,205 --> 00:48:53,960 私たちは、音量を上げることができれば 少し、私はあなたに30を与える 1057 00:48:53,960 --> 00:48:55,495 オフィススペースの秒。 1058 00:48:55,495 --> 00:48:55,770 >> [ビデオの再生] 1059 00:48:55,770 --> 00:48:59,000 >> 私は、意味、あなたには、表示されていない まで、あなたの仕事を維持するために取得します。 1060 00:48:59,000 --> 00:49:00,620 >> - 実際に、私が推進されています。 1061 00:49:00,620 --> 00:49:03,240 >> ·私は思いますウイルスをプログラム可能性 ビッグオフ時間その場所をリッピング。 1062 00:49:03,240 --> 00:49:04,430 >> - まあ、それはどのように動作しますか? 1063 00:49:04,430 --> 00:49:06,782 >> 銀行取引があり、毎回 関心が計算され、そこにされている 1064 00:49:06,782 --> 00:49:10,160 何千もの日ですが、コンピュータが終了 セントのこれらの画分でアップ。 1065 00:49:10,160 --> 00:49:12,030 >> - しかし、私はするつもりはない 違法何でもする。 1066 00:49:12,030 --> 00:49:12,660 >> - 不正な? 1067 00:49:12,660 --> 00:49:15,075 サミールは、これはアメリカである。 1068 00:49:15,075 --> 00:49:16,570 >> - 我々は神に誓ってしなければならない。 1069 00:49:16,570 --> 00:49:19,070 >> - 場合は、誰もこのことについて知っていない しかし、私たち、大丈夫? 1070 00:49:19,070 --> 00:49:21,920 いいえ家族ない、ない ガールフレンド、誰も。 1071 00:49:21,920 --> 00:49:22,700 >> ·コース。 1072 00:49:22,700 --> 00:49:23,320 >> 合意された。 1073 00:49:23,320 --> 00:49:24,280 >> を短絡、男。 1074 00:49:24,280 --> 00:49:25,640 私はどちらか誰にも教えてくれません。 1075 00:49:25,640 --> 00:49:26,504 >> [ENDビデオ再生] 1076 00:49:26,504 --> 00:49:30,030 >> DAVIDマラン:だから、これは、その後、CS50ですが、 それはオフィススペースであり、それはすべての意志 1077 00:49:30,030 --> 00:49:31,465 月曜日に意味をなす。 1078 00:49:31,465 --> 00:49:33,940 次にお会いしましょう​​。 1079 00:49:33,940 --> 00:49:37,880 >> ナレーター:次のCS50で、ロブ オフであることに調整 1080 00:49:37,880 --> 00:49:39,130 ハーバード食事プラン。 1081 00:49:39,130 --> 00:49:56,160