คอมพิวเตอร์ Windows อินเทอร์เน็ต

โปรแกรมเชิงเส้นคืออะไร สั้น ๆ เกี่ยวกับโปรแกรมเชิงเส้นตรง โปรแกรมเชิงเส้นพร้อมอาร์เรย์

ข้างต้น เราได้พิจารณางานปฏิบัติต่างๆ ที่ลงมาถึงโครงการ การเขียนโปรแกรมเชิงเส้น... ในหนึ่งในภารกิจเหล่านี้ ข้อ จำกัด เชิงเส้นดูเหมือนความไม่เท่าเทียมกันในผู้อื่น - ความเท่าเทียมกันในผู้อื่น - ทั้งสองอย่าง

ในที่นี้ เราจะพิจารณาปัญหาการโปรแกรมเชิงเส้นตรงที่มีข้อจำกัดความเท่าเทียมกัน ซึ่งเรียกว่าปัญหาโปรแกรมเชิงเส้นตรงพื้นฐาน (0PLP)

ในสิ่งต่อไปนี้ เราจะแสดงให้เห็นว่าเราจะเปลี่ยนจากปัญหาข้อจำกัดความไม่เท่าเทียมกันไปเป็น LPLP ได้อย่างไร และในทางกลับกัน

งานหลักของโปรแกรมเชิงเส้นมีดังนี้

มีหลายตัวแปร

จำเป็นต้องค้นหาค่าที่ไม่เป็นลบของตัวแปรเหล่านี้ที่จะตอบสนองระบบ สมการเชิงเส้น:

และยิ่งไปกว่านั้น จะย่อให้เล็กสุด ฟังก์ชันเชิงเส้น

เห็นได้ชัดว่ากรณีที่ฟังก์ชันเชิงเส้นไม่จำเป็นต้องหมุนเป็นค่าต่ำสุด แต่สูงสุดจะลดลงเป็นฟังก์ชันก่อนหน้าได้ง่าย หากเราเปลี่ยนเครื่องหมายของฟังก์ชันและพิจารณาแทนฟังก์ชัน

ตกลงจะเรียกตัวแปรชุดใดก็ได้

สมการที่น่าพอใจ (2.1)

ทางออกที่ดีที่สุดคือของโซลูชันที่เป็นไปได้ซึ่งฟังก์ชันเชิงเส้นตรง (2.2) จะกลายเป็นค่าต่ำสุด

ปัญหาการเขียนโปรแกรมเชิงเส้นพื้นฐานไม่จำเป็นต้องมีวิธีแก้ไข

ปรากฎว่าสมการ (2.1) ขัดแย้งกันเอง มันอาจกลายเป็นว่าพวกเขามีวิธีแก้ปัญหา แต่ไม่ใช่ในพื้นที่ของค่าที่ไม่เป็นลบ จากนั้น OZLP ก็ไม่มีวิธีแก้ปัญหาที่เป็นไปได้ สุดท้าย อาจกลายเป็นว่าโซลูชันที่เป็นไปได้ของ DLP มีอยู่ แต่ในหมู่พวกเขาไม่มีโซลูชันที่เหมาะสมที่สุด: ฟังก์ชัน L ในพื้นที่ของโซลูชันที่เป็นไปได้นั้นไม่มีขอบเขตจากด้านล่าง

เราจะทำความคุ้นเคยกับตัวอย่างคุณสมบัติดังกล่าวของ OZLP ในอนาคต

ก่อนอื่นให้เราพิจารณาคำถามเกี่ยวกับการมีอยู่ของวิธีแก้ปัญหาที่ยอมรับได้สำหรับ LPLP

เมื่อแก้ปัญหานี้ เราสามารถแยกฟังก์ชันเชิงเส้น L ออกจากการพิจารณาได้ ซึ่งจะต้องถูกย่อให้เล็กสุด - การมีอยู่ของคำตอบที่เป็นไปได้จะถูกกำหนดโดยสมการ (2.1) เท่านั้น

ดังนั้น ให้มีระบบสมการ (2.1) มีค่าที่ไม่เป็นลบที่ตรงกับระบบนี้หรือไม่? คำถามนี้พิจารณาในส่วนพิเศษของคณิตศาสตร์ - พีชคณิตเชิงเส้น

