Thuật toán câu 1:
Bài này dùng mảng A
Đầu tiên cho biến MAX = số đầu tiên trong dãy đó cho vòng for từ 2 đến số chữ số(ví dụ: dãy số là:7 2 8 83 6 8
trong dãy có 6 chữ số). Trong vòng for thực hiện câu lệnh if MAX<A[i] then MAX:=A[i]
Sau khi xong thì cứ hiện thị biến MAX là xong
XIN LỖI nhưng mình không làm sơ đồ được
Chương trình:
Var
A:array[1..100] of integer;
i,n,max:integer;
Begin
Write('nhap do dai cua mang la'); readln(n);
For i:=1 to n do
Begin
Write('A[',i,']='); readln(a[i]);
End;
Max:=a[1];
For i:=2 to n do
If max<a[i] then max:=a[i];
Writeln('gia tri lon nhat trong mang la',max);
Readln;
End.
thuật toán câu 2:
Như thuật toán câu 1 vẫn dùng mảng A
Đầu tiên cho vòng for lòng vòng for khác
For i:=1 to n do
For j:=i+1 to n do
Sau khi nhập vòng for j xong thì so sánh nếu a[i]>a[j]
Sau khi so sánh nếu điều kiện đúng thì thực hiện việc đổi giá trị cho 2 biến trên
Và cuối cùng là hiện thị mảng trên
Chương trình:
Var A[1..100] of integer;
n,j,i,sx:integer;
Begin
Write('nhap do dai cua mang'); readln(n);
For i:=1 to n do begin
Write('a[',i,'[=');
Readln(a[i]);
End;
For i:=1 to n do
For j:=i+1 to n do
If a[i]>a[j] then
Begin
SX:=a[i];
A[i]:=a[j];
A[j]:=SX; end;
Writeln('sap xep mang A tang dan');
For i:=1 to n do write(a[i]:4);
Readln;
End.
*Thuật toán
Câu 1:
-Bước 1: nhập dãy số
-Bước 2: ln:=a[1]; i:=1;
-Bước 3: nếu ln<a[i] thì ln←a[i];
-Bước 4: i←i+1;
-Bước 5: Nếu i<=n thì quay lại bước 3
-Bước 6: xuất ln
-Bước 7: Kết thúc
Câu 2:
-Bước 1: nhập dãy số
-Bước 2: i=1
-Bước 3: j=N
Trong khi j>i thực hiện: Nếu a[j]<a[j-1]: hoán đổi a[j] và a[j-1]
j←j-1
-Bước 4: i←i+1
Nếu i>N-1 thì dừng Ngược lại, lặp lại Bước 2
-Bước 5: xuất dãy
-Bước 6: kết thúc
*Sơ đồ hoạt động:
Câu 1: