1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
ג'ייסון הירשהורן: ברוכים הבאים. אז רק כמה הודעות לפני שאנחנו מתחילים. אז סעיפים, כולם צריך יש לי מחולק כבר. סעיפים בדרך כלל לרוץ מיום ראשון עד יום שלישי. אז אתם צריכים לקבל המשימות שלך. ואז אני חושב בשבוע הבא אתה תהיה עם TFS שלך בפועל. אז אם יש לך שאלות, או צרות, או ששכחתם סעיף. אנשים שעושים את זה. רק תן לנו לדעת. לירות לנו דוא"ל בראשים. 

ואז שעות עבודה. התחלנו שעות עבודה בשבוע שעבר. שעתי עבודה בכל שבוע. יום שני הוא בLeverett 8:00-11:00. ימי שלישי במרובע, כך קאבוט 8:00-11:00. יום רביעי, Mather 8:30-11:30. וביום חמישי אננברג 8:00-11:00. 

אז גרד, הרבה אנשים לא צריך שעתי עבודה לעזור לגירוד, ש זה בסדר לחלוטין. אם אתה עושה, זה בסדר, כמו גם באופן מוחלט. אבל בעתיד, הבעיה סטים, הם מקבלים הרבה יותר קשים. אז זה הולך להיות חבר שלך. בהחלט ללכת לשעתי עבודה. מתכנן ללכת לשעתי עבודה. כשאתה מגיע לבעיה נקבע ארבעה, חמש, שש, שבע, אתה צריך ללכת לשעתי עבודה. זה מקום שבי הרבה העזרה והעבודה נעשית. 

אני חושב ששנה שעברה, רק ל דוגמא, ביום חמישי night-- לכן אני חושב שהבעיה סטים היו בשל ביום שישי. אז יום חמישי בלילה, הייתי צריך 200, 250 תלמידים בשעתי עבודה. אז בהחלט לעשות שימוש באלה. אלה הם החברים הכי טובים שלך. כמו זה שבו אם אתה תקוע על סט בעיה, זה מקום שבי אתה בטח מקבל עזרה. אז לשעתי עבודה. אישור אז אלה הם הכרזות. הודעות נעשות, אז בואו נתחיל. 

אישור, המכשיר. האם כולם להוריד המכשיר עדיין? מס ' כמו בכל כך כל כך. אני די הורדתי את המכשיר. ממני כך שהמכשיר הוא חדש השנה, כך שאנחנו כנראה הולך להיות כמה באגים בזה. אז בבקשה להוריד אותו מוקדם ככל האפשר. אז הבעיה להגדיר אחד לא הולך להגיד לי לך בדיוק איך להוריד אותו. תחילת עבודת ההתקנה ממש כאן. זה הולך לספר לכם איך כדי להוריד את המכשיר. 

אז בהחלט להוריד את מכשיר במוקדם ולא במאוחר. הוראות הן במפרט סט P. אז אם אתה לחכות עד יום רביעי לילה, ולאחר מכן יש לך בעיה, ואתה שולח לנו מייל ב חצות ביום רביעי בלילה שאתה לא יכול להוריד המכשיר, שזה לא סיבה לגיטימית להארכה. אתה צריך לעשות את זה עכשיו, ולא יהיה לך בעיות. ניסיתי להוריד אותו אתמול בלילה. נתקלתי בקצת צרה. אם אתם נתקלים בצרות התקנה, בהחלט פגע נסה שנית, כי אני פשוט פגע נסה שוב כמה פעמים, ובסופו זה עבד, שלא עושה שום תחושה, אבל הוא עושה. אז בהחלט לנסות שוב, אבל אם אתה נתקל בקיר לבנה, לירות לנו דוא"ל בראשים, ואנו יהיה יותר שמח לעזור לכם. מה קורה? 

תלמיד: רק שאלה מהירה. אם הם בודקים בסגנון, יש חלק שאומר שאנחנו לא לכלול את זה. ג'ייסון הירשהורן: עדיין לא. תלמיד: זה אומר לבצע את זה. איך אתה מבצע את זה ל לוודא שזה במערכת שלך? 

ג'ייסון הירשהורן: אתה הולך להפעיל פקודה bash. אני מתכוון לעבור על כך בהמשך. מגניב. אז המכשיר יכול להיות קצת מפחיד, בגלל שאתה רגיל לסוג של פועל בממשק משתמש גרפי. אז גירוד היה משתמש גרפי ממשק, אז מה אני מתכוון בזה? מה שאני מתכוון הוא ש כאשר אתה מתכנת, אתה בעצם באמצעות בלוקים של קוד. אתה יכול לראות את הקוד ודברים כאלה. 

המכשיר, שאתה הולך לעשות דברים בסביבת שורת הפקודה. וכך לשאר חיי תכנות שלך, אתה הולך לעשות דברים בסביבת שורת הפקודה. אז זה טוב לקפוץ בתחילת ולקבל קצת ניסיון. אז בואו נעשה את זה. אז זה רוב. 

אוקיי, אז בואו פשוט לקפוץ לדברי שורת הפקודה. אז זה המכשיר. מישהו יכול לומר לי למה אנו משתמשים במכשיר? מהו המכשיר? האם מישהו יודע? מה קורה? 

תלמיד: זה רק וירטואלי כי אתה להפעיל את המכשיר שלך, כך שאתה יכול להתגבר על מערכת ההפעלה חילוקי דעות בין Mac ו- PC. ג'ייסון הירשהורן: מושלם. תלמיד: זה תבנית אוניברסלית. ג'ייסון הירשהורן: כן, זה כמו תבנית אוניברסלית. זֶה מְצוּיָן. אז כן, זה מכונה וירטואלית. אז זה בעצם מערכת הפעלה. זה מערכת הפעלה. זה שווה ערך לשלך Mac, או PC אתה, או לינוקס שלך. זה אותו הדבר בדיוק. ואז אתה יכול לעשות דברים דומים. אם אתה רוצה, אתה יכול גולשים באינטרנט למשל. אתה לא באמת יכול לראות את זה, אבל ממש כאן, Google Chrome. אתה יכול להיכנס לאינטרנט, אם אתה רוצה. זה מערכת הפעלה. והסיבה שאנחנו עושים את זה בגלל ש זה הרבה יותר קל כאשר אנחנו מחלקים הוראות וכל מה ש. אם זה רק סביבה אחידה, זה הרבה יותר קל לנו, וזה הרבה יותר קל לך. אתה לא הולך לרוץ ל זה לרוץ לתוך כל מוזרויות כאשר אתה מתכנת. אנחנו יודעים בדיוק מה אתה הולך להיתקל. אז המכשיר הוא כאן. 

לכן, כאשר אתה מתחיל תכנות, אתה הולך לרדת ל הפינה השמאלית. יש קופסא קטנה. אתה הולך ללחוץ עליו. זהו חלון המסוף שלך. אז זה לאן אתה הולך להיות הרבה סמסטר. אז תן לי להתקרב קצת. 

אוקיי, אז לעקוף את מסוף החלון הוא קצת שונה. ראשית, אין סמלים. אני לא יכול ללחוץ על שום דבר. אין מה ללחוץ. אז יש לך להבין את דרך ל להבין איפה אתה נמצא, מה כאן, ואיך לנוע. 

אז שתי פקודות שימושיות ביותר כנראה הם ls-- אז מה אתה חושב ls עושה? 

תלמיד: רשימה. ג'ייסון הירשהורן: רשימות, כן. זה פשוט מפרט אלגוריתמים בתוך הספרייה. ולאחר מכן cd. אז בואו נגיד שאני רוצה CD CS50, מה שיעשה? כן? 

תלמיד: שינויים בספרייה שלך. ג'ייסון הירשהורן: מושלם, כן. זה פשוט משנה את הספרייה. אז בואו נחזור. אז איך אני חוזר? אז בואו נגיד שאני רוצה ללכת חזור לספרייה הקודמת. כן בטח. 

תלמיד: אני חושב שאתה כותב CD פשוט בלי שום דבר. ג'ייסון הירשהורן: אתה יכול לעשות את זה. כל כך מושלם. אז אם אני כותב CD, זה הוא הולך בעצם פופ לגבות לתיקיית הבית. אז אתה רואה טילדה זה, שפשוט יקפצו לי דרך חזרה עד למקום שבי טילדה היא. אז זה הולך לצוץ לי חזור לתיקיית הבית. אבל בואו נגיד שאני עשיתי משהו כזה. נניח CS50 CD. ls שוב. יש לי דברים אחרים. סעיף סופר CD. קובץ CD, אז אני הולך עמוק. ואז בואו נגיד שאני רוצה רק לקפוץ אחורה עד לפסגה. CD. בואו נגיד שאני לא רוצה לעשות את זה. בואו נגיד שאני רק רוצה לקפוץ אחורה עד הספרייה שהייתה בדיוק מעליי. איך אני עושה את זה? אז בואו נגיד שCS50 CD. supersection CD. אז בואו אני כאן. בואו נגיד שאני רק רוצה לצוץ פעם אחת. איך אני עושה את זה? כן, מה קורה? 

תלמיד: אתה פשוט להקליד CD שוב supersection. 

ג'ייסון הירשהורן: אתה יכול לעשות את זה. ובכן אני בsupersection. 

תלמיד: אה, אחד לפני. 

ג'ייסון הירשהורן: כן, כך שאתה יכול לעשות את זה. אתה עושה cd ~ CS50. אז אם אתה מסתכל כאן, זה היא הדרך שלך ממש כאן. זה הנתיב שלך. אז אותך ברצינות יכול פשוט ללכת cd ~ / CS50. בום, שאתה שם. מה דרך קלה יותר לעשות את זה אם? זה היה נכון באופן מושלם, אבל מה דרך מעט קלה יותר כדי לעשות את זה, כי הרבה פעמים אתה הולך לקפיצה בספריות, קופץ מתוך ספריות. אז בואו נחזור. supersection CD. אז בואו נגיד שאני רוצה לחזור במהירות אמיתית. אתה יכול לעשות משהו כמו נקודת נקודת CD. שפשוט יקפצו לגבות אותו בקלות. אז supersection CD. קבצי CD. בואו נגיד שאני כאן. אגב, ברור הוא טוב, כי שלי חלון היה מקבל קצת מבולגן. אז ls, אז אני לא רוצה להיות כאן יותר. CD נקודת נקודה. קח אותי אחד מהם. CD נקודת הנקודה לוקחת לי אחד מהם. CD נקודת נקודה וחזרתי לבית שלי. 

אוקיי, אז CD, ls. כנראה החשוב ביותר דברים, כי אתה הולך צריך לדעת איפה אתה נמצא. ls הולך לספר לכם שבו אתה נמצא, וCD איך אתה מתכוון לקפוץ סביב. 

אתה יכול גם לעשות כמה דברים מגניבים אחרים. אז לדוגמא ls. ls הוא רק הולך להראות לך הספריות בקובץ שלך. זה הולך גם להראות לך את הקבצים. אבל זה רק הולך ל להראות לך מה יש שם. 

אם אתה רוצה משהו קצת קריר יותר, ואתה הולך לעשות בפועל זה בכמה שבועות. ls l מקף. שמדפיס קצת יותר מידע. מישהו יכול לנחש על יד שמאל צד drwx, rwx ודברים כאלה. האם יש למישהו רעיון מה עלול להיות משמעות? 

