[音楽再生] DAVIDマラン:すべての権利、これはCS50である これは、週1の終わりである。 だから私は私の元を紹介したいと思います だけではなくなり助言を受ける人、アンデル·ダフ、 iPhone 5は、本だけでなく、スタンド 書見台は、彼はまた、車を作る。 ANSEL DUFF:どのように、誰もが起こっているのですか? 私はあなたを少しお伝えしたいと思います の式IのSAE、について少し 船長です。 それは、MITのチームだ。 私はあなたに伝えたい みんなそれについて少し うまくいけば、いくつかの興味を発生させる。 だから私はちょうどを通して実行してみましょう 私たちのチームについてのカップルのこと。 だから私たちは完全にしている 学生はここですべての実行 メンバーの設計、シミュレート、 サブシステムテスト、および製造業者 車の。 私たちは私たち自身の機械工場を持っている そしてガレージ、およびN52--または申し訳ありませんが、 同じ建物でN51-- MITの科学博物館があります。 そして、私たちは人です それは車を運転。 全国大会があります 夏の初めに、 、次に小さい銃撃戦があります 年間を通じて競技。 そして、私たちはドライバーのトレーニングを行う 日新しいメンバーが知り合いになる。 私たちのビルド日がオンになっている 午前11時から午後8時まで、土曜日。 ランチとディナーは、ケアを取っている Bertucciのとビーンタウンからの それぞれ。 私たちは、毎週の会議を持ち、 コー​​スの費用の支払いを希望されるセミナー、。 これは、この学期のように新しく、 それはまた、次の学期のためになります だから、そのために-REGを越えることができます。 そして私たちは、設計、お店を持っている そして平日のCAD日、 メンバーが独立して意志のに対し CAD部品、順在庫エトセトラ。 電気についてはこれ チームのエンジニアリング 私たちは私たちの牽引を持っている、 高電圧システム、 名目で実行される 含まれる300ボルト、 モータ、モータコントローラ、 とバッテリパック。 それから、低いを持っている 動作する電圧方式、 12ボルトで、これは含まれてい コントロール、CANノード、脳 ボックスをオンにして、ダッ​​シュボード。 限りCSが行く、私たちは何 ウェブサイトのメンテナンスを持っている 私たちはイベントのために行わする必要があることを、メンバーシップ 変更、新しい画像、及びPR材料。 そして、私達は制御するコードを持っている 私たちのトラクションコントロール、打ち上げのための車 制御、ダッシュ制御、トルクベクタリング、 回生制動システム、およびその MATLABで一般的に実行され、 Simulinkは、とLabVIEW。 あなたの車について少し教えてください。 だから、約500ポンドだ。 それは、85キロワットに限られたルールです。 これは、2 EMRAX 207モーターを持ってい バック、それぞれの後輪用です。 それは、特注の電池パックを持ってい プリズムA123ポーチ細胞から、 300ボルトを合計し、 5.6キロワット時間。 そしてそれはとのダイレクトドライブだ 2.64から1駆動比。 ここではいくつかの写真たちです 大会でそれを取った。 ここに戻って、ノーズコーンです、 とモーターはここにある、 それらの大きな黒いディスク らメンズマヌスの下に。 ここで私が引っ張っスライドです 私たちの競争スキームのうち。 そして、これはちょうどに私達の車を比較している 市販されている車のカップル、 KTM XBOW、アリエルのような アトム、およびCaterha M 7から280。 あなたが価格に精通している場合、電源 、馬力当たりのドルを重量を引いて、 トルクあたりドル、そして私たちの車 水からそれらすべてを吹く。 ご質問があれば、 このメールアドレスをメモ。 fsae@mit.edu私達に電子メールを撃つ。 私たちは、について話させていただきます あなたが好きなもの。 ハーバード大学の学生が親切です チームの少数派の。 あなたはについてのご質問がありましたら その私達に電子メールを撮影してください、 話をさせていただき、私は行くよ バックデビッドへ向かうために。 ありがとうございます。 私は、みんなにそれを感謝しています。 [拍手] DAVIDマラン:アンセル·夏過ごした CS50でのキャンパスで、ここで私達と一緒に仕事 この夏。 そして、上の作業に加えて、 バイナリ電球のようなもの、 彼は実際には本当に私たちを開設 eyes--とparticular--鉱山 本当に何の交差点まで ないハードウェアおよびソフトウェアのであることができる。 実際、彼は多くのことは、単に あなたを介して最終的にある見学 最初のソフトウェアで作成された、 そして、最終的に製造された ハードウェアでの現実の世界で。 だから、に興味があるなら その交差点を模索し、 おそらく、そのグループを取る。 今、あなたの一方、それらの 技術のファンが誰である、 アップル製品の 特に知っていることがある のカップルだった 発表昨日。 しかし、私たちは私たちが示しているだろうと思っていた 出てきたお1 数日前にその あなたが見ていない可能性があります。 ヨルゲンEGHAMMER:あなたが知っている、 一度しばらく何か中 そのやって来る 私たちが住んでいる方法を変更します。 非常にシンプルで直感的なデバイス それを使用することはほとんど馴染みの感じている。 2015 IKEAカタログをご紹介します。 これは、電子書籍ではありませんか 電子書籍、マニュアルブックです。 注意すべき最初の事はノーです ケーブルではなく、さらに電源ケーブル。 2015イケアのカタログ 完全に充電が来る、 電池寿命は永遠である。 インタフェースは、7.5×8インチであり、 しかし8インチによって15に拡張することができます。 ナビゲーションは、触覚タッチに基づいています あなたが実際に感じることができる技術。 コンテンツがプリインストールされています 328高精細ページを経由して ホームファニッシングのアイデアを鼓舞する。 閲覧開始するには、 単純にタッチしてドラッグします。 右前方に移動するように左に、 後方に移動するには左から右へ。 何か他のものに注目してください? そう。 いいえ遅れはありません。 各クリスタルクリアページ 瞬間的に負荷 あなたはどのくらいの速にスクロールどんなに。 あなたは簡単な概要を取得したい場合は、 ちょうど手のひらにそれを保持する、 ちょうど親指を使って、 速度は、コンテンツを閲覧してください。 あなたが何かを見つけた場合には、保存したい 後で、あなたは単にそれをブックマークすることができます。 そして、あなたは、アプリケーションを閉じても、 あなたは簡単に再びブックマークを見つけることができます。 アメージング。 [笑い] [拍手] だから、に私たちをもたらし 週1の終わり。 ここ数アナウンス。 だから、切片が進行中である。 ここにこのURLいつかに行く 今と金曜日正午の間 実際にあなたがいるかどうかを指定する あまり快適うち、より多くの 快適な、またはどこかの間にある。 これは、典型的には、それらの一つである あなただけの種類の知っている事。 そして、あなたのもの、実際にはあまり誰である おそらく同じくらい知って快適、 もっとあるあなたの人 快適なは、同じくらい知っている あなたは非常にわからない場合は、再度、どの あなたがしているあなたに落ちるもののバケット おそらくどこかの間にある。 しかし、あなたは入れ替えることができますので安心 必要であれば数週間後に。 一方、来週のために 私たちは、それ自体のセクションを起動しないでください しかし、スーパーセクション、その すべての学生に開放されています。 の位置で日曜日来るこの コー​​スのウェブサイト上で発表される 私達はのための1つを持ちます これらの少ない快適な、 だけでなく、いずれかの これらより快適。 との間のもののどこか これら二つのどちらを選択することができ、 あなたが好きな場合は両方、座っインする上で。 そして、それらの焦点 Cに最終的になり、 その私たちは続けます私たちの 今日の会話。 問題は0一方が設定され うまくいけば、あなたの手の中に。 明日正式に起因し、 木曜日、正午。 いずれかのあなたの現金がない限り あなたの5日遅れての、 それを持って来るであろう 正午金曜日まで、。 問題1一方がされる設定 コー​​スのウェブサイトに掲載。 そして、これは私たちの最初となります Cにクラスとして進出 そして、その問題設定スペックはあなたを歩いていく 何の仕組みの多くを通して 私たちは月曜日に話して始めた、 私たちは、今日の話を続けます。 CやLinux、CS50 アプライアンス、すべてのこと 仕様であなたを待っています。 営業時間はその間進行中である、 学部ダイニングホールで。 見るためにここにこのURLへのヘッド 今夜と明日のスケジュール、 あなたが参加するしたい場合。 その間の質問、あなたがそのよう 質問をする機会を持っている 非同期的に、24時間365日は、あなたがしているの実現 セクションやオフィスに限定されるものではない 時間ではなく、むしろ、このツール ここで、CS50は、そのURLにある議論 もちろんのオンラインになります 掲示板のソフトウェアを介して あなたはの質問をすることができます クラスメートにもスタッフ。 だから、心に留めておく、そのリソースにも。 一方、伝統 今週の金曜日に開始されます。 あなたがから垣間見たかもしれませんが 先週の水曜日のティーザービデオ、 私たちは、最も伝統がある 期間中、毎週金曜日 いくつかの50の学生を取り、 と呼ばれる地元のレストランへスタッフ 火と氷、その時に私たちがしている 典型的には、いくつかの卒業生によって結合された 産業界から、または友人 一般的に熱望する 大きなクラスを小さく感じるようにします。 だから、完全にカジュアルなランチです。 私たちの束、スタッフ 特に、椅子を再生します 約生徒とのチャット 50、50の外部の生活、 将来の生活、現実の世界、 私は仕事の機会について話している 業界の友人と。 ですから、私たちに参加したい場合 今週の金曜日は、ここでは、このURLに向かう。 スペースが限られているが、私たちはこれをやる recurringly言葉を通して。 cs50.harvard.edu/rsvpあるように頭。 そして、あなたは取得しない場合 今回は、気にしない。 私たちは、再びそれを行います 今後数週間にも。 だから、これは写真です 私たちは、先週塗装 そしてあなたはおそらくしてきた これまでに手を染め。 しかしそれでは、これを接続してみましょう 私たちが今日やろうとしているものに 以降。 私は1つのボランティアを持っていませんか? すべての権利、またはいくつか。 どのようにここで約 終わり、青いシャツにある。 アップさあ、あなたの名前は何ですか? ALANA:アラナ。 DAVIDマラン:アラナ。 だからアラナ、のためだけに you--満たすために素敵なmoment-- 役割を果たすことが起こっている ここで、この関数の。 私たちがした紫のブロック 機能これまで呼んだ。 それでは、私は行くつもりです 先にこことアラナを提供しています 少しネームタグは、作る あなたがプレイしているどのような役割をオフにします。 だから、たとえばブロックでなければならない。 あなたが先に行くと、それを上に置きたい場合は。 そして、私たちはするつもりだ 超簡単これを保持します。 手元の目標は単純である場合 今アラナを実装するために、 このいわゆるブロックと言う、 ここでは、それが動作するように起こっている方法です。 私はのは、それを呼ぶことにしましょう​​have-- 引数またはパラメータ、 それは実際に紙のちょうど白紙だ。 そして、それは一種の連想させるように白いだ へのあなた白いボックスの 言葉を書くことができます。 その間私はここに行くつもりです。 私が先に行くつもりだと H-E-L-L-Oコンマの世界を記述します。 そして今、私は、プログラマが言うようにはしないでください 実際に何かを言う方法を知っている。 私は言葉を思い付くことができ、 しかし、私は必ずしもない 自分を表現する方法を知っている 口頭または画面上で。 だから、私は行くよ何 行うにはこの作品を取るです 機能性、そのinput-- または引数、私たちはそれを呼ぶことにしますように、 私はpaper--のこの部分に書かれてきた 私はそれを外部委託するつもりです。 そして実際それがその役割です プログラミング言語の機能 再生することができます。 と言うようなもの ブロックはアウトソースすることができます 本当に知っている人へ 彼女または彼はについて何を話している。 だから、ステップオーバーでしょうかどう ここでちょっとため、 私は、この入力を渡すつもりです アラナは、あなたが、この入力を言いますようお願いいたします。 ALANA:こんにちは、世界。 DAVIDマラン:それはあります。 機能があるように。 今、私たちはもう少しそれを取ることができる、 ここでは一歩前進を取ることができます。 それは明らかにがっかりだったので。 それでは、今、これを変換してみましょう もう少し洗練されたもの。 だから、もちろん、これは私たちのCバージョンです。 だから今、あなたはそれを利用したい場合は、 1オフ、オフ、その名札、 そして、あなたが、新しい名前に置いてみましょう。 しかし、根本的にあなたがしている 同じ役割を果たして、 それはちょうどそうに起こる 今のprintfと呼ばれる。 物語は、もちろん、 おそらくbe--に行く underwhelming--はあるのと同様 次のことを行って。 これで、関数のprintfです。 私は、発信者、またはAM プログラマ、望んでいる の肩の上に立って あなたのような過去の人、 すでにどのように考え出した人 実際に何かを書き留める。 だから今回は、 それはしてみましょうと言うのではなく、 実際にこちらに私達のスクリーンを使用しています。 ですから、ステップしたい場合 こっち、私は行くよ 再びこれを渡す 私のprintf友人への入力。 あなたが先に行くことができればと 画面上にそれを印刷し、 単にあなたに描画することで 黒い画面上の指。 優秀。 すべての権利は​​、サスペンスのロットのため、 どのようにそれはプレイアウトするつもりだった。 だから今のが1つを物事をみましょう 最終的なノッチは、私たちができれば、次のように。 だから、これはCプログラムです 私たちは前回述べたように。 そして、これはちょうどあなたが、それをやったことない こんにちは、画面に出力し、世界。 多くは明らかにありま​​すにもかかわらず、 そこまでの気を散らすもの。 しかし、ここでワンランク上の物事をみましょうと このバージョンを導入し、そのリコール 3番目のバージョンであることが確認された 私たちは前回になってしまった。 そして今、明らかにありま​​す のprintfの2つの用途。 アラナの2の呼び出しがあります printfのため、この場合、 だけでなく、コールあります 別の関数へ。 明らかにその機能は何ですか? のgetString。 私たちはもう一つのボランティアを得ることができますか? [OK]を、アップ時に来る。 あなたの名前は? JAVIER:ハビエル。 DAVIDマラン:ハビエルは、アップ時に来る。 だから、ハビエルの役割はオンになっている この紙。 どの私は一般的にSをコールするつもりです。 さて、これはそれが、変数のです 暗示のように文字列型の そこに真ん中に、そのセカンドラインによる。 そして、私はあなたが私に文字列を取りに行くしたいと思います。 具体的にオーケストラにまで向かう セクションと私に誰かの名前を取得、 変数で戻ってくる その値を含む。 それはあなたが望むだれでもすることができます。 ここで私達は行く。 すべての権利、ハビエルは 名前を書き留め。 かしこまりました。 私たちは皆、おそらくどのように推測することができます これはプレイアウトしようとしている。 私たちは、おそらくbelaboringだ 何のポイント 関数がやっているが、 それにもかかわらず、どうもありがとうございました。 だから、ハビエルは、この文字列が返されました ここでは、非常に、これを見ることができない ジョナサンは文字列である 私たちが得ていること。 だから今、私は実際に起こっているもの しかしアラナに提供する 少し違うものである。 このバージョンのため、 プログラムは、最初に自分の名前を述べることがあります。 だから、非常に最初の引数 私はアラナを提供する必要が になるだろうと 文字通り自分の名前を述べる。 そのような非常にシンプルすべての権利、 私はあなたにこれを渡しました。 そして、私は書いている 次の引数、よろしければ 先に行くと、これを書きたい ボード上で、のは先に行ってみよう とするために、ここでの最後の例を実行します 最終的に起こることを持っているものをオフにします。 だからあなたの名前を述べる、 上部に向かってそれを書く あなただけのように、気にしなければ 私たちは一つの第二のラインのための部屋を持っています。 最後なので、私は行くよ 今を提供するものではありません、 しかし、紙の2枚。 かしこまりました。 H-E-L-L-Oコンマと空白行。 だから私は今アラナお渡ししようとしているもの 少し違うものである。 彼女はこれを得ているだけでなく、 ブランク中の充填物は表し それが何であったかpercent-- プレースホルダー私たちは使用してきた? うん、そうパーセント秒。 その間私は渡すつもりだ 彼女のその第二引数である されている正確にどのようなハビエル ジョナサンから取り出さ。 だから、私はあなたにこの二つを与えてみましょう。 あなたは、先に行くしたい場合 その旨を印刷します。 最終的に何が起きているの になりました、アラナ再び のprintfの役割を果たしています。 ハビエルは、遊んでいた のGetStringの役割。 だから、あなたのお土産になります。 そして最終的にもかかわらず、何が起きているか これはhello--は先に行くとコンマYEP。 ALANA:私はまだこれを受け、または全くしましたか? DAVIDマラン:うん、あなた 一度に両方を受け取った。 だからアイデアはあなたということです 今ページをめくることができます 第二を処理する これらの2つの入力の。 だから、これは唯一の家ハンマーすることです アラナのに対して実行されたことをポイント この緑の線、ここで、次に ハビエルは、私たちのためにこれをやった 私に何かを返す 私たちは、sと呼ぶことにしますが、それは本当にいた 彼自身の論文のまさにその部分。 そして今、アラナは、この三行を行っている。 そして、このすべてが見えていても 信じられないほど不可解なおそらく 一見、それは本当に そのように単純である。 周りの入力を渡す、 どちらか、出力を取得する 物理的に何かをバック手渡されて、 または、このような副作用を見て。 視覚的に何か 画面上に書かれた。 それでは、先に行くとしましょう 、アラナとハビエルに感謝 誰がために、ここにダウンしていた ここに私たちを結ぶ。 [拍手] だから今、どれだけ当たり前のそれではみましょう 簡単なことのすべてがある可能性があります。 そして、それでは実際に進んでみましょう 実際のコードに何かをする。 だからここに画面上にスクリーンショットです いわゆるCS50アプライアンスの。 そして、あなたのように、時に持っていた場合 水曜日の午後2:00 PM、 いくつかの友人に説明して CS50アプライアンスは何ですか、 どのように文章で定義するのでしょうか? いずれの文? うん? 学生:それはプログラムのようなものだ それはすべての人のコンピュータを作る 同じシステムで実行されます。 DAVIDマラン:良い! それはすべての人のを可能にするプログラムです 同じシステムで実行するコンピュータ。 それはあなた自身のようなものだ 営業のコピー に起こるシステム Ubuntu Linuxのに呼び出される。 そして、それは内部に効果的に実行されます あなた自身のMacまたはPC上のウィンドウ、 右の門のうち、この方法は、そのよう 週1では、ここに誰もクラスで 同じツールへのアクセス権を持っている、 同じ構成、 と全く学習曲線の特定はありません Macまたは特にPCに。 今、私たちは、CS50の内部で、開かれ 月曜日のアプライアンス、ここにこのプログラム。 これは、geditのと呼ばれるように起こる。 しかし、それは本当にです グラフィカルなエディタ。 これは、メモ帳やテキストのようなものだ それぞれWindowsやMac OS上で編集します。 そして、私は実際にそこにあったことを提案した この画面には3つの重要な部分。 どこ上側です あなたのコードを記述します。 そして、私たちは私たちの多くを過ごしたそれはだ 月曜日の講義での3例。 私たちがどのようないわゆるボトム、 この黒いウィンドウ、ええ? 学生:コンパイラ? DAVIDマラン:コンパイラたち そのウィンドウを介してアクセスされる。 しかし、より一般的には。 ええ、それだけでターミナルウィンドウた。 これは単に時代の古い用語です 基本的に点滅を記述する 年前にオンにするために使用することは、プロンプト それらの大きいのCRTスタイルモニターの1。 しかし今日では、それは一種の ソフトウェアで仮想の。 そして、ターミナル·ウィンドウ 私たちはコマンドを入力してみましょう。 この簡易版のようなもの ユーザインターフェースまたはUIの。 それは、グラフィカルではありません ユーザー·インターフェースまたはGUI、 それは、テキストベースのインターフェイスです またはコマンドラインインタフェース。 そして実際それはどこで、最終的です 私はいくつかのコードを書くことができました。 私もいくつかのコードを書いたところで、 私は、このコマンドを使用したことを思い出してください。 そして、それの名前として 種類、これを示唆している 私が行うことができます プログラムは、ハローと呼ばれる。 しかし、それは実際に何をしていた? さてメイクは私を取っていた 入力、私のソースコード、 そして最終的に、どのように変換? オブジェクトコード。 そして、オブジェクトコードは単なる空想である 0と1を言うする方法。 そして、私が欲しかったら そのオブジェクトコードを実行するには、 私は、入力のものとして渡したい、一度 私のコンピュータの中に0と1 脳、いわゆるCPU または中央処理装置、 私は、プログラムを実行する必要がありました。 しかし、それは月曜日に非常に簡単ではありませんでした ちょうどダブルいくつかのアイコンをクリックする。 何の代わりに私が持っていた プログラムを実行するために、いますか? それ番目のコマンドは何でしたか? 私は少しスラッシュを聞いたんだけど? はい、ええ? 学生:ドットスラッシュと プログラム名。 DAVIDマラン:その通りです。 ドットスラッシュとプログラム名。 さて、これは何を意味しましたか? さてドットはただ難解な方法です の現在のディレクトリを言って。 あなたは、ISにあるものは何でもフォルダ として参照ドットとして表されます。 スラッシュはあなたが見てきたものばかりです。 年間のMac OSおよびWindowsで、 それは、ディレクトリ間の区切りです またはフォルダといくつかの名前の残りの部分。 Windowsでは、それは行くことを起こる 後方、Linux、およびMacでの OSは、それが前方に行くことを起こる。 しかし、それは単なる区切りなので、それはだ ただつまらない統語ディテール。 もちろん、ジューシーな部分がある プログラムの名前、こんにちは。 そして、それは私たちのために作成させるものだ。 それは、私たちのためにそのファイルを出力する。 しかし、どのように私たちはその時点までに取得したのですか? それでは聞いてみよう 質問、本当に何だった 少なくともで、ここで起こっている この構文のいくつかに関しては? 、文中のかそこらだから どのように私たちは離れて説明しました だ、この最初の行 緑色にハイライト? 最初の行がやっていることは何だった、 私のプログラムに関しては? うん? 学生:[聞こえない]。 DAVIDマラン:再びそれを言う? 学生:含めると、ダウンロード 過去の機能[聞き取れない]。 DAVIDマラン:良い。 はじめ、私が言うことはありません ダウンロードしたが、それでは言わせて 関数を含むその人 過去に書かれている。 そして、それらの機能が実現される 私のコンピュータのどこか。 誰かがファイルを書いた 年前に、そのファイル CS50内のどこかにある アプライアンス、または私のハードドライブ上の より一般的。 だからこの行は、基本的に言って、 そのファイルを探しに行く、標準I / Oのドット その内容をhであり、コピーして貼り付ける 右ここに私のファイルの上に 私はしていないように 自身が手動で行う。 そして、内部のジューシー個のうち、 私たちは主張し、そのファイルには、どのような機能でしたか? 私たちは宣言されたどのような機能が言った または標準I / Oドット時間で言及 最も可能性が高い? printfの、右? 私たちは、printfの上で書いていない 月曜日、それだけで存在していた。 アラナのような多くは、ちょうど来た ステージ上で起動し、ちょうど彼女 存在して描画する方法を知っていた 画面上の何か、 これはprintf、長年にわたって存在する。 そして、これは私たちがそれにアクセスする方法です。 今、私たちはここに上に移動した場合、 メインは、類似たちだった パズルピースに言った グリーンフラッグがクリックされたときに呼び出さ スクラッチの世界では。 それはちょうど一種だ 人間デフォルト名 表現することを決めた プログラムへのデフォルトのエントリー·ポイント。 プログラミングコードの塊 その先に実行されます。 一方、これらの中括弧は、 種類の湾曲形状のような これらの黄色のスクラッチ片の多くの。 彼らは一種の全体をカプセル化する 一緒に説明書の束。 だから、だけの種類を一緒バインド いくつかの関連する機能。 もちろん、printfのは、その関数である 先ほどと同じように、画面を印刷します。 どのようなこれらの括弧はどうですか? どのようにあなたがした場合であってもdefine--う 決して前にプログラムされていないが、ちょうどベース 今後は増加 うまくいけば直観、どのような 括弧は、ここで私たちのためにやっている? それとも、何を取り巻くている? うん? 学生:彼らは何を言っている あなたはprintfので印刷するつもりだ。 DAVIDマラン:うん、彼らが何を言っている あなたはprintfので印刷するつもりだ。 またはより一般的には、それらは 関数への入力を囲む。 だから、ほとんど考えることができます これらの括弧の 金属のようなものとして このクリップボード上のクリップ。 それは何ですが、保持しているものだ 引数を提供するために使用するつもり 機能、中に この場合はprintfのと呼ばれています。 だから、一般的には、ほぼすべての 時間は私たちは、関数を呼び出す 私たちは、ペア括弧を参照しようとしている。 多分それで何かを持つ、 今のように、その中に多分何もない。 あなたは入れるでしょうどこにでもいるからです 入力またはいわゆる引数 関数へ。 ここに1つのような引数です。 私はすべてを強調表示して 引用符の間、 それが判明したので、 と呼ばれるこの言語で あなたが表現したい、C、 単語やフレーズですstring-- あなたがする必要があるかさえparagraph-- 二重引用符で囲む。 未単一引用符、二重引用符。 そして、それは私がここでやったがまさにそれだ。 一方ファンキーがあります そこに端部に向かってシンボル。 バックスラッシュnを。 私たちは、表現という何と言った? うん? 学生:新しい行。 DAVIDマラン:ニューライン。 右、あなたはしないでください 一般的にはときEnterキーを押します あなたがプログラムをしたい 新しい行を吐き出すように。 むしろ、それを明確に伝える この確かに難解な作品で 構文の、バックスラッシュnを、その あなたは新しい行がそこに行きたいと思います。 最後にセミコロン。 私たちは本当に話をしなかった これについてはあまり、 とはるかにこれはいくつかの悩みの種となります 最初の問題のためにあなたの存在の あなただけの実現に失敗した場合、設定され あなたに愚かな何かを忘れてしまった セミコロンなど。 そして、一般的にそれを置く その問題が解決されます。 しかし、それは何をやっている 私たちのために、あなたは言うでしょうか? 学生:[聞こえない]。 DAVIDマラン:申し訳ありません? 学生:[聞こえない]。 DAVIDマラン:文を仕上げ。 これは、側でソートの期間のようなものだ 英語の文の最後に、 この言語のに対して Cはそれが文を終了だ。 プログラミングの命令 あなたが言いたいのコード、 私はこれで終わりだ。 今ではここだけだ気づく。 だから、中に取得する必要はありません セミコロンを置く習慣 すべての閉じ括弧の後。 例えばどれもありません 次はvoidへ、私たちはよ 将来的に戻ってくる 空洞どの手段に。 しかしこの場合、あなたのprintfがある 関数、またはステートメントが使用されている、 そして私たちはそれを持っていたい それは非常に最後に末端。 そして、私は意図的にCにピッキングすることだし、 率直に言って、C、C + +のような言語の多くは、 JavaやJavaScript、および任意の数の 他の言語では、これらの多くを持って 統語細部の一種。 確かにあなたがに新しいしている場合は、 プログラミングは純粋にあなたをつまずかすることができます。 そして、あなたは、私を迎えます 言葉、あなたのいくつかは、意志 この経験を持っている 営業時間中または後期 夜にいくつかのp型セットで作業 あなたの気のプログラムは、単にコンパイルされません、 それはあなたが持っている、実行されません 何が悪いかは考えていない、 それは完全に思える あなたに論理的に正しい。 そして、あなたが忘れてしまったからだ 打撃のようなもの いくつかの行の末尾にセミコロン。 しかし、これらはあなたがしているものの種類があります すぐに見に学ぼう。 そして実際、これらのものです CAのとTFの持っていることを 一種の見るために訓練されて はるかに迅速にあなたよりも。 だから、これはあなたのように、言うことだけです 問題へのダイブは、特に1セット このようなものによるイライラしないでください。 並べ替えの順応いったん 世界へ、あなた 物事を見始めることができていないかもしれない この最初の週最初の一目で確認。 だから、ソースコードは、そのようなことである。 私たちは、にそれを渡したい いわゆるコンパイラ。 そして、そのコンパイラと 私たちは、出力を提供する、 オブジェクトコードとして知られている、 0と1のいわゆる。 しかし、そこから、それは私たちに何を与えるのでしょうか? まあそれは私たちに、これらのパターンを提供します。 そして再び、コンピュータ、 内部のインテル、 これらのパターンを理解する 0と1の。 そして、時にはパターン 実際の10進数を表す。 私たちは、時には、先週見たように それは文字を表します 私たちは、時には、先週見たような それは、命令を表し、 画面に何かを印刷するなどである。 instance--についてはこれはprintf むしろ、私は巻き戻してみましょう。 私たちは当たり前の服用してきた これらの0と1があることを このコマンドは、makeが生成した。 しかし、メイクは、コンパイラではありません。 メイクは、途中でことではありません それは0と1を生産だ。 むしろ、作るだけで非常に便利です。 その目的は生活の中で名前のプログラム 把握する基本的 プログラムをコンパイルする方法について説明します。 そして、私たちは、これらの中でそれを使用する ちょうどそれのため最初の数週間 私たちに多くのトラブルを保存します。 しかし作ることは本当にです あなたはハローコンパイル時にやって、 私たちは前回言ったように、それはだ、である ハードドライブ上探し または現在のフォルダ内に、用 ファイルには、明らかに、何と呼ばれる? hello.cに、右か? それは大会のわずかなものだ。 それは任意ですが、 それは物事がある方法です。 あなただけの名前を指定すると、メイク まだ存在していないプログラムの、 それは、ソースコードを探すために起こっている ファイルでは、デフォルトではhello.cを意味します。 そして、それはそれを見つけた場合、素晴らしい。 それは、そのソースを変換するために起こっている あなたのためのオブジェクト·コードにコード。 しかし、私はヒットしたたびに入力してください こんにちはmakeを実行した後、 あなたが最後にaを見て思い出してください かなり長いと不可解なシーケンス 他の白文字のと 画面上の文字? まあそれは、実際のコマンドだった 実行されていた実際のコンパイラ、。 だから、実際のコンパイラは、私たちはのほとんどを使用します 学期が打ち鳴らすと呼ばれるものである。 皆さんの中に使用した可能性があります のVisual Studioの前、またはGCC、 または他のコンパイラ、任意の数。 私たちは、クラングを使用します。 そして、打ち鳴らすは、私たちが実際に変換することができます そのソースコードは、コードをオブジェクトに。 この実際には何 実際にはどういう意味ですか? さて私はのいずれかに行こう 前回からの私のフォルダ。 CS50アプライアンスの内部。 そして、私が先に行くと、これを作成してみましょう 同じファイルは、標準のI / O点hを含める。 int型メイン空洞。 そして、私たちは、将来のように戻ってくる 手段はint型のと、ボイド何を意味します。 しかし、今のところのさせて頂きます ハローワールドバックスラッシュnは、 私たちは、ボード上で行ったように。 私はのhello.cと呼ばれるこのファイルを保存してみましょう。 そして今、私はこれをコンパイルしたい場合は、 私は私がin--実行を拡大させてcould-- こんにちは入力してください。 そして、これは再びでした その非常に不可解なライン。 しかし、今は、少なくとも一つの単語 おそらくあなたに飛び出し。 打ち鳴らすは、私たちが以前に見たその行です。 今、他のものの多くは、率直に言ってあります 私たちは今日で私たちの手を振るだろうと。 しかし、いくつかのサブセットがあります、 ここでの数文字 これは重要である。 しかし、私は先に行くと、これを行うつもりです。 私は、最初のランに行くよ こんにちは、ちょうど証明する それは月曜日だったので、これは動作していること。 しかし、今、私は、プログラムを削除するつもりです。 そして、私たちが持っていたのと同じように、これらの 短い名前前回、 削除するためのコマンド 何かがRMで、削除し、入力します。 あなたは、いくつかを取得するつもりだ かなり不可解な質問。 あなたが作るこ​​とができると信じているのは難しい 分かりにくいでもこの質問。 しかし、単に挨拶通常のファイルを削除する 手段あなたがハローを削除したいです。 そして、私は先に行くとにYを入力することができます はい、入力し、今ではなくなっています。 これは現在、何を意味するのか、 私は画面をクリアした場合、 代わりのものである hello--あなたを作るやって 私はこの得意で取得しています何を知っている。 私は、コンパイラを自分で実行するつもりです。 私はいくつかのプログラムには必要ありません 私のファイルが呼び出されたかを把握。 私は私が、hello.cを書いた それはと呼ばれるものを知って、 私はそれを入力するのは、明らかにすることが可能です。 だから私は先に行くつもりです と入力してhello.cを打ち鳴らすん。 動作しているようです。 そして、追加の出力がありません、 打ち鳴らすはコンパイラがあるため。 これは、変換ているものだ 0と1のソースコード。 だから私は今、ドットをすれば HM、入力こんにちはスラッシュ。 新しいエラーメッセージ今日。 だから、bashはの名前だけです。 私たちが使用しているプロンプトを点滅。 それは総単純化しすぎだ、 今のそれは、それがすべてです それが点滅してプロンプトです。 そして、それはそれは私たちに叫んだ理由です。 そのようなファイルやディレクトリはありません もう少し分かりやすい。 しかし、確かに私は、オブジェクトコードを作った。 しかし、漁獲量は、ある 私は、コマンドを入力した場合 この内容を一覧表示する 何ディレクトリ、? リストについては、lsコマンド。 原料の束がここにあります、 そのうちのいくつかは、アプライアンスに付属している、 私のデスクトップフォルダ、ダウンロードのような フォルダ、Dropboxフォルダ、およびすべての その原料。 しかし、何が面白いです hello.cのは、これは 私はgeditので先ほど作成した。 そして、奇妙なものだ ここで名前を見て、 多分私達がしなかったこと 全然最後の時間を参照してください? a.outの、右? だから、戻って一日で、それを ちょうどその時が決定された あなたがプログラムをコンパイル 初めて、 あなたが名前を指定しない ファイルの、のはそれを呼び出してみましょう。 そして、a.outがちょうどこのだったことを意味 コンパイラの出力。 だから、プログラムの恐ろしい名前です。 しかし、その論理によって、スラッシュドット カレントディレクトリは、a.outのスラッシュ 実際にはあります意味する必要があり こんにちは私の世界プログラム。 今、少しも練習をウォームアップ。 私はこれの名前を変更したい場合は ファイル、あなたがいることが判明 別の名前のファイルを移動します。 だからMVのa.out、そして私 入力こんにちは、それを呼び出すことができます。 だから、これはLinuxのコマンドです。 DOSはこの年前に持っていた、 Windowsは、ターミナルウィンドウを持つ 見える何らかの このように、Linux、およびMac コンピュータは、この点滅プロンプトを持っている。 でも、私たちのほとんども、おそらく めったに、今までにした場合、それを使用します。 しかし、私がやったことはAで実行されている 名前がMVでプログラム、 と私はそれを提供してきました いわば二つの引数、。 二つの入力。 a.outが元の名前である。 こんにちは、新しい名前です。 だから私は今、ドットスラッシュを行う場合 こんにちは、入力し、それが存在しています。 そして、私は、ドットスラッシュa.outを行う場合は、 あなたは私が見るべきものを期待していますか? バッシュ、そのようなファイルまたはディレクトリ。 私はそれを名前を変更したので。 だから、これは慣れるには多少時間がかかります。 しかし、問題は1セット 仕様では、真になります を通して、あなたの手を握る このminutaeの一部。 これが完了しましたので 知的気晴らし もっと面白いから 手元のアイデア、その 実際に作成しています コー​​ドから何か。 しかし、ここで1修正をやらせる 今、このプログラムへ。 私が何かをしたことが最後の時間を思い出してください このように、printfのあなたの名前を述べる。 そして実際私たちはこれをしなかった あそこに大画面で。 そして私は、文字列sが得るやった オープンかっこ閉じ括弧をのgetString。 そして括弧はただ速記 括弧の表記法。 だからのGetStringには引数はかかりますか? 入力ノー、それなし 括弧を必要とし、 それが画定ものだから 関数の呼び出し元。 だから私は先に行くとしようするつもりだ 今、このプログラムにコンパイラを実行します。 打ち鳴らすのhello.cを、私のため 今のところ、その名前を変更しなかった。 そして、私は、エラーの束を得た。 それではここでズームアウトしてみましょう。 私は再び上にスクロールする場合は、 私が前回言ったように、 まず、同じエラーに 私は最後の時間を得たこと。 hello.cのの6行目では、私が持っていた 宣言されていない識別子の文字列、 私は、標準的な意味でしたか? 私はしませんでした。 私はこの中で作られたものを誤っているため プログラムは、あなたが最後の時間を思い出したら? ええ、私たちが必要 いわゆる補助輪 私たちは、わずか数週間使用しますことを。 しかし、私はまた、それを指定する必要があり、 どこかに、アプライアンスの内部には、 私たちが書いたファイルです ほんの数年前。 その内部機能である のような外見上のgetString。 だから今、私はここに戻ってダウンした場合、 ズームインして、再度実行して打ち鳴らすのhello.cの。 くそー、別のエラー。 しかし、私たちは前にこれを見ていない。 この1つはもう少し 把握する難解な。 しかし、これは、画面上に意図的にある 私たちは、この話をしたかったから。 あなただけのように、のhello.cをコンパイルすると 前示唆さからの画像、 あなただけのことを変換している 0と1のソースコード。 今CS50のスタッフは、数年前に書いた CS50.h、および対応するファイル、 CS50.c. 数年前、私たち、、 それらのファイルをコンパイルした どうなるファイルに CS50.o.呼び出される それとも名前を変更することができます いくつかの異なるもの。 しかし、それは簡単な方法です それについて考える。 そこで、CS50年代にコンパイル 0と1にライブラリ。 しかし、どこにも私は指定されていない 私はゼロを組み合わせたいという 私のハロー世界のために、どれ 0と1でプログラム そのCS50のスタッフは、数年に作成 前1完全なプログラムに変換する。 私は書き込みによって指定したすべての 打ち鳴らすのhello.cはhello.cをコンパイルしています。 私はに打ち鳴らすに語っていませんでした 0と1のリンク 作成したCS50のスタッフ いくつかの時間前にあなたのために。 だから、簡単に修正だが、 リンク、CS50用ダッシュリットル。 そして、私たちは再びこれを表示されます やがて何度も何度も。 しかし、今気づい苦情はありませんでした。 だから今、私はドットスラッシュを実行した場合 こんにちは、今では取り組んでいる。 それは少し誤解を招くですが 私は何のファイルを再作成するので? a.outの。 だから、私はちょっと巻き戻してみましょう。 先ほどコンパイルしたプログラム 3行のコードを持っています。 私はハロー、ハロー瞬間を世界を実行したとき 前、私は自分の名前を述べ表示されませんでした。 そして、私は走ったので、それはだ プログラムの古いバージョン。 しかし、私は確かにドットスラッシュa.outを実行しない場合は、 こんにちは、入力し、お名前、ロブを述べ、 世界。 フム。 つまり、バグのようなものだ。 おそらく右のロブを、言うことを意味? そこでここでは、コード内の修正は何ですか。 学生:[聞こえない]。 DAVIDマラン:その通りです。 だから、僕はその最終的な微調整を行う必要があります 私はプレースホルダに渡していることを、 ブランク中の塗りつぶしのような、 私たちは一瞬前に行ったよう。 しかしパーセントsはなりました それは空白を埋める。 だから、最後の、最後の1を明らかにしてみましょう 詳細魔法はありませんように。 私が先に行くつもりです そしてヘロー取り除く。 私が先に行くつもりです とのa.outを取り除く。 だから今私はプログラムを持っていない、 ちょうど私のソースコード。 そして、私は実行するつもりです 少し長めのコマンド、打ち鳴らす ハローOのhello.cダッシュLCS50ダッシュ。 さて、これは一種の行き始めている 片方の耳およびおそらく他のアウト。 しかし、ちょうど、これは何をしているか離れていじめる。 打ち鳴らすは、ダッシュLCS50コンパイラです 意図的に最後の最後で 文中に何でしょうか? CS50ライブラリへのリンク。 ゼロをつかみ、 スタッフが行ったもの そして私自身のプログラムにそれらをcrams。 だから手元に最後の質問は、 ダッシュはおそらくハローOものです あなたが初めてだなくても、やって 前に、この構文を見たことある? なプログラムを出力 デフォルトa.outを名前が付けられていない。 むしろそれは、ハローという名前だ。 だから今何a.outがありません。 そのようなファイルやディレクトリ、 私は明示的に言ったので、 ように、ハローこのプログラムを呼び出す 私は今、そのような名前を入力できます それが動作します持っています。 今率直に言って、少年はということです 持って面白くない すべてのことを覚えて 少しマニューシャ、右か? それでは、先に行くとしましょう 再びハローを取り除く。 そして今度は、世界に戻るまで放置 それが挨拶をすると言って十分である。 しかし、それは魔法だ makeはあなたのためにやっている、 それは退屈だという それはあなたのためにやっている。 そして、私たちのプログラムなどと 問題は、より複雑に 本当にあなたの友人になります。 長すぎないので、 今から私たちはつもりだ 書かれたプログラムを持っている ていない一つのファイルが、いくつかのファイルと、 とするプロセスを自動化します作る 一緒に私たちのためにすべてのことをコンパイルする。 だから今印刷してください。 printfのは、標準の、このファイルの中にある I / Oドットhを、私たちは前に見たので、 それよりも、printfのする方があります。 バックスラッシュnがありますが、またあります 他のエスケープシーケンスの束。 そして、エスケープシーケンスはちょうどです 何かを言ってのファンシーな方法 それは、バックスラッシュで始まる いないスラッシュ、バックスラッシュ、 そしていくつかの特別なことをする。 そして、私たちは、これらのほとんどにこだわることはありません しかし、なぜそこでは、二重引用符をバックスラッシュ、 あなたは思いますか? なぜ、この奇妙な順序があります 文字、バックスラッシュ、二重引用符、 なぜそれが役に立つかもしれない? 学生:[聞こえない]。 DAVIDマラン:その通り、右か? 私たちのhello worldプログラムに戻って考えてみて 私たちが今かなりの数回を見てきたことを、 毎回私たちは、そのハロー世界を見てきました 私たちは内部の二重引用符を持っていたプログラム こんにちは、コンマとなっている 世界のバックスラッシュnを。 しかし、自分自身に考えて、 何実際にあなたの場合 引用符をプリントアウトしたいですか? あなたの最初の本能は私にはない、かもしれない 私はここdo--する理由を知って、 私たちは少し受動的であることができる アグレッシブ、こんにちは友人。 私たちは、そのようなことをやってみたいことがあります。 しかし、なぜこれが問題になりましたでしょうか? さておき、そのカールした引用符を無視 基調講演は、自動的に私たちのために作った。 なぜこれが問題になる? その通り。 私たちは4重引用符のように持っているので。 さて最初のものと思わ 第1に行く、 そしておそらく第1 第三のものになると、 または、私は、私もよく分からない意味 もコンピュータがあることを行っている。 再びコンピュータ、コンパイラ 再び、かなり馬鹿です。 彼らは何をやる あなたが彼らに教えてください。 そして、あなたがあいまいでいないのであれば、彼ら おそらくエラーをスローしようとしている。 あなたはどのようにするなどの明確なないなら ピーナッツバターとジャムのサンドイッチを作る 奇妙なことに到着する可能性があります。 それは同じ考えです。 今ではそこだと言うには十分 他のいくつかのエスケープシーケンス、 私たちは、長い前に、それらに来るでしょう。 基本的にこれらのエスケープ 配列は、何かを表現 あなたができない場合がありますことを あまりにも簡単にキーボードで、 コンピュータを混乱させずに。 今、その間私たちは持っている printfのプレースホルダ。 また書き込むことができるパーセントdは、 パーセントiのほぼすべての場合において、 データの型のプレースホルダです? 値はどのようなタイプ? 進数。 だから、実際に私たちは始めましょう それはだからパーセントの私を使用して 整数のように、少し簡単な。 パーセント私。 進することを起こる整数。 パーセントの私たちは、すでに述べた 文字列のプレースホルダ。 ちょうど単語、フレーズどちらが、 パラグラフ、エッセイ、何でも。 それは、一連のだ いくつかの長さの文字。 そして、私たちはずっと前に表示されます これらの他のいくつか。 しかしパーセントcが単一の文字です。 パーセントfは用です 浮動小数点数、 持つ実数のような それの小数点、その もちろんそうではない整数である。 そして、全体があります 同様に他のものの束。 一方C言語であり、 多くの言語において、 私たちは、異なるデータ型を持つ。 異なるタイプの もし可能ならばガラスがボウル。 ボウル私は前回使用した ピンポン球のためだった、 私たちはまた、異なる保存することができます 文字と文字列のような値 容器内の整数、 変数のように、Cはこれらを有している。 シャアは、データのタイプです。 変数の型、 これであなたは、文字を格納することができます。 フロートは、変数の型です。 これを使用して、実数を格納することができます。 int型は、int型のために、もちろんです。 むしろ途方もなく 長い長い名前 あなたは本質的に保管できる場所である でも本当に長い番号、 以上の数字その後 典型的なint型が保管する可能性があります。 しかし、私たちはずっと前に戻ったのと来る。 CS50ドット時間における一方 他のヘッダファイル 私たちはカップルを見てきました 使用中の回、あります 他の二つのデータ型その 通常はCには存在しない。 一つは文字列であり、私たちは中に表示されます 本当に何の文字列の数週間 ボンネットの下にある。 そして、もう一つはブール値である。 そして、ブール値変数であること 特定の値のみをとることができる。 そして、ちょうど先週のに基づいて、 スクラッチの説明、 そして最近、C、 あなたは何を推測する のための2つの可能な値は、 bool型のもので、いくつかのコンテナ? いいえはい。 1と0。 trueまたはfalse。 そして実際、それは傾向が最後だ プログラミングで従来であると 何かを言って、言語、 trueまたはfalseのような。 一方CS50ライブラリが付属してい 機能性の束と スタッフがあなたのために書いた、 単に文字列を取得する以外に。 私たちは、事前に関数で書いた ユーザから整数を得ることができ、 単一の文字を取得し、 、そのフロートを取得 小数点をわずか数です。 本当に、長い長いを取得 ユーザーからの大きな値。 だから私たちは、この中を見てきました のGetStringのフォームのアクション。 しかし、これらの機能を経由して すぐに書くことができるようになります ユーザからの入力を取得するプログラム。 一方これを考慮 プログラム、および検討する 私たちは今追加して使えるようにする方法 新しい構築物で、それまで。 迅速な駆け足 そして、私たちは見てみましょう いくつかの書き込みでいくつかの プログラムを手動で自分自身。 今後、私たちがしたい場合は、 条件を実装 それは次のようにするつもりはない ちょっといいかわいいパズルのピース。 それはもう少し難解に見えるだろう。 しかし、これは正規のです Cの状態の構造 単語であれば、2 その内部括弧、 いくつかの種類であることを行っている ブール式の。 今スラッシュスラッシュ 途中で、これは 瞬間ソート等で 擬似コード、コードのプレースホルダ。 しかし、より適切に、コードの任意の行 C言語でスラッシュスラッシュで始まるもの コメントです。 それはあなたが可能性があることを付箋紙のようなものだ 紙に印刷されたエッセイ、置く。 それはあなた自身にメモです。 これは、機能的ではありません プログラムへの影響。 それは、リマインダーのようなものだ、それはあなた自身です 何が起こっているのかに関してのドキュメント。 だから、現時点ではこれを行う プレースホルダーのようなものです 何のために内部のだ これらの中括弧の 最終的に何かをしようとしている。 一方あなたは、2つのフォークを持っている 道路、ANは他の場合には、このように構築する。 あなたがもし、elseifを、他にすることができます。 今では、特に、注目に値します あなたの周りグーグルでてきた場合には 外のリソースのオンライン 好奇心、あるいはあなたが拾う場合 もちろん年代の1 、C上の本をお勧めします あなたは、人間がたくさんあることがわかります どのように異なる環境設定の コー​​ド内で自分自身を表現する。 一部の人は置くのが好き 私はここでやったように、中括弧。 一部の人は巻き毛を置くのが好き ここまで例えばブレース。 一部の人はよそを置くのが好き ここにしてから、このこっち。 に任意の数の方法があります コー​​ドを記述しておらず、それらのどれも それ自体正しいです。 いくつかありますが、 それはかなり間違っている。 これはしかし、もしno--がある 最終的には非常に宗教的な議論。 最も厄介なの実際には、1 コンピュータサイエンスに関するもの どのように独断で コンピュータ科学者がすることができます。 そして、あなたはその時間をかけています も、あなたは個人的な好みを開発 あなたのコードがどのように見えるべきかに関して。 ちょうど出力を作成しない、動作しない、 それは審美的にどのように見えるべきか。 だから、私たちが行いますと、一緒にご案内している 道に向けて、今のところ、少なくとも、 少なくとも標準CS50スタイル 均一かつ読みやすいものを保持します。 それらの上のしかし、もっと ずっと前の区別。 C言語でのブール式、よろしければ この条件が真であれば言いたかった この他の条件は、 真の、あなたは単語を書かない そして、あなたは英語で同じです。 代わりに、アンパサンドアンパサンドを使用し、 理由のために私たちは戻ってくるだろう。 あなたが言いたいか、2を使用している場合 USキーボードの縦棒、 一般的に入力して上回っている 次のバックスラッシュの鍵。 そして、これはあたかも、この状態を意味する または、この他の条件は、これを行う本当です。 一方でこれはあります クレイジーなこと、その あなたは機会があるでしょう しばらくで一度使用します。 しかし、それはただの代替だ 自分を表現する方法。 これは、今のところ、してみましょう それだけだが、規定 表現する別のファンキーな方法 ELSEIF、ELSEIF、ELSEIF、ELSEIF、もし。 それは、単に用語でフォーマットさだ ケース、あなたを文字通りの その値を列挙する あなたがのために確認したいことがあります。 またループします。 私たちは、の比較を見ました ループを備えたスクラッチ。 そして私はで私の手を振るつもりだ これらのもののそれぞれが何を意味するのか。 しかし、ループが非常に意志ことがわかり 多くの場合のためのキーワードで開始。 それとも、キーワード間に始まります。 それとも、キーワードで始まります 行って、キーワードしばらくで終わります。 しかし、私たちが見るしようとしているものを もっとこのようなことである。 ここではC言語で一般的には、ある、どのようにかもしれない 変数を宣言し、値を与える。 C言語では十分ではない、 スクラッチと同様に、あなただけ 私に何かという変数を与えると言う。 あなたは、Cに指示する必要があり、そして伝える コンパイラ、より具体的には、 値のタイプをあなたの操作を行い ガラスボウルに入れたい。 それは整数ですか? もしそうなら、あなたがする必要はあり 文字通りその後intおよび言う 変数の名前、 セミコロン。 あなたの代わりに文字列を望んでいたし、呼び出された場合 私は今日ここに私のコードをやったようにそれはね、 あなたは文字列sセミコロンを言うでしょう。 あなたはそれを価値を与えたいと思うたら あなたはその後、等号を使用することができ、 そうでないとして知られている 代入演算子。 そして、どのように各気付く これらのコード行の それの最後にセミコロンを持っています。 しかし、率直に言ってこのわずか 少し醜い。 なぜ私は与え、コンピュータに言うことはできない 私の変数をゼロに初期化します。 ということで、私に空のガラスボウルを与える。 あなたはできますが。 そしてそう判断の一つはあなたがよ呼び出す 時間をかけて文体行う必要があります あなたはこのようなコードを書くか、であるか、 あなたはちょっとそれをクリーンアップして感動です ちょうど1として2つの行を書き込むことにより、人。 そして、これは考えられるであろう 一般的に、よりエレガントな方法 文体あなたのコードを書いている。 私たちはもちろん、見ている機能。 彼らは、この形式を取るつもりだ。 関数の名前、いくつかの 括弧してから、おそらくいくつかの 内部のもの。 それともの使用が表示されることがあります 複数の機能面 並んで、このようなものを挙げることができる。 さて接線として、ん このジョークは今意味が? [笑い] それは面白いです意味しますが、それはありません おそらく、もう少し意味がありません。 だから今のはへ行こう 一瞬CS50アプライアンス。 そして、私がここで1ティーザーを開いてみましょう。 理由の実際1 イケアのカタログを導入するための そして絵の点滅 iPhoneの少し前に 実際に一緒に結び付けることでした 事実、ほんの数年前、2007年には、 コー​​ドのこの作品だった 放出された、これだった 非常に最初の実装の一 ソフトウェアの一部の それはジェイルブレーキングと呼ばれるものありません。 これらの不慣れ、ジェイルブレーキングのために 電話やiPhoneのようなもの 本質的に見つけ出すことを意味 物事を行う方法 それとその会社 誰がそれを意図していなかったしました。 あなたは、特定のインストールしたいのように アプリストアにないソフトウェア、 お使いの携帯電話を牢破りいる あなたはその多くのようなことを行う。 しかし、楽しみは何だったのでは 2007--とがなされています 異なるバージョンの数十 それ以来、これらのものの、 languages​​--のすべての種類であることです。 iUnlock呼ばここでこのプログラム、 実際にC言語で書かれたそして私た このためのソースコードを引き上げ だけの種類のあなたのいくつかを表示する 構築物の類似点 私たちはこれまで議論してきた。 今の方法より複雑さがここにあります 私たちはクラスですでに見てきたよりも。 私はここで少しだけ上にスクロールしてみましょう。 しかし、よく私たちはいくつかに気づくthese--気付く things--が、ここでは、これらの線に気づく、 標準I / O点hを含む。 そして、all--ライン24 please-- 通知標準I / O ドットhと他の全体の束 ファイルどうやら他の人 書かれている。 そして、私たちは下にスクロールした場合 この、少し任意に、 私が書く方法を知らない気付く 私自身は必ずしもまだ、このすべて、 しかし場合にあります。 だから、明らかにこれはブランチを持っています。 そして、私は少し下にスクロールした場合 さらに別の場合にはあります。 私は上にスクロールした場合、私は思う 線100を中心に私がのために見ました。 だから私はかなりわからないんだけど どのようにこれはまだ動作しますが、 これはに起こっているのforループである 私は何回か反復してみましょう。 そして、私はすべてのスクロールする 底への道 私はそこだと参照してください 関数がダウンしてここに呼ばれる メイン、およびいくつかの追加のクレジット あなたの読書の喜びのために。 だから、これは唯一のsay--することは不可能であるが、私たちはあげるよ もちろんのソースの中で、このオンライン コー​​ドは、これらのものも、いくつかのtoday-- 当たり前の私たちが取るデバイス、 一日の終わりにあなたはまだだ 私たちがしたこれらの基本的な構築物を用いて これまで既に導入されて。 つまり、その1の十分です。 すべての権利、ので、今してみましょう 実際に何かを構築する。 のようなものを超えて行ってみよう hello.cを、これを開く、 それではここで、このプログラムを書いてみましょう。 私が先に行くつもりだと adder.cなどと呼ばれるプログラムを書き、 その目的は生活の中であることを行っている 私の最初のスーパーシンプルな電卓のような それはただの数字のカップルを追加します。 それが難しいわけではないため 問題が、それ理由 私は今結びつけることができます 一緒にいくつかのこと。 だから私は先に行くと含めるつもりだ 標準I / OドットhおよびCS50ドット時間。 私は、int型のメイン空洞を言うつもりです。 そして再び、将来的に 私たちはそれに戻ってくる この文脈ボイド手段におけるへ。 そして今、私が何かを言うつもりです printfのように、私に整数を与える。 そして今、私の2行目に、 どのように私は自分自身がそのような表現か 私は、変数を宣言することを それはint型を格納するために起こっているのですか? 私がしたい場合は、文字通り、私は何を入力してください int型を格納する変数を作成 あなたは言うでしょうか? int型のaはGetIntで等しくなります。 確かに、そのように動作する。 そして、ちょうど一貫性のために コー​​ドを使用すると、よ オンラインを参照してください、私に変更しましょう このxに、という理由だけでのx 一般的な変数名です 少なくとも代数で、使用します。 今、私が先に行くと、再びprintfのをやらせる。 私に別の整数を与えます。 そして今、私は親切に行くよ の、そのパターンから学ぶ、 私は、int型のyがGetIntでことを得ると言うつもりです。 そして、私たちは使用していませんでした GetIntで前が、ちょうど のGetStringが行くと文字列を取得しますように、 ハビエルは、観客から行ったように、 同様GetIntではない プロンプトを点滅。 かつ効果的にユーザーを待っている に入力して、それを整数を与えるために そしてEnterキーを押す。 さて最後に、私は何をするつもりです これは、合計をprintfのof-- と私は空想取得しましょう​​now-- パーセントのiおよびパーセントiが存在している 私は、ポイントバックスラッシュnを感嘆。 そして、あなたは私がするつもりだ何を思いますか 追加の入力として、今入れ printfのは? 私が言いたくない 文字通り引用終わりのxを引用。 私は、x方向のクラスにしたいと その後、今のは空想を取得しましょう そしてちょうどと仮定しましょう 私たちがやりたいことができます。 何を次の言いたい? のxプラスyの。 そして実際それが動作します。 それは、最小限のプログラミング言語だ 基本的な算術演算を理解し、 そしてこれは実際には仕事はすべき。 だから私が先に行くと作るのですかましょう 私の黒と白のウィンドウ内の加算器 ここまで入力してください。 不可解なラインが、エラーなし メッセージは、その結果は良いことだ。 ドットは私には整数、1を与え、加算器を大幅に削減。 私に別の整数、2を与えます。 1及び2の合計は3である。 すべての権利なので、非常に簡単 このプログラムは、それが何をしたのか? それは私が機能の使用を許可されています ここに呼んで、ここに別の関数を呼び出して、 GetIntで、Aを2回呼び出し printfの第3の呼び出し、 し、これらのプレースホルダを使用。 だから、もう少しだ 前回より洗練された。 しかし、私はどのように過ごしたい場合は、 少し手の込んだ取得? 私が先に行くと、今これをやってみましょう。 私が先に行くと作成してみましょう 新しいファイルには、条件がゼロと呼ばれる。 そして、私は保存するつもりです クラスためにいくつかの時間 そしてちょうどその中に貼り付け 出発点として、コード。 そして今、私はちょうど置くつもりです 途中でここに新しい何か。 だから私は、printfの整数をお願いしたいと思います。 そして、すべてこのコードを利用できます コー​​スのウェブサイト上で、 あなたはそれをすべてを入力する必要はありません あなたではなくはないだろうかのクラスで。 int型、そして今、私はするつもりです 代わりに、xとyの使用は、 私はある、nは使用するつもりです おそらく最も一般的な名前 コンピュータ·プログラムにおける整数のため。 そして今、私がやってみたい ここで少しの判断。 nの場合、私は見に行くよ その後、0よりも大きい 私は、printf--おっとを言うつもりだ printf--あなたは、正の数を選んだ 感嘆符ポイントバックスラッシュnを。 それを閉じます。 エルス私はprintfのをプリントアウトするつもりです あなたが負の数を選んだ。 今、あなたは私を叫ぶ前に、 それではこのプログラムを実行してみましょう。 私はここでダウンして行きましょう。 そして、私は、プログラムをコンパイルする方法 条件ダッシュ0と呼ばれる? 条件ダッシュ0にします。 愚かな名前の種類、but--くそ。 [OK]を、良い教育モーメント。 それはなぜ壊れたのか? 私は誤ってこのファイルを何と言いましたか? あなたはこの種の推論できる ここまでのタブから。 だから、悪い私というわけではない このため、これをしなかった あなたのいくつかにおそらく発生します。 だから私は誤って私の名前 ソースコードの条件0。 しかし、慣例により、私のソースコードは、べき 条件0ダッシュCというファイルになり、 または何ドットC。 だから、私はこの問題を解決しましょう​​。 ちょうどMicrosoft Wordのように私は行くことができます 名前を付けて保存し、条件0点​​cを行う。 今だけ私はきちんとすべき 先に行くと、削除しようとして 私の古いバージョンだっ条件0、。 そして今のメイクをさせ 条件0、入力してください。 [OK]を、良いようです。 コンディション0、入力してください。 私は、50、整数をお願いしたいと思います あなたは正の数を選んだ。 今どのように否定的な約50? あなたは、負の数を選んだ。 今はどう、0。 かなり確信して0が負ではありません。 だから、これは論理的なバグの一種である。 私はこれをどのように修正すればよい? さもなければ、nが0未満である場合、他の、これを行う ここでは3方向分岐を持つことができ、 printfのあなたは0を選んだ。 だから今、私はこれを再実行してください それをコンパイル後のプログラム、 再びメイクで、今再実行 条件0、私はここで何が表示されます 0私にその出力が得られている。 だからここで私たちはこれで行くの? まあそれは視力を失うことは非常に簡単です 木を見て森を。 だから私たちは結論付けを可能にする この2 1/2分間のビデオで それは、最終的にはビットです Googleの広告の、 それは本当にを証明するものです 何でもこれらの基本的な建物を使用して、 私たちは最終的に一回行うことができますブロック 私たちは、プログラミングのビットを持っている 私達のベルトの下に精通。 [音楽再生] SAROOブライアリー(ナレーション): それは26年前、 と私は5をオンにするだけで約だった。 私たちは、鉄道駅に着いたと 私たちは一緒に私たちの列車に乗り込んだ。 兄はちょうど私が言ったよ ここに滞在し、私は戻ってくるだろう。 そして、私はちょうど、よくあなたが知っている、と思った 私もちょうど眠りにつくことがあります そして彼はちょうど私に目を覚ますでしょう。 そして、私は、次の目が覚めたとき、 一日、全体キャリッジ 、暴走列車に幽霊空でした 列車は、私がどこかわからない私を取る。 私がオーストラリアに行っ採択された、 オーストラリア人家族に。 そして、お母さんは私を飾っていた インドの地図のある部屋、 その彼女が私の枕元の隣に置く。 私は毎朝目が覚めた そのマップを見て、したがって、 それは一種の生きている思い出を保った。 人々はあなたがしている、と言うでしょう 針を見つけよう 干し草の山、Saroo中 あなたはそれを見つけることは決してないだろう。 私は私の場所で光っていると思います 行くために使用され、私の家族の点滅 直面している。 私の母の像がありました、 彼女の足が交差して座って、 ちょうど彼女の叫びを見ている。 人生はちょうどので、難しいです。 それは私の宝物だった。 そして、私はGoogleマップを見ていたし、 実現だけでなく、Google Earthのあります。 あなたがに拡大できた世界では、 私はこれらの思考のすべてを持って始めた 何の可能性 これは私のために行うことができること。 私は、あなたが知っている、あなたがした自分自身に言った すべての写真の思い出を持って そしてあなたからしているランドマーク、および あなたは、町がどのようなものか知っている。 これは、そのアプリケーションであってもよい あなたが戻ってあなたの方法を見つけるために使用できる。 私はよく、私が出してあげる、と思った カルカッタ駅上のドット、 と半径線、あなたが知っている、あなたその この領域の周りを検索する必要があります。 私は一種の出会った これらの線路。 そして、私はそれを次のように開始し、 私は駅まで来た 同じ画像を反映 それは私の記憶にあった。 すべてが一致した。 私はちょうど私は、うんと思った 私は行くよどこに知っている。 私はちょうどようにするつもりです 私は私の頭の中で持っている地図 私をリードし、戻って私の故郷へ連れて行って。 私は目の前に来た 私が生まれた家。 そして、約15の周囲を歩い 角を回っメートル、 3女性が立っていた 外側の、互いに隣接する。 そして、真ん中の1は進み出て、 私はちょうどこれがあなたの母である、と思いました。 彼女は私を抱きしめ、進み出た、と 私達は約5分間があった。 彼女は私の手をつかんで、 彼女が家に連れて行ってくれました と電話、彼女の乗った 姉と弟が鳴った それを言うために、あなたが知っている、 あなたの兄弟はちょうど持って すべての突然幽霊のように見えた。 そして、家族は再び再会した。 すべてが、すべての良いことだ 私は、母を手伝った 彼女は離れて奴隷売買する必要はありません。 彼女は残りを生きることができる 安心して彼女の人生の。 それは、干し草の山で針だった しかし、針があった。 すべてがあります。 私たちは世界に持っているすべて ボタンのタップである。 しかし、あなたは意志を持っているんだと それを望むかの判定。 [音楽再生] DAVIDマラン:すばらしく 甘い証言 まさにあなたができるまで 今の技術で行う。 私たちは、来週お会いしましょう​​。