1 00:00:00,000 --> 00:00:09,250 2 00:00:09,250 --> 00:00:11,070 >> ZAMYLA CHAN: salto Facciamo in Mario. 3 00:00:11,070 --> 00:00:14,850 Mario è un programma dove faremo il nostro proprio, sia pure primitiva, versione di 4 00:00:14,850 --> 00:00:17,760 un classico Super Mario Brothers sfondo gioco. 5 00:00:17,760 --> 00:00:21,100 Per questo problema insieme, stiamo andando per ricreare la mezza piramide per 6 00:00:21,100 --> 00:00:23,000 Mario a saltare su. 7 00:00:23,000 --> 00:00:27,330 Il nostro programma sarà interattivo, in modo da chiederà all'utente di inserire un certo 8 00:00:27,330 --> 00:00:28,660 altezza della piramide. 9 00:00:28,660 --> 00:00:32,920 E il programma stamperà un mezza piramide di quell'altezza, dove la 10 00:00:32,920 --> 00:00:37,390 fondo hash sinistro sia allineato con il fondo nell'angolo sinistro del terminale 11 00:00:37,390 --> 00:00:39,710 finestra di uscita. 12 00:00:39,710 --> 00:00:44,870 >> Rompiamo questo problema in due parti, uno, ottenere l'input dell'utente, e due, 13 00:00:44,870 --> 00:00:47,040 stampare la piramide. 14 00:00:47,040 --> 00:00:51,150 Ricordate che se la funzione GetInt recupererà un numero intero, si 15 00:00:51,150 --> 00:00:56,260 fare in modo che questo ingresso fa senso per il vostro programma, quindi in 16 00:00:56,260 --> 00:00:59,690 Mario, che non farà solo una prodotto per un numero intero. 17 00:00:59,690 --> 00:01:03,440 Avrai bisogno di fare in modo che l'utente input un numero intero che è all'interno del 18 00:01:03,440 --> 00:01:06,985 limiti inferiore e superiore del piramide che è possibile stampare. 19 00:01:06,985 --> 00:01:12,300 Per questa specifica, questo è 0 e 23 inclusi. 20 00:01:12,300 --> 00:01:16,410 Se l'utente inserisce un numero intero di fuori dei nostri limiti accettati, allora vogliamo 21 00:01:16,410 --> 00:01:20,840 per richiedere di nuovo e di nuovo fino a quando ci danno un intero valido. 22 00:01:20,840 --> 00:01:25,990 >> Un modo per garantire l'input dell'utente è corretta utilizzando un ciclo Do-While, che è 23 00:01:25,990 --> 00:01:28,100 molto simile ad un ciclo While. 24 00:01:28,100 --> 00:01:32,580 Il ciclo do-while esegue il codice all'interno del corpo una volta, e quindi controlla 25 00:01:32,580 --> 00:01:35,270 se la condizione è soddisfatta o meno. 26 00:01:35,270 --> 00:01:38,830 Ciò è utile per ottenere input dell'utente perché si sa che avete bisogno di 27 00:01:38,830 --> 00:01:41,805 spingerli almeno una volta. 28 00:01:41,805 --> 00:01:45,940 Se la condizione non è soddisfatta, il programma eseguirà la linea dopo 29 00:01:45,940 --> 00:01:47,270 il vostro Do-While. 30 00:01:47,270 --> 00:01:50,950 Se la condizione è soddisfatta, anche se, il ciclo si ripeterà. 31 00:01:50,950 --> 00:01:55,560 >> Un ciclo Do-While per la convalida utente ingresso sarà simile a questa. 32 00:01:55,560 --> 00:02:02,920 Dichiaro una variabile n, GetInt, e ripetere fino a quando n è valida. 33 00:02:02,920 --> 00:02:06,270 Ricordate che quando si dichiara la variabile, necessita l'appropriato 34 00:02:06,270 --> 00:02:08,449 campo di applicazione, proprio come in Scratch. 35 00:02:08,449 --> 00:02:12,510 Se io dichiaro n per dentro il mio Do-While, il resto del programma non sarà 36 00:02:12,510 --> 00:02:13,750 in grado di accedervi. 37 00:02:13,750 --> 00:02:16,100 È limitata entro i confini delle parentesi graffe. 38 00:02:16,100 --> 00:02:19,010 39 00:02:19,010 --> 00:02:23,090 >> Bene, ora che abbiamo convalidato l'input dell'utente, abbiamo effettivamente bisogno di 40 00:02:23,090 --> 00:02:25,020 disegnare questa mezza piramide. 41 00:02:25,020 --> 00:02:29,700 E 'composto di caratteri stampati, così facciamo una mezza piramide in un semplice 42 00:02:29,700 --> 00:02:31,480 editor di testo. 43 00:02:31,480 --> 00:02:35,920 Se vogliamo fare uno stile piramide Mario di altezza tre che è allineato 44 00:02:35,920 --> 00:02:41,370 sul lato sinistro della nostra finestra, poi avremmo tipo due hash, fare clic su Invio, 45 00:02:41,370 --> 00:02:47,180 quindi digitare tre hash, fare clic su Invio, quindi digitare quattro. 46 00:02:47,180 --> 00:02:51,090 >> Ma in questo problema proposto, la nostra mezza piramide deve essere allineato a destra. 47 00:02:51,090 --> 00:02:55,550 Utilizzo di una tastiera standard, come potrebbe si modifica il file di spostare gli hash 48 00:02:55,550 --> 00:02:57,210 sul lato destro? 49 00:02:57,210 --> 00:03:03,190 Potrei utilizzare caratteri di sottolineatura, due sul fila superiore e uno al secondo. 50 00:03:03,190 --> 00:03:07,690 Non sembra così bello, però, in modo cerchiamo di sostituire la sottolineatura con 51 00:03:07,690 --> 00:03:12,450 spazi, e non ci abbiamo una mezza piramide altezza di tre. 52 00:03:12,450 --> 00:03:16,330 >> Cercate di ricordare questo editor di testo esempio, come si inizia a pensare torna a 53 00:03:16,330 --> 00:03:20,100 C. Facciamo cercare di capire un po 'di tipo di schema che possiamo 54 00:03:20,100 --> 00:03:22,750 mettere in un costrutto di ciclo. 55 00:03:22,750 --> 00:03:27,570 Prendete un altezza esempio, diciamo otto, e vedere se è possibile iniziare a 56 00:03:27,570 --> 00:03:29,470 venire con un modello. 57 00:03:29,470 --> 00:03:34,710 La prima riga avrà sette spazi seguito da due hash. 58 00:03:34,710 --> 00:03:40,090 La seconda fila avrà sei spazi e tre gli hash, e così via fino a quando la 59 00:03:40,090 --> 00:03:41,440 ottava fila. 60 00:03:41,440 --> 00:03:45,210 >> Ma come si potrebbe rappresentare l'ennesima riga? 61 00:03:45,210 --> 00:03:48,170 Ricorda che convenzione programmazione è zero indicizzati. 62 00:03:48,170 --> 00:03:51,870 Ciò significa che si inizia a contare da pari a zero, in modo che la prima riga è tecnicamente 63 00:03:51,870 --> 00:03:57,110 numero di riga a zero con due portelli, fila numero uno ha tre hash, riga 64 00:03:57,110 --> 00:04:01,860 numero due ha quattro hash, in modo da seguire questo modello qualsiasi riga 65 00:04:01,860 --> 00:04:05,800 numero n, ci sono n più 2 hash. 66 00:04:05,800 --> 00:04:09,270 Lascio a voi, però, di trovare il schema per gli spazi. 67 00:04:09,270 --> 00:04:12,240 Ricordate che il vostro modello sarà leggermente diverso se si sceglie di 68 00:04:12,240 --> 00:04:16,649 avviare il conteggio da uno e non zero. 69 00:04:16,649 --> 00:04:19,560 >> Ora, si ha un modello per qualsiasi riga astratto n. 70 00:04:19,560 --> 00:04:25,190 Sapete come molti spazi da stampare e quanti hash, quindi per ogni riga, che 71 00:04:25,190 --> 00:04:26,270 numero cambia. 72 00:04:26,270 --> 00:04:30,700 Ma lo stesso processo di stampa di un personaggio unico, uno spazio o un 73 00:04:30,700 --> 00:04:33,200 hash, viene ripetuto. 74 00:04:33,200 --> 00:04:37,470 Quindi tutto quello che dovete fare è ripetutamente stampare quel personaggio per il numero di volte 75 00:04:37,470 --> 00:04:40,120 come il vostro modello determina. 76 00:04:40,120 --> 00:04:42,522 >> Quindi, come possiamo ripetere i processi? 77 00:04:42,522 --> 00:04:45,160 In Scratch, abbiamo usato il blocco di ripetizione. 78 00:04:45,160 --> 00:04:48,580 In C, useremo un ciclo For. 79 00:04:48,580 --> 00:04:51,290 Diamo un'occhiata alla sintassi per i cicli for. 80 00:04:51,290 --> 00:04:57,140 >> Ogni ciclo For è composto da tre parti, una inizializzazione, condizione, 81 00:04:57,140 --> 00:04:58,592 e un aggiornamento. 82 00:04:58,592 --> 00:05:01,550 Il tuo ciclo For inizializza una variabile quando prima 83 00:05:01,550 --> 00:05:02,960 entra nel ciclo For. 84 00:05:02,960 --> 00:05:07,100 Se la condizione è soddisfatta, il corpo del ciclo verrà eseguito. 85 00:05:07,100 --> 00:05:10,070 In seguito, l'aggiornamento verrà eseguito. 86 00:05:10,070 --> 00:05:13,630 >> Se la condizione è ancora soddisfatta, il loop verrà eseguito e aggiornare e 87 00:05:13,630 --> 00:05:18,580 ripetere fino a quando la sua condizione restituisce true. 88 00:05:18,580 --> 00:05:21,450 Sei condizione deve infine valutare a false, però, perché 89 00:05:21,450 --> 00:05:24,490 a differenza di Scratch, non lo facciamo Per qualsiasi loop per sempre. 90 00:05:24,490 --> 00:05:28,270 Il vostro programma deve terminare alla fine. 91 00:05:28,270 --> 00:05:32,330 >> Ecco un esempio di un ciclo For che si potrebbe desiderare di utilizzare per Mario. 92 00:05:32,330 --> 00:05:36,790 L'inizializzazione dichiara un i numero intero con valore 0. 93 00:05:36,790 --> 00:05:40,750 Fino a quando i è inferiore all'altezza, il corpo del loop verrà eseguito e 94 00:05:40,750 --> 00:05:44,980 aumentare i di uno e ripetere fino a quando i è maggiore o 95 00:05:44,980 --> 00:05:47,220 uguale all'altezza. 96 00:05:47,220 --> 00:05:49,140 >> Ora, il mio ciclo For è indice zero. 97 00:05:49,140 --> 00:05:52,270 L'INT parte da zero, non uno. 98 00:05:52,270 --> 00:05:55,320 Se ho scelto uno, allora la mia condizione sarebbe devono anche essere diverso per 99 00:05:55,320 --> 00:05:58,740 il loop per eseguire l' stesso numero di volte. 100 00:05:58,740 --> 00:06:03,490 Ricordate questa attenzione quando si è la scelta della inizializzazione e la vostra 101 00:06:03,490 --> 00:06:08,660 condizione, e consultare questo grafico a doppio controllo. 102 00:06:08,660 --> 00:06:13,430 >> Una delle grandi cose di informatica scienza è che non c'è proprio tanti 103 00:06:13,430 --> 00:06:15,490 modi per eseguire le cose. 104 00:06:15,490 --> 00:06:19,450 È possibile scegliere se si iniziare da zero o uno. 105 00:06:19,450 --> 00:06:22,380 Se non si desidera utilizzare un ciclo For, è anche possibile utilizzare un ciclo while per 106 00:06:22,380 --> 00:06:26,530 ripetere affermazioni finché si mantenere l'essenza di un ciclo For, 107 00:06:26,530 --> 00:06:31,430 inizializzazione, condizione e aggiornamento. 108 00:06:31,430 --> 00:06:36,890 Una volta che capiamo il ciclo For che noi siamo più comodi con, quindi abbiamo 109 00:06:36,890 --> 00:06:38,450 può completare Mario. 110 00:06:38,450 --> 00:06:41,540 >> Siamo arrivati ​​per l'input dell'utente e poi identificato un 111 00:06:41,540 --> 00:06:43,580 modello per ogni riga n. 112 00:06:43,580 --> 00:06:49,990 Quindi per ogni riga da zero a n meno 1 stamperà il numero appropriato di 113 00:06:49,990 --> 00:06:55,340 spazi, quindi il numero appropriato di hash in base al nostro modello, e 114 00:06:55,340 --> 00:06:57,180 poi una nuova linea. 115 00:06:57,180 --> 00:06:59,640 Con questo, avete la vostra piramide. 116 00:06:59,640 --> 00:07:02,630 Il mio nome è Zamyla, e questo è stato Mario. 117 00:07:02,630 --> 00:07:11,765