ให้เราสรุปสั้น ๆ ของประโยคพีชคณิตเชิงเส้นบางประโยค โดยไม่ต้องอาศัยการพิสูจน์ของทฤษฎีบทที่เกี่ยวข้องกัน

เมทริกซ์ของระบบสมการเชิงเส้น

เรียกว่าตารางประกอบด้วยสัมประสิทธิ์ที่

เมทริกซ์ขยายของระบบสมการเชิงเส้นคือเมทริกซ์เดียวกัน เสริมด้วยคอลัมน์ของเทอมอิสระ:

อันดับของเมทริกซ์คือลำดับสูงสุดของดีเทอร์มีแนนต์ที่ไม่ใช่ศูนย์ ซึ่งสามารถหาได้โดยการลบบางแถวและบางคอลัมน์ออกจากเมทริกซ์

ในพีชคณิตเชิงเส้นได้รับการพิสูจน์แล้วว่าเพื่อให้ระบบของสมการเชิงเส้น (2.1) เข้ากันได้ จำเป็นและเพียงพอที่อันดับของเมทริกซ์ของระบบจะเท่ากับอันดับของเมทริกซ์ขยาย

ตัวอย่างที่ 1 ให้ระบบสามสมการที่มีสี่ไม่ทราบค่า:

ตรวจสอบว่าระบบทำงานร่วมกันหรือไม่

สารละลาย. เมทริกซ์ระบบ:

เมทริกซ์ขยาย:

ให้เรากำหนดอันดับของเมทริกซ์แรก ต้องไม่เกิน 3 (เนื่องจากจำนวนแถวคือ 3) ลองเขียนดีเทอร์มีแนนต์โดยลบคอลัมน์บางคอลัมน์ออกจากเมทริกซ์ เช่น คอลัมน์สุดท้าย เราได้รับ

การคำนวณดีเทอร์มีแนนต์นี้ตามกฎที่รู้จักกันดี เราได้รับ:

ดีเทอร์มีแนนต์นี้ไม่เท่ากับศูนย์ ซึ่งหมายความว่าอันดับของเมทริกซ์ของระบบคือ 3 เห็นได้ชัดว่าอันดับของเมทริกซ์แบบขยายก็เท่ากับ 3 ด้วย เนื่องจากดีเทอร์มีแนนต์เดียวกันสามารถสร้างได้จากองค์ประกอบของ เมทริกซ์แบบขยาย จากความเท่าเทียมกันของอันดับของเมทริกซ์ที่ระบบสมการมีความสอดคล้องกัน

ตัวอย่างที่ 2 ตรวจสอบความเข้ากันได้ของระบบสมการสองสมการที่มีสามไม่ทราบค่า:

สารละลาย. เมทริกซ์ระบบขยาย:

(ด้านซ้ายของมันคือเมทริกซ์ระบบ)

ให้เราหาอันดับของเมทริกซ์ของระบบโดยเขียนดีเทอร์มีแนนต์อันดับสองที่เป็นไปได้ทั้งหมด:

ดังนั้น ดีเทอร์มีแนนต์ที่เป็นไปได้ทั้งหมดของลำดับที่สอง ซึ่งประกอบด้วยองค์ประกอบของเมทริกซ์ของระบบ มีค่าเท่ากับศูนย์ ดังนั้นอันดับของเมทริกซ์นี้ของระบบ

หาอันดับของเมทริกซ์ขยาย ดีเทอร์มิแนนต์

ดังนั้นอันดับของเมทริกซ์แบบขยายจึงไม่เท่ากับอันดับของเมทริกซ์ของระบบ: Грфг ดังนั้นระบบของสมการจึงไม่สอดคล้องกัน

ตัวอย่างที่ 3 เพื่อตรวจสอบความสอดคล้องของระบบสามสมการกับสี่ไม่ทราบ:

โซลูชันเมทริกซ์ระบบขยาย (ร่วมกับเมทริกซ์ระบบ):

มาหาอันดับของเมทริกซ์ของระบบกัน หาดีเทอร์มีแนนต์อันดับสามที่ประกอบด้วยองค์ประกอบ เช่น