תלמיד: הרשאות. 

ג'ייסון הירשהורן: כן, מושלם. הרשאות. אז אתה הולך ל תצטרך להתמודד עם זה כאשר אתה עושה את תכנות אינטרנט בשלב מאוחר יותר. אם אי פעם הלכו באינטרנט, ושהקלקת על תמונה או לחץ על שדה, וזה אמר permission-- כמו רשות אסורה, או כמו רשות לא ניתנה או מה, זה בגלל שכש הם מתכנתים, הם לא להגדיר הרשאות אלה כדי לאפשר לך לעשות את זה. אז איפה שמגיע מ. 

אוקיי, אז זה מגניב. וכך קפצנו מסביב. אנחנו יכולים להסתכל על דברים בספרייה שלנו. אבל איך אנחנו עושים דברים? יש לי ספריות כאן. זה מדהים. איך אני עושה ספרייה חדשה? אומר שאני רוצה לעשות חדש מדריך לעכשיו. אתה יכול לעשות משהו כזה, mkdir. אז להפוך את הספרייה. אז מה אתה רוצה קורא בספרייה זו? תלמיד: מדהים. ג'ייסון הירשהורן: מדהים. אני אוהב את זה. הפוך ספרייה מדהימה. והנה לך. אז אנחנו צריכים רשימה. יש לך ספרייה חדשה. ואתה יכול להגיד שזה ספרייה במכשיר שלך כי יש בזה הצבע הזה, נכון? אז זה כמו כחלחל סגול או משהו כזה. אז בואו לשנות. בואו לשנות את הספרייה. בואו נלך לdirectory-- כן, מה קורה? תלמיד: האם יש רשימה של כל [לא ברור] אלה באינטרנט? ג'ייסון הירשהורן: כן, אני אשים שלהם on-- תהיה לנו שקופיות. זה יהיה PDF. אנחנו נכניס אותם לכולם. כן, מצטער שזה הרבה פקודות. אם אתה רוצה אותי להאט, או לחזור, או משהו כזה, בהחלט תודיע לי. זה הרבה לקלוט מייד. מה קורה? האם אני יכול לשאול: סטודנט שאלה שעלול להיות טפשה? ג'ייסון הירשהורן: יש אין שאלות טיפשיות. תלמיד: יש. ספרייה היא רק מחפש במידע שבו אתה מאחסן אותו. 

ג'ייסון הירשהורן: כן. 

תלמיד: האם זה בעצם מה שאתה עושה? לכן, כאשר אנחנו עושים משהו, שלום עולם או מה, הוא מאוחסן בספרייה, כן? 

ג'ייסון הירשהורן: כן. 

תלמיד: האם זה נכון לכל דבר. כל מה שמאוחסן בספרייה. 

ג'ייסון הירשהורן: כן. בכל פעם שאתה עושה את זה, כל מה שמדריך שאתה ב, זה הולך בעצם לאחסן אותו בספרייה ש. תלמיד: וכאשר אנחנו קוראים לזה, אנחנו קוראים לזה מהספרייה. 

ג'ייסון הירשהורן: כן, כל כך הספרייה היא המקום שבו es. אז זה כמו סוג של אם יש לך תיקייה חדשה על שולחן העבודה שלך ולאחר מכן אתה כותב טקסט קובץ, לשים אותו בתיקייה ש, הקובץ שנמצא בתיקייה ש. האם זה הגיוני? 

סטודנט: כן. 

ג'ייסון הירשהורן: כן, מה קורה? 

תלמיד: האם אני יכול רק לבקש ממך לעשות את זה קצת יותר גדול? 

ג'ייסון הירשהורן: הו, כן. מצטער. המקרן הוא כל כך רע. היו לנו כל כך הרבה צרות עם זה מוקדם יותר. האם זה טוב יותר? האם זה גדול מדי? 

סטודנט: לא, לא, זה לא. 

ג'ייסון הירשהורן: לא, זה לא. האם זה קטן מדי? מה קורה? 

תלמיד: אני מצטער, מה הפקודה לניקוי? 

ג'ייסון הירשהורן: אה, ברור. אם אתה רוצה לנקות, פשוט הקלד ברור. ברור להיכנס. על המכשיר האחרון, מה זה בעצם עושה, זה לא לנקות את המידע שלך, זה פשוט סוג של משמרת הכל את המסך אחד. אז אם הקלדת clear-- ל דוגמא נניח שאני גלילה למעלה. אני יכול לגלול מעלה. זה כל מה שעשיתי. אבל אם אני מקליד ברור, ולאחר מכן אני לגלול למעלה, הנה הדברים שלי. אז זה לא מוחק את זה, זה פשוט בעצם נותן לך מסגרת חדשה. 

תלמיד: איך אתה [לא ברור] ספרייה? 

ג'ייסון הירשהורן: אנחנו נגיע לשם. 

[שחוק] להאט הגליל שלך. בְּסֵדֶר. אוקיי, אז כך שאנחנו ב ספרייה עכשיו. אז דוד, אני חושב בהרצאה הוא עשה כמה דברים מגניבים. אז בואו לכתוב תכנית. אז אתה יכול לעשות ש מספר הדרכים שונות. ניתן להשתמש בכל סוג של עורך טקסט. אתה יכול להשתמש בNano, ניתן להשתמש Vim, Emacs. אלה הם מעט יותר מסובכים. או שאתה יכול להשתמש במשהו ב כאן זה נקרא gedit. מצטער. gedit הוא לא מאושר. אז gedit הוא בעצם רק עורך טקסט. בדיוק כמו מילה לערוך טקסט ש מעבד או משהו כזה. אז יש לה נחמד ממשק פשוט אהב את זה. אז אתה עושה משהו כזה. אז בעצם תן לי לתת אותו שם, כי אני אף פעם לא עשיתי את זה. 

אז מה אתה רוצה שם התכנית הראשונה שלנו? זה רק הולך להגיד שלום. 

תלמיד: [לא ברור]. 

ג'ייסון הירשהורן: אתה חסר דמיון. אישור, gedit. היי. אני הולך לעשות .txt. אוקיי, אז הנה זה. אז בואו לכתוב תכנית. אז אני חושב שראית את זה בהרצאה. אתה צריך פונקציה העיקרית. בופ. כך שזה רק פונקציה העיקרית. גדול יותר? כן, מצטער. אישור אז אתה צריך פונקציה העיקרית. אני חושב שאני קופץ האקדח קצת, אבל זה אף פעם לא רע לקבל משמש לדברים מסוג זה. 

אז פונקציה העיקרית, כל תכנית C שאתה הולך לכתוב לשאר זה קורס יהיה פונקציה העיקרית. האם מישהו יודע למה? מה קורה? 

תלמיד: התחל. 

ג'ייסון הירשהורן: בדיוק, אז זה אומרת לי התכנית שלך מאיפה להתחיל. אז אם אין לך פונקציה העיקרית, והידור זה ועוד דברים, זה לא הולך לדעת הייתם להתחיל. העיקרי הוא תמיד שם זה מתחיל. אז יש לך פונקציה העיקרית, ולאחר מכן האם מישהו זוכר איך להדפיס? 

תלמיד: printf. ג'ייסון הירשהורן: כן, printf. printf היי. אוקיי, עכשיו אני צריך להגדיר אתכם חבר'ה להיכשל, אבל זה לקמפל. 

תלמיד: מס ' 

ג'ייסון הירשהורן: מדוע? יש סיבות רבות מדוע. בטח. 

תלמיד: זה לא חייב הסטנדרטי [לא ברור]. 

ג'ייסון הירשהורן: מושלם. אז מה זה נקרא כאן? 

תלמיד: [לא ברור] 

ג'ייסון הירשהורן: זה קובץ כותרת, נכון? זה קובץ כותרת. ואתה בדיוק. שניכם צודקים. אז לכלול את זה, אני פשוט עושה קילו כולל .h פלט קלט סטנדרטי. האם אני טוב ללכת עכשיו? האם זה לקמפל? 

תלמיד: מס ' ג'ייסון הירשהורן: למה לא? תלמיד: זה טקסט [לא ברור]. ג'ייסון הירשהורן: כן, מדהים. אז אני פשוט עשה את זה. אז אני הצלתי אותו, אבל hi.txt gedit. אז עכשיו אם אני עושה ls, הנה הוא. ממש כאן. אה, זה לא במדהים. אני בטח יצאתי. אה, מושלם. איך לשים את זה במדהים? אז אני לא רוצה אותו כאן בבית שלי ספרייה עם כל דבר אחר. אני רוצה לשים אותו בתיקייה. איך אני עושה את זה? 

לא קשה מדי. הזז. אז כבר למדנו ls, רשימה. CD לשנת מדריכים. CD נקודת הנקודה כדי להקפיץ מתוך ספריות. ועכשיו אנחנו הולכים ל להתחיל לנוע סביב קבצים. אז לעבור רק להזיז hi.txt, ו אני הולך לשים אותו במדהים. 

רק להיזהר. בכל פעם שאתה כותב ב שורת הפקודה, ענייני הכל. עניינים כל כך באותיות גדולות. אם עשה אותיות קטנות, זה לא הולך לדעת מה קורה. אז ענייני הכל להיות מאוד ספציפי. 

אז רוץ ש ls. זה כבר לא כאן. בואו לשנות את הספרייה למדהימה. ls. בום, זה שם. ומישהו הזכיר מדוע זה לא לקמפל. למה הוא לא הולך להדר שוב? כן? 

תלמיד: זה לא ב.ג. 

ג'ייסון הירשהורן: מושלם. זה לא .ג, כל כך איך אני הולך לשנות את שמו ל.ג? מה דרך קלה לעשות את זה? בואו להשתמש בפקודה רק שעשינו. אז אנחנו פשוט הולכים ל להעביר hi.txt לhi.c. hi.c. ls ולאחר מכן רק בשביל כיף, בואו פשוט לקפוץ לתוך מהיר אמיתי זה. hi.c. תוכל להבחין שזה נחמד וצבעוני. אז אלה הם רק סוג של מועילים צבעים כאשר אתה מתכנת. אז int והחלל, אלה הם סוגי הנתונים. אנחנו נעבור על אלה בשניים. היי היא מחרוזת. אבל צבעים שימושיים. אז אם אתה אי פעם בטעות לבחור את הסיומת הלא נכונה, צריך להיות לך צבעים אלה. מה קורה? 

תלמיד: איך אני יכול להעתיק ל קובץ [לא ברור] בקובץ אחר? ג'ייסון הירשהורן: אה, אני הולך להראות לכם גם את זה. אז להעתיק להסירם על המזח. בואו נעשה את זה. לוודא שזה עובד. הפוך היי. עבודות, להפעיל אותו. אז ./hi מדהים. זה התכנית הראשונה שלך. תן לי לעשות את זה גדול יותר. אז באמת good-- כן, מה קורה? תלמיד: למה שיהיה כי כאשר אני לוקח gedit, זה לא נותן לי עוד קו לhi.txt gedit? זה פשוט מעביר את הסמן לשורה. סטודנט: כן. [לא ברור]. 

ג'ייסון הירשהורן: המתן, כך אומר את זה שוב. 

