DAVIDマラン:これはCS50、とこれです 週1の始まりです。 そして、私たちは私たちがやるだろうと思っていたことは引き戻しさ その多くのデバイスのカーテン あなたはおそらく今では過去歩いたの 年間、おそらく決してかなり それが何であるか知られています。 したがって、このデバイスは、おそらく見ていきます 今ではあなたのほとんどにはおなじみ。 [ビデオの再生] - 数学の勝利と 機械的なスキルは、この偉大な新しいです 時の自動計算 ハーバード大学。 数学の複雑な問題は置く 上にコード化された形で機械を通じ テープを正確に分で解決されている に要する時間の数分の 人間計算。 すべての形式を促進するように設計さ 数学と科学研究、 巨大な機械的な脳意志 米国のために働く 終戦まで海軍​​。 [ENDビデオ再生] DAVIDマラン:だからそれはあなたがで見るものだ ある科学センター、 そのマシンは現在、収容されている。 あなたは、実際にはその一部を参照してください。 唯一の部分は、ディスプレイ上に現在 それはと呼ばれるデバイスです マークI、それは本質的であった 本当に巨大な電卓。 これは、マークIIによって成功した、と それは我々が実際にマークIIからだ 辞書のビットを取得します。 これは、最初に記録されたインスタンスである あなたがすべてになろうとしている何か 上であまりにも精通 学期の途中 - つまり、バグ。 だから、ある時点でマークが判明 IIデバイスは機能していませんでした 適切に、そして精密検査の際、 蛾 - バグが確かにありま​​した - その蛾 - 内側。 それ以来、私たちは呼ばれています バグなどのプログラムの間違い。 だからもっとそれに来ています。 あなたならば、同様にビデオといえば すでに、CS50があることを知っているしていない 明らかに撮影しました。 講義は通常の直後に上がる プレリリースの一種で、クラス 未編集の形式、その後一日か二日 後、私たちは、高い解像度を上げる より高い品質のバージョン。 あなたが持っていたヴァネッサを、思い出すこと グーグルグラスで遊んでの幸運、 私に覚えている この時間を充電してください。 だから、クラスの後に出てくるようにしたい場合 彼らは今日動作するはずですが、再生されます。 そして、あなたはヴァネッサか見たい場合 先日は、あなたが表示されます何を見た ここで - 私は音量を上げるう ここに私のラップトップ上。 [ビデオの再生] - だから、これがアップしている私には、キューができます。 わかりました。 だから、これをタッチします。 わかりました。 OK、ガラス。 映像を記録します。 わかりました。 ヴァネッサ? [ENDビデオ再生] DAVIDマラン:すべての権利、その理由 それであなたのほとんどのために働かなかったことを 私が進めているため、クラスの終わりだった その時間を記録する 映像は後に自分自身を指して 私はメガネを置く。 だから、今日、私はそれらをオフのままですが、感謝します このようなことのためにあなたヴァネッサへ スポーツ良い。 発表の一方で、カップル 我々は今日押し進める前。 1、CS50はやっての伝統を持っているので、 私たちは非常ににしようとすることができます 大きなクラスが小さく感じる。 そしてその終わりに向かって、ほとんどの毎週金曜日、 我々は中にレストランで集まる 30または40の正方形、火と氷、 クラスメートの、私自身、いくつかの 教員、そして我々だけ 非常にカジュアルなランチを持っている。 私たちはしばしば、産業界からの友人を招待する クラスの卒業生の同窓会 大学、本当にただチャットに各 他のアップした後の生活についての話 大学、大学での生活、 等が挙げられる。 ですから、これには参加​​したい場合 最初のそのようなランチ今週の金曜日に 13:15、と頭 ある時点でURL。 スペースが限られているので、やる 最初の最初のサーブに来る。 しかし、我々は定期的に再びこれをやる そうしない場合、基本は、そう心配する必要はありません この最初のバッチにそれを作る。 現在、資源的に設けられた curricularlyもちろんによって、 そこに全体のスルーです、あなたは持っていない場合 もちろんのウェブサイトを引き上げ 既に、特に、講義の下で、 あなたはそのすべてのものを見つけることができます 我々は両方とも、そこに最後の週となりました ビデオやいくつかの並べ替えで 電子フォームの。 しかし、ビデオを超えて、あなたは見つけることができます 全文は今があること 例えば転写産物、 すべての講義の。 我々は、実際にこの画面に戻るのであれば ここでヴァネッサと、とナビゲート 画面の下部コーナーに、 あなたがのために、その実際には見つけることができます 金曜日の講演会が、我々はに戻った場合 水曜日、この機能はかかるので 数日は、あなたができることを見つけることができます 実際良くもため、プルアップ 悪いことに、すべての単語そのIまたは ステージ上のボランティアは述べています。 ただそれよりも、より。 あなたが実際にそれを検索することができ、次のことができます ジャンプし、それらの文章のいずれかをクリック その点へのビデオでは、すべての方へ すべての材料を作ると終了 もっと航行。 しかし、あなたはむしろそれに従わないたい場合 このような詳細には、のために、見つけることができます 例えば、1.5はこちらこの小さなメニュー 速、2倍速、または私はすでにI fを あなたのために速すぎて話す、0.75倍の速度。 だから、つまり、すべてを実現 あなたのためにそこに利用できる。 しかし、それを超えて、講義のために、実現 我々はまた、これらのリソースを作成しておくこと 同様に利用できる。 スライド、サンプル·コード、何でもそのI 、ステージ上またはクラスの前に行う 我々はあなたが遊ぶことができるように、そこに投稿します 自宅やサンダースで一緒に。 しかし、我々はまた、我々はこれを行うだろうと思っていたのか 初めての年でもある あなたは、ウォークスルーで提供 これらの例。 ますます、私が上に反映したとして CS50の講義の価値は、私が始めてきた それがためにどれだけ有益な質問に 私は立ってするの君たちは、そこに座って ここでは、と私はあなたに話をするために、 特に材料として、 例は、より複雑になる。 常に、後のためのいくつかの数 分、誰かがゾーン外になり、かつ その後、いくつかのいくつかの重要な洞察を欠場 たとえば、その後は基本的にしている クラスの残りの部分のためになくなって、 うちの最善の利用ではない あなたの時間、または、本当に、私たち 総称クラスとして。 そして我々は、我々がやろうと思ったのか 特により多くのいくつかのため 私はしないかもしれない複雑な例 クラス内の、我々はしないかもしれないと正義 クラスのための時間を持っているか、かもしれない ただゾーン外時には、私たちが生産しますです これらのウォークスルーの一連の ためにあなたが行くようにしている場合の例で、 例えば、ここでは先週金曜日のビデオページ 例の下では、その表示されます 金曜日のために、これは今ではありませ チュートリアルへのリンク。 そして、これらのフォーマット 時間の経過とともに変化します。 今のところ、我々は単純なを使用している YouTubeのプレイリスト。 しかし、私は私たちの生産チームとやった その後それぞれの散歩でした 再度、これらの例の一人一人、 うまくいけばはるかに指摘 明快まさに持ち帰り かもしれないまたは各々からでなければなりません。 だから、最後から、例えば、見つけることができます 週、スクラッチ例のすべて 私たちは、直線的に行われて通り抜けた そのやり方である。 だから従事して自由に感じるかどうか この材料に従事。 この特定のコースは本当にテーマ おそらくそこにあるということです あなたよりもリソースの方法で おそらく以上吸収できる 学期のコースです。 しかし、それは意図的なのです。 それはあなたのようになるようであることを意味している 個々の学生が自己の選択することができます あなたの学習スタイルに基づいて。 講義はあなたのために働くのであれば、素晴らしい。 のセクションでは、あなたのために働く場合は、素晴らしい。 チュートリアルでは、のために働く場合 より良い、素晴らしい。 それは本当に選択するあなた次第になります どのリソースはあなたのために最高の仕事。 最後に、卒業生のおかげ もちろん、我々はまた、正規に提供 スクライブ·ノートのセット。 そうではなく、君たちの頭を持っている ダウン走り書き講義で 私たちは、クラスの中で出てくるもの、 スタッフは、私たちを提供します 感じるの注記の標準セットです その結果、その気晴らしのあなたを解放 ここにいると従事している場合、あなたは 本当に、何が起こっていると係 あなたのクラスメートは、上に行っていると 舞台、画面上に何かあったのと、 そして単に逐語書き留めていない 何は言ってきたために起こった。 だから、これらのリソースのすべてを実現する が利用できます。 セクショニング、よくある質問に答えて、 この水曜日に開始されます。 我々は本質的に最も後まで待つ 他のクラスは、我々ができるように行われている 変更の数を最小化する 我々は行う必要がある。 しかし、この週末に来る開始 日曜日、一回のインスタンスになります 我々は、スーパーセクションと呼んでいるもの。 これらは誰ができない人のために撮影されます 出席し、本質的に、 もちろんの頭はいくつかを私たちに歩いていく もちろんCの部分の、 問題セット1の終わりに向かって、どの 基づいて私たちの最初のCであることを行っている 問題セット。 そしてこれらは、単にオプションのセクションになります どうなるかを見越して つながっ繰り返しセクションになる 当然の50プラスで 仲間を毎週教え。 日曜日または月曜日または火曜日に、我々 非常に90分のセクションを持っている になり、伝統的な意味、 手のための機会に、より の親密な見直し 当然の素材。 さらに騒ぎがなければ、私が紹介してみましょう ですもちろんの頭、 私と一緒に舞台裏で、 すべてが起こること。 それらの今日ここに私を参加することができれば、ロブ とローレンとヨセフとルーカス、すべて とされている人の いくつかの時間のためのコース。 RJは、第三のようです 私たちのチームの一員。 彼は今日ここになりますが、彼ができなかった 彼の写真を表示するように私に尋ねた。 私は彼がこれを望んでいたかわからない 1、しかし、そこに彼がいます。 そして、私はただのチームが言うことができましょう こんにちは、そのように自分自身を紹介する あなたは彼らだけでなく、あなたのことを知る 独自の教育仲間この用語。 LAUREN CARVALHO:こんにちは。 私の名前はローレンカルバリョです。 私は居住者の家庭教師だ Leverettハウスである。 私はまた、ことに興奮スーパーだ CS50今年の頭テレビ。 CS50は、同様に非常に挑戦的なクラスです 非常に大規模なクラスとして、もしそうであればあなた あなたのように感じる場合は、任意の懸念を持っている あなたの後ろに落ちている、お気軽に 私たちのいずれかに手を差し伸べる heads@cs50.het、または私に、ご希望の場合 私の黄金のと遊ぶのが好き レトリーバーの子犬。 ここルーカスです。 LUCAS FREITAS:ねえ、みんな。 私の名前はルーカスフレイタスです。 私はジュニア[聞こえない]だ コンピュータ科学と言語学。 私はまた、ブラジルから実際に、と私 東アジア研究を実現しています。 ですからについてのご質問がある場合 コンピュータサイエンスや言語または 何か、ちょうど私に知らせてください。 またはCS50、特に。 JOSEPH ONG:こんにちは。 私はジョセフだ。 私は先輩の勉強コンピュータだ エリオットハウスの科学。 だから、見てみましょう。 あなたは、持ち運び私を見ることができます これらの巨大なカメラの1つ。 私は常駐スタッフのカメラマンだ 50のためだけでなく、学生しばしば 時には私のために間違え アジアの観光客。 だから、あなたは私のカメラで見たら、 逃げないでください。 ただ笑顔と恥ずかしがらないで。 そして、私はあなたが50をお楽しみください。 私はそれを取ったとき、私は、非常にそれを楽しんだ と私はTFingきた理由だ この3年間。 ROB BOWDEN:こんにちは。 私はロブだ。 これはCS50と私の四学期です。 私はちょうど月に卒業した。 私はカークランドにいた。 私は、この学期のために興奮している と私はあなたも願っています。 DAVIDマラン:今年のに感謝します だけでなく、ヘッド、およびRJへ。 リソースには、いくつかの最終的なノートはそう。 One、pは0が既にアップしている設定。 これは、標準に存在 ためのものです版、 クラスの全体。 Pセット1から始まる、があるだろう ほとんどの問題はセットのハッカー版、 その、再び、材料をカバーする 一方、挑戦のもう少しで まだいくつかに触れる 同じトピックの。 もちろんのウェブサイトを見てみましょうか pに対するその仕様のために0を設定します。 営業時間は、あまりにも、、今週開始します 今夜、明日、水曜日、 様々なダイニングで、木曜日 キャンパスのホール。 オフィスcs50.net/ohsをチェック コー​​スの時間、これを実現 非常にカジュアルな機会となり、 確かに、開始時 学期は、あなたとのことで来て 脳の休憩中にノートパソコン。 何人かの友人を持ってきて、最大チャット 任意のと当然ののTFとのCA あなたが持つかもしれない質問。 と私もために、十分に強調することができません そこには、0を設定し傷や問題 実際にはばかな質問ではありません。 あまりに不快ない学生はありません 質問をする。 を活用すること自由に感じなさい このリソースの。 それはrecurringlyがあるだろう 学期を通して、 CS50は議論するとして。 これはもちろんのオンラインディスカッションです そこに、そのアドレスのフォーラム。 私たちは、講義中にも何をするつもりです また、のおかげで、これを監視する 当然の指導チーム。 そして、あなたは中に質問がある場合 私が何かを言ったので、講義 不十分またはまったく、是非、お願い リアルタイムでその、あなたを持っている場合 ノートパソコンや携帯電話のウェブサイト上、および 私たちは、近くにリアルタイムで最善を尽くします それに応答します。 CS 50についてのご質問はありますか? 私のその後最後のノート。 そのSAT UNSATの問題。 あなたであれば、あなたの学習カードを完成させるように すでに、実現しなかったこと SAT UNSATの包括的なビジョン、 すべての学生のための利用可能な、本当に もちろんエッジを脱いで支援する このような、いわば、そのようであれば、あなた 夜、2AM、午前3時に遅い自分自身を見つける、 実際に照らし合わせて頭を叩いて あなたは99%いる知っている壁 そこに完成への道が、あなた 、実行するので、他の多くのものを持っている 私の、しばしば、より良い利用を考える 学生の時は確かに上に移動することです それらの他の事はできるように、 すべての周りのあなたの時間を最適化します。 とSAT UNSATは、ビア1メカニズムです あなたは、実際に快適さを取ることができます それがある方法の99% それでもかなり良いくそ。 同様に、あなたはに来すぎた場合 無事前背景を持つコースまたは あなたのようにしないほぼ同じくらい背景 あなたのクラスメートは、本当かもしれないと思う またはfalse、これがあることを認識 あなたの手が汚れて得る機会 当然で、であなたのつま先を置く 水は、そんなに私自身のように、話すこと 合格/不合格を数年前でした。 私が先週言ったように、このコースを持っていた、 他人のように、利用されていない 一度合格/不合格、私はおそらくだろう これまでに足を踏まれていない クラスは、私がやっていても、5週間 後、私の心を変え、どのあなた 同様に、過に切り替えることができます または手紙段階的状況から。 わかりました。 だから我々は、上でこのようなものを見 金曜日、我々は非常に迅速に行っている その何かに移行する 今日より不可解に見える。 しかし、それにもかかわらずだ 同じ基本的な考え方。 一般用語とは何だった我々 パズルピースを記述するために使用される それはこのように見えた? だから、声明。 そして、あなたは、このいずれかを呼び出すことができます ものの数。 しかし、我々はちょうどそれ声明呼ぶことにします、 と声明 単にプログラムを伝え - またはスクラッチの場合には、 スプライト - 何かをする。 このケースで挨拶。 私たちはこのような何か 代わりに何と呼ばれる? うん、そうブール式。 ブール式は、ちょうど何か それはtrueまたはfalseですので、スクラッチ この形でそれらを描くだけでなく、 伝えるために疑問符 この質問への答えそのアイデア trueまたはfalseのいずれか、yesまたはnoです オン、1または0。 そして、私たちはこれらのブール式を使用 これらのような構造物の内部に、どの 私たちは何と呼ばれる? だから、条件またはブランチ。 そして、あなたはここで見ることの条件 スクラッチのための少しプレースホルダーを持って その形のパズルのピース、目的 そうすることができていることとなっている それをドラッグして上にドロップしてから、 プログラムに指示する場合は、このブール 式がtrueの場合、この一連の操作を行い 命令文のこのセット、 他にこの他のセットを行う 命令の。 そして、あなたができることを思い出す 巣これらの事を。 余地がないにもかかわらず、 視覚的にそのパズルのピースに、スクラッチ 成長し、どのようにフィットするように縮小されます あなたがドラッグアンドドロップのパズルのピース ので、巣、これを、実際にそこにすることができます 道路の三方フォークを持っている。 他に、他の場合、もし。 そしてあなたも、それを超えてで行くことができます 必要に応じて、さらに、さらに入れ子。 だから最後に、我々のような構文を見た これは、他の方法でループとして知られています。 そして、これは単にないものです もう一度、もう一度、もう一度何か。 この場合には、有限であることを起こる 回数が、我々も 例を見てどこの数 時間は変数から来たので、 変更することができます。 そして、我々はまた、完全に別のブロックを見た 永遠にブロックが呼び出さ 私たちは、無限に長いループに許可。 だからもう一つ作成することをスクラッチ 2.0は持っている - と、よりあなたのそれらの 前の背景に慣れている これにすでによく精通 構築 - これらの事を私たちは何と呼ばれる? だから我々は、そうでない場合、これらの関数と呼ばれる 手順として知られています。 若干の意味上の違いは、あります しかし、我々は彼らだけの関数と呼ぶことにします。 スクラッチの場合と機能、 ことは、カスタムパズルのピースです あなた自身は、あなたが持っているように作成することができます 、これで新しいパズルのピース ケースは、咳と呼ばれるであろう、その 他のすべての間で表示されます スクラッチで利用可能なパズルのピース。 MITが発明しなかったにもかかわらず、 このパズルのピースは、やった。 この関数は、新しいを作成することができますので、 行動、それを関数名を与え、 その後、いわば、それを呼び出す。 本当にもう一度プログラムでそれを使用して、 何度も何度も待つことなく への道をMITのような誰かのために スクラッチから新しい機能を考案。 あなた自身は、これらのパズルを構築することができます 自分で、その後、それらを再利用する部分 独自のプログラムである。 そして、私たちは定期的な例を見ることができます 、今日以降の。 だから、今日、我々の移行今 もっと難解なものに。 しかし、一日の終わりに、何か より強力で表現力と、より 我々はだろうというパスの代表 数全体のすべての学期に 言語 - コー​​ドまたはソースコードのその。 とソースコード、それは結局、 コンピュータはものではありません 一般的に、実際に実行されます。 ソースコードは次のようになります。 だから、これはおそらく、再び、最も簡単です 我々は書くことができますプログラム 言語はC.私達はを開始しますと呼ばれる やがて離れてこれをいじめるし、場合 これは本当にギリシャのように見えるん あなたに今、私を信頼しています。 ちょうど一週間または2の時間内に、この 実際あまりにもおなじみとなります ますますのかなり代表 あなたはよとの複雑な例 また、より快適になる。 しかし、あなたはこれを実行することはできません 通常、コードの種類。 あなたはその何かにそれを回すために持っている コンピュータ自体は理解しています。 そしてそのために、我々は何かを必要とする 我々は、コンパイラを呼び出すつもりだ。 コンパイラがかかるプログラムです ソースコードは、先ほど見たように、など 入力され、それがゼロを生成し、 出力としてのもの、そうでない場合 オブジェクトコードとも呼ばれます。 そしてそれはそれらのゼロとそれだ このように非常に見えるかもしれない 最終的には理解されている お使いのMacまたはPCで。 あなたは今までのマーケティングを聞いたことがある場合 ちょうどその表現インテルインサイド、 会社ということを意味 インテルは製造しています お使いのコンピュータの頭脳 - それ以外のCPUとして知られている 中央処理装置 - 、それはちょうどそのことだ パターンを理解しています ゼロと1の。 そしてソースコードをに変換することにより、 ここで、このプロセスを通じてオブジェクトコード 我々は、コマンドのカップルとやること 少しだけで、あなたは ゼロと1の作成パターン インテルでは従業員が持っていること 特定の文を表すことを決めた。 今、私は全く知りませんした これは、ただでかすめることです これらのゼロと。 ほとんどの人間は、これらの日にはありません。 しかし、どこかでのパターンがあります 表し、ゼロと 声明プリント。 どこかで異なるがあるかもしれない ことをゼロと1のセット 永遠の概念を表したり、 それがあれば、10倍あるいはニャーを繰り返す することができ、実際にプログラム いくつかの音が含まれています。 だから要するに、人間はただ決めた、 同じように我々は、ASCIIのためにした - 先週アルファベットの文字のために - 人間はそれさえ決めた ゼロと1の、より複雑なパターン より複雑な動作を表す 印刷やことわざやニャーと鳴くような。 そして今日のために、そして大部分以降 学期では、我々はのために取るよ 誰かが考え出したことを付与 そのマッピングを行う方法を。 しかし、我々のこの考え方と一致して 人々の仕事の上に階層化 私たちの前に来て、誰のためになります これが起こっているという事実を付与 ボンネットの下に。 しかし、我々ははるかに多くの興味 以上であるものを構築 このすべての上に面白い。 そして確かに、最初のプログラムたち スクラッチに書いたこの超簡単だった 1こんにちは、世界。 そして、あなたがあると考えることができます スクラッチのを支配する主なプログラム 先週の金曜日のように振る舞い。 今日、私たちは、翻訳を開始するつもりだ パズルのピースにスクラッチ と呼ばれるこの言語のソースコード Cというように、このように見えたのか、その 金曜日、今日以降の開始であり、 今、このように見に行く。 確かにも​​っと不可解。 それはかなり気が散ると心のようなものだ 引用符のすべてを見ることが麻痺 とセミコロンと 括弧など。 しかし、あなたは何を無視し始めた場合 理解し、実際に見ていない 上の白いテキストの本質で 画面、きっとあなたは、私のように、参照してください "こんにちは、世界。"とそれがラインアップ 紫のトップまでの文、それは変わり 外メインキーワードがしようとしていること と概念的に並べると、緑色 フラグをクリックしました。 だから、他の言葉で、スクラッチでのに対し、 我々はこのHello Worldプログラムを実装 それらの2つのパズルのピースと、C言語で、 我々は、これらとそれを実装するつもりだ 4やや不可解なライン。 しかし、我々はこれに深く潜るように、よ 見ているものの各1 実際に画面に白文字 いくつかの重要な意味を有し、 と我々のプログラムのほとんどはに行っている 構造的に全く同じに見える。 だから声明、明確にするため、どのような の "世界の挨拶"のように見えた 金曜日見て開始する予定です 月曜日にこれが好き。 のprintf( "こんにちは、世界")。 そして、いくつかの奇妙なバックスラッシュはあり nは、括弧があり、そこ セミコロン。 しかし、一日の終わりには、キー テイクアウトは本日、すべて我々がやっているということです 絵から物事を翻訳している テキストフ​​ォームにフォーム。 したがって、このように見えたループ 先週は今見に行くさ このような何か。 そして、ちょうどのように、私は放棄せ スクラッチ、にさまざまな方法があります 同じ目標を達成する。 同じCで私はあなただけを示していないよ 物事を行うための方法が、一つの方法に 永遠にこの翻訳 Cのループにブロック ここではこのいずれか、10回繰り返します。 曲がりのこの1本当に親切 あなたはそれを参照してください最初に時間を気に。 しかし、今後実装するため、 我々は使用するつもり forループは、いわば。 と明確ないくつかの構文があり 私とそこには少し複雑で、 等しいと0が、一度我々はそれに飛び込む 今日以降では、あなただけのつもり すべての単にいくつかをやっているということを確認する 0から私たちを得るための基本的な算術 9またはこの場合は10までに。 最後に、変数を使用して、あなたは思い出すでしょう 変数は、ストレージの一部であること。 さて、私たちは最後のそこ左に持っていた 今週は少し見に行くさ これは今週のようなもの。 しかし、再び、もっとそれに来ています。 我々は、ブール式を持っていた 先週、このように見えた。 今週以降、彼らはするつもりだ そのように少しを見て開始します。 、この1つは実際にある 少し安心。 それは実際にはほぼ同じくらい簡単です 緑のブロックのように。 しかし、ここで我々は、再び、いくつかの新しい構文を持ってい アンパサンドと、しかし、次のことができます おそらくあなたは、スクラッチのに対し推測 どうやらC言語で、-N-Dと言う、我々はしている アンパサンドアンパサンドを言おう。 しかし、これはすべてになります ずっと前に自然。 条件。 先週、そのように見えた この左側に。 今週は、右側に、それはだ そのように見に行く。 しかし、再び、ここで重要な持ち帰りはということです あなたは上のそのようなものを見るように 右、特に少ない場合 快適な、それはあなたの上のソートのだ ヘッドは、あなたは少しは圧倒得ること 私は実際にどのように私ができる見当がつかない おそらく思い付く 最初からその - シャレでは意図していません - ちょうどそれが実際には同じだということを実現 おそらくそんなに多く感じたアイデア 前週自然。 そして、あなたがに潜っていない場合でも 問題は0を設定して、私はあえて、あなたは見つけることができます パズルのピースは、かなりあること 直感的な、または少なくとも 時間をかけそうになる。 だからダイビングのインチう ここで私たちの手を汚すレッツ この最初の簡単なプログラム。 そして単純もちろん、相対的である。 これを行うには、私は、画面を変更するつもりです そのデバイスに私が呼ばれる CS50アプライアンス。 CS50アプライアンスは、の一部です 内部で実行しているソフトウェア 私のMac上のウィンドウ、そしてあなたにも実行することができます お使いのPCの、内部ウィンドウでそれ 私はまったく同じを持つことができます としてすべてのTFとしてコンピュータ環境、 すべての学生のように、すべてのCA、 クラスである。 CS50アプライアンスが文字通りあるので 別のオペレーティングシステム Linuxと呼ばれる - 特にFedoraのLinuxの - そして我々は、スタッフが、構成されている このため、インストールプロセス その1そのような方法で、オペレーティングシステム、 で少しCS50ロゴがあり 真ん中の二人は、でカスタムメニューあり 底、三、教育学、 我々は次のようにユーザインタフェースを簡略化しました できるだけ多くなるようにしたとき 最初に自分でこの事を起動 MacやPCは、同じを持っている 他の人たちと環境、そしてあなた あなたが必要とするすべてのツールを持っている 把握することなくコース 外にそれぞれをインストールする方法 個別にすべてのツール。 だから、これは相対的に見える のMac OSやWindowsのような。 左下隅には、 本質的に、[スタート]メニューを持っている 並べ替え、またはアップルメニュー。 そして、あなたは私たちが意志疑うものを持っている あなたの最も一般的な3つのアイコンである。 一つはクロームです。 内部ブラウ​​ザがあります アプライアンスの。 二人はその、geditのと呼ばれるプログラムです。 我々はある、先週簡潔に見 ただグラフィカルエディタ。 そして3は、ターミナルプログラムです から黒と白のウィンドウです 私たちはより多くを入力することができ往年 難解ですが、より強力なコマンドで 私たちのキーボード。 だから私は先に行くと上をクリックするつもりだ geditを、残りはその問題を保証 セット1、、金曜日になり解放される すべて同じ手順を追って。 私はかなり単純なを持っていることに注意してください 三つの部分を持つユーザー·インタフェース。 左側には、私は大きな空を持って ウィンドウは、ソースコードと呼ばれる。 私は概要を表示するつもりだところです 私が書いたすべてのコード。 右側に、私は大きなを有する タブには、現在保存されていない、とすることです どこで私のコードは行くだろう。 そして底に、私が埋め込まれている ターミナルウィンドウ、白と黒 私は、コマンドを入力できるプロンプトれる コンパイルして私のプログラムを実行する - その ように、私のプログラムを実行する、である。 だからシンプル始めましょう。 私は保存し、ファイルにバックアップ行こう。 私が先に行くつもりだと jharvard入る。 アプライアンスだから関係なく、何の あなたの名前があ​​り、名前の男に属し jharvard家庭を持っているジョン·ハーバード、 あなたのうちのすべての内部ディレクトリ ファイルが移動します。 それは、自分のアカウントの独自のコピーで 従って我々はすべての共有じゃない 同じハードドライブ。 あなただけの幻想を持っている ジョン·ハーバードの独自の。 事前に、私は実際に Dropboxがインストールされています。 アプライアンスは、予め調製と来る Dropboxはそうだとすれば何が間違って行くこと 学期中に、あなたがしている場合 無料であなたのアプライアンスを設定して Dropboxのアカウントは、すべてのファイル意志 自動的にバックアップするので 非常に簡単にそれらを回復することができます。 そして、私は私のDropboxに行くつもりです ディレクトリ、および既にそこ起こっている そこにカップル他のものであることが。 しかし、私は先に行くつもりです と保存、ファイルにアクセスしてください。 私はjharvard、Dropboxが、に行くつもりです とここまでは、私はするつもりです 私のプログラムは超簡単を与える 名前、hello.cをした後、保存します。 だから私は今、同じインタフェースを持っている。 変わった唯一の事 トップアップするタブです。 だから私は非常に迅速に再現するつもりです からそのプログラム 一瞬前にスライドします。 だからメイン(ボイド)、その後のprintfに、 "こんにちは、世界、"やや不可解 近くにバックスラッシュnは、近い引用、 括弧、セミコロン、および 次にCtrlキーSを保存します。 脇に何かのようであり、予告 左上にここに登場しました。 そして、これは今日の便利ではありませんが、 時間をかけて有用であろう。 あなただけ、、の概要をもう一度参照してください あなたが書いたコード。 そして、私はと呼ばれるものを書いたので、 主な単語が飛び出した理由のメイン、 あそこまで。 しかし、ほとんどの部分のために、我々 今日のことをする必要はありません。 すべての権利は​​、ので、私はこれが私であることを主張する プログラミング言語で書かれた最初のプログラム 言語は、我々は金曜日から知っC.呼ば 何このことはやろうとしていること 非常につまらないほど時I それだけで表示されて実行 - 換言すれば、コンピュータとして、印刷 科学者は言うだろう - 画面上でのHello World。 だから、これを行うには、あなたは私が持っていることに気づくでしょう 私の端末に、ここでダウンする ウィンドウ、そして今私が持っている 点滅するプロンプトが表示されます。 しかし、これは今のキーボードバージョンです 私のジョン·ハーバードのホームディレクトリ。 これは、経由キーボード方法だ 私のハードドライブをナビゲートする。 だから私は、実際に私が行ったように入力することはできません 先週こんにちは、ので、それは作る 目標を作ることはルールも言わないつもり - 何かが間違っている。 私はかなり知らないのか、そのメッセージ 手段が、デフォルトであるためだが、 この黒と白のウィンドウがあるとき 開かれた、私はジョン·ハーバード大学の内部によ ホームディレクトリ。 しかし、ここで私は、そのプログラムを保存したのですか? 私のDropboxフォルダ内。 さて、私たちのすべてはで育ってきた あなただけのダブルクリックコンピューター フォルダのアイコン上で、それ まで開き、出来上がり。 ファイルと呼ばれるところです hello.cのは次のようになります。 だから実際には、これを行うてみましょう。 私が先に行くと、geditのを最小限にしましょう ちょうどあなたが上と同様 WindowsやMac OSの。 私がホームに行こう 左上のフォルダ。 私はここのフォルダの束が表示されます。 ここに私のDropboxフォルダです。 チェックマークは、それが同期されていることを意味します。 そして、いくつかのことは、ここにあり しかし、hello.cのあることに気付く 本当にすぐそこ。 そして、通常のMac OSやWindows、で、 私は二重のそれで開き、それをクリックしてね どのようなプログラムで、私は行ってもいいよ。 しかし、今、少なくとも我々は、今日から だけに後方に一歩を踏み出す必要がある あなたのためのいくつかの基本的なツールを提供 もっとやってとのツールキット ずっと前に強力なもの。 だから、このプロンプトで、私がしなければならない ダブルクリックするのと同じ Dropboxフォルダ。 そして、それを行うために、私はのためにCDを入力するつもりです ディレクトリを変更し、Dropboxは、次のコマンドを入力します。 そして今の私に括弧に気付く いわゆるプロンプトが今私はにいると言う チルダ、少し曲がりくねった の左上のシンボル ほとんどのキーボード、/ Dropboxの。 これはただの省略表記です 人間と言って、あなたは今、内部である Dropboxフォルダ、単にあたかも あなたは、それをダブルクリックした。 だから今、私が先に行くと型を作る場合 こんにちは、次のコマンドを入力し、私は非常に不可解な見 コマンドではなく、エラーメッセージ、 それはそうです、その後 別の点滅プロンプト。 そして、あなたが思い出すと、今までこんなに早く 金曜日に、我々はこれをしなかった。 。/こんにちは。 あなたは何を参照してくださいしようとしていることは結果であり、 の私のMacには、このプログラムを実行する、または OSとPCの用語は、私は普通倍増たい場合 プログラムをクリックしてください - 。アプリを プログラムやexeファイル、それが表示されます ウィンドウと実行されます。 タイピング。/こんにちはダブルただ好きさ それを実行するプログラムをクリックしますが、 私のキーボードを使用して。 こんにちは、世界を入力してください。 そして、それはそれだ。 だから、そのためには別にこれをいじめるみましょう あまりにもギリシャのように感じることはありません。 だから、。/は何を意味する? これまでキーボードをナビゲートだ誰 このような環境では、ドットは何ですか を参照する? カレントディレクトリ。 だから、現在のディレクトリだけである フォルダの同義語。 だからドットスラッシュを言って、私は言っている でこんにちはと呼ばれるプログラムを探してください カレントディレクトリ - 現在のフォルダにあります。 言い換えれば、私のDropboxフォルダ。 打撃、その後入力理由だ 実際にそのプログラムが実行されます。 私は今、私が参照してくださいという通知をLSを入力した場合 私のDropboxフォルダ内のすべての。 Started.pdfの取得、そのDropboxの 私の写真は、自由のためにあなたを与える ディレクトリは、パブリックディレクトリ、未保存 私は間違えて作られた文書1 一瞬前に、私が以前行っfoo.cを、 今日は、その後二行 - hello.cをとこんにちは。 hello.cのは私が書いたプログラムです geditの、そして何が緑色でこんにちはです? 緑色でこんにちはは実行です。 言い換えれば、とき、私は、このコマンドを実行した 一瞬前に - 私はロールせ 時間内に戻って - 私はこんにちは作る実行したときに、それはだ ここで中段。 そしてそれは、入力として、hello.cを取った - AKAソースコード - それは製造 出力としてハローと呼ばれるファイル、どの これらの0と1がすべて含まれています。 そしてそれは、私は、最後に、なぜことができます 実際のようなコマンドを実行します。/こんにちは。 インテルインサイド、私の運転のために システムは、Linuxは、それらのゼロを切り開く そしてもの、にそれらを供給する 私のコンピュータの頭脳 - CPU - とCPUが知っている、ああ、ここでは、パターンだ ゼロと言うものの 次のものを印刷 画面上で。 次のものは何ですか? 、引用終わりを引用の "Hello World。" すべての権利なので、いくつかの簡単な概要 我々は開始できるように、これらのコマンド 付与のためにそれらを取る。 私は先に進んでみましょう 私たちは、中断したところ。 そして、あなたは私たちがCDを持っていたことを思い出すでしょう 私たちの後ろに一瞬前に終了します。 これらのために、私はあえて言う、ある 今日の目的 - 多分今週 - コマンドのみ我々 コマンドプロンプトで入力する必要があるかもしれません 作る以外にプロンプ​​トが表示されます。 だからCDは何のために立っていた? ディレクトリを変更します。 それはちょうど二重の同等だ フォルダをクリックする。 そして、あなたが取得する場合、さておきとして これまで内部あなたの失われた Dropboxのようなそのアプライアンス、 - 私は自分に戻って取得したい jharvardディレクトリ - 疑わしい場合は、CDには、次のコマンドを入力したときに、他との 言葉、そしてそれだけでジッパーをバックアップ あなたが始める場所に、どの ちょっといいショートカットです。 すべての権利、今他のコマンド。 LS。 私はその瞬間前に入力しました。 あなたは、LSの略どう思いますか? だから、リスト、右? 人間が来ていた時に、その日に戻って アップするこれらのコマンドを使用して、彼らは 効率的になろう、とむしろた L-I-S-T ENTERを入力し、それら LSを決定した。 それは大丈夫です。 これは、リストのように十分に聞こえる。 レッツだけ型LSが入力し、その 私の中のファイルやフォルダの一覧を示し 現在のフォルダ。 します。mkdirは、あなたはおそらく推測することができます。 ディレクトリを作成します。 だから、いくつかのファイルメニューに行かないと この環境で新しいフォルダを選択します。 むしろ、コマンドは、mkdirスペースを入力 その後フォルダの名前 あなたが作成したい、 それが実行されます。 RM、あなたはおそらく推測することができます。 削除するか、削除してください。 あなたがファイルを削除したいのであれば、あなたはよ どのように設定して問題に表示 これを行うことができます。 とRMDIRディレクトリを削除します。 だから、再び、私はいくつかを飛ぶ傾向にあるだろう これらの詳細の、1、なぜなら 彼らは過ごすためにすべてのことをとても楽しいじゃない 上の時間、しかし、2つは、私たちはあなたをに提供するよ のいずれにおいても、はるかに詳細 当然の問題は、特にセット スタンダードエディションのいずれかの手順 あなたはそう入力する必要があるかもしれない あなたは、より多くを得ること これらの事で快適。 しかし、今私が離れていじめるましょう もうひとつ。 我々は、入力された瞬間前Hello作る、 我々は、コマンドの不可解な一連のを見ました。 我々は再び、見た、こんにちは作る。 OK、これを行うてみましょう。 私がミスをするとしていたが、 【聞こえない]今私がしようとしていた認める と意図的にそれを行う。 私はちょうど今、何を間違ったのか? ええ、私はDropboxのではないよ ディレクトリ、一瞬前にいるので、私 型付けされたCDとだけ入力してヒット。 それは、私が始めた場所に戻って私をズーム それはどこに私のファイルではありません ですので、私は実際にCDのDropboxを実行する必要があります 入力すると、今私は、rmこんにちはを行うことができます 入力、こんにちは通常のファイルを削除します。 私はそれがとても不可解な理由がわからない。 ただ手段はあなたが確信していることを あなたはこんにちはを削除したいですか? あなたは、次のように入力し、y(はい)を入力することができます そして今、それが逝ってしまった。 そして今、私は再びこんにちはすると入力した場合、それだ 私のオブジェクトコードを再作成しようとし、 これらの0と1を再作成。 しかし、との契約は何ですか この非常に長いコマンド? さて、私たちは離れてこれをいじめるよ 長い前に、しかし、作る - 私は前に白の嘘を少し語った - コンパイラではありません。 確認は自動的にプログラムです 実行する方法を図 あなたのためのコンパイラ。 だから、あなたが本当にする必要があることコマンド hello.cを変換するために実行されている こんにちはに実際に見える このようにもう少し。 と禁じる神私たちは実際に持っている 今までにその全体を入力することを忘れないでください 外コマンドのシーケンス。 生活の中で作ることの目的は、することです ための複雑さの程度を覚えている 私たちは、何がそうでないでしょう自動化 非常に面倒な手順である。 しかし、私はその近似することができます。 だからここに、この小さなチートシートにつき、I できるコマンドが何であるかを近似 単に打ち鳴らすように入力してやっているです 我々はできるでしょうコンパイラの名前 この学期を使用。 あなたのうちのどれかは、これまでのiOSを行っている場合 iPhoneやiPadのための開発、 打ち鳴らすはあなたが使用したプログラムです Xcodeの中であなたのアプリを作るために。 打ち鳴らすは、しかし、ちょうど別のプログラムです 名前我々はコマンドプロンプトで入力することができます プロンプト、そして今、これを導入することにより、 私は何かを導入することができます 少し代表 来るのコマンド。 だから私はこれを手動で行うことができます。 こんにちはだからRM、ケースに今気付く ただ健全性チェックとしてI、 - 。/こんにちは、あなたはどう思いますか私は 私はこれを行うかどうかを確認すべき? エラーのいくつかの種類。 このようなファイルディレクトリはありません。 したがって、1つは、実際にはかなり直接的だという。 だから今、私は画面をクリアしましょう​​。 コントロールSは、単に画面をクリア いくつかの気晴らしを削除します。 そして今、私は手動でするつもりです タイプ打ち鳴らすの-o hello.cのこんにちは。 だから、これは何をについては何ですか? 作るとまったく同じことがためにした 私たちが、私はいくつかを捨てなかった 余計な言葉。 打ち鳴らすがために起こっているプログラムです cファイルを入力として受け取り、生成 出力として0と1。 しかし、-oが今後呼び出します スイッチまたはフラグ。 これは、言うためだけの専門的な用語である これはあなたがプロンプトで言葉です それは何とか行動に影響を及ぼす あなたが実行しているプログラムの。 だから誰もが推測したくない 何-oが伝える? 出力。 それは決定した-oは意味誰かだ 出力こんにちはというファイルと取るように 入力上のどんな最後の言葉 プロンプトは、hello.cをなるように私がヒットした場合 今入力して、何も起きていないようにみえます。 そして奇妙なことに、この世界では プログラミング、何も起こらない場合、 それはおそらく良いことだ エラーはありませんので、 画面上のメッセージ。 こんにちは、入力します。 私のプログラムは現在実行されています。 しかし、私のような愚かなささいなことを行うことができます この。クラング-O、hihihi、hello.cを、 入力すると、今私は同じを持っている hihihiという名前のプログラム。 それは同じように動作しますが、 名前は異なっています。 だから、これは、あなたが望むなら、と言うことだけです の挙動に影響を与える プログラムは、我々はますますするつもりだ と呼ばれるものを見 コマンドライン引数。 これはラインです。 あなたは、コマンドを入力している。 エルゴ、コマンドライン。 とコマンドライン引数はただです 単語や構文の小さな断片その 何とかの動作に影響 我々は実行されていることをプログラム。 おそらく最もあるすべての権利は​​、 退屈なプログラムは、私たちは書いて見ることができます。 今何かをしてみましょう もっと面白い。 私が先に行くと、新しいファイルを作成してみましょう。 私が先に行くと、これを保存するつもり ジョン·ハーバードのホームディレクトリとして、 であるためには、それがcustom.c呼び出してみましょう 少しカスタムプログラム。 私は私の最上部に拡大するつもりだ ここでタブと再起動します。 標準stdio.hに含まれています。 一瞬でその上にもっと。 int型メイン(ボイド)、より上 その瞬間である。 のprintf( "こんにちは、デイビッド")。 はるかに興味深い、右? だから今なら - ではないので、私の名前の、 それは違うという理由だけで - カスタムは、入力してください。 習慣、こんにちは、デビッド。 しかし、ことは、あまりにも、白の嘘です。 このプログラムは、同様に呼ばれるかもしれない david.cは、ので、それはカスタムではありません まったく行動。 本当に、私は尋ねたプログラムをしたい 自分の名前のためのユーザー。 だから私はそれをどのように行うのですか? まあ、私はここでかけてスクロールすることができます。 そして、私は内のステートメントを使用する前に スクラッチ、私はprintfを使用する前に、 それ以外の場合、この関数として知られている、私を聞かせて 最初のいくつかのユーザーに入力を求める。 だから、これを行うには、私がする必要があり 物事のカップルを行う。 一つは、私が保管する場所が必要、ユーザの 私はか彼に尋ねた後名前 それのための彼女。 私はおそらく使用するか構造が必要なのでしょうか そのような値を格納するには? 変数。 だから、あなただけ得るスクラッチとは異なり、 素敵なパズルのピースは、ここで、我々はしなければならない に、明らかに、言葉を使う 自分自身を表現しています。 そして今後、いつでもあなたが欲しい 単語やフレーズ、プログラミング、 私たちは、文字列を呼び出すことになるだろう。 だから文字列は単語やフレーズです。 それはゼロまたはそれ以上の配列である もっと正式に文字。 そして、あなたはこのような変数にしたい場合 存在し、あなたは私のものを与えると言わざるを得ない。 にあるあなたがそれによって、道 sができる文字列sセミコロンを言う あなたが欲しいもの。 実際には、sは少しがっかりです。 私が先に行くともっとう 明確に名前呼んで。 私の名前と呼ばれる文字列を付けます。 しかし、今、その人のものです デフォルトでは、名前は? さて、人間は何も入力しない場合 、当然、そこに起こっている中で 名前には価値がないように。 あなたは与えていない場合、それは、C言語で判明 変数の値は、に起こっている ゴミ値を有する。 それはいくつかのランダムなゼロを持つかもしれないし、 ものなので、あなたはただ見するつもりだ 画面上のゴミ、本当に、 あなたはそれを表示しようとした場合。 しかし、私は、実際に、と言ってそのを修正することができます 名前の店の内部 値以下。 、変数に値を格納する方法である あなたは上の変数名を持っている場合 左には、何らかの形で何を配置する必要があります 右側にそれに格納すると、 起こっていることをするための構文 以下のようにする。 我々は前にこれを見たが、服用しないできた 瞬間のために信仰上のその存在 世界で別の文が存在し 私は、もう一度関数を呼び出すつもりだ そして、この関数は 文字列を取得すると呼ばれる。 そしてそれは、文字通りその行います。 それは何とか文字のシーケンスを取得します その後、人間との間で それで何かを行います。 そして、これは次のようになりません 不可解な構文。 通常は、等号を使用している場合 - あなたが言う、の世界にいる 代数、あなたが実際にしている xが1に等しいと言って。 ここでは言っ​​ていないこと 名前は、文字列を取得等しい。 我々は何名で店を言っている 右側の 等号その。 記号が表す等しい 代入演算子。 それは上で何置くと言う構文です 何内側右側 左に。 だから文字列は、新しい作品です取得 機能がないということだけでなく、 何か - 文字列の入力をユーザーに要求します - それはまた、いわば、それを返します。 だから、何が起こっているのか見てみましょう ここで起こること。 私は、今、先に行くとズームアウトするつもりだ と私はのカップルを取得するつもりだ 私のプロンプトでミス。 私が入力し、カスタムを行う入力するつもりです。 うわー。 ミスの全体の束。 すべての権利なので、これは一種のである 確かに最初の、圧倒的な、しかし それは非常にこれらすべてが判明 確かに不可解なエラーメッセージです そのいくつかのパターンを参考に 我々は時間をかけて見ることから始めましょう。 だからこの1私は、オフ摘むよ それは最初だから。 宣言されていない識別子の文字列の使用。 ちょうどそのgeditのか、Clangのを意味し、その この場合には、知らない 私は、文字列で何を意味するか。 そして、それは、C言語でありますので、プログラミングだ 言語、そこに実際に 文字列型のない変数ではありません。 Cは文字列が存在することを知りません。 しかし、我々、CS50スタッフが、やる。 そしてクラスの事前に、我々 CS50.h.というファイルを作成 そして内部は、このファイルの - と 来るべき構文の詳細 - このファイルの内部は定義です 私は定義されているものの 口頭で文字列として。 だから、単にこの一行を締結することにより 私のプログラムのコードは、私は今の私 geditのと作るとClangのを教えて すべての文字列が何であるかをオンにします。 私はまだ方法がわからない。 数週間のうちに、我々は剥離しよ バックその層。 しかし、今のところ、これは教えてことを知っている どのコンパイラ 文字列が実際にある。 だから今私は私をクリアしましょう ここでターミナルダウン。 私は再実行のカスタムを作ってみよう、と私 これらの問題のすべてを解決しました。 だから、これは、あまりにも、に起こっている 繰り返されるテーマである。 私はわずか9行プログラムを書き、 まだ私は、エラーの18行を持っていた。 それは威圧のようなものだ。 しかし、それは、彼らはしばしばカスケードなどを実現 一つの小さなミスがトリガする コンパイラの混乱、および それがであるよりはるかに悪い見えます。 だから今明敏な観察者は知っているだろう 私はから文字列を取得していることに ユーザが、私は実際にはないんだけど それをどうやって? 私は実際にやっていないよ それを使って何。 私は実際にもう一度カスタム実行するのであれば、 それだけでそこに座っているだろう。 どうなってるの? 私のプログラムは、上で立ち往生しているように見える 何行目、あなたが言うでしょうか? だから、実際には7行に引っかかっている。 そして、私たちは前にこれを見ていないけど、 7行目では、これは、再び、そこ ステートメントは、文字列を取得します。 そしてそれは、それは言うことありません。 それは人間のために今待っている 文字列を取る。 これは、私にとっては完全に直感的です。 私は言われていないため、人間の、 何をすべきか。 しかし、私が信仰に先に行こうと 私はロブのふりをしましょう​​。 入力します。 それは私が意図したプログラムではありません。 だから我々は最初のブログを持っている。 しかしを通して推論してみましょう なぜこのような場合である。 まず、私は、この最初の問題を解決しましょう​​。 私が言うここに行を追加してみましょう printfは、あなたの名前は何ですか? ただ近い見積もりを行うレッツ、 括弧を閉じます。 今私は、プログラムを再実行してみましょう。 問題。 私はそれを見ていないよ。 右。 私はそれを再コンパイルしませんでした。 だから、Cのような言語で、なぜならあなた ソースコードを変更するには、という意味ではありません あなたのオブジェクト·コードを変更したこと 新しいオブジェクトコードを生成し、 新たな0と1。 あなたは、再コンパイルする必要があります。 私は今、カスタム再実行する場合は、入力します。 ああ、もう少し明確に。 私の名前はロブです。 まだバギー。 そして、私はそこだと主張するだろう 今やカップルのバグ。 これはただ率直に言って、恐ろしい見える。 最小限、と同様に、私が持っているべきである そこにスペース、または移動 新しい行にカーソルを移動します。 そして実際に、新しいライン。 それは、ここで重要なフレーズのようなものだ 我々は見ますが、定義されていませんでした。 あなたがテキストを取得する方法 次の行に移動するには、 あなたはこれをしない。 これは、コンピュータに混乱しています。 これは、2つの別々のラインのように見えます コー​​ドは、どちらもの 完全に正しいです。 代わりに、より明示的でなければならないと 私に新しい行を与える、と言う、その我々 バックスラッシュnの(c)で表す。 だからいくつかのような文字があります。 バックスラッシュnは、その美学を修正します。 私は私のプログラムを再コンパイルしてみましょう。 私は私のプログラムを再実行してみましょう。 これが良く見えます。 それは、まだかなり原始的だ それはまた、まだバギーだ。 したがって、1つはあり - あなたは前にプログラムしたことがない場合でも、 あなたはおそらく推測を取ることができます このプログラムは、まだ欠陥がある理由で。 私はそれを行うには何が必要ですか 私はまだ行っていない? だから私は、実際にしなければならない 名前の何か。 ただ、スクラッチのように、あなたが実際に可能性がある nのような変数を割り当てるか 我々は最後に行ったように対抗 週 - 値。 しかし、あなたが何もしない場合 それは、何が起きようとしてんだ。 右のすべてなので、修正してみましょう。 、私はそこに私の変数を入力してみましょう と私はここでダウンして行きましょう。 ロブ、私に再実行してみましょう、私は再コンパイルしてみましょう。 今、私は右、単に馬鹿だ? だから、これは実際に取得していない これ以上私を。 しかし、それは完全に自然なことでした 本能は、私が右、と主張したい? 変数は名前と呼ばれ、私はされている場合は それはそこに行きたい、なぜ私はちょうどない そこにそれをタイプ? まあ、もちろん、我々は持っている 今区別する 何の間で文字列です? その引用引用終わりに気づく ここで、名前こんにちは? これは実際には、それ自体の文字列です。 それは、ハードコーディングされています。 それは人間からではありません。 それは、私からの元プログラマーズ それはまだ文字列です。 だから、文字通り内部N-A-M-Eを書き込む場合 文字列では、何が起こっているに 印刷されたのですか? まあ、N-A-M-E。私たちは、その代わりに必要 printfを伝えるために、印刷しない 外文字通り名前。 nameの値を出力します。 そして、それを行うために、我々は、次の操作を行う。 そして、これはちょうど人間の規則です。 私たちは、代わりに%sを言うこと、および 文字列を表します。 そして、私の近くに引用符の終了時に、 私はコンマを置くつもりだと 第二引数を渡す この文に変換します。 私は、そこに名前を入力するつもりです。 だから今我々は持っているに気づく 少し新しい構文。 我々はまだ2括弧があり、 今後私はその原料としましょう 括弧を表す 関数に引数 - 何とかしようとしている入力 その動作に影響を与える。 だから、そのロジックによって、どのように多くの引数 printfのように見えるん この時点で取って? だから、2を取っているように見える それは確かに暗示だ ここにカンマで。 だから、これは、1つの引数である 引用符の間である。 それにカンマを持っているにもかかわらず、 すべてが引用符でだ、その意味 それは1つの長い文字列です。 コンマ、変数名。 だから今私はズームアウトしてみましょう。 私はそれを再実行してみましょう。 ロブ。 畜生、私は間違って何をしましたか? 大丈夫、あなたは再コンパイルする必要がありそう。 だからもう一度、簡単にミスが作る 何度も何度も上に早い。 だから今、再実行するカスタム、ロブ、 入力して、出来上がり。 我々は今、カスタムプログラムを持っている。 だから私は今、そのプログラムを持っている いくつかの特性を利用し それは注目に値するです。 一つは、私がそうでなければ、CS50.hを使用しています CS50ライブラリとして知られています。 とCS50ライブラリの内部です 他の人が書いた機能 - すなわちスタッフ - あなたが使用し、取得するために 文字列は、その一つです。 2行目の内側が、stdio.hのです そしてなぜこれがあるのでしょうか? 推測してください。 の内部に存在するもの 標準IOの親? printfの。 だからprintfは、どこでもそれを見ることはありません 他の画面上で。 これは、付属している必要があります 何とかコンピュータ。 それはどこから来るのでしょうか? それは内部のだ - それが宣言された、 その内側の、話すこと stdio.hに呼ばれるファイル。 さて、このようなもののために、我々は戻ってくる 最終的に、それは少しだから 今のところ気が散る。 これは私たちの戻り値の型を指します。 これは、引数を参照します。 しかし、今日のために、我々は焦点を当てている ちょうどここに、これらの行に。 だから、文字列名、ただ要約するためには、 これは私のために何をしましたか? だから、変数を宣言した 文字列型の。 だからそれは、言葉のためにあることを意味している ではない数字のため。 余談ですが、私が行った場合と同じようにしたい それが数になるように、私は言うだろう int型のようなもの。 私は浮動小数点になりたかった場合 値、小数点で何か、 私はフロートを言うでしょう。 しかし、今日のために、私はただの文字列を言ってきた。 そして私は、この変数を与えてくれた 名前の名前が、私はできた それに何と言っています。 実際には、もともと、私はそれを呼ばれるS. これは、ここだけで、別の文です。 これはどのように多くの引数がある 文は、服用? だから、それだけで1を取って、そしてそれ 単にの美的詳細です に何かを表示する 私には画面が表示されます。 この8行目は何をやっている 普通の言葉で? それはから値を得ている ユーザ - すなわち、文字列 - そしてそれはそれで何をしているの? それは本質的にそれを渡している の左側にある男 、この場合のように、等号 name変数は実際にそれを格納することができます。 その後のprintf別です 関数のインスタンス。 そして我々は関数を呼び出すと言う。 機能を使用することはある 関数を呼び出します。 このことは明らかに 2つの引数を取ります。 このいずれか、コンマ、この1。 これ自体は単なる文字列である それはプレースホルダーが含まれています。 %sの手段はここで別の文字列を置く。 そして後に名前を置くことによって、 挿入してコンマ、 私にとってはそのこと。 だから私はまだ他のことを行うことができます。 私は今、先に行くとのビットをやってみましょう 愚かなプログラムが、私はこれを削除させ、 と私は、ループを作成してみましょう。 真しばらく。 シンボル真実は明らかである 常にtrueになるだろう。 だから私は、ループの種類を誘導しています このような行を書き込むことにより、? だから無限ループ、右? ただ真しばらく。 私は言葉を変えることができます方法はありません 何か他のものであることが真なので、これは ただ永遠に実行するつもり。 あなたは今までに、実際にプログラムを持っていたのであれば お使いのMacまたはPCに思える ロックアップしているためか、それはやっている ただ何か、何か、そしてあなた あなた限り、終了するものを得ることができない お使いのコンピュータを再起動するか、プルアップ タスクマネージャなど、 ここでそのような例です。 "私はバグのあるプログラムです。"、と言うことができます 閉じる引用、 括弧、セミコロン。 だからもう一度、パターンに気づく。 我々の構文のいくつかは新規であっても、 キーワード一方、キーワード真、 私は同じを持って気づく 中括弧の一種。 私は、セミコロンや括弧を持っている。 だから今のは先に行こう これをコンパイルします。 カスタム、カスタムしてください。 だから、この時点で、あなたがする必要はありません。 アプライアンス、すべての権利を再起動? だからここに簡単な教訓は、とある 二本の指、コントロールC、 私たちは、そのプログラムを終了します。 しかし、あなたは見ることができます正確な理由はこの事 何度も何度も自分自身を繰り返していた。 私は何かを少し行うことができます ティーザーとしてより複雑。 私が先に行くつもりだと 次のことを言う。 整数であるint型の場合は、私はちょうどです。 我々はほとんどに与える総称 プログラミングの変数にはなら ただカウント、0に等しい。 私が先に行くと、私がいる間にしましょう​​、 言わせての、100未満、Iプラスプラス。 我々は、この構文にバックアップします しかし、これは単なる意味 何度も何度も私をインクリメント。 そして、私はここで何をすべきかをしたいですか? printfは、 "私は私に数えることができる。" これは、バグのあるプログラムです。 私は実際にここでは何ていきましたか? パーセントではないのが、あなたは推測ではないでしょう この。 %dは進整数です。 コンマ私。 私はロールバックしてみましょう。 私は今作るとコンパイルしましょう​​。 私は今ではカスタムで再実行してみましょう。 私は本当にいまいましい速いとき数えることができる 私はこのようなプログラムを書く。 今すぐ何かをみましょう 少し意図しない。 ながらこれを行う方法についてましょう私 0以上である。 何これは誘導することが起こっているの? だから論理的に、これは、とても賢明ではありません 私はこれを再実行する場合は、ここで、再集計するため、 私は今、本当に高い数えることができます。 私ができるように残念なことに、同じくらい高い カウントは40億なので、これが起こっている しばらく時間がかかります。 では、なぜ我々は我々としてこれを残していない 接戦、有望でその 水曜日、私たちは、どう表示されます このプログラムが実行されます。 二人は、我々はどのようにあなた自身紹介 独自の関数を記述しているので、非常に 迅速、水曜日まで、我々は我々のように、よ スクラッチからC、スタートに移行 ますます複雑化する今までに書面 多くを行うプログラム、 これよりもはるかに。 私たちは、あなたが表示されます。 [拍手] SPEAKER 1:次のCS50で、 パズルの日は成功だった。