เป็นที่ทราบกันว่าถ้าแถวของดีเทอร์มีแนนต์ใดๆ เป็นผลรวมเชิงเส้นของอีกสองแถวของอีกสองแถว ดีเทอร์มีแนนต์จะเท่ากับศูนย์ ในกรณีของเรา แถวที่สามเป็นการรวมเชิงเส้นของสองแถวแรก: เพื่อให้ได้มา ก็เพียงพอแล้วที่จะเพิ่มแถวแรกด้วยวินาทีที่ทวีคูณ ดังนั้น

ง่ายต่อการตรวจสอบว่าดีเทอร์มีแนนต์อันดับสามใดๆ ที่ประกอบด้วยองค์ประกอบของเมทริกซ์ระบบมีคุณสมบัติเหมือนกัน ดังนั้น ลำดับของเมทริกซ์ระบบ

เนื่องจากมีดีเทอร์มีแนนต์ที่ไม่ใช่ศูนย์ของลำดับที่สอง ตัวอย่างเช่น

แล้วอันดับของเมทริกซ์ของระบบคือ

โดยใช้เหตุผลเดียวกัน เราจะทำให้แน่ใจว่าอันดับของเมทริกซ์ขยายเท่ากับสอง: ดังนั้น ระบบสมการจึงสอดคล้องกัน

สังเกตว่าสมการทั้งสาม ตัวอย่างนี้ไม่เป็นอิสระ: อันที่สามสามารถรับได้จากสองอันแรกโดยการคูณวินาทีด้วยสองแล้วบวกเข้ากับอันแรก ดังนั้น สมการที่สามจึงเป็นผลลัพธ์ง่ายๆ ของสองสมการแรก มีสมการอิสระเพียงสองสมการในระบบ: สิ่งนี้สะท้อนให้เห็นโดยความจริงที่ว่าอันดับของเมทริกซ์ของระบบ

ดังนั้น หากระบบสมการ-ข้อจำกัดของ LPLP สอดคล้องกัน เมทริกซ์ของระบบและเมทริกซ์ขยายจะมีอันดับเท่ากัน

อันดับโดยรวมนี้เรียกว่าอันดับของระบบ มันไม่มีอะไรมากไปกว่าจำนวนของสมการอิสระเชิงเส้นระหว่างข้อจำกัดที่กำหนด

เห็นได้ชัดว่าอันดับของระบบต้องไม่เกินจำนวนสมการ:

เป็นที่ชัดเจนว่าอันดับของระบบไม่สามารถมากกว่าจำนวนตัวแปรทั้งหมด:

อันที่จริง ลำดับของเมทริกซ์ของระบบถูกกำหนดให้เป็นลำดับที่ใหญ่ที่สุดของดีเทอร์มีแนนต์ที่ประกอบด้วยองค์ประกอบของเมทริกซ์ เนื่องจากจำนวนบรรทัดเท่ากัน เนื่องจากจำนวนคอลัมน์เท่ากัน

โครงสร้างของปัญหาการโปรแกรมเชิงเส้นขึ้นอยู่กับอันดับของระบบข้อจำกัด (2.1)

ประการแรก พิจารณากรณีที่ เมื่อ นั่นคือ เมื่อจำนวนของสมการอิสระเชิงเส้นที่รวมอยู่ในระบบ (2.1) เท่ากับจำนวนตัวแปร n เราละทิ้งสมการ "ที่ไม่จำเป็น" ซึ่งเป็นผลรวมเชิงเส้นของสมการอื่น ระบบสมการ-ข้อจำกัดของ LPLP มีรูปแบบดังนี้

เนื่องจากดีเทอร์มีแนนต์ประกอบด้วยสัมประสิทธิ์

ไม่เป็นศูนย์ เป็นที่ทราบกันดีอยู่แล้วจากพีชคณิตว่าในกรณีนี้ ระบบ (2.4) มีวิธีแก้ปัญหาเฉพาะตัว ในการหาค่า ก็เพียงพอที่จะแทนที่คอลัมน์ในดีเทอร์มีแนนต์ด้วยคอลัมน์ของสมาชิกอิสระแล้วหารด้วย

ดังนั้น สำหรับระบบสมการ-ข้อจำกัด LPLP มีคำตอบเฉพาะ:

