bt 3: Cho dãy A gồm N số nguyên: a1, …, aN. Hãy cho biết có bao nhiêu số hạng trong dãy có giá trị bằng số nguyên k.
2 câu trả lời
Thuật toán:
B1: Nhập N và dãy số nguyên a, a2, ... an và số k
B2: dem←0; i←1;
B3: Nếu i > N thì in dem ra màn hình và kết thúc.
B4: Nếu a[i]=k thì dem←dem+1;
B5: i←i+1; Quay lại B3
Chương trình:
program bai_giai;
uses crt;
var a:array[1..10000] of integer;
n,i,k,dem:integer;
begin
clrscr;
write('Nhap N: '); readln(n);
for i:=1 to n do
begin
write('Nhap a[',i,'] = '); readln(a[i]);
end;
write('Nhap k: '); readln(k);
dem:=0;
for i:=1 to n do
if a[i]=k then dem:=dem+1;
write(dem);
readln;
end.
Cho N và dãy số a1….aN hãy cho biết có bao nhiêu số hạng trong dãy có giá trị bằng 0.
Xác định bài toán
– Input: Qãy A gồm N số nguyên a1, a2.. aN ;
– Output: Số số hạng trong dãy A có giá trị bằng 0.
Ý tưởng: Tìm kiếm tuần tự được thực hiện một cách tự nhiên. Ta dùng biến đếm k để đếm số số hạng trong dãy A có giá trị bằng 0. Bắt đầu từ i = 7 và mỗi lần tăng i lên 1, ta lần lượt so sánh ai = 0?, nếu ai = 0 thì tăng k lên 1, tiếp tục quá trình cho đến khi i > N thì đưa ra kết quả k và kết thúc.
– Thuật toán
Cách liệt kê
Bước 1. Nhập N, các số hạng a1, a2.. aN
Bước 2. i<- k, k<- 0,
Bước 3. Nếu ai= 0 thì k <- k+1;
Bước 4. i <- i+1
Bước 5: Nếu i > N thì đưa ra giá trị k, rồi kết thúc;
Bước 6. Quay lại bước 3.
