1 00:00:00,000 --> 00:00:03,160 >> Дејвид Џ MALAN: Да претпоставиме дека сакаме да се напише програма со која бара сите во 2 00:00:03,160 --> 00:00:06,740 соба за нивната возраст, а потоа печати надвор колку години тие луѓе ќе биде 3 00:00:06,740 --> 00:00:07,520 година со тоа? 4 00:00:07,520 --> 00:00:09,900 Сега, очигледно аритметички за овој проблемот ќе биде прилично 5 00:00:09,900 --> 00:00:10,660 јасна. 6 00:00:10,660 --> 00:00:14,090 Но интересно прашање е, ако ние не се знае однапред колку луѓе 7 00:00:14,090 --> 00:00:16,790 се случува да биде во оваа соба, како ние би можеле да се обратите за складирање 8 00:00:16,790 --> 00:00:17,980 сите на нивната возраст? 9 00:00:17,980 --> 00:00:19,680 Добро, ајде да ги разгледаме. 10 00:00:19,680 --> 00:00:22,760 >> Нека почнат со првото поради што корисникот, како што го направив тука, за 11 00:00:22,760 --> 00:00:26,410 Бројот на луѓе во соба користејќи getInt и не-време јамка, со цел да се 12 00:00:26,410 --> 00:00:28,220 добие цел број n. 13 00:00:28,220 --> 00:00:32,310 Да претпоставиме дека сега сакам да прашам секоја таква лице во соба за нивната возраст. 14 00:00:32,310 --> 00:00:35,820 Па, моите инстинкти ќе биде да се користи јамка за да го направите тоа да се прашува, но јас, исто така, 15 00:00:35,820 --> 00:00:37,840 треба место за чување возраст на тие луѓе. 16 00:00:37,840 --> 00:00:40,760 И мојот прв инстинкти ќе има да се користи променлива за прв 17 00:00:40,760 --> 00:00:43,690 возраст на лицето, уште променлива за возраста на втората личност, 18 00:00:43,690 --> 00:00:44,780 вид на долж линии. 19 00:00:44,780 --> 00:00:46,230 Int возраст - 20 00:00:46,230 --> 00:00:48,850 добро, ајде да го наречеме 1 за прво лице. 21 00:00:48,850 --> 00:00:51,480 Int возраст 2 за второ лице. 22 00:00:51,480 --> 00:00:53,980 Int возраст 3 за трето лице. 23 00:00:53,980 --> 00:00:56,750 >> Но, чекајте, тоа не е можеби најдобриот пат да се оди надолу. 24 00:00:56,750 --> 00:01:00,620 Бидејќи јас не знам однапред пишување и составувањето на оваа програма како 25 00:01:00,620 --> 00:01:02,330 многу корисници таму се случува да биде. 26 00:01:02,330 --> 00:01:06,590 И згора на тоа, ако има колку што 100 корисници, објавувајќи 100 променливи 27 00:01:06,590 --> 00:01:10,350 вид на чудно именуван како ова не се чувствувам како на најдобрите дизајн. 28 00:01:10,350 --> 00:01:14,430 >> Па, за среќа постои друг тип на променлива се нарекува низа која 29 00:01:14,430 --> 00:01:18,710 ни овозможува да зачувате кој било број на ints во него, дури и ако не знаеме 30 00:01:18,710 --> 00:01:22,190 кога пишувате мојата програма колку како ints ние ќе треба. 31 00:01:22,190 --> 00:01:25,970 Па ајде одјавување и ги избришете овие неколку ints, и наместо да го замени 32 00:01:25,970 --> 00:01:29,620 со една променлива се нарекува, велат, возрасти, множина. 33 00:01:29,620 --> 00:01:33,420 Но, ајде да понатаму се определи на оваа линија на код во квадратни загради дека ние 34 00:01:33,420 --> 00:01:35,460 сакате n ints. 35 00:01:35,460 --> 00:01:39,570 И затоа, ние ќе колективно се однесуваат на овие ints како возрасти. 36 00:01:39,570 --> 00:01:43,490 >> Сега во само еден миг ќе бидам во можност да се добие во секоја од ints во оваа низа 37 00:01:43,490 --> 00:01:47,270 Слично по пат на плоштадот заграда нотација, со почеток во 0. 38 00:01:47,270 --> 00:01:51,720 Па ајде продолжи сега во јамка за да извести корисниците за нивната возраст. 39 00:01:51,720 --> 00:01:54,780 За int i добие 0. 40 00:01:54,780 --> 00:01:59,464 I е помалку од Н, бројот на луѓе во собата, јас плус плус. 41 00:01:59,464 --> 00:02:06,610 >> И сега во овој циклус, да речеме printf возраст од лице број, проценти јас 42 00:02:06,610 --> 00:02:09,430 е случаеви, запирка. 43 00:02:09,430 --> 00:02:13,210 И сега, наместо да почне сметано од 0 во самата програма, ајде на 44 00:02:13,210 --> 00:02:17,180 најмалку зголемување јас од 1, така што нормално лице со користење на оваа програма 45 00:02:17,180 --> 00:02:20,120 не мора да се смета како компјутерски научник сила. 46 00:02:20,120 --> 00:02:26,130 Ајде сега направи возрасти, заградата јас, а со тоа наведувајќи дека i-тиот возраст во нашата 47 00:02:26,130 --> 00:02:31,480 спектар на возрасти се случува да се добие повратната вредност на getInt. 48 00:02:31,480 --> 00:02:37,800 >> Сега под овој циклус, да се продолжи да се претпостави дека поминува некое време. 49 00:02:37,800 --> 00:02:41,690 И ајде сега продолжи во друга јамка всушност возраст секој во соба 50 00:02:41,690 --> 00:02:42,800 од една година. 51 00:02:42,800 --> 00:02:48,110 Значи, повторно, за int i добие 0, јас е помалку од Б-, бројот на луѓе во 52 00:02:48,110 --> 00:02:49,680 соба, јас плус плус. 53 00:02:49,680 --> 00:02:57,210 >> И сега во внатрешноста на оваа јамка, да речеме printf една година од сега човек број, 54 00:02:57,210 --> 00:03:00,990 проценти ми е на случаеви, ќе биде, јас проценти е уште 55 00:03:00,990 --> 00:03:03,210 случаеви, години. 56 00:03:03,210 --> 00:03:07,230 А потоа да го приклучиш во оние променливи, ајде прво кажам јас плус 57 00:03:07,230 --> 00:03:11,220 1, така што повторно ќе почнат да броите за корисникот од 1. 58 00:03:11,220 --> 00:03:18,630 И тогаш ајде да го приклучиш на возраст на лицето како возрасти заградата јас плус 1, со што се 59 00:03:18,630 --> 00:03:23,740 специфицирање одам да купам i-тиот возраст во нашата спектар на возрасти, да додадете 1 до неа, а потоа 60 00:03:23,740 --> 00:03:28,370 вметнете таа сума во нашите случаеви, блиску paren, точка-запирка. 61 00:03:28,370 --> 00:03:33,280 >> Ајде сега ги собере на оваа програма со марка возраст, и ајде да го стартувате со точка 62 00:03:33,280 --> 00:03:34,990 сека возрасти. 63 00:03:34,990 --> 00:03:38,770 И да претпоставиме дека има само три луѓе во собата, и некој е 18, 64 00:03:38,770 --> 00:03:40,700 некој е 19, некој е 20. 65 00:03:40,700 --> 00:03:45,350 Па, во една година, секоја од овие луѓе ќе биде 19, 20, и 21, 66 00:03:45,350 --> 00:03:46,600 соодветно. 67 00:03:46,600 --> 00:03:48,948