หากในสารละลายนี้มีปริมาณเป็นค่าลบอย่างน้อยหนึ่งรายการ แสดงว่าสารละลายที่ได้นั้นไม่สามารถยอมรับได้ ดังนั้น ZZLP จึงไม่มีวิธีแก้ปัญหา

หากปริมาณทั้งหมดไม่เป็นค่าลบ แสดงว่ายอมรับวิธีแก้ปัญหาที่พบได้ เห็นได้ชัดว่าเหมาะสมที่สุดเช่นกัน (เพราะไม่มีอย่างอื่น)

เห็นได้ชัดว่าคดีเล็กๆ น้อยๆ นี้ไม่น่าสนใจสำหรับเรา

ดังนั้นในสิ่งต่อไปนี้เราจะพิจารณาเฉพาะกรณีที่เมื่อนั่นคือเมื่อจำนวนของสมการอิสระที่ต้องเป็นไปตามตัวเลขตัวแปรของตัวแปรเอง จากนั้นหากระบบเข้ากันได้ก็มีโซลูชั่นมากมาย ในกรณีนี้ เราสามารถกำหนดค่าตามอำเภอใจให้กับตัวแปรได้ (เรียกว่าตัวแปรอิสระ) และตัวแปรที่เหลือจะแสดงผ่านตัวแปรเหล่านี้ (เราจะเรียกตัวแปรเหล่านี้ว่าพื้นฐาน)

โปรแกรมเชิงเส้นคือโปรแกรมที่ประกอบด้วยคำสั่งง่าย ๆ (ตัวดำเนินการ)
คำสั่งง่าย ๆ (คำสั่งง่าย ๆ ของอัลกอริทึม) เรียกว่าคำสั่งที่ไม่ใช้เงื่อนไขในการดำเนินการ ตัวดำเนินการอย่างง่ายประกอบด้วยคำสั่งการมอบหมาย อินพุตและเอาต์พุต (ตัวดำเนินการ) การเรียกอัลกอริทึมเสริม (รูทีนย่อย)

