1 00:00:00,000 --> 00:00:03,160 >> DAVID J. MALAN: Antag att vi vill skriva ett program som frågar alla i 2 00:00:03,160 --> 00:00:06,740 ett rum för sin ålder, och sedan skriver ut hur gamla dessa människor kommer att vara en 3 00:00:06,740 --> 00:00:07,520 år framåt? 4 00:00:07,520 --> 00:00:09,900 Nu, uppenbarligen det aritmetiska för detta Problemet kommer att bli ganska 5 00:00:09,900 --> 00:00:10,660 okomplicerad. 6 00:00:10,660 --> 00:00:14,090 Men den intressanta frågan är, om vi vet inte i förväg hur många människor 7 00:00:14,090 --> 00:00:16,790 kommer att vara i det här rummet, hur kunde vi gå om att lagra 8 00:00:16,790 --> 00:00:17,980 alla deras åldrar? 9 00:00:17,980 --> 00:00:19,680 Nåväl, låt oss ta en titt. 10 00:00:19,680 --> 00:00:22,760 >> Låt oss börja med att först föranledde användare, som jag har gjort här, för 11 00:00:22,760 --> 00:00:26,410 Antalet personer i rummet med hjälp av getInt och en gör-while-slinga för att 12 00:00:26,410 --> 00:00:28,220 få ett heltal n. 13 00:00:28,220 --> 00:00:32,310 Antag att vi nu vill be varje sådan person i rummet för deras ålder. 14 00:00:32,310 --> 00:00:35,820 Tja, skulle min instinkt vara att använda en slinga för att göra det att fråga, men jag också 15 00:00:35,820 --> 00:00:37,840 behöver en plats att lagra dessa människors åldrar. 16 00:00:37,840 --> 00:00:40,760 Och min första instinkt skulle det finnas att använda en variabel för den första 17 00:00:40,760 --> 00:00:43,690 personens ålder, en annan variabel för den andra personens ålder, 18 00:00:43,690 --> 00:00:44,780 slags längs linjerna. 19 00:00:44,780 --> 00:00:46,230 Int ålder - 20 00:00:46,230 --> 00:00:48,850 väl, låt oss kalla det en för den första personen. 21 00:00:48,850 --> 00:00:51,480 Int ålder 2 för den andra personen. 22 00:00:51,480 --> 00:00:53,980 Int ålder 3 för den tredje personen. 23 00:00:53,980 --> 00:00:56,750 >> Men vänta lite, är det kanske inte den bästa vägen att gå. 24 00:00:56,750 --> 00:01:00,620 Eftersom jag inte vet i förväg skriva och sammanställa detta program hur 25 00:01:00,620 --> 00:01:02,330 många användare det kommer att bli. 26 00:01:02,330 --> 00:01:06,590 Och dessutom, om det finns så många som 100 användare, förklarar 100 variabler 27 00:01:06,590 --> 00:01:10,350 slags märkligt namngivna som detta inte känns som den allra bästa designen. 28 00:01:10,350 --> 00:01:14,430 >> Jo, tack och lov finns det en annan typ av variabel som kallas en matris som 29 00:01:14,430 --> 00:01:18,710 tillåter oss att lagra valfritt antal ints inne i det, även om vi inte vet 30 00:01:18,710 --> 00:01:22,190 när du skriver mitt program hur många sådana ints vi kommer att behöva. 31 00:01:22,190 --> 00:01:25,970 Så låt oss gå tillbaka och ta bort dessa flera ints och istället ersätta den 32 00:01:25,970 --> 00:01:29,620 med en variabel som heter, säga, åldrar, plural. 33 00:01:29,620 --> 00:01:33,420 Men låt oss ytterligare specificera på denna linje av kod inom hakparenteser som vi 34 00:01:33,420 --> 00:01:35,460 vill n ints. 35 00:01:35,460 --> 00:01:39,570 Och därför kommer vi kollektivt hänvisa till dessa ints som åldrar. 36 00:01:39,570 --> 00:01:43,490 >> Nu på bara ett ögonblick jag kommer att kunna få vid vardera av de ints i denna matris 37 00:01:43,490 --> 00:01:47,270 på samma sätt med hjälp av hakparentes notation, med början på 0. 38 00:01:47,270 --> 00:01:51,720 Så låt oss gå vidare nu i en slinga till uppmanar användarna för deras ålder. 39 00:01:51,720 --> 00:01:54,780 För int jag får 0. 40 00:01:54,780 --> 00:01:59,464 Jag är mindre än N, antalet personer i rummet, jag plus plus. 41 00:01:59,464 --> 00:02:06,610 >> Och nu i denna slinga, låt oss säga printf ålder av personnummer, procent I 42 00:02:06,610 --> 00:02:09,430 är en platshållare, kommatecken. 43 00:02:09,430 --> 00:02:13,210 Och nu, i stället för att börja räkna från 0 i programmet själv, låt oss på 44 00:02:13,210 --> 00:02:17,180 Minst ökning I med 1, så att en normal person som använder det här programmet 45 00:02:17,180 --> 00:02:20,120 behöver inte räkna som en datavetare kanske. 46 00:02:20,120 --> 00:02:26,130 Låt oss nu göra åldrar, fäste jag, på så sätt som anger att det i: te ålder i vår 47 00:02:26,130 --> 00:02:31,480 utbud av åldrar kommer att få returvärde getInt. 48 00:02:31,480 --> 00:02:37,800 >> Nu under denna slinga, låt oss gå vidare att anta att en viss tid passerar. 49 00:02:37,800 --> 00:02:41,690 Och låt oss nu gå vidare i en annan slinga att faktiskt åldras alla i rummet 50 00:02:41,690 --> 00:02:42,800 med ett år. 51 00:02:42,800 --> 00:02:48,110 Så återigen, om int jag får 0, är ​​jag mindre än N, antalet personer i 52 00:02:48,110 --> 00:02:49,680 rum, jag plus plus. 53 00:02:49,680 --> 00:02:57,210 >> Och nu inne i denna slinga, låt oss säga printf ett år från nu personnummer, 54 00:02:57,210 --> 00:03:00,990 procent Jag är en platshållare, kommer vara, är procent jag en annan 55 00:03:00,990 --> 00:03:03,210 platshållare, år gammal. 56 00:03:03,210 --> 00:03:07,230 Och sedan för att koppla in dem platshållare, låt oss först säga att jag plus 57 00:03:07,230 --> 00:03:11,220 1, så att vi återigen börjar räkna för användaren från 1. 58 00:03:11,220 --> 00:03:18,630 Och sedan ska vi koppla in den personens ålder som åldrar fäste jag plus 1, och därigenom 59 00:03:18,630 --> 00:03:23,740 specificera gå få den i: te ålder i vår utbud av åldrar, tillsätt 1 till den, och sedan 60 00:03:23,740 --> 00:03:28,370 sätt in den summan i vår placeholder, nära paren, semikolon. 61 00:03:28,370 --> 00:03:33,280 >> Låt oss nu kompilera programmet med make åldrar, och låt oss köra den med prick 62 00:03:33,280 --> 00:03:34,990 slash åldrar. 63 00:03:34,990 --> 00:03:38,770 Och antar att det bara finns tre personer i rummet, och någon är 18, 64 00:03:38,770 --> 00:03:40,700 någon som är 19, är någon 20. 65 00:03:40,700 --> 00:03:45,350 Tja, i ett år, var och en av de folks kommer att vara 19, 20, och 21, 66 00:03:45,350 --> 00:03:46,600 respektive. 67 00:03:46,600 --> 00:03:48,948