2 00:00:00,000 --> 00:00:02,760 >> Gjuha 1: Le të shkruaj një program që bën të përdoruesit për emrat dhe 3 00:00:02,760 --> 00:00:04,700 shtëpitë e tre studentë. 4 00:00:04,700 --> 00:00:08,840 Tani, për të ruajtur ato emra dhe shtëpi ne mund të përdorin, çfarë, gjashtë variablave. 5 00:00:08,840 --> 00:00:12,260 Tre stringjet për emrat, dhe një tjetër tre vargjet për shtëpitë, 6 00:00:12,260 --> 00:00:16,560 por ne tashmë e dimë që ne mund të pastër deri se kodi duke përdorur vargjeve në vend të kësaj, 7 00:00:16,560 --> 00:00:20,220 për shembull një grup i madhësisë 3 për tre emra, dhe një tjetër grup të 8 00:00:20,220 --> 00:00:22,110 Madhësia 3 për shtëpitë. 9 00:00:22,110 --> 00:00:25,870 Por kjo rezulton ne mund të pastër këtë ide më tej akoma, dhe në fakt të mbajtur ato të 10 00:00:25,870 --> 00:00:30,520 emrat dhe shtepi bashke, kështu që një Emri i studentit dhe shtëpia e tij ose të saj 11 00:00:30,520 --> 00:00:34,940 përmblidhen disi, në mënyrë që të flasin, në të njëjtën variabël. 12 00:00:34,940 --> 00:00:39,095 >> Për ta bërë këtë, edhe pse, ne kemi nevojë për të deklaruar vetë lloji tonë të të dhënave, vetë lloji tonë në C, 13 00:00:39,095 --> 00:00:42,660 se autorët e C nuk ka domosdoshmërisht mendojnë për vjet më parë. 14 00:00:42,660 --> 00:00:45,630 Për ta bërë këtë, ne mund të përdorim fjalën kyçe typedef, së bashku me 15 00:00:45,630 --> 00:00:47,200 struct tjetër fjalen. 16 00:00:47,200 --> 00:00:48,160 Le të bëjmë një vështrim. 17 00:00:48,160 --> 00:00:50,650 Brenda structs.h, unë kam tashmë marrë filluar nga 18 00:00:50,650 --> 00:00:52,560 duke përfshirë edhe bibliotekën CS50. 19 00:00:52,560 --> 00:00:57,640 Unë jam i ardhshëm do të tipit e strukturës typedef, dhe pastaj një mbajtëse kaçurrel. 20 00:00:57,640 --> 00:01:01,370 Brenda e struct, unë jam duke shkuar për specifikon se një student do të ketë një 21 00:01:01,370 --> 00:01:04,960 string quajtur emrin, dhe një tjetër string quhet shtëpi. 22 00:01:04,960 --> 00:01:08,430 Unë jam duke shkuar për të mbyllur më pas formatimin e teksteve kaçurrel e mia, dhe të përcaktojë se emri i 23 00:01:08,430 --> 00:01:11,420 ky lloj i ri e të dhënave do të jetë studenti. 24 00:01:11,420 --> 00:01:15,550 Me fjalë të tjera, me anë të këtij sintaksë kam deklaruar një lloj të ri të dhënave të mi 25 00:01:15,550 --> 00:01:19,910 se nuk ka ekzistuar një moment më parë, dhe brenda e këtij lloji të të dhënave janë dy të dhëna të 26 00:01:19,910 --> 00:01:24,270 fields ose anëtarët e të dhënave, e quajtur emrin, e quajtur shtëpi, dy prej të cilave 27 00:01:24,270 --> 00:01:25,630 janë të tipit string. 28 00:01:25,630 --> 00:01:27,690 >> Le tani përdorin këtë lloj në një program aktual. 29 00:01:27,690 --> 00:01:30,210 30 00:01:30,210 --> 00:01:34,090 Në structs0.c, unë kam marrë në mënyrë të ngjashme veten duke filluar me disa 31 00:01:34,090 --> 00:01:36,999 Kodi Boilerplate, dhe unë jam tani do të përdorin këto të dhëna 32 00:01:36,999 --> 00:01:39,100 shkruani nxënës, si më poshtë. 33 00:01:39,100 --> 00:01:42,450 Unë jam duke e parë duke shkuar për të deklaruar një grup i studentëve tipit, unë do 34 00:01:42,450 --> 00:01:43,920 telefononi nxënësit array - 35 00:01:43,920 --> 00:01:44,630 shumësi - 36 00:01:44,630 --> 00:01:49,360 dhe unë do të specifikojë se madhësia e tij do të jetë tre, e cila, njoftim, është vlera e 37 00:01:49,360 --> 00:01:50,880 Studentët e vazhdueshme - 38 00:01:50,880 --> 00:01:51,890 në të gjitha kryeqytetet - 39 00:01:51,890 --> 00:01:54,930 që unë kam shpallur këtu, më parë në dosjen. 40 00:01:54,930 --> 00:01:58,280 Le tani iterate gjatë atyre tre studentët, dhe të menjëhershëm të përdoruesit për 41 00:01:58,280 --> 00:02:00,050 emrat dhe shtëpitë e tyre. 42 00:02:00,050 --> 00:02:05,422 >> për int i merrni 0, i është më pak se kaq konstante, i + +. 43 00:02:05,422 --> 00:02:08,600 Dhe tani në brendësi të trupit të kësaj për loop, unë jam duke shkuar për të shkruar diçka 44 00:02:08,600 --> 00:02:11,470 si emri i studentit. 45 00:02:11,470 --> 00:02:14,890 Unë jam atëherë do të ketë në fakt që Emri i studentit nga specifikuar 46 00:02:14,890 --> 00:02:17,290 Nxënësit kllapa i. 47 00:02:17,290 --> 00:02:21,550 Me fjalë të tjera unë dua që studenti i-th në grup të quajtur studentëve, por tani 48 00:02:21,550 --> 00:02:25,340 Unë dua të të marrë në se i-th studentit emrin, dhe për të bërë këtë, unë jam duke shkuar për të përdorur 49 00:02:25,340 --> 00:02:30,160 . operatori, në mënyrë që të marrë në një brenda specifik fushën e struct. 50 00:02:30,160 --> 00:02:37,100 Kështu që unë të specifikojë studentëve kllapa i. Emrin merr vlerën e kthimit të getString (). 51 00:02:37,100 --> 00:02:40,310 Ndërkohë, unë jam duke shkuar për të shtypur jashtë diçka të ngjashme, duke thënë studentit 52 00:02:40,310 --> 00:02:45,410 shtëpi, dhe tani unë jam duke shkuar për të specifikuar se fusha studentët shtëpi i-th 53 00:02:45,410 --> 00:02:49,480 do të marrë vlerën e kthimit të një tjetër thirrje për të getString (). 54 00:02:49,480 --> 00:02:52,350 >> Tani le të bëjë diçka me këto tre Emrat dhe shtëpi të studentëve, 55 00:02:52,350 --> 00:02:56,230 diçka e thjeshtë si shtypje secili në një fjali. 56 00:02:56,230 --> 00:03:07,580 për int i merrni 0, përsëri i është më pak se studentë, i + +, printf "% s është% s. 57 00:03:07,580 --> 00:03:12,600 backslash n ", dhe tani më lejoni të vihet në prizë vlerat e këtyre dy fushave, 58 00:03:12,600 --> 00:03:19,055 Nxënësit kllapa i. emrin, presje, Nxënësit kllapa i. shtëpi, në afërsi 59 00:03:19,055 --> 00:03:21,290 Paren, pikëpresje. 60 00:03:21,290 --> 00:03:23,020 >> Dhe tani kam nevojë për të bërë një gjë. 61 00:03:23,020 --> 00:03:26,600 Në fund të këtij file, kam nevojë për të të lirë kujtesës që është ndarë 62 00:03:26,600 --> 00:03:30,290 prapaskenë nga GetSring (), e cila natyrisht quan malloc, në mënyrë që të 63 00:03:30,290 --> 00:03:32,500 përgatitja e kujtesës për vargjet lloje përdorues. 64 00:03:32,500 --> 00:03:35,720 Por kjo për të është e thjeshtë. 65 00:03:35,720 --> 00:03:42,610 për Int i marrë 0, i është më pak se studentë, i + +, dhe brenda trupit të 66 00:03:42,610 --> 00:03:48,670 këtë për lak, unë jam thjesht duke shkuar për të ofrojnë falas nxënës kllapa i. emrin, 67 00:03:48,670 --> 00:03:52,300 dhe studentët pa kllapa i. shtëpi. 68 00:03:52,300 --> 00:03:55,620 >> Tani, ne kemi përdorur në mënyrë të qartë për tre sythe në këtë program, kur me të vërtetë unë 69 00:03:55,620 --> 00:03:58,800 mund të ketë përdorur vetëm një të tillë, por kjo është vetëm për hir të demonstratës së, në mënyrë që 70 00:03:58,800 --> 00:04:02,850 ne mund të specifikojë në tre të dallueshme hapa saktësisht se çfarë ne jemi duke bërë. 71 00:04:02,850 --> 00:04:06,120 Ne jemi duke e parë duke marrë një emër dhe një shtëpi për secilin nga nxënësit, ne jemi më pas 72 00:04:06,120 --> 00:04:08,900 shtypjen nga emri dhe nga shtëpia për secili prej tre nxënës, dhe 73 00:04:08,900 --> 00:04:11,910 atëherë ne jemi duke shkuar për në kujtesë përdorur nga çdo e studentëve. 74 00:04:11,910 --> 00:04:15,310 Por sigurisht që ne mund të kemi kombinuar kjo në një më e madhe për lak. 75 00:04:15,310 --> 00:04:18,650 >> Le tani të shpëtuar, përpilojnë, dhe të drejtuar këtë program. 76 00:04:18,650 --> 00:04:26,850 bëjnë structs 0. / structs 0, studentit emrin, le të ofrojë Davidin, ai do të jetojë 77 00:04:26,850 --> 00:04:31,580 në Mather House, emri i studentit, le të thonë Lauren, ajo do të jetojnë në Leverett 78 00:04:31,580 --> 00:04:36,590 House, emri i studentit, Rob, ai do të jetojnë në Kirkland House. 79 00:04:36,590 --> 00:04:39,440 Dhe në të vërtetë, Davidi është në Mather, Lauren është në Leverett, 80 00:04:39,440 --> 00:04:40,810 dhe Rob është në Kirkland. 81 00:04:40,810 --> 00:04:43,425