ผู้ดำเนินการมอบหมาย มันตั้งค่าหรือเปลี่ยนค่าปัจจุบันของตัวแปรบางตัว สิ่งนี้จะเปลี่ยนเนื้อหาขององค์ประกอบหน่วยความจำเฉพาะที่จัดสรรสำหรับตัวแปรนี้ เนื่องจากเป้าหมายของอัลกอริธึมใด ๆ คือการได้รับตำแหน่งหน่วยความจำที่เฉพาะเจาะจง ค่าที่ต้องการเกือบทุกโปรแกรมมีโอเปอเรเตอร์นี้ ตัวดำเนินการ I / O ขั้นตอนการป้อนข้อมูลมาตรฐานใช้เพื่อกำหนดค่าเริ่มต้นของตัวแปรบางตัวและประกอบด้วยชื่อขั้นตอนและรายการอินพุตที่มีชื่อของตัวแปรซึ่งค่าจะถูกป้อนจากแป้นพิมพ์หรือจากไฟล์เช่น ตัวแปรจะได้รับการกำหนดค่าเฉพาะบางอย่าง
บ่อยครั้งจะสะดวกกว่าที่จะใช้คำสั่ง input เพื่อกำหนดค่าเริ่มต้น แทนที่จะเป็นคำสั่งการมอบหมาย เพราะถ้าคุณต้องการใช้โปรแกรมกับแหล่งข้อมูลอื่น คุณไม่จำเป็นต้องเปลี่ยนข้อความของโปรแกรม
หากมีคำสั่งอินพุตในเร็กคอร์ดอัลกอริธึม การดำเนินการของคำสั่งนั้นจะถูกขัดจังหวะและการควบคุมจะถูกโอนไปยังโปรแกรมที่สามารถทำการป้อนข้อมูลได้ หลังจากป้อนข้อมูล การควบคุมจะถูกโอนไปยังคำสั่งถัดไปของอัลกอริทึม
ใน Pascal ขั้นตอนการป้อนข้อมูลคือ:
อ่าน (รายการ);
READLN (รายการเข้า)
เมื่อดำเนินการตามขั้นตอน READ และ READLN โปรแกรมจะเข้าสู่สถานะรอการป้อนข้อมูล หากมีการระบุตัวแปรหลายตัวในรายการรายการ ตัวแปรเหล่านี้สามารถป้อนในบรรทัดเดียว แยกจากกันโดยใช้อักขระเว้นวรรค หรือแยกบรรทัด (ในคอลัมน์) ให้กรอกค่าแต่ละรายการด้วยปุ่ม Enter
ขั้นตอนจะไม่สิ้นสุดจนกว่าจะป้อนค่าสำหรับตัวแปรทั้งหมดในรายการ ประเภทของค่าอินพุตต้องตรงกับตัวแปรที่เกี่ยวข้อง
คำสั่ง READLN แตกต่างจากคำสั่ง READ โดยที่หลังจากป้อนข้อมูลตามจำนวนที่ต้องการแล้ว เคอร์เซอร์จะย้ายไปที่บรรทัดถัดไป
หากป้อนข้อมูลจากแป้นพิมพ์ รายการอินพุตจะเป็นรายการตัวแปร เช่น ลำดับของชื่อตัวแปรที่คั่นด้วยเครื่องหมายจุลภาค หากอินพุตมาจากไฟล์ ตัวแปรแรกในรายการอินพุตคือไฟล์ ซึ่งเชื่อมโยงกับชื่อของไฟล์จริง
ขั้นตอนมาตรฐานสำหรับการแสดงผลผลลัพธ์ของการคำนวณนั้นใช้เพื่อส่งออกค่าไปยังหน้าจอ เครื่องพิมพ์ หรือไฟล์ ใน Pascal ขั้นตอนการอนุมานคือ:
เขียน (รายการผลลัพธ์);
WRITELN (รายการผลลัพธ์)
รายการองค์ประกอบเอาต์พุตกว้างกว่าขั้นตอนอินพุตมาก อาจรวมถึง:
ตัวระบุปริมาณค่าที่จะส่งออกไปยังอุปกรณ์ที่เกี่ยวข้องหรือไปยังไฟล์
นิพจน์ค่าที่จะคำนวณก่อนแล้วจึงส่งออกไปยังอุปกรณ์
กลายเป็นปริมาณ (ตัวเลข อักขระ สตริง)
ความแตกต่างระหว่าง WRITE และ WRITELN คือ คำสั่ง WRITE เริ่มต้นที่ตำแหน่งปัจจุบันของเคอร์เซอร์บนหน้าจอมอนิเตอร์ และเคอร์เซอร์ยังคงอยู่ในบรรทัดเดียวกันหลังจากสิ้นสุดเอาต์พุต คำสั่ง WRItelN พิมพ์ค่าจากตำแหน่งปัจจุบัน จากนั้นเคอร์เซอร์จะย้ายไปที่บรรทัดถัดไป คุณสามารถใช้คำสั่ง WRItelN โดยไม่มีรายการผลลัพธ์เพื่อย้ายเคอร์เซอร์ไปที่บรรทัดใหม่
หากเอาต์พุตถูกดำเนินการบนหน้าจอมอนิเตอร์ รายการเอาต์พุตจะเป็นรายการของตัวแปร หรือลำดับของชื่อของตัวแปร ค่าคงที่ หรือนิพจน์ โดยคั่นด้วยเครื่องหมายจุลภาค หากเอาต์พุตถูกดำเนินการไปยังไฟล์ ตัวแปรแรกในรายการเอาต์พุตจะเป็นตัวแปรไฟล์ที่เชื่อมโยงกับชื่อของไฟล์จริง
ในคำสั่งเอาต์พุต หลังจากองค์ประกอบของรายการเอาต์พุต คั่นด้วยโคลอน คุณสามารถระบุรูปแบบเอาต์พุตได้ เช่น ความกว้างของหน้าจอที่จะระบุค่า เมื่อแสดงข้อมูลที่ถูกต้อง คุณยังสามารถระบุจำนวนหลักทศนิยมในส่วนเศษส่วนที่จะแสดงได้
ตัวอย่าง: เขียน (A: 10: 3, B: 8)
ตัวดำเนินการสำหรับการเรียกอัลกอริทึมเสริม ใน Pascal มีการใช้ Routines-procedures และ Routines-functions รูทีนย่อยถูกเรียกตามชื่อพร้อมพารามิเตอร์จริง ในกรณีนี้ อาจมีค่าเฉพาะ ชื่อของตัวแปรจริง นิพจน์ และแทนที่ผลลัพธ์ได้ - เฉพาะชื่อของตัวแปรจริงเท่านั้น ในกรณีนี้ จำนวน ชนิด และวัตถุประสงค์ของพารามิเตอร์ที่เป็นทางการและจริงในรายการพารามิเตอร์ที่เกี่ยวข้องจะต้องเหมือนกัน

