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 M
> 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).