>> [Mūzikas atskaņošanai]
DAVID Malan: Sveiki, visiem.
Tas ir CS50 ir supersection.
Piešķirtie Sekcijas nebūs sākt vēl nedēļu.
Un tā šodien, es esmu šeit with--
>> MARIA: Maria.
DAVID Malan: --to faktiski ieskatieties problēmu
iestatīt vienu, protams'S pirmajās nedēļās materiāla,
iegūt jums orientēta ar CS50 IDE, mazliet Linux, operētājsistēmas, kas ir
darbojas uz IDE, kā arī apskatīt dažas pārejas
no nulles līdz C vadošajiem līdz problēmai noteikt vienu.
>> Tātad bez papildu ADO, jo problēma iestatīt vienu,
jūs esat būs iepazīstināti CS50 IDE, kas
tas ir tīmekļa programmēšana vide, ka mēs izmantojam, lai
rakstīt programmas.
Tā ir izstrādāta, lai izskatās ļoti atgādina tipisku datora
Sistēma darbojas darboties sistēma, ko sauc Linux.
Bet tas ir tā saukto mākoni, kas nozīmē ikvienu klasē
patiesībā var būt viņa vai viņas pašu kontu un izmantot to, kā labi.
>> Tātad lielākā daļa no jums, iespējams, nekad nav izmantoti Linux vidē pirms vai varbūt
pat komandrindas vidē.
Un komandrindas vide ir atšķirīgs.
Tas viss teksta.
Tas ir visas tastatūras komandas.
Un tas nav mousing, nav ikonas, Dialogs logi, nav izvēlnes.
Tas ir tīri teksta.
Tātad, pirmkārt, tā veida no jūtas kā soli
atpakaļ ziņā izsmalcinātību.
Bet tas beidzas ar to daudz jaudīgākas, protams,
par datoru zinātnieks, galu galā.
>> Tātad, pieņemsim to apskatīt.
Šeit es esmu CS50.io, caur kuru Jūs varat ieiet CS50 IDE.
Un līdzīgi kā nulles, tur ir trīs primārās jomas uz šī ekrāna.
Tātad uz kreisās puses, mums ir kādi būs failu pārlūks.
Un tur ir tas mapē top, kas tagad ir taisnība tukšs
jo es got atbrīvoties no visiem maniem failus pirms supersection.
Un tas ir, ja mēs ietaupīt C failus, kas mums rakstīt.
Augšējā labajā stūrī, mums ir vieta, kur visas mūsu koda gatavojas saņemt rakstīts.
Un tiešām, ja es noklikšķiniet uz šīs Plus, tas gatavojas ļaut man izvēlēties jaunu failu.
Un šeit es varu sākt rakstīt C kodu, vai, tiešām, kādu citu valodu skaits.
>> Un pēc tam apakšā, kur tas saka jharvard @ ide50-- un jūsu būs
pateikt kaut ko mazliet different-- to, kas bija šo sauc?
Terminal logs.
Jā.
Tātad termināļa logs ir tā saukto komandrindas
interfeiss, caur kuru jūs varat sazināties ar pamata operētājsistēmu.
Un tagad, mēs ejam, lai padara ļoti maz izmanto this--
tikai, lai apkopotu, apskatīt kļūdu ziņojumi, ko mēs redzam,
un palaist mūsu programmām.
Bet galu galā, mēs ejam darīt daudz vairāk, kā labi.
Un jūs pat varat instalēt programmatūru un pārvaldīt savu darba vietu
ietvaros CS50 IDE, kā arī.
Taču vairāk par šo kādu citu laiku.
>> So iesim uz priekšu un rakstīt ļoti vienkārša programma tikko
iet cauri iesildīšanās hello.c, kas ir iespējams,
vienkāršākais programma, mēs varam rakstīt.
Esmu jau atvēra jaunu cilni.
Es iešu uz priekšu un saka ietver standarta io.h.
Tad int galvenais (spēkā neesošs).
Un tad printf ("sveiki, pasaule" slīpsvītru n, close quote,
tuvi iekavas, un semikolu.
>> Viss kārtībā.
Tāpēc tagad paziņojums mans logs ir Untitled.
Tāpēc es esmu ļoti ātri iet iet uz augšu uz File, Save.
Un tas ir svarīgi, ka Es aicinu šo nav "sveiki".
Tik ļoti izplatīta kļūda, jo īpaši problēmu noteikt vienu,
ir nejauši tikai izsauktu Programma "ūdens" vai "mantkārīgs" vai "Mario"
vai "kredīts" vai tamlīdzīgi.
Bet jūs tiešām vēlaties, lai pārliecināts, ka jums ir faila paplašinājums
jo tas ir vienīgais veids, kā kompilators un arī kods redaktors
zina, ka tu esi faktiski rakstot C kodu.
Tāpēc ļaujiet man iet uz priekšu un noklikšķiniet uz Saglabāt.
>> Un tagad, arī to, kas CS50 IDE ir darījis mums tas ir arī
sintakse izcelti visu.
Tātad tas ir izgatavots viss ļoti krāsains.
Un viss, lai ka nav funkcionāla.
Tas ir vienkārši, lai pievērstu acis uz konceptuāli atšķirīgi gabali
Šīs programmas.
So iesim uz priekšu un apkopo šo.
Un es varētu sastādīt šo pāris veidos.
Un nedēļā vienā, tad old-school veidā mēs to izdarījām
tas bija burtiski pie pavēlniecības line-- "šķindēt hello.c."
Un tad es hit Enter.
Un nekas, šķiet, notiek termināļa logā.
Bet ko darīja izmaiņas IDE?
Ja atkal, IDE tikai nozīmē Integrētā izstrādes vide.
Tas ir iedomātā veids, kā pateikt Šī integrētā attīstība
vide, lai attīstītu programmatūru.
Tātad, ko darīja mainīties UI?
Ko jūs novērojat tas ir atšķirīgs, Maria?
>> MARIA: es pamanīju kaut ko zem IDE50 mapē šeit.
>> DAVID Malan: Jā.
Tātad šeit, ne tikai Vai mums ir "hello.c."
Mums ir arī "a.out", kas ir veida mēms nosaukumu programmai.
Bet tiešām, tas ir noklusējuma nosaukums priekšlikums programma, kad jūs vienkārši sastādīt savu kodu
un nestāstiet kompilators kādi failu produkciju.
Tātad, ja es gribu, lai palaistu šo, es ir nepieciešams, lai pastāstītu compiler--
vai drīzāk, man ir nepieciešams, lai pateikt darbvietas, kas man
vēlas, lai palaistu programmu, ko sauc "a.out."
Enter.
Un tur ir "hello, pasaule. "tagad" ./ ".
faktiski svarīga.
Kaut arī parasti mēs tikai rakstīt vārdus komandas,
kad tā ir programma, jūs esat rakstīts, jūs vēlaties teikt "./"
jo tas nepārprotami stāsta Linux ka jūs vēlaties, lai palaistu programmu, ko sauc
"a.out", kas ir šajā gadījumā dot nozīmē šo direktoriju, kas es esmu šobrīd
in, kas notiek, ir sauc darbvietas, "a.out.
Jo, ja es tikko teicu "a.out," Enter, Es esmu gatavojas saņemt "a.out komandu nav
atrasts "jo computer-- jo es izgudroja "a.out;"
tas nenāca ar computer-- nezina, kur meklēt to,
pat ja tas ir labi zem mana deguna, lai runāt.
LABI.
Tātad mēs varētu mainīt to būt "šķindēt -O sveiki hello.c."
Un, ja es hit Enter, ko programma tas notiek ar produkciju par mani?
Kas ir faila nosaukums?
Jā, muguras.
Tas ir labi. "Sveiki."
Tātad "hello" būs nosaukums programmas
jo mēs esam izmanto tā saukto komandrindas arguments, kas ir tikai
veids, kā mainīt uzvedību kompilators faktiski produkciju
konkrētu faila nosaukumu.
Un tiešām, ja es zoom ārā un meklēt šeit,
tagad man ir ne tikai "a.out" un "hello.c", bet arī "hello", kā arī.
Tāpēc tagad es varu darīt "./hello," Enter.
Un tur ir "Hello, world."
Bet lastly-- un tas tagad būs konvencija
mēs izmantojam visā semestris, typically--
ir varat arī vienkārši pateikt "padarīt Sveiki."
Un tiešām, tas ir sakot, ka tas ir atkarīgs Līdz šim, jo ​​tas jau pastāv.
Ļaujiet man iet uz priekšu un noņemt, ar RM komanda, gan "a.out" -
un teikt "noņemt regulāru failu a.out?"
Tas tikai nozīmē, jūs esat tiešām vēlaties to dzēst?
Es esmu gatavojas teikt jā.
Un tad es esmu gatavojas, lai novērstu "sveiki", bet ne "hello.c."
Es esmu gatavojas teikt "jā" skaidri, bet "y" ir pietiekams, kā arī.
>> Un tagad paziņojums, ja es tips ls-- Kas, atsaukšanu,
nozīmē list-- tas uzskaita visu failu manā mapē.
Un tiešām, ja es zoom ārā un apskatīt augšējā kreisajā pusē,
tas apliecina, ka to, kas ir šajā mapē, pat
ja tas ir marķēts kā IDE50 šeit un nav darba vieta, tas ir tikai "hello.c."
Tāpēc tagad šeit lejā, ja I do "padarīt hello," Enter,
tagad es redzu daudz ilgāku komandu, bet sarežģītākas komanda, kas notiek
būt noderīgi nedēļās.
Un tagad es varu teikt "./hello."
>> Tātad pieņemsim ātri tūre kādu citu Linux komandas.
Tad kāpēc nav mēs spert soli atpakaļ un faktiski apskatīt C vairāk
parasti, pārejot no nulles C, un pēc tam noslēdz ar skatienu
pie pirmās problēmas noteikts C. Labi.
Tāpēc es esmu gatavojas iet uz priekšu un tikai tīru up mana darba vieta ar Control-L tikai
lai saglabātu ekrāna veikls.
Bet tas ir ne funkcionāls ietekmēt citādi.
>> Atgādināt, ka mēs esam redzējuši daži komandas tagad.
Tāpēc mēs esam redzējuši šķindēt, kas parasti jums nebūs izpildīt manuāli vairs.
Mēs tā vietā izmantot marku.
Bet mēs arī redzējām ls, kas rāda uzskaitījums failus manā direktorijā.
Un tagad, kāpēc ir there-- tur ir divi failus tagad, "hello" un "hello.c."
Kāpēc ir zvaigzne vai Zvaigznīte pēc "sveiki"?
Ko tas neizsaka, balstoties par to, ko mēs redzējām nedēļu vienu?
Ko tu domā?
Ko zvaigzne neizsaka?
>> MARIA: For-- programmā "sveiki"?
DAVID Malan: "Hello *".
Jā.
O jā?
Ak, izpildāmā.
Tas ir labi.
Tātad tas nozīmē, ka "sveiki", ir izpildāms.
Tik tiešām, tas ir iemesls, kāpēc Es varu darīt "./hello."
Viss kārtībā.
Tātad, ko vēl es varu darīt šeit?
Nu, izrādās, es varu arī izveidot direktoriju.
Tāpēc ļaujiet man iet uz priekšu un radīt, Piemēram, "pset1" direktorijā.
Un problēma noteikti specifikācija būs jums darīt tieši to,
tāpēc jums nav atcerēties šodien.
Bet "mkdir pset1" Šķiet to neietekmēs.
Bet atkal, nav kļūdas ziņojums parasti ir laba lieta.
Tātad, ja es tipa "LS" now-- ah, tagad Man ir izpildāmo failu ar nosaukumu
"sveiki," C failu ar nosaukumu "hello.c."
Un tad slash, tāpēc, lai runā, nozīmē, ka šis ir katalogs.
>> Tātad tiešām, tagad es gribu, lai to atvērtu.
Un es nedomāju dubultklikšķi uz to kā ar GUI, grafiskā vide.
Es nevis saku "CD pset1."
Enter.
Nekas interesants, šķiet, ir noticis izņemot manu maz uzvednē
here-- tas ir Linux veids atgādinot man, kur es esmu, lai to, kas mape ir atvērts.
Tas ir tikai stāsta man skaidri pretstatā grafiski.
Un, ja es tipa "ls," kāpēc es redzu citu ātri uzreiz, jūs domājat,
kad es uzskaitīt saturu pset1?
MARIA: jūs, iespējams, nav ir kaut kas tur.
DAVID Malan: Jā.
Tātad mums nav acīmredzami izveidots neko tur
jo es tikko izveidojis direktoriju.
Tagad, ja es gribēju, lai izveidotu file-- par Piemēram, es varētu izveidot jaunu failu.
Un tad es varētu doties uz Glābt un saglabāt to kā,
piemēram, "mario.c", ja jūs darāt standartnovirze izdevums PSET viena.
Un tad, tāpat kā jebkura Mac vai PC, vienkārši Izvēlieties mapi "pset1, Saglabāt.
Un tagad fails ir tukšs.
Bet pieņemsim tuvinātu atkal uz otru.
Darīsim ls šeit.
Tagad mēs redzam, "mario.c".
>> Tātad tur ir dažas citas komandas, kas Ir vērts paturēt prātā vairāk LAIKU_
skaidrs, vai Control-L ir tas, ko es esmu bijis trāpot; mkdir mēs esam redzējuši;
rm mēs esam redzējuši, kā arī, kas ir noņemšanai vai dzēšot failu.
Piesargāties jūs varat also-- un ja paskatās pie tiešsaistes konsultācijas, jūs rm -rf
ir ļoti bieži veids, kā pateikt izdzēstu mapi, kas ir sīkumi tajā.
Vienkārši super, super uzmanīgiem.
-rf nozīmē rekursīvi izdzēst kāds tas ir
jūs mēģināt izdzēst un varu izdzēst.
Tātad rekursīvo nozīmē, ja tā ir mape ar mape ar mapi ar mapi,
izdzēst visas no tām.
Un varu nozīmē pat nav man jautā, jā vai nē, es esmu pārliecināts, ka?
Tātad tas ir super bīstams veids svītrojot daudz sīkumi ātri.
Bet beware-- pārāk bieži dara bezbailīgs students nejauši dzēst, teiksim, PSET
viens, piemēram.
>> MARIA: Un, ja viņi vienkārši do-r, viņi dodas
uzdot viņiem par katru failu.
>> DAVID Malan: Kura ir mēreni kaitinošas.
>> MARIA: Jā.
>> DAVID Malan: Tātad, tāpēc tik daudzi no mums, self iekļauts,
esmu ieradums izmantojot -rf.
Bet tas ir bīstami.
Tātad pircējs piesargāties.
Un tad mv ir sava veida interesanti nosaukts.
Tātad šis ir solis komanda, kas jūtas mazliet dīvaini
jo jūs patiešām varat to izmantot, lai pārvietot failus no vienas vietas uz otru.
Piemēram, pieņemsim, ka es messed up.
Pieņemsim, ka es radīju jaunu failu uz PSET.
Un es saglabāts kā "greedy.c."
Bet domāju, ka es nejauši to saglabāt in IDE50-- tāpēc manā darbvietā pati
un nevis pset1.
>> Jūs varat redzēt tik daudz pie augšējā kreisajā stūrī.
Tur ir "greedy.c."
Un tur ir daži risinājumi.
Tātad viens, es varu izmantot super lietotājam draudzīgā veidā
no vienkārši velkot un nometot to.
Un tas tiešām atrisinātu šo problēmu.
Bet šodien, mēs cenšamies apskatīt Jo vairāk Arcane bet spēcīgs veidus
kā to izdarīt.
Tāpēc ļaujiet man izmantot "Ls" pset1.
Un es tikai redzēt "mario.c."
Ļaujiet man iet uz priekšu un darīt "cd ..".
Tātad CD atkal ir pārmaiņas katalogs.
".." Nozīmē to, kas, lai gan?
Pēdējo reizi, kad es teicu "CD pset1 "iedziļināties pset1.
Tātad, kad es saku "cd ..", ko es daru?
Atpakaļ.
Jā.
>> Tātad tas notiek uz tā saukto vecākiem.
Iet vienu līmeni uz augšu, piemēram, iziešanas no mapes.
Tātad Enter.
Un tiešām, meklēt to, ko tā darīja.
Tas mani aizkustināja tikai uz darbvietu vietā no uz pset1, kas ir darbvietā.
Un tagad, ja es tipa "LS", tur ir viss ķekars sīkumi.
Tur ir "greedy.c".
Tāpēc tagad ļaujiet man izmantot mV burtiski pārvietot "greedy.c" uz pset1.
Un tā daudz Linux komandas strādā tieši tāpat kā šis.
Viņi ņem ne argumentus, vai tās veic vienu arguments, vai tās veic divas komandrindas
argumenti un tā tālāk.
Un šajā gadījumā, tas ir burtiski darot to, ko
tā saka, kaut succinctly-- pārvietot greedy.c uz pset1.
Enter.
Nekas, šķiet notikt.
Bet, ja es to ls atkal, mantkārīgs ir pagājis.
Un, ja man "cd pset1", Enter, un pēc tam ls atkal, tagad ir pienācis īstajā vietā.
Kā malā, ja par daži reason-- īpaši
ja Jums ir neregulārs tīkla savienojumu
vai jūs staigā campus ar savu portatīvo vāku
slēgta un pēc tam atvērt to atkal un jūsu darbvietas
Šķiet nedaudz no sinhronizāciju, nav liels darījumu.
Vienkārši pārlādēt pārlūkprogrammu logu, un tas būtu
RESYNC tā, ka kreisās puses failu pārlūks izskatās tieši
tāpat termināļa logā.
Nav jāuztraucas.
Ja šaubāties, pārlādēt lapu, lai Kamēr jūs esat saglabājis failus jau.
LABI.
Tātad mv var arī izmantot, lai pārdēvētu failus.
Un pieņemsim to apskatīt Šis galīgais komandu šeit.
Tātad suppose-- un tas ir super bieži, pārāk, agri.
Daži studenti reizēm izveidot failu sauc, pieņemsim say-- to, kas ir vēl viens?
Tāpat "WATER.C."
Tāpēc es ņemšu tikai kliegt, lai nav iemesla, jo visiem vāciņiem.
Bet tas nav pareizs faila nosaukumu
ja tikai tāpēc, ka mūsu problēma ir noteikts specifikācija nav pateikt jums
saglabāt failu kā ALL CAPS "WATER.C."
Tā vietā, mēs sagaidām "water.c" ar mazajiem.
Un, patiesībā, tas ir problemātiska, jo check50,
programma, jūs gatavojas tikties problēmu
iestatīt vienu, kas automātiski testi pareizību savu kodu
gatavojas kliegt uz tevi, ja to nevar atrast "water.c" Visās mazajiem burtiem.
>> Tāpēc man ir nepieciešams noteikt šo.
Tik daudz dažādi veidi, kā to izdarītu, no kuriem pirmais
būtu kontrolēt klikšķi vai ar peles labo pogu faila nosaukumu un vienkārši mainīt Pārdēvēt.
Pilnīgi naudas sodu, lai to izdarītu.
Bet atkal, šodien, pieņemsim darīt to nedaudz mīļotājs.
Pieņemsim izmantot mV, lai mainītu "WATER.C" uz "water.c."
Tātad jūs varat izmantot arī pirmo argumentu pārdēvēt to uz otro argumentu
ja otrais arguments nav, jo Fakts, mape vai direktorija nosaukums.
>> Viss kārtībā.
Un visbeidzot, mazliet trick-- tāpēc es esmu mana darbvieta katalogs brīdī.
Ja es vēlos nokļūt PSET vienā, Es, protams, varat ierakstīt "CD pset1."
Bet tas ir tik garlaicīgs rakstīt "pset1" vai vairs failu nosaukumi vai direktoriju nosaukumi
joprojām.
Tik ļoti bieži Linux, ko jūs varat darīt, ir sākt rakstīt "PSE"
un tikai garlaicīgi, hit Tab, un ļaujiet dators skaitlis it out jums.
Super noderīgi nokļūt šo ieradumu.
Tikai nozveju, ja Jums ir vairākus failus vai mapes, kas sākas
ar burtu "p" vai "ps", jūs varētu būt
rakstīt vēl dažus pirms dators zina, ko darīt.
>> MARIA: Mums patīk īsceļus.
>> DAVID Malan: Šī griba ietaupīt tik daudz laika.
Un arī, kā mēs teicām lekciju, jūs var ritināt uz augšu vēsturē, uz augšu un uz leju,
atrast nesen izpildīts komandas, kā arī.
Viss kārtībā.
Tāpēc tagad, pieņemsim savukārt mūsu uzmanību atpakaļ ar vienkāršu programmu, hello world.
Tātad mēs esam sastādījuši šo precīzi.
Un tagad, kāpēc nav mēs ieskats datu tipu
un tad pāreja no dažām atbilst Scratch blokus C.
MARIA: Awesome.
Tāpēc tagad, ka jūs esat sākuši rakstiski programmas C,
mēs esam gatavojas sākt runāt par datu tipiem un mainīgie.
Tāpēc daži datu tipi, kas jums gribētu zināt jau šodien
ir tie, kas ir iezīmēts zilā krāsā.
Tāpēc mums ir int pirmkārt, kas apzīmē skaitlim.
Un kas tur veselus skaitļus, kā jūs iespējams, ir guessed-- tik 1, 2, 3,
un jebkādi citi veseli skaitļi ka jūs varat iedomāties.
>> DAVID Malan: Un arī negatīva.
>> MARIA: Un arī negatīvas tiem, yep.
Un 0.
Tad mums ir pludiņi, kas ir peldošā komata skaitļus.
Tātad tas viss reāliem skaitļiem ka ir decimāldaļām.
Tātad 5.0, 5.2, un vēl jo vairāk cipariem aiz komata,
kā arī, un arī negatīvajām tendencēm.
Tad mums ir char kas ir raksturs.
Tāpēc es domāju, ka mēs runājām par šis lekciju šodien.
Bet mums ir vēstules, lai example-- A, B, C-, kas var tikt saglabāta kā char.
Bet tad mums ir daudz vairāk simbolus kas var tikt saglabāta kā char.
Un tie tiek glabāti kā ASCII.
>> Un tad mums ir bool, kas ir Booleans.
Un tiem, novērtēt to True vai Nepatiesa vai 1 un 0, attiecīgi.
DAVID Malan: arī atgādina, ka bool nāk no CS50 bibliotēkā.
Tātad tas nav iebūvēts C, bet tas ir super noderīgs
ir jēdzienu patieso un viltus.
Un, pat ja jums varētu think-- fun fakts.
Bool tehniski nepieciešams cik biti, patiesi, lai pārstāvētu True pret False?
Cik bitu jūs domājat, ka jums būtu nepieciešams, maksimāli?
Jā, tikai viens.
Tātad izrādās, ka C nevar sniegt jums tikai vienu bitu.
Mazākā mērvienība jūs varat saņemt, ir astoņi.
Tātad tas ir mazliet izšķērdīgs tie esat izmantojot visu baitu vai astoņi biti,
pārstāvēt True vai False.
Bet tas ir tikai veids, kā tas ir īstenoti C ar CS50 bibliotēkā.
MARIA: Un tad tie, kas mēs esam netaisos runāt par tik plaši
Tiesības now-- dubultā, tas ir par lielākiem pludiņi.
Long ilgtermiņa un īstermiņa Ir arī veseli skaitļi.
DAVID Malan: Tiešām.
In hakeru izdevumā PSET viena, mēs faktiski izmantot ilgi ilgi.
Bet standarta izdevums, tas nebūtu nepieciešams.
MARIA: Cool.
LABI.
Tātad operators-- jums vajadzētu būt iespējams, iepazinies ar lielāko daļu no tām.
Papildinājums, +; atņemšanu, -.
Pavairošanai, mums ir *.
Tātad nevis X, ka mēs parasti izmanto.
Division, mums ir slīpsvītru.
Un Modulo ir mūsu pēdējā operators, mēs gatavojamies runāt par tieši tagad.
Tas ir uzņēmējs, kas ļauj mums veikt atlikušo sadalīšanas.
Tātad, ja mums ir 4% 2, 4 dalīts ar 2: 2 ar atlikušo 0.
Tātad 4% 2 0.
4% 3 ir 1.
4% 5 ir 4, kā jūs varētu būt guessed.
Un atcerieties, ja izmanto visus šos operatoriem izmantot PEMDAS noteikumus.
>> DAVID Malan: Tātad, lai būtu skaidrs, ja jūs do 4% 2, kāpēc ir tā, ka 0, tieši tā?
>> MARIA: Tā 4 dalīts ar 2 ir 2 ar atlikušo 0.
Tātad Modulo dod mums šo atlikušo kā Atšķirībā no sadalīšanas rezultātā.
DAVID Malan: Un tiešām, ko mēs atrast šo noderīga
lai ir tā, ka dažas problēmas tas ne vienmēr ir viens,
ja jūs vēlaties, lai būtu efekts ierobežo sevi
uz ciparu virkni tāpat 0 ar kaut ko,
Jūs varat izmantot modulo wrap ap agrāk nekā tāpat 2 miljardiem
vai 4 miljardi vērtība, kas mēs esam runājuši par lekciju.
>> MARIA: Jā.
Un pat "mantkārīgs" mēs varētu.
DAVID Malan: Jā, Problēma iestatīt vienu, kā arī.
MARIA: Jā, jauki.
DAVID Malan: Labi mājiens.
MARIA: Sorry.
Būla expressions-- tik par Būla operatoriem,
mēs gatavojamies runāt par visu no tiem, kas jūs redzēt šeit.
Tāpēc tieši tagad, mums ir divi Vienādas zīmes uzskaitīti vienlīdzīgiem.
Tātad tie ir par salīdzinājumu.
Līdz šim mēs esam redzējuši tikai viens vienlīdzības zīme.
Tas ir, kad mēs piešķirt vērtība uz mainīgo.
Tātad, ja mēs esam redzējuši int n = 5, tad mēs esam piešķirts 5 uz mainīgo n.
Bet, ja mēs vēlamies izmantot == par salīdzinājums, mēs varam pārbaudīt, ja n == 5.
Un, ja n == 5, tad tā ir taisnība.
>> Tātad Būla operatori ļauj mums, galvenokārt,
izvērtēt Būla izteiksmes True vai False.
Tātad nav equals-- mums ir izsaukuma zīmi un vienlīdzīgi.
Tātad, mēs varētu arī pārbaudīt, vai n nav vienāds 5-- tik n! = 5.
Mazāk nekā, mazāks vai vienāds ar, lielāks nekā, ir lielāks par vai vienāds ar,
un tad mums ir loģisks UN un loģisks OR.
Un tie ļauj mums novērtēt Vairāku Būla izteiksmes kopā
būtībā nāk kopā kā viens vesels Būla izteiksme.
Tātad, ja mēs vēlamies, lai atrastu numuru, teiksim, kas ir lielāks par 5, bet mazāks par 15
tajā pašā laikā, mēs varētu izmantot loģiski un operators, lai redzētu, ja n ir
ir lielāks nekā 5 && n, mazāk nekā 15.
DAVID Malan: Un šeit, Arī tas ir patiešām viegli
agri, lai nejauši izmantot tikai vienu aizvieto & zīmes
vai viens vertikāla josla.
Un cerams kompilators bļaut pie jums, jo tie faktiski
ir ļoti atšķirīga nozīme.
Tiem, ziņkārīgs, viņi izmanto Bitu līmeņa operācijas,
darbojas uz atsevišķiem bitiem.
Bet jūs vēlaties pāri tiem šeit.
Un super svarīgi ir tas, ka Pirmais, vienādības zīme,
kas ir vienlīdzība operators kā pretstatā grupēšanas operatoram.
>> MARIA: Un vertikāla josla ir Atrodas starp Delete un atgriezties.
DAVID Malan: Jā.
Par tipisku ASV klaviatūru.
>> MARIA: Yep.
Tātad pieņemsim lēkt pa labi nosacītie apzīmējumi.
In nulles, jūs esat jau redzējuši, iespējams,
ja apgalvojumi, kas ļauj jums, lai pārbaudīt, vai kaut kas ir patiess, tad
darīt kaut ko citu.
Lai jūs varētu būt gribēja lai pārbaudītu, vai jūsu elfa ir
pieskaršanās kādu citu Sprite vai robeža ekrāna.
Un tad jūs varētu būt gribēja beigtu spēli vai darīt kaut ko citu.
Tātad sintakse ka ir "ja (nosacījums)."
Tātad, ja jūsu elfa pieskaras kaut, tad ir iekšā cirtaini lencēm.
>> Tad mums ir, ja-cits paziņojumus.
Else ļauj mums kaut ko darīt ja nosacījums, ka mēs
pārbaudīt sākumā nav taisnība.
Tātad, ja elfa pieskaras pārrobežu to izdarītu, cits darīt kaut ko citu.
Tātad citādi darīt kaut ko citu.
Tad mums ir īss piemērs tam.
Tātad, ja (military_time <12), mēs gribu printf "Labrīt!"
Vēl mēs ejam printf "Labvakar!"
Basic piemērs.
>> DAVID Malan: Labi.
>> MARIA: Cool.
Tāpēc tagad mums ir slēdzis paziņojumus.
Pārslēgties paziņojumus kopumā var ļauj mums darīt daudz to pašu
ka mēs tikko runājām par ar, ja paziņojumiem.
Piemēram, šobrīd mums ir vispārējā forma slēdža paziņojuma
kas ļauj mums veikt mainīgi sauc n
un salīdzināt to ar daudz dažādas vērtības, kas šeit mēs
ir aicinājuši constant1, constant2.
Mums var būt daudz vairāk.
Un tie tiek saukti par gadījumiem.
>> Tātad, ja mums ir slēdzis statement-- un tas darbojas
tikai integers-- mums ir mainīgais šajā gadījumā, kas ir n.
Ja mainīgais n ir vienāds ar constant1, mēs
veiks kādu koda fragmentu vai kaut kas, ko mēs vēlamies darīt.
Un tad mēs varētu izjaukt.
Tātad pārtraukums nozīmē, ka slēdzis paziņojums
apstāsies izpildes, ja n ir vienāds ar constant1,
un tad jūsu programma turpināsies.
Tā izies ārā no pāriet paziņojumu un tas būs
turpināt darīt kaut ko citu.
>> Tomēr, ja n nav vienāds constant1, tad gadījumā constant2
Tiks pārbaudīts.
Tātad, ja n ir vienāds constant2, ka citi koda fragmentu tiks izpildīts.
Un tad tas būs pārtraukums ja tas ir vienāds ar to.
Un tad mēs varam būt also-- nav obligāti, though-- noklusējuma lietu,
kas notiks, ja n nav vienāds kādam no gadījumiem, kas jums ir uzskaitīti.
Un neatmaksāšanas gadījumā, mēs arī nav nepieciešams pārtraukums obligāti
jo slēdzis paziņojums zinās ka tai ir nepieciešama, lai izbeigtu pēc noklusējuma
gadījumā, ja tas ir gadījumā.
>> DAVID Malan: Bet stilistiski, mēs vienmēr likt to tur.
>> MARIA: Jā.
>> DAVID Malan: Jā.
Tātad, jo īpaši, ja sākot no, it īpaši, ja viens no tiem mazāk
ērti, es personīgi tikai iesakām stick ar IF
un IFS-elses un ja-cits-ja-elses un tā tālāk, ja vien
jo viņi maz vienkāršāka.
Šī ir jauka optimizācija, vai dažreiz pat estētiski to
padara kodu vieglāk lasāmu.
Un patiesībā, iespējams, mid-semestris mēs redzēsim problēma
noteikt, kur tas tikai izskatās labāk un vieglāk lasīt par cilvēkiem
izmantojot slēdzi paziņojumu.
Bet nav jāuztraucas par pieķeršanās šo pārāk agri.
>> MARIA: Jā.
Ja jums ir daudz no tā, ja pārskatu, tas varētu vienkārši nebūt viegli uztverams.
Tas varētu būt ļoti ātrs lai jūs varētu iet caur to.
Tātad slēdzis paziņojumi var būt ļoti noderīga, kā arī.
Un arī, nav remember-- nav aizmirst likt pārtraukumiem tur.
>> DAVID Malan: Neatceros šo.
>> MARIA: Jo tad jūs varētu samazināties izmantojot no vienas lietas uz otru.
Tātad pieņemsim, ka lieta constant1 nebija pārtraukuma paziņojumu tajā.
Tad mēs varētu izkrist pa iekšā gadījums constant2.
Un mēs negribam to darīt, ja mēs jau esam sasnieguši lietas constant1
un tas ir vienāds ar n.
>> Tā, piemēram, ja mums ir mainīgais n, kas satur klases numuru,
un mēs gribam, lai redzētu, kas klases is-- ja n ir vienāds ar 50,
mēs ejam, lai drukātu "CS50 ir Ievads datorzinātnēs I. "
Tad mēs ejam, lai izjauktu.
Un tas arī viss.
Ja, tomēr, n ir vienāds 51, mēs ejam
drukāt "CS51 ir Ievads uz datorzinātņu II. "
Tad atkal, mēs ejam, lai izjauktu.
Tomēr, ja pēc tam mēs ieliekam 124, 61, jebkurš cits numurs, ka jūs varētu iedomāties,
vai programma nav gatavojas atzīt, ka.
Tātad tas būs teikt, "Atvainojiet, es esmu nav pazīstami ar šo klasi. "
Un tas notiek, lai izjauktu.
DAVID Malan: Tātad jūs tiešām var redzēt IF, kas cits, ja cits ideju šeit.
Tas ir tikai atšķirīgs sintakse paužot tieši tādu pašu domu.
>> MARIA: Tieši tā.
Tagad mums ir mūsu trīskāršo operatoriem.
Tātad trīskāršu operatoriem ir Trīs parts-- nosacījumu,
kaut ko darīt, ja šis nosacījums ir patiess,
un tad kaut ko darīt ja šis nosacījums ir nepatiess.
Tātad jūs redzat, būtībā, sintakse, kas šeit.
Mums ir jautājuma zīme, un tad the-- ko mēs saucam šo?
DAVID Malan: Kols.
MARIA: Colon.
Paldies.
Piedodiet.
So aplūkosim mūsu piemēru redzēt, ja mēs varam padarīt sajūtu this--
class_num == 50.
Tātad, šeit mēs redzam mūsu Būla operators == kas salīdzina mainīgo class_num
līdz 50.
Tātad class_num veikalos veselam skaitlim.
Un, ja šī skaitlim vienāds 50, tad mēs esam
gatavojas glabāt "David Malan" iekšpusē stīgu profesors.
Ja klases numurs nav vienāds 50, "ne David Malan"
būs profesors.
>> DAVID Malan: Paldies.
Un tā tas šķiet līdzvērtīgs Ko jūs teiktu, pēc pirmā acu uzmetiena?
>> MARIA: Man šķiet, ka piemēram, ja-cits paziņojumus.
>> DAVID Malan: Jā.
Un patiesībā, tas ir sava veida par diezgan vienas čaulas,
tā sakot, lai īstenotu tieši loģika ja-cits
bet dara visu, ar vienu soli.
>> MARIA: Tieši tā.
Jā.
Tātad, ja-cits paziņojumi varētu aizņem daudz vietas.
Tie var būt pārāk garš kaut kas tik vienkāršs kā šis.
Tātad tas var būt ļoti īss un ļoti jauki.
Tāpēc tagad mēs ejam uz apskatot atkal un atkal izpildot kaut ko,
lai pārbaudītu priekšlikums nosacījums vairākas reizes
un pēc tam turpinot darīt kaut ko kamēr šis nosacījums ir patiess.
Tātad tas mūs noved labi uz, vienlaikus cilpas.
>> Pa kreisi, mums ir mūsu pirmais kamēr cilpa.
Tāpēc, kamēr kaut kas ir patiess, kaut ko darīt atkal un atkal.
Tāpēc pārliecinieties, lai paziņojuma, ka mūsu nosacījums šeit ir apstiprināts augšpusē.
Tā kā ar mūsu otro loop-- mēs saucam ka do-kamēr loop-- mēs kaut ko darīt,
tad mēs pārbaudīt nosacījumu.
Un, ja šis nosacījums joprojām ir taisnība,
mēs ejam atpakaļ un darīt lieta vēlreiz.
Tātad galvenā atšķirība ir, ja stāvoklis ir pārbaudīts.
Un kods nekad var būt izpildīts, ja nosacījums ir ne
taisnība ar kamēr cilpa.
Tā kā ar do-kamēr cilpa, mēs esam kodu
ka tiek vienmēr izpildīts vismaz vienu reizi.
Un tad, kamēr nosacījums joprojām ir taisnība,
mēs varam doties atpakaļ un atkārtot atkal iekšā.
Tātad, kāpēc jūs domājat, ka mēs varētu izmantot do-kamēr cilpa pār kamēr cilpa?
Tiesības.
Tātad, ja mēs gribam, lai ātri lietotājs kādu no ievades veida,
ja mēs vēlamies uzdot viņiem ievadīt savu vārdu,
mēs vēlamies, lai vismaz uzdot viņiem vienu reizi.
Un, ja viņi ieiet ka vārds, mēs neesam
gatavojas lūgt tos atkal jo mēs jau zinām.
Bet, ja tie neienāk savu vārdu, vai arī, ja tie
ievadiet kaut ko, kas ir acīmredzami nav vārds,
mēs joprojām vēlas turpināt lūdzot uz viņu vārda.
>> DAVID Malan: Un lekcijā mums bija viens kā šis ar iegūtu pozitīvu int
Piemēram, ja nekas nav pārbaudīt vispirms tāpēc, ka jums nav pat
gotten int.
Tāpēc mēs vēlamies darīt this-- iegūt int no user--
tad to pārbaudīt, iespējams, atkal un atkal un atkal.
>> MARIA: Tieši tā.
Par loops-- OK.
Par cilpas var ļaut mums darīt gandrīz tieši tas pats, kā arī.
Tas ir faktiski tieši tas pats.
Tātad tur nekas, ka jūs varat darīt ar uz cilpām
ka jūs nevarētu darīt ar, vienlaikus cilpas.
Bet cilpas var likties mazliet nedaudz sarežģītāka sintaktiski
jo viņiem ir trīs daļas iekšpusē, ko
bija pirms tikai nosacījums ar, vienlaikus cilpas.
Tātad pirmā daļa, ka jūs jūru, kreisās visvairāk, mums ir "int rūķi = 0."
Tātad, tas ir, ja mēs sāktu mūsu mainīgo.
>> Tad mums ir semikolu un "rūķi <7."
Tātad, tas ir, ja ārā nosacījums patiesībā ir.
Tātad tas ir tas, ko mēs būtu likts tikai uz brīdi loop--
"kamēr rūķi <7."
Lūk, kas iet tajā vidū mūsu cilpas.
Tātad "dwaves <7."
Un tad mūsu pēdējā daļa ir "rūķi ++" kas ir, ja mēs atjaunināt mūsu mainīgo.
Tik svarīgā lieta saprast, ir tas, ka šis
gatavojas iet cauri šis cilpu septiņas reizes un izpildīt septiņas reizes.
Tāpēc mums ir septiņi rūķi, un viņi visi
gatavojas teikt: "Es esmu šeit lai palīdzētu jums, Snow White "
tāpēc, ka viņi ir gatavi palīdzēt Sniegbaltīte.
>> Ar kamēr cilpas, mēs būtu darījuši inicializācijas un atjaunināšana
nav iekšā nosacījumu, atkal, bet vai nu pirms, vai iekšpusē kamēr cilpa
lai pārliecinātos, ka we-- jo mums vienmēr vajag tās daļas.
Tāpēc, lai pārliecinātos, ka mums ir viņiem, mēs esam vēl piebilda tos
gada, tikai ne iekšpusē iekavās.
>> DAVID Malan: Un tā tas izskatās like-- lekcijā, piemēram,
Es gandrīz vienmēr izmantot, piemēram, i un n un diezgan garlaicīgi mainīgie.
Izskatās, ka jūs varat izmantot vairāk gudri nosaukts mainīgos, too.
>> MARIA: Jā, tas tiešām ir ļoti jauks izmantot nedaudz vairāk aprakstošus mainīgos
jo īpaši, ja kāds cits ir lasījums jūsu code-- varbūt esat greiders
vai, ja jūs sadarbību ar somebody--
Jūs vēlaties pārliecināties, ka tie saprotu, ko jūs darāt.
>> LABI.
Tātad tas ir kaut kas ļoti funky-- cilpa iekšpusē cilpas.
Es nezinu, vai mēs esam redzējuši šo pirms.
Visticamāk ne.
Bet mēs faktiski var būt this-- tik cilpas vietā cilpas.
Tātad vai kāds vēlas varbūt staigāt man ar to, kas notiek šeit?
DAVID Malan: es ņemšu stab.
MARIA: Cool.
DAVID Malan: OK.
Tātad, spoiler-- mēs vēlamies, lai izdrukātu sīkumi kas ir apakšējā labajā stūrī
tur.
>> MARIA: Labais.
Jā jā.
>> DAVID Malan: Tātad mēs esam vienkārši nodot, ka paraugu produkciju tur.
Tāpēc es varu secināt no augšējais cilpa, kas jūs esat
atkārtojot pār rindas uz attālākajos cilpa, lai runāt.
Un jūs atkārtojot vairāk kolonnas ar visdziļākais cilpu.
Un intuitīvi, tas cerams jēga
jo pēc būtības Katru programma, mēs esam redzējuši
pirms, printf, kas ir funkcija mēs izmantojam, galu galā,
ir spēja drukāt sīkumi out būtībā pozīcijai.
Tāpat, kad jūs esat izvadīt jauna līnija, tur ir
nē divkāršojies atpakaļ un drukāšanas kaut ko augstāks ekrāna, vismaz
neizmantojat printf kā šis.
>> Un tā šajā sakarā, tas padara sajūta, ka attālākajos cilpa
Būtu atsaucoties uz rindām jo katram dota rinda,
jūs gatavojas vēlaties izdrukāt xxxxx, un pēc tam
pāriet uz nākamo rindu, xxxxx.
Tātad rindas nāk pirmās.
Un tad katrā rinda, jūs drukāt kolonnas.
Ja esat mēģinājuši to darīt to pretī, tas droši vien nav
iznākt kā jūs plānojat.
>> MARIA: Jā.
Mēs vienkārši nevarēja doties atpakaļ uz iepriekšējā rindā ar printf.
>> DAVID Malan: Un kas ir interesanti par šodienas tērzēšana par jomu,
patiesībā, ir tas, ka rinda ir int kas ir deklarēta augšējais cilpa.
Bet paziņo, ka tā joprojām ir iekšpusē, tā sakot,
cirtaini bikšturi, ka uzreiz sekot,
pat ja tas nav tehniski šajās cirtaini lencēm.
Tātad rinda ir joma, lai kopums koda fragmentu,
gan iekšpusē ārējais cilpas un iekšpusē iekšējais cilpas.
Bet savukārt, ja ir kolonna darbības joma?
Mainīgā kolonna?
Jā, tikai iekšpusē cilpas.
Un tas ir OK, jo mums nav piekļuves tā ārpus tās cirtaini lencēm.
Viss, kas mums jādara, ir drukāt no jauna line pašās beigās tur.
Tā, ka patiesībā ir OK.
>> Tātad tas ir sekas, kā tas izskatās, darīt trīs rindas un četras kolonnas.
>> MARIA: Labais.
Tātad vispirms mums iet cauri mūsu pirmajā rindā.
Un tikai mūsu pirmajā rindā, mēs darīt četras kolonnas iekšpusē pirmajā rindā.
Tātad mēs izdrukāt četrus krustiņus.
Un tad mēs varam iziet uz cilpas, jo mēs esam jau izdrukāti četri krustiņus.
Un mēs drukāt jaunu līniju.
Un tad mēs ejam cauri pats process vēl divas rindas
lai pavisam trīs.
>> DAVID Malan: Un tas ir vērts atzīmēt, tas ir tikai artefakts fontu, fakts
ka parauga izejas Šķiet, tik daudz garāks,
it kā tur ir vairāk rindas nekā kolonnām.
Bet tas ir tikai tāpēc, ka X ir augstāks nekā tas ir plašs.
Tas ir viss, kas notiek tur, plus atstarpēm starp rindām.
>> MARIA: Labais.
Cool.
DAVID Malan: Labi.
Tik ātri apskatīt problēmu noteikt vienu, ņemt kādi jautājumi, un tad atliek?
Viss kārtībā.
Tātad problēma noteikt vienu, tur ir trīs primārie uzdevumi, galu galā.
Bet vispirms, jūs atradīsiet ka problēma noteikti
specifikācija, kā ar Daudziem psets šoruden, gatavojas staigāt jums
caur pāris iesildīšanās vingrinājumi, norādīt tevi dažus resursus
ka jūs var vai ne esmu redzējis jau.
Piemēram, CS50 ir komplekts šorti,
kas ir īsi video, nevis pretēji, bet tas
Ir ļoti temats specific-- varbūt piecas minūtes,
10 minūtes garš uz cilpām vai par nosacījumiem vai uz algoritmiem
vai vēlāk vairāk uzlabotas tēmas, kā arī.
Un mēs parasti iegultu tie stājas problēmas
komplekti lai studenti ir resurss, ar kuru
pārskatīt materiālus, kas varētu būt jau nākt klajā lekcijas vai nodaļā.
Bet šādā veidā, tas ir vairāk vērsta un vairāk to rokai.
>> Mēs arī mēdz iegult problēmu nosaka lietas sauc walkthroughs.
Tātad gandrīz visi no piemēriem I do lekciju, uz skatuves šeit, mēs arī
ir nošauti uz kameru virzīt vairāk lēnāk,
vairāk intīmo walkthrough ar mani mans klēpjdators ar minētā kodeksa pozīcijai
lai klasē, mēs bieži nosmelt ar kaut ko vai kādu
būs izteikt ar atbildēt uz jautājumu.
Bet tas ne vienmēr izlietne jo ikvienam auditoriju.
Tātad, jūs atradīsiet kodu walkthroughs lielākajai daļai piemēru
ka mēs šeit lekcijā, lai jūs var staigāt pa to pie sava gaita
un rewind vai ātri uz priekšu vai izlaist pavisam, ja vēlaties.
>> Tur bieži vien daži iesildīšanās jautājumi,
lūgt jums veida pastiprināt šo materiālu
un pārliecinieties, ka jūs esat comfy pirms jūs turpināt ar pārējo PSET.
Un tad, protams, tur ir PSET pati.
Un viena no lietām mēs ļoti apzināti
darīt CS50 ir gandrīz katru neinteresanti vai intelektuāli neinteresanti
mehāniskās solis, kas Jums varētu būt sakars
ir gandrīz vienmēr ir ļoti labi dokumentēta.
Laika gaitā termina, mēs sāk uzdot vairāk retorisku jautājumu
tāpat atceros, kā to izdarīt, vai kas?
Bet vispār, jūs atradīsiet ka problēma komplekti iegūt jums
caur mehānikā par kaut ko tā, lai
interesanti, intelektuālā izaicinājumi galu galā pa kreisi, lai jums students.
>> Ar to teica, Zamyla, kuriem mēs tur atsaucoties šodien lekcijā,
ir viena no mūsu longtime darbinieku biedrs, kurš arī pieder walkthroughs
par īpašiem PSET problēmas, piemēram, Mario un mantkārīgs, lai gan ne ūdens šogad.
Un tas ir tiem, walkthroughs, ka viņa bieži
piedāvā dažus padomus un trikus, lai kā rīkoties, nekad stāsta jums
tieši to, ko darīt, bet rather-- tāpat kā nosacījums,
ja jūs will-- sniedzot jums vismaz Pāris ideju, lai tas ir atkarīgs no jums,
galu galā, lai izlemtu kā pieeja tiem.
>> MARIA: veida, piemēram, augsta līmeņa izpratne par loģiku, ko
mēs aicinām jūs darīt.
>> DAVID Malan: Tieši tā.
Un, patiesībā, Zamyla s walkthroughs ir domāti
atbildēt uz bieži uzdotais jautājums par to, kur
man sākās, jo īpaši, ja šīs garās specifikācijas
mazliet biedējošu, ņemot visu tekstu un attēlus, ka tie ir viņiem.
>> Tātad water.c, jūs atradīsiet pēc tam, kad esat pabeidzis to,
patiesībā salīdzinoši vienkārša.
Pilnīgi ir ķekars no jums gatavojas sprādziena
Jūsu galvas pret sienu cenšas lai noskaidrotu, kāpēc tas nav apkopojot
vai kāpēc tas nedarbojas pareizi.
Bet tad, kad esat pabeidzis ar to un pēc tam, kad esat
pavadīja kādu laiku cīnās ar kādu no bugs, kas jums varētu būt,
Jūs atradīsiet, ka tas ir ļoti īss programma.
To var izdarīt tikai daži rindas kods, no kuriem lielākā daļa
mēs esam redzējuši šeit lekcijā jau, ja jums apkopot pareizos celtniecības blokus.
>> Un kā mēs iesakām šeit, tas ir gatavojas lūgt
Jums, lai precizētu, cik minūtes kāds ir dušā pilsētiņā.
Mēs precizēt problēmu noteikt plūsmas ātrumu ūdens
jo, piemēram, zemas plūsmas dušu galva, līdzīgi Seinfeld klipu
mēs redzējām vakar vai pretējs to.
Un tad jums vienkārši ir darīt mazliet par matemātiku,
really-- aritmētiskās izmantojot C pateikt mums, cik daudz, apmēram, ūdens pudeles
ir tas, ka līdzvērtīgs, ja mēs esam lietojat n-minūšu duša.
>> Tagad, mario.c, tas notiek būt nedaudz ilgāks programma.
Tas vēl nebūs tik ilgi.
Tikai dažas rindiņas garākas nekā water.c.
Bet tas būs iespēja lai atjaunotu veco skolu Mario
piramīda no Super Mario Brothers vai daži turpmākus.
Tas nav gatavojas izskatās kā prettier vai tik krāsains, kā ir tur.
Mēs esam tikai gatavojas izmantot maz hashtags kā mēs esam šeit uz ekrāna
izmantojot ASCII tekstu.
Bet tas būs aptuveni tāda pati ideja.
Un tas notiek, lai būt izmantot ka pēc pirmā acu uzmetiena
šķiet diezgan simple-- tikko izdrukāt vienkāršu piramīdu.
Bet tur ir pāris īpašības šeit ir interesanti.
Ievērojiet, ka rightmost malas piramīda tiešām ir platums no divām.
Tātad tur ir divas vienāda augstums kolonnas, kas
padara tas prasa nedaudz mazliet domas padarīt
pārliecināts, ka jūs saņemsiet, ka tieši labi, kā nevis tikai perfekti leņķveida
line.
Tātad tas ir mazliet stūra lietas bet atbilst faktisko spēle.
>> Un tas ir arī nav skaidrs sākumā skatiens kā drukāt balto laukumu.
Tātad, kad es apskatīt paraugs izejas here--
un tas ir arī tas spec-- veida izskatās kā taisnstūris,
bet pa diagonāli no taisnstūris ir nocirsta,
un tas ir tikai baltos plankumus, lai runāt.
Un tāpēc bieži uzdotiem Jautājums šeit ir vienmēr, labi,
kā es varu pārvietot hashtags vairāk pa labi?
Vai, kā es varu drukāt tukšu telpu?
Un tas ir faktiski vieglāk nekā lielākā daļa studentu domā.
Tiesības?
Jūs varat tuvināt to vizuāli, tikai trāpot starpdevējs vienu vai divas reizes
vai trīs reizes.
>> Un tā, lai gan ar printf mēs gandrīz vienmēr izdrukāt virkni vai int
vai vārdu, piemēram, "hello, pasaule "vai sērija vārdiem,
Jūs varat arī vienkārši drukāt quote, telpa, likt pēdiņas beigās.
Un tas tiešām dos tu balta telpa tur.
Lai saglabātu, ka prātā un nav overthink šo.
Jums tiešām ir izlemt rindu pa rindai pēc kārtas,
nevis pretēji jūsu piemēram, Pirms brīža, cik daudzi no tiem
kolonnas jābūt baltos plankumus un cik daudzi no viņiem būtu hashtags.
Tas prasīs mazliet laika, bet tas ir galu galā loģika puzzle veidu.
>> MARIA: Jā.
Bet loģika iet rindu pa rindai būs ļoti noderīga šeit.
DAVID Malan: Jā.
Es domāju, ka koda paraugu jums gave-- pat lai gan tā nebija pabeigta programma.
Jums joprojām ir nepieciešams int un galvenais neesošu un # Ietvert stdio.h,
daudz stuff no lekciju.
Bet celtniecības bloki šķiet, ir tur.
Un tad visbeidzot, ir kaut kas nedaudz vairāk algoritmiskās.
Tātad izrādās, ka jebkurā laikā jūs iedziļināties CVS vai jebkurā ērtības veikalā
un kāds rokās, jūs ne kases rēķinus vai monētas pārmaiņas,
izrādās, ka viņi, cilvēki, ir vai nav viņi zina to vai ne,
ir iespējams, izmantojot to, kas ir sauc mantkārīgs algoritms,
saskaņā ar kuru, ja jūs esat parādā, proti, 21 $ in pārmaiņām, jo ​​kāda iemesla dēļ
esat iegādājies kaut ko ļoti lēti ar ļoti lielu rēķinu CVS,
tas būtu tiešām kaitinošas, ja kasieris deva jums 21 singlus vai, vēl sliktāk
tomēr, visai daudz monētu.
Drīzāk kāds saprātīgs cilvēks iespējams, gatavojas darīt, ir viņi dodas
greifers $ 20 un tad $ 1-rēķinu, un puses, jūs tikai divus rēķinus šajā lietā.
MARIA: Tātad viņi vēlas, lai samazinātu izmaiņas, ka tie dod atpakaļ uz jums.
DAVID Malan: Tieši tā.
Un pats nodarbojas ar monētām, kā arī.
Ja jūs esat parādā, teiksim, $ 0,50 cerams, jūs nevēlaties 50 pennies.
Jūs vēlaties, nevis divas ceturtdaļas, piemēram.
Tagad, tas nav jāuzņemas ka kasieris ir
pietiekami katra nomināla ka viņš vai viņa varētu vēlēties, lai dotu jums.
Bet mums ļauj uzņemties tik daudz problēmu.
Un mērķis, galu galā, ir īstenot C kodu mantkārīgs algoritmu.
Tā lietotājam ir atļauts rakstīt, cik daudz
mainīt viņš vai viņa ir parādā ar dolāriem un centiem, sava veida peldošā punkta
vērtība iespējams.
Un tad jums ir darīt to math un izrēķināt algoritmiski, labi,
cik daudz monētu es varu dot Jūs minimāli, lai dotu jums
tieši tā summa pārmaiņām.
Bet tur būs dažas grūts daļas šeit, vai ne?
Tāpat tur ir viss neprecizitāte jautājums.
MARIA: Tieši tā.
Tātad peldošā komata vērtībām ir neprecizitātes.
Vai mēs runājam par šo lekciju šodien?
>> DAVID Malan: Mēs darīja pēdējo reizi lekciju.
Mēs runājām par neprecizitāti.
Un jūs nevēlaties, lai apkrāptu lietotāju par to, cik daudz pārmaiņu viņš vai viņa ir parādā.
Un tā walkthrough, jo problēma noteikti parametri,
pārdomāt, galu galā, kā to kā jūs varat mazināt tās neprecizitāte
kļūdas, iespējams.
Tas ir iespējams izvairīties, protams, par izejvielas mēs runājam.
Un, patiesībā, pennies-- varbūt mēs piekāpjas Zamyla,
Es domāju, par trikiem tur.
Tātad galu galā, jūs atradīsiet progresija problēmu šonedēļ,
no kuriem pirmais ir diezgan mazs, pēc tam vidējā, tad nedaudz lielāks.
Bet visi no viņiem izmanto ēku bloki no pagājušā nedēļā,
No šīs supersection, Problēma noteikti parametri
Jums rada neskaitāmas resursiem.
Bet tomēr, ja vispār cīnās, it īpaši starp tiem mazāk apmierināti
bez iepriekšējas fona, ieradušies darba laika
Pirmdien un otrdien un Trešdiena un ceturtdiena.
Iet uz CS50 Apspriest via Kurss mājas lapā,
caur kuru jūs varat tērzēt ar darbiniekiem un klasesbiedriem.
>> Bet galu galā, es domāju, ka Labākais padoms ir vienkārši sākt agri.
Tas nav sava veida klase, kas jums Būtu sākot psets trešdien
nakts, vai sliktāk ceturtdienas vakarā.
>> MARIA: Mans labākais padoms ir to ir sācis pirmdien.
DAVID Malan: pirmdien.
Tātad, ja jums nav sākusies already-- nē.
Bet, pat ja ne Pirmdiena, tad otrdien.
Jo agrāk, jo labāk.
Un tas ir iemesls, Protams, ir tik daudz vēlu dienās
lai dotu jums mazliet psiholoģiskais spiediens
sākt agrāk, bet tomēr ļaut lietas paslīdēt kad lietas nepieciešams ilgāks laiks
nekā jūs sagaida.
>> MARIA: Un jūs vēlaties, lai izmantotu darba laiks, cik vien varat, too.
>> DAVID Malan: Kādi jautājumi?
Viss kārtībā.
Nu, kāpēc nav mēs atlikt šeit?