1 00:00:00,000 --> 00:00:09,250 2 00:00:09,250 --> 00:00:11,070 >> ZAMYLA CHAN: Anem a Mario. 3 00:00:11,070 --> 00:00:14,850 Mario és un programa on farem la nostra pròpia, encara que primitiu, versió de 4 00:00:14,850 --> 00:00:17,760 un clàssic Super Mario Brothers joc de fons. 5 00:00:17,760 --> 00:00:21,100 Per a aquest conjunt de problemes, anem per recrear la mitjana piràmide de 6 00:00:21,100 --> 00:00:23,000 Mario saltar sobre. 7 00:00:23,000 --> 00:00:27,330 El nostre programa serà interactiu, per la qual cosa li demanarà a l'usuari que introdueixi un determinat 8 00:00:27,330 --> 00:00:28,660 altura de la piràmide. 9 00:00:28,660 --> 00:00:32,920 I el programa imprimirà un mitjana piràmide d'aquesta altura, on el 10 00:00:32,920 --> 00:00:37,390 baix coixinet esquerra s'alinea amb la part inferior cantonada esquerra de la terminal 11 00:00:37,390 --> 00:00:39,710 finestra de sortida. 12 00:00:39,710 --> 00:00:44,870 >> Anem a trencar aquest problema en dues parts, un i gaudeix de la entrada de l'usuari, i dos, 13 00:00:44,870 --> 00:00:47,040 imprimir la piràmide. 14 00:00:47,040 --> 00:00:51,150 Recordi que encara que la funció GetInt recuperarà un nombre enter, es 15 00:00:51,150 --> 00:00:56,260 cal assegurar-se que aquesta entrada fa sentit per al programa, pel que en 16 00:00:56,260 --> 00:00:59,690 Mario, no ho farà només una producte d'un nombre enter. 17 00:00:59,690 --> 00:01:03,440 Vostè haurà de assegurar-se que l'usuari entrades d'un sencer que està dins de la 18 00:01:03,440 --> 00:01:06,985 límits inferior i superior de l' piràmide que es pot imprimir. 19 00:01:06,985 --> 00:01:12,300 Per aquesta especificació, es tracta de 0 i 23 ambdós inclosos. 20 00:01:12,300 --> 00:01:16,410 Si l'usuari introdueix un nombre enter fora dels nostres límits acceptats, llavors volem 21 00:01:16,410 --> 00:01:20,840 per demanar una vegada i una altra fins que ens donen un nombre enter vàlid. 22 00:01:20,840 --> 00:01:25,990 >> Una manera d'assegurar la entrada de l'usuari és correcta mitjançant l'ús d'un bucle do-while, que és 23 00:01:25,990 --> 00:01:28,100 molt similar a un bucle while. 24 00:01:28,100 --> 00:01:32,580 El Do-While executa el codi a l'interior del cos un cop, i després comprova 25 00:01:32,580 --> 00:01:35,270 si la condició es compleix o no. 26 00:01:35,270 --> 00:01:38,830 Això és útil per a l'obtenció de l'entrada de l'usuari perquè vostè sap que vostè necessita 27 00:01:38,830 --> 00:01:41,805 per sol · licitar almenys una vegada. 28 00:01:41,805 --> 00:01:45,940 Si la condició no es compleix, el programa s'executarà la línia després de 29 00:01:45,940 --> 00:01:47,270 el Do-While. 30 00:01:47,270 --> 00:01:50,950 Si es compleix la condició, però, el bucle es repetirà. 31 00:01:50,950 --> 00:01:55,560 >> A Do-While per a la validació d'usuari d'entrada es veurà alguna cosa com això. 32 00:01:55,560 --> 00:02:02,920 Declaro una variable n, GetInt, i repeteixi fins que n és vàlid. 33 00:02:02,920 --> 00:02:06,270 Recordeu que quan vostè declara el seu variable, es necessita l'adequada 34 00:02:06,270 --> 00:02:08,449 àmbit d'aplicació, igual que en l'scratch. 35 00:02:08,449 --> 00:02:12,510 Si em declaro n dins del meu Do-While, la resta del programa no serà 36 00:02:12,510 --> 00:02:13,750 poder accedir a ell. 37 00:02:13,750 --> 00:02:16,100 Està limitat als confins de les claus. 38 00:02:16,100 --> 00:02:19,010 39 00:02:19,010 --> 00:02:23,090 >> Molt bé, així que ara que hem validat l'entrada de l'usuari, que realment es necessita per 40 00:02:23,090 --> 00:02:25,020 dibuixar aquest mitjà-piràmide. 41 00:02:25,020 --> 00:02:29,700 Es compon de caràcters impresos, pel farem una mitjana piràmide de manera senzilla 42 00:02:29,700 --> 00:02:31,480 editor de text. 43 00:02:31,480 --> 00:02:35,920 Si volem fer una piràmide d'estil de Mario d'alçada de tres que està alineat 44 00:02:35,920 --> 00:02:41,370 a la banda esquerra de la finestra, a continuació, ens escrivim 2 hashes, premem Intro, 45 00:02:41,370 --> 00:02:47,180 a continuació, escrigui tres hashes, feu clic a Intro i escriviu 04:00. 46 00:02:47,180 --> 00:02:51,090 >> Però en aquest conjunt de problemes, el nostre mitjana piràmide ha de ser alineat a la dreta. 47 00:02:51,090 --> 00:02:55,550 L'ús d'un teclat estàndard, com podria modificar aquest fitxer per moure hashes 48 00:02:55,550 --> 00:02:57,210 a la dreta? 49 00:02:57,210 --> 00:03:03,190 Pot ser que utilitzi caràcters de subratllat, dos a la fila superior i una a la segona. 50 00:03:03,190 --> 00:03:07,690 Això no es veu tan bonic, encara que, anem a substituir el subratllat amb 51 00:03:07,690 --> 00:03:12,450 espais, i allà tenen una mitjana piràmide d'alçada de tres. 52 00:03:12,450 --> 00:03:16,330 >> Intenta recordar aquest editor de text exemple, com vostè comença a pensar de nou a 53 00:03:16,330 --> 00:03:20,100 C. Tractarem d'esbrinar alguna cosa tipus de patró que podem 54 00:03:20,100 --> 00:03:22,750 posat en una construcció circular. 55 00:03:22,750 --> 00:03:27,570 Prengui una alçada exemple, diguem que huit, i veure si vostè pot començar a 56 00:03:27,570 --> 00:03:29,470 arribar a un patró. 57 00:03:29,470 --> 00:03:34,710 La primera fila tindrà set espais seguit de dos hashes. 58 00:03:34,710 --> 00:03:40,090 La segona línia tindrà sis espais i tres valors hash, i així successivament fins que el 59 00:03:40,090 --> 00:03:41,440 vuitena fila. 60 00:03:41,440 --> 00:03:45,210 >> Però, ¿com podria representar l'enèsima fila? 61 00:03:45,210 --> 00:03:48,170 Recordeu que la convenció de programació és zero indexats. 62 00:03:48,170 --> 00:03:51,870 Això vol dir que comença a comptar a partir zero, de manera que la primera fila és tècnicament 63 00:03:51,870 --> 00:03:57,110 nombre de fila zero amb dos escotilles, fila número u té tres hashes, fila 64 00:03:57,110 --> 00:04:01,860 número dos té quatre hashes, així que després de aquest patró per qualsevol fila 65 00:04:01,860 --> 00:04:05,800 nombre n, hi ha n + 2 hashes. 66 00:04:05,800 --> 00:04:09,270 Ho deixo a vostè, però, trobar el patró dels espais. 67 00:04:09,270 --> 00:04:12,240 Recordi que el seu patró serà lleugerament diferent si vostè decideix 68 00:04:12,240 --> 00:04:16,649 iniciar el recompte de un i no zero. 69 00:04:16,649 --> 00:04:19,560 >> Ara, vostè té un patró de qualsevol fila n abstracta. 70 00:04:19,560 --> 00:04:25,190 Saps quants espais per imprimir i el nombre de hashes, així que per a cada fila, que 71 00:04:25,190 --> 00:04:26,270 nombre canviarà. 72 00:04:26,270 --> 00:04:30,700 Però el mateix procés d'impressió d'un sol caràcter, un espai o 73 00:04:30,700 --> 00:04:33,200 hash, es repeteix. 74 00:04:33,200 --> 00:04:37,470 L'únic que has de fer és diverses vegades imprimir aquest caràcter de les vegades 75 00:04:37,470 --> 00:04:40,120 com el seu patró determina. 76 00:04:40,120 --> 00:04:42,522 >> Llavors, com repetim els processos? 77 00:04:42,522 --> 00:04:45,160 En Scratch, es va utilitzar el bloc de repetició. 78 00:04:45,160 --> 00:04:48,580 En C, farem servir un bucle. 79 00:04:48,580 --> 00:04:51,290 Fem una ullada a la sintaxi de bucles For. 80 00:04:51,290 --> 00:04:57,140 >> Cada cicle For es compon de tres parts, una d'inicialització, un estat, 81 00:04:57,140 --> 00:04:58,592 i una actualització. 82 00:04:58,592 --> 00:05:01,550 El bucle For inicialitzarà una variable quan primer 83 00:05:01,550 --> 00:05:02,960 entra en el bucle. 84 00:05:02,960 --> 00:05:07,100 Si es compleix la condició, el cos del bucle s'executarà. 85 00:05:07,100 --> 00:05:10,070 Posteriorment, l'actualització s'executarà. 86 00:05:10,070 --> 00:05:13,630 >> Si la condició es segueix complint el bucle s'executarà i s'actualitzarà i 87 00:05:13,630 --> 00:05:18,580 repetir sempre que la seva condició avalua com True. 88 00:05:18,580 --> 00:05:21,450 Ets afecció finalment ha de valorar a False, però, perquè 89 00:05:21,450 --> 00:05:24,490 a diferència de Scratch, nosaltres no tenir llaços per sempre. 90 00:05:24,490 --> 00:05:28,270 El seu programa ha d'acabar amb el temps. 91 00:05:28,270 --> 00:05:32,330 >> Heus aquí un exemple d'un bucle que és possible que vulgueu utilitzar per a Mario. 92 00:05:32,330 --> 00:05:36,790 La inicialització declara i un enter amb valor 0. 93 00:05:36,790 --> 00:05:40,750 Mentre i és menor que l'altura, el cos del bucle s'executarà i 94 00:05:40,750 --> 00:05:44,980 augmentar la i per una i repetir fins que i és més o 95 00:05:44,980 --> 00:05:47,220 igual a l'altura. 96 00:05:47,220 --> 00:05:49,140 >> Ara, el meu bucle For és l'índex zero. 97 00:05:49,140 --> 00:05:52,270 El Int i comença en zero, no un. 98 00:05:52,270 --> 00:05:55,320 Si he triat un, llavors la meva condició faria També ha de ser diferent per 99 00:05:55,320 --> 00:05:58,740 el bucle per executar l' mateix nombre de vegades. 100 00:05:58,740 --> 00:06:03,490 Recordeu això amb compte quan s'està l'elecció del seu inicialització i la seva 101 00:06:03,490 --> 00:06:08,660 condicions i consulteu la quadre per comprovar el doble. 102 00:06:08,660 --> 00:06:13,430 >> Una de les millors coses d'equip la ciència és que només hi ha tants 103 00:06:13,430 --> 00:06:15,490 formes d'executar les coses. 104 00:06:15,490 --> 00:06:19,450 Vostè pot decidir si començar de zero o un. 105 00:06:19,450 --> 00:06:22,380 Si no voleu utilitzar un bucle, també es pot utilitzar un bucle While per 106 00:06:22,380 --> 00:06:26,530 repetir les declaracions, sempre que mantenir l'essència d'un bucle, 107 00:06:26,530 --> 00:06:31,430 inicialització, condició i actualització. 108 00:06:31,430 --> 00:06:36,890 Un cop sapiguem el bucle perquè estem més còmodes, llavors 109 00:06:36,890 --> 00:06:38,450 pot completar Mario. 110 00:06:38,450 --> 00:06:41,540 >> Ens registrem per primera vegada per a la entrada de l'usuari i després identificat una 111 00:06:41,540 --> 00:06:43,580 model per a qualsevol fila n. 112 00:06:43,580 --> 00:06:49,990 Així que per a cada fila de zero a n almenys 1 s'imprimeix el nombre apropiat de 113 00:06:49,990 --> 00:06:55,340 espais, llavors el nombre apropiat de hashes d'acord al nostre patró, i 114 00:06:55,340 --> 00:06:57,180 a continuació, una nova línia. 115 00:06:57,180 --> 00:06:59,640 Amb això, vostè té el seu piràmide. 116 00:06:59,640 --> 00:07:02,630 El meu nom és Zamyla, i això era Mario. 117 00:07:02,630 --> 00:07:11,765