Study Lập Trình

Học lập trình dành cho người mới bắt đầu!

ads

Bài 8. Tìm phần tử lớn nhất của dãy số nguyên

1. Bài toán

  Yêu cầu: Tìm phần tử lớn nhất của dãy số nguyên.
  • Input: Số nguyên dương \(N\) (Không quá 250) và dãy \(N\) số nguyên dương \(A_{1}, A_{2}, ..., A_{n}\). Mỗi số đều không vượt quá 500.
  • Output: Chỉ số và giá trị của phần tử lớn nhất trong dãy số đã cho.

2. Giải thuật:


Bước 1. Nhập thông tin:
  • Bước 1.1. Nhập \(N\);
  • Bước 1.2. Nhập dãy số đã cho \(A_{1}, A_{2}, ..., A_{n}\)
Bước 2. Xử lý:
  • Bước 2.1. Gán \(Max = A_1\) và i = 2
  • Bước 2.2. Nếu \(i > N\) thì đưa ra giá trị Max rồi kết thúc
  • Bước 2.3. Ngược lại (Tức là \( i \leqslant N\)
  • Bước 2.3.1. Nếu \(A_i > Max\) thì \(Max = A_i\)
  • Bước 2.3.2. Nếu \(i = i + 1\) rồi quay lại bước 3
Bước 3. In ra màn hình giá trị Max và chỉ số max.

3. Code Pascal:

Program Tim_Max;
uses crt;
const Nmax = 250;
var a: array[1..Nmax] of integer;
        N, i, Max, csmax: integer;
Begin
        clrscr;
        write('Nhap so luong phan tu cua day: ');
        readln(N);
        for i:=1 to N do
                begin
                        write('Phan tu thu ', i,': ');
                        readln(a[i]);
                end;
        Max:= A[1];
        csmax:= 1;
        for i:=2 to N do
                if a[i] > max then
                Begin
                        Max:= a[i];
                        csmax:=i;
                End;
        writeln('Gia tri cua phan tu Max: ', Max);
        write('Vi tri cua phan tu max: ',csmax);
        readln;
End.

4. Giải thích code

Dong code Ý nghĩa
Program Tim_Max; Đặt tên chương trình Tim_Max
uses crt; Khai báo các hàm thư viện
const Nmax = 250; Khai báo hằng số cho giá trị biến Nmax = 250
Var N, i, Max, csmax: Integer Khai báo biến N(Số phần tử của dãy), i(biến chạy),Max(giá trị của phần tử), csmax(vị trí của phần tử)
clrscr; Xóa màn hình khi chạy chương trình
write('Nhap so luong phan tu cua day: '); In ra màn hình dòng chữ Nhap so luong phan tu cua day:
readln(N); Nhập từ bàn phím giá trị gán vào biến N
for i:=1 to N do
begin
  write('Phan tu thu ', i,': ');
  readln(a[i]);
end;
Cho i chạy từ 1 đến N làm công việc in các phần tử của dãy ra màn hình.
Max:= A[1]; Gán A[1] là max
csmax:= 1; Gán vị trí max là 1
for i:=2 to N do
if a[i] > max then
Begin
  Max:= a[i];
  csmax:=i;
End;
Cho i từ 2 đến N thực hiện công việc: Nếu phần tử \(a[i] > max\) thì gán \(max = a[i]\) và gán vị trí i làm \(csmax\)
writeln('Gia tri cua phan tu Max: ', \(Max\)); In ra màn hình câu "Gia tri cua phan tu \(Max\):" và in giá trị \(Max\) ra màn hình
write('Vi tri cua phan tu max: ',\(csmax\)); In ra màn hình câu "Vi tri cua phan tu max:" và in giá trị \(csmax\) ra màn hình
Readln; Dừng màn hình cho các bạn xem kết quả.

5. Kết Quả Pascal

Kết luận:
    ▪ Bài này chúng ta sử dụng mảng 1 chiều để xử lý dãy số.
    ▪ Kết hợp vòng lặp, câu điện kiện if - else. Vì thế chúng ta cần hiểu rõ cách sử dụng của vòng lặp và câu điều kiện để có thể làm tốt bài tập này.

Không có nhận xét nào:

Đăng nhận xét