งานห้องปฏิบัติการหมายเลข 1

หัวข้อ: "การเขียนโปรแกรม อัลกอริธึมเชิงเส้น... ทำงานกับดีบักเกอร์ "

วัตถุประสงค์ในการทำงาน

1.1 การเรียนรู้โครงสร้างที่ง่ายที่สุดของโปรแกรม C

1.2 รับทักษะในการจัดระเบียบอินพุต-เอาท์พุตในภาษาซี

การสนับสนุนทางเทคนิค

2.1 คอมพิวเตอร์ส่วนบุคคล

2.2 แป้นพิมพ์

2.3 การแสดงผล

2.4 อุปกรณ์การพิมพ์

ซอฟต์แวร์

3.1 ห้องผ่าตัด ระบบ Windows

3.2 ระบบการเขียนโปรแกรม Visual C ++ เวอร์ชัน 6.0 หรือ Borland C ++ เวอร์ชัน 3.1 ขึ้นไป

การกำหนดปัญหา

การเขียน โปรแกรมที่ง่ายที่สุดด้วยการประมวลผลข้อมูล

5.1 หัวข้อและวัตถุประสงค์ของงาน

5.2 คำชี้แจงของปัญหา

5.3 ข้อความโปรแกรม

5.4 ผลการดำเนินการของโปรแกรม

5.5 แบบแผนของอัลกอริทึมของโปรแกรม

ข้อมูลทั่วไป

โปรแกรมเชิงเส้น

หากในโปรแกรมคำสั่งทั้งหมดถูกดำเนินการตามลำดับ ทีละโปรแกรม โปรแกรมดังกล่าวจะเรียกว่า เชิงเส้นยกตัวอย่างโปรแกรมที่คำนวณผลลัพธ์โดยใช้สูตรที่กำหนด

งาน 1.1. คำนวณตามสูตร

เขียนโปรแกรมที่แปลงอุณหภูมิเป็นองศาฟาเรนไฮต์เป็นองศาเซลเซียสโดยใช้สูตร:

โดยที่ C คืออุณหภูมิเซลเซียสและ F คืออุณหภูมิฟาเรนไฮต์

ก่อนเขียนโปรแกรมใด ๆ จำเป็นต้องกำหนดให้ชัดเจนก่อนว่าต้องใส่อะไรลงไปบ้างและผลที่ตามมาคืออะไร

ในกรณีนี้:

ข้อมูลเริ่มต้นคือจำนวนจริงหนึ่งจำนวน ซึ่งแทนอุณหภูมิในหน่วยเซลเซียส

ผลที่ได้คือจำนวนจริงอีกจำนวนหนึ่ง

ก่อนเขียนโปรแกรม เรามาเปิดสภาพแวดล้อม Visual C ++ แบบบูรณาการกันก่อน:

เริ่ม / โปรแกรม / Microsoft Visual Studio / Microsoft Visual C ++ 6.00

1) ไฟล์> ใหม่ ...

2) ในหน้าต่างที่เปิดขึ้น:

เลือกประเภทแอปพลิเคชันคอนโซล Win32

ป้อนชื่อโครงการในกล่องข้อความชื่อโครงการ

ป้อน (เลือกโดยใช้ปุ่ม ...) ชื่อของไดเร็กทอรีที่มีไฟล์โครงการอยู่ในกล่องข้อความ Location เช่น G: / ASOIZ /

คลิกซ้ายที่ปุ่มตกลง

3) แอปพลิเคชันคอนโซล Win32 - กล่องโต้ตอบ Stepl ของ 1 จะเปิดขึ้นและในนั้น:

เลือกประเภท โครงการที่ว่างเปล่า;

คลิกปุ่มเสร็จสิ้น

