Input: n, dãy A.
Output: Số số có giá trị dương.
Thuật toán:
Bước 1: i ← 1; d ← 0.
Bước 2:
- Nhập A[i].
- Nếu A[i]>0 thì d ← d+1.
Bước 3: i ← i+1.
Bước 4: Nếu i<=n quay lại bước 2. Ngược lại chuyển đến bước 5.
Bước 5: Thông báo d và kết thúc thuật toán.
***Tham khảo thêm:
Hoạt động của thuật toán:
Bước 1: Gán i = 1; d = 0.
Bước 2:
- Nhập A[1] đến A[n].
- Sau mỗi lần nhập, chương trình sẽ kiểm tra: nếu số vừa nhập lớp hơn 0 thì giá trị d tăng thêm 1 đơn vị. (Đếm giá trị).
Bước 3: Sau mỗi vòng lặp, biến đếm tăng thêm 1 đơn vị.
Bước 4: Nếu i ≤ n (điều kiện đúng) thì quay lại thực hiện tiếp câu lệnh. Ngược lại (điều kiện sai) thì chuyển tới bước tiếp theo.
Bước 5: Thông báo số số có giá trị dương có trong dãy và kết thúc thuật toán.
Cách viết chương trình:
- Sử dụng mảng 1 chiều.
+ Cú pháp: var <tên biến mảng>: array[<chỉ số đầu>..<chỉ số cuối>] of <kiểu dữ liệu>;
+ Tên biến mảng tự đặt (tuân theo quy tắc đặt tên).
+ Chỉ số đầu và chỉ số cuối là kiểu số nguyên. Chỉ số đầu là giá trị 1, chỉ số cuối có thể là 100; 500; 1000;....
+ Trong bài, sử dụng kiểu dữ liệu là integer.
- Sử dụng lệnh lặp với số lần biết trước (có thể dùng lệnh lặp chưa biết trước).
+ Cú pháp: for <biến đếm>:=<giá trị đầu> to <giá trị cuối> do <câu lệnh>;
+ Giá trị đầu và giá trị cuối là kiểu số nguyên. Giá trị đầu là giá trị 1, giá trị cuối là n.
- Câu lệnh kiểm tra: if <tên mảng>[<biến đếm>]>0 then <giá trị đếm>:=<giá trị đếm>+1;
Viết chương trình:
program phuont;
uses crt;
var A: array[1..500] of integer;
i, n, d: integer;
begin
clrscr;
write('Nhap n = '); readln(n);
d:=0;
for i:=1 to n do
begin
write('A[', i, '] = '); readln(A[i]);
if A[i]>0 then d:=d+1;
end;
write('Co ', d, ' so co gia tri duong');
readln
end.