1 00:00:00,000 --> 00:00:03,160 >> DAVID J. Malan: supozu ni volas skribi programo kiu petas ĉiuj en 2 00:00:03,160 --> 00:00:06,740 ĉambro por ilia aĝo, kaj tiam presitaj el kiom malnova tiuj homoj estos 3 00:00:06,740 --> 00:00:07,520 jaro ĉi tie? 4 00:00:07,520 --> 00:00:09,900 Nu, evidente la aritmetiko por tiu problemo tuj estos sufiĉe 5 00:00:09,900 --> 00:00:10,660 simpla. 6 00:00:10,660 --> 00:00:14,090 Sed la interesa demando estas, se ni ne scias anticipe kiom da homoj 7 00:00:14,090 --> 00:00:16,790 tuj estos en tiu ĉi ĉambro, kiom ni povus iri pri stokante 8 00:00:16,790 --> 00:00:17,980 ĉiuj iliaj aĝoj? 9 00:00:17,980 --> 00:00:19,680 Nu, ni rigardu. 10 00:00:19,680 --> 00:00:22,760 >> Ni komencu per unua instigante la uzanton, kiel mi jam faris ĉi tie, ĉar la 11 00:00:22,760 --> 00:00:26,410 nombro de homoj en la ĉambro uzante getInt kaj do-dum buklo celo 12 00:00:26,410 --> 00:00:28,220 get entjero n. 13 00:00:28,220 --> 00:00:32,310 Supozi ni nun volas demandi ĉiu tia personon en la ĉambro por ilia aĝo. 14 00:00:32,310 --> 00:00:35,820 Nu, miaj instinktoj estus uzi buklo fari tion instigante, sed mi ankaŭ 15 00:00:35,820 --> 00:00:37,840 bezonas lokon por stoki tiuj homoj aĝoj. 16 00:00:37,840 --> 00:00:40,760 Kaj mia unua instinktoj ne estus uzi variablon por la unua 17 00:00:40,760 --> 00:00:43,690 persono aĝo, alia variablo por la dua persono aĝo, 18 00:00:43,690 --> 00:00:44,780 ia laŭ linioj. 19 00:00:44,780 --> 00:00:46,230 Mez aĝo - 20 00:00:46,230 --> 00:00:48,850 bone, ni nomas ĝin 1 por la unua persono. 21 00:00:48,850 --> 00:00:51,480 Mez aĝo 2 por la dua persono. 22 00:00:51,480 --> 00:00:53,980 Mez aĝo 3 por la tria persono. 23 00:00:53,980 --> 00:00:56,750 >> Sed atendu momenton, tio ne estas eble la plej bona vojo por iri malsupren. 24 00:00:56,750 --> 00:01:00,620 Ĉar mi ne scias anticipe de skribo kaj kompilante ĉi programo kiom 25 00:01:00,620 --> 00:01:02,330 multaj uzantoj ne tuj estos. 26 00:01:02,330 --> 00:01:06,590 Kaj cetere, se estas tiel multaj kiel 100 uzantoj, deklarante 100 variabloj 27 00:01:06,590 --> 00:01:10,350 ia strange enoficigita kiel ĉi tio ne sentas kiel la tre bona dezajno. 28 00:01:10,350 --> 00:01:14,430 >> Nu, dankeme tie ekzistas alia tipo de variablo nomata tabelo tiu 29 00:01:14,430 --> 00:01:18,710 permesas al ni memori ĉiun numeron de ints interne de ĝi, eĉ se ni ne scias 30 00:01:18,710 --> 00:01:22,190 kiam skribante mian programon, kiom da tiaj ints ni tuj bezonas. 31 00:01:22,190 --> 00:01:25,970 Do ni reveni al la demando kaj forigi tiujn pluraj ints, kaj anstataŭ anstataŭigi ĝin 32 00:01:25,970 --> 00:01:29,620 kun unu variablo vokis, diri, aĝoj, pluralo. 33 00:01:29,620 --> 00:01:33,420 Sed ni ankoraŭ specifi sur tiu linio de kodo en kvadrataj krampoj, ke ni 34 00:01:33,420 --> 00:01:35,460 ĉu n ints. 35 00:01:35,460 --> 00:01:39,570 Kaj do, ni volas kolektive referi al tiuj ints kiel aĝoj. 36 00:01:39,570 --> 00:01:43,490 >> Nun en nur unu momento mi povos akiri ĉe ĉiu el la ints en ĉi tiu tabelo 37 00:01:43,490 --> 00:01:47,270 simile en formo de kvadrata krampo skribmaniero, ekde 0. 38 00:01:47,270 --> 00:01:51,720 Do ni procedas nun en buklo al suflori la uzantoj por iliaj aĝoj. 39 00:01:51,720 --> 00:01:54,780 Por int I get 0. 40 00:01:54,780 --> 00:01:59,464 Mi estas malpli ol N, la nombro de homoj en la ĉambro, mi plus plus. 41 00:01:59,464 --> 00:02:06,610 >> Kaj nun ene de ĉi maŝo, ni diru printf aĝon de persono numeron, procento mi 42 00:02:06,610 --> 00:02:09,430 Estas lokokupilo, komo. 43 00:02:09,430 --> 00:02:13,210 Kaj nun, anstataŭ komenci kalkulon 0 en la programo mem, ni ĉe 44 00:02:13,210 --> 00:02:17,180 Almenaŭ pliigo mi per 1 tiel ke normala persono kiu uzas tiun programon 45 00:02:17,180 --> 00:02:20,120 Ne havas por rakonti kiel komputila sciencisto potenco. 46 00:02:20,120 --> 00:02:26,130 Ni nun faru aĝoj, krampo mi, tiamaniere preciziganta ke la i-a aĝo en nia 47 00:02:26,130 --> 00:02:31,480 tabelo de epokoj iĝos la reveno valoro de getInt. 48 00:02:31,480 --> 00:02:37,800 >> Nun sub tiu buklo, ni procedi supozi, ke iom da tempo pasas. 49 00:02:37,800 --> 00:02:41,690 Kaj ni nun procedas en alia buklo por fakte kadukiĝas ĉiuj en la ĉambro 50 00:02:41,690 --> 00:02:42,800 de unu jaro. 51 00:02:42,800 --> 00:02:48,110 Do denove, por int I get 0, mi estas malpli ol N, la nombro de homoj en la 52 00:02:48,110 --> 00:02:49,680 ĉambro, mi plus plus. 53 00:02:49,680 --> 00:02:57,210 >> Kaj nun ene de ĉi maŝo, ni diru printf jaron ekde nun persono numeron, 54 00:02:57,210 --> 00:03:00,990 procento mi estas lokokupilo, volo esti, procento mi estas alia 55 00:03:00,990 --> 00:03:03,210 lokokupilo, jaroj maljuna. 56 00:03:03,210 --> 00:03:07,230 Kaj tiam por konekti al tiuj anstataŭiloj, ni unue diru mi pli 57 00:03:07,230 --> 00:03:11,220 1, tiel ke ni denove komencas rakonti por la uzanto de 1. 58 00:03:11,220 --> 00:03:18,630 Kaj tiam ni plug en tiu persono aĝo kiel aĝoj krampo Mi plus 1, tiamaniere 59 00:03:18,630 --> 00:03:23,740 preciziganta go akiri la i-a aĝo en nia tabelo de epokoj, aldonu 1 al ĝi, kaj poste 60 00:03:23,740 --> 00:03:28,370 enŝovu ke sumo en nian lokokupilo, proksime paren, punktokomo. 61 00:03:28,370 --> 00:03:33,280 >> Ni nun kompili tiun programon per ŝminko aĝoj, kaj ni kuris kun skalara 62 00:03:33,280 --> 00:03:34,990 oblikvo aĝoj. 63 00:03:34,990 --> 00:03:38,770 Kaj supozu, ke tie estas nur tri homoj en la ĉambro, kaj iu estas 18, 64 00:03:38,770 --> 00:03:40,700 iu estas 19, iu estas 20. 65 00:03:40,700 --> 00:03:45,350 Nu, en jaro, ĉiu el tiuj uloj tuj estos 19, 20, kaj 21, 66 00:03:45,350 --> 00:03:46,600 respektive. 67 00:03:46,600 --> 00:03:48,948