1 00:00:00,000 --> 00:00:03,160 >> DAVID J. Malan: Stel dat we willen schrijven een programma dat iedereen in vraagt 2 00:00:03,160 --> 00:00:06,740 een kamer voor hun leeftijd, en vervolgens afdrukken hoe oud die mensen zal een 3 00:00:06,740 --> 00:00:07,520 jaar dus? 4 00:00:07,520 --> 00:00:09,900 Nu, uiteraard het rekenkundig deze probleem zal vrij zijn 5 00:00:09,900 --> 00:00:10,660 eenvoudig. 6 00:00:10,660 --> 00:00:14,090 Maar het interessante vraag is, als we niet van tevoren weten hoeveel mensen 7 00:00:14,090 --> 00:00:16,790 zullen worden in deze kamer, hoe kunnen we gaan over het opslaan 8 00:00:16,790 --> 00:00:17,980 al hun leeftijden? 9 00:00:17,980 --> 00:00:19,680 Nou, laten we eens een kijkje nemen. 10 00:00:19,680 --> 00:00:22,760 >> Laten we beginnen door eerst te vragen de gebruiker, zoals ik hier heb gedaan, voor de 11 00:00:22,760 --> 00:00:26,410 aantal mensen in de kamer met behulp van getInt en een do-while lus om 12 00:00:26,410 --> 00:00:28,220 krijgt een geheel getal n. 13 00:00:28,220 --> 00:00:32,310 Stel dat we nu willen elk van deze vragen persoon in de kamer voor hun leeftijd. 14 00:00:32,310 --> 00:00:35,820 Nou, mijn instinct zou zijn in een lus te doen dat wordt gevraagd, maar ik heb ook 15 00:00:35,820 --> 00:00:37,840 behoefte aan een plek om op te slaan leeftijden van die mensen. 16 00:00:37,840 --> 00:00:40,760 En mijn eerste instinct zou er een variabele voor de eerste 17 00:00:40,760 --> 00:00:43,690 leeftijd persoon, een andere variabele voor de leeftijd van de tweede persoon, 18 00:00:43,690 --> 00:00:44,780 soort van langs lijnen. 19 00:00:44,780 --> 00:00:46,230 Int leeftijd - 20 00:00:46,230 --> 00:00:48,850 goed, laten we zeggen 1 voor de eerste persoon. 21 00:00:48,850 --> 00:00:51,480 Int leeftijd 2 voor de tweede persoon. 22 00:00:51,480 --> 00:00:53,980 Int 3 jaar voor de derde persoon. 23 00:00:53,980 --> 00:00:56,750 >> Maar wacht eens even, dit is misschien niet de beste weg naar beneden te gaan. 24 00:00:56,750 --> 00:01:00,620 Omdat ik niet weet van tevoren schrijven en samenstellen van dit programma hoe 25 00:01:00,620 --> 00:01:02,330 veel gebruikers er zullen zijn. 26 00:01:02,330 --> 00:01:06,590 En bovendien, als er wel 100 gebruikers, waarbij 100 variabelen 27 00:01:06,590 --> 00:01:10,350 soort van vreemd genoemd in deze trant niet het gevoel dat de beste ontwerp. 28 00:01:10,350 --> 00:01:14,430 >> Nou, gelukkig bestaat er nog een type variabele genaamd een array die 29 00:01:14,430 --> 00:01:18,710 stelt ons in staat om een ​​willekeurig aantal ints slaan binnenkant van het, zelfs als we niet weten 30 00:01:18,710 --> 00:01:22,190 bij het schrijven van mijn programma hoeveel dergelijke ints we gaan nodig hebben. 31 00:01:22,190 --> 00:01:25,970 Dus laten we backtrack en verwijder deze verschillende ints, en in plaats daarvan vervangen 32 00:01:25,970 --> 00:01:29,620 met een variabele met de naam, zeggen, leeftijden, meervoud. 33 00:01:29,620 --> 00:01:33,420 Maar laten we nader op deze lijn van de code tussen vierkante haakjes dat we 34 00:01:33,420 --> 00:01:35,460 willen n ints. 35 00:01:35,460 --> 00:01:39,570 En daarom zullen we collectief verwijzen naar deze ints als leeftijden. 36 00:01:39,570 --> 00:01:43,490 >> Nu in slechts een moment dat ik zal kunnen krijgen bij elk van de gehele getallen in deze array 37 00:01:43,490 --> 00:01:47,270 zo ook door middel van vierkante haken notatie, beginnend bij 0. 38 00:01:47,270 --> 00:01:51,720 Dus laten we gaan nu in een lus om vraagt ​​de gebruikers voor hun leeftijden. 39 00:01:51,720 --> 00:01:54,780 Voor int krijg ik 0. 40 00:01:54,780 --> 00:01:59,464 I kleiner is dan N, het aantal mensen in de kamer, ik plus plus. 41 00:01:59,464 --> 00:02:06,610 >> En nu binnen deze lus, laten we zeggen printf leeftijd van persoon nummer procent I 42 00:02:06,610 --> 00:02:09,430 is een tijdelijke aanduiding, komma. 43 00:02:09,430 --> 00:02:13,210 En nu, in plaats van beginnen te tellen vanaf 0 in het programma zelf, laten we bij 44 00:02:13,210 --> 00:02:17,180 kleinste stap ik op 1, zodat een normale persoon met behulp van dit programma 45 00:02:17,180 --> 00:02:20,120 niet te tellen als een informaticus macht. 46 00:02:20,120 --> 00:02:26,130 Laten we het nu doen leeftijden, beugel I, waardoor bepaald dat de i-de leeftijd in onze 47 00:02:26,130 --> 00:02:31,480 scala aan leeftijden gaat krijgen de return waarde van getInt. 48 00:02:31,480 --> 00:02:37,800 >> Nu onder deze lus, laten we verder gaan aannemelijk dat enige tijd verstrijkt. 49 00:02:37,800 --> 00:02:41,690 En laten we nu verder in een andere lus om daadwerkelijk iedereen in de kamer ouder 50 00:02:41,690 --> 00:02:42,800 een jaar. 51 00:02:42,800 --> 00:02:48,110 Dus nogmaals, voor int krijg ik 0, ik minder dan N, het aantal mensen in de 52 00:02:48,110 --> 00:02:49,680 kamer, ik plus plus. 53 00:02:49,680 --> 00:02:57,210 >> En nu de binnenkant van deze lus, laten we zeggen printf een jaar vanaf nu persoon nummer, 54 00:02:57,210 --> 00:03:00,990 procent I is een tijdelijke aanduiding, zal zijn, percenten I is een 55 00:03:00,990 --> 00:03:03,210 placeholder, jaar oud. 56 00:03:03,210 --> 00:03:07,230 En dan aan te sluiten op de plaatsaanduidingen, laten we eerst zeggen dat ik plus 57 00:03:07,230 --> 00:03:11,220 1, zodat we opnieuw beginnen te tellen voor de gebruiker 1. 58 00:03:11,220 --> 00:03:18,630 En dan laten we de stekker in de leeftijd van die persoon als leeftijden beugel I plus 1, waardoor 59 00:03:18,630 --> 00:03:23,740 specificeren go de i-de leeftijd krijgen in onze scala aan leeftijden, voeg 1 aan, en dan 60 00:03:23,740 --> 00:03:28,370 Steek dat bedrag in onze placeholder, dicht Paren, puntkomma. 61 00:03:28,370 --> 00:03:33,280 >> Laten we nu dit programma te compileren met make leeftijden, en laten we lopen het met stip 62 00:03:33,280 --> 00:03:34,990 slash leeftijden. 63 00:03:34,990 --> 00:03:38,770 En stel dat er slechts drie mensen in de kamer, en iemand is 18, 64 00:03:38,770 --> 00:03:40,700 iemand is 19, iemand is 20. 65 00:03:40,700 --> 00:03:45,350 Nou, in een jaar, elk van die mensen gaat zijn 19, 20, en 21, 66 00:03:45,350 --> 00:03:46,600 respectievelijk. 67 00:03:46,600 --> 00:03:48,948