תלמיד: כשאני מקליד gedit, הפעם ראשונה, line-- הראשון ג'ייסון הירשהורן: עד יש בחלקו העליון? תלמיד: יש לא J הרווארד מכשיר, והסמן רק את כל הדרך לצד השמאל. ג'ייסון הירשהורן: כל שמאלה עד הסוף? סטודנט: כן. האם עוד מישהו יש את זה? 

ג'ייסון הירשהורן: נו, טוב J הרווארד הוא בדיוק כמו שם המשתמש. אז זה רק את שם המשתמש הסטנדרטי. 

תלמיד: הוא מפסיק להגיב. ג'ייסון הירשהורן: אה, הוא מפסיק להגיב. אוקיי, אז מה יש לך לעשות הוא אתה צריך לסגור את gedit. כל כך קרוב מתוך gedit, ואת זה צריך לחזור. אז הוא gedit פתוח עליך מכשיר עכשיו? אם תצא ממנו, שהוא צריך לחזור ואתה צריך להיות טוב ללכת. האם זה עובד? 

תלמיד: אז לא עשה לך להשתמש ב פקודת gedit לopen-- ג'ייסון הירשהורן: לא, הראשון פקודת gedit הייתה טעות. פקודת gedit הראשונה, אני לעשות hi.txt gedit. אז אני נותן לה שם, hi.txt כך gedit. hi.txt הוא שמו של הקובץ. הראשון היה רק טעות, ולאחר מכן סגרתי במהירות מהתכנית. אז השאלה הייתה אם אני עושה את gedit, אני לא הולך להיות מסוגל באמת לעשות כל דבר אחר בשורת הפקודה שלי עד שאני סוגר gedit ש, אז אני חושב שזה מה שהם רצו ל. אז לסגור את gedit. זה יחזור שמ תכנית, ולאחר מכן תוכלו להיות מסוגל להקליד למעשה בשורת הפקודה שוב. האם זה טוב? סמים. אז רק לוודא כדי לסגור זה אם אתה נתקלת בבעיה. 

אישור אז שאלה, ממש טובה שני לפני שמעתיק. אז עכשיו יש לי hi.c. אבל בואו נגיד שאני רוצה לשנות את זה. אני רוצה שזה יהיה קצת יותר טוב. אני רוצה לומר ברמה היי. אבל אני רוצה לשמור על תבנית זו. אני לא צריך לשכתב את התכנית כולה שוב. אני רוצה לשמור את התבנית. כיצד אוכל להעתיק? 

קל. אז newhi.c hi.c cp. עכשיו יש לי שני. ואז אני יכול לפתוח newhi.c, ובמקום רק אומר היי, אני אגיד את כיתה היי! אז אני אחזור. יציאה. לחזור לשורת הפקודה שלי. ls לעשות newhi. להפעיל אותו. יש. זה יותר טוב, הרבה יותר טוב. אז אם אתם רוצים להעתיק משהו, קל כמו ש. cp הוא עותק. 

אז אנחנו כבר עברנו על מרגשים, מה שהופך את ספריות, העתקה. בואו נראה מה עוד אני צריך לעבור על? אה, כן. בואו נלך על זה. אז זה היה מדהים. בואו נגיד שאני רציתי to-- אה רגע. אני הולך לחזור למדהים. 

בואו נגיד שאני לא רוצה קבצים אלה ממש כאן. בואו נגיד שאני רוצה אותם בחדש ספרייה כמו בספרייה מדהימה. אני רוצה להתחיל לארגן, אז עכשיו אני הולך יש ספרייה חדשה בשם היי. יש בו את כל התוכניות אני כותב בשם היי. אז איך אנחנו עושים את זה? 

תלמיד: מדריך שינוי. 

ג'ייסון הירשהורן: כן. היי. בופ. mkdir hi_dir. זה התלונן כי אני כבר היה לי היי כאן. אז עכשיו יש לי ספרייה היי. אז עכשיו אני רוצה לעבור הכל, כל התוכניות שכתבתי, אני רוצה להעביר אותם לתוך הספרייה היי. רק נקי דברים עד. איך אני עושה את זה? 

תלמיד: [לא ברור]. 

ג'ייסון הירשהורן: הוא הזיז אותה, נכון? אז בואו נעבור. כן? 

תלמיד: מה ההבדל בין היי וhi.c שכבר יש לנו. ג'ייסון הירשהורן: אה, hi.c הוא בפועל. אז זה הקובץ שאתה כתב. אז אם אתה הולך לפתוח אותו בgedit או ננו, זה מה שאתה מקליד ב. כאשר אתה מהדר אותו, ולאחר מכן אתה מקבל קובץ הפעלה. זה היי. אז אם אתה נפתח היי, זה הולך להיות חבורה של ג'יבריש לך. זה בעצם הולך להיות חבורה של הוראות מחשב. מה קורה? 

תלמיד: מה כל הצבעים מתכוונים? הכחול הוא כנראה ספרייה. מה צהוב? 

ג'ייסון הירשהורן: אלה הם קבצי ההפעלה. לכן, כאשר אני לא עושה hi.c, זה נתן me-- אז אני יכול לעשות את זה. קופץ את האקדח. אז להסיר היי כן. אז בואו נעשה ls. אין לי היי יותר. לכן, כאשר אתה עושה, זה כאשר אתה לקחת את התכנית שאתה כתב ואתה עושה את קובץ הפעלה. אז להפוך את hi.c-- גם, לעשות היי. אני חושב שהוא הלך על זה בהרצאה. 

אלה הם חבורה של הוראות מהדר. אז במקום למעשה לכתוב מצרימות עם כל אלה. אלה הם דגלים. אתה פשוט כותב לעשות. אז זה הופך את קבצי ההפעלה. לכן, כאשר אתה עושה ls, עכשיו יש לך היי. אז זה מה שאתה הולך לרוץ ממש. ואז אתה רץ כי במעשייה ./hi, והיא פועלת התכנית שלך. אבל אם אני מנסה לעשות את זה עם hi.c, לא, זה לא הולך לעבוד. כן, האם זה הגיוני? 

תלמיד: ממ-הממ. 

ג'ייסון הירשהורן: מגניב. חכה, אני רוצה לומר משהו אחר. רק ממש מהר, במקרה מישהו מעוניין, כשאתה קופץ מ ספרייה, שזה הנקודה הנקודה. האם יש למישהו מושג מה אולי רק אמצעי נקודה האחת? תלמיד: [לא ברור]. ג'ייסון הירשהורן: זה למעשה הספרייה הנוכחית. אז זה המדריך הנוכחי שלך. אז אני כאן. אני במדהים. אם אני עושה את נקודת CD, זה לא לעשות שום דבר. זה לוקח אותי לספרייה הנוכחית שלי. אז קצת מיותר, אבל יש לך כדי לעשות את זה, כל כך ./ שם התכנית שלך, על מנת להפעילך תכנית, אתה צריך לעשות את זה. אישור. 

תלמיד: נקודת cd אם אתה עושה נקודת נקודה, נקודות רבות עם זאת יהיה זה פשוט לקחת אותך ספריות שרבים? 

ג'ייסון הירשהורן: אתה מתכוון כמו CD נקודת נקודת נקודת נקודה? סטודנט: כן. ג'ייסון הירשהורן: מס ' אז בעצם זוכר שכן ls -l? אם אני עושה משהו אחר, אני יכול ls -a. אז מה זה אומר הוא -a מראה לך הכל. אז זה מראה לך דברים שהם חבוי ודברים שאינם מוסתרים. אז אם אתה שם לב שכאשר עשיתי רק ls, אני פשוט ראיתי את הדברים האלה, הדברים שעשיתי. אם אני עושה -a, זה הולך כדי להראות לי את הכל. וספרייה נוכחית כל כך, ספרייה מעליו. האם זה הגיוני? כן? 

תלמיד: אבל אלה לא למעשה בספרייה. המדריך הנוכחי הוא לא בעצמו, אז למה להראות לאותם עם נקודות בפנים? 

ג'ייסון הירשהורן: אתה אומר שזה כמו שזה לא בספרייה. 

תלמיד: העכבר. אז יש לנו רשימה של דברים שנמצאים בספרייה. 

ג'ייסון הירשהורן: אני חושב ש זה בספרייה. כמו -a מציג את כל מה, גם אם הוא מוסתר בתוך הספרייה. אז אני חושב שזה רק בדרך ל ספרייה נוכחית אם זה נשמע הגיוני. זה קצת רקורסיבית. זה כמו התחלה. מה קורה? 

תלמיד: אז אתה אמר מופעי -a [לא ברור]? ג'ייסון הירשהורן: -a, כן. 

תלמיד: מה עושה [לא ברור] את זה? ג'ייסון הירשהורן: ובכן, למשל, בואו נחזור לראש. זה בדרך כלל דברים שאתה לא צריך בלגן עם ואתה לא צריך לדאוג. אז זה סוג של הבית. אם אני עושה -a, אני מקבל טונות של חומר. את כל הדברים האלה. ואתה לא צריך להתעסק עם כל דברים ש. בהחלט לא תתחיל ללכת בכאן ופשוט להסיר דברים. 

[שחוק] 

כן, זה היה קצת יותר דברים נוחים, אבל זה טוב לדעת. אני חושב שזה טוב לדעת. אבל אם אתה לא רוצה להקליד -a במכלול זה כמובן, פשוט תשכח מזה. מה קורה? 

תלמיד: מה ls -l הוא? ג'ייסון הירשהורן: זה מראה לך הרשאות. בעיקרון אתה משתמש ש להרשאות, כך -l. זה מראה לך קצת מידע נוסף קצת, אבל שוב, זה קצת נשך את הדברים נוחים יותר. אלה הם רק הרשאות. אז את ההרשאות של התיקיות. אז רק לדוגמא, בואו נגיד שאני עשיתי תיקייה, כך ד מסמן את התיקייה. אז אלה הם ספריות. ואז לקרוא, לכתוב, לבצע. אז אלה הן הרשאות ל אני חושב למשתמש, קבוצה, עולם. לגמרי הולך רחוק מדי. אתה הולך בזה כמו שבועות מהיום, אבל רק שתדע, אלה הם הרשאות. מה קורה? תלמיד: האם אתה יכול ברור ולא פשוט לדלג לדבר הבא, יכול you-- ג'ייסון הירשהורן: אתה מתכוון בעצם למחוק? אֲנִי לֹא יוֹדֵעַ. אני אף פעם לא עושה את זה. למה אתה רוצה לעשות את זה? למה שתעשה את זה? אני אוהב את זה. אתה חי על הקצה. אתה כמו שאני לא רוצה את כל זה. זה אינטנסיבי. תלמיד: [לא ברור]. ג'ייסון הירשהורן: כן, אנחנו יכולים לעשות את זה. מצטער, להתעסק עם הגודל הוא לגמרי מפחיד אותי החוצה עכשיו. בואו נלך עד. כן, אז עכשיו אני לא יכול לעלות יותר. אז כל מה שאני מלמד אתה נעלם לנצח. תודה לך. עשינו המדריכים שלנו. עשינו קבצים ודברים שלנו כמו כי, כך שעדיין יש לנו את כל הדברים האלה. אישור, אני אלך מהר. 

