untuk pengendali gelung: cari nombor minimum antara input papan kekunci


Nombor maksimum antara nombor yang diberikan

Apabila mengkaji pengendali bersyarat, kami menyentuh topik mencari nombor maksimum daripada beberapa nombor yang dimasukkan. Dalam masalah "Maksimum empat nombor" kami menggunakan algoritma berikut:
1. tetapkan nilai kepada pembolehubah M kepada yang pertama daripada empat pembolehubah;
2. jika nilai pembolehubah kedua lebih besar daripada nilai dalam pembolehubah M, maka gantikan nilai pembolehubah dengan nilai pembolehubah kedua;
3. jika nilai pembolehubah ketiga lebih besar daripada nilai pembolehubah M, maka gantikan nilai pembolehubah M dengan nilai pembolehubah ketiga;< br /> 4. jika nilai pembolehubah keempat lebih besar daripada nilai dalam pembolehubah M, maka gantikan nilai pembolehubah dengan nilai pembolehubah keempat.

Dapat dilihat bahawa setiap  nombor (mari kita nyatakan dengan X) kita bandingkan dengan pembolehubah M, seperti berikut:
 
pseudokod
input X jika (M < X) maka   M = X
Perkara utama dalam kod ini adalah untuk menentukan nilai awal yang akan dimiliki oleh pembolehubah M.
Biasanya, apabila menyelesaikan masalah mencari maksimum atau minimum, nilai awal pembolehubah M ditetapkan sama dengan nombor pertama.
Oleh itu, kod di atas mesti dilaksanakan 1 kali kurang daripada bilangan nombor (kerana nombor pertama mesti dimasukkan dan disimpan sebagai nilai awal pembolehubah M).
Jika kita mempunyai bilangan nombor yang ditetapkan daripada papan kekunci (contohnya, dalam pembolehubah n), maka kita boleh mengatur kitaran (dari 2 hingga n), menggunakan nombor yang sama untuk menyimpan pembolehubah nombor.

Cuba tulis program itu sendiri.

Maksimum bukan antara semua

Jika kita perlu mencari maksimum (minimum) bukan antara semua nombor yang dimasukkan, tetapi hanya antara nombor yang memenuhi syarat tertentu, maka kita mesti mengambil kira fakta bahawa nombor pertama yang kita ambil sebagai nilai awal maksimum (minimum) tidak akan sentiasa memenuhi keperluan kami.

Sebagai contoh, jika kita mencari nombor negatif maksimum, maka mempunyai set data: \(\{5, -2, 4, 2, -1, -3\}\ ) kita akan mendapat nombor 5 dalam nilai awal maksimum, dan ia adalah positif dan lebih besar daripada mana-mana negatif. Dan oleh itu keadaan X > M akan sentiasa palsu.

Oleh itu, tidak cukup untuk menambah hanya satu cek untuk nombor negatif kepada algoritma dari masalah sebelumnya, ia juga perlu mengambil kira fakta bahawa nombor pertama mungkin tidak memenuhi syarat yang diperlukan (dalam kes ini, menjadi negatif ).

Anda boleh membetulkannya dengan menambah keadaan berikut di dalam gelung:

pseudokod
jika X adalah negatif, maka jika M >= 0 atau M < X, kemudian M=X
Dalam kod yang ditentukan, syarat  M >= 0 membolehkan anda melakukan tindakan  M = X walaupun > pembolehubah pada mulanya mengandungi nilai yang jelas lebih besar daripada yang lain (dalam contoh kami, nilainya adalah sama dengan 5).

Kami juga ambil perhatian bahawa jika julat nombor diketahui, maka nombor minimum (maksimum) daripada julat yang ditentukan boleh diambil sebagai nilai awal maksimum (minimum).