>> [Jouer de la musique]
>> ENCEINTE 1: Très bien, tout le monde.
Bienvenue à votre dernière section avec moi.
Il a été tout à fait le semestre.
Je ne peux pas croire que ce est, comme, semaine 12 ou 11, quelque chose comme ça.
Mais parce que ce est notre dernière section, nous avons beaucoup de bonbons.
Et je vais essayer de vous aussi bien que moi prép
pouvez pour votre quiz sur mercredi.
Donc probablement pas la meilleure façon de, comme, section d'extrémité un avis de quiz.
Mais nous allons essayer de le rendre amusant.
Et il ya toujours des bonbons.
Donc, je espère, que ferez mieux.
>> Votre quiz va être assez près la même chose que Quiz Zero.
Ça va être le même format, même longueur.
Vous serez en chambres dispersées à travers le campus, car il
sont près de 900 d'entre vous, et nous ne pouvons pas tout ce que vous maintenez dans les salles de ce genre.
Veillez donc à regarder tous Celui documentation Quiz
en ligne à cs50.harvard.edu ce soir ou demain soir.
Assurez-vous que vous savez où vous êtes aller, ce que vous devez apporter.
Vraiment, il vous suffit de vous amener et un crayon, et vous devriez être bien.
Les questions seront très sensiblement les mêmes.
Il y aura probablement un couple choix multiple, une brève réponse de couple,
quelques codage, peut-être certains vrai / faux, correspondant sortes de choses.
Donc, vous ne devriez pas être trop surpris par le format.
>> Ce qui peut être surprenant, ce est la longueur, qui, les années précédentes,
a été beaucoup plus long.
Dans mon année, je ne ai pas un seul ami que je me souviens fin de l'examen.
Il y avait comme multiples pages laissées en blanc.
Ainsi, la longueur peut être sorte de désorientation
juste parce que dans quelques années, il a été beaucoup plus longue que Quiz One.
Je ne ai aucune idée de ce que ce est va être comme cette année,
mais ce est quelque chose d'être conscient de.
>> En outre, le les gens ont tendance difficulty--
Quiz de trouver un beaucoup plus Quiz difficile que zéro.
Encore une fois, vous savez, si vous sorte de marche
à se sentir un peu mal à l'aise parce vous ne avez pas faire aussi bien que vous pensiez
vous ou vous vous sentez comme vous ne avez pas faire aussi bien que vous avez fait sur un Quiz,
ne oubliez pas qu'il ya probablement une beaucoup d'autres gens se sentent de cette façon.
Je étais certainement l'une de ces personnes.
Quiz un, comme, m'a jeté pour une boucle.
Et mes amis ont cette grande photo d'eux à JP Licks
sorte de avec ces énormes sundae, comme étant, un Quiz,
et en regardant comme se ils étaient en larmes.
>> Ce est donc un sentiment général.
Ce est un test difficile, ce est un quiz difficile.
Évidemment, si vous sortez et vous se sentir comme vous bercer, super pour vous.
Mais savez que vous êtes probablement pas-- vous êtes presque certainement pas
seul si vous sortez se sentir comme, hein, probablement aurait pu obtenir mieux.
C'est dur.
Mm-hm.
>> AUDIENCE: Combien vaut la peine par rapport à [inaudible]?
>> ENCEINTE 1: Ce est la même valeur.
Ouais.
Mais encore une fois, ce est aussi va être affecté par la façon dont le reste de la classe
fait, comment votre section fait, comment vous avez amélioré au fil du temps.
Le classement est un peu comme une boîte noire.
Alors, que le nombre réel ou le pourcentage que vous obtenez
ne est pas nécessairement comme directement en corrélation avec la qualité
vous allez obtenir.
Il ya beaucoup de facteurs qui entrent en elle.
>> Donc, avec cela, nous allons passer en revue certains avis de quiz.
Je vais juste pour exécuter cette comme la dernière fois pour vous les gars.
Je ai toutes les réponses d'interroger un de l'année dernière.
Donc, si vous voulez les gars à tirer que sur vos propres ordinateurs,
si vous avez pris cet examen avant et vous avez des questions,
Je pensais que nous pouvions juste passer par un certain
des plus difficiles les à ce sujet.
Donc, nous pouvons en parler, peut-être obtenir un peu plus de perspicacité
dans l'intuition derrière certains des ces questions, comment les aborder.
>> En outre, comme la dernière fois, Je ai un pont de 100 diapositives
qui a fondamentalement tout des diapositives que je
ont préparé pour précédente sections depuis votre dernière je quiz--
avoir dans cette plate-forme.
Nous pouvons donc passer par à peu près tout
que nous avons parlé avance que peut-être vous
veulent un peu plus de précisions.
Nous pourrions le faire en premier.
>> Mais sinon, je suis super heureux juste genre de travail
à travers ces problèmes avec vous.
Et je suis vraiment ici pour se concentrer sur ce que vous en pensez
serait plus important de se concentrer sur.
Comme, évidemment, tous ce genre de choses est important.
D'autant plus que nous passons par un Quiz, Je vais certainement faire remarquer des choses comme,
oh, cela pourrait être quelque chose vous voulez vraiment savoir
ou si vous voulez avoir sur votre feuille de triche.
Je vais vous dire les choses comme nous sorte de passer par.
>> Donc, sur cette note, y at-il des choses que vous les gars aimeraient aller plus?
Aussi, si je ne l'ai pas dans mon jeu, nous pouvons tirer quelque chose sur le web,
ou nous pouvons essayer de faire jusqu'à un exemple à la volée.
Mais tous les concepts que vous les gars sont un peu floue sur.
[? Brian,?] Avez-vous have--
>> AUDIENCE: Oh, est-il cumulatif?
Comme, est les trucs sur Quiz Zéro va être ici?
>> ENCEINTE 1: Ce est cumulatif, mais ce est beaucoup plus
l'accent sur les choses depuis votre dernière quiz.
Alors évidemment, vous les gars ont appris sur les variables et les boucles,
et conditionnelles.
Et ce ne est pas comme ceux qui viennent aller, parce qu'ils sont
évidemment inhérent à tout autre chose que nous avons appris aujourd'hui.
>> Il pourrait y avoir une question sur les sortes, ou là
pourrait être une question sur différentes recherches.
Ou il pourrait y avoir un couple peut-être des questions sur quelque chose que vous
ayant à voir avec la compilation ou des erreurs différentes.
Mais si vous avez regardé Un Quiz de l'année dernière,
vous remarquerez que ce est très centré sur les choses
qui ont passé depuis votre dernière quiz.
>> Pourquoi cette porte toujours fermée à clé?
Cela me dérange vraiment.
Parce que je essaie toujours de passer par là.
>> Donc, ce est à peu près comment le quiz sera.
Donc, y at-il des concepts qui vous les gars aimeraient aller plus?
Ou nous pouvons sauter à droite dans simplement en regardant un Quiz
de l'année dernière et le type de passe à travers des questions de pratique là-bas.
Nous pouvons également basculer.
Ce ne est pas une sorte d'un moment de chose.
Des questions?
Oui.
>> AUDIENCE: Puis-je poser une question sur another--
>> ENCEINTE 1: Un autre?
>> PUBLIC: Ce est d'une autre année.
>> ENCEINTE 1: Ouais.
Nous pouvons également faire une autre année.
>> AUDIENCE: OK.
Ainsi, sur 2011.
>> ENCEINTE 1: 2011.
Ooh, ce était l'année avant moi.
Laisse-moi ôter cela.
>> PUBLIC: Je pense.
>> ENCEINTE 1: Cet aspect ratio est de me jeter hors.
>> AUDIENCE: 11 et 12.
>> ENCEINTE 1: 11 et 12.
D'ACCORD.
Eh bien, ici, pourquoi faisons-nous pas cela?
Vous guys-- tout le monde juste prendre une couple des minutes de regarder à travers des quiz.
Et nous vous présentons une liste.
Et puis nous irons à travers eux.
Bien?
Alors que je reçois un tas de ce genre de choses mis en place.
D'ACCORD.
Je vais juste écrire les choses sur le papier.
>> 2011, 11 et 12?
Je vais changer cette affichage.
D'ACCORD.
Ce est mieux.
Ce cours.
Bien.
>> Quelqu'un d'autre a tout ce que ils aimeraient commencer?
Aussi, je ai oublié de dire, si vous voulez plus d'un tas de gens qui parlent de vous
et vous donne juste une fissure Bien sûr dans les six dernières semaines,
nous courons un avis session du 07:00
à 08h30 ce soir, au nord-ouest B103, qui est également arrivé
la dernière fois, où il va être moi, Hannah, Daven, avec Gabe
et Rob genre d'aide de la En marge de tout type de jeter tous
les informations que vous pourriez voulez avoir sur votre feuille de triche,
slash, le savoir en général il.
PUBLIC: Ce est également en ligne, à droite?
ENCEINTE 1: Il est également en ligne.
Donc, vous pouvez également rester en dehors de cette Météo Icky, aller à votre dortoir,
et en direct-Stream si vous le souhaitez.
Je suis sûr que beaucoup de personnes-- je sais que je ne
être faire que si je étais à votre place.
D'ACCORD.
Alors pourquoi ne pas commencer with-- pendant que vous guys-- espérons-le,
vous cherchez à travers.
Sinon, je pourrais juste commencer à travailler à travers différentes choses sur Quiz Une
l'an dernier, sauf si vous avez des questions spécifiques.
>> Nous allons commencer avec ce question ici de piles.
Alors que tout le monde me souviens ce type de pile est?
Comment nous avons tendance to-- quelqu'un peut donner juste me une description générale d'un empilement?
Un type de structure de données.
D'ACCORD.
Il est donc l'un des structures de données qui nous
attendez-vous à être familier comme with-- piles, les tableaux, les files d'attente, ainsi de suite.
Oui.
>> Public: tout d'abord Dans, Last Out, quelque chose.
>> ENCEINTE 1: Ce est d'abord entré, dernier sorti.
Exactement.
Donc, une pile est exactement ce que nous tendons à penser
quand nous pensons d'un empilement de choses.
Ainsi, une pile de plaques.
La première plaque vous posez va être à la base,
et il va être la dernière celui que vous supprimez à la fin.
Parce qu'ils se empilent.
>> Et vous prenez l'un sur le fond, généralement, les choses se écrasent et se brisent.
Donc piles que vous pouvez penser Tout comme un empilement de plaques.
Ou l'exemple nous aimons toujours utiliser est dans les salles de D, vous avez les plateaux,
ils sont tous entassés, et vous prenez du haut.
Donc, le dernier est le premier dans une destination.
D'ACCORD.
>> Ainsi, dans le cas ici, nous voyons-nous have-- Je me demande
si je peux réellement agrandir un peu.
Nous avons donc cette structure ici.
Droite?
Donc, vous avez une certaine structure qui a un certain nombre de capacités int.
Alors qu'est-ce que nous pensons que cela représente?
Ce est un tableau avec la taille CAPACITÉ.
>> Donc, cela représente vraiment notre pile en général.
Notre pile est vraiment juste une tableau avec un certain nombre d'ensemble
ce est son max, ce est sa capacité.
Et puis nous avons une certaine taille de int, qui permettra de suivre la taille de notre pile
tout au long quand nous l'utilisons.
D'ACCORD?
>> Dans ce cas ici, nous disons que notre taille de la pile a été initialisé à 0.
Nous avons donc une pile vide en ce moment.
Et puis nous voulons terminer la mise en œuvre de la pop
de telle sorte qu'elle renvoie l'int au sommet.
Et puis se il est vide, il renvoie une négative.
D'ACCORD?
Donc, je veux que vous les gars juste à penser à propos de ce que nous pourrions y faire.
Quel pourrait être l'un des premiers choses que nous voulons vérifier?
Il ya une grande chose ici.
Chaque fois qu'il says-- si jamais il ya une certaine Si la déclaration, comme «Si la pile est vide,"
ou "Si ce renvoie null," ou "Si ce est ce que" - désolé.
>> AUDIENCE: Ecrire une instruction If.
>> ENCEINTE 1: Droit.
Vous pouvez écrire une instruction If.
Et ce est probablement l'un des premières choses que vous voulez vérifier.
D'ACCORD.
Chaque fois qu'ils vous donnent un peu comme un cas d'angle
comme ça, ce est généralement une des premières choses
vous allez vérifier dans votre code.
>> De plus, quelque chose à reconnaître pour le quiz
est si vous avez un moyen inefficace de faire quelque chose, l'écrire.
Parce que nous ne sommes pas le classement vous sur la conception, nous sommes
vous classement sur la justesse pour les quiz.
Donc, même si vous savez que ce est un super- mauvaise façon de faire quelque chose mais il fonctionne,
écrire, OK?
>> Enfants Littéralement, je ai vu la dernière année-- si vous regardez celle de l'année dernière,
ils sont comme, font la pyramide Mario.
Et ils ont littéralement juste fait "print, hachage, impression, hachage, hachage, impression, hachage,
hachage, hachage. "
Mais ce est correct.
Il ne ce que nous a dit à, de sorte que vous ne pouvez pas retirer des points.
Si vous êtes jusqu'à la fil, évidemment, vous,
vouloir obtenir une solution plus élégante, et la solution la plus élégante sera probablement
être moins de code, ce qui signifie probablement que vous ont une plus grande chance d'avoir raison.
Mais si vous êtes comme, vous savez ce, non, je ne ai pas le temps, je
sais que ce est une solution, ce ne est pas le meilleur, l'écrire.
Et vous pouvez même écrire sur le côté, je sais que ce est terrible,
mais je sais que cela fonctionne.
Alors juste un heads-up.
D'ACCORD.
>> Alors, évidemment, la première chose Si cette déclaration est.
Alors, que faisons nous pensons que ce Si déclaration va être?
Et en fait, laissez-moi ouverte mon grand éditeur Sublime.
Je vais coder cette puis vous montrer les gars quand ce est fait.
Donc int pop.
D'ACCORD.
Donc, si nous avons cette int pop void-- si évidemment,
ce est une fonction qui prend en rien et renvoie un entier, non?
Donc, il va juste parler cette pile que nous avons créé.
>> Il suffit donc de traduire cette dernière phrase, "si la pile est vide,
pop devrait revenir négative 1, "comment pourrions-nous le faire?
Donc, si quoi?
Comment savons-nous que la pile est vide?
Ce est juste la taille est égale à 0.
Stack.size est égal à 0.
Aussi, je suis genre d'écriture aveugle ici.
Donc, si je fais toute typos-- oh, aussi oublié de mentionner cela.
>> La semaine dernière, je suis totalement figured out ce que notre problème était avec JavaScript.
Ne pas tirer, je et D. Vous ne devez
Je capitaliser et obtenir élément par Id.
Et ce était la toute erreur.
Donc, si vous les gars revenir en arrière et effectivement regarder à travers mon code,
si vous venez de faire tout ce qu'un d minuscule, "oublier élément par Id,"
cela va fonctionner.
Donc, comme je l'ai promis, je étais très proche.
Je ai juste quelque chose de majuscule Je ne étais pas censé, qui
Je suis sûr que vous avez eu dans votre dernière PSET.
>> Donc, si notre taille est égale à 0, Que devons-nous faire?
>> AUDIENCE: rendement négatif 1.
>> ENCEINTE 1: rendement négatif 1.
Cool.
Alors maintenant, que faisons-nous?
Nous voulons quelque chose de pop off.
Maintenant ce est le cas où nous avons quelque chose.
Notre taille est supérieure à 1 ou supérieur à 0, non?
Nous avons fait quelque chose.
Donc, ce que nous voulons faire, ce est nous envie de revenir ici.
Nous allons dire que nous voulons retourner haut de la pile.
D'ACCORD?
>> Alors, comment pouvons-nous le faire?
Comment pouvons-nous revenir en haut de la pile?
Rappelez-vous, notre pile est juste un tableau, non?
Il a une certaine capacité que nous lui avons donné.
Comme nous avons mis les choses on-- ou effectivement, nous allons écrire "push" après cela.
Si les choses sont en there-- peut-être une image aidera.
Hm, je aime grande craie mieux.
>> Donc si-- et vous pouvez juste penser à cela comme notre pile.
Ce est donc à 0, 1, 2.
Je ne sais pas pourquoi mes boîtes deviennent plus petits.
Mais il.
D'ACCORD.
>> Donc, ce est une certaine pile d'une capacité de cinq.
Et disons que nous avons quelque chose ici et nous avons quelque chose ici.
Donc, à ce stade, notre la taille est égale à quoi?
2.
Et si nous voulons pop quelque chose hors de lui,
cela signifie que nous voulons débarrasser de ce droit ici.
D'ACCORD?
Alors comment pourrions-nous retourner cette valeur?
>> AUDIENCE: Taille moins 1.
>> ENCEINTE 1: Droit.
Donc taille moins 1, ou vous pourrait faire la taille minus.
Mais nous ne pouvons pas faire la taille.
Ce est l'intérieur d'une structure, non?
Donc stack.struct.
ou stack.size.
Ce est notre index droit il.
D'ACCORD?
>> Et puis si nous regardons de retour à notre structure ici,
nous remarquons que, pour accéder effectivement le tableau,
nous devons faire stack.numbers à accéder réellement ce tableau.
Alors que renvoie le sommet de la pile.
>> Mais quelque chose that-- si vous les gars look à la clé de réponse, ce est tout ce qu'ils
vous donner.
Donc, ce est ça.
Mais je pourrais faire valoir qu'ils sont miss-- ooh, pas ce que je voulais.
Je pourrais dire que ce sont manque quelque chose, because-- oui.
AUDIENCE: Diminuer la taille.
ENCEINTE 1: Droit.
Nous devons diminuer notre taille maintenant.
Alors, quelle est la plus délicate sur ce est une fois de retour
quelque chose, votre fonction de la sortie va, non?
Donc, ce que nous pourrions faire, ce est effectivement diminuer notre taille d'abord.
Et alors nous pouvons simplement ne stack.size.
>> Nous pouvons simplement utiliser stack.size que notre indice, pourrions-nous pas?
Parce que si stack.size 2 est, nous le diminuer.
Et donc ce est une, qui est notre indice réelle.
Une fois que nous nous débarrassons de cela, nous avons fait avoir une seule chose dans notre tableau.
Donc, il fait les deux.
AUDIENCE: [inaudible]?
>> ENCEINTE 1: Eh bien, dans ce cas, Nous revenons tout juste l'élément
au sommet qui est à notre taille qui est au sommet.
Mais nous ne avons rien fait à la taille après que nous enlevé cet élément.
Cela n'a pas encore changé notre taille.
Cela ne fait intrinsèquement changer notre taille.
>> Mais pour le rendre un peu plus clair, vous pourriez faire stack.size minus.
Pour moi, il est, je ne sais pas, un peu plus clair that-- ah,
que vous êtes en train de changer la taille et en le retournant.
L'autre façon est bien, parce que vous étiez en train de changer et le retour
à la fois.
Mais ce est juste une autre façon d'écrire -ce que je voulais vous montrer les gars.
Est-ce logique?
Stacks, je pense, sont beaucoup plus facile que les files d'attente.
[Rires]
D'ACCORD.
Avez-vous avez des questions spécifiques environ 11 et 12, ou just--
>> PUBLIC: Je pense que ce était la pile.
>> ENCEINTE 1: La taille de la pile?
>> AUDIENCE: Ouais.
>> ENCEINTE 1: Gotcha.
D'ACCORD.
Oui, vous pouvez le faire en une de ces deux manières.
D'ACCORD.
>> Nous avons donc maintenant l'autre.
Ce est vraiment bizarre, comme ne pas avoir cela sur mon écran.
Donc, si nous regardons ici, nous voulons maintenant compléter la mise en œuvre de la poussée,
qui met réellement quelque chose, va et insère quelque chose dans notre file d'attente,
ou dans notre pile.
D'ACCORD?
>> Donc, si nous remarquons, nous avoir un certain nombre de choses.
Nous avons nos great-- si tout le reste, chaque fois que nous avons un d'eux,
Vous devriez obtenir au moins la moitié un point, parce que tout ce que vous avez à faire
est convertir en C. Et ils vous donnent la moitié de celui-ci.
Donc, "si une pile est pleine ou elle est négative,
puis poussez devrait renvoyer false ".
D'ACCORD?
>> Donc, nous voulons seulement positif entiers soient sur notre pile.
Bien?
Et cela va soit retourner true ou false.
Donc, nous devrions [inaudible] bool.
D'ACCORD.
Donc traduire.
>> AUDIENCE: [inaudible].
>> ENCEINTE 1: Oh, merci.
Ouais.
Ce est pourquoi je ai vous les gars.
Int n.
Parfait.
Parce que nous mettons quelque chose sur notre pile.
Nous devons effectivement un nombre.
D'ACCORD.
>> Il suffit donc de prendre cette dernière ligne ils nous ont donné, notre genre de cas de coin,
que pensez-vous que nous avons ici?
De toute évidence, nous allons avoir une certaine Si.
D'ACCORD.
Alors nous avons dit, Si notre pile est plein ou si n est négatif.
Donc probablement plus facile pour commencer avec, de sorte que si n est inférieur à 0
ou-- souvenir de votre belle Opérateurs ET et OU là.
>> Comment pourrions-nous vérifier voir si notre pile est pleine?
Ce qui se produit?
>> AUDIENCE: Taille capacité égale.
>> ENCEINTE 1: Exactement.
Parfait.
D'ACCORD.
Et ce que voulons-nous y faire?
>> AUDIENCE: return false.
>> ENCEINTE 1: Retour faux.
Parfait.
Donc, à mi-chemin, à droite?
À tout le moins, vous les gars aura la moitié de ce produit.
Donc, nous allons réfléchir à ce sujet.
>> Donc, ce est la pile, nous commençons par.
Nous essayons de mettre un élément ici.
>> Nous avons une taille qui est égal à 2 en ce moment.
Nous avons une capacité égale à 5.
Et disons que nous avons un n qui est égal à 3.
Nous devons donc entrée 3 dans cet espace.
Et nous avons besoin à l'entrée dans l'indice 2.
Droite?
>> Alors, comment pouvons-nous faire cela?
Essayer de nous assign-- vouloir accéder à notre réseau.
Donc stack.numbers.
Mais à quel indice serait nous voulons que ce soit?
>> AUDIENCE: [inaudible].
>> ENCEINTE 1: Ouais.
Stack.size.
Et nous voulons que cela n égale, non?
>> AUDIENCE: [inaudible].
ENCEINTE 1: Je ai été effectivement simplement en regardant ça.
Je pense que ce est faux.
>> AUDIENCE: Vous ne voulez pas l' passé la taille actuelle l'espace?
>> ENCEINTE 1: Eh bien, si nous regardons ici, notre taille à ce stade est deux.
Nous voulons aller dans l'index 2, parce que ce est le sommet de notre pile.
Je dirais donc qu'il devrait être stack.size,
et puis vous augmenteriez stack.size.
Tout le monde est d'accord?
Je pense que je suis d'accord avec cela.
Les gars, vous pouvez discuter avec moi si vous le souhaitez.
Ou pas discuté, mais nous pouvons en discuter.
>> AUDIENCE: [inaudible].
>> ENCEINTE 1: Mm-hm, est l'endroit où il est ouvrir en raison de l'indexation zéro.
Ainsi, alors que dans la première partie, Je pensais qu'ils avaient tort,
et ils étaient en fait juste, ce part, je pense effectivement qu'ils avaient tort.
Je dirais que vous devriez définitivement entrée ici.
Je pense que nous convenons tous nous avons une taille de 2.
Ce est exactement là où nous veulent que notre nouveau numéro d'aller.
Donc stack.numbers au stack.size devrait égaler n.
Et puis nous le ferions incrémenter le stack.size.
++.
Et puis qu'est-ce que nous voulons faire?
Il ya une dernière chose que nous devons faire si nous avons inséré avec succès ce?
Retour vrai.
Et maintenant, vous avez terminé.
Donc, je me sens comme si ce était tout le moins moins stack.size et stack.size ++ qui
choses foiré.
Ugh.
Je keep-- je ai ce réflexe tendance à toujours frappé
Contrôle, S, parce que je ne vouloir perdre toute de mon travail.
Mais je ne ai pas besoin de le faire maintenant.
D'ACCORD.
Donc, ce était pile.
Cool.
>> Y at-il quelque chose?
Avez-vous les gars trouvé d' d'autres questions que vous feriez
envie d'aller au-dessus de questionnaires précédents?
Sinon, nous pouvons commencer à parler du genre Un Quiz travers de l'année dernière.
Oui.
>> AUDIENCE: Pour la première part, je ne ai pas vraiment
comprendre comment vous avez supprimé le nombre.
Est-ce pas encore là?
>> ENCEINTE 1: Le nombre est toujours là.
Mais ce qui se passe, ce est que parce que vous avez il dit que le haut de votre pile
est ici, quand vous allez à ajouter quelque chose sur la pile, il vous reste plus qu'à le remplacer.
>> AUDIENCE: Oh, OK.
ENCEINTE 1: Ouais.
Donc, ce est comme il a oublié et ce est là genre de chose, même si ce est là.
AUDIENCE: [inaudible] ou quelque chose?
ENCEINTE 1: No.
Parce que nous sommes dans un tableau, vous ne avez pas
se inquiéter about-- vous aurez juste remplacer quand vous en avez besoin.
Bien.
D'autres questions?
Sinon, nous allons tout simplement pour commencer à travailler à travers.
Ouais.
>> AUDIENCE: Eh bien, celui-ci est sur le 2013, mais juste en passant par les trucs de SQL.
ENCEINTE 1: SQL?
D'ACCORD.
Donc, ce est 26 à 29.
AUDIENCE: Ouais.
ENCEINTE 1: OK.
Belle.
Disons tirez les vers le haut.
Oh, regarde.
Avez-vous les gars de profiter de la Steve Ballmer parle, d'ailleurs?
Ce était assez drôle, à mon avis.
Je aime que chaque fois que je évoque de CS50 site Web pendant article, ce est comme, oh,
regarder section.
Et je suis comme, mm.
>> AUDIENCE: Pouvons-nous le faire?
>> ENCEINTE 1: Nous allons le faire à la fin.
Comment ça?
Parce que je sais que vous les gars ont toujours voulu.
Donc, nous allons le faire à la fin.
Une des questions.
>> AUDIENCE: [inaudible].
ENCEINTE 1: Ce sera une section méta.
PUBLIC: Ce est comme cinq secondes.
AUDIENCE: Vraiment?
PUBLIC: Ce est comme 20 secondes.
[Interposant VOIX]
[Rires]
ENCEINTE 1: je aime ça vous avez déjà fait
, ce qui est ce qui me rend heureux.
D'ACCORD.
26.
D'ACCORD.
En fait, nous allons juste refléter cela maintenant, parce que je ne peux pas.
Ce est gênant.
D'ACCORD.
Maintenant, je peux tout voir.
Belle.
D'ACCORD.
>> Alors, évidemment, ce qui devrait ramener grands souvenirs de [? CSG?] Finances.
La moitié d'entre vous à propos de la vôtre ont classé maintenant.
L'autre moitié, je vais arriver à très, très bientôt, je le promets.
>> Donc, nous avons une certaine table SQL ce est ici comptes.
Probablement similaire à les tables utilisateur de vos gars.
Et nous avons un certain nombre ce était une clé primaire
et représente un Numéro de compte à 12 chiffres.
Et l'équilibre est combien d'argent ils ont.
Et la valeur par défaut est 100.
Et ils leur donnent toute $ 100 fois qu'ils ouvrent un compte.
Je tiens ma banque a fait cela.
D'ACCORD.
>> Donc, nous voulons compléter le schéma en précisant à côté du numéro en équilibre
le type SQL approprié.
Alors qu'est-ce que vous en pensez serait un peu comme votre réaction instinctive
pour les types pour ces deux?
>> AUDIENCE: Int.
>> ENCEINTE 1: Un int.
D'ACCORD.
Et puis d'un équilibre?
Décimal.
D'ACCORD.
Alors droit de décimale.
Int est proche.
Type de la grande chose est ce souligné le numéro de compte à 12 chiffres.
Chaque fois que nous avons quelque chose ce est plus grand que huit chiffres,
ils veulent que vous utilisez grande int, qui, je pense est--
>> Public: Est-ce simplement SQL?
>> ENCEINTE 1: Ce est la seule fois que je ai entendu de celui-ci est SQL-- comme utiliser un grand int.
Ce est juste pour vous donner une peu plus de précision,
se assurer que vous n'êtes pas Type débordement chose.
En toute honnêteté, je pense que ce est certainement l'un des plus
où il est comme, oh, il est destiné aux personnes
qui ont un peu plus de connaissances de SQL.
Nous ne avons jamais parlé grands ints dans votre PSET.
Donc, ce est un peu comme je suis sûr si vous mettez int, ce était demi-crédit.
>> Et comme je le disais avant, il va être quelques questions qui sont tout simplement
destiné à vous faire trébucher, de sorte que tout le monde ne obtient 100.
Parce que bien sûr, il ya des gens dans CS50
qui ont fait cela pendant comme huit ans et vous êtes comme,
que faites-vous?
Mais oui.
>> Décimal pour l'équilibre était à l'évidence une.
Et puis int grande pour le nombre juste parce que de cela, comme, a souligné 12 chiffres.
Chaque fois que quelque chose est en gras ou il est souligné, comme, faire attention à elle.
Nous ne faisons pas que juste parce que.
D'ACCORD.
>> Donc, "supposer que les impose bancaires une redevance mensuelle 20 $ sur tous les comptes.
Avec ce que la requête pourrait la banque déduire 20 $ pour chaque compte
même se il résulte de certains soldes négatifs? "
Commençons donc simple.
Nous avons quatre principales commandes pour SQL, qui sont?
Avez-vous les gars me souviens quatre grands que je vous ai dit?
>> UPDATE, DELETE, SELECT et INSERT.
Parfait.
Je l'ai.
Alors, que faisons nous pensons puissance être plus utile pour celui-ci?
Nous soient: UPDATE.
Exactement.
Donc JOUR, parce que nous sommes à la recherche à des comptes qui existent déjà.
>> Donc ne oubliez pas notre général genre de chose est mise à jour.
Et puis ce qui vient après mise à jour?
Nous avons une certaine tableau que nous référencement.
Donc, si je tire de la Sublime UPDATE.
Donc, ce est un format général.
Nous avons donc UPDATE table.
Et puis quelle est la prochaine chose que nous avons?
>> Vous pouvez faire WHERE.
Et puis nous avons une certaine qualification ici.
Et puis qu'est-ce que nous avons maintenant?
Nous avons quelques chose SET-- égale à quelque chose.
Blah blah égale.
Mise à jour blah.
Droite?
Donc, ce est comme le général idée pour une mise à jour.
D'ACCORD?
>> Commençons donc combler cette avec ce qu'elle devrait être.
Alors quelle table parlons-nous?
Comptes.
Et puis dans ce cas, ce qui est vraiment cool
est parlons-nous spécifique utilisateurs au sein de notre compte,
ou parlons-nous tous les utilisateurs?
Nous parlons de tous les utilisateurs.
Donc, dans ce cas, nous pouvons simplement supprimer ce OÙ qualificatif.
Le OÙ est seulement quand vous voulez pour limiter ce que vous décidez de changer.
Si vous voulez changer l'ensemble table, il vous suffit de laisser tomber ce.
D'ACCORD.
>> Alors maintenant, nous sommes à notre part de SET.
Que voulons-nous changer?
>> AUDIENCE: la balance.
>> ENCEINTE 1: Solde.
Et nous allons faire sont to-- nous allons changer l'équilibre?
Nous avons un frais de 20 $, non?
Minus 20.
Et ils ont dit que ce est OK si nous avons soldes négatifs.
Donc dans ce cas, vous ne avez pas besoin à faire toute autre vérification d'erreur.
D'ACCORD?
Ce est littéralement tout ce que vous avez à faire.
Cool?
D'ACCORD.
>> Donc, nous allons passer par la suivante.
"Avec ce que la requête SQL pourrait le banque de récupérer les numéros de compte
de ses riches clients équilibre supérieur à $ 1000? "
Si votre banque et vos clients les plus riches sont seulement ceux avec plus de 1000 $,
Je me sens comme si vous étiez faire quelque chose de mal.
Comme, comment une banque survivre à ce sujet?
Comme, que l'intérêt, pas assez.
D'ACCORD.
Avec ce genre de chose, qu'est-ce que vous pensez, de nos quatre fonctions,
pensez-vous que nous allons utiliser?
SELECT.
Parfait.
SELECT.
D'ACCORD.
Nous sommes donc en sélectionnant une certaine identificateur FROM table.
Et puis condition WHERE.
Alors que nous avançons dans ceux-ci, je vais juste
pour vous donner les gars un rappel général sur le format général de tous ces.
>> Nous sommes donc en sélectionnant une sorte de [? chose. ?] Dans ce cas,
cela va être typiquement une certaine colonne.
Donc, dans notre cas, nous avons nombre, l'équilibre.
Dans le cas de vos gars, peut-être ce était ID, nom, mot de passe.
L'une de ces colonnes, ce est généralement ce que nous sélectionner.
>> Donc dans ce cas ici, ce qui type de la colonne, ce identifiant
sommes nous tirons de notre table?
Que nous demander?
Il nous demande de nos numéros, non?
Les numéros de compte.
Donc ne oubliez pas, tout nombre dans ce cas.
Si vous les gars jamais eu l'erreur, que boîte de couleur orange vif viendrait jusqu'à.
Et ce était comme, inattendue ramer dans, comme, peu importe.
Ce est parce que vous avez appelé votre table mal, non?
Assurez-vous donc que vous êtes appelant correctement la colonne.
>> Donc, de table, notre table est appelé comptes.
Encore une fois, assurez-vous que vous êtes référençant votre table correctement.
Et puis ce est notre condition ici?
Que cherchons-nous?
Nous voulons que nos gens riches.
Oui.
Donc solde supérieur à 1000.
Là vous allez.
Ce est votre requête.
Pas trop mal, non?
D'ACCORD.
>> Alors maintenant, pour notre dernier.
Avec cela, nous coup de vent à travers.
D'ACCORD.
Alors maintenant, "avec ce qui pourrait requête la fermeture de la banque, ce est à dire, supprimer "-
ne vous aime pas la façon dont ils viens de vous donner DELETE--
«Chaque compte a un solde de 0?"
Je pense que nous pouvons tous convenir que nous sommes va probablement être en utilisant supprimer.
Je suis invités à prendre toute débat autour de cela.
Mais je pense qu'il est assez sûr de disons que nous pourrions utiliser SUPPR.
>> Donc, nous allons supprimer certains les utilisateurs de la table, condition WHERE.
Alors même genre de chose que SELECT.
Donc, dans ce case-- oh, désolé.
Je devrais DELETE FROM.
Parce supprimera supprimer la ligne entière.
Donc, nous ne avons pas besoin de parler de ce qui choses spécifiques sur un utilisateur nous sommes
suppression.
Si nous supprimons un utilisateur, nous sommes supprimer tout sur eux.
>> Donc dans ce cas, nous avons juste besoin de remplir notre WHERE et notre condition.
Donc, notre table est seulement nos comptes table, comme nous l'avons fait.
Et puis ce est notre condition ici?
>> AUDIENCE: la balance.
>> ENCEINTE 1: Solde est égal à 0.
Correct.
Toutes les bonnes.
Oui.
>> AUDIENCE: [inaudible].
>> ENCEINTE 1: Alors SUPPRIMER intrinsèquement supprime tout.
Ainsi, alors que avec SELECT, SELECT prend en certaines colonnes que vous souhaitez disposer.
Si vous voulez tout savoir sur un utilisateur retourné, vous utilisez étoiles.
Star dit, revenir à moi tout de cet utilisateur.
Ou si vous mettez OÙ étoiles, que signifie simplement me donner tout.
>> Mais SUPPRIMER a intrinsèquement cela.
Donc, si vous dites, supprimer de les comptes où l'équilibre est égal à 0,
ça va passer.
Et partout que l'équilibre est égal à 0, il le fait en soi que.
Elle supprimera tout.
La star est plus en vue de: avec SELECT ou UPDATE,
il parle plus sur l'individu les champs correspondant à un utilisateur.
>> Ainsi, lorsque vous ne sélectionnez Etoiles à partir de table WHERE ID
est égal à 1, qui renvoie de vous tout sur l'utilisateur ID 1.
Si vous aviez à faire nombre SELECT ou SELECT ID nom par des virgules des utilisateurs
WHERE ID est égal à 1, que retourne juste leur numéro
ou de leur identité et de leur nom.
D'ACCORD?
>> Nous utilisons donc des étoiles dans cette affaire, nous donner tout sur un utilisateur.
Et DELETE fait intrinsèquement cela.
Il n'a tout simplement pas supprimer l'ID, ou juste le nom, ou autre chose.
Ouais, pas.
Il supprime simplement l'ensemble utilisateur.
Donc, nous ne avons pas à craindre à propos de l'étoile il.
>> Si vous voulez supprimer tout, vous pourriez le faire,
et cela va juste tout laisser tomber.
Mais en général, vous, ne veulent pas le faire.
Mais si jamais vous voulez supprimer tout, vous pourriez le faire.
D'ACCORD.
>> Avez-vous trouvé les gars d'autres questions?
Oui.
>> AUDIENCE: Pourriez-vous faire 26?
>> ENCEINTE 1: 26 nous venons de faire.
AUDIENCE: Oh, 25, désolé.
ENCEINTE 1: 25.
D'ACCORD.
25.
Oh.
Ils font JavaScript.
Oh, je ne peux pas le croire.
Je vais salir nous à nouveau, les gars.
D'ACCORD.
Nous avons obtenu cela.
Nous allons faire ce travail.
Ah, jQuery.
Fun.
D'ACCORD.
>> Donc, nous allons compléter le mise en oeuvre de la page Web
de telle sorte que se ils visitent, entrée leur nom, et soumettre le formulaire,
ils ont cette grande alerte fenêtre qui va apparaître.
Donc ne importe quoi avec des alertes, nous savons que nous allons devoir utiliser JavaScript.
Yay, JavaScript.
Et se ils ne parviennent pas à entrer un nommer avant de soumettre le formulaire,
aucune alerte ne devrait apparaître.
Vous pouvez donc utiliser jQuery, mais vous ne avez pas à.
>> Donc, je vais vous laisser les gars travaillez sur ce juste pour quelques minutes.
Pensez-y.
Et puis nous allons coder.
Slash je vais essayer de penser de la meilleure façon d'expliquer cette réponse pour vous.
Bien.
Nous l'aurons mis en place.
D'ACCORD.
>> Donc, nous allons juste de marcher à travers cela,
parce que je sais jQuery est un peu déroutant.
JavaScript.
Ce est un peu là-bas.
Donc, ce que nous allons faire est [Inaudible] effectivement résolu
ce problème avec jQuery.
Donc, si vous vous souvenez, jQuery est juste une bibliothèque
ce est juste construit au-dessus de JavaScript.
Il est destiné à rendre votre la vie un peu plus facile.
>> Je voudrais certainement, si vous avez le temps, regarder par-dessus
un peu de la documentation de jQuery.
Mais il est très similaire à JavaScript.
Il est obtenu paradigmes similaires, où vous utiliser cet opérateur point pour appeler des fonctions
sur les objets que vous avez.
>> Donc, ce que nous avons ici, ce est pour jQuery, vous devriez toujours avoir ce genre
d'emballage, qui est la Fonction $ (document) de .ready (fonction)
ici entre parenthèses.
D'ACCORD.
Donc, ce pourrait être quelque chose vous voulez sur votre feuille de triche.
Parce que, à tout le moins, vous pouvez avoir le wrapper pour votre jQuery.
Et il va au moins obtenir vous séparer il.
>> Ainsi, de la même manière que nous beaucoup parlé de JavaScript,
et nous aimerions commencer par regarder ce que nous essayons de modifier
ou ce que nous essayons de changer.
Et ce serait typiquement le première chose que nous avions mis en.
Donc dans ce cas, si nous revenons à cette ici et nous regardons notre formulaire ici,
Nous avons ce entrées, droite, cet ID d'entrées.
Et nous savons que, d'après sur notre question, nous
sont soit aller à jeter une erreur se il est vide,
ou nous allons mettre ce en alerte, non?
Donc probablement juste de dire que nous sommes allez avoir affaire avec des entrées ici.
>> jQuery est très similaire en ce que si l'on penser à CSS, ne importe quoi avec un ID
nous regardons avec un hachage.
Tout ce qui nous classe regardé avec un point, non?
Donc, de la même manière ici, ce nous parlons est intrants.
Nous avons vu que les intrants est une pièce d'identité au sein de notre formulaire.
Nous allons donc à s'y référer en tant que telle.
Entrées.
D'ACCORD?
>> Donc, en cas de doute, même si vous ne avez nulle part,
si vous êtes vraiment sûr de la façon de aborder ce, A, avoir cette enveloppe.
Donc, commencer là-bas avec l'emballage pour jQuery.
B, assurez-vous que vous savez ce que vous êtes en train de changer.
Et en cas de doute, mettre cela en quelque chose,
et faire des points, ce que vous pensez vous devriez faire avec elle.
>> AUDIENCE: Quel est l'emballage?
>> ENCEINTE 1: Le wrapper est cette première ligne.
Donc, cela dit, attendre mon document est prêt.
Puis commencer à jouer avec les choses.
D'ACCORD?
Donc, nous savons que nous de jouer avec entrées.
Donc, nous sommes comme, OK, entrées est de notre formulaire.
Ce est notre identité.
Ce est ce que nous sommes va être à la recherche de.
Et nous voulons voir ce qui se passe Lorsque ce formulaire est soumis, non?
>> Alors que nous pourrions penser, nous avons quelques .submit.
Donc .submit dit juste, OK, ce formulaire que nous avons référencés avec des entrées de hachage,
quand il est soumis, exécuter quelque chose d'autre.
Nous allons donc avoir une certaine fonction.
Notez que nous avons ici des fonctions anonymes.
Nous avons une fonction anonyme ici.
Oui.
>> AUDIENCE: Est-il toujours être .submit, ou est-ce simplement parce que dans le code HTML,
nous avons fait le type de bouton Submit?
>> ENCEINTE 1: Il faut .submit, parce ce est une forme que nous soumettons.
Parce que ce ne est pas nécessairement .submit correspondre à ce que le bouton est comme
à appeler.
Mais le fait que ce est un forme qui nous soumettre.
D'ACCORD.
>> Donc remarquer anonyme fonction ici que says--
PUBLIC: Je ne aime pas vraiment comprendre les fonctions anonymes.
ENCEINTE 1: Donc anonyme fonctions, ils sont
fonctions seulement qui ne ont pas un nom.
Ainsi, au lieu d'avoir une fonction principale calls-- que nous pourrions dire, Si le document
prête, alors nous appellerions entrées.
Et puis, quand soumis, call-- Comme, si tel et donc soumis,
nous aimerions appeler une autre fonction.
Une fonction anonyme juste ne pas avoir un nom,
et il suffit d'exécuter au sein de ces sortes de choses.
>> Donc dans ce cas, ce que cela dit est, Quand notre document est prêt,
exécuter cette fonction.
Cette fonction est composé de tout ce qui est ici.
Et puis la couche suivante en est, OK, lorsque les entrées est soumis, exécuter cette.
Ce est juste une façon de désigner ce qui devrait être exécuté quand.
Il est littéralement juste un fonction qui ne est pas
avoir un nom, de sorte qu'ils ont tendance à se emboîter dans l'autre,
parce que vous ne pouvez pas les appeler par son nom.
D'ACCORD?
Littéralement, une fonction anonyme est juste une fonction sans nom.
C'est tout.
Juste un moyen d'encapsuler différentes choses
que nous voulons exécuter à des moments précis.
>> AUDIENCE: [inaudible].
>> ENCEINTE 1: L'évent?
Où?
>> AUDIENCE: Dans le parenthèses après la fonction?
>> ENCEINTE 1: Après fonctions.
Laquelle?
>> PUBLIC: Les deux.
Si vous mettez, comme, événement, ou si vous mettez un argument là-dedans,
Serait-il faux?
>> ENCEINTE 1: Dans ce cas, je suppose vous pourriez mettre un argument là.
Mais parce que nous ne avons pas besoin d'un l'argument, il ne devrait pas être.
Comme, ce est l'ensemble, comme, vous ne devriez
avoir des choses qui sont nécessaires genre de chose.
De la même manière que si nous avions tout fonction qui a void-- principale int comme,
avec void main int, vous pourrait faire int arg v, peu importe.
Mais si vous ne avez pas besoin de ces, vous ne devrait pas avoir là-dedans.
Même chose.
Emma, ​​avez-vous une question?
D'ACCORD.
Cool.
D'ACCORD.
Donc ce que nous avons tant est loin quand notre le document est prêt, exécuter cette.
Maintenant, nous sommes en regardant quand il est soumis.
Alors maintenant, nous avons actuellement une sorte de la viande de notre chose.
Donc nous avons besoin pour obtenir la valeur que le utilisateur qui a soumis, que ce soit un nom
ou vide.
Et puis nous devons soit retour cette alerte ou de jeter une erreur.
D'une manière ou d'une autre.
>> Alors, comment pouvons nous déclarons une variable dans JavaScript?
Var.
Donc, disons, le nom de var equals-- ou effectivement, nous allons
faire valeur depuis que je pense que ce est le nom.
D'ACCORD.
Nous avons donc une certaine valeur ici que nous vouloir tirer de notre formulaire entrées.
Ainsi, de la même façon que nous sorte de fait entrées,
quelqu'un peut me dire ce que nous pourraient être appeler sein ici
si nous voulions obtenir le nom de la forme?
Et si nous regardons en arrière à notre formulaire ici, nous constatons que nous avons un ID de nom.
AUDIENCE: [inaudible].
>> ENCEINTE 1: Vous ne avez pas de penser à elle comme un tableau.
Vous ne avez pas besoin de se inquiéter à ce sujet.
Donc nous avons juste un nom.
Et ensuite parce que le JavaScript et les choses sont bizarre, nous ne pouvons pas simplement faire "nom".
Nous avons fait appeler une fonction qui nous donne,
comme, la valeur de cet identificateur.
D'ACCORD?
Donc, ce est juste .val.
>> AUDIENCE: [inaudible].
>> ENCEINTE 1: OK.
Donc, avec le JavaScript, ce genre de chose ici va juste à travers.
Et vous pourriez penser de cette as-- ce est comme presque un getElementById, où
getElementById serait effectivement restituer la chose complet pour vous.
Le $ ("nom de #") est tout comme, OK, je l'ai, je peux y accéder,
mais si vous voulez réellement pour renvoyer la valeur à vous--
>> Public: Est-ce comme un pointeur?
>> ENCEINTE 1: Ce est un peu comme un pointeur.
Vous pourriez penser que ce est un peu comme un pointeur.
Comme, il est dit, OK, je savoir comment y arriver,
mais en réalité pour obtenir la valeur de , vous devez demander explicitement.
Et malheureusement, de toute évidence, nous ne avons pas faire trop avec JavaScript et jQuery.
>> Donc, il va venir à combien guys-- vous ce que vous arrive de savoir,
ce que vous arrive d'avoir vu, et ce vous pouvez sorte de logique deviner.
Parce que certaines de ces choses, vous pourrait probablement obtenir la moitié du chemin.
Mais pour le faire correctement, Je pense que ce problème sans doute
eu l'un des scores les plus faibles.
AUDIENCE: Comme, par exemple, pour [inaudible] entrées,
pourquoi avez-vous de ne pas mettre val il?
ENCEINTE 1: Pour celui-ci?
AUDIENCE: Ouais.
ENCEINTE 1: Ouais.
Parce que ce est une sorte d'aimer, comme nous le disions,
certains pointeur, et ce est moi référencement et effectivement nous obtenir la valeur.
>> AUDIENCE: considérant que [inaudible]?
>> ENCEINTE 1: Pour les entrées, entrées est juste some--
ce est comme nous sommes juste regardant dans son ensemble,
et cela .submit raconte nous ce que nous devons savoir.
jQuery et JavaScript est bizarre.
Je sais.
Je sais, les gars.
Je sais.
Il ya une raison pour laquelle je ne le fais pas faire de la programmation web.
Je plaisante.
Je ne ai pas eu assez de l'exposition à elle.
>> AUDIENCE: [inaudible] CSS.
>> [Rires]
>> ENCEINTE 1: OK, ce est CSS.
CSS est juste, comme, faire des choses assez, ce est pas comme nous allons traiter avec les données.
Il ya une différence.
D'ACCORD.
Alors maintenant, je l'espère, ce part-- aussi, par un problème de ce genre, où vous ne pouvez pas
connaître la syntaxe, vous pourriez être comme, OK, vous pourriez avoir une certaine valeur de var
et être comme, je suppose obtenu la valeur correctement.
Et puis, vous pourriez probablement écrire cette partie suivante.
La partie suivante sera probablement semble beaucoup plus facile,
ou il serait logique sens pour vous les gars.
>> Alors que ce que nous avons écrit jusqu'ici, Je sais que je serais comme, euh, ouais,
Je ne sais pas que sur le questionnaire.
Vous pouvez tout à fait écrire psuedocode puis briser en code réel
quand vous-- ce est un peu comme les mathématiques.
Si vous avez déjà eu une certaine problème multi-partie où
vous ne savez pas comment aller au-delà de la première étape,
mais tout le reste se appuie sur cette première étape,
vous venez de dire, comme, supposons x est égal à 4.
Et puis vous avez avec lui, non?
>> Vous pouvez faire la même chose avec le code.
Donc on peut dire, assumer Je ai eu le droit de valeur.
Puis faire partie suivante ici.
Parce que cette partie fait devrait être assez logique.
>> Donc, nous devons vérifier si notre valeur est vide.
Ou si ce est un nom, effectivement donner une alerte.
Alors que peut-on vouloir vérifier?
Nous voulons avoir une certaine Si.
Que pensez-vous de notre Si va être?
Nous avons besoin de vérifier pour voir si la valeur est-- si ce ne est pas une chaîne vide.
>> Parfait.
Exactement.
D'ACCORD.
Donc, si ce est le cas, que voulons-nous faire?
Nous voulons jeter un peu d'alerte, non?
Donc, ce est juste alerte.
Et puis ce que nous voulons à l'intérieur.
Que sommes-nous censés Donc d'avoir dans notre alerte?
>> AUDIENCE: "Bonjour."
>> ENCEINTE 1: Virgule.
Et puis avez-vous les gars rappeler comment concaténer?
>> AUDIENCE: Plus.
>> ENCEINTE 1: Plus.
Donc, nous voulons avoir plus.
Et puis nous avons besoin d'une autre, plus pour notre point d'exclamation.
Cool.
D'ACCORD.
Sinon, que peut-on vouloir faire?
Nous ne voulons pas faire quelque chose, non?
Donc nous revenons simplement fausse.
Pas ce que je veux faire.
D'ACCORD.
>> Et puis ceux-ci, course-- ce qui est important
est de se rappeler de fermer vos fonctions anonymes.
Donc, si vous remarquez, nous avons une certaine fonction ici que se termine ici.
Donc, nous devons fermer cette premier et ajouter un point-virgule.
Et puis celui-là doit faire avec cette fonction anonyme,
si nous fermons là.
Ce réflexe de l'épargne.
Oui.
AUDIENCE: Y at-il une raison that-- juste dans tous les exemples en JavaScript
que je ai vu, nous avons les premières accolades
sur la même ligne que la fonction?
>> ENCEINTE 1: Ce est stylistique.
Ouais.
Et en fait, si vous prenez 61, nous faisons tout notre accolades de cette façon.
Hein?
>> AUDIENCE: Si nous avons fait faire sur l'PSET, ce est que mauvaise pour le style?
>> ENCEINTE 1: No.
Nous avons dit explicitement vous les gars pour le faire.
Mais en réalité, ce est une sorte de la convention dominant
dans un grand nombre de classes C et JavaScript et jQuery.
Alors, évidemment, je suis sure-- et effectivement, si je
ont été à faire complètement ce problème aveugle sans avoir regardé,
il est probablement très peu égards, je aurais obtenu ce.
>> Je aurais pu être comme, OK, peut-être je besoin de prendre quelque chose qui est une entrée.
Et je pense avoir le sachant que, comme,
OK, si je veux obtenir quelque chose à partir d'une forme qui possède un ID,
Je me réfère à elle de cette façon, Je serais probablement obtenir cela.
Je pourrais obtenir cela.
Mais vraiment, la seule chose que je pense Je aimerais vraiment obtenir ce droit est ici.
>> Donc, ce est un peu important de savoir, comme à toute épreuve difficile,
vous sorte de choisir vos batailles, non?
Si vous savez que vous ne allez pas pour obtenir cette première partie pour jQuery, comme je le disais,
supposons que vous avez cette valeur et faire ce que vous pouvez avec elle.
Et si vous avez le temps, revenir et d'essayer de remplir les pièces.
Mais ne laissez pas une question comme ce vraiment vous enliser.
Parce que quoi?
Ce était une question jQuery sur tout l'examen.
Alors oui, ce serait génial si vous l'avez obtenu.
>> AUDIENCE: [inaudible] vous sont invités à utiliser jQuery.
ENCEINTE 1: Vous êtes bienvenue à utiliser jQuery.
AUDIENCE: OK. [Inaudible].
ENCEINTE 1: Comment voulez-vous pas l'utiliser?
Je voudrais avoir à regarder tout mon JavaScript.
Ce est en fait beaucoup plus facile, Je pense que, d'utiliser jQuery,
parce jQuery réduit en fait la quantité de JavaScript vous écrivez probablement
par, comme, la moitié.
Donc notre code serait probablement deux fois plus longtemps sans cela.
Donc, si vous recognize-- le plus grand chose à emporter de ce problème
sont les motifs.
Si vous accédez quelque chose d'un formulaire,
vous allez utiliser des guillemets, hachage, tout ce que vous tentez d'accéder.
Si elle est soumise, vous voulez d'utiliser quelque chose comme un .submit.
Vous allez probablement utiliser une fonction anonyme là.
Si vous avez réellement besoin la valeur de quelque chose, vous allez faire des citations,
hachage, quel que soit ce domaine est, .val.
Et la reconnaissance de formes comme ça vont
d'être bien plus utile que vraiment savoir le Nitty Gritty.
Oui.
>> AUDIENCE: Donc, si le utilisateur soumet leur nom
et il traverse cette déclaration, ne est- aller vers le bas et return false après cela?
>> ENCEINTE 1: Non, parce que l'alerte, vous pouvez penser que ce est comme un retour.
Ouais.
Donc, il va quitter.
Ouais.
>> AUDIENCE: Pourriez-vous [? placer?] les parenthèses
de présenter, entre parenthèses, quelque chose?
>> ENCEINTE 1: je ai fait, je crois.
Celui-ci est fermé ici.
Et puis celui-ci se referme ici.
>> AUDIENCE: Oh, là.
Bien.
>> ENCEINTE 1: De toute évidence, peu, petites choses syntaxiques
comme ça, nous allons probablement simplement encercler et être comme,
ne oubliez pas vos parenthèses.
Mais oui.
D'ACCORD.
Avons-nous les uns les autres que nous aimerions faire?
Avez-vous les gars obtenir l'arbre un binaire?
Voulons-nous d'aller sur celui-là?
Je me sens comme les arbres binaires et DOM devraient être des points
que vous obtenez gars assez facilement.
Je ne voudrais pas vous de perdre des points à ce sujet.
D'ACCORD.
>> Faisons-le DOM ici.
Je voudrais avoir ma surface alors je pourrait tout dessiner sur l'écran.
Ce est ce que je ai l'habitude de faire l'année dernière.
D'ACCORD.
Donc, comme je l'ai mentionné, nous avons parlé sur les DOM, Document Object Model.
Ils vont probablement vous donner certains peu de bout comme ça
et vous demander de créer un arbre pour elle.
Et ce juste a tout à voir avec qui traverse les tags.
Donc, nous allons essayer de faire cela.
>> En outre, comme d'habitude, si vous les gars faire ces quiz, comme je l'ai très
recommandez que vous faites en tant que pratique, l'un d'eux que vous êtes comme,
Je ne comprends pas vraiment ce qui est passe ici, juste, bien sûr,
me envoyer un email avec une question, et je vais vous expliquer mieux que je peux.
D'ACCORD.
>> Nous avons un certain document, et nous avons HTML.
D'ACCORD.
Alors nous allons juste analyse les balises ici, non?
Alors qu'est-ce que nous voyons ce sont comes-- les deux sous-positions en HTML?
Surtout parce que ils sont en retrait correctement?
Tête et le corps.
Ah.
Tête et le corps.
Belle.
Alors nous allons commencer ici avec la tête.
Quelle est la tête en dessous?
Quel est notre prochain tag?
Titre.
Et puis au sein de titre, quiz.
D'ACCORD.
>> Donc, littéralement, ce est juste parcourant les balises, OK?
Alors si nous avons corps, que nous traversons,
corps a trois choses à l'intérieur, non?
Il a trois divs.
Chaque div obtient sa propre petite boîte.
Et ce qui est dans la première div?
[Inaudible]
Et puis la prochaine est moyenne, que je vais juste pour abréger.
Et puis la dernière est inférieure.
>> Alors, vraiment, ce est juste marcher à travers.
Et parce que nous allons donner vous HTML qui est bien en retrait,
vous pouvez littéralement juste courir à travers et être comme, OK, voici le code HTML.
Ce est donc le plus à l'extérieur coin, ou le plus à gauche,
de sorte que doit être sa propre chose.
Ceux-ci sont sur le même renfoncement.
>> Nous savons donc que la tête doit être au même niveau que le corps,
mais sous HTML.
Ce est ce que nous avons ici.
Tête et le corps sont frères et sœurs, mais ils sont sous HTML.
Et puis nous allons juste dans chacune d'elles.
Donc, la tête a un titre, qui a quizz, comme nous le voyons ici.
Et puis dans ce cas, nous avons corps, qui présente ces trois lignes.
Donc, ce sont tous frères et sœurs tout sous le corps.
D'ACCORD?
Alors je espère que quand vous voyez quelque chose comme ça, vous êtes comme,
oui, je viens d'obtenir de dessiner un arbre.
Ça va être génial.
D'ACCORD.
Donc, voulait se assurer vous les gars savaient que.
>> Alors, pourquoi ne pas aller à 32 avec notre arbre binaire?
Parce qu'une fois que vous comprenez un binaire arbre de recherche, ce est vraiment pas si mal que ça.
Donc Everett, puis-je erase-- je signifie, ce sont tous en ligne, aussi.
Donc, si vous avez des questions.
>> Perdu un peu d'espace là-bas, mais ce est OK.
Donc arbre binaire de recherche est juste une façon d'organiser les données
pas dans un tableau, où la racine est toujours plus grande
que l'enfant gauche et la racine est toujours moins que le droit enfant.
D'ACCORD.
>> Nous avons donc ce grand arbre de recherche ici.
Nous avons ces chiffres, 34, 59, 20, 106, 36, et 52.
Et nous avons besoin d'organiser les de telle sorte
de telle sorte que la racine est plus grande que tout sur le côté gauche
et elle est inférieure à tout sur le côté droit.
Et généralement, ce que vous vouloir faire est d'essayer et de trouver
quelque chose au milieu.
Avec arbres binaires de recherche, vous pourriez avoir de jouer un peu avec elle.
>> Mais dans ce cas, disons simplement supposons que nous savons que ce premier.
Donc 36 est notre première ici.
Typiquement, je voudrais essayer et choisir quelque chose
vers le milieu qui va probablement donner les meilleurs résultats.
Alors maintenant, nous savons que tout le ce côté-ci doit être inférieure à 36.
Mais aussi, ce que vous pouvez voir est que nous avons deux points de plus ici.
Donc, si nous savons que nous avons besoin de deux les numéros qui sont inférieures à la racine,
alors vous pouvez les commander et choisissez le troisième numéro.
D'ACCORD.
>> Alors pourquoi ne pas commencer par ce côté?
Donc, si nous savons que tout le ce côté-ci doit être inférieure à 36--
mais si nous regardons celui-ci, nous savons que ce nombre
doit être inférieure à ce nombre, non?
Parce que ce nombre ici est sur le côté droit.
Et rappelez-vous, tout comme dans notre plus grande arbre, tout sur le droit
doit être supérieure à la racine.
De cette façon, nous savons que tout ce qui est dans cette besoins
être plus grand que tout ce est ici.
D'ACCORD?
>> Donc, nous avons deux choix pour ces deux bulles.
Nous avons 32 et 34-- ou désolé.
20 et 34.
Alors, comment pensez-vous nous pourrions les mettre en?
Si celui-ci doit être plus grand que celui-ci,
cela signifie que nous voulons avoir 20 ici et 34 ici.
D'ACCORD.
>> Donc, de la même manière, nous regardons à ce type de sous-arborescence.
Et nous dire, OK, nous ne avons pas 36.
Nous avons 106, 52, et 59.
Droite?
Dans ce cas là, nous savoir que cette une besoins
d'avoir une chose qui est plus grand que et une chose qui est moins que lui.
Droite?
Donc, si nous mettons ces dans l'ordre, ce est juste de trouver à nouveau cette valeur moyenne.
Donc, notre valeur centrale est de 59.
Alors nous disons, OK, ce est moins de 59?
Eh bien, ce est 52.
Et ce qui est supérieur à 59?
Eh bien, ce est 106.
D'ACCORD?
Donc, ce est un peu comme un puzzle.
Il permet généralement, en particulier dans de petits arbres de ce genre,
si vous venez de le commander, si vous savoir combien sont sur la gauche
et combien sont sur la droite, qui peut juste
vous permettent de choisir ce que devrait être à votre racine.
Et puis vous pouvez genre de travailler à partir de là.
Mm-hm.
33?
Bien sûr.
D'ACCORD.
Donc, nous voulons créer un noeud ou un arbre de recherche binaire.
Et regardons ce qui pourrait être en elle.
Et je pense que cette volonté effectivement être notre dernier problème.
Ah.
D'ACCORD.
>> Ce est comme ce que nous pouvons penser comme un nœud, non?
Nous avons une certaine valeur, et nous savoir que ce sera soit
ont quitté et les enfants droite.
Recherche binaire tree-- que des moyens qu'il a, dans la plupart, deux enfants.
D'ACCORD?
Pensons à la façon dont nous défini une liste liée, non?
>> Nous avons eu quelques int qui représenté la valeur.
Nous avons eu quelques pointeur qui représentait ce qu'il allait suivante.
Arbre binaire de recherche est très similaire.
Nous avons encore une certaine valeur, n, que nous lui donnons, non?
Et puis je ai dessiné ces très explicitement avec des flèches,
parce qu'ils sont des pointeurs efficacement.
D'ACCORD?
>> Donc n est typiquement ce?
Ce est une certaine valeur.
Qu'est-ce que nous désignons généralement comme?
Un int.
Donc, nous avons un certain int n, ou la valeur int, ou ce que vous souhaitez appeler.
Et puis nous avons la gauche enfant et le droit enfant.
Droite?
Et nous savons que ce qu'ils sont point-- qu'est-ce qu'ils pointent vers?
Ils pointant vers d'autres noeuds, non?
Alors, comment aurions-nous déclarer un pointeur de noeud?
>> AUDIENCE: [inaudible].
>> ENCEINTE 1: Mm-hm.
Et nous allons avoir deux d'entre eux, non?
Et puis nous pouvons littéralement ne gauche pour l'enfant gauche
et pour le bon enfant.
Actually-- désolé.
Parce que nous avons besoin de structure.
>> Donc struct est parce que nous ne avons pas fini déclarant encore un nœud.
Ainsi se trouve ici noeud.
Ce est un peu comme un définition récursive, non?
Alors, quand nous sommes dans cette définition, nous
ne ont pas fini de déclarer Noeud de la structure,
de sorte que nous avons à faire struct noeud juste pour dire, oui,
nous sommes en fait référence retour à nous-mêmes ce genre de chose.
Que, comme une fois qu'il est créé, ce sera très bien.
>> Alors, comment grande que vous en pensez que ce est?
Quelle est la taille de cette structure?
12.
Pourquoi?
Précisément.
Et en fait, l'un des premières questions une Quiz Une
est sur les tailles, ce est pourquoi je ai demandé.
Bien.
>> Nous allons à la fin, parce que la DCE sera crier après moi, si nous ne le faisons pas.
Mais si vous les gars avez des questions, bien sûr, écrivez-moi, laissez-moi savoir.
Les gars, vous allez le rock.
Je suis super excité.
Vous les gars se fera que du mercredi, puis
vous aurez la chance de travailler sur votre dernière projets, et ça va être génial.
>> Je serai ici à côté semaine 4 heures 00-4:30
si vous les gars veulent venir ramasser vos questionnaires.
Si vous voulez me trouver une autre fois ou tout simplement de coordonner un moment différent,
ne hésitez pas à me le faire savoir.
Sinon, ce est notre dernier article.
Donc, ce était génial de vous voir.
Se il vous plaît prendre plus de bonbons.
Et bonne chance pour votre quiz.