כל כך אמיתי מהיר. אז בואו נגיד שאני במדהים. בואו נגיד שאני רוצה לעבור הכל לספרייה החדשה כי אני פשוט רוצה לארגן את זה, נכון? אז איך אני הייתי עושה את זה. הזז. אנחנו הולכים להשתמש במהלך שוב. אז תזיז hi.c. ומה שאתה יכול לעשות הוא מתחילים למנות את דברים, והדבר האחרון שאתה ברשימה הוא לאן זה הולך לעבור את זה. אז אזיז hi.c, היי newhi newhi.c, hi_dir. וכך העבירו את כל מה ל הדבר האחרון שהזכיר. אז לשנות את הספרייה, ls hi_dir. הכל נמצא שם. אז זה נחמד ומאורגן יותר. 

אישור, בואו נגיד שאני שונא התכנית המקורית שלי היי. אני רוצה להיפטר ממנו. כיצד אוכל לקבל להיפטר ממנו? מה קורה? 

תלמיד: [לא ברור]. ג'ייסון הירשהורן: נניח שאני רק רוצה להסיר את התכנית, אז רק היי. לא, אתה צודק. אז זה rm, אבל אתה עושה rm היי. זה הולך לתת לך אזהרה קטנה. זה הולך לומר אתה בטוח שאתה רוצה למחוק את זה, ועל כן אני עושה. אם אתה לא רוצה תתבקש כמו ש כי אין לך זמן לאזהרות, להסיר -f. זהו דגל אחר. זה כמו -l. זה כמו -a. אלה הם רק דגלים ש אתה נותן לפקודות אלה. אז להסיר -f. ו -f פירושו כוח. אז להכריח אותו. אני לא רוצה שתתבקש. אז להסיר -f. בואו לעשות hi.c. רק נפטר מזה. זה לא אמר לי. 

אבל נניח במקום שאני עשה עם ספרייה זו. אני רוצה להיפטר מספרייה. אז אני מסיר את hi_dir. לא, זה לא עובד. לא, כך שזה לא ייתן לי שלי להסיר את ספרייה. האם יש למישהו רעיון? 

תלמיד: האם זה להסיר dir? ג'ייסון הירשהורן: אז להסיר את אוהבים את זה? 

תלמיד: מס ' רק [לא ברור]. ג'ייסון הירשהורן: לא, עכשיו אין היי. יש רק hi_dir. אז זה המדריך. אז בעצם מה שאתה רוצה לעשות is-- הו, יש לך רעיון? אני רואה כמו חצי שני. 

תלמיד: [לא ברור]. ג'ייסון הירשהורן: אישור. 

תלמיד: [לא ברור]. 

ג'ייסון הירשהורן: אישור. אז אם אני רוצה להסיר ספרייה, להסיר -r. זה רקורסיבית. אז להסיר את רקורסיבית ספרייה. אז אני רוצה שתלך לספרייה ש, להסיר את כל מה בספרייה, ולאחר מכן להיפטר מהספרייה. ואז אני הולך ל ו, כמו גם, כי אני לא רוצה אותו כדי להנחות את עם אזהרותיי לאחר שהוא מסיר כל קובץ. אז להסיר hi_dir -rf. בום, זה נעלם. רק להיזהר שבו אתה משתמש ש. אני הולך להשתמש בו גם כאן. -rf מדהים. זה נעלם. להיות זהיר שבו אתה משתמש ש. אם אתה משתמש בזה כאן ולהקליד משהו ככה, אף פעם לא עושה את זה. כי ימחק כל מה שעליך מכשיר מבלי מזהיר אותך. ועשיתי את זה. בעיה דירוג קובעת שעת 4:00 לפנות הבוקר, הייתי מנסה להסיר את הספריות להגדיר בעיה, ועשיתי את זה. והייתי כמו אוי ואבוי. אל do-- ניסיתי לבטל אותה. ניתן לבטל. פיקוד C פשוט מבטל הכל, אבל אני כבר נמחק כמו 75%. אז אני אהרוס אותו. ואנשים עושים את זה. כולם עושה את זה. אל תעשה את זה אם כי בסמסטר הזה. זה מבאס. אני עצבני שיש את זה כאן. אני הולך למחוק אותו. 

[שחוק] האם אתה יכול לדמיין? אישור, על שאלות. כן? 

תלמיד: אז אם אנחנו עושים הכל אתה עושה כאן, האם זה אותו שכרק נכנס לבעצם שמור את הקובץ כ[ לא ברור]. ג'ייסון הירשהורן: אה, אתה מתכוון דרך gedit. סטודנט: כן. ג'ייסון הירשהורן: כן זה הוא. gedit הוא שימושי. אז gedit הוא מאוד שימושי. בשיעור זה, אתה יכול לעשות הרבה דברים דרך gedit. אתה יכול לחסוך. אתה יכול לשנות את השם. באפשרותך להעביר קבצים ודברים כאלה, אבל רק בכנות כשאתה הולך ל50-- גם אתה ב50-- 51, אם אתה רוצה ללכת ל61, זה הולך להיות החיים שלך. זה שורת הפקודה. זה שבו תוכל לתכנת לשארית חייך, כך בהחלט להשתמש gedit אם אתה רוצה. בהחלט דרך טובה להתחיל. לבעיה הראשונה קובעת, בהחלט להשתמש, אבל כל פעם בכמה זמן מנסה להתרגל יותר נוח יותר עם טיעוני שורת הפקודה. אבל אתה יכול, בהחלט. מה קורה? 

תלמיד: לכן, כאשר אנחנו רוצים למחוק אחד מהקבצים שעשינו, יש שתי דרכים. [לא ברור]. האם יש דרך כשאתה מחיקת ספרייה לבקש הפקודה, כך ש לא בסופו למחוק אותו? ג'ייסון הירשהורן: rm -r. אז אל תכריח אותו. אז rm -r. זה הולך לעבור באופן רקורסיבי, למחוק את כל מה, יבקש ממך אחרי הכל, ש יהיה כונן אתה משוגע. כמו שכמעט אך ורק לעשות rm -rf -f וrm, רק כל הזמן. אני כמו שאין לי זמן. אני אדם עסוק. בסדר, מה קורה? כן. 

תלמיד: האם יש לבטל, או פח אשפה, או משהו כזה? ג'ייסון הירשהורן: מס ' [שחוק] אני יכול לחזור ולקבל אותי מכשיר שאני פשוט נמחק, לא. לא, לא, לא. אם אתה עושה rm, זה צריך להיות נעלם. מה קורה? 

תלמיד: אז אתה יכול [לא ברור] ביחד. ג'ייסון הירשהורן: כן, בדיוק ככה. כך למשל, ראה את -rf rm. נניח שאני רוצה לעשות -la ls, זה מראה לי כל דבר, אפילו נסתר דברים עם ההרשאות שלהם. 

תלמיד: אז r, -r דגל, אם אין לנו את זה, אנו לא יכולים למחוק את ספרייה, נכון? 

ג'ייסון הירשהורן: נכון. 

תלמיד: אז זה אומר שאנחנו רוצים לעשות משהו עם הספרייה? האם זה מה שזה אומר? 

ג'ייסון הירשהורן: -r אומר באופן רקורסיבי. אז מדריך הולך יש קבצים בזה, נכון? אז מה שאתה רוצה לעשות הוא רוצה להיכנס לספרייה ש, למחוק את כל מה, כל קבצים בספרייה ש, אז קופץ החוצה ולמחוק הספרייה בפועל. אז -r אומר רקורסיבית, לעשות את זה כל רקורסיבי אם זה נשמע הגיוני. כן. 

תלמיד: אז יש לי ספריות ופשוט למחוק אותו [לא ברור]. או שאתה still-- 

ג'ייסון הירשהורן: בואו ננסה. אז mkdir הריק. הסר ריק. מס ' 

סטודנט: לא, אז אתה עדיין צריך the-- 

ג'ייסון הירשהורן: כן, תמיד. אז -r, -rf, ריק. מדהים. עוד שאלות? אני חושב שזה ההתרסקות שלך כמובן בדברי שורת הפקודה. כל שאלות, כי אנחנו הולכים ל לקפוץ מעל לסוגי נתונים, ולולאות, וכל הדברים האלה? מה קורה? 

תלמיד: אין לי CS50 מראה כאחד מהמדריכים שלי. האם זה נורמלי? 

ג'ייסון הירשהורן: הו, כן. זה שלי. כן, זה המקום שבי פתרונות לדברים שלך הוא. 

[שחוק] 

אז כן, זה נורמלי לחלוטין. אני חושב שאתה בטח רק ארבעה הללו. אני חושב שזה יכול להיות נורמלי. כן. אישור, כל עוד שאלות? אני יודע שהיה סופר מהיר. מה קורה? 

תלמיד: ראיתי את הצבע הכחול הירוק. מה זה? 

ג'ייסון הירשהורן: זה אומר שספרייה. תלמיד: וכחול זה? 

ג'ייסון הירשהורן: אה, אתה מתכוון כחול ירוק הזה? 

תלמיד: מס ' 

ג'ייסון הירשהורן: ירוק כחול זה? 

תלמיד: מס ' כאשר אתה listed-- ג'ייסון הירשהורן: אה. כמו זה? 

סטודנט: כן, הסמלים. 

ג'ייסון הירשהורן: אה, זה. אֲנִי לֹא יוֹדֵעַ. מה זה אומר? אז זה נראה לי מצביע לספרייה. 

תלמיד: זה כמעט נראה כמו כינוי. 

ג'ייסון הירשהורן: זה יכול להיות. אתה לא צריך לדעת את זה. עוד שאלות? מדהים. אם יש לך שאלות, אני יודע שהיה הרבה. הרבה מידע זה יהיה מקוון. אני אשים את זה באינטרנט בשבילכם. סעיף ב 'יהיה באינטרנט, כמו גם. או אם יש לך שאלות, רק לבוא ולשאול אותי. הנה לך. אז עכשיו שרון ו חנה תעבור על כמה של ההיגיון מאחורי הבעיה להגדיר אחד. 

שרון: אוי אלוהים. צרות. 

חנה: בינתיים, אני חנה. זה שרון. שנינו CS50 TFS, ו אנחנו הולכים לתת לך intro קטן על כמה חשוב דברים לבעיה להגדיר אחד. הכל מסוגי נתונים לתניות ללולאות. לולאות באופן כללי. 

שרון: ובסופו, אנחנו תסתכל בP להגדיר אחד, ומה יש לך לדעת על זה. אז בואו נתחיל עם סוגי נתונים. אתם צריכים להכיר את אלה שמודגשים בכחול. אז אנחנו יכולים להתחיל עם ints. ints הם מספרים שלמים, כך שאף אחד, שתי, שלוש, ארבעה. צף, צף נקודות. כמו מספרים שלמים עם שברים עשרוניים, כך 5.2 או אפילו 5.0. תווים הם תווים כמו A, B, C. ומחרוזת, אתם יודעים. כמו CS50 או שלום ועולם. 

בול הוא בוליאנית, כך שיש לנו אמת ושקר כבוליאנית שלנו. אז אם משהו מחשב לtruth-- 5 שווים 5, שמחשב לנכון, ואם יש לנו 5 שווים 4, זה שווא, כך שמחשב שווא. וכאן יש לנו קשור גודל של כל אלה סוגי נתונים. ואתה צריך לדעת זה לחידונים שלך, אז זה עשוי להיות מועיל ל לזכור, אבל אנחנו מתכוונים לכתוב אלה. למעשה, הם כבר פורסמו. אז אתה צריך להיות מוכר עם אלה מסומנים בכחול. 

