SPEAKER 1: พูดคุยเกี่ยวกับน้ำ
ในปัญหานี้เราขอให้ผู้ที่จะบอก เรานานแค่ไหนในนาทีที่อาบน้ำของพวกเขาคือ
และจากนั้นเราคำนวณเทียบเท่า จำนวนขวดน้ำ
ห้องอาบน้ำฝักบัวที่พวกเขาใช้
>> ดังนั้นสิ่งที่เราต้องทำของ สำหรับปัญหานี้หรือไม่
ครั้งแรกที่เราจะต้องการ เพื่อให้การตรวจสอบแล้ว
การป้อนข้อมูลที่ผู้ใช้จะช่วยให้เรา
เมื่อเรามั่นใจว่าเราว่า มีผู้ใช้ป้อนข้อมูลที่ถูกต้อง
เรากำลังจะไปคำนวณ จำนวนเทียบเท่ากับขวดน้ำ
ที่ผู้ใช้มีช่วง ห้องอาบน้ำฝักบัวของพวกเขาแล้วเรา
จะบอกพวกเขาโดย พิมพ์ตัวเลขที่ออกมา
>> ดังนั้นขอต่อสู้ครั้งแรกของเรา งานกระตุ้นและการตรวจสอบ
การป้อนข้อมูลของผู้ใช้
สำหรับวันนี้เราได้เขียน ฟังก์ชั่นสำหรับคุณที่เรียกว่า
get_int ตั้งอยู่ในห้องสมุด CS50
get_int เพื่อให้แน่ใจว่าการใช้ปัจจัยการผลิต จำนวนเต็มดังนั้นตัวเลขบวกใด ๆ
ตัวเลขที่ติดลบหรือ ศูนย์ได้รับการยอมรับทั้งหมด
แต่หากผู้ใช้ปัจจัยการผลิตสิ่งอื่นใด ดังนั้นการรวมกันของตัวอักษรหรือตัวเลขใด ๆ
หรือตัวเลขทศนิยมแล้ว ผู้ใช้จะได้รับแจ้งให้ลองใหม่อีกครั้ง
และฟังก์ชั่นจะไม่ยอมรับอะไร จนกว่าผู้ใช้จะช่วยให้พวกเขาเป็นจำนวนเต็ม
>> ดังนั้นวิธีที่เราใช้ get_int?
ถ้าคุณเปิดพื้นที่ทำงานของคุณและ สร้างไฟล์ชื่อ integer.c ขอ
พิมพ์ต่อไปนี้
hashtag ได้แก่ cs50.h.
นี้เป็นสิ่งจำเป็นเพราะ get_int เป็นฟังก์ชั่นห้องสมุด CS50,
ดังนั้นเราจึงต้อง hashtag ได้แก่ ประกาศคู่แข่ง
ที่จะใช้ฟังก์ชั่น
และจากนั้นในหลักของฉัน ทำงานฉันแค่ไป
เพียงแค่โทร get_int ฟังก์ชั่น
>> ดังนั้นเรามาทำงานนี้และดูวิธีการทำงาน
เราได้รวบรวมไว้แล้วเพื่อให้ เพียงไปข้างหน้าและเรียกใช้โปรแกรมนี้
./จำนวนเต็ม.
ที่นี่ผมมีความรวดเร็วและ นี่คือสิ่งที่ผมป้อนข้อมูลค่า
บอกว่าผมใส่ในจำนวนเต็มเพียงบางส่วน 50 ยกเว้นโปรแกรมและลาออก
และที่ว่า
>> แต่บอกว่าผมเรียกมันอีกครั้งและ สิ่งที่ฉันป้อนข้อมูลอื่น
บางทีอาจจะเป็น Hello World
ที่ไม่เป็นจำนวนเต็มดังนั้น โปรแกรมจะแจ้งให้ผมที่จะลองใหม่อีกครั้ง
ลองอีกครั้งกับ บางทีอาจจะเป็นทศนิยมเวลานี้
0.5 อีกครั้งไม่ใช่จำนวนเต็มดังนั้น โปรแกรมจะไม่ยอมรับมัน
และมันจะบอกฉันจะลองใหม่อีกครั้ง
ดังนั้นขอให้หมายเลขอื่น
โปรแกรมที่ยอมรับมัน จบการทำงานและเรากำลังทำ
>> ดังนั้นตอนนี้เรามีฟังก์ชั่น ที่ช่วยให้เราและสร้างความมั่นใจ
ที่ผู้ใช้ปัจจัยการผลิต จำนวนเต็ม แต่วิธีการที่เราสามารถทำได้
จริงติดตาม ป้อนจำนวนเต็มโดยผู้ใช้?
ดีสิ่งที่เราจะทำคือการจัดเก็บ ค่านี้ในตัวแปรพูด n
ดังนั้นถ้าผมประกาศจำนวนเต็ม N, และผมตั้งค่าที่จะ get_int,
แล้ว n แล้​​วจะเก็บสิ่งที่ ค่าผู้ใช้ป้อน
>> ขวาทั้งหมดดังนั้นตอนนี้เราได้ทำให้มั่นใจได้ว่า ผู้ใช้จะให้เราเป็นจำนวนเต็ม
และเรารู้วิธีที่จะติดตาม ของจำนวนเต็ม แต่จำไว้ว่า
จำนวนเต็มมีทั้งบวกและลบ
จึงไม่ทำให้รู้สึกจริงๆ ในบริบทของปัญหานี้
ที่ผู้ใช้จะใช้เวลาอาบน้ำ การพูดเชิงลบ 12 นาที
ดังนั้นเราจึงจำเป็นเพื่อให้แน่ใจว่าผู้ใช้ จริงจะช่วยให้เราเป็นจำนวนเต็มบวก
ตอนนี้เราไม่ได้มีเพียงแค่ ฟังก์ชั่นเดียวสำหรับการที่
ดังนั้นเรากำลังจะมี เพื่อสร้างตัวเองว่า
>> ดังนั้นเราจึงต้องการอย่างต่อเนื่อง แจ้งให้ผู้ใช้
จนกว่าพวกเขาจะให้เราเป็นจำนวนเต็มบวก
ถ้าฉันทำบางสิ่งบางอย่างอย่างต่อเนื่องแล้ว ที่คล้ายกับวงซ้ำ
ดังนั้นหนึ่งในโครงสร้างที่เราใช้ ใน C ที่จะใช้ซ้ำและลูป
เป็นห่วงขณะ
ดังนั้นห่วงขณะเป็น แสดงที่นี่จะดำเนินการ
สิ่งที่อยู่ในร่างกายของวงเป็น ตราบใดที่ได้รับการประเมินสภาพ
ให้เป็นจริง
เร็วที่สุดเท่าที่มีเงื่อนไขว่า ประเมินเท็จแล้ว
โปรแกรมจะดำเนินการใด ๆ ก็ตาม มาหลังจากที่ร่างกายของวง
>> ดังนั้นในขณะที่ลูปจะไป เป็นประโยชน์จริงๆใน CS50
แต่ในนี้โดยเฉพาะ กรณีที่เรารู้ว่าเรากำลัง
จะแจ้งให้ผู้ใช้อย่างน้อย ครั้งแล้วเพียง แต่ห่วงในกรณีที่จำเป็น
ดังนั้นที่นี่เรามาถึง สร้างพิเศษและที่ว่า
คล้ายกับในขณะที่ วงเรียกว่าห่วงทำในขณะที่
>> ดังนั้นห่วงทำในขณะที่ดำเนินการ ร่างกายของวงอย่างน้อยหนึ่งครั้ง
และจากนั้นจะตรวจสอบเพื่อดู ว่าควรดำเนินการ
เมื่อเทียบกับวงในขณะที่ ซึ่งจะตรวจสอบสภาพ
แล้วรันร่างกาย
ดังนั้นในวงทำในขณะที่สิ่งที่เราอาจ ทำคือการแจ้งให้ผู้ใช้จำนวนเต็ม
แล้วตรวจสอบถ้ามันไม่ถูกต้องหรือไม่
ถ้ามันไม่ถูกต้องแล้วเราจะ ทำซ้ำขั้นตอนขอให้ผู้ใช้
เพื่อให้เรามีจำนวนเต็มอื่นแล้ว เฉพาะเมื่อจำนวนเต็มที่ถูกต้อง
เราจะดำเนินการต่อไป สิ่งที่มาหลังจากนั้น
>> ตอนนี้คุณจะสังเกตเห็นว่า ประกาศของจำนวนเต็ม n
แตกต่างกันเล็กน้อยกับสิ่งที่เรา ทำมาก่อนในตัวอย่างก่อนหน้า
และเป็นเพราะขอบเขต
ถ้าเราได้ประกาศจำนวนเต็ม n ภายใน ของร่างกายของห่วงทำในขณะที่
แล้วเราจะไม่สามารถที่จะเข้าถึง ค่า n นอกหยิกที่
วงเล็บแสดงให้เห็นร่างของวง
แต่เราไม่ต้องการในความเป็นจริงในการเข้าถึง ค่า n ในภายหลังในโปรแกรมของเรา
>> ตกลงดังนั้นตอนนี้ขอพูดคุยเกี่ยวกับ สิ่งที่สภาพนี้ควรจะเป็น
เราต้องการที่จะเพียง reprompt ผู้ใช้ตราบเท่าที่ n เป็นที่ไม่ถูกต้อง
ดังนั้นคิดว่าตัวเองในสิ่งที่ไม่ถูกต้อง ค่าจำนวนเต็มจะมีลักษณะ
แล้วสร้างบูลีน การแสดงออกในการแสดงว่า
>> เรากำลังดำเนินการเสร็จสิ้นเกือบกับงานย่อยของเรา ของการตรวจสอบและแจ้งให้ผู้ใช้ป้อน
ดังนั้นขอให้นี้น้อย บิตมิตรต่อผู้ใช้
และให้การใช้งานเล็ก ๆ น้อย ๆ บิตข้อมูลเพิ่มเติม
ของสิ่งที่เรากำลังกระตุ้นให้พวกเขาสำหรับ
จึงขอแจ้งให้ผู้ใช้ต่อ ข้อมูลจำเพาะกับนาทีสตริง
ดังนั้นการใช้งบ printf ของคุณให้ ให้แน่ใจว่าคุณตรงนี้ว่า
>> ก็ดี
ดังนั้นตอนนี้เรามีการใช้ที่ถูกต้อง การป้อนข้อมูลเป็นจำนวนเต็มบวก
มูลค่ากี่นาที พวกเขาใช้เวลาในห้องอาบน้ำ
ดังนั้นสิ่งที่ต่อไปคือการคำนวณ จำนวนเทียบเท่าของขวด
สิ่งที่เรากำลังจะทำที่นี่อาจ จะเห็นได้ชัดมากกับคุณในตอนแรก
และที่ตกลง
สิ่งที่เราต้องการจะทำคือเรา ต้องการที่จะเริ่มต้นการฝึกซ้อม
ความคิดของการตรวจสอบรูปแบบและ การพัฒนาสูตรสำหรับปัญหาที่เกิดขึ้น
>> ดังนั้นเรากำลังบอกต่อข้อมูลจำเพาะ ว่าหนึ่งนาทีในห้องอาบน้ำ
จะเทียบเท่ากับประมาณ 12 ขวดน้ำ
ดังนั้นแล้วสองนาทีจะ เทียบเท่ากับ 24
และห้านาทีจะ เทียบเท่ากับ 60
ดังนั้นตอนนี้ถ้าคุณคิด คุณได้มันแล้วปล่อยให้ของ
ดูว่าคุณสามารถขึ้นมา ที่มีรูปแบบหรือสูตร
ในการแสดงถ้าเรามีการพูด, N นาทีกี่ขวดน้ำ
จะว่าจะแสดงออกในแง่ของ n?
>> อีกครั้งแม้ว่านี้ อาจจะง่ายในตอนแรก
ต่อมาเมื่อเราได้รับ ปัญหาที่ซับซ้อนมากขึ้น
เรากำลังจะต้องการที่จะได้รับใน การปฏิบัติของการระบุ
รูปแบบและสูตรการพัฒนา ที่จะคิดสิ่งเหล่านี้ออก
>> ใน C คุณมีการเข้าถึง ดำเนินการทางคณิตศาสตร์มาตรฐาน
บวกลบ คูณหาร
ดังนั้นฉันจะปล่อยให้มันเป็นไป ตอนนี้คุณจะคิดออก
วิธีการแสดง จำนวนเทียบเท่าของขวด
ที่ผู้บริโภค ในระหว่างการอาบน้ำของพวกเขา
>> สิทธิทั้งหมดที่เรากำลังทำเกือบ
เราได้รับการแจ้งเตือนผู้ใช้สำหรับการป้อนข้อมูลของพวกเขา เราได้มั่นใจว่ามันเป็นการป้อนข้อมูลที่ถูกต้อง
แล้วเราได้คิดวิธี ในการคำนวณเทียบเท่า
จำนวนขวดที่พวกเขาบริโภค
ดังนั้นสิ่งสุดท้ายที่จะทำคือการส่งออก จำนวนเทียบเท่าของขวด
และหวังว่าจะส่งเสริมให้ พวกเขาเพื่อการอนุรักษ์น้ำบางส่วน
>> การแสดงผลค่าจะ เป็นคำสั่ง printf
ถ้าผมอยากจะบอกคุณว่าฉัน มีสามสัตว์เลี้ยงเช่น
ผมอาจจะใช้คำสั่ง printf ที่มีลักษณะบางอย่างเช่นนี้
ฉันมีสามสัตว์เลี้ยงและใหม่ สายสำหรับการจัดรูปแบบที่ดี
>> ตอนนี้เราไม่ต้องการที่จะ เพียงแค่สิ่งที่ยากรหัส
กล่าวว่าจำนวนของฉัน สัตว์เลี้ยงการเปลี่ยนแปลงอยู่ตลอดเวลา
แล้วฉันจะทำให้การใช้งานของ ตัวยึดตำแหน่งในงบ printf ของฉัน
ดังนั้นนี่คือหมายเลขของฉันเป็นจำนวนเต็ม
ดังนั้นฉันจะทำให้ตัวยึด สำหรับจำนวนเต็มใช้ฉัน%
ฉันจะเขียนสตริง และแล้วหลังจากสตริง
ผมเขียนเครื่องหมายจุลภาคแล้ว ตัวแปรที่ฉันต้องการพิมพ์
ดังนั้นค่าที่จะพิมพ์ แทนการที่ตัวยึด% ฉัน
>> คุณสามารถใช้ตัวยึดตำแหน่งเป็น ดีลอยกับ f%
นอกจากนี้คุณยังสามารถมีหลาย ตัวยึดตำแหน่งในสตริง
ตัวอย่างเช่นถ้าฉันมีบางหมายเลข ของสุนัขและจำนวนของแมวบาง
ฉันใส่สองตัวยึดที่นี่แล้ว สองตัวแปรของฉันตามลำดับ
>> ดังนั้นตอนนี้เรารู้วิธีการพิมพ์ ค่าที่เก็บไว้ในตัวแปร
สิ่งสุดท้ายที่มากที่จะ ทำคือการให้แน่ใจว่าเราว่า
พิมพ์ค่าในรูปแบบที่แน่นอน ที่ระบุไว้ในข้อกำหนด
กับที่เราได้รับแจ้ง ผู้ใช้และการตรวจสอบใส่ของพวกเขา
เราได้คำนวณแล้วเทียบเท่า จำนวนขวดน้ำ
ที่พวกเขาใช้ในระหว่างการอาบน้ำของพวกเขา และเราได้ออกมาค่าที่ให้กับพวกเขา
และเพื่อให้เราได้เสร็จน้ำ
>> ชื่อของฉันคือ [? Zamila?] และนี่คือ CS50