cho toán tử vòng lặp: tìm kiếm số lượng tối thiểu trong số các đầu vào bàn phím


Số lớn nhất trong các số đã cho

Khi nghiên cứu toán tử điều kiện, chúng tôi đã đề cập đến chủ đề tìm số lớn nhất từ ​​​​một số số đã nhập. Trong bài toán "Có nhiều nhất bốn số" chúng tôi đã sử dụng thuật toán sau:
1. gán giá trị cho biến M cho biến đầu tiên trong bốn biến;
2. nếu giá trị của biến thứ hai lớn hơn giá trị trong biến M, thì hãy thay thế giá trị của biến bằng giá trị của biến thứ hai;
3. nếu giá trị của biến thứ ba lớn hơn giá trị trong biến M, thì hãy thay thế giá trị của biến M bằng giá trị của biến thứ ba;< br /> 4. nếu giá trị của biến thứ tư lớn hơn giá trị trong biến M, thì hãy thay thế giá trị của biến bằng giá trị của biến thứ tư.

Có thể thấy rằng mỗi  số (hãy biểu thị nó bằng X) mà chúng tôi đã so sánh với biến M, như sau:
 
mã giả
đầu vào X nếu (M < X) thì   M = X
Công việc chính trong mã này là xác định giá trị ban đầu mà biến M sẽ có.
Thông thường, khi giải bài toán tìm giá trị lớn nhất hoặc giá trị nhỏ nhất, giá trị ban đầu của biến M được gán bằng số đầu tiên.
Như vậy, đoạn mã trên phải được thực thi ít hơn 1 lần so với số lượng các con số (vì con số đầu tiên phải được nhập và lưu làm giá trị ban đầu của biến M).
Nếu chúng ta có bộ số từ bàn phím (ví dụ: trong biến n), thì chúng ta có thể tổ chức một chu kỳ (từ 2 đến n), sử dụng cùng một số để lưu biến số.

Cố gắng tự viết chương trình.

Tối đa không nằm trong số tất cả

Nếu chúng ta cần tìm giá trị lớn nhất (tối thiểu) không phải trong số tất cả các số đã nhập mà chỉ trong số các số thỏa mãn một điều kiện nhất định, thì chúng ta phải tính đến thực tế là số đầu tiên mà chúng ta lấy làm giá trị ban đầu của giá trị lớn nhất (tối thiểu) sẽ không phải lúc nào cũng đáp ứng yêu cầu của chúng tôi.

Ví dụ: nếu chúng ta đang tìm số âm lớn nhất, thì có tập dữ liệu: \(\{5, -2, 4, 2, -1, -3\}\ ) chúng ta sẽ nhận được số 5 trong giá trị ban đầu của giá trị lớn nhất và nó là số dương và lớn hơn bất kỳ số âm nào. Và do đó, điều kiện X > M sẽ luôn sai.

Do đó, chỉ thêm một lần kiểm tra số âm vào thuật toán từ bài toán trước là chưa đủ, cũng cần tính đến thực tế là số đầu tiên có thể không thỏa mãn điều kiện bắt buộc (trong trường hợp này là số âm). ).

Bạn có thể khắc phục điều này bằng cách thêm điều kiện sau vào bên trong vòng lặp:

mã giả
nếu X âm thì nếu M >= 0 hoặc M < X, sau đó M=X
Trong mã đã chỉ định, điều kiện  M >= 0 cho phép bạn thực hiện hành động  M = X ngay cả khi biến ban đầu chứa một giá trị rõ ràng là lớn hơn phần còn lại (trong ví dụ của chúng ta, giá trị này bằng 5).

Chúng tôi cũng lưu ý rằng nếu phạm vi số được biết, thì số tối thiểu (tối đa) từ phạm vi đã chỉ định có thể được lấy làm giá trị ban đầu của giá trị tối đa (tối thiểu).