JASON Hirschhorn: Vítejte CS50 sekce, všichni. Mé jméno je Jason Hirschhorn. Jsem hodně z vás TFs, ale hodně lidé budou snad se k nám on-line, prodlužovací studenty nebo studenti Snaží se hledat přes část, pokud minuly část, která se týden nebo jen dohnat, pokud chtějí přezkoumat nějaký materiál. Takže podle učebních osnov, které všechny ze jste si přečetli, že? Vidím spoustu hlavy přikývne. Sekce vám poskytnou příležitosti prozkoumat průběh je materiál ve více intimní prostředí, stejně jako ponořit se do praktické činnosti. Takže to je v podstatě to, co jsme bude dělat každý týden. Chystáme se projít, co máme stanovena na nejdůležitější Témata v přednášce, a ty, pravděpodobně také nejužitečnější a s největší pravděpodobností přijít na problémové sady a kvízy, a vaše kódování život mimo CS50. Takže jsme jít do těchto tématech, diskutovat o nich, jít přes ně, odpovědět na všechny otázky, které lidi mají, a pak budeme dělat spoustu problémy praxe kódování. Vy všichni přinesli notebooky, což je fantastické. To je počítačová věda třídy. Nicméně, mnoho cvičení, které děláme, nebudete potřebovat vaše notebooky. Můžete to udělat je na list papíru. To je, jak budete to je na kvízy. A skutečně, je to skvělý způsob, jak Opravdu vím, že, jak to udělat něco, pokud nemáte Podívejte se na 50 spoléhají na nebo Vytvořit spoléhat na, říkat jste udělali nějaké chyby. Takže jste vítáni kódu na zařízení nebo run.cs50.net, který je Dalším nástrojem, který umožňuje kódovat on-line, ale také bych doporučit, pokud jste to zkusil, za použití listu papíru a snaží tyto praktiky problémy na list papíru. Vzhledem k tomu znovu, to je nakonec co budeš požádán, aby na kvízy. Takže začněme s našimi agenda pro dnešek. Chystáme se jít přes některé normy pro Naše sekce, pak budeme potápět do pole, funkce a příkazového řádku argumenty, což je to, co vy se vztahuje minulý týden v přednášce a pak pondělí a to, co budete krýt více zítra. A nakonec, budeme mluvit o pset2. Pokud bych mohl dostat zvednutím ruky, pokud jsem se podíval na problém nastavit dva specifikace. Řekneme, že každého. Fantastic. Probereme základní problémové okruhy ve chvíli, ale když si přečtete problém sadu specifikace, to je vše, co musíte udělat. Pokud budete číst, že předtím, než jste přišel do třídy a část v úterý, budete být skvělý pozici. Můžeme projít problém set, což je to, co budeme k tomu na konci. Chystáme se projít logika, ujistěte se, že všichni jsou na stejné stránce. Chci, abys byl schopen opustit úterý cítit velmi pohodlně s tím, co je třeba udělat pro tento týden problému set, a pokud ne, budu šťastně zůstat po a pracovat s vámi. Ale to je jedna věc, kterou musíte dělat, ale myslím, že by bylo opravdu chytrý, jen proto, aby si problém sadu Specifikace podle tříd v úterý, které zní jako Spousta z vás udělal. Začnu s programem, každá třída takže víte, kam jedeme. To je také užitečné pro lidi sledují online, protože každá část je barevně odlišeny, takže pokud chcete, aby se zpět a jen dívat 10 minut spíše než celé 90-minutové části je stačí jít na barevné kódované části a podívat se na tuto část. Tak jsem se snažil rozehnat do pěkné moduly, které vám umožní - Chcete-li se vrátit a zkontrolovat, nebo ostatní studenti, kteří jsou právě sledování sekci Recenze - najít konkrétní věc, kterou chcete věnovat pozornost a dozvědět se více o. Sladký. Normy. Jsem vedoucí FOP na akademické půdě. Nevím, jestli někdo udělal FOP. Věděli někdo dělat FOP? Jeden člověk udělal FOP. Dva lidé dělali FOP. Skvělé. Takže FOP je první rok Outdoor Orientační program. Bereme prváky do lesa a aby nejkouzelnější zkušeností jejich životy, že? Jo. Zní to akorát. Tak jsem chtěl začít naše první sekce diskutovat o některé normy pro tuto třídu a náš vztah protože si myslím, jsou velmi důležité. Za prvé a především, jako ti z vás, kteří jsou moje část obdrželi a je v něm popsána e-mail, miluju to. Tohle je moje oblíbená část roku. Byla jsem tak nadšená. Byl jsem zde dnes několik hodin. Jsem neopustil tuto budovu kromě jít jíst, protože mám rád CS50 sekci I rád učení, miluji práci s vámi. Jednou z mých priorit, ne-li můj prioritou číslo jedna, a to nejen pro Tato třída zahrnuje ale můj druhý třídy a extracurriculars, je podporovat lidi, a pomůže vám kluci, a v mých silách, aby se ujistil, že vám kluci mají skvělý, zábavný, produktivní, poutavé, vzrušující zkušenosti v této třídě. To je to, co jsem odhodlán. To je důvod, proč jsem rád, jak to udělat. To je moje číslo jedna věc, podporu, kluci. Máte-li nějaké dotazy týkající se přednášky, Problém set, část, život, i když se mnou chceš mluvit o život, neváhejte oslovit. Máš moje číslo mobilního telefonu, Máte můj e-mail adresu, máte mé GChat. Můžete mne kontaktovat na některé nebo všechny ti kdykoli, ale pravděpodobně nebude mít reakci, kdykoliv. Snažím se dostat zpět do 24 hodin. Často to bude v rámci 20 minut nebo 24 minut. Měla jsem řekl, že , aby bylo rovnoběžné. Ale dostanete odpověď docela rychle. Pokud text mi hodinu před Problém sada je díky, budu uklidnit dolů a dělat hluboké dechová cvičení s vámi, ale pokud jste ještě nezačali, budete pravděpodobně nebude až do konce, a Nemůžu pomoct tam i když se budu snažit co nejlépe. Tak jsem se dělat všechno Mohu vás podpořit. Prosím, neváhejte oslovit, zda je to v části opět v úředních hodinách pokud jste mě vidět, nebo dokonce venku. Jsem rád, nastavit čas na setkání a působí prostřednictvím problémů s nebo jít přes materiál. Takže to je číslo jedna, podpora. Udělám všechno, co jsem mohou, aby ho podpořili. Číslo dvě, setkání ve středu. Stejně jako bych chtěl být, jsem není všemocný a všemohoucí, nebo vševědoucí, takže nevím všechny Doba jestli to, co dělám, je stále napříč, v případě, že způsob, jak učím téma vám pomůže naučit se to, nebo pokud si jsou zmateni na téma, ale ne zvedněte ruku a zeptejte se mě nebo mi pošlete e-mail. Nebo i když jste znovu, jsou zmateni o něčem, co na problém televizoru. Pokud nechcete dostat ke mně, Nemohu vědět, že určitě. Budu dělat moje nejlepší zkontrolovat na vy, ujistěte se, že je vše to dobře, pokuste se naučit věci takovým způsobem, , který bude napomáhat k většině vaše styly učení, ale pokud existuje Mohu něco udělat, dejte mi vědět. Podél těchto linek, pokud chcete nějakou pomoc s problémem set, jsem víc než rádi pomohou se problémů k. Chystáme se udělat hodně , že k druhému polovina tohoto oddílu. Ale pokud jste nečetli problém sady zálohování a nebyly sledoval procházku díky a ještě sledoval, kraťasy a očekávají, abych vás naučí, vše, co bylo nahrával on-line nebo které můžete najít na CS50 studie, ve skutečnosti to není fér mi nebo vaše další kolegy. Takže, prosím, že jsem více než rádi pomohou vy, ale vy tu se mnou setkat v prostřední. Máme spoustu zdrojů na vám k dispozici CS50. Jsem se zmínil některé z nich. Prosím, využít z nich. Pokud jste zmateni, že jsem více než šťastný které vám pomohou vysvětlit jim jiný způsob, ale není to fér, pokud Studenti ukáže v úředních hodinách, nezačali nic, a to je Ve čtvrtek v noci a oni očekávají TF projít skrze každý věc za problém nastaven z důvodu V poledne následujícího dne. Smysl? Opět, prosím, s námi setkat ve středu. A konečně, vysoká očekávání. Budu se třídění každý, kdo je v mém oddíle, nebo zaznamenávat vaše základní problémové okruhy. Jste se vrátili problém nastavit nulu nebo ještě jeden. Jsme líto. Trvalo nám nějakou dobu, aby konečně usadit sekce a nyní můžeme začít třídění. Dostanu zpátky k vám co nejdříve. To jsou některé z mých advisees venku. Dostanu zpátky k vám co nejdříve. A problém nastavit dva, budeme na plánovat a začneme dostat je pro vás velmi rychle po dáte jim palce Když se váš problém nastavit zpátky, budete dostanete skóre, jak víte z čtení osnovy - správnost, design, rozsah a styl skóre. Budete také získat připomínky. Komentáře jsou důležitější než skóre. Myslím, že to je bezpečné říkat, že. Výsledky jsou jen číslo od jedné do pěti. Je těžké si na ty. Je to těžké pro zlepšení od těch. Ale komentáře se poukázat na specifické co jsi udělal dobře, nebo oblasti můžete zlepšit a dát vám některé nápady pro budoucnost nebo alternativní způsoby, jak dělat věci. Takže, prosím, prosím, přečtěte si prostřednictvím připomínek. Dal jsem spoustu času na tyto připomínky. Přečtěte si skrze ně, a to nejen posunout dolů na dno PDF, podívejte se na své skóre, nebo on-line a najít své skóre, a pak ignorovat komentáře. To není, jak jste bude lepší. To není, jak budete zvyšovat vaše skóre nakonec stejně při pohledu na skóre. Podívejte se prosím na těchto připomínek. A po linii vysokým očekáváním, znovu, jak jsem řekl, si lze skóroval z jednoho až pěti let. Dvojky, trojky, čtyřky a jsou Drtivá většina skóre budete se dostat. Ty a pětky jsou oba velmi vzácné. Vždycky věci můžeme udělat lépe. Kdykoliv jsem kód programu, je tu vždy něco, co jsem mohl udělat lépe. Takže spíše než říkat dostanete pět pořád na všechno a udělal všechno perfektní, nemyslím si, že by z nás opravdu věří, že my - nebo doufejme, že neděláme všechno perfektní po celou dobu. Takže nemusíte mít strach, pokud nedostal pětku. Pět není mapovat na, čtyři není mapovat na B, tři se není mapa je na C. To není jak skóre fungovat. Stejně jako David mnohokrát řekl, na Semestr Konec všechny vaše skóre a Vstup ode mne, vaše TF, sejdou a určit výslednou známku pro vás. Ale znovu, to není pět, , Čtyři, B, a tak dále. Takže budu mít vysoká očekávání pro lidi. Budu očekávat dobrou problému soupravy a Jdu dát zpětnou vazbu jako takový. A nebude to znamenat, že jsi dostane horší známku. Ty jsou odstupňovány z hlediska váš postup z týdne nulu kursu je konec. A konečně, pokud jde o vysoce očekávání ve třídě, Miluju, když lidí podílet. Chápu, někteří lidé cítí více či méně pohodlné účastní. Ostatní lidé se účastní není zvednutím ruky a mluví po celou dobu. Ale my jsme v této třídě se bude dělá hodně malých problémů, hodně mini otázek, a ještě něco navíc větší problémy kódování. Takže určitě pracovat těchto cvičení se když jsme si je na počítači nebo na list papíru. Ale já také dát nějaký čas, než někdy někdo musí odpovědět na některé z otázek, které jsem se zeptat. Takže, protože jsem vám nějaký čas na o tom přemýšlet, protože jedeme dělat věci někdy partnery, Budu očekávat, že všichni se zabývá poněkud. A pro nedostatek lepšího termínu, je bude pravděpodobně cold calling, které je místo, kde každý bude mít šanci přemýšlet o odpověď, a pak Zavolám na vás, a pak řekneš odpověď. Neboj se, nebo se bát o to. Já jsem to udělal v minulosti, a zjistili jsme, že je mnohem úspěšnější, přečtěte si také pedagogický výzkum na to, aby určit, zda je, či není dobrá taktika. To je velmi užitečné, zvláště pokud dát studentům čas na přemýšlení o odpovědi a nedávají jim jen tak a řekne to hned bat. Ale pokud se necítíte pohodlně odpovědi, jsem také docela dobře vycítil, že ven, a my nebudeme tě na místě, zejména na fotoaparát, i když žádný z jste na kameře právě teď. Takže to jsou ty normy mám. Ještě jedna věc, v duchu splnit ve středu. Budu vám kluci hodně zpětné vazby. Prosím, dejte mi zpětnou vazbu, stejně. K dispozici je internetové stránky, sayat.me/cs50. Takže je to upřímná zpětná vazba. Chcete-li, aby to v průběhu části, Mám e-mail vždy, když se to stane. Dáme si přestávku v trochu, takže budu prohlédnout zpětné vazby poté. Pokud budete mít nějaké připomínky, prosím, dej mi ho tam. Dáte-li mi zpětnou vazbu o Q, to je nádherné, ale to je příručka že si na konci. Ale, že bude na konci semestru tak Nebudu moci vzít nic z toho zpětná vazba a otočte jej do výuky vy lépe. Takže prosím, pokud máte nějaké zpětná vazba, dej mi to. Miluji zpětnou vazbu. Zpět na FOP, dostaneme zpětnou vazbu po celou dobu. Můžete mi dát plusy, dobré věci, delty, věci mohu zlepšit na. Můžete komentovat na mém oblečení. To nebude tak užitečné, ale ty jsi vítejte komentovat jakékoliv všechno. Prosím, prosím, dej mi zpětnou vazbu. Vážím si ho hodně, a to znamená pro mě hodně. Ještě jedna norma, legrace. Budeme mít spoustu legrace. Doufejme, že v tomto kurzu, budete mají spoustu legrace. Budeme mít cukroví na části. Budeme mít hudbu. Budeme snad poznávání se další poněkud dobře, takže chci, to být zábavné, poutavé zkušenosti. Vím, že někteří z vás usnul přednášky jste měli dneska, takže doufejme, že nebude je tomu nyní. A pokud je tomu teď, jen ne chrápat, protože to by mohlo se zachytil na kameru. Sladký. Jakékoliv dotazy, připomínky nebo obavy než jsem se dál o něčem máme mluvili? Skvělé. Takže jsme jít do pole jako první. To je, jak si udělat pole. Viděli jsme to předtím. Máte datový typ, máte jméno, a pak máte velikost. Právě zde vytvořit dvě pole. První z nich je pole znaků, a má 26 míst. Druhá je pole skóre, a to má tři prostory pro tři celá čísla. Ano? Student: Jsou všechny tyto snímky někde k dispozici pro nás? JASON Hirschhorn: Velká otázka. Otázkou bylo, jsou všechny Tyto snímky k dispozici? Ano. Všechny tyto snímky budou k dispozici, a do budoucna budu poslat e-mailem jste předtím sekce. Ale dnes, protože se jedná o první týden jsme měli opožděný start. Takže obvykle, budete si tyto snímky, ale budou k dispozici online a Budu e-mail je pro vás hned po třídě. Nějaké další otázky? Takže znovu, pole jsou boxy pro nedostatek lepší slovo, které drží více prvky jednoho typu dat, a oni jsou vedle sebe v paměti. A tak opět, je to, jak můžete dělají dva druhy polí. Takže poté, co jste provedli pole s že první řádek - int skóre, držák tři, závorka - můžete Chcete ji inicializovat. Chcete-li dát nějaké hodnoty tam. A to je, jak se dát nějaké hodnoty tam, jen výběr Index a psaní číslo. Pojďme nakreslit to na tabuli. Každý může vidět? Každý může vidět. Sladký. Tak, že to bude můj Pole s názvem skóre. Jak vidíte, je to velikost tři. K dispozici jsou tři pole v tam. Každý z nich se vejde to, co Typ datového typu? STUDENT: Integer. JASON Hirschhorn: číslo v této jedné. Napsali jsme int skóre a první slovo je datový typ, který se bude jít do polí v tomto poli. Tak jsem se vejde tři. Proč mám nula až tam na palubě? Proč se říká skóre nula rovná 1? Připomeňte mi své jméno. STUDENT: Kurt. JASON Hirschhorn: Kurt. Žák: Ano. JASON Hirschhorn: Proč? Žák: Protože první index je nula, začneme počítat od nuly. JASON Hirschhorn: Takže začneme počítat od nuly. To je přesně to pravé. To je matoucí část a vůle výlet jste se, a to zejména, když jste snaží iterovat polí, které budeme dělat trochu. Začneme počítat od nuly. Takže pokud chci odkázat na první box, není to jeden box. Bohužel, je to pole nulová. Druhý z nich je jeden box, a v tomto případ, třetí je box dva. Co poli tři? Kde je box tři? Nebo když chci dělat výsledky, držák tři, závorka, co je to? Takže jste řekl, že znak null. Jakékoliv jiné myšlenky? Co je to hodnocení držák držák tři? STUDENT: Je to ve skutečnosti neexistuje, protože jenom definována jako skóre, držák tři. JASON Hirschhorn: Takže říkáte, že ve skutečnosti neexistuje. V některých případech, kdy máme co do činění s struny, obvykle dáme null znak na konci. Dostaneme se k tomu v druhém. Ale v tomto případě žádná třetí okno tady. Takže poslední pole v každém poli je zmenšené 1. Takže pokud máme pole o velikosti n, První pole je na nule, poslední z nich je v n minus 1. A v tomto případě, že neexistuje. Existuje něco, co zde paměť, ale to není naše. Nemáme vlastní. Neměli jsme na něj zeptá. Takže když se snažíme o přístup, který my budeme udělat trochu, budeme pravděpodobně bude dostat do potíží. V tomto případě jsem inicializace moji duši pole s třemi proměnnými. Dáváme jeden v kolonce nula, dva v jeden box, a tři v poli dva. Má někdo nějaké otázky, o inicializaci pole? Tak jsme šli na to právě teď. Skóre, držák tři, závorka, že neexistuje. Jsme nula indexovány v informatice, takže začneme počítat od nuly. Poslední políčko máme k dispozici, je Třetí pole, ale je to jen krabička číslo dvě. Dole, to je alternativa způsob inicializace pole. Takže namísto vytváření pole na jedné linka, vyplňování prvního pole, pak druhý rámeček, pak třetí okno, můžete to udělat vše v jednom řádku. Takže v tomto řádku obě pole. Tím se vytvoří přesně stejný jako pole to, co jsme vytvořili tady, ale Jen se to v jedné linii. Nyní jsme vytvořili naší nabídku. Zpravidla jednou vytvořit matici, můžete Chcete s tím něco udělat, ať už který je vyplnit, nebo si věci z ní a vytisknout je na obrazovce. V tomto případě, jdeme přes naše skóre pole, které inicializován první řádek tady v šedé barvě. A pak se na druhém řádku, začneme iterace pole. Má někdo nějaké dotazy týkající se Struktura pro smyčky? Tak to je pro smyčce. Máme původního stavu, a pak naše poslední stav a pak jsme iteraci, já, každý smyčky. A ve složených závorkách v tomto pro smyčky, co se stane, kdybych spustit tento program? Může mi někdo říct, co bychom se dostali? [? Matu? ?] Matu: Tisk všech bodů na každém řádku. To by vytiskněte každý gól na samostatném řádku. JASON Hirschhorn: Co přesně by to vytisknout? Žák: To by jeden vytisknout, pak dva, pak tři. JASON Hirschhorn: Přesně tak. To by tisknout jeden, pak dva, pak tři, každý na samostatných řádcích, protože jdeme přes pole a budete vidět, že druhý, printf prohlášení, skóre i. Takže v prvním kole přes naše pro smyčky, i nulová, což znamená, že jsme získání hodnoty na NULU - které, pokud se vrátíme k Naše diagram, je - a vyplnění - oh, to říká, že c. To by mělo být% d. Budu opravit, že ve chvíli, kdy Jsem ruku, která se na vás. Ale my představuje celé číslo, takže to by měla být% d tady, ne% c. Co je% c pro? STUDENT: Character. JASON Hirschhorn: Znak, přesně tak. Co je ten druhý? Pokud nechcete dělat,% d pro integer, co jiného můžete dělat? Žák:. JASON Hirschhorn:% i, přesně tak. Takže nějaké otázky ohledně iterace přes pole? Takže co se stane, když to uděláme? Místo toho, i je menší než tři, my i méně než nebo roven třem. Co se stane, když tento kód spustit? Ano, Annie? STUDENT: Chystají se vytisknout divné věci na čtvrtém řádku. JASON Hirschhorn: Takže jste řekl, je bude tisknout divný věci na čtvrtý řádek? Má někdo odpověď na její otázku? Takže je pravděpodobné, že pokud se dostaneme do - tak na čtvrtém kole přes náš pro smyčky, stejně jako jste si mysleli, Annie, to bude skóre držák tři, které už jsme zjistili, není existují, a budeme se snažit a přístup, aby ji vytisknout ven, použijte ji nějakým způsobem. Takže počítač bude pravděpodobně zlobit se na nás. Máš naprostou pravdu. To by mohlo ukončit program úplně. To by mohlo vytisknout něco opravdu divné. Nemůžete říci s jistotou. Kurzy jsou to nejspíš zlobit na vy a jen přestat hned. Ale to je častý omyl, budete muset , kde jste jen kousek od jednoho na konec, a to je chyba, která bude mor po celou dobu svého kódování. Jeden způsob, jak bych chtěl udělat, je jen na tabule, projít každé iteraci ze smyčky na ruce nebo na papíře vidět co se děje, a pak obecně si uvědomit, oh počkat, já bych neměl šli do nižší nebo roven třem. Měl jsem se zastavil u dvou, což je co se stane, když se váš stav je méně než tři. Jakékoliv dotazy tak daleko? Sladký. Takže všichni máte váš počítač otevřený. Chystáme se dát dvě až tři minut napsat program, který vytvoří pole s celými čísly jedna přes pět a pak vytiskne každý číslo na nový řádek. A pokud máte nějaké dotazy, zvedněte ruku. Jsem rád, že přijít. Jak jsem řekl, pojďme si vzít tři minut to napsat. Jsou všichni v pořádku, pokud půjdu do nové okno a zavřete to? Omlouvám se, jestli jste neměli šanci až do konce, ale budeme to dělat spolu právě teď. Takže na obrazovce, jsem # include cs50.h, # include stdio.h. Může mi někdo říct, co tyto dva řádky dělat? Michael? STUDENT: Zahrnují knihovny že CS50 udělal a že má Steve uloženy pro vás k použití na aby váš život jednodušší. JASON Hirschhorn: Takže jste řekl, že patří knihovny, jednu CS50 udělal, cs50.h, a ten, který je jen standard, je dodáván s Balíček C, stdio.h. Co tím myslíš patří knihovny, i když? Můžete být trochu konkrétnější? Žák: To je to tak, že můžete používat některé kódová slova mají fungovat stát, aniž by museli jít a aby funkce c sami. JASON Hirschhorn: Umíš mi dát příklad? STUDENT: Jako printf je můžete použít. JASON Hirschhorn: printf. Takže jste řekl printf je jedním z těch, funkce, kde spíše než napsat printf na vlastní pěst, je printf součástí skutečně stdio.h, takže stačí použít, a předpokládají, že to bude fungovat. V stdio.h, pokud jste otevřel tento soubor, by zahrnovala jak printf práce, veškerý kód pro printf? Proč se třese hlavou? STUDENT: Vzhledem k tomu, hlavičkový soubor jen obsahuje deklaraci funkce. JASON Hirschhorn: Přesně tak. Hlavičkový soubor obsahuje jen deklarace funkce. Takže v podstatě, při kompilaci to, kliknul na Make hrabě, který budeme dělat v Druhá, kompilátor ví, že pokud použít printf, printf existuje. Bude to být definován někde jinde. To není pro vás problém používat. A pak o něco později, bude obsahovat jedniček a nul, které skutečně obsahují printf je provádění a sloučit se svým kódem. Jak se ujistěte se, že obsahuje jedniček a nul, řekněme, se řetězec? STUDENT: Získejte řetězec je cs50.h. JASON Hirschhorn: Správně. Tak, že se říká, že existuje řetězec, deklarace funkce. Ale pak jedniček a nul, binární soubor, který ve skutečnosti obsahuje realizace get string? Jak se ujistit, že jde s programem? STUDENT: Pass linker v argument příkazového řádku. JASON Hirschhorn: Pass linker na argument příkazového řádku. Jak to děláte, že? Žák: To je-l řádek v řinčením JASON Hirschhorn: Přesně tak. Říkáte-l CS50, že jo? To zahrnuje jedniček a nul. Žák: Ale Ujistěte se že pro vás, ne? JASON Hirschhorn: Přesně tak. Ujistěte se, že pro vás, ale nakonec, nebudete mít Make, nebo budete muset dělat Udělat na vlastní pěst, tak to je dobrá věc, mít na paměti. Pokud se chystáte použít jeden z těchto další knihovny, a to nejen máte psát # include a pak knihovna. Také je potřeba propojit ji dovnitř A tyto dvě věci jsou odlišné. L-CS50 je odlišný než # include cs50.h. Pak máme int main void složené závorky, a teď jedeme do kódu uvnitř hlavní. První řádek Mám tady je komentář , který říká, vytvořit pole s ints jedna až pět. Co je dobré slovo popisovat to, co jsem mají teď na obrazovce, jen komentáře uvnitř hlavní? Co říkáme, že? STUDENT: Pseudocode. JASON Hirschhorn: Pseudocode. Děkuji, Jeffrey. To je přesně to pravé. Pseudokódu. Už jste viděli pseudocode předtím? Zvedněte ruku, pokud jste použili pseudokódu před problém nastavit jeden. Asi polovina z vás. Já bych Velmi doporučuji používat pseudokódu rozebrat problémy do menší, snadno ukousnout kousky. Také, pokud budete dělat pseudocode, vy mít své připomínky již z velké části postavena v roce, takže nemusíte vrátit a pokusit se zjistit, co jste dělali. Takže může mi někdo dát tuto první linii vytvořit pole s jedním ints až pět? Vy? STUDENT: Int a pak můžete volat bez ohledu na počet a poté náměstí držák pět. JASON Hirschhorn: Takže int čísla, hranatá závorka pět. STUDENT: Rovná a pak složené závorky. JASON Hirschhorn: Rovná, Složené závorky. STUDENT: Jeden, dva, tři, čtyři. JASON Hirschhorn: Jeden, dva, tři, čtyři, pět. Žák: A pak složené závorky a pak středník. JASON Hirschhorn: a kudrnaté šle a středníkem. Výborný. Vytiskněte si každý int na nový řádek. Může někdo dát mi ten kód, prosím? [? Matu? ?] Jen do toho. STUDENT: Pro ( JASON Hirschhorn: Pro ( STUDENT: int i = 0 JASON Hirschhorn: int i = 0 STUDENT: středník i méně než pět. JASON Hirschhorn: středník, i méně než pět. STUDENT: středník, i + +. JASON Hirschhorn: středník, i + +. STUDENT: Uzavřené závorky, pak otevřete rovnátka. JASON Hirschhorn: Uzavřené závorky a dvě šle. Uvnitř závorek? Žák: A pak printf "% d / n" JASON Hirschhorn: Omlouváme se, ale vydrž. Printf "% d / n, uzavřené citace. Žák: A pak uzavřený cituji, čárka, počítat, i držák. JASON Hirschhorn: Comma, počítat, i držák. STUDENT: Je nám líto, čísla i konzole. JASON Hirschhorn: Čísla, držák jsem. STUDENT: Omlouvám se. A pak zavřel závorky, středník. JASON Hirschhorn: Zavřeno závorky, středníky. Chystám se kromě toho, že. Chystáme se dělat počítat. A jak mám spustit počítat? STUDENT: Zpětné lomítko. STUDENT: Dot lomítko - JASON Hirschhorn:. / Spočítat, přesně tak. Děkuju. . / Počítat. Jedna, dvě, tři, čtyři, pět na nových tratích. Vypadá to, že to fungovalo. Ano, Noah? STUDENT: Můžete si také udělat menší nebo , rovná se čtyřem, jako i je menší než nebo rovná se čtyřem? Je nějaká výhoda dělá méně než pět, nebo jen jiný způsob psaní? JASON Hirschhorn: Takže otázka je, mohl udělat i je menší než nebo , rovná se čtyřem místo i je menší než pět. To by fungovalo stejně? STUDENT: Mělo by. JASON Hirschhorn: Ano. Úplně by to fungovat stejně. Stylisticky je to obvykle méně než a uvidíte v druhém, kdy my řetězce, můžete použít něco volal strlen, které jste viděli dříve, aby se délka z řetězce. A nemůžete dělat méně, než nebo rovno strlen. Dalo by se udělat menší nebo rovnat strlen mínus jedna. Takže je to hezčí dělat méně než strlen. Ano? STUDENT: A skutečná kvízy, proveďte musíme předložit připomínky k naší Kód stejně? JASON Hirschhorn: Otázka byl v kvízy, máte muset předložit připomínky? Takže budeme hovořit o kvízy, když oni přijdou, ale obecně, dobrou pravidlem je, když jste psaní kódu, předložit připomínky. Pokud máte kód špatně, ale komentář pravdu, můžete získat některé úvěr i ode mne, jestli jsem třídění Jste na problém souboru nebo na kvíz. Takže komentáře jsou vždy vhodné zajistit. Sladký. Počítejte. Vynikající práce. Pojďme dál. Řetězce. Řetězce. Viděli jsme to předtím na přednášce. To mi vyrazil dech, když jsem První to zjistila. To asi neměl vyhodit kohokoliv mysl tady, ale to je v pořádku. Řetězce jsou pole znaků a oni skončí s, jak jste řekl, null terminátor, který je to / 0 charakteru. Pokud budeme kreslit řetězec na deska, budeme kreslit to sem. Tak jak dlouho je tento řetězec? Promiňte. Jak dlouho je tento řetězec? STUDENT: [neslyšitelné]. JASON Hirschhorn: Čtyři? Proč je to čtyři? STUDENT: Vzhledem k tomu, páté místo je pro nulový znak. JASON Hirschhorn: Takže páté místo je pro nulový znak. Takže pokud bych měl běžet na strlen to by se mi čtyři. Opravte. A pole, i když, pokud bych měl inicializovat pole, kolik místa budu muset žádat? STUDENT: Five. JASON Hirschhorn: Five. Chtěl bych se zeptat na pět, ale já dal jen čtyři znaky zde protože musím dát, že null zakončení na konci. Takže budeme psát "Ohai" a dal null zakončení v konci. Řekneme, že je to řetězec s to se rovná. Co je to držák nula? Držák je nula, Annie? STUDENT: O. JASON Hirschhorn: Ó, přesně tak. je držák jeden? je držák pět? je držák pět? STUDENT: neexistuje. JASON Hirschhorn: neexistuje. Přesně tak. Skvělý. Máte otázky k pochopení řetězce jako pole postav? OK, pak. Ještě jeden program pro vás. Napište program, který vyzve uživatele pro řetězec a pak vytiskne každý znak na nový řádek. Takže pojďme se tři minuty psát tento program, a pak budeme kódovat jej jako skupina. Promiňte. Věděli jste třeba vidět? STUDENT: Ne JASON Hirschhorn: OK. Pojďme ještě jednu minutu kód tohoto nebo alespoň začít na něm. Takže můžete pokračovat v práci, ale budu začít chodit přes něj. Tak jako předtím, mám na obrazovce # Include cs50.h, # include stdio.h. int main neplatné. Uvnitř složených závorek Hlavní je, mám dvě připomínky, pseudokód. Jedním z nich je požádat o řetězec od uživatele. Druhá je vytisknout každý znak na nový řádek. Takže Anna, můžete mi dát zeptat pro řetězec od uživatele? STUDENT: printf. JASON Hirschhorn: printf? Žák: Ano. ( JASON Hirschhorn: ( Student: "Dej mi řetězec. JASON Hirschhorn: "dát me str - pardon - string. STUDENT: / n ") středník. JASON Hirschhorn: Konec řetězec, uzavřené závorky, středníky. Žák: Ano. A pak další řádek, řetězec s = dostat řetězec. JASON Hirschhorn: String s = dostat řetězec. Žák: Ano. A pak () JASON Hirschhorn: () STUDENT: středník. JASON Hirschhorn: středník. Fantastic. Takže budu se dostat řetězec a Jdu uložit v čem? Co je to proměnná s názvem který jste vytvořili? STUDENT: String s. JASON Hirschhorn: Proměnná se nazývá s.. Je to typ string. Přesně tak. Další věc, kterou chceme, je vytisknout každá postava na nový řádek. Kdo mi může dát tento kód? [Neslyšitelný]? Můžeš mi to dát? STUDENT: Jasně. JASON Hirschhorn: Pojďme na to. A omlouvám se. Nemám rád opakovat to, co říkáte, protože jste jak na to, ale myslím, musí opakovat tak, že když se přepsat to, mohou se všechny text se na přepisů. Takže si můžete jen držet mluvit. Já mám bohužel to říci nad vámi. Je mi líto, ale - Student: To je v pořádku. Pro int i = 0 JASON Hirschhorn: Pro int i = 0 Žák: Myslím, méně než - JASON Hirschhorn: středník. STUDENT: Před tím můžeme dát proměnné tak dostanete pravý délky názvu? JASON Hirschhorn: Oh, to ne chcete umístit středník? OK. Tak co chceš dělat po nulu? STUDENT: Chci se dostat Délka řetězce a s nastavit, aby se do proměnné? JASON Hirschhorn: OK, tak jak to mám udělat, že? Žák: Takže vy int length = JASON Hirschhorn: int length = STUDENT: S-T-R-L-E-N. JASON Hirschhorn: S-T-R-L-E-N - STUDENT: S. Konzoly. JASON Hirschhorn: (y). Žák: A pak myslím, že budete muset dát středník mezi dvěma ints. JASON Hirschhorn: středník Po nastavení nuly? STUDENT: Jo. Pak dal středník po tom, a říkáte, i menší než délka. i menší než délka, která je variabilní. Žák: A pak středník. JASON Hirschhorn: středník. STUDENT: i + +. JASON Hirschhorn: i + +. Tady je náš cyklu for. OK, uvnitř smyčky for. Žák: A pak to printf. JASON Hirschhorn: printf. STUDENT: Závorky. JASON Hirschhorn: závorky, uvozovky. STUDENT: Závorky, citace,% c / n. JASON Hirschhorn:% c, OK. STUDENT: / n. JASON Hirschhorn: / n. STUDENT: Uzavřené citace. JASON Hirschhorn: Uzavřené citace. STUDENT: Comma. JASON Hirschhorn: Comma. STUDENT: S. JASON Hirschhorn: S. STUDENT: Konzola i. JASON Hirschhorn: Konzola i. Žák: A zavřel závorky. JASON Hirschhorn: Uzavřené závorky. Žák: A pak středník. JASON Hirschhorn: středník. Fantastic. Takže pojďme zachránit toto. Udělat kouzlo. Ach jo. Mám pár chyb. První chyba na řádku 11, říká, očekává, že výraz, a to dává me chyba, že druhý int, tam je chyba. Existuje nějaká chyba asi tam. Ví někdo, co to je chyba? Kurt? Žák: Myslím, že to má být čárka a ne středník. JASON Hirschhorn: OK, čárka místo středníkem. Tak je to, že vše, co je třeba opravit? STUDENT: Ne JASON Hirschhorn: Co jiného potřebujeme opravit? STUDENT: Musíme zahrnout string.h. JASON Hirschhorn: Zahrnout string.h. Kam musím patří, že? STUDENT: Stejné místo máte, včetně další věci, že jo po zahrnují stdio.h. JASON Hirschhorn: Uvidíme, jestli to běží první, protože obecně se mi líbí opravit jednu věc a teprve potom spustit to, a pak zjistit chyby, které dostáváme. Takže jdeme na vymazání terminálu s řídicím n, pojďme to udělat kouzlo. Takže další chyba na řádku 11. Předpokládaný středník. A já jsem stále dostává chyby na tomto řádku. Tak to mi nedala chybová zpráva, že jej nechápe, co je strlen, ale je to, že mi chyby na tomto linka, takže co jiného je špatně? Označit? Marcusi. STUDENT: Máte na odstranění Druhý int prohlášení? JASON Hirschhorn: Odstranit druhý int. Zkusme to. Nyní vymazání terminálu. Udělat kouzlo. Chyba. Implicitně prohlásil knihovny Funkce strlen. Takže teď vidím, že chybu. Co je třeba zahrnout? STUDENT: string.h. JASON Hirschhorn: Include string.h, Uděláme # include string.h v horní na obrazovce. Zachraňme, aby kouzlo. Nyní sestavují. Takže znovu, co jsme potřebovali pamatovat linku 12 v našem pro smyčku jsme jeho zřízení, int i = 0, délka = strlen (s). To je fantastický strategie. Styl je to skvělé, Konstrukce je to skvělé. Můžeme jít do Z těchto důvodů později, ale takhle stačí zavolat strlen jednou namísto každý spuštění průchodu smyčkou. Nicméně, budete muset použít čárku tam a nemusíte int znovu. Pokud jste prohlásil jak těch proměnné dohromady, Nemusíte int znovu. A pak, pokud budete používat strlen, což je další knihovna Funkce není zahrnuta do stdio.h nebo cs50.h, aby nezapomeňte zahrnout string.h. Kurt? Žák: Takže pokud nepotřebujete říci, jaký typ délka, to dělá neznamená, že musí být int? Ty nemohl mít dva různé Typy tam? JASON Hirschhorn: Takže jste mohli mají dva různé typy. Délka je int tady, ačkoli. Délka je int, protože je to čárka a pak to samé. Žák: Takže to předpokládá, že to bude být stejný jako první? JASON Hirschhorn: Přesně tak. Nebudeme dělat teď, ale může obsahovat dvě proměnné na stejném řádku pomocí jednoho datového typu. Takže int x, y by vytvořit dvě proměnné. Takže int x, y, pokud uděláme to, že dává me nepoužité proměnné x a y, protože nebudeme používat. Takže uvedení neplatné, než je jen fantazie trik, pokud nechcete použít něco použít. Ale jak vidíte, já stvořím xay na stejném řádku s čárkou. Je to vytvoření dvou celých čísel právě tam. Takže ano, zcela možné vytvořit dvě věci na stejném řádku odděleny čárkou. Zbavme se těch, ačkoli. Takže to kouzlo. Děkuji vám kluci pro kódování to pro nás. Pojďme udělat to ještě jednou, spusťte jej. Dej mi řetězec. [Neslyšitelné], jsi nejvíc. Co je řetězec? STUDENT: Dobrý den. JASON Hirschhorn: Dobrý den. H-E-L-L-O, kde každý znak v jednom řádku. Vypadá skvěle. Pojďme znovu spusťte. Vždy jít na kontrolu pro rohové a případy. Co je dobré roh věc zkontrolovat? STUDENT: číslo? JASON Hirschhorn: číslo. Tak jsem si dal v 1, a to vytiskne 1. Není to ptá na dopisy, takže Vypadá to, že čísla práci. Dobrý roh pouzdro pro kontrolu. Jaký je další dobrý roh pouzdro pro kontrolu? STUDENT: prázdný řetězec. JASON Hirschhorn: Hm? STUDENT: Stejně jako prázdný řetězec. JASON Hirschhorn: Prázdný řetězec. Takže pojďme se dát nic. A co se bude tisknout? STUDENT: Nic. JASON Hirschhorn: Nic. Vypadá to, že to funguje. Můžete zkusit více rohových případy, ale obecně čísla, odlišné údaje skvělé vyzkoušet, stejně nic není. Nic, nula, negativy jsou vždy velké věci vyzkoušet a věci, které by měl test, co určitě budeme testovat Zkontrolujte pro a 50 se bude testovat. Máte nějaké otázky ohledně spell.c? OK, pojďme vrátíme. Mám ještě jeden program, pro vy psát. Říká se students.c. Jedná se o program, který požádá uživatele o pět jmen, pak se náhodně vybere a vytiskne jednu z jmen. Tento program je trochu víc zapojit, než poslední dva jsme již psali, tak proč jsme se pět minut, kód to individuálně, a pak budeme kód je společně. Tento program také zahrnuje některé věci nemusí neviděli, takže pokud Máte dotaz ohledně, jak se To udělám, zvedněte ruku. Přijdu a bod, který ve správném směru. Ale my jsme také dělá to, protože to bude dobrý způsob, jak představit některé témata, která jsou ošidné. Tak to funguje, ne? STUDENT: Jo. JASON Hirschhorn: Když zapnete v Problém set, je tu mnoho způsobů, jak to, ale některé jsou elegantní než ostatní. Pojďme se ponořit dovnitř # Include cs50.h. # Include stdio.h. int main void složené závorky. Uvnitř složených závorek, Mám dvě připomínky. První z nich je, zeptejte se Uživatel pět jmen. Druhý je, že náhodně vybere a vytisknout jeden z názvů. Takže pojďme udělat ten první, zeptejte se uživatel pro pět jmen. Kdo požádal uživatele na pět jmen a můžete mi říct, jak to udělat? Jen dva lidé udělali první část. Tři lidé udělali první část. Čtyři, pět. Tome, jak to děláte? STUDENT: Ty by deklarovat řetězcovou a pak jméno, držák pět. JASON Hirschhorn: String jméno držák pět. Takže co je to linka dělá, Název řetězce držák pět? STUDENT: Ty by deklarovat Pole řetězců. JASON Hirschhorn: Toto je Pole řetězců. Kolik řetězce budou aby se sem vešel? STUDENT: Five. JASON Hirschhorn: Five. Výborný. Budeme říkat jména, protože budeme mít více ty. OK, další? Žák: A pak jste mají pro smyčce - JASON Hirschhorn: pro smyčce. Student: - pro i = 0. JASON Hirschhorn: for (int i = 0. STUDENT: středník. JASON Hirschhorn: středník. Žák: Myslím, méně než pět. JASON Hirschhorn: I nižší než pět. STUDENT: středník. JASON Hirschhorn: středník. STUDENT: i + +. JASON Hirschhorn: i + +. Žák: A zavřel závorky. JASON Hirschhorn: Uzavřené závorky, a pak některé složené závorky. Uvnitř složených závorek? Žák: A pak printf. JASON Hirschhorn: printf. STUDENT: Otevřené závorky name% d. JASON Hirschhorn: Je nám líto? STUDENT: Jméno. JASON Hirschhorn: Jméno. Žák: A pak mezeru a potom% d. JASON Hirschhorn: Jméno, prostor,% d. STUDENT: A / n, a pak zavřel. JASON Hirschhorn: Takže název, místo, % D / n, uzavřené závorky. STUDENT: Čárka, i + 1. Omlouvám se. Uzavřený citace a pak čárka, i +1. JASON Hirschhorn: Zavřeno Nabídka, čárka, i +1. Žák: Ano. A pak další řádek - JASON Hirschhorn: i + 1. Žák: Ano. A pak další snímek jsou jména i držák. JASON Hirschhorn: Další řádek jsou jména i držák. STUDENT: = dostat řetězec. JASON Hirschhorn: = Get - kapitálu G-E-T - string. Jejda, omlouvám se. STUDENT: Otevřené, uzavřené závorky a pak - JASON Hirschhorn: Otevřená, uzavřená závorka. STUDENT: středník. JASON Hirschhorn: středník. OK, takže inicializaci pole řetězce, jména, a pak projít pro smyčce, a pětkrát vytiskněte některé výzvu pro uživatele a uložit pět řetězce. Má někdo nějaký úpravy to? Tome, myslím, že každý s vámi souhlasí. Vypadá to docela dobře. OK. Proč jsi to udělala i +1, i když? Žák: Myslím, že nemá být, ale i +1 tak, že je jméno, kdo jmenovali pět. V opačném případě by to bylo jméno nula pojmenovat čtyři. JASON Hirschhorn: Tak jste i 1 protože jinak by se vytisknout nula až čtyři, protože to, jak počítače přemýšlet, ale lidé není opravdu číst takhle. To je další věc, se kterými se setkáte. Někdy, když tisknete něco pro uživatele, budete chtít, aby se to trochu hezčí, a tím i +1 je v tomto případě způsob, jak to hezčí. Vidím také pět dvakrát, název řetězce je pět, i je menší než pět. Vím, kde máš pět. Máš to ode mě vyprávění si pět jmen. Ale pokud bychom chtěli, aby kód trochu robustnější, jedna věc, kterou bychom může udělat, je tady, mimo int, bychom mohli udělat něco takového, # Define, a my jsme mohli dělat jmen 5. Takže v podstatě tam, kde píšu kapitál N, kapitál, kapitál M, kapitál E, S městem, že řetězec, nahradí že s 5 v kódu. Nebo si prostě říkají - my budeme jen zavolat, že číslo. Takže jsem definovat všechny čepice ČÍSLO být 5. Takže teď tam, kde jsem číslo 5, jsem jej nahradit veškeré ČÍSLO čepice. A teď, když chci změnit číslo jmen, vše, co potřebujete udělat, je tento jeden řádek, řádek čtyři, kde mám # Define číslo 5, změnit na 10, nebo změnit na 4. Když kód dostane déle, nejste bude pamatovat všechny místa, které dát, kolik jmen jste chtěli, a Aby pro vás nenechte ujít jeden, je to dobrý způsob, jak to udělat, najít něco, nahoru nahoru a pak stačí použít tuto frázi všude v celém svém kódu. Marcus? STUDENT: Je to stylisticky přednostní než globálně definovat konstantní n? JASON Hirschhorn: Takže je to, že stylisticky raději než na celém světě stanovení konstantní n? Takže říkáš, že by ano, int číslo = 5? STUDENT: Mají souhlásky v C, nebo ne? JASON Hirschhorn: Nebo const - v sobě rovni. Takže říkáš, že právě globální proměnná? STUDENT: Jo. JASON Hirschhorn: Takže stylisticky není nutně jediný správný odpovědět, ale oba z nich jsou lepší než jen házení těchto náhodných čísel na celém svém kódu. Říkáme jim magická čísla. Když se podívám na váš kód, nebo když někdo čte přes to, že Nechci právě tyto náhodných čísel které nemají smysl. I číslo 26, který je obecně počet písmen v abecedě, je lepší definovat abecedy do horní a uložit číslo 26 v tomto řetězci pokud to dává smysl. Nebo na problém nastavit jeden, spíše než - znovu, nemluvili jsme o tom na čas, ale místo toho jen házení v 25 nebo 10 všude, můžete uložit číslo 25 jako čtvrti a 10 jako DIME, a to usnadňuje kdo čte přes váš kód pochopit, proč jste si vybrali tento počet. A také pro vás, pokud jste někdy chtěli aktualizovat kód, ale je to trochu více robustní. Jo? STUDENT: Tento kód je také bude k dispozici pro nás po? JASON Hirschhorn: Všechny z těchto kódů co jsme napsali spolu se bude zasláno kluci a jsou k dispozici. Ano. Takže ptát uživatele na pět jmen. Náhodně vyberte a vytiskněte jeden z názvů. Kdo to udělal čáru? Toto je nejsložitější sázce. Je nám líto, Tome. Vy jste opravdu dobrou práci, ale to je trochu složitější. Marcusi, jděte do toho. Žák: No v první řadě, budete třeba zahrnout stdlib.h a time.h. JASON Hirschhorn: Takže říkáš, že na nahoře, zahrnuje dvě další knihovny. Chceš, abych patří S-T-D-L-I-B bod H, Standardní knihovna a co byl druhý? STUDENT: Time.h. JASON Hirschhorn: # include time.h. To jsou další dvě knihovny. Předpokládám, že teď budeme používat funkce, které jsou obsaženy v těchto dva, což je důvod, proč jste potřebovali zahrnout je? Žák: Takže, ty jsi první bude chtít psát srand. JASON Hirschhorn: srand. STUDENT: (čas (0) JASON Hirschhorn: Omlouvám se. Srand (time ( STUDENT: 0. JASON Hirschhorn: 0. Student:)), středník. JASON Hirschhorn: Další uzavřená závorka? Středník. Jdu jen vyměnit Váš nula s NULL. Bude to dělat stejnou věc, ale obecně, uvidíte NULL, což budeme o tom mluvit řádek druhý. STUDENT: Stylisticky lepší? JASON Hirschhorn: Obecně platí, že lidé, právo NULL, ale je to totéž. Žák: A potom int jméno. JASON Hirschhorn: Int jméno. STUDENT: = JASON Hirschhorn: = STUDENT: Rand. JASON Hirschhorn: Rand. STUDENT: () JASON Hirschhorn: () STUDENT: Modulo číslo. JASON Hirschhorn: Co je modulo? Postava? Znak procenta? STUDENT: znak procenta. Modulo číslo, které jste definovali až nahoře. JASON Hirschhorn: Modulo ČÍSLO. Žák: A pak středník. JASON Hirschhorn: středník. Žák: A pak nová linka, printf. JASON Hirschhorn: printf. STUDENT: ( JASON Hirschhorn: ( Student: " JASON Hirschhorn: " STUDENT:% s / n JASON Hirschhorn:% s / n Student: " JASON Hirschhorn:% s / n " STUDENT: čárka, mezera jména. JASON Hirschhorn: Space - Žák: No, myslím, že to, co to říkáme tady? JASON Hirschhorn: Říkali jsme, že jména. STUDENT: Open držák jméno. JASON Hirschhorn: Open držák jméno. STUDENT: Uzavřený držák. JASON Hirschhorn: Uzavřený držák. STUDENT:) JASON Hirschhorn:) STUDENT: středník. JASON Hirschhorn: středník. OK, pojďme zachránit. Pojďme udělat tento kód. Studenti. Pojďme spuštěním tohoto kódu. Studenti. Ne. / Studenta. . / Studentů. Jmenuj jednoho. Řekneme, že David. Jméno dva, RJ. Jméno tři, Rob. Název čtyři, Lucasi. Název pět, Joseph. A pak se to vytiskne Joseph znovu. Dovolte mi tedy běžet znovu. Dovolte mi, abych to stejná jména. David, RJ, Rob, Lucas, Josef. A to mi dal David tentokrát. Tak jsem udělal to samé, ale dal mě jiná věc, a to je protože, samozřejmě, žádáme pro náhodné jméno. Takže si myslím, založený mimo mě putování po místnosti, že většina lidí pravděpodobně dostali první část vpravo, zřízení tohoto pole a pak se dostat všechna jména. Mluvím o tratích 10 až 16 let. Ale řádky 18 až 21 jsou pravděpodobně některé věci, které jste ještě neviděli, takže pojďme projít ty. Tato linka, srand čas NULL je v podstatě - Omlouvám se, pojďme přeskočit dolů linka, rand (). To vám dává náhodné číslo, náhodné celé číslo. A pokud jste nájemný vrah rand, která mnoho z vás udělali - M-A-N prostor R-A-N-D - v terminálu, jako je tento, M-A-N prostor R--N-D, stiskněte klávesu Enter. Ty by přijít do návodu k obsluze a by měl být schopen číst, že rand Příkaz výstupy num pseudo náhodných bajtů Po naočkování náhodné číslo generátor jednou. Takže je to popis. To je to, co dělá rand, dává Jste náhodné číslo, pokud budete volat tuto funkci. Bohužel, to není opravdu náhodná protože když stačí zavolat náhodně aniž by se to nějaký olej, některé počáteční bod, bude to vždy zvolit stejný a používá vzorec určit další. Takže, pokud řekneš rand, bude to jen vám totéž. To bude velmi předvídatelný. Ve skutečnosti se to být libovolné. Takže to, co musíme udělat, na Marcuse Pokyny pro mě, byly semeno rand s něčím jiným, což je to, co funkce srand dělá. To semena Rand se něco trochu více náhodné, než totéž, a on setí ji s časovým NULL, což je, stejně konvencí, aktuální čas v sekundách. Takže za předpokladu, že každý není chystá spustit kód na přesné Stejný sekundu, takže je to sázka na jistotu, že Doba NULL bude jiný pokaždé, když tento kód spuštěn. Sázka na jistotu, že takto bude srand semeno rand s něčím jiným každém jednotlivý čas. Takže konvencí, když budeme dělat chtějí náhodné číslo, píšeme tento řádek, srand čas NULL, aby nám moc více hnízda, a pak spustit rand, což nám dává náhodné číslo. Jo? STUDENT: Můžete říci, co myslíš osivo? JASON Hirschhorn: Semeno jako - takže rand se chystá vybrat určitý počet a bude to používat některé vzorec se tam dostat. Takže to bude začít s něčím a pak zase do něčeho na základě z tohoto vzorce. Pokud jste vždy dát to samé, je to vždycky proměnit totéž. Tak, že první věc, kterou dát je semeno. Takže chcete, aby to něco jinak začít s, a tak to se proměnit v něco jiného. A nakonec, řádek 20, toto se nazývá% modulo, a to je matoucí. To je něco, co je trochu jiný tady, že jste opravdu nemám mají v reálném životě matematice. Ale v podstatě, když budete mít obra číslo a rozdělit v C, co se stane zbývající? STUDENT: Dostane zkráceny. JASON Hirschhorn: Dostane zkráceny. Tak 20 děleno 3 je to, co? Co to návrat do ty, 20 děleno 3. Omlouváme se, 10 děleno 3. Co to zpět k vám? STUDENT: [neslyšitelné]. JASON Hirschhorn: 10 děleno 3 pouze vrátí 3, ne 3 zbytek 1. Takže to, co se vrací 10 modulo 3 je jen zbytek, 1. Takže pokud byste chtěli vědět, co dělí 10 o 3 vlastně byl, že ne do 10 děleno 3, měli byste dostat 3, a pak bych udělal 10 modulo 3, a byste dostat jeden. Takže byste si uvědomit, že 10 rozděleny o 3 je 3, zbytek 1. A v této řadě, může být rand libovolné celé číslo, v podstatě. Takže modulo říká, rozdělit ji číslo, které je v tomto případě 5.. A pokud jste někdy vydělte číslem, číslo musí být vždy menší než toto číslo. Takže pokud jste dělení číslem 5, Zbytek se vždy bude nula až čtyři. Tak to prostě matematika funguje. Takže velké množství moduloed by menší číslo bude vždy vrátit zbytek a bude vždy vrátit některé číslo, které je menší než číslo, které děleno. Má někdo nějaké dotazy týkající se modulo, protože to přijde velmi, velmi šikovný, takže chci, aby se ujistil, všem je to jasné? Skvělý. A viděli jsme, že tento program funguje. OK, dál. Takže příště, budeme jít do funkce, a my jsme jít přes zbytek této věci dost rychle, protože chci dostat do Argumenty příkazového řádku. Takže funkce jsou v podstatě, Jak jste viděli, černé skříňky. Berou věci zvané parametrů dělají něco pro ně, a to buď změnit nebo vytvořit některé nežádoucí účinky, a konečně, že plivat něco, co, který je návratová hodnota. Může mi někdo dát jeden důvod Proto bychom použít funkce? Někdo? Jedním z důvodů, proč bychom použili funkci? Každý, kdo? Viděl jsem obě ruce. Co je to dobrý důvod? Marcus? STUDENT: Pokud máte možnost volat stejné kus kódu vícekrát. JASON Hirschhorn: OK, pokud potřebujete možnost volat stejné kus kód vícekrát. Jeffe, jsi měl jiný důvod? STUDENT: Jen tak, aby můžete kód méně. JASON Hirschhorn: Můžete kódovat méně. Přesně tak. Pokud chcete udělat něco hodně - v předchozím kódu, mohl jsem mít napsal dostat řetězec, pětkrát, ale pro smyčce dělá to vypadat hezčí a musíte napsat méně kódu. Funkce jsou podobné nápad. Pokud chci udělat totéž hodně, přesunout do funkce a volat, že fungovat pokaždé. To bude dělat to, co pro vás. To je velký důvod používat funkce. Tak anatomie funkce. Funkce bude obecně vypadat takto. Bude začínat návratový typ, pak budete mít jméno. Zabere to argumenty, jinak známý jako parametry, a uvnitř ty složené závorky, budete napsat svůj kód. Viděli jsme jednu funkci hodně. To je hlavní. Zde je hlavní překrývá na že anatomie jsem měl dříve. Co int tady znamenat? Co int znamená? Když píšu int main (void). STUDENT: Návrat typ? JASON Hirschhorn: Je nám líto? STUDENT: Návratový typ. JASON Hirschhorn: Int návratový typ, přesně tak. Hlavní vrací int. Co je hlavní? Student: Název funkce. JASON Hirschhorn: Hlavní je název funkce. Přesně tak. A neplatné? Co je neplatná v závorkách? STUDENT: Nebere žádné externí hodnoty. JASON Hirschhorn: Takže void - pravdu. Uvnitř závorek, dáme parametry nebo argumenty, že funkce má, co se děje uvnitř černé skříňky. Při psaní neplatný, říkáš To nikterak palců Takže int main void znamená, že hlavní je nebere nic palců Uvnitř složených závorek, máme nějaké kód, a pak vidíme na konci vrátí nulu. Co znamená návrat nula znamená? No, my jsme mluvili o návratový typ. Hlavní potřebuje vrátit int. To je to, co dělá tento řádek. Vrací int, nula. Samozřejmě, že jsme neviděli, že mnoho protože v programování děláme s stroje, které děláme a překladače používáme dnes, vás nemusí tento řádek. Hlavní je dost zvláštní, že ví, když se dostanete na konec hlavní, jen vrátí nulu, pokud vše dobře dopadlo. Ve skutečnosti, pokud něco není dobře, Hlavním se často vrátí jiný číslo znamenat, že něco se stalo s programem. Takže většinou, když vidíte kód, nepište vrátí nulu, ale je to dobré vědět, že se to děje za scény, protože když píšete jiný typ funkce, budete muset zahrnují vratné potrubí. Pokud říkáš, že jdu vrátit int, musíte napsat něco vracet. Pokud řeknete void tady na začátek, void main void, pro příklad, pak to není návratu cokoli - void znamená, že nic - takže nemusíte že vratné potrubí. Ale jste někdy napsat něco, co není neplatnost návratový typ, co potřebujete řádek, který říká, že návratnost a vy je třeba dát tam něco , které se shoduje s typem. Máte nějaké otázky ohledně že? Sladký. Rozsah. To je něco, co jsme dotkl také. Každá proměnná, jak víme, má jistý rozsah, a to je v podstatě mluví o tom, kde proměnná mohou nebo nemusí být odkazováno. A líbí se mi říct, co se stane, do složených závorek pobyty uvnitř složených závorek. Tak například, pokud se podíváme na tohoto kódu, budeme definovat globální proměnné mimo hlavní, int, tady nahoře. Říkáme další int uvnitř hlavní. Máme nějaké další složené závorky a říkáme další int. Máme tři je v kódu. Nejedná se o totéž. Které jsem vytvořil tři různé proměnné. Pak se uvnitř těchto vnitřních kudrnaté šle, říkám = 4. Což je to, že mluvíš, První, druhý, nebo třetí? STUDENT: třetí. JASON Hirschhorn: Je to mluví o třetího. Všechny z nich je ve skutečnosti může být mluvil o této konkrétní instance, protože jejich rozsah všechno jde do těchto nejniternějších složených závorek. Nicméně, když budete volat věci samé jméno, je tu něco, co nazývá skrývá. Takže jste se zabývají pouze nebo opravit, nebo použijte Poslední proměnná, nebo jeden nejblíže k vám. Takže tady uvnitř, je nejblíže tato třetí na této lince, a = 4, takže je vliv na třetí. A poslední řádek, a = 2, což je že mluví o, první, druhý, nebo třetí? STUDENT: Druhý. JASON Hirschhorn: Je to mluví o druhý pohled. Samozřejmě, třetí je nejblíže se v kódu, ale třetí neexistuje mimo ty složené závorky. Jakmile se dostanete do tohoto uzavřeného kudrnaté rovnátka, je to jako, že je pryč, v podstatě. Takže jen dva jste zbylo, jsou ty, První dva, a samozřejmě, nyní je to blíže k druhé. Takže je to dobrá věc pamatovat o rozsahu. Například jsem si jistý, že jste se setkali To do while. Pokud inicializovat proměnnou uvnitř se while a zkuste přístup ven, budete pravděpodobně dostal nějaké varování, jako je tato proměnná neexistuje. To je z důvodu rozsahu nápad, že věci existují pouze uvnitř těchto složených závorek. Složené závorky jsou jako obří objetí, že dáváte do kódu, je další způsob, jak se o tom přemýšlet. Takže to je další funkce, něco pro vy do kódu hellofunction.c. Budeme přeskočit, že pro tuto chvíli, ale je to něco, co jsem povzbudit, abyste praxi na vlastní pěst. Napište program, ve kterém hlavní hovory další funkci, která vytiskne pozdrav pro uživatele. Je to v podstatě s hello world a abstrahovat, že printf do další funkce. Ale my nebudeme dělat, že právě teď protože nemáme tolik času vlevo, jak bych si přál. Tak deklarace funkce. Viděli jsme to předtím také. Pokud chcete napsat jinou funkci, budete potřebovat, aby se počítač vědět a Hlavní vím, že to existuje. Takže to, co děláme, je nad hlavní, my píšeme návratový typ, název a parametry, a pak dole hlavní, tady jsme vlastně zkopírovat linky a pak napsat skutečný kód. Takže tímto způsobem, pokud volání funkce v hlavním nahoře, ví, že hlavní Dobrý den existuje, například, když se zavolat ahoj, a pak to vypadá, že provádění dole. Co se stane, když nebudu zahrnout line up nahoru, ztrátu ahoj (void)? Pokud nemám obsahovat tento řádek a hlavní výzvy ahoj, já jsem dostaneme chybu. Chystám se dostanu chybu, protože kompilátor neví že tato věc existuje. To je důvod, proč se podobné to # include cs50.h. Co je na tom v podstatě cs50.h je uvedení dostat řetězec tam. Je to dávat si tam int. Je to dávat všechny ty funkce Prototypy se před hlavní tak, že když jim zavoláte na hlavní, hlavní ví že tyto věci existují. To je to, co ty. H. soubory dělat. A tak pokud se chystáte vytvořit svůj vlastní funkce, musíš se ujistit, si dal, že prototyp tam. Jakékoliv dotazy týkající se to tak daleko? Argumenty příkazového řádku. To je to, co budeme do konce , a pak snad budem zmáčknout v některých Pset. Já nevím, jestli budeme schopni zmáčknout že vzhledem k času, ale s vámi, kteří jsou tady, a pokud kluci chci říci, po na chvíli jsme se může jít přes něj ven. Ale budeme na závěr Argumenty příkazového řádku za posledních 15 minut. Jsme vzhůru, Michaeli? Jsi vzhůru? Dobře. Já nevím, jestli budete spát se zavřenýma očima. To by bylo složité. Argumenty příkazového řádku. Jedná se o jediný způsob, jak předávat informace do programu. Nakonec, budeme setkat s dalšími. Ale v podstatě, budeme zastavit psaní int main (void), chceme-li vzít nějaké argumenty příkazového řádku. Chystáme se napsat tuto věc tzv. int main (int argc, string argv, konzole. To je matoucí. To je hodně dopisů, které nejsou v člověk anglicky, takže budeme rozbalit právě teď. Argc je zkratka pro počet argumentů - a znovu, budou všechny tyto k dispozici online - a to je počet argumentů. Argv znamená argument, vektoru, a to jsou argumenty samotných. Je to pole řetězců. Jsme vlastně viděli řadu řetězců před dnes. Vytvořili jsme jednu v poslední program, který jsme kódovány. Tak tady je jeden příklad. Píšu. / Ohai CS50 sekce na mém příkazovém řádku. Argc v tomto případě rovná 3. Argv držák 0 je Ohai, argv držák 1 Je CS50, argv držák 2 je část. Opět platí, že argc je počet argumentů, a výlet vás trochu bit, jsme se vždy spolehnout na jméno funkce jako první argument. Takže v tomto případě, že jsou tři argumenty, název funkce a pak ti dva, které jsem napsal palců Dále budeme kromě těch, argumenty se v argv. A opět, stejně jako jsme viděli dříve, my jsme to v posledním programu jsme kódovány. Můžete se pohybovat po poli argv a dostat ty řetězce. To je v podstatě to, co jsme dělali v konec posledního programu. Vybrali jsme náhodný název a pak šel do Jména držák cokoliv a vytisknout z řetězce tam nachází. V horní části pouze na jednom poli, neboť Řetězce jsou samy o sobě pole, jako mluvil o, můžete mít pole polí, která je v podstatě to, co je argv. Jeden způsob, jak si můžete myslet To je řádky a sloupce. Mohu čerpat, že právě teď. Tak argv - to není mazání. Pojďme nakreslit pod Ohai. Takže když jsem psal, Ohai části CS50, Chystám se zkrátit sekce pro tento příklad. Ale v podstatě, moje multi-dimenzionální pole, Ohai CS50, budeme dělat sektu. Tak tady, mám přístup - když jsem jen dát argv jedno číslo - To je špatně. Co se děje v tomto diagramu? STUDENT: Začněte na nulu. JASON Hirschhorn: Mělo by se začít s nulou. Asi bych měla také otočit, ale protože jsem již vypracovány to tak, jsem nechám to tam do teď. Ale to začíná na nule. To je pravda. Omlouvám se, jestli to je jen malá. Může vás druh vidět? Takže když jsem to argv 0, já dostat všechny Ohai. Pokud se mi argv 1, dostanu všechny CS50. Pokud se mi argv 2, dostanu všechny sekty. Ale teď, jak jsme již řekli, struny jsou pole sami. Takže to, co mohu udělat, je mohu léčit tuto jako multi-dimenzionální pole, a já Můžete udělat něco v duchu argv 0, 0, což mi právě znak 0. Argv 0, 1, což mi dává jen hodiny. Argv 1, 3, což mi dává jen Tento 0 tady dole CS50. Takže, protože řetězce sami jsou pole, budeme dávat že v jiném poli. V současné době máme řadu polí, a my je index do našeho prvního pole a pak index do našeho druhého pole. A jak se dalo očekávat, že děláme jen o uvedení těch dvou - uděláme hranaté závorky jen hned vedle sebe. Takže v tomto případě, je argv 1 a CS50 argv 1, 2, jak jsme řekli, je pouhých 5. Má někdo nějaké dotazy týkající se multi-dimenzionální pole? Vy děláte úžasné. Sladký. Takže máme jiný program právě zde, a to je poslední věc, že ​​jsme dělat právě teď. Takže chci vám napsat program, který trvá celé jméno uživatele, dvě a pouze dva argumenty příkazového řádku, a konečně, vytisknout na pozdrav uživatel, který patří jejich křestní jméno. Tak proč si nevezmeš tři nebo čtyři minut, jak to udělat, a pak půjdeme nad ním jako skupina, a pak si zabalit? A opět tady, když říkáme, že se plné jméno uživatele dle popisu tohoto problému by mělo být příkaz argumentem, nepoužívají se řetězec. Jo, Marcus? Žák: Takže když říkáte, dvě řídící argumentem, je to, že kromě . / běh, nebo - JASON Hirschhorn: Dobrá otázka. Do, včetně. / Běh, tři Argumenty příkazového řádku. Nebo včetně. / Individuální, v V tomto případě, protože to je Název tohoto souboru. Takže argc by měly být tři. Ale já chci jen dva argumenty vzhledem k programu. Měl bych upřesnit, že. Budu dělat, že změny, než jsem příspěvek Tyto a poslat je na vás. Student: Co když mít prostřední jméno? JASON Hirschhorn: Pokud máte střední jméno, jsi smůlu. Omlouvám se. Nebo pokud chcete jít jen o Shakira, jste také smůlu. Jo? Žák: Takže, když lidé nemají cs50.h, nedefinují argv jako char argv hvězdy? Nebo je to ještě volal řetězec argv? JASON Hirschhorn: Ano. Takže řetězce, opět jsme se maskovat z toho, co přesně se tam děje. To bude možná bez obalu ve středu, ale brzy. Je to jako koleček. Vzhledem k tomu, v podstatě je to totéž. Takže pojďme se další minutu na programu to, a pak půjdeme přes se jako skupina, a pak jak jsem řekl, zabalit. A myslím, že jsou stále další cukroví, takže vy by doufejme to, nebo si vezmu. Omlouváme se, pokud jste ještě psaní, ale chci se do toho ponořit a my může skončit spolu. Tak jsem napsal v roce, # include cs50.h, # include stdio.h. int main (void), složená závorka, kudrnaté rovnátka, uvnitř tři řádky pseudokódu, vezmeš celé jméno uživatele, právě dvě příkazového řádku argumenty, vytisknout na pozdrav uživatel, který patří jejich křestní jméno. Takže první, se uživatelova celé jméno. Kdo mi může pomoci se uživatelova celé jméno? Jak to mám udělat, že část? Věděli jste, kluci, že první část? Take celé jméno uživatele. No, že jeden příkazový řádek Argument, co bych měl psát? Co bych měl změnit na můj deklarace funkce? STUDENT: Nechcete že je neplatné už. JASON Hirschhorn: Přesně tak. Nechci, aby to bylo neplatné. Co chcete, aby se? STUDENT: argc Int. JASON Hirschhorn: argc Int. STUDENT: String argv. JASON Hirschhorn: String argv. STUDENT: Bracket, držák. JASON Hirschhorn: Bracket, držák. To je přesně to pravé, a to ve skutečnosti, jak budu mít uživatelova celé jméno. Chystají se dát to tam. Tak, že člověk udělal. Takže teď chci právě dvě Argumenty příkazového řádku. Noe tedy, co je jeden způsob, jak mohu kontrolovat počet příkazu argumentem mám? STUDENT: Děláte-li prohlášení. JASON Hirschhorn: Je-li prohlášení, přesně tak. Co chci jako podmínku? STUDENT: Pokud argc vyšší než 3. JASON Hirschhorn: Pokud argc je větší než 3. Pokud argc vyšší než 3, co mám dělat? STUDENT: Vrací 1. JASON Hirschhorn: Vrací 1. Bude to zajistit, mám právě dvě? STUDENT: Ne Pokud argc je větší než 3 a méně než 2. JASON Hirschhorn: Pokud argc je větší než 3 a argc je menší než 2. Co je jeden způsob, jak mohu napsat to v právě jeden řádek, nebo bez použití, které a logický operátor? Student: To není rovno 2. JASON Hirschhorn: Pokud argc se nerovná 2. Přesně tak. Takže pokud argc není rovno 2, že bude mi tento program, osobní, kdy jsem jej spustit a který vám dá mi, kolik Argumenty příkazového řádku? Kolik budu kontrolovat? Promiňte. Dovolte mi, abych přeformulovat to. Pokud argc = 2, kolik věcí jsem uživatel zapsat do linky? STUDENT: Jeden. JASON Hirschhorn: Jen jeden. Takže předtím, než jsi pravdu, Noah. Co to vlastně je třeba dát tam? STUDENT: To se rovná 3. JASON Hirschhorn: argc není rovno 3. Chci se rovná 3, protože chci osobní a další dva. Takže pokud argc se nerovná 3, vraťte 1. Proč říkáte návratu 1? STUDENT: Vzhledem k tomu, že znamená, že je to špatné. JASON Hirschhorn: To znamená, že je to špatně, A to je co dělat? STUDENT: Znovu vyzve uživatele. JASON Hirschhorn: Bude to skončit programu, tak to bude muset spustit znovu, ale nemáme nic V sem a zeptejte se na ně znovu. Neptal jsem se na to. Tak to je přesně to pravé. Vrací 1 jen ukončí program. Skvělé. A vytisknout na pozdrav uživatele který obsahuje jejich první jméno. Jak to mohu udělat? Anna? STUDENT: printf. JASON Hirschhorn: printf. STUDENT: (" JASON Hirschhorn: ( Student: "ahoj JASON Hirschhorn: "ahoj STUDENT:% s JASON Hirschhorn:% s STUDENT: / n JASON Hirschhorn: / n Student: ", JASON Hirschhorn: ", STUDENT: argv JASON Hirschhorn: Je nám líto? STUDENT: argv JASON Hirschhorn: argv STUDENT: Hranaté závorky 1. JASON Hirschhorn: Hranaté závorky? STUDENT: 1. JASON Hirschhorn: 1. Žák: A) středník. JASON Hirschhorn:) středník. Pojďme tento příkaz. Personalizované. . / Osobní. Je to prostě skončit. Proč to skončit? Žák: nedal žádné argumenty. JASON Hirschhorn: já ne nepokládejte žádné argumenty palců Vypadá skvěle. Vy přibitý. Takže znovu, šel do argv a vy kontrolovány na začátku argc. To jsou dva důležité věci na paměti. Takže naše poslední dvě minuty před tím, než odejít, nebudeme dostat do Pset dva, ale jak jsem řekl, pokud chcete zůstat po po dobu 10 minut, já bych se rád jít než se vy logikou Pro tyto základní problémové okruhy. Měli jsme hodně na pokrytí dnes takže jsem se k nim dostat. Obecně platí, že se mi líbí, aby zahrnovala že na konci. Takže pokud chcete držet kolem, držet kolem 10 minut. Uděláme to. Potom, jak jsem se zmínil na začátku, pset nula a jedna, dostaneme, že zpětná vazba k tobě jako co nejdříve. Cílem je dostat Pset jeden zpětnou vazbu, Komentáře část, před pset dva je splatná. Takže pokud jste udělali nějaké chyby, nebo stylisticky by věci být lepší, budete mít tyto informace, takže si nebude dělat stejné věci v Pset dva. A pak se v budoucnu budete mít všechny vašeho Pset připomínky a komentáře zpět před další je způsobeno. A konečně, pokud bych mohl dát další konektor pro zpětnou vazbu. Toto je váš první část. Byl to můj první část vyučování v letošním roce. Jděte tam. Napište věci, dobré a špatné, a budu používat to, aby se sekce lepší příště. A nakonec, opět pokud potřebujete něco, dejte mi vědět. Jsem více než šťastný, které vám pomohou kluci. Pokud chcete jen sladkosti, jsem bude mít další sladkosti. Jsem rád, aby to na vás. To bude úžasný kurz. To je jeden z, ne-li můj oblíbený Samozřejmě, že jsem si vzal v celém mém životě, a doufám, že bude, že skvělé pro vás. Tak jsem chtěl udělat vše, co bude v mých silách aby bylo úžasné, že pro vás. Chystám se odeslat e-mail, pokud jste v mém oddíle nebo Noah, a Pokusím a naplánovat každý z jste si čas na kontrolu v průběhu příštích pár týdnů, abych se mohl Smysl pro to, co vaše CS pozadí, a to také pomůže mi to na míru části, aby lépe vyhovoval vašim potřebám. Takže to je to, co jsem dostal postavili. Opět uvidíme mimo Pokud chcete být. To byl týden dvě části. Děkuji vám kluci moc.