Viết chương trình nhập N phần tử các số nguyên A1, A2,…,AN. Đếm các phần từ thỏa điều kiện (36 < Ai < 99). Yêu cầu: Phân tích bài toán thành các thao tác nhỏ. Viết chương trình theo hướng lập trình cấu trúc (chương trình con)
2 câu trả lời
Phân tích bài toán:
input: N phần tử các số nguyên A1,A2,...AN
output: Đếm các phần từ thỏa điều kiện (36<Ai< 99)
b1: nhập n
b2: nhập mảng
b3: dùng for..do duyệt từng phần tử xem có thỏa mãn điều kiện hay không
b4: xuất kết quả
chương trình:
uses crt;
var a: array[1..100] of integer;
n,i,d: integer;
procedure nhap_dem;
var a: array[1..100] of integer;
i,n,d: integer;
begin
write ('nhap n: '); readln (n);
for i:=1 to n do
begin
write ('nhap phan tu thu ',i,': '); readln (a[i]);
if (a[i]>36) and (a[i]<99) then d:=d+1;
end;
end;
begin
clrscr;
nhap_dem;
writeln ('co ',d,' phan tu thoa man dieu kien');
readln;
end.
Xác định bài toán:
Input: Dãy A[1..n]
Output: Số lượng phần tử >36 và <99
Mô tả thuật toán:
Bước 1: Nhập dãy A[1..n]
Bước 2: cnt <- 0
Bước 3: i <- 1 to n
Nếu A[i] > 36 và A[i] < 99 thì cnt <- cnt + 1
Bước 4: Xuất cnt và kết thúc chương trình
Chương trình:
Program Mang;
Uses crt;
Var A: array[1..1000] of longint;
n: longint;
Procedure Nhap;
Var i: longint;
Begin
Write('Nhap n: '); Readln(n);
For i:=1 to n do
Begin
Write('A[',i,'] = ');
Readln(A[i]);
End;
End;
Procedure xuli;
Var cnt, i: longint;
Begin
cnt := 0;
For i:=1 to n do
If (A[i] > 36) and (A[i] < 99) then inc(cnt);
Write(cnt);
End;
Begin
Clrscr;
Nhap;
Xuli;
End.