1 00:00:00,000 --> 00:00:03,160 >> DAVID J. MALAN: Antag vi ønsker at skrive et program, der beder alle i 2 00:00:03,160 --> 00:00:06,740 en plads til deres alder, og derefter udskriver ud af, hvor gammel de mennesker vil være en 3 00:00:06,740 --> 00:00:07,520 år fremme? 4 00:00:07,520 --> 00:00:09,900 Nu naturligvis aritmetiske for dette Problemet vil være forholdsvis 5 00:00:09,900 --> 00:00:10,660 ligetil. 6 00:00:10,660 --> 00:00:14,090 Men det interessante spørgsmål er, hvis vi ved ikke på forhånd, hvor mange mennesker 7 00:00:14,090 --> 00:00:16,790 kommer til at være i dette rum, hvor kunne vi gå om opbevaring 8 00:00:16,790 --> 00:00:17,980 alle deres alder? 9 00:00:17,980 --> 00:00:19,680 Nå, lad os tage et kig. 10 00:00:19,680 --> 00:00:22,760 >> Lad os begynde med først at spørge bruger, som jeg har gjort her, for 11 00:00:22,760 --> 00:00:26,410 Antallet af personer i rummet ved hjælp af getInt og en gør-while-løkke med henblik på at 12 00:00:26,410 --> 00:00:28,220 få et heltal n. 13 00:00:28,220 --> 00:00:32,310 Antag at vi nu ønsker at spørge hver sådan person i rummet til deres alder. 14 00:00:32,310 --> 00:00:35,820 Nå, ville mine instinkter være at bruge en loop til at gøre det spørge, men jeg også 15 00:00:35,820 --> 00:00:37,840 har brug for et sted at opbevare disse folks aldre. 16 00:00:37,840 --> 00:00:40,760 Og min første instinkter der ville være at anvende en variabel for det første 17 00:00:40,760 --> 00:00:43,690 personens alder, en anden variabel for den anden persons alder, 18 00:00:43,690 --> 00:00:44,780 slags langs linjerne. 19 00:00:44,780 --> 00:00:46,230 Int alder - 20 00:00:46,230 --> 00:00:48,850 godt, lad os kalde det 1 for den første person. 21 00:00:48,850 --> 00:00:51,480 Int 2 år for den anden person. 22 00:00:51,480 --> 00:00:53,980 Int alder 3 for den tredje person. 23 00:00:53,980 --> 00:00:56,750 >> Men vent et øjeblik, dette er måske den bedste vej til at gå ned. 24 00:00:56,750 --> 00:01:00,620 Fordi jeg ikke kender i forvejen skrive og oversætte dette program hvordan 25 00:01:00,620 --> 00:01:02,330 mange brugere der kommer til at være. 26 00:01:02,330 --> 00:01:06,590 Og i øvrigt, hvis der er så mange som 100 brugere, erklærer 100 variabler 27 00:01:06,590 --> 00:01:10,350 slags mærkeligt navn ligesom det ikke lyst de allerbedste design. 28 00:01:10,350 --> 00:01:14,430 >> Nå, heldigvis findes der en anden type variabel kaldes en array, 29 00:01:14,430 --> 00:01:18,710 giver os mulighed for at gemme et vilkårligt antal int'er inde i det, selv om vi ikke kender 30 00:01:18,710 --> 00:01:22,190 når du skriver mit program, hvor mange sådanne int'er vi får brug for. 31 00:01:22,190 --> 00:01:25,970 Så lad os gå tilbage og slette disse flere int'er og i stedet erstatte det 32 00:01:25,970 --> 00:01:29,620 med en variabel kaldet, sige, aldre, flertal. 33 00:01:29,620 --> 00:01:33,420 Men lad os yderligere specificere på denne linje kode i kantede parenteser, som vi 34 00:01:33,420 --> 00:01:35,460 ønsker n ints. 35 00:01:35,460 --> 00:01:39,570 Og derfor vil vi kollektivt henvise til disse int'er som aldre. 36 00:01:39,570 --> 00:01:43,490 >> Nu i blot et øjeblik jeg vil være i stand til at få ved hver af de int'er i dette array 37 00:01:43,490 --> 00:01:47,270 på samme måde ved hjælp af firkantede beslag notation, der starter på 0. 38 00:01:47,270 --> 00:01:51,720 Så lad os fortsætte nu i en løkke til bede brugerne til 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 end N, antallet af mennesker i rummet, jeg plus plus. 41 00:01:59,464 --> 00:02:06,610 >> Og nu inden for denne løkke, lad os sige printf alder person nummer, procent I 42 00:02:06,610 --> 00:02:09,430 er en pladsholder, komma. 43 00:02:09,430 --> 00:02:13,210 Og nu, i stedet for at begynde at tælle fra 0 i selve programmet, lad os på 44 00:02:13,210 --> 00:02:17,180 mindste tilvækst Jeg ved 1, således at en normal person, ved hjælp af dette program 45 00:02:17,180 --> 00:02:20,120 behøver ikke at tælle som en datalog måske. 46 00:02:20,120 --> 00:02:26,130 Lad os nu gøre aldre, beslag I og dermed det præciseres, at den i'te alder i vores 47 00:02:26,130 --> 00:02:31,480 vifte af aldre vil få returværdien af ​​getInt. 48 00:02:31,480 --> 00:02:37,800 >> Nu under denne løkke, så lad os fortsætte at antage, at nogle tiden går. 49 00:02:37,800 --> 00:02:41,690 Og lad os nu gå i en anden løkke til rent faktisk at ældes alle i lokalet 50 00:02:41,690 --> 00:02:42,800 med et år. 51 00:02:42,800 --> 00:02:48,110 Så igen, for int jeg får 0, jeg er mindre end N, antallet af personer i 52 00:02:48,110 --> 00:02:49,680 værelse, jeg plus plus. 53 00:02:49,680 --> 00:02:57,210 >> Og nu inde i denne løkke, lad os sige printf et år fra nu personnummer, 54 00:02:57,210 --> 00:03:00,990 procent Jeg er en pladsholder, vil være procent I er en anden 55 00:03:00,990 --> 00:03:03,210 pladsholder år. 56 00:03:03,210 --> 00:03:07,230 Og så til at sætte i dem pladsholdere, lad os først sige, at jeg plus 57 00:03:07,230 --> 00:03:11,220 1, således at vi igen begynde at tælle for brugeren fra 1.. 58 00:03:11,220 --> 00:03:18,630 Og så lad os sætte i denne persons alder som aldre beslag I plus 1, hvorved 59 00:03:18,630 --> 00:03:23,740 angivelse Gå få det i'te alder i vores vifte af aldre, tilsæt 1 til det, og derefter 60 00:03:23,740 --> 00:03:28,370 Indsæt dette beløb i vores pladsholder, tætte paren, semikolon. 61 00:03:28,370 --> 00:03:33,280 >> Lad os nu kompilere dette program med make aldre, og lad os køre det med prik 62 00:03:33,280 --> 00:03:34,990 skråstreg aldre. 63 00:03:34,990 --> 00:03:38,770 Og formoder, at der kun er tre personer i rummet, og nogen er 18, 64 00:03:38,770 --> 00:03:40,700 en 19 er en 20. 65 00:03:40,700 --> 00:03:45,350 Tja, i et år, hver af disse folk kommer til at være 19, 20 og 21, 66 00:03:45,350 --> 00:03:46,600 hhv. 67 00:03:46,600 --> 00:03:48,948