[Ag seinm ceoil] DOUG LLOYD: Ceart go. De chineál ar ábhar aisteach, ceart? Magic uimhreacha. Cad DOE i gceist aige nuair atá sé ag caint faoi uimhreacha draíochta? Bhuel, tá roinnt de na cláir go atá againn scríofa i CS50 go dtí seo go raibh roinnt aisteach líon de chineál ar thrown iontu. B'fhéidir ar chúiseanna nach bhfuil againn go hiomlán a thuiscint ceart anois. Mar shampla, i an fhadhb Mario, táimid ag tSáile an airde de na pirimide ag 23. Dúirt muid go sainráite tú Ní féidir dul níos airde ná 23. Ach cad a dhéanann 23 chiallaíonn? Bhuel, má léann tú an spec go cúramach, tá tú D'fhéadfadh a bheith le feiceáil go bhfuil an cúis dul thar muid é ag 23 Is mar gheall ar an airde caighdeánach d'fhuinneog teirminéil 24. Agus mar sin má táimid tar éis an pirimid a bheith níos airde ná sin, d'fhéadfadh sé a dhéanamh an rud aisteach i gcás ina ritheann sé as an scáileán. Agus tá a fhios agat, cad a dhéanann a chiallaíonn i gcomhthéacs, ceart? An bhfuil an bhrí 23 follasach láithreach go duine éigin a fhéachann ar do chlár agus b'fhéidir go bhfuil difriúil fuinneog críochfort méid? Is dócha nach bhfuil. Dealraíonn sé cosúil le, ceart go leor. Bhuel, cén fáth go bhfuil sé ach níos lú ná 23? Go ginearálta, tá sé de chineál le droch-nós i ndáiríre a tairisigh scríobh isteach i do cód. Lena linn sin, nuair a dhéanann tú i ndáiríre scríobh tairiseach isteach i do cód, tá sé dá dtagraítear uaireanta mar úsáid a bhaint as uimhreacha draíochta, a bhfuil rud éigin ba mhaith linn go ginearálta chun iarracht a sheachaint. Mar shampla, a ligean ar ghlacadh le breathnú ag an fheidhm simplí anseo. Is léir níl aon sonraí cineál i C a dtugtar chárta nó deic. Mar sin, ach marc le liom. Tá sé beagán de pseudocode measctha i anseo. Is é seo feidhm a dtugtar déileáil cárta go cosúil Bíonn ar deic mar paraiméadar, agus Beidh aschur dom cárta amháin. Agus tá mé ag déanamh rud éigin anseo i gcás mé bhfuil lúb a ritheann 0-52, agus déileáil mé cárta. Bhuel, tá muid fuair draíochta uimhir i anseo, ceart. An bhfuil tú a fheiceáil cad é an uimhir draíochta? Nó níos tábhachtaí fós, an bhfuil tú féach cad é an fhadhb anseo? Go háirithe más rud é seo ach feidhm amháin ina chomhad féin i fillteán ina bhfuil a bunch de éagsúla comhaid, gach ceann acu dhéanann rud eile le deic cártaí. B'fhéidir Shuffle sé iad, nó déileálann lámh de cúig cártaí in ionad an cárta amháin. An bhfuil tú a fheiceáil cad é an D'fhéadfadh an fhadhb a bheith anseo? An bhfeiceann tú an uimhir draíochta Tá mé ghann i an cód? Tá sé 52, ceart. Cosúil, intuitively tá a fhios agat is dócha, ceart go leor. Cosúil le deic caighdeánach Tá Cártaí 52 cártaí. Ach i ár gclár, tá sé ach de chineál ar snámh thart i ann. Tá sé cosúil le fad ar tobann níl 52. Bealach amháin a réiteach seo Tá fadhb é seo a dhéanamh. Tá muid an-sonrach anois ag glaoch amach an méid deic mar 52. Tugann sé sé beagán níos iomasach rud a chiallaíonn nuair sa do lúb ina dhiaidh sin ar a rá againn ansin, i bhfuil níos lú ná méid deic. Dealraíonn sé ach níos fearr ná a rá 52. Anois hionann sin an fhadhb a dheisiú iarbhír. A dhéanann sé a thabhairt ar roinnt siombalach rud a chiallaíonn go dtí an tairiseach. Ach a dhéanann sé de chineál ar iarbhír a thabhairt isteach fadhb eile ní a d'fhéadfadh a bheith le feiceáil láithreach. Fiú más rud é seo athróg ndearbhaítear globally-- a dhéanann tú a thabhairt chun cuimhne cad é Ciallaíonn nuair dearbhaímid athróg ar fud an domhain i gcoinne go háitiúil? Fiú má dearbhaímid athróg ar fud an domhain, cad má níl fheidhm eile i ár sraith feidhmeanna go déileáil le ionramháil cárta go bhfuil athruithe neamhaireach méid deic, nó méadaíonn sé dó 1 nó laghduithe sé faoi 1. D'fhéadfadh sin litrithe dtrioblóid, ceart? Go háirithe má tá muid ag déileáil le sraith cártaí shuffling an deic iomlán ina ag teastáil. Má tá méid an deic laghdú ag 1, mar shampla, go 51, nach bhfuil muid ag shuffling i ndáiríre na cártaí, b'fhéidir. Táimid ag fágáil ar cheann acu amach. Agus d'fhéadfadh an luach a bheith b'fhéidir tuartha nó teacht i dtír ag aisteoir dona. Soláthraíonn C cad atá ar a dtugtar treoir réamhphróiseálaí, a ar a dtugtar freisin le haghaidh macra ag cruthú tairisigh siombalach. Agus go deimhin, tá tú cheana féin le feiceáil treoir réamhphróiseálaí, fiú amháin más rud é nach bhfuil tú ag éisteacht é ar a dtugtar go bhfuil #include. Tá sé sampla eile macra nó treoir réamhphróiseálaí. An bealach a chruthú tairisigh siombalach, nó a thugann ainm a tairiseach ionas go mbeidh sé níos mó a chiallaíonn go bhfuil, mar seo a leanas. #define, ainm, athsholáthair. Tá sé an-tábhachtach go leataobh anseo i ndáiríre tapaidh. Ná cuir Leathstad ag an deireadh do #defines. Mar sin tá sé #define, ainm, athsholáthair. Nuair a bhíonn do chlár thiomsú, cad a tharlaíonn i ndáiríre Is é an tiomsaitheoir más rud dul chun dul tríd do chód agus in ionad ngach cás de an focal "ainm" le cibé leat a chur mar athsholáthair. Dul leis sin, más rud é go #include saghas de cosúil leis chóipeáil agus a ghreamú, ansin tá #define saghas den chineál céanna a aimsiú agus a athsholáthar, má tá tú ag úsáid riamh go bhfuil gné i clár próiseála focal, mar shampla. Mar sin, mar shampla, má mé #define pi mar 3.14159265, má tá tú níos fearr matamaiticiúil claonta agus tú go tobann féach 3.14159265 ag eitilt timpeall i do chód, is dócha a fhios agat é a ag caint faoi pi. Ach b'fhéidir gur féidir linn a thabhairt dó beag brí níos siombalach. Agus is féidir linn a rá ina ionad #define pi mar sin mouthful uimhreacha go Níl mé ag dul a choinneáil léamh thar agus os cionn. Agus cad atá ar siúl le tarlú ansin ag Is thiomsú am nuair a bhíonn an clár thiomsú, an chéad rud a Is a tharlóidh beidh sé dul trí agus beidh sé in ionad gach uair Feiceann sé caipiteal P, caipiteal I, beidh sé ina ionad literally sé le 3.14 agus mar sin de, ionas go mbeidh tú Ní gá a chlóscríobh sé gach am agus do chlár fós Tá an fheidhmiúlacht go bhfuil tú ag súil leis, toisc go bhfuil tú ag obair le ionramháil, a iolrú, roinnt, is cuma cad é ag pi. Níl tú teoranta do seo a chur in ionad uimhreacha amháin. Mar shampla, raibh mé in ann #define cúrsa mar an CS50 teaghrán. Sa chás seo, nuair a bheidh an Tá clár i dtoll a chéile, Beidh #define dul tríd an cód, in áit gach uair Feiceann sé "cúrsa" leis an CS50 teaghrán. Beidh tú faoi deara anseo freisin go bhfuil mé go minic #define gach mo sainithe siombalach tairisigh, mar a déarfá, i gcónaí i ngach caipíní. Tá sé ina choinbhinsiún. Nach bhfuil sé ag teastáil. An chúis go ginearálta go mbeidh daoine a úsáid gach príomhchathracha nuair a bhíonn siad ag #defining bhfuil ach go mbeadh sé soiléir i ndáiríre go an ghné ar leith de mo cód Is tairiseach sainithe. Má bhí sé litreacha beaga, tá sé indéanta go d'fhéadfadh sé a bheith ar dhaoine eatarthu le athróg. Agus sin is dócha Ní rud maith a dhéanamh. Mar sin seo go háirithe Tá réiteach i bhfad níos fearr ná ceachtar de na cinn roimhe seo. Má mé an chéad #define méid deic 52, ansin anois mo úsáid a bhaint as 52, nó méid deic anseo, tá a lán níos iomasach agus a lán níos sábháilte. Ní féidir leat a ionramháil ar tairiseach. Ní féidir leat a rá 52 móide móide. Ní sin dul a thiontú go 53. Ní féidir leat athrú 52 chun rud éigin. Is féidir leat athrú athróg a bhfuil a luach é 52, a bhí an chéad shocrú a bhí againn roimh. Agus d'fhéadfaí tú a mhéadú go athróg go 53. Ach ní féidir leat a rá 52 móide móide agus tá go cas go tobann 52 i 53. 52 Tá i gcónaí 52. Agus mar sin ní féidir leat athrú gan chuimhneamh Méid deic anseo ag ionramháil air, Taobh eile maith Tá éifeacht an cé go bhfuil tú ar an eolas nach gach tír ar fud an domhain úsáid ar deic na cártaí de mhéid 52? Mar shampla, tá sé i ndáiríre coitianta i An Ghearmáin a bhaint as méid deic de 32, i gcás ina stiallacha siad amach roinnt de na cártaí luach níos ísle. Agus sa chás seo, mé ag iarraidh a port mo sraith feidhmeanna a dhéileálann le ionramháil cárta go dtí an Ghearmáin. Raibh mé ar an gcéad dul táimid ag Léirigh, ag dul agus ionad gach cás de 52 i mo cód le 32. Ach anseo, má #define mé méid deic mar 32 ag an barr an-an mo cód, más gá dom a athrú, is féidir liom ach dul agus athrú go rud amháin. Recompile mo cód, agus gach ceann de tobann propagates sé trí. Go deimhin, is féidir linn a athrú deic Méid haon luach ba mhaith linn. An féidir liom spéis agat i cluiche ar pickup méid deic? Tá mé Doug Lloyd. Agus tá sé seo CS50.