4) หลังจากคลิกแล้ว หน้าต่าง New Project จะปรากฏขึ้น โดยคลิกที่ปุ่ม OK

1) ไฟล์ > ใหม่ .... ซึ่งจะเปิดกล่องโต้ตอบใหม่

2) บนแท็บไฟล์:

เลือกประเภทไฟล์ (ในกรณีนี้: C ++ Source File);

ในกล่องข้อความ File Name ให้ป้อนชื่อไฟล์ที่ต้องการ

ต้องเปิดใช้งานกล่องกาเครื่องหมายเพิ่มในโครงการ

คลิกปุ่มตกลง

เราพิมพ์ข้อความโปรแกรมต่อไปนี้:

ลองพิจารณาแต่ละบรรทัดของโปรแกรมแยกกัน

ที่จุดเริ่มต้นของโปรแกรมมีการเขียนคำสั่งตัวประมวลผลล่วงหน้าตามที่ไฟล์ส่วนหัวเชื่อมต่อกับซอร์สโค้ดของโปรแกรม ... นี่คือไฟล์ที่มีคำอธิบายของตัวดำเนินการ cin และ cout I / O

โปรแกรม C ++ ใด ๆ ประกอบด้วยฟังก์ชั่นซึ่งหนึ่งในนั้นต้องมีชื่อหลักซึ่งบ่งชี้ว่าโปรแกรมเริ่มทำงานจากฟังก์ชั่นนี้ หลังวงเล็บ เนื้อหาของฟังก์ชันเขียนด้วยวงเล็บปีกกา () เช่น คำสั่งเหล่านั้นที่คุณต้องการดำเนินการ

เมื่อเขียนโปรแกรม เทมเพลตใดๆ จะมีลักษณะดังนี้:

#รวม<…>

#รวม<…>

การประกาศตัวแปร

การป้อนข้อมูลเริ่มต้น

การคำนวณผลลัพธ์

ผลลัพธ์;

ในการจัดเก็บข้อมูลเริ่มต้นและผลลัพธ์ คุณต้องจัดสรรพื้นที่เพียงพอใน หน่วยความจำเข้าถึงโดยสุ่ม... Operator 2 ใช้สำหรับสิ่งนี้ ในโปรแกรม เราต้องเก็บค่าสองค่า: อุณหภูมิในเซลเซียสและอุณหภูมิในฟาเรนไฮต์ดังนั้นตัวแปรสองตัวจึงถูกกำหนดในตัวดำเนินการ หนึ่งสำหรับการรักษาอุณหภูมิในฟาเรนไฮต์เรียกว่า fahr อีกอัน (เซลเซียส) - เซล โปรแกรมเมอร์กำหนดชื่อของตัวแปรตามวัตถุประสงค์ ชื่อสามารถประกอบด้วยตัวอักษรละติน ตัวเลข และขีดล่างเท่านั้น และต้องไม่ขึ้นต้นด้วยตัวเลข

เมื่ออธิบายตัวแปรใด ๆ คุณต้องระบุ ประเภทของ.เนื่องจากอุณหภูมิไม่เพียงแต่รับค่าจำนวนเต็มเท่านั้น จึงเลือกประเภทจริงสำหรับตัวแปร ลอย.

ประเภทพื้นฐาน:

int (สั้น, ไม่ได้ลงนาม) - จำนวนเต็ม,

float (ดับเบิ้ล, ดับเบิ้ลยาว) - จริง

ถ่าน - ตัวอักษร

บูล - บูลีน

เพื่อให้ผู้ใช้โปรแกรมทราบว่าจำเป็นต้องป้อนข้อมูลจากแป้นพิมพ์ในช่วงเวลาใดจึงจะใช้พรอมต์สำหรับการป้อนข้อมูล (ตัวดำเนินการ 3) ที่ระบุในตัวดำเนินการจะแสดงบนหน้าจอ ศาลบรรทัดของอักขระและเคอร์เซอร์จะย้ายไปยังบรรทัดถัดไป หากต้องการเลื่อนไปยังบรรทัดถัดไป ให้ใช้ endl.

คำสั่ง 4 ดำเนินการป้อนข้อมูลด้วยแป้นพิมพ์