ג'ייסון הירשהורן: Real רק במקרה מהיר, אתה רוצה לדעת את ההבדל בין char ומחרוזת. לכן, כאשר אתה כותב דברים, בכל פעם שיש לך משהו כמו "היי," זה הולך להיות מחרוזת. אז אם יש שני ציטוטים, זה מחרוזת. אבל אם הייתי "h" כמו ש, זה מחרוזת. אבל אם יש לי אחד בלבד ציטוט, זה char. ואז מה הבדל אתה יכול לשאול. ובכן, ההבדל הוא זה בית אחד של זיכרון. זה 4 בייטים של זיכרון. 

שרון: לצוף? תאר את זה שוב? אישור, זה כמו סוג של מספר שיש לו נקודה עשרונית עם זה, כך 5.2 או אפילו 5.0 הוא לצוף לעומת רק 5 הוא int. תלמיד: [לא ברור]. 

שרון: הו, זה יכול להיות רב נקודות עשרוניות, כך 5.675-3.1415. כן? 

תלמיד: האם אנחנו צריכים לדעת כל הגדלים לזה? שרון: כן. תלמיד: [לא ברור]. 

שרון: אתה אל תדאג הלבנים עדיין. 

חנה: ההערות הן פורסם בCS50.net/sections. תלמיד: רק מתוך סקרנות, האם יש כלי לידיעה בגודל של הקבצים שאתה מתקשר כל כך שאנחנו צריכים לדעת את זה? 

שרון: אז אלה הם סוגי נתונים, אבל כן. אז במקרה הזה, מי היית יותר זיכרון או יותר מקום? 

ג'ייסון הירשהורן: אז לדוגמה קונקרטית, באני חושב שסט בעיה ארבעה או חמישה, אנחנו הולך לתת לך חבורה הנתונים, ואתה בעצם צריך לחצות נתונים ש. אז זה שימושי לדעת ש אם יש לך כל כך הרבה מספרים שלמים, זה הולך להיות מה. אז בואו נגיד שאני נתתי לך עשר מספרים שלמים, מה הגודל של זה? תלמיד: 40. ג'ייסון הירשהורן: 40 בתים, תקין. אז אולי אתה צריך לדעת ש בסדר, אני צריך לקפוץ 40 בתים. אז בואו נגיד שבמקום שזה 40 תווים, then-- בואו נגיד שאני נתתי לך 10 תווים, אז אתה יודע, בסדר, אני היחיד צריך לקפוץ 10 בתים. אז זה מאוד שימושי לדעת גודל של סוגי נתונים בפועל, כי הרבה פעמים אתה תמצאו קפצתי מסביב נתונים, אז אתה צריך לדעת כמה רחוק כדי לקפוץ. 

תלמיד: מה ההבדל בין הציטוטים וציטוט אחד? 

ג'ייסון הירשהורן: אישור, שני ציטוטים הוא מחרוזת. ציטוט אחד הוא char. 

תלמיד: כמו מבצעי, מה ההבדל? שניהם אומרים היי. ג'ייסון הירשהורן: הו, אני מצטער. זוהי רק h. מצטער, זה לא ברור. 

תלמיד: אז הראש one-- ג'ייסון הירשהורן: זה הוא מחרוזת, כן. אז זה שתי דמויות, נכון? מחרוזת, היי. אבל בואו נגיד שאני פשוט הייתה דמות אחת, אם אני שם את שתי מרכאות סביב רק שעות, זה מחרוזת. זה h מחרוזת. האם זה הגיוני? אז זה ארבעה בתים. אבל בואו נגיד שאני נפטרתי של שרק לשים אחד. ציטוט אחד. זהו עכשיו char, h char. אז בדיוק את מה ש, סוג נתונים שונה. זה רק בית אחד, ואילו המחרוזת הייתה ארבעה בתים. כן. תלמיד: אז אם אתה מנסה כדי לאחסן מילה כמו דוד, היית רוצה להשתמש במחרוזת כי לא משנה כמה זמן את המחרוזת היא, זה ייקח רק ארבעה בתים אלא אם כן זה זמן ארוך או כפול, שבו case-- אז אם זה מתרחב מעבר לארבע דמויות, ואז אתה רוצה להפוך אותו למחרוזת. האם זה ההיגיון הכללי מאחורי. ג'ייסון הירשהורן: אם זה משתרע מעבר תו אחד, זה מחרוזת. 

תלמיד: אז אין [לא ברור] לאחסון ארבעה אותיות מילה כארבעה בודדים או שלוש אותיות מילה כשלושה תווים בודדים משום שיהיו רק שלושה בתים, בניגוד למחרוזת שלושה חלק. ג'ייסון הירשהורן: אתה יכול לעשות את זה. אתה יכול לעשות את זה, אבל אני לא חושב שזה ממש משתלם, בגלל שאתה חוסך בייט אחד בלבד. אתה יודע מה אני אומר? בתכנית הגדולה של דברים, שלא ממש משנה. אבל למשל, printf, אם אתה מדפיס f ואתה יש שלושה תווים שניתן להדפיס שout-- נניח שאתה C-A-T, אתה יכול להדפיס את חתול רק על ידי עושה char אחד char אחד char אחד, או שאתה יכול להדפיס את מחרוזת חתול. זה בדיוק אותו דבר. אז אתה יכול לעשות את זה כמו ש, but-- 

תלמיד: זה לא הולך כדי לחסוך לך כל כך הרבה. 

ג'ייסון הירשהורן: כן. כאב הראש שזה היה לגרום לא שווה את זה. כן? 

תלמיד: לדוגמא, היו לך שעות עם אחד לעומת שתי, הגרשיים בודדים או כפולים. למה אתה רוצה להציל אות אחת כמחרוזת. איזו מטרה זה שאי פעם משרת? ג'ייסון הירשהורן: אני לא יודע. אני מתכוון, זה באמת תלוי בתכנית. לדוגמא, אני חושב שמאוחר יותר אתם תיכנסו לדברי שורת הפקודה. כך למשל, במקומי מבקש ממך סליחה integer--, אני יכול לדבר אליך? חנה: כן. 

ג'ייסון הירשהורן: אז לדוגמא, במקום שלי מבקש משהו עם הסוף קבל, ש אני חושב שאולי ראיתי הרצאה, אולי יש שורת הפקודה. אתה פשוט הקלד אותו בשורת הפקודה. / Hello4 או - זה יהיה כמו משהו, או h helloh, מה. אתה עושה את זה בשורת הפקודה במקום להיות ביקש את זה, שורת הפקודה תמיד מחרוזת, בין אם מדובר בארבעה או h, כי הוא תמיד מחרוזת. אז זו דוגמא אחת של כאשר ייתכן יש מכתב ביחיד או בלשון יחידה מספר מיוצג כמחרוזת. שרון: בסדר. ואז הנה כמה מפעילים בסיסיים. אני מקווה שאתה מכיר ארבעה הראשונים רק באופן כללי. אז יש להוסיף, להחסיר, כפל וחילוק, וודא שאתה משתמש ההקשות הנכונות. 

ואז יש גם מודולו, שחלק שלך לא יכול להיות מוכר מאוד עם. ומה מודולו עושה את זה כי אם ניקח דוגמא זו 4% 2, זה לוקח את יתרת מה שעושה בחטיבה. אז 4 חלקי 2 הוא 2, ואין שום היתר. 4 חלק 3 הוא 1 ו 1/3, וכן יתרת 1. אז הוא מחשב לאחד. ולאחר מכן 4% 5 הוא שבריר 4/5, והשאר הוא 4. האם זה הגיוני? אישור, מגניב. ואנו עוקבים PEMDAS גם כאן. 

אז כמה ביטויים בוליאני. אז אתם רואים שווים שווים כדי להשוות, למשל, שני מספרים. אז אם 5 שווים שווה 5, שמחשב לאמיתי. ודא שיש לך רק אחד סימן שווה. ללא שווה, זה תדפוק בדלת או קריאה. 

חנה: שני סימנים שווים כאשר אתה עושה את השוויון. 

שרון: הו, כן. לוודא שאין לך יש אחד שווה סימן. ולאחר מכן ללא שווה, זה מפץ שווה. ואז אתה יכול להסתכל דרך פחות מ, גדול יותר מ. ולאחר מכן יש לנו והגיוני ולוגי או ממש כאן. ומה שעושה הוא, אם אתה זוכר בScratch כאשר היה לך בלוק ש שאמרו ו, ואז אתה יכל להכניס שני חלקים שונים יש, זה מה שזה ועושה. ולוודא שאתה עושה שני תווי אמפרסנד. והמפתח הזה ניתן למצוא כיוון נכון, ממש מתחת לכפתור מחיקה שלך. שאלה? 

תלמיד: מה היה [לא ברור]? 

שרון: אוקיי, אז אם אתה רק עושה אחד, אתה משווה ביטים. אז אם אתה זוכר מה ביטים הם, שהם 0 ו -1 של, וכך זה משווה משהו אחר. אז אנחנו הולכים להתמקד בזה לעת עתה. 

ג'ייסון הירשהורן: אז אחד שווה זה כמו משימה, נכון? אז כמו int x שווה 4. אתה אומר שx משתנה שווה 4. אז 1 שווה היא משימה, אבל הידות והצינורות או הברים, בדיוק כמו שרון אמר, שהם מפעילים סיביים האופרטור. אתה לא צריך לדאוג בקשר לזה. 

תלמיד: כשאתה משתמש הגיוני והגיוני או שוב? אני פשוט שכחתי כאשר אתה עושה את זה. 

חנה: בטח, כך שאם אתה רוצה אי פעם כדי לבדוק אם שני דברים הם נכונים, לדוגמא, נניח שאני רוצה לבדוק שמספר הוא בין 5 ל -15, הייתי אומר לוודא ש המספר גדול מ -5. אז בואו נגיד שאם x הוא גדול יותר מ 5 ופחות מ -15. אז על מנת שכל ש הצהרה להעריך לנכון, אתה צריך גם מהסוג של תת הצהרות להעריך נכונות. עם או שאתה צריך רק אחד משתיים או שניהם. תלמיד: יופי, תודה. 

שרון: וגם בגרד, אני בטוח בהרבה פרויקטים שלך היה לך אם נוגע בקצה או אם הנגיעה ספרייט אחר אז להקפיץ או משהו. חנה: בסדר, אז למה לעשות לנו אכפת כל Booleans אלה? יש לנו את המבנים האלה שיש לך ראה בתניות Scratch נקרא. ותניות הן דבר של טופס אם חלק תנאי או חלק בוליאנית נכון, ואז לעשות את הקוד בין הסוגריים המסולסלים האלה. אז אתה יכול לראות בצד הימין כאן היא אבן Scratch. יש לך את זה אם אז, וכל דבר כי נכנס שצורה קטנה ש נראה כמו זה-- אני לא יודע מה שהיית קורא that-- זה הולך להיות בוליאנית או מצב. 

אז שוב, או בוליאנית מצב הוא כל דבר כי גם להעריך לנכון או לא נכון. ושוב, אתה יכול לשלב את Booleans. אתה יכול לקבל, שוב, x הוא גדול יותר מ 5 וx הוא פחות מ -15. או שאתה יכול פשוט צריך אחד של x אלה הוא פחות מ -5. 

