1 00:00:00,000 --> 00:00:03,160 >> DAVID J. MALAN: Anta at vi ønsker å skrive et program som ber alle i 2 00:00:03,160 --> 00:00:06,740 et rom for deres alder, og deretter utskrifter ut hvor gammel disse menneskene vil være en 3 00:00:06,740 --> 00:00:07,520 år derav? 4 00:00:07,520 --> 00:00:09,900 Nå, åpenbart den aritmetiske for dette problemet kommer til å være ganske 5 00:00:09,900 --> 00:00:10,660 ukomplisert. 6 00:00:10,660 --> 00:00:14,090 Men det interessante spørsmålet er, hvis vi vet ikke på forhånd hvor mange mennesker 7 00:00:14,090 --> 00:00:16,790 kommer til å være i dette rommet, hvor kunne vi gå om lagring 8 00:00:16,790 --> 00:00:17,980 alle deres alder? 9 00:00:17,980 --> 00:00:19,680 Vel, la oss ta en titt. 10 00:00:19,680 --> 00:00:22,760 >> La oss begynne med å først spørre bruker, som jeg har gjort her, for den 11 00:00:22,760 --> 00:00:26,410 antall personer i rommet ved hjelp getInt og en do-while-loop for å 12 00:00:26,410 --> 00:00:28,220 få et heltall n. 13 00:00:28,220 --> 00:00:32,310 Anta at vi nå ønsker å spørre hver slik person i rommet for deres alder. 14 00:00:32,310 --> 00:00:35,820 Vel, ville mine instinkter være å bruke en sløyfe for å gjøre det å spørre, men jeg har også 15 00:00:35,820 --> 00:00:37,840 trenger et sted å oppbevare disse folks aldre. 16 00:00:37,840 --> 00:00:40,760 Og mine første instinkter det ville være å bruke en variabel for den første 17 00:00:40,760 --> 00:00:43,690 personens alder, en annen variabel for den andre personens alder, 18 00:00:43,690 --> 00:00:44,780 liksom langs linjene. 19 00:00:44,780 --> 00:00:46,230 Int alder - 20 00:00:46,230 --> 00:00:48,850 vel, la oss kalle det en for den første personen. 21 00:00:48,850 --> 00:00:51,480 Int alder 2 for den andre personen. 22 00:00:51,480 --> 00:00:53,980 Int alder 3 for den tredje personen. 23 00:00:53,980 --> 00:00:56,750 >> Men vent litt, er dette kanskje ikke den beste veien å gå ned. 24 00:00:56,750 --> 00:01:00,620 Fordi jeg ikke vet på forhånd om å skrive og kompilere dette programmet hvordan 25 00:01:00,620 --> 00:01:02,330 mange brukere der ute kommer til å være. 26 00:01:02,330 --> 00:01:06,590 Og dessuten, hvis det er så mange som 100 brukere, erklærte 100 variabler 27 00:01:06,590 --> 00:01:10,350 slags merkelig navn som dette ikke føler meg som den aller beste design. 28 00:01:10,350 --> 00:01:14,430 >> Vel, heldigvis finnes det en annen type variabel kalles en matrise som 29 00:01:14,430 --> 00:01:18,710 tillater oss å lagre en rekke ints innsiden av det, selv om man ikke kjenner 30 00:01:18,710 --> 00:01:22,190 når du skriver mitt program hvor mange slike ints vi kommer til å trenge. 31 00:01:22,190 --> 00:01:25,970 Så la oss backtrack og slette disse flere ints, og i stedet erstatte den 32 00:01:25,970 --> 00:01:29,620 med en variabel kalt, si, aldre, flertall. 33 00:01:29,620 --> 00:01:33,420 Men la oss videre spesifisere på denne linjen av koden i hakeparentes som vi 34 00:01:33,420 --> 00:01:35,460 vil n ints. 35 00:01:35,460 --> 00:01:39,570 Og derfor vil vi kollektivt referere til disse ints som aldre. 36 00:01:39,570 --> 00:01:43,490 >> I løpet av et øyeblikk vil jeg være i stand til å få på hver av de ints i denne matrise 37 00:01:43,490 --> 00:01:47,270 på lignende måte ved hjelp av hakeparentes notasjon, som starter på 0. 38 00:01:47,270 --> 00:01:51,720 Så la oss fortsette nå i en sløyfe til ber brukerne for deres alder. 39 00:01:51,720 --> 00:01:54,780 For int får jeg 0. 40 00:01:54,780 --> 00:01:59,464 I er mindre enn N, antall personer i rommet, jeg pluss pluss. 41 00:01:59,464 --> 00:02:06,610 >> Og nå innenfor denne sløyfen, la oss si printf alder av person nummer, prosent jeg 42 00:02:06,610 --> 00:02:09,430 er en plassholder, komma. 43 00:02:09,430 --> 00:02:13,210 Og nå, i stedet for å begynne å telle fra 0 i selve programmet, la oss på 44 00:02:13,210 --> 00:02:17,180 Minst tilvekst I ved en, slik at en normal person som bruker dette programmet 45 00:02:17,180 --> 00:02:20,120 trenger ikke å telle som en datamaskin vitenskaps makt. 46 00:02:20,120 --> 00:02:26,130 La oss nå gjøre aldre, brakett jeg, og dermed spesifiserer at i-te alder i vår 47 00:02:26,130 --> 00:02:31,480 spekter av aldre kommer til å få returverdien av getInt. 48 00:02:31,480 --> 00:02:37,800 >> Nå under denne sløyfen, la oss fortsette å anta at noen tiden går. 49 00:02:37,800 --> 00:02:41,690 Og la oss nå fortsette i en annen sløyfe til faktisk alder alle i rommet 50 00:02:41,690 --> 00:02:42,800 med ett år. 51 00:02:42,800 --> 00:02:48,110 Så igjen, for int jeg får 0, er jeg mindre enn N, antall personer i 52 00:02:48,110 --> 00:02:49,680 rom, jeg pluss pluss. 53 00:02:49,680 --> 00:02:57,210 >> Og nå inne i denne sløyfen, la oss si printf et år fra nå person nummer, 54 00:02:57,210 --> 00:03:00,990 prosent Jeg er en plassholder, vil være, er prosent jeg en annen 55 00:03:00,990 --> 00:03:03,210 plassholder, år gammel. 56 00:03:03,210 --> 00:03:07,230 Og deretter å plugge inn de plassholdere, la oss først si jeg pluss 57 00:03:07,230 --> 00:03:11,220 En, slik at vi igjen begynne å telle for brukeren fra en. 58 00:03:11,220 --> 00:03:18,630 Og så la oss plugge i den personens alder som aldre brakett jeg pluss en, og dermed 59 00:03:18,630 --> 00:03:23,740 spesifiserer farten få i-th alder i vår spekter av aldre, legger en til den, og deretter 60 00:03:23,740 --> 00:03:28,370 setter den summen inn i vår plassholder, nære paren, semikolon. 61 00:03:28,370 --> 00:03:33,280 >> La oss nå kompilere dette programmet med make aldre, og la oss kjøre den med prikk 62 00:03:33,280 --> 00:03:34,990 slash aldre. 63 00:03:34,990 --> 00:03:38,770 Og anta at det er bare tre mennesker i rommet, og noen er 18, 64 00:03:38,770 --> 00:03:40,700 noen er 19, noen er 20.. 65 00:03:40,700 --> 00:03:45,350 Vel, i et år, hver av de folkene kommer til å være 19, 20, og 21, 66 00:03:45,350 --> 00:03:46,600 respektivt. 67 00:03:46,600 --> 00:03:48,948