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. 

Câu hỏi trong lớp Xem thêm