אוקיי, אז בC זה בצד השמאל. זה רק את מילת המפתח אם. בסוגריים, תנאי או בוליאנית. ולאחר מכן את הקוד בין שני סוגריים מסולסלים אלה רק לבצע, תפעל רק אם כי תנאי או בוליאנית זה נכון. האם זה הגיוני? מדהים. אישור. ואז כפי שאתה יכול ראה בגרד, אנחנו יכולים גם להוסיף על אחר, שהוא בעצם משהו בין סוגריים מסולסלים תחת אחר רק לבצע אם המצב הוא שקר. הגיוני? כל שאלות על שני אלה? מדהים. 

מגניב. אז הנה דוגמא מהירה. נניח שאנחנו רוצים לקבוע, על בסיס הזמן, האם עלינו לומר שלום בוקר או בערב טוב. אני אגיד אם זה לפני השעה 12:00 בצהריים, אנחנו הולכים להגיד בוקר טוב, אחרת אנחנו הולכים לומר ערב טוב. וכשאמרתי שאחרת, זה שווה ערך ב- C לאחר זה. אז אנחנו הולכים לבדוק אם זמן צבאי הוא פחות משעת 12:00, אומר בוקר טוב. אחרת לומר ערב טוב. 

תלמיד: אז היינו ממש מקבל קלט ש לזמן צבאי עם מחרוזת הגט. חנה: העכבר. עשיתי במקום אחר כולנו הייתי למעשה צריך לספק מידע ש. כאן אין לו ערך. אפילו לא אנחנו הכריזו עליה. אני מניח שאי שם מעל ל תכנית זו הכרזתי פעם, או ביקש הזמן, or-- כל דבר אחר עם דוגמא זו? מדהים. 

אוקיי, עכשיו יש לנו בתוספת לכך פשוט אם פורמט אחר, יש לנו שני מבנים שונים אחרים. אז קודם כל יש לנו את המתג הצהרה, והנה הצורה הכללית של הצהרה בורר. יש לך את מילות המפתח לעבור אותו אופן יש לך את מילת המפתח אם. ולאחר מכן קלט, במקרה n זה. אז זה יכול לעבוד עם מספרים שלמים בלבד. אז קלט שn יש להיות מספר שלם, בסדר? ואנחנו הולכים בצע אחד מהמקרים הללו תלוי מה הוא שn הערך. 

אז במקרה הזה, אתה משווה ראשון הוא n שווה לאחד קבוע, אם זה, לעשות כל מה ש סוג של מסוכסך כאן. אני יכול להצביע על זה כי אני קצר מדי. אם זה לא שווה לאחד קבוע ובמקום שווה לקבוע שני, אנחנו הולכים לעקוב אחרי זה בלוק שני, ואנחנו יכולים לעשות את זה בשביל כמה פעמים ש כפי שאנו רוצים, ולאחר מכן כברירת מחדל שהוא אם זה לא התאים לאף אחד מהמקרים הנ"ל, לבצע קוד ש. כל שאלות כאן? זה אחד הוא קצת יותר מסובך. כן? 

תלמיד: Break מסמל מה? 

חנה: בטח, אז ברגע שאנחנו נכנסים בלוק ש, אם אנו מוצאים, נניח, n שלנו הוא למעשה שווה לאחד קבוע, אנחנו נכנסים בלוק שאחרי הנקודתיים. אנחנו עושים את כל מה שעל קו זה של להעיר, ואז אנחנו שוברים, כלומר אנחנו יוצאים הצהרת בורר זה לחלוטין. תלמיד: אישור. 

חנה: ממ-הממ? 

תלמיד: האם הכניסה הכרחי, או שאתה צריך [לא ברור]? חנה: בטח. אז, כמו תמיד, כניסה הוא לא הכרחי. המחשב לא אכפת לי אם אתה להגביה. אנחנו, כאנשים ש קריאת הקוד שלך, לעשות טיפול. אז זה הרבה יותר קל להביט אל המסך ותראה, אה, אני יודע בדיוק מה קורה כאשר n הוא שווה לאחד קבוע. אם היה לי כניסות אקראיות, אני לא תוכל לספר כל כך בקלות. כן? 

תלמיד: אז אם רצה משתמש בחר באחת מהאפשרויות ש יש לנו ברשימה, היית אנו משתמשים, אני מניח, [לא ברור], אבל לקבל מספר שלם מ שלהם ולשים את זה בn? חנה: בדיוק נכון. אז בואו נגיד שאנחנו רוצים כדי לבדוק מה מספר שלם. אמרנו הו, להיכנס מספר שלם בין 0 ל 5, נניח. אנחנו יכולים לבקש ש n, לבקש ערך ש, ואז יש לי כל אחד ממקרים אלה. ושוב, זה משהו שאנחנו יכולים מאוד בקלות לעשות עם אם דוחות, נכון? יכול להיות לנו אם שווה למקרה אחד, אם שווה למקרה שני, אם שווה למקרה שלושה, כן הלאה וכן הלאה. זה קצת יותר מהר וקצת נקי יותר. זה סוג של רק מבנה יפה עכשיו. תלמיד: מהיר יותר כמו בכתיבה? או שזה לרוץ מחשב קצת יותר מהר? 

חנה: זה פועל קצת יותר מהר. כן? 

תלמיד: אז כפול מקף הוא רק להגיב or-- 

חנה: אה, אני כל כך מצטער. אני לא ציינתי את זה. אישור, אם יש לך // ש, היא תגובה. רק // היא תגובה. אז כל פעם שהמחשב רואה ש, זה הולך לומר על אישור, דבר שנמצא אחרי זה, אני פשוט הולך להתעלם. אני הולך להעמיד פנים שאתה אף פעם לא כתב את זה. 

תלמיד: אז [לא ברור] זה. 

חנה: זה לא עושה שום דבר. אבל אם הייתי כותב משהו כמו ב התגובה הראשונה שכתבתי במקום printf להגיד מזל טוב אתה נכנס קבוע אחד, שיהיה משהו. כן? 

תלמיד: אז בחיים אמיתיים, מקרה היה פשוט להיות מספר ואז [לא ברור] יהיה מספר שלם אחר. 

חנה: בדיוק. 

תלמיד: ואתה צריך שלוש נקודות? 

חנה: מצטער? 

תלמיד: האם אתה צריך את זה? 

חנה: הו, לא. אני מצטער. זה היה רק ​​כדי לציין שאתה יכול ללכת על מקרים רבים ככל שאתה רוצה. בואו נעשה דוגמא קונקרטית ש אולי לעשות דברים קצת יותר ברורים. אוקיי, אז נניח שאני אומר, אישור, תן לי n מספר שלם המייצג את מספר כיתה, במיוחד בכיתה מדעי מחשב מספר. אז אם אתה נותן לי 50, אני הולך לומר גדול. CS50 הוא מבוא למחשב מדע, ולאחר מכן אני הולך לשבור. אז זה אומר שאני קופץ מ הצהרה לעבור כל זה, אז עכשיו אני עושה מפעיל את הקוד, בסדר? 

אם אתה נתן לי במקום 51, לא הייתי לי להדפיס את ההצהרה השנייה. ואז אם אתה נתן לי כמה מספר שלא היה 50 או 51, אני הולך להגיד מצטער, אני לא מכיר את הכיתה ש. כן? 

תלמיד: אין לך הפסקה. 

חנה: אני מצטער, אין לי הפסקה? 

תלמיד: מה אם. 

חנה: אה, מה אם אין לך הפסקה? שאלה מצוינת. אז מה שיקרה הוא שאתה הייתי הולך ב, והיית לבדוק האם אני שווה 50? ונניח, כן, היית שווים 50, שהיית להדפיס את ההצהרה. ואז היית ממשיך בביצוע, כך היית אומר אני שווה 51? והיית הולך על וללכת דרך כל מקרה כזה? כן? 

תלמיד: האם קו ברירת המחדל מקביל לאומר אחר? חנה: בדיוק. טוב מאוד. זה כמו הסוג של מלכוד כל. 

תלמיד: אז אם לא היה לך הפסקה ואז אחד מן מקרה ההצהרות היה נכון, ואז זה אמר n העלייה של 1, אז זה באופן אוטומטי היית להפוך את הבאה. זה יהיה לבדוק מקרה 51, ו לאחר מכן להציג את זה גם כן? חנה: כן, אני חושב שזה יעבוד. אז סוג שלך תעשה בלגן, כל כך הפסקה היא דבר טוב שיש. כן? תלמיד: ללא הפסקה היה לעשות את זה ברירת המחדל? חנה: זו שאלה טובה. ג'ייסון הירשהורן: אני חושב שזה רק פועל. אז אם אתה לא צריך כל כך break-- בואו נגיד שאני עשיתי 50 ובדק 50, וזה יהיה להדפיס את זה. להדפיס את CS50 כהקדמה למדעי מחשב. אין לך הפסקה, הוא צריך ללכת ולהמשיך ללכת עד שהוא מגיע הפסקה. אז אם אין הפסקה, זה הולך להמשיך. זה הולך להדפיס כל דבר אחר. 

חנה: אז אני מניח שהיית להיות כולל את ברירת המחדל. 

ג'ייסון הירשהורן: כן. 

חנה: שאלה טובה. כן? סטודנט: האם מקרה נחשב פונקציה? חנה: אני מצטער? סטודנט: האם מקרה נחשב פונקציה? חנה: האם מקרה נחשב פונקציה. הייתי מהסס לומר ש. 

ג'ייסון הירשהורן: אז בדרך כלל כשאתה רואה את פונקציות הם יהיו בסוגריים מסולסלים. כך למשל, כאשר אתה מסתכל בקוד שלך, למשל, עיקרי. זה היה סוגר פתוח עיקרי, סוגר אז הריק, קרוב. Functions-- הם בעצם תמיד תראה סוגריים. אז מקרה אם מקרה לא יש כל סוגריים, זה הרמז שלך ש זה לא פונקציה. אבל זה לא. כן? 

תלמיד: אז עושה את זה לעשות לעבור פונקציה? 

חנה: האם זה הופך את לעבור תפקיד. 

תלמיד: במובן שאתה שם דבר ב, זה נותן לך אחד מהמקרים. ג'ייסון הירשהורן: אני לא הייתי קורא לזה פונקציה. לא כל מה שעם parens היא פונקציה. כלומר, זה רמז שזה פונקציה. לא הייתי אומר שהמתג הוא פונקציה כי זה לא באמת חוזר כל דבר. אתה נכנסת לזה יותר. 

חנה: כן, רק לחשוב על זה כעל אם מבנה. תלמיד: האם אתה יכול קן זה באם מבנה? חנה: כן, אתה קן כמעט כל דבר. 

תלמיד: בארי אמר הציטוטים ניתן לדמות אותה כאחר. אז אתה יכול להחליף את הציטוטים עם אחר? 

חנה: לא בזה במיוחד מבנה כי המתג הצהרה מצפה מילת ברירת המחדל. המחשב יודע ברירת מחדל ש משמעות הדבר היא משהו מיוחד, ש משמעות הדבר היא לתפוס את כל. שום דבר על זה אחר. יש לנו עוד לעבור אותו. כן? 

