1 00:00:00,000 --> 00:00:02,350 >> [Ag seinm ceoil] 2 00:00:02,350 --> 00:00:05,444 3 00:00:05,444 --> 00:00:06,360 DOUG LLOYD: Ceart go. 4 00:00:06,360 --> 00:00:07,770 De chineál ar ábhar aisteach, ceart? 5 00:00:07,770 --> 00:00:09,050 Magic uimhreacha. 6 00:00:09,050 --> 00:00:12,012 Cad DOE i gceist aige nuair atá sé ag caint faoi uimhreacha draíochta? 7 00:00:12,012 --> 00:00:14,220 Bhuel, tá roinnt de na cláir go atá againn scríofa i CS50 8 00:00:14,220 --> 00:00:16,660 go dtí seo go raibh roinnt aisteach líon de chineál ar thrown iontu. 9 00:00:16,660 --> 00:00:19,680 B'fhéidir ar chúiseanna nach bhfuil againn go hiomlán a thuiscint ceart anois. 10 00:00:19,680 --> 00:00:23,950 Mar shampla, i an fhadhb Mario, táimid ag tSáile an airde de na pirimide ag 23. 11 00:00:23,950 --> 00:00:26,880 Dúirt muid go sainráite tú Ní féidir dul níos airde ná 23. 12 00:00:26,880 --> 00:00:28,702 >> Ach cad a dhéanann 23 chiallaíonn? 13 00:00:28,702 --> 00:00:30,410 Bhuel, má léann tú an spec go cúramach, tá tú 14 00:00:30,410 --> 00:00:32,493 D'fhéadfadh a bheith le feiceáil go bhfuil an cúis dul thar muid é ag 23 15 00:00:32,493 --> 00:00:36,160 Is mar gheall ar an airde caighdeánach d'fhuinneog teirminéil 24. 16 00:00:36,160 --> 00:00:38,860 Agus mar sin má táimid tar éis an pirimid a bheith níos airde ná sin, 17 00:00:38,860 --> 00:00:41,290 d'fhéadfadh sé a dhéanamh an rud aisteach i gcás ina ritheann sé as an scáileán. 18 00:00:41,290 --> 00:00:45,140 Agus tá a fhios agat, cad a dhéanann a chiallaíonn i gcomhthéacs, ceart? 19 00:00:45,140 --> 00:00:48,880 >> An bhfuil an bhrí 23 follasach láithreach go duine éigin a fhéachann ar do chlár 20 00:00:48,880 --> 00:00:51,550 agus b'fhéidir go bhfuil difriúil fuinneog críochfort méid? 21 00:00:51,550 --> 00:00:52,330 Is dócha nach bhfuil. 22 00:00:52,330 --> 00:00:53,080 Dealraíonn sé cosúil le, ceart go leor. 23 00:00:53,080 --> 00:00:55,005 Bhuel, cén fáth go bhfuil sé ach níos lú ná 23? 24 00:00:55,005 --> 00:00:56,880 Go ginearálta, tá sé de chineál le droch-nós i ndáiríre 25 00:00:56,880 --> 00:00:58,940 a tairisigh scríobh isteach i do cód. 26 00:00:58,940 --> 00:01:02,190 Lena linn sin, nuair a dhéanann tú i ndáiríre scríobh tairiseach isteach i do cód, 27 00:01:02,190 --> 00:01:05,630 tá sé dá dtagraítear uaireanta mar úsáid a bhaint as uimhreacha draíochta, a bhfuil rud éigin 28 00:01:05,630 --> 00:01:08,030 ba mhaith linn go ginearálta chun iarracht a sheachaint. 29 00:01:08,030 --> 00:01:12,830 >> Mar shampla, a ligean ar ghlacadh le breathnú ag an fheidhm simplí anseo. 30 00:01:12,830 --> 00:01:15,726 Is léir níl aon sonraí cineál i C a dtugtar chárta nó deic. 31 00:01:15,726 --> 00:01:16,600 Mar sin, ach marc le liom. 32 00:01:16,600 --> 00:01:18,910 Tá sé beagán de pseudocode measctha i anseo. 33 00:01:18,910 --> 00:01:21,050 Is é seo feidhm a dtugtar déileáil cárta go cosúil 34 00:01:21,050 --> 00:01:26,570 Bíonn ar deic mar paraiméadar, agus Beidh aschur dom cárta amháin. 35 00:01:26,570 --> 00:01:30,990 >> Agus tá mé ag déanamh rud éigin anseo i gcás mé bhfuil lúb a ritheann 0-52, 36 00:01:30,990 --> 00:01:33,394 agus déileáil mé cárta. 37 00:01:33,394 --> 00:01:35,310 Bhuel, tá muid fuair draíochta uimhir i anseo, ceart. 38 00:01:35,310 --> 00:01:38,790 An bhfuil tú a fheiceáil cad é an uimhir draíochta? 39 00:01:38,790 --> 00:01:42,280 Nó níos tábhachtaí fós, an bhfuil tú féach cad é an fhadhb anseo? 40 00:01:42,280 --> 00:01:44,310 Go háirithe más rud é seo ach feidhm amháin 41 00:01:44,310 --> 00:01:48,030 ina chomhad féin i fillteán ina bhfuil 42 00:01:48,030 --> 00:01:49,970 a bunch de éagsúla comhaid, gach ceann acu 43 00:01:49,970 --> 00:01:51,670 dhéanann rud eile le deic cártaí. 44 00:01:51,670 --> 00:01:57,310 B'fhéidir Shuffle sé iad, nó déileálann lámh de cúig cártaí in ionad an cárta amháin. 45 00:01:57,310 --> 00:01:59,420 >> An bhfuil tú a fheiceáil cad é an D'fhéadfadh an fhadhb a bheith anseo? 46 00:01:59,420 --> 00:02:03,220 An bhfeiceann tú an uimhir draíochta Tá mé ghann i an cód? 47 00:02:03,220 --> 00:02:04,390 Tá sé 52, ceart. 48 00:02:04,390 --> 00:02:06,440 >> Cosúil, intuitively tá a fhios agat is dócha, ceart go leor. 49 00:02:06,440 --> 00:02:09,740 Cosúil le deic caighdeánach Tá Cártaí 52 cártaí. 50 00:02:09,740 --> 00:02:12,570 Ach i ár gclár, tá sé ach de chineál ar snámh thart i ann. 51 00:02:12,570 --> 00:02:15,280 Tá sé cosúil le fad ar tobann níl 52. 52 00:02:15,280 --> 00:02:18,290 >> Bealach amháin a réiteach seo Tá fadhb é seo a dhéanamh. 53 00:02:18,290 --> 00:02:22,724 Tá muid an-sonrach anois ag glaoch amach an méid deic mar 52. 54 00:02:22,724 --> 00:02:25,390 Tugann sé sé beagán níos iomasach rud a chiallaíonn nuair sa do lúb 55 00:02:25,390 --> 00:02:28,650 ina dhiaidh sin ar a rá againn ansin, i bhfuil níos lú ná méid deic. 56 00:02:28,650 --> 00:02:32,666 Dealraíonn sé ach níos fearr ná a rá 52. 57 00:02:32,666 --> 00:02:34,290 Anois hionann sin an fhadhb a dheisiú iarbhír. 58 00:02:34,290 --> 00:02:38,460 A dhéanann sé a thabhairt ar roinnt siombalach rud a chiallaíonn go dtí an tairiseach. 59 00:02:38,460 --> 00:02:40,820 Ach a dhéanann sé de chineál ar iarbhír a thabhairt isteach fadhb eile 60 00:02:40,820 --> 00:02:43,770 ní a d'fhéadfadh a bheith le feiceáil láithreach. 61 00:02:43,770 --> 00:02:45,859 Fiú más rud é seo athróg ndearbhaítear globally-- 62 00:02:45,859 --> 00:02:47,650 a dhéanann tú a thabhairt chun cuimhne cad é Ciallaíonn nuair dearbhaímid 63 00:02:47,650 --> 00:02:50,500 athróg ar fud an domhain i gcoinne go háitiúil? 64 00:02:50,500 --> 00:02:53,340 Fiú má dearbhaímid athróg ar fud an domhain, cad má níl 65 00:02:53,340 --> 00:02:55,500 fheidhm eile i ár sraith feidhmeanna 66 00:02:55,500 --> 00:02:59,750 go déileáil le ionramháil cárta go bhfuil athruithe neamhaireach méid deic, 67 00:02:59,750 --> 00:03:02,727 nó méadaíonn sé dó 1 nó laghduithe sé faoi 1. 68 00:03:02,727 --> 00:03:04,060 D'fhéadfadh sin litrithe dtrioblóid, ceart? 69 00:03:04,060 --> 00:03:08,261 Go háirithe má tá muid ag déileáil le sraith cártaí shuffling an deic iomlán ina 70 00:03:08,261 --> 00:03:08,760 ag teastáil. 71 00:03:08,760 --> 00:03:12,804 Má tá méid an deic laghdú ag 1, mar shampla, go 51, 72 00:03:12,804 --> 00:03:14,970 nach bhfuil muid ag shuffling i ndáiríre na cártaí, b'fhéidir. 73 00:03:14,970 --> 00:03:16,500 Táimid ag fágáil ar cheann acu amach. 74 00:03:16,500 --> 00:03:21,680 Agus d'fhéadfadh an luach a bheith b'fhéidir tuartha nó teacht i dtír ag aisteoir dona. 75 00:03:21,680 --> 00:03:24,920 >> Soláthraíonn C cad atá ar a dtugtar treoir réamhphróiseálaí, a 76 00:03:24,920 --> 00:03:27,764 ar a dtugtar freisin le haghaidh macra ag cruthú tairisigh siombalach. 77 00:03:27,764 --> 00:03:30,180 Agus go deimhin, tá tú cheana féin le feiceáil treoir réamhphróiseálaí, 78 00:03:30,180 --> 00:03:32,916 fiú amháin más rud é nach bhfuil tú ag éisteacht é ar a dtugtar go bhfuil #include. 79 00:03:32,916 --> 00:03:37,150 Tá sé sampla eile macra nó treoir réamhphróiseálaí. 80 00:03:37,150 --> 00:03:41,290 >> An bealach a chruthú tairisigh siombalach, nó a thugann ainm a tairiseach 81 00:03:41,290 --> 00:03:43,740 ionas go mbeidh sé níos mó a chiallaíonn go bhfuil, mar seo a leanas. 82 00:03:43,740 --> 00:03:47,030 #define, ainm, athsholáthair. 83 00:03:47,030 --> 00:03:49,140 Tá sé an-tábhachtach go leataobh anseo i ndáiríre tapaidh. 84 00:03:49,140 --> 00:03:54,180 Ná cuir Leathstad ag an deireadh do #defines. 85 00:03:54,180 --> 00:03:57,310 Mar sin tá sé #define, ainm, athsholáthair. 86 00:03:57,310 --> 00:03:59,540 >> Nuair a bhíonn do chlár thiomsú, cad a tharlaíonn i ndáiríre 87 00:03:59,540 --> 00:04:01,740 Is é an tiomsaitheoir más rud dul chun dul tríd do chód 88 00:04:01,740 --> 00:04:06,770 agus in ionad ngach cás de an focal "ainm" le cibé leat 89 00:04:06,770 --> 00:04:08,860 a chur mar athsholáthair. 90 00:04:08,860 --> 00:04:13,060 Dul leis sin, más rud é go #include saghas de cosúil leis chóipeáil agus a ghreamú, 91 00:04:13,060 --> 00:04:15,700 ansin tá #define saghas den chineál céanna a aimsiú agus a athsholáthar, 92 00:04:15,700 --> 00:04:19,180 má tá tú ag úsáid riamh go bhfuil gné i clár próiseála focal, mar shampla. 93 00:04:19,180 --> 00:04:26,345 >> Mar sin, mar shampla, má mé #define pi mar 3.14159265, 94 00:04:26,345 --> 00:04:28,720 má tá tú níos fearr matamaiticiúil claonta agus tú go tobann 95 00:04:28,720 --> 00:04:31,640 féach 3.14159265 ag eitilt timpeall i do chód, 96 00:04:31,640 --> 00:04:33,517 is dócha a fhios agat é a ag caint faoi pi. 97 00:04:33,517 --> 00:04:35,850 Ach b'fhéidir gur féidir linn a thabhairt dó beag brí níos siombalach. 98 00:04:35,850 --> 00:04:39,850 Agus is féidir linn a rá ina ionad #define pi mar sin mouthful uimhreacha 99 00:04:39,850 --> 00:04:42,110 go Níl mé ag dul a choinneáil léamh thar agus os cionn. 100 00:04:42,110 --> 00:04:45,560 >> Agus cad atá ar siúl le tarlú ansin ag Is thiomsú am nuair a bhíonn an clár 101 00:04:45,560 --> 00:04:48,530 thiomsú, an chéad rud a Is a tharlóidh beidh sé dul trí 102 00:04:48,530 --> 00:04:51,520 agus beidh sé in ionad gach uair Feiceann sé caipiteal P, caipiteal I, 103 00:04:51,520 --> 00:04:55,610 beidh sé ina ionad literally sé le 3.14 agus mar sin de, ionas go mbeidh tú 104 00:04:55,610 --> 00:04:58,090 Ní gá a chlóscríobh sé gach am agus do chlár fós 105 00:04:58,090 --> 00:05:00,631 Tá an fheidhmiúlacht go bhfuil tú ag súil leis, toisc go bhfuil tú ag obair 106 00:05:00,631 --> 00:05:05,090 le ionramháil, a iolrú, roinnt, is cuma cad é ag pi. 107 00:05:05,090 --> 00:05:08,230 >> Níl tú teoranta do seo a chur in ionad uimhreacha amháin. 108 00:05:08,230 --> 00:05:12,279 Mar shampla, raibh mé in ann #define cúrsa mar an CS50 teaghrán. 109 00:05:12,279 --> 00:05:14,070 Sa chás seo, nuair a bheidh an Tá clár i dtoll a chéile, 110 00:05:14,070 --> 00:05:16,236 Beidh #define dul tríd an cód, in áit gach uair 111 00:05:16,236 --> 00:05:19,900 Feiceann sé "cúrsa" leis an CS50 teaghrán. 112 00:05:19,900 --> 00:05:21,720 >> Beidh tú faoi deara anseo freisin go bhfuil mé go minic 113 00:05:21,720 --> 00:05:26,090 #define gach mo sainithe siombalach tairisigh, mar a déarfá, 114 00:05:26,090 --> 00:05:28,130 i gcónaí i ngach caipíní. 115 00:05:28,130 --> 00:05:28,960 Tá sé ina choinbhinsiún. 116 00:05:28,960 --> 00:05:30,170 Nach bhfuil sé ag teastáil. 117 00:05:30,170 --> 00:05:33,900 An chúis go ginearálta go mbeidh daoine a úsáid gach príomhchathracha nuair a bhíonn siad ag #defining 118 00:05:33,900 --> 00:05:37,590 bhfuil ach go mbeadh sé soiléir i ndáiríre go an ghné ar leith de mo cód 119 00:05:37,590 --> 00:05:38,820 Is tairiseach sainithe. 120 00:05:38,820 --> 00:05:43,730 Má bhí sé litreacha beaga, tá sé indéanta go d'fhéadfadh sé a bheith ar dhaoine eatarthu le athróg. 121 00:05:43,730 --> 00:05:46,120 Agus sin is dócha Ní rud maith a dhéanamh. 122 00:05:46,120 --> 00:05:48,910 >> Mar sin seo go háirithe Tá réiteach i bhfad níos fearr 123 00:05:48,910 --> 00:05:50,550 ná ceachtar de na cinn roimhe seo. 124 00:05:50,550 --> 00:05:59,950 Má mé an chéad #define méid deic 52, ansin anois mo úsáid a bhaint as 52, nó méid deic anseo, 125 00:05:59,950 --> 00:06:01,850 tá a lán níos iomasach agus a lán níos sábháilte. 126 00:06:01,850 --> 00:06:03,280 Ní féidir leat a ionramháil ar tairiseach. 127 00:06:03,280 --> 00:06:05,259 Ní féidir leat a rá 52 móide móide. 128 00:06:05,259 --> 00:06:06,800 Ní sin dul a thiontú go 53. 129 00:06:06,800 --> 00:06:09,390 Ní féidir leat athrú 52 chun rud éigin. 130 00:06:09,390 --> 00:06:12,470 >> Is féidir leat athrú athróg a bhfuil a luach é 52, 131 00:06:12,470 --> 00:06:14,870 a bhí an chéad shocrú a bhí againn roimh. 132 00:06:14,870 --> 00:06:17,000 Agus d'fhéadfaí tú a mhéadú go athróg go 53. 133 00:06:17,000 --> 00:06:21,100 Ach ní féidir leat a rá 52 móide móide agus tá go cas go tobann 52 i 53. 134 00:06:21,100 --> 00:06:23,350 52 Tá i gcónaí 52. 135 00:06:23,350 --> 00:06:28,860 Agus mar sin ní féidir leat athrú gan chuimhneamh Méid deic anseo ag ionramháil air, 136 00:06:28,860 --> 00:06:29,940 137 00:06:29,940 --> 00:06:32,390 >> Taobh eile maith Tá éifeacht an cé 138 00:06:32,390 --> 00:06:38,310 go bhfuil tú ar an eolas nach gach tír ar fud an domhain 139 00:06:38,310 --> 00:06:40,690 úsáid ar deic na cártaí de mhéid 52? 140 00:06:40,690 --> 00:06:45,630 Mar shampla, tá sé i ndáiríre coitianta i An Ghearmáin a bhaint as méid deic de 32, 141 00:06:45,630 --> 00:06:48,020 i gcás ina stiallacha siad amach roinnt de na cártaí luach níos ísle. 142 00:06:48,020 --> 00:06:50,960 Agus sa chás seo, mé ag iarraidh a port mo sraith 143 00:06:50,960 --> 00:06:55,390 feidhmeanna a dhéileálann le ionramháil cárta go dtí an Ghearmáin. 144 00:06:55,390 --> 00:06:59,440 Raibh mé ar an gcéad dul táimid ag Léirigh, ag dul agus ionad 145 00:06:59,440 --> 00:07:03,570 gach cás de 52 i mo cód le 32. 146 00:07:03,570 --> 00:07:07,940 >> Ach anseo, má #define mé méid deic mar 32 ag an barr an-an mo cód, 147 00:07:07,940 --> 00:07:11,730 más gá dom a athrú, is féidir liom ach dul agus athrú go rud amháin. 148 00:07:11,730 --> 00:07:15,010 Recompile mo cód, agus gach ceann de tobann propagates sé trí. 149 00:07:15,010 --> 00:07:18,850 Go deimhin, is féidir linn a athrú deic Méid haon luach ba mhaith linn. 150 00:07:18,850 --> 00:07:22,500 >> An féidir liom spéis agat i cluiche ar pickup méid deic? 151 00:07:22,500 --> 00:07:23,430 >> Tá mé Doug Lloyd. 152 00:07:23,430 --> 00:07:25,840 Agus tá sé seo CS50. 153 00:07:25,840 --> 00:07:27,772