ZAMYLA CHAN: E 'un me, Zamyla. Oggi in Mario, stiamo andando a essere disegnare la metà della piramide per Mario a salire. Quindi cerchiamo di parlare della nostra to-do di per questo problema. Stiamo andando a voler per richiedere e convalidare l'utente con un ingresso valido di come alta vogliono piramide di Mario di essere. E poi, stiamo andando a disegnare. Quindi cerchiamo di iniziare con la richiesta e convalidare l'utente per il loro contributo. Siamo in grado di fare uso del Funzione CS50 Biblioteca ottenere int che farà in modo che l'utente immette un numero intero. Eventuali numeri interi positivi, negativi interi, il numero 0 sono tutti gioco equo. In caso contrario, l'utente verrà chiesto di riprovare fino a quando non immettere un numero intero valido. Ora, anche se get int fa un sacco di lavoro per noi nel garantire che il utente ci dà un numero intero, abbiamo ancora bisogno di applicare un po ' vincoli aggiuntivi sulla. Dopo tutto, non possiamo avere Mario arrampicata una mezza piramide di altezza negativo 12. In aggiunta a ciò, la specificazione problema dice che solo noi possiamo permette a Mario di salire una piramide di altezze tra 0 e 23. OK, in modo che significa che dobbiamo per richiedere continuamente l'utente a darci una valida il numero e continuare solo una volta ci hanno dato una altezza valida. Come lo facciamo? Ebbene, processi continui ci danno l'idea di fare qualcosa loops-- ripetitivo. Un ciclo in C come mentre ciclo che continua volontà eseguire il corpo del ciclo finché la condizione data restituisce true. Non appena tale condizione FALSE, il programma procederà fino ciò che viene dopo. Così, mentre i cicli sono un modo di garantendo che continuamente richiedere all'utente per un ingresso valido. E una volta che ci danno un input valido, si procederà a tutto ciò che viene dopo. Sappiamo che stiamo andando a chiedere all'utente ingresso almeno una volta. Così ora veniamo a una sorella della mentre ciclo, che è il do while. Fare while eseguirà il corpo del ciclo almeno una volta. Così senza controllare la condizione, si eseguirà il corpo del ciclo. E poi verificare le condizioni per vedere se deve ripetersi. Questo è utile quando stiamo convalidando l'input dell'utente. Sappiamo che stiamo andando chiedere loro almeno una volta. Quindi un ciclo Do While potrebbe simile a questo. Abbiamo un intero n. E all'interno della do mentre ciclo, abbiamo immediatamente richiedere all'utente un numero intero. Se n è valido, allora noi li Prompt ancora e ancora e ancora fino a che darci quel intero valido. Infine, una volta che n è un input valido, ci procedere al resto del nostro programma. Così torniamo alle specifiche e controllo quali sono le condizioni per un ingresso valido sarà. Le altezze validi stanno per essere compreso tra 0 e 23, inclusi. Così altezze non validi stanno per essere inferiore a 0 o superiore a 23. Quindi ricordatevi di progettare la sua condizione con attenzione, sapendo che la condizione per il fai ciclo while dovrebbe essere mentre n non è valido. Ora, questo non sta per essere una semplice espressione booleana singolo. Stiamo andando ad avere per combinare due espressioni diverse per rendere tutta la nostra condizione. Così facciamo solo un'occhiata ad una tabella di verità ho già dato il suggerimento che siamo andando a che fare con due booleani. Quindi, ecco una tabella di verità in cui ho hanno due Booleans-- booleano 1 e 2. Così abbiamo la possibilità di valutare Bool1 e Bool2 o Bool1 o Bool2. E sarà vero solo se entrambi Booleani restituiscono true, mentre tutti o sarà vero finché uno dei i due booleani restituisce true. OK, in modo da prendere un attimo, mettere in pausa questa video e digerire questa tabella di verità. Sarò proprio qui in attesa. Quando torni, vedi se si può mettere insieme una espressione booleana per il vostro condizioni di n essere un input non valido. Quindi, ora che abbiamo ingresso utente valido, andiamo andare avanti e parlare di come noi potrebbe disegnare la metà piramide. Qui, in questo semplice editor di testo, Ho disegnato una piramide allineato a sinistra. Ma sappiamo che abbiamo bisogno del nostro piramide per essere allineato a destra. Quindi, come potrei fare questo? Beh, potrei provare a spingere tutto al lato da solo mettendo un po ' carattere in mezzo. E poi, per il prossimo la linea, ho intenzione di mettere alcuni più caratteri a spingere lungo, e così via e così further-- forth-- fino a quando ho il diritto allineato piramide. Quindi noi abbiamo il diritto di piramide align, ma non sembra così grande con i puntini. Ma abbiamo ancora voglia di mantenere quella bella distanza. Quindi ho intenzione di letteralmente inserire alcuni spazi. Invece di tre punti, io mettere uno, due, tre spazi. Sulla seconda riga. Metterò uno, due spazi. E sulla penultima la linea, solo uno spazio. E qui ho il diritto allineato piramide. Dal fare l'esempio nel testo Editor, abbiamo un'idea per il modello che useremo per disegnare la metà piramide. Per ogni riga, quello che abbiamo fatto è digitiamo alcuni spazi, e poi digitato alcuni hash, e poi digitato il tasto Invio, che è la creazione di una nuova linea. Quindi, ora che abbiamo che, andiamo un passo avanti e trovare un modello. Quindi ho intenzione di dire, per la interesse di questo esempio, abbiamo a che fare con una altezza di 8. La prima riga sta per avere due hash che segue sette spazi. I tre secondo-- hash, sei spazi. Terzo row-- quattro hash, cinque spaces-- così via e così via fino ad arrivare alla riga all'ennesima potenza. Allora, vi chiedo per l'ennesima riga, quanti hash stiamo andando ad avere e quanti spazi? Quindi è a voi per capire un formula per rappresentare il numero di hash e quanti spazi sono necessari per l'ennesima riga quando si dispone di una certa altezza. Ora, quando si sta per capire questo fuori, fare attenzione a come si sta indicizzazione. Quello che voglio dire con questo è che nella vita quotidiana tutti noi iniziare a contare, di solito da 1. Ma in CS50 e in informatica in generale, siamo 0 indicizzato. Quindi la prima fila sarebbe n da 0 a differenza 1. Fate attenzione di questo quando sei cercando di capire il vostro modello. Così ora torniamo a come stiamo andando a disegnare il nostro piramide. Per ogni riga, stiamo andando a voler stampare gli spazi, la stampa gli hash, e quindi stampare una nuova linea. Il suggerimento qui è la parola "per" ogni riga. In C, abbiamo un costrutto chiamato un ciclo for, che è composto di un inizializzazione, una condizione, un aggiornamento, e il corpo del ciclo. Dire che volevo dire, ciao mondo, 50 volte, i miei per ciclo sarebbe simile a questo. Ho inizializzo il mio intero a 0. La condizione è che è inferiore a 50. E poi il mio aggiornamento è solo incrementando Io di uno ogni volta. Possiamo anche usare i cicli for per scorrere le cose. Si noti qui come non abbiamo difficile codificato un numero, ma piuttosto collocato la variabile altezza invece nella condizione. Quindi quello che sto facendo qui è che io sono l'iterazione su ogni riga della piramide. Posso fare qualcosa per ogni fila all'interno del corpo del mio ciclo. Cosa stiamo facendo dentro il corpo del ciclo? Beh, come abbiamo già detto, stiamo stampando spazi e stiamo stampando hash e stiamo stampa di una nuova linea. Quindi il mio esterno per il ciclo sarà simile a questa. I iterare su ogni riga della piramide, usando, in questo caso, altezza variabile che memorizza l'altezza della piramide. All'interno del corpo di tale ciclo, sono andare in stampa ripetutamente spazi, stampa gli hash ripetutamente, e quindi stampare una nuova linea. Così ora, utilizzando tutti i concetti che Ho parlato in questa passeggiata-through, si dovrebbe essere in grado di richiedere utente per l'input, convalidare tale ingresso, e quindi disegnare la metà piramide. Il mio nome è Zamyla, e questo è CS50.