תלמיד: [לא ברור]. חנה: הבדל בין באמצעות נקודה-פסיק ומעי גס. אז פסיק הוא תמיד לומר מחשב אני עושה עם הקו הזה. אתה יכול להמשיך ולבצע אותה. זה קו שלם. מעי גס הולך, במקרה זה, אביא לך לגוש מסוים. אז נקודה-פסיק הוא תמיד להשתמש בו כדי לסיים את הקווים. נקודותיים משמשים ל מגוון רחב של מקרים אחרים. 

תלמיד: האם שווה זה ל רק אומר אם n שווה 50, אז בלה בלה בלה. חנה: ממ-הממ. תלמיד: זה בדיוק אותו הדבר [לא ברור]. חנה: בדיוק. ואמרנו שהוא פועל קצת יותר מהר. אם לא היה לנו ההפסקה, זה כמו שאם יהיה, אם, אם. אם יש לי הפסקתנו, זה כמו אם, אם, אם, אם אחר אחר אחר. מגניב? 

ג'ייסון הירשהורן: אז כש קידוד, אתה יכול פשוט להשתמש אם אחר, אבל אני חושב ששנה שעברה עלינו החידון היה להם לכתוב הצהרה בורר, כך רק במקרה. חנה: אבל בהחלט שום דבר רע. אנחנו לא מצפים ממך לדאוג דברים משוגעים על ביצועים. רק אם אחר הוא בסדר גמור. אלה הם רק טובים דברים כדי להיות מודעים של. 

והנה האחרון שלנו זה סוג של נופל תחת הקטגוריה המותנה הזה. יש לנו משהו של מצב צורה כללית?, ולאחר מכן קטע קוד קטן ש קורה אם המצב הוא נכון. ולאחר מכן במעי הגס, קטן פיסת הקוד ש מבצע אם המצב הוא שקרי, ופסיק. שנסיים עם קו ש. אז מבחינה תחבירית זה קצת מכוער. אנחנו הולכים לעבור דוגמא אני חושב שזה ברור ביותר. אז אנחנו רוצים להקצות פרופסור המחרוזת לאחד משני ערכים אלה, או דוד מלאן או לא דוד מלאן, בסדר? אז אתה צריך להיות מוכר עם המחרוזת, פרופסור =. אנחנו הולכים להקצות מחרוזת לפרופסור משתנה בשם. 

עכשיו אנחנו רוצים לבדוק מצב מסוים. במקרה זה, המצב שלנו הוא class_num = = 50. ועכשיו יכול להיות זמן טוב לציין כאשר יש לנו פרופסור מחרוזת =, זה אחד שווה סימן. זה משימה. ואילו בclass_num = = 50, זה שני סימני שוויון. זה בדיקת איכות. אז אנחנו הולכים לומר הוא מספר המעמד שווה ל -50? אם כן, להקצות פרופ 'דוד מלאן. אם לא, להקצות פרופסור ללא דוד מלאן. כל שאלות שם? שוב, זה רק משהו זה טוב לדעת. אתה יכול לעשות את זה עם אם אחר. בעיה טובה בפועל יכול להיות ל, כאשר אתה הולך הביתה, ממש את אותו הדבר מותנה בצורה אחרת, אם, כי אתה יכול לעשות את זה. כל שאלות כאן? בסדר, אני חושב שאנחנו הולך על לולאות. מדהים. 

שרון: בסדר, בואו נדבר על אילו לולאות. אז קודם כל בצד השמאל אתם רואים here-- אישור שאומר בזמן, ואילו (מצב). ואז אתה עושה זה-- אנחנו יכולים לשנות את זה? 

ג'ייסון הירשהורן: זה מנותק. 

שרון: אישור, ולאחר מכן יש גם סוגריים מסולסלים. אז להעמיד פנים שמתולתלות סוגריים מסולסלים יש מעל ומתחת לעשות את זה שוב ושוב. אז אם המצב באלה סוגריים מעריך לנכון, אז אתה צריך להמשיך לעשות מה הוא בלולאת ה while. 

כך למשל, אנחנו יכולים לעשות בעיה בפועל. אני לובש שני עגילים עכשיו, אז בואו נגיד ש אם אני לובש לפחות אחד שמיעה, למחוא הכפות. אז אם אנחנו הולכים ללכת באמצעות זה, אנחנו going-- 

[מחיאות כפיים] 

נכון? ואני לובש אחד, and-- אישור. כן. אני לא לובש עגילים יותר, ולכן אין יותר. אוקיי, אז אחר כך זה כאשר אתה תפסיק. וזה שאתה יכול לומר הוא שווה ערך לכמעט משתנה. בואו נגיד שיש לך מספר משתנה של עגילים. אז בזמן שמספר העגילים גדול או שווה ל 1, למחוא כפות. ואז אחרי למחוא ידיים, עגילי הפחתה ב. האם כמו עגילים מינוס 1. אז פחת מספר העגילים, ו אז תוכל לעבור תוך הלולאה פעמיים. 

ואם המצב הוא תמיד true-- כך שאם, נניח, 2 = = 2, ו -2 הוא תמיד שווה ל 2, נכון? ואז אתה תמיד היית לעשות משהו לשם, וזה שווה ערך לכמעט לנצח לולאה שהיינו לנו בהתחלה. כן? 

תלמיד: האם שני הצדדים רק דרכים שונות של כתיבת לולאה בזמן? 

שרון: אז אנחנו מתמקדים על זה ראשון. ואז אז בואו להשוות זה עם לעשות בזמן הלולאה. אז הם שונים במקצת. אוקיי, אז נניח שהמצב הוא עדיין בזמן שאני לובש עגיל אחד לפחות, ואני לא לובש כל עגילים עכשיו. ונניח לעשות ועדיין למחוא כפיים בזמן ש אני לובש עגיל אחד לפחות. מה צריך לקרות? 

[מחיאות כפות] 

אוי, חבר'ה. אוקיי, אז אתה אמור למחוא פעם אחת כי בעצם אתה לעבור את החלק הראשון של הקוד. אתה עושה את זה, לא משנה מה, ו אז אתה רואה את המצב בזמן, ואתה חוזר ל לולאה שאם זה נכון. האם זה הגיוני? 

תלמיד: אתה תמיד לעשות את זה בפעם הראשונה. שרון: אתה תמיד עושה את זה הפעם ראשונה ללא קשר אם או לא שהמצב הוא נכון או לא. ג'ייסון הירשהורן: מתי אתה חושב שאתה יכול להשתמש בזה? מתי זה הגיוני להשתמש בזה? חנה: כן? תלמיד: [לא ברור]. ג'ייסון הירשהורן: נכון. חנה: טוב מאוד. ג'ייסון הירשהורן: אז כשאתה תבקש מן משתמש, אתה הולך תמיד רוצה כדי להנחות את משתמש בפעם אחת. אתה תמיד הולך רוצה להציג למשתמש פעם אחת. אז במקום לשים בלולאה בזמן, אתה לשים בלעשות בזמן לולאה, כי אתה תמיד הולך לעשות את זה פעם אחת. אם הם נותנים לך תשובה נכונה, שתסיימי. אם לא, אז אתה מחדש תנחה אותם. 

שרון: בסדר, ללולאות. אז בגרד, היו לנו בלוקים חוזרים. לכן אנחנו רוצים לחזור על משהו, נניח, שבע פעמים. אז אנחנו פשוט אמרתי לחזור על שבע, ו אומרים אני כאן כדי לעזור לך שלגיה! ב- C, יש לנו ללולאות אם רוצה לעבור משהו מספר מסוים של פעמים. בואו נגיד שאם לאתחל הגמדים משתנים ולעשות sure-- כך הבלוק הראשון ממש שם לפני פסיק הראשון, אנו לאתחל משתנים ל, ומקמנו אותה ל -0. והמשתנה שלנו יש הוא מספר שלם, int. והשם המשתנה הוא גמדים, ואנו קובעים גמדים ל -0. 

והחלק השני בין שתי נקודה-פסיק הוא המצב שלנו. וכל כך הרבה זמן כמו גמדים הוא פחות משבעה, אנחנו נשמור עוברים את זה ללולאה. ולאחר מכן את החלק האחרון הוא מה לעשות אנחנו עושים בסוף זה ללולאה? גמדים ++, וזה אומר שאנחנו להגדיל גמדים על ידי אחד בכל פעם. 

אז מה הולך לקרות כאן? אז קודם כל אנחנו הולכים לעבור. יש לנו גמדים כמו 0, ואז אנחנו הולכים להדפיס אני כאן כדי לעזור לך שלגיה! ואז גמדים הולכים להגדיל כי אמרנו גמדים ++. גמדים הולכים להיות 1. ואז אנחנו compare-- גמדים הוא 1. אנו משווים אותו להם גמדים פחות מ -7? כן. אני הולך לעבור את זה שוב. אני כאן כדי לעזור לך שלגיה! ואז גמדים הופכים 2, ולאחר מכן אנו משווים את זה. האם 2 פחות כי 7? כן. אנחנו הולכים כדי לשמור על עוברים. ואנחנו הולכים ללכת דרך שבע פעמים. 

אז בסופו של הדבר, אנחנו הולכים ל יש את גמדים = 0 הדפסה אני כאן כדי לעזור לך שלגיה! גמדים שווים 1, 2, 3, 4, 5, ו -6. זכור את מדדנו ב 0. אז אנחנו מתחילים עם 0. כן? 

תלמיד: אז זה שונה מהמטלות כי זה לא מודפס את ההתחלה בהתחלה. אז אתה יכול להמשיך את אותו דבר. האם אתה יכול לעשות את זה גם עם מטלות הלולאה? כמו אותו התהליך. התנאי הוא גמדים פחות מ -7 או משהו כזה. תגובה היא פחות מ -7. שרון: אז אתה מבחינה טכנית יכל. אז אם אנחנו חוזרים to-- המדברים שלך על אילו הלולאה, נכון? אז לעשות בזמן לולאה הוא מעט שונה כי אנו מבטיחים לפחות פעם שאנחנו עוברים את זה, אז זה ההבדל הגדול ביותר. אבל עם הזמן שהלולאה שיכולנו אומר בזמן שגמדים הוא פחות מ 7, לעשות את זה, ולאחר מכן להגדיל גמדים על ידי אחד. ואז אנחנו צריכים לאתחל גמדים לפני כל הצהרה זו שזה שווה 0. אז כן, אנחנו יכולים לעשות את זה עם זה. ממ-הממ? 

תלמיד: האם אתה יכול לחזור ל[ לא ברור]? שרון: ללולאה? תלמיד: כן, אז עם הגמדים ++, נראה שזה מה שאתה עושה אחרי אתה כבר רץ כמה אמצעים אחרים. שרון: נכון. תלמיד: היה לך רק אין לי ושלשים it-- שרון: אתה יכול. תלמיד: אז הוא [לא ברור] מייד אחרי להדפיס בשורה הבאה מתחת. שרון: כן, אתה יכול לשים אותו שם. אבל אז היית רק תשאיר את זה ריק. 

ג'ייסון הירשהורן: אתה עדיין צריך מעי גס למחצה אף. 

שרון: זה נראה קצת מוזר, אבל מבחינה טכנית אתה יכול לעשות את זה. מבחינה טכנית. בבקשה לא. כן? 

תלמיד: האם יש חלופות ל++? האם יש משהו [לא ברור] אחר? 

