สวัสดี ยินดีต้อนรับกลับมา
ในการสาธิตการบรรยายครั้งนี้ ฉันต้องการเสนอวิธีแก้ปัญหาสำหรับโปรแกรมสภาพอากาศที่ฉันได้พูดคุยไว้
เกี่ยวกับความท้าทายครั้งก่อนของเรา
มาเริ่มกันเลยรหัส บล็อกสร้างโครงการ
ฉันจะตั้งชื่อ โครงการนี้สภาพอากาศ
ย้ำอีกครั้งว่า แอพจะทำให้เราได้ยอดทั้งรายปีและรายเดือน
ค่าเฉลี่ยสำหรับปริมาณน้ำฝน
ที่ด้านบนสุดที่คุณต้องการ เพื่อแสดงความคิดเห็นว่าโปรแกรมนั้นคืออะไร
อีกครั้ง โปรแกรมนี้จะเป็น การหาผลรวมรายปี ค่าเฉลี่ยรายปี และค่าเฉลี่ยรายเดือนเป็นเวลาหลายปี
ของข้อมูลปริมาณน้ำฝน 5 ปีโดยพื้นฐานแล้ว
อยู่ข้างบนแล้วฉันจะไป เพื่อกำหนดค่าคงที่สองสามตัว และเราไม่ได้ข้ามdefine
คำสั่งตัวประมวลผลล่วงหน้าในรายละเอียดยัง
แต่คุณคุ้นเคยกับ นี่มันไม่ซับซ้อนจริงๆ
ดังนั้นฉันจะรวมมันและฉัน ต้องการเขียนโค้ดคุณภาพดี
ดังนั้นฉันจะนิยาม เดือนที่เรียกว่าเดือนสามารถมีค่าเท่ากับ
12 และค่าคงที่
คุณสามารถใช้ค่าคงที่ โมดิฟายเออร์ และผมจะนิยามตัวที่เรียกว่าปีเท่ากับ
5 ด้วย
นั่นคือเรากำลังจะติดดาว
และสิ่งแรกที่เราต้องการจริงๆ ที่จะทำในหน้าที่หลักของเราคือเราต้องการสร้างอาร์เรย์ของเราซึ่ง
เป็นอาร์เรย์สองมิติและเราต้องการเริ่มต้นข้อมูล
ดังนั้นเราจะเริ่มต้น ปริมาณน้ำฝน ข้อมูลปริมาณน้ำฝนสำหรับปี
2010, 2011 และ 2015 หรืออะไรก็ตาม
ดังนั้นเราจึงรู้วิธีสร้าง อาร์เรย์สองมิติ
เราเพิ่งระบุชื่อประเภทข้อมูลและ ฉันคิดว่าควรเป็นทศนิยมเพราะทศนิยมมีจุดทศนิยม
และปริมาณน้ำฝนสามารถเป็นทศนิยมได้
เราจะบอกว่าลอย เราจะตั้งชื่อว่าฝน
แล้วเราจะระบุว่าเรา ต้องการมี 5 แถว 12 คอลัมน์
เราก็จะบอกว่าปี ซึ่งก็คือค่าคงที่และเดือนของเรา แล้วเราจะเริ่มต้นมัน
ประกาศแล้วขนาดนี้ และตอนนี้เราต้องการเริ่มต้น
และคุณสามารถเริ่มต้นได้ด้วยการมี วงเล็บแบบนั้น จากนั้นคุณสามารถมีวงเล็บด้านในสำหรับแต่ละแถวได้
เราก็ทำได้ ค่าคงที่อาร์เรย์ถ้าเราต้องการแต่เราจะไม่ทำ
ตอนนี้ฉันได้ทำสิ่งนี้แล้ว data และฉันไม่ต้องการพิมพ์ว่าสิ่งนี้คืออะไร
นี่จะเป็น 10 คูณ 50 หรือ 12 คูณ 5 นั่นคือ 60 องค์ประกอบ
ฉันไม่ต้องการพิมพ์ 60 องค์ประกอบ ตอนนี้เพราะมันจะใช้เวลาและคุณก็แค่ไป
ที่จะนั่งอยู่ที่นั่นและผล็อยหลับไป
ดังนั้นฉันจะคัดลอกและ วางในการเริ่มต้นของฉันและเริ่มต้นข้อมูลบางอย่าง
นี่เป็นเพียงข้อมูลจำลองบางส่วน มันอาจไม่ถูกต้อง
แต่คุณจะเห็นว่าเรามีวงเล็บ สำหรับแต่ละแถว ดังนั้น เรามี 5 แถว
เรากำลังแยกแต่ละแถวด้วย a จุลภาคและเรามีวงเล็บปีกกาเหล่านี้ในแต่ละแถว
แล้วด้านในเป็นลอน วงเล็บปีกกา เรากำลังแยกค่ารายเดือนแต่ละค่าด้วยเครื่องหมายจุลภาค
เรากำลังแยกแถวด้วย เครื่องหมายจุลภาค และเรากำลังแยกค่าภายในแถวด้วยเครื่องหมายจุลภาค
นี่คือพวงของ ปริมาณน้ำฝนรายปี
ตัวอย่างเช่น แถวแรกนี้ จะเป็นตัวแทนของปี 2554 และคอลัมน์แรกจะเป็นมกราคม
ดังนั้น ในเดือนมกราคม ปี 2011 เรา มี 4 ฝนตก3นิ้ว.
ข้างล่างนี้ถ้าเราจะดูเลข 6 7, นี้สำหรับปี 2012, 13
สำหรับเดือนมีนาคมเรา มี 6 ฝน7นิ้ว.
คุณจะเห็นว่ามันหมายถึงอะไร ปีและเดือนสำหรับปริมาณน้ำฝน
ตอนนี้เราได้เริ่มต้นทั้งหมด ข้อมูลของเรา เราสามารถเริ่มต้นหรือสร้างตัวแปรท้องถิ่นอื่นๆ
ได้
ดังนั้นเราจะสร้าง ปีหนึ่งเดือน
เพราะสิ่งนี้จะช่วยให้ปีของเรา ตรงและเดือนของเราตรง
ดังนั้นฉันแค่พูดว่าปีเดือนฉัน
จะสร้างมันในบรรทัดเดียวกัน และฉันก็จะสร้าง คู่ลอยผลรวมย่อยและทั้งหมด
ยอดรวมย่อยจะเป็นยอดรวมรายปี รวมจะเป็นปริมาณน้ำฝนทั้งหมดเพื่อให้ฉันสามารถได้รับค่าเฉลี่ยรายปี
และเราจะคิดออกด้วย วิธีรับค่าเฉลี่ยรายเดือน
ดังนั้นสิ่งแรกที่ฉันต้อง ทำคือฉันต้องมี
for loop ที่จะพิมพ์ของเรา ปริมาณน้ำฝนในแต่ละปี
งั้นฉันไปก่อนนะ พิมพ์ออกมาในบรรทัดเดียว
ฉันเพิ่งจะพิมพ์ปี และฉันจะเพิ่มแท็บ ...
เพิ่มแท็บเพื่อให้จัดรูปแบบได้ดีขึ้น
มาเพิ่มอีก 2 แท็บ มาดูกันว่า สิ่งนี้จะดูเมื่อฉันแสดง
แล้วฉันจะใส่สายฝน และฉันจะใส่เป็นนิ้วและจะเพิ่มการป้อนบรรทัด
และอีกครั้ง คุณต้องการทดสอบ นี้เพื่อดูว่ามันมีลักษณะอย่างไร
แล้วฉันจะเข้าสู่วงของฉัน
แล้วต้องทำยังไงตามลำดับ คำนวณผลรวมย่อยสำหรับแต่ละปีแสดง
ฉันต้องการไป ตลอดแถว ตลอดปี และทุกปี ข้าพเจ้า อยากผ่านทุกเดือนเพราะต้องบวกเดือนขึ้น
วงนอกของเราจะเริ่มต้นขึ้น ออกในปีแรกซึ่งก็คือปี 2011 แต่จริงๆ
แล้วเป็น 0 ใน array เนื่องจากอาร์เรย์เป็น 0 ที่จัดทำดัชนี
และฉันจะเริ่มต้นด้วย ตัวแปรท้องถิ่นอื่นภายในที่นี่
จำไว้ว่าสำหรับลูปนั้นมีความยืดหยุ่นสูง
คุณสามารถสร้างอื่นๆ ได้จริง ตัวแปรในคำสั่ง for
ฉันไม่จำเป็นต้องสร้างตัวแปร ที่ใช้นอกคำสั่ง
for ในบรรทัดที่ 19 หรือ 20
ดังนั้นที่นี่ฉันจะสร้าง ตัวแปรที่เรียกว่าผลรวมหรือเริ่มต้นตัวแปรผลรวมของฉัน
แล้วฉันจะผ่านจนกว่า ปีของฉันน้อยกว่าปีที่คงที่และฉันจะเพิ่มขึ้น
ปีตัวแปรควบคุมการวนรอบของฉัน
ปีกับเดือนจึงวนเวียน ตัวแปรควบคุมในบรรทัดที่ 19
และนี่กำลังจะไป เป็นตัวแทนของวงนอกของฉัน
มันเป็นอาร์เรย์สองมิติ ดังนั้นฉัน จะต้องมีวงในด้วย
และวงในของฉันกำลังดำเนินไป ที่จะผ่านไปในแต่ละเดือน
นี่ฉันจะพูดว่าเดือน เท่ากับ 0 ผลรวมย่อยสำหรับแต่ละเดือนก็เท่ากับ
0 เริ่มต้นเช่นกัน
และฉันจะผ่านจนกว่า ฉันทำกับทุกเดือนของฉันแล้ว
และฉันจะค่อยๆ เพิ่มขึ้น ตัวแปรควบคุมลูปของฉัน และนี่จะเป็นวงในของฉัน
ดังนั้นในวงในของฉัน ฉันทำได้จริงๆ กำหนดผลรวมย่อยฉันไม่ต้องแสดงอะไรเลย
ดังนั้นทั้งหมดที่ฉันจะทำในของฉัน วงในคือฉันจะบวกยอดรวมย่อยในแต่ละปี
ผลรวมย่อยของฉันคือยอดรวมรายปีของฉัน
และฉันก็กำลังจะไป เพื่อเข้าถึงอาร์เรย์
ชื่ออาร์เรย์ของฉันคือฝน
บอกได้เลยว่าฝนย่อย ปี ดังนั้นนี่คงเป็นทั้งหมดสำหรับปี 2011 ในตอนแรกเพราะว่าภายนอกของฉัน
วนซ้ำแล้วซ้ำเล่าในแต่ละเดือน
และฉันกำลังเพิ่มเข้าไป
ดังนั้นผมจะบอกว่าผลรวมย่อยเท่ากับยอดรวมย่อย บวกฝนบวกค่าอาร์เรย์
วงในจึงผ่านไป ทุกเดือนในปีนั้นสร้างผลรวมย่อยของมัน
ตอนนี้ฉันต้องการแสดง ผลรวมย่อยนอกลูปเพราะฉันต้องการแสดงเท่านั้น
ยอดรวมย่อย 5 ครั้งเป็นเวลา 5 ปี
ดังนั้นที่นี่ฉันทำได้นิดหน่อย พิมพ์คำสั่งที่ช่วยจัดรูปแบบข้อมูลบิตและยัง
ช่วยแสดงผลได้อย่างถูกต้อง
ตอนนี้จะเป็น ปีและยอดรวมย่อย
งั้นเราน่าจะเพิ่ม ถึงยอดรวมย่อยฉันจะพูดสองสามแท็บ แต่เราจะเห็นอะไร ดูเหมือนว่าดังนั้น
slash t slash t
แล้วอีกอย่างเดียว ที่อยากทำคือต้องบวกยอดเพราะเราจำเป็นต้อง
มียอดรวมทุกปี
นี่เราพูดได้เลยว่า รวมบวกเท่ากับยอดรวมย่อย
แล้วคุณจะเห็นยอดรวมย่อย กำลังได้รับการกำหนดค่าเริ่มต้นใหม่ทุกครั้งที่คุณไปที่วงใน
ดังนั้นเราจึงไม่ต้องตั้งค่ากลับ
และที่นี่เราแค่อยากจะทำ แน่ใจว่าการเยื้องนั้นดี
อีกครั้ง สังเกตการเยื้องของฉันสำหรับ แต่ละบล็อก และจริงๆ แล้วฉันไม่ต้องการวงเล็บ
27 และ 29 เนื่องจากเป็นคำสั่งเดียว แต่ฉันจะทิ้งมันไว้ที่นั่น
ตอนนี้ฉันทำอย่างนั้นหลังจากที่ฉัน พิมพ์ปริมาณน้ำฝนรายปีหรือปริมาณน้ำฝนในแต่ละปีตอนนี้ก็ได้ค่ะ
แสดงค่าเฉลี่ยรายปีเพราะฉันมีข้อมูลเพียงพอ ฉันมียอดรวม ปริมาณน้ำฝนในแต่ละเดือน
เลยเอามาฝากค่ะ ค่าเฉลี่ยรายปีซึ่งเป็นยอดรวมหารด้วยปี
เพิ่มคำสั่งพิมพ์อื่นที่นี่
อีกครั้งหนึ่งที่ดีในการทดสอบ
ไปสร้างกันได้เลย ตรวจสอบให้แน่ใจว่าเราไม่มีข้อผิดพลาดใด
ๆ เนื่องจากเป็นรหัสจำนวนมาก
และเรามี ไม่ประกาศปีตัวแปร
เมื่อคุณเห็นข้อผิดพลาดของคอมไพเลอร์ บางครั้งก็เป็นการบิดเบือนความจริงในสิ่งที่ผิดพลาด
ในกรณีนี้มันบอกฉันว่าฉันมี เกิดข้อผิดพลาดในบรรทัดที่ 19 แต่จริงๆ แล้วสิ่งที่ทำให้เกิดข้อผิดพลาดคือ
คำสั่งก่อนหน้านี้ที่ไม่มีอัฒภาคลงท้าย
ลองเรียกใช้สิ่งนี้และดูว่าเรา สามารถดูปริมาณน้ำฝนรายปี ดูว่าจัดรูปแบบอย่างไร
มาเลยปี2010 ปริมาณน้ำฝน หน่วยเป็นนิ้ว
เราเลยอาจจะเพิ่มแท็บมากเกินไป หลังจากที่เราแสดงผลรวมย่อยแล้ว ค่าเฉลี่ยรายปีคือ
39 4.
เราก็เลยอยากแก้ไข โดยเพียงแค่กำจัดแท็บที่นี่
จำไว้ว่าคุณสามารถเพิ่ม a แท็บในเอาต์พุตของคุณโดยใช้
Escape Sequence slash t
อย่างน้อยก็ดูดีทีเดียว
ตอนนี้ต้องมีอีกแล้ววว ลูปที่จะแสดงค่าเฉลี่ยรายเดือน
ดังนั้นก่อนที่จะแสดงรายเดือน เฉลี่ยฉันต้องการพิมพ์ทุกอย่างออกมาในบรรทัดเดียว
เลยพิมพ์ออกมาเลย ข้อมูลบางอย่างโดยใช้ printf
ฉันจะพิมพ์ เฉลี่ยรายเดือนและเพิ่มฟีด 2 บรรทัดเพื่อให้มีรูปแบบที่ดีขึ้น
แล้วฉันจะพิมพ์ ข้อมูลอื่น ๆ ของฉัน
เราแค่จะจากกัน เดือนโดยเว้นวรรคแล้วเพิ่มบรรทัดใหม่
เราก็จะทำเหมือนกัน เมื่อเราผ่าน for loop ของเรา
ตอนนี้เราต้องการอีกอันสำหรับลูป ตอนนี้เพื่อรับค่าเฉลี่ยรายเดือน
ดังนั้นในการวนรอบ วงนอก ลูปจะเริ่มในเดือน
แทนที่จะไปตามแต่ละแถวอะไร ฉันจะทำที่นี่คือฉันจะผ่านแต่ละคอลัมน์เพราะ
ฉันต้องได้รับค่าเฉลี่ยรายเดือน
ดังนั้นฉันจะเริ่มต้นและฉัน จะผ่านแต่ละคอลัมน์
คือ มกราคม กุมภาพันธ์ มีนาคมเป็นตัวแทนของคอลัมน์
และสำหรับแต่ละคอลัมน์ ฉันจะไปที่ ผ่านทุกปีสำหรับคอลัมน์นั้น
จากนั้นฉันสามารถใช้ยอดรวมย่อยได้ และตัวแปรรวมอีกครั้ง
นี่ฉันจะพูดว่าเดือน เท่ากับ 0, เดือนน้อยกว่าเดือนและเดือนบวกบวก
แล้ววงในของฉันคือ จะผ่านไปหลายปี
งั้นฉันไปล่ะ ที่จะบอกว่าสำหรับปีเท่ากับ 0
และจำไว้ว่าฉันยังต้องการ เพื่อเริ่มต้นใหม่ยอดรวมย่อยของฉัน
ดังนั้นฉันจะพูดผลรวมย่อย เท่ากับ 0 เพราะฉันต้องการเริ่มต้นที่
0 เมื่อถึงปีใหม่แล้ว ให้ผ่านไป ทุกปีแล้วเพิ่มปีซึ่งเป็นตัวแปรควบคุมการก้าวกระโดด
และข้างในนี้ฉันต้องการ ใส่ผลรวมย่อยของฉันซึ่งจะเท่ากับของฉัน อาร์เรย์สำหรับปีและเดือน
และที่สำคัญคือ เข้าใจสิ่งที่เกิดขึ้นที่นี่คือเราเปลี่ยนวิธีที่เราเป็น
ตัวตนผ่านอาร์เรย์
และลูปแรกที่เราวนซ้ำ โดยผ่านแต่ละแถวและดูแต่ละคอลัมน์
ทริปนี้เราจะไปกันจริงๆ ผ่านแต่ละคอลัมน์และดูแถวเฉพาะนั้น
เพราะเราคือ การคำนวณค่าเฉลี่ยรายเดือน
เราจะได้ผลรวมย่อย แล้วเรา แค่ต้องการพิมพ์ผลรวมย่อยของเราหารด้วยปีสำหรับเดือนนั้น
เพื่อให้เข้ากับ ผลลัพธ์ของเราในบรรทัดที่ 37
เราก็เลยจะทำ อะไรแบบนี้, และเราจะทำมันกับ
4 1 รูปแบบ ยอดรวมย่อยหารด้วยปี
และเราเพิ่มช่องว่างสองสามดังนั้น ที่พยายามจะเรียงให้ดีที่สุดเราอาจต้องการเพิ่มพื้นที่อื่น
แล้วหลังจากที่เราพิมพ์ ทั้งหมดที่กล่าวมา เราสามารถเพิ่มการป้อนบรรทัดเพื่อให้อ่านง่าย
เท่านี้ก็เสร็จเรียบร้อย
และนั่นจะทำให้เรา ค่าเฉลี่ยรายเดือนเพราะเราได้ยอดรวมย่อยทั้งหมดแล้ว
เราแบ่งตามปี
ทีนี้มาสร้างสิ่งนี้กัน ไม่มีข้อผิดพลาดและเรียกใช้
และตอนนี้เราจะเห็นเพิ่มเติม ผลลัพธ์สำหรับยอดรวมรายเดือนหรือค่าเฉลี่ยรายเดือน
มาดูกันว่าทุกเดือน ค่าเฉลี่ยและรูปแบบไม่ค่อยดีนัก
ทุกอย่างจึงขึ้นอยู่เพราะ ของผลงานของตัวละคร
จริงๆแล้วเราอาจจะอยากลดลง พื้นที่ เพิ่มที่ว่างเพียงอันเดียว มาดูกันว่ามันทำงานได้ดีกว่าไหม
ตอนนี้เมื่อเราเรียกใช้ ดูว่ามันดูเหมือน ดีกว่าเพราะคุณต้องการที่จะสามารถผูกขึ้นในแต่ละเดือนกับ
เฉลี่ยแล้วดีขึ้นนิดหน่อย
เรายังน้อยไปเพราะ เดือนมี 3 อักขระและจำนวนเต็มคือ
2
ส่วนใหญ่เราเมา ระหว่างเดือนตุลาคมถึงพฤศจิกายนเพราะมีที่เดียว
ตอนนี้ฉันสามารถแก้ไขได้โดย แค่ไปแบบนั้น
จึงควรทำให้ รูปแบบที่ดีทั้งหมด
แต่คุณจะเห็นว่าเราเป็นแค่ พิมพ์ปริมาณน้ำฝนสำหรับปีและค่าเฉลี่ยรายเดือน
ฉันหวังว่านี่จะทำให้คุณคุ้นเคย อาร์เรย์สองมิติ วิธีการวนซ้ำ
วิธีการกำหนด อาร์เรย์และวิธีการเข้าถึงข้อมูล
ขอขอบคุณ.