สำหรับสิ่งนี้จะใช้วัตถุมาตรฐาน ซินและการแยก (อ่าน) การดำเนินการ >> หากต้องการมากกว่าหนึ่งค่า โซ่ของการดำเนินการ >> จะถูกใช้

คำสั่งที่ 5 ประเมินนิพจน์ที่เขียนทางด้านขวาของ การดำเนินงานที่ได้รับมอบหมาย(แสดงด้วย =) และผลลัพธ์ถูกกำหนดให้กับตัวแปร cels นั่นคือมันถูกเก็บไว้ในหน่วยความจำที่จัดสรรให้กับตัวแปรนี้ อันดับแรก ทั้งหมด ค่าคงที่ 5 จะถูกหารด้วย จูบ ค่าคงที่ 9 จากนั้นผลลัพธ์ของการดำเนินการนี้จะถูกคูณด้วยผลลัพธ์ของการลบ 32 ออกจากตัวแปร fahr

เพื่อแสดงผลลัพธ์ในคำสั่ง 6 จะใช้วัตถุ ศาลห่วงโซ่ของห้าองค์ประกอบจะปรากฏขึ้น นี่คือเส้น "ฟาเรนไฮต์:", ค่าของตัวแปร fahr, ไลน์ ", หน่วยเป็นองศาเซลเซียส:", ค่าของตัวแปร เซลและตัวดำเนินการแบ่งบรรทัด ปลาย

คำสั่งสุดท้าย (คำสั่ง 7) ของโปรแกรมนี้มีวัตถุประสงค์เพื่อส่งคืนจากมันและโอนค่าไปยังสภาพแวดล้อมภายนอก

ต่อไปเราจะคอมไพล์โปรแกรม ในการดำเนินการนี้ ให้กดปุ่มบนแถบเครื่องมือหรือคีย์ผสม Ctrl + F7 หน้าต่างแสดงผล (ที่ด้านล่างของหน้าจอ) ควรแสดงข้อความ 0 ข้อผิดพลาด (s), 0 คำเตือน (s) (0 ข้อผิดพลาด, 0 คำเตือน) หากมีข้อผิดพลาดให้ตรวจสอบกับต้นฉบับ

หากต้องการเริ่มโปรแกรม ให้กดปุ่มบนแถบเครื่องมือหรือกดคีย์ผสม Ctrl + F5

เมื่อเริ่มโปรแกรมแทนตัวอักษรรัสเซียเราจะเห็น ??? ซึ่งเกิดจากมาตรฐานการเข้ารหัสอักขระ Cyrillic ที่แตกต่างกัน ระบบปฏิบัติการ MS DOS และ Windows หากต้องการแก้ไข ให้เพิ่มฟังก์ชัน CharToOem ลงในโปรแกรม (ส่วนเพิ่มเติมจะไฮไลต์ด้วยสีแดงเพื่อความชัดเจน)

#รวม

#รวม

ถ่าน * RUS (const ถ่าน * ข้อความ)

CharToOem (ข้อความ buf);

float fahr, เซลส์;

ศาล<

เซล = 5/9 * (fahr - 32);

ศาล<

ศาล<

การทำงาน มาตุภูมิ ()ไม่สามารถใช้งานได้มากกว่าหนึ่งครั้งในห่วงโซ่การดำเนินงาน<< для одного объекта ศาลดังนั้นเราจึงแบ่งมันออกเป็นสองส่วน

อย่างที่คุณเห็น ผลลัพธ์ของการรันโปรแกรมด้วยความเสถียรนั้นเป็นศูนย์! นี่เป็นเพราะวิธีการประเมินนิพจน์ กลับไปที่โอเปอเรเตอร์ 4 กัน ค่าคงที่ 5 และ 9 เป็นประเภทจำนวนเต็ม ดังนั้นผลลัพธ์ของการหารจึงเป็นจำนวนเต็มด้วย โดยธรรมชาติแล้ว ผลลัพธ์ของการคำนวณเพิ่มเติมไม่สามารถเป็นอย่างอื่นได้นอกจากศูนย์ แก้ไขข้อผิดพลาดนี้ได้ง่าย - การเขียนค่าคงที่อย่างน้อยหนึ่งค่าเป็นจำนวนจริงก็เพียงพอแล้ว ตัวอย่างเช่น

เซล = 5./9 * (fahr - 32);