שרון: מבחינה טכנית זה הגמדים שלו. אחד שווה סימן שאנחנו הולכים כדי להגדיר את זה לגמדים בתוספת 1. אז מבחינה טכנית זה מה אמצעי ++ גמדים. האם זה הגיוני? 

תלמיד: כן, אבל הם יש חלופות? כמו אם אתה ever-- 

שרון: כן, אתה יכול לעשות את הגמדים - -. 

תלמיד: [לא ברור]. 

שרון: כן, אתה יכול לעשות שורה של דברים. חנה: ואתה יכול להגדיל על ידי 2. אתה יכול להגדיל על ידי 3. כל דבר שהולך להיות שינוי, זה סופו של דבר להפוך את המצב. 

תלמיד: אז אם אתה רוצה להגדיל על ידי 2, איך היית לכתוב את זה? 

חנה: אתה יכול גם לכתוב dwarves-- אתה יכול לכתוב את כל הדבר הזה. גמדים = גמדים + 2. או בקיצורים קלים. אני רק הולך לכתוב + שווה 2. 

תלמיד: אישור, והיית כותב ש הנכון שבו גמדים ++ הוא שם. חנה: בדיוק. שרון: נכון. הייתה שאלה אחרת? כן? 

תלמיד: [לא ברור] גמדים ++? שרון: אז אתה don't-- ג'ייסון הירשהורן: כן, לא צריך אותו שם. [לא ברור] מאוד בסופו. אז אתה עושה [לא ברור] אלה בגלל שאתה סוג של פיצול האתחול, מצב, והשינוי. ממש בסוף, אתה לא צריך את זה. שרון: גם לבך לא צריך פסיק אחרי כל כולו ללולאה. 

תלמיד: איך היית מתחיל עם מספר ראשוני של שלילי, למשל? 

שרון: אתה יכול לאתחל גמדים שווים ל 2 שליליים. 

תלמיד: האם אתה פשוט מקף 2? 

שרון: כן, כל כך סימן שלילי, מקף 2. 

תלמיד: האם זה [לא ברור] ל מאותחל כ[ לא ברור] גמדים? 

שרון: כן. אז אם היינו לנו רק אותחלו גמדים מוקדם יותר, פשוט לעשות פסיק הגמדים int, ואז אנחנו יכולים לעשות גמדים להגדיר ששווה 0. 

תלמיד: האם אנו יכולים לעשות את זה מוקדם יותר ב התכנית אומרת int גמדים = 0, ואז פשוט- 

שרון: רק לא have-- כך לא יהיה מקום שוב, אבל אתה עדיין צריך פסיק. כן. ממ-הממ? תלמיד: האם הקוד הזה אומר את מה ש הערך של גמדים הוא לאחר מכן. אם אתה שואל את זה אחרי כל זה הוא נעשה כדי להדפיס את הערך של גמדים. שרון: אתה יכול לשאול אותו לעשות את זה. תלמיד: אישור. שרון: אבל שהיית צריך לשאול אותו לעשות את זה. זה לא עושה את זה בשבילך. אני מפחד לשים את העגילים שלי בחזרה ב. לעשות את זה בסופו של הדבר למחיאות הכפות. סתם, בצחוק. 

ג'ייסון הירשהורן: אז זה אותו הדבר. אז לאתחל בחלק העליון. מצב, הדפסה, שינוי. אז זה בדיוק אותו הדבר כמו שאם מישהו יכול לראות את זה. תלמיד: למה אין לך נקודה-פסיק בשורה הראשונה? שרון: איפה? תלמיד: אחרי השורה הראשונה. שרון: לאחר 4 בסוגריים? מכיוון שאנחנו רוצים ללכת דרך ללולאה זו. ואם אתה תסתכל על לולאות ב כללי, אין להם נקודה-פסיק. זה לא מעשי. האם אנחנו טובים? שאלה אחת יותר, עוד שתיים. כן? תלמיד: זה יכול להיות קצת התקדם, אבל יש לי לעשות גמדים [לא ברור] שונה ממשתנה [לא ברור]. שרון: טוב מאוד. תלמיד: [לא ברור]. 

שרון: כן, זה הוא. מה? ג'ייסון הירשהורן: כן, כך היא עושה. אז בדרך כלל את היקף משהו הוא בסוגריים המסולסלים. אז ההיקף הוא תמיד הולך להיות בסוגריים המסולסלים, אבל זה לא היה הופך את הרבה חוש ללולאה כי אנחנו אותחלו גמדים שבסד מתולתל. אז בדרך כלל את היקף הגמדים, ש משתנה לא מרחיב בעבר ש. זהו מקרה מיוחד אם כי. אז אתה לאתחל אותו בתוך סוגריים אלה, ואז יש לך את ההיקף מאוחר יותר. מקרה כל כך מיוחד. הם לא צריכים את זה, ו שwas-- זה הגיוני? 

תלמיד: מס ' 

ג'ייסון הירשהורן: אני יכול ללכת על זה. אז מה אתה עדיין מבולבל לגבי? 

תלמיד: כמו בתוכל להשתמש dwarves-- יכול כמובן להשתמש בגמדים [לא ברור] מחוץ לנוסחא מדי? 

ג'ייסון הירשהורן: לא, לא. אז היקף זה רק בתוך סוגריים מסולסלים ללולאה, כן. שרון: אבל אם אתה לאתחל גמדים מחוץ ללולאה, ואז אתה יכול להשתמש בו במקום אחר יש עוד שאלה אחת? לא? אישור. 

אז דברנו קצת על קינון ללולאות או תניות קינון, אם דוחות. אז הנה דוגמא שבה אנחנו יכולים קן ללולאה. נניח שאנו מדפיסים טבלה זו של x ממש כאן. אנחנו אולי רוצים to-- הראשון אם אנחנו פשוט לא מסתכל על הקוד ואנחנו רק חושבים על זה, אנחנו רוצה לעבור את כל שורה ולהדפיס כל עמודה, נכון? האם זה הגיוני? אישור. 

אז הנה אנחנו עוברים כל שורה לבעצם כל שורה, ויש שלוש שורות. ואז בתוך כל שורה עבור כל עמודה, ויש ארבעה עמודים, להדפיס x. כך. כאשר שורה היא 0 ועמודה הוא 0, אנחנו מדפיסים x זה. ואז אנחנו ממשיכים הלאה דרך עמודת הלולאה. שורה היא עדיין 0, אבל טור הוא אחד. ואז הטור הוא 2, ואז טור הוא 3. ואז לצאת מזה לולאה כי אז טור כבר לא פחות מ -4. ואז להדפיס שורה חדשה, ואנחנו הולכים לשורה החדשה. ואז אנחנו עוברים ליד שורה, ושורה מקבלת מוגדלת, ואנחנו הולכים לעבור את זה שוב. האם זה הגיוני? כן? 

תלמיד: אז לקן [לא ברור] הוא רק לשים אותו בתוך לולאה? 

שרון: אמצעי אז קינון ש יש ללולאה בתוך הלולאה for, כמו התחלה. 

תלמיד: אתה לא צריך סיבוב מיוחד או משהו? אתה פשוט לתקוע אותו בתוכו? שרון: נכון. כן? 

תלמיד: אולי יהיה [לא ברור], אבל זה נראה כאילו יש שטח נוסף בין כל x של. אני לא יודע אם that's-- אם כי היו למעשה לעשות את התכנית, היה לעשות את זה משהו כזה? 

שרון: אז לא. שהלחיצה על Enter. זה היה רע מצידנו. מתנצל. 

חנה: איך היית לשנות את זה תכנית אם עשה לך שורה אחת נוספת? 

תלמיד: [לא ברור]. שרון: עבודה טובה. תלמיד: אתה יכול גם להדפיס את אותו דבר על ידי מעבר סביב העמוד, נכון? 

שרון: Hm? 

תלמיד: אז להדפיס הקטן שלך xxx, הקו הראשון יכול לומר הדפסה, ובמקום לומר שורה, זה אומר טור. 

שרון: אז אתה יכול לשנות השמות משתנים כדי לעשות את זה. האם זה מה שאתה אומר? 

סטודנט: לא, אני רק אומר that-- כך שאתה שורות הדפסה והראשונה אז מדפיס עמודות. אתה יכול גם להדפיס עמודים ראשון ו אז שורות כדי לקבל את אותו התרשים? שרון: אתה יכול, אבל אז היית צריך להיות זהיר של שם אתה שם את הקו החדש. ואיך היית לקפוץ בחזרה? ג'ייסון הירשהורן: אם אתה פשוט הפעלת אותו והערכים היו שונים, במקום שיש four-- מה זה? שלוש על ארבעה. אני היית צריך ארבעה שורות ושלוש עמודות. האם זה הגיוני? 

סטודנט: כן. 

ג'ייסון הירשהורן: אז כן, אתה יכול לעשות את זה. כן, בהחלט. שרון: אבל זה יהיה ממש ממש מיתוג השמות של המשתנים. טוב? אישור. בסדר, P להגדיר אחד. אוקיי, אז את החלק הראשון שלו אתה עושה את זה, מריו. סתם, בצחוק. זה יותר כמו זה. ולכן כאשר אנו רק הבטנו בי לקנן לולאות, מה שהופך את השולחן ש, לחשוב על איך אתה יכול להיות מסוגל להדפיס את hashtags אלה בדרך זו. ואז ממש כאן איך היית להדפיס זכות זו כאן, המרחב הפתוח הזה. 

תלמיד: [לא ברור]. שרון: כן, אתה פשוט להדפיס חלל. אוקיי, אז רק אחשוב על זה. חנה: ולאחר מכן אותו חלק מהבעיה להגדיר היא תכנית בשם greedy.c, כך שאתה הולך רוצה לחשוב על תניות ולוודא שאתה יכול לעשות שינוי נכון. ואזהרה אחת קטנה יש לנו בשבילך הוא להיות זהיר של ערכי נקודה צפה. אם זה לא אומר כלום לך בהחלט, זה תהיה מכוסה בהרצאת השבוע וגם ב[ לא ברור] ללכת דרך, ש אתם תלמדו אוהב בסטי הבעיה. 

דבר אחד שאני ממש ממליץ, במיוחד עם Mario.c, כאשר אתה עושה את הבעיה נקבע, אם אתה נתקע, להתחיל לעשות את זה על נייר. כתוב את זה וממש לשבת שם ומתיימר להיות המחשב, וללכת through-- אומר אני היה במחשב, איך הייתי מעקב ללולאה דרך זה? איך היית משתנה ללולאת השינוי? אז עושה את זה על נייר עושה את זה 10 פעמים יותר קלים כשאתה הולך לשבת מול המחשב. אז פשוט התקע הקטן שלי. 

שרון: וגם לא חושב שאתה צריך קוד הכל בבת אחת. ודא שאתה לוקח תהליך חוזר ונשנה. לעשות קצת, הדפסה את זה, לראות מה קורה. לפעמים זה קצת ניסוי וטעייה. ובאו לשעתי עבודה. כיף סופר. ג'ייסון הירשהורן: אז כל שאלות? כל הבחורים הנכונים, ש היה הסעיף הראשון שלך. חנה: תודה שבאת. ג'ייסון הירשהורן: תודה על לבוא. שרון: תודה לך. [מחיאות כפות]