pascal1-sp2~lt

Màu nền
Font chữ
Font size
Chiều cao dòng

Bài tập 2.1: Viết chương trình nhập vào độ dài hai cạnh của tam giác và góc giữa hai cạnh đó, sau đó tính và in ra màn hình diện tích của tam giác.

Program Tinh_dien_tich_tam_giac;

Var a,b,goc,dientich: Real;

Begin

Write('Nhap vao do dai canh thu nhat: '); Readln(a);

Write('Nhap vao do dai canh thu hai: '); Readln(b);

Write('Nhap vao goc giua hai canh: '); Readln(goc);

Dientich:=a*b*sin(goc)/2;

Writeln('Dien tich cua tam giac la: ',Dientich:0:2);

Readln;

End.

Bài tập 2.2: Viết chương trình tính , x>0.

Program Tinh_can_bac_n_cua_x;

Var x,S: Real;

n: Word;

Begin

Write('Nhap vao n= '); Readln(n);

Write('Nhap vao x= '); Readln(x);

S:=EXP(1/n*LN(x));

Writeln('S = ',S:0:2);

Readln;

End.

Bài tập 2.3: Viết chương trình nhập vào 2 số a, b. Sau đó hoán đổi giá trị của 2 số đó:

Program Swap;

Var a,b,tam: Integer;

Begin

Write('Nhap vao a= '); Readln(a);

Write('Nhap vao b= '); Readln(b);

tam:=a; {tam lấy giá trị của a}

a:=b; {a lấy giá trị của b}

b:=tam; {b lấy lại giá trị của tam}

Writeln('a = ',a,' b = ',b);

Readln;

End.

cách 2

b/ Không được phép dùng biến trung gian.

Program Swap;

Var a,b: Integer;

Begin

Write('Nhap vao a= '); Readln(a);

Write('Nhap vao b= '); Readln(b);

a:=a+b; {a lấy tổng giá trị của a+b}

b:=a-b; {b lấy giá trị của a}

a:=a-b; {a lấy lại giá trị của b}

Writeln('a = ',a,' b = ',b);

Readln;

End.

Bài tập 3.1: Viết chương trình nhập vào một số nguyên và kiểm tra xem số vừa nhập là số chẵn hay số lẻ.

Uses crt;

Var x:integer;

Begin

Write('Nhap vao mot so nguyen : '); Readln(x);

If x MOD 2=0 Then

Writeln('So vua nhap vao la so chan')

Else

Writeln('So vua nhap vao la so le');

Readln;

End.

Bài tập 3.2: Viết chương trình giải phương trình bậc nhất ax+b=0

Uses Crt;

Var a,b,x : real;

Begin

Write('a = '); Readln(a);

Write('b = '); Readln(b);

If a = 0 Then { Nếu a bằng 0 }

If b = 0 Then { Trường hợp a = 0 và b = 0 }

Writeln('Phuong trinh co vo so nghiem')

Else { Trường hợp a=0 và b  0 }

Writeln('Phuong trinh vo nghiem')

Else { Trường hợp a  0 }

Begin

x:= -b/a;

Writeln('Phuong trinh co nghiem la :',x:0:2);

End;

Readln;

End.

Bài tập 3.3: Viết chương trình nhập vào tuổi của một người và cho biết người đó là thiếu niên, thanh niên, trung niên hay lão niên. Biết rằng: nếu tuổi nhỏ hơn 18 là thiếu niên, từ 18 đến 39 là thanh niên, từ 40 đến 60 là trung niên và lớn hơn 60 là lão niên.

Uses crt;

Var tuoi:Byte;

Begin

Write(Nhap vao tuoi cua mot nguoi:'); Readln(tuoi);

Case tuoi Of

1..17: Writeln(Nguoi nay la thieu nien');

18..39: Writeln(Nguoi nay la thanh nien');

40..60: Writeln(Nguoi nay la trung nien');

Else Writeln(Nguoi nay la lao nien');

End;

Readln;

End.

Bài tập 3.4: Viết chương trình tính tổng S = 1+2+...+N.

Cách 1: Dùng vòng lặp FOR.

Program TinhTong;

Uses crt;

Var N,i,S:integer;

Begin

Clrscr;

Write('Nhap vao gia tri cua N :'); Readln(N);

S:=0;

For i:=1 to N do S:=S+i;

Writeln('Ket qua la :',S);

Readln;

End.

Cách 2: Dùng vòng lặp REPEAT.

Program TinhTong;

Uses crt;

Var N,i,S:integer;

Begin

Clrscr;

Write('Nhap vao gia tri cua N :'); Readln(N);

S:=0; i:=1;

Repeat

S:=S+i;

i:=i+1;

Until i>N;

Writeln('Ket qua la :',S);

Readln;

End.

Cách 3: Dùng vòng lặp WHILE.

Program TinhTong;

Uses crt;

Var N,i,S:integer;

Begin

Clrscr;

Write('Nhap vao gia tri cua N :'); Readln(N);

S:=0; i:=1;

While i<=N Do

Begin

S:=S+i;

i:=i+1;

End;

Writeln('Ket qua la :',S);

Readln;

End.

Bài tập 3.5: Viết chương trình nhập vào N số nguyên từ bàn phím. Hãy tính và in ra màn hình tổng của các số vừa được nhập vào.

Program Tong;

Uses crt;

Var N,S,i,X : Integer;

Begin

Clrscr; S:=0;

For i:=1 To n Do

Begin

Write('Nhap so nguyen X= '); Readln(X);

S:=S+X;

End;

Writeln('Tong cac so duoc nhap vao la: ',S);

Readln;

End.

Bài tập 3.6: Viết chương trình nhập vào các số nguyên cho đến khi nào gặp số 0 thì kết thúc. Hãy đếm xem có bao nhiêu số chẵn vừa được nhập vào.

Program Nhapso;

Uses crt;

Var N,dem : Integer;

Begin

Clrscr; dem:=0;

Repeat

Write('Nhap vao mot so nguyen N= '); Readln(N);

If N MOD 2 = 0 Then dem:=dem+1;

Until N=0;

Writeln('Cac so chan duoc nhap vao la: ',dem);

Readln;

End.

Bài tập 3.7: Viết chương trình tính số Pi với độ chính xác Epsilon, biết:

Pi/4 = 1-1/3+1/5-1/7+...

Uses Crt;

Const Epsilon=1E-4;

Var Pi,t:real;

i,s:Integer;

Begin

Pi:=4; i:=1; s:=-1;

t:=4/(2*i+1);

While t>Epsilon Do

Begin

Pi:=Pi+s*t;

s:=-s; i:=i+1;

t:=4/(2*i+1);

End;

Writeln('So Pi = ',Pi:0:4);

Readln;

End.

Bài tập 3.8: Viết chương trình nhập vào số nguyên N. In ra màn hình tất cả các ước số của N.

Uses Crt;

Var N,i : Integer;

Begin

Clrscr;

Write('Nhap so nguyen N= '); Readln(N);

For i:=1 To N Do

If N MOD i=0 Then Write(i:5);

Readln;

End.

Bài tập 3.9: Viết chương trình tìm USCLN và BSCNN của 2 số a, b được nhập vào từ bàn phím.

Uses crt;

Var a,b,aa,bb:integer;

Begin

Write('Nhap a : '); Readln(a);

Write('Nhap b : '); Readln(b);

aa:=a; bb:=b;

While aa<>bb Do

Begin

If aa>bb Then aa:=aa-bb Else bb:=bb-aa;

End;

Writeln('USCLN= ',aa);

Writeln('BSCNN= ',a*b DIV aa);

Readln;

End.

Bài tập 3.10: Viết chương trình tìm các số có 3 chữ số sao cho: = a3 + b3 + c3.

Uses crt;

Var a,b,c : Word;

Begin

For a:=1 To 9 Do

For b:=0 To 9 Do

For c:=0 To 9 Do

If (100*a + 10*b + c)=(a*a*a + b*b*b + c*c*c) Then Writeln(a,b,c);

Readln;

End.

Bài tập 3.11: Viết chương trình nhập vào số tự nhiên N rồi thông báo lên màn hình số đó có phải là số nguyên tố hay không.

Uses crt;

Var N,i,d : Word;

Begin

If N<2 Then Writeln(N,' khong phai la so nguyen to')

Else

Begin

{Đếm số ước số}

d:=0;

For i:=2 To N div 2 Do

If N MOD i=0 Then d:=d+1;

{Kiểm tra}

If d=0 Then Writeln(N,' la so nguyen to')

Else Writeln(N,' khong phai la so nguyen to');

End;

Readln;

End.

Ví dụ 1: Viết CTC để tính n! = 1.2...n.

Function GiaiThua(n:Word):Word;

Var P, i:Word;

Begin

P:=1;

For i:=1 To n Do P:=P*i;

GiaiThua:=P;

End;

Ví dụ: Liệt kê các dãy nhị phân có độ dài n.

Program DayNhiPhan;

Var b:Array[1..20] Of 0..1; {Dãy nhị phân có độ dài tối đa là 20}

n:Byte;

Procedure InKetQua;

Var i:Byte;

Begin

For i:=1 To n Do Write(b[i]);

Writeln;

End;

Procedure THU(k:Byte);

Var j:Byte;

Begin

For j:=0 To 1 Do {Tập giá trị của dãy nhị phân}

Begin

b[k]:= j;

If k=n Then InKetQua

Else THU(k+1); {Quay lui}

End;

End;

Begin

Write('n = '); Readln(n);

THU(1);

Readln;

End.

Bài tập 4.1: Viết hàm tìm Max của 2 số thực x,y.

.

Var a,b:Real;

Function Max(x,y:Real):Real;

Begin

If x>y Then Max:=x Else Max:=y;

End;

Begin

Write('Nhap a='); Readln(a);

Write('Nhap b='); Readln(b);

Writeln('So lon nhat trong 2 so la: ', Max(a,b));

Readln;

End.

Bài tập 4.2: Viết hàm LOWCASE( c:char):char; để đổi chữ cái hoa c thành chữ thường.

Uses crt;

Var ch:Char;

Function LOWCASE(c:Char):Char;

Begin

If c IN ['A'..'Z'] Then LOWCASE:=CHR(ORD(c)+32)

Else LOWCASE:=c;

End;

Begin

Write('Nhap ký tu ch='); Readln(ch);

Writeln('Ky tu hoa la: ', LOWCASE(ch));

Readln;

End.

Bài tập 4.3: Viết thủ tục để hoán đổi hai gía trị x,y cho nhau.

Var a,b:Real;

Function Swap(Var x,y:Real);

Var Tam:Real;

Begin

Tam:=x; x:=y; y:=Tam;

End;

Begin

Write('Nhap a='); Readln(a);

Write('Nhap b='); Readln(b);

Swap(a,b);

Writeln('Cac so sau khi hoan doi: a=', a:0:2,' b=',b:0:2);

Readln;

End.

Bài tập 4.4: Viết hàm XMU(x:Real;n:Byte):Real; để tính giá trị xn.

Var x:Real;

n:Byte;

Function XMU(x:Real;n:Byte):Real;

Var i:Byte; S:Rea;

Begin

S:=1;

For i:=1 To n Do S:=S*x;

XMU:=S;

End;

Begin

Write('Nhap x='); Readln(x);

Write('Nhap n='); Readln(n);

Writeln('x mu n = ', XMU(x,n):0:2);

Readln;

End.

Bài tập 4.5: Viết thủ tục KHUNG(x1,y1,x2,y2:Integer); để vẽ một khung hình chữ nhật có đỉnh trên bên trái là (x1,y1) và đỉnh dưới bên phải là (x2,y2).

Uses crt;

Procedure Khung(x1,y1,x2,y2:Integer);

Var i,j:Integer;

Begin

Gotoxy(x1,y1); Write(#218); {Vẽ }

Gotoxy(x1,y2); Write(#192); {Vẽ }

{Vẽ 2 viền ngang của khung}

For i:=x1+1 To x2-1 do

Begin

Gotoxy(i,y1); Write(#196);

Gotoxy(i,y2); Write(#196);

End;

Gotoxy(x2,y1); Write(#191); {Vẽ }

Gotoxy(x2,y2); Write(#217); {Vẽ }

{Vẽ 2 viền dọc của khung}

For j:=y1+1 To y2-1 do

Begin

Gotoxy(x1,j); Write(#179);

Gotoxy(x2,j); Write(#179);

End;

End;

Begin

Clrscr;

Khung(10,5,40,20);

Readln;

End.

Bài tập 4.6: Viết thủ tục PHANTICH(n:Integer); để phân tích số nguyên n ra thừa số nguyên tố.

Uses crt;

Var n:Integer;

Procedure PHANTICH(n:Integer);

Var i:Integer;

Begin

i:=2;

While n<>1 Do

Begin

While n MOD i=0 Do

Begin

Writeln(n:5,'|',i:2);

n:=n Div i;

End;

i:=i+1;

End;

Writeln(n:5,'|');

End;

Begin

Write('Nhap n='); Readln(n);

PHANTICH(n);

Readln;

End.

Bài tập 5.1: Viết chương trình tìm giá trị lớn nhất của một mảng chứa các số nguyên gồm N phần tử.

Uses Crt;

Type Mang = ARRAY[1..50] Of Integer;

Var A:Mang;

N,i,Max:Integer;

Begin

{Nhập mảng}

Write('Nhap N='); Readln(N);

For i:=1 To N Do

Begin

Write('A[',i,']='); Readln(A[i]);

End;

{Tìm phần tử lớn nhất}

Max:=A[1];

For i:=2 To N Do

If Max<A[i] Then Max:=A[i];

{In kết quả ra màn hình}

Writeln('Phan tu lon nhat cua mang: ', Max);

Readln;

End.

Bài tập 5.2: Viết chương trình tính tổng bình phương của các số âm trong một mảng gồm N phần tử.

Uses Crt;

Type Mang = ARRAY[1..50] Of Integer;

Var A:Mang;

N,i,S:Integer;

Begin

{Nhập mảng}

Write('Nhap N='); Readln(N);

For i:=1 To N Do

Begin

Write('A[',i,']='); Readln(A[i]);

End;

{Tính tổng}

S:=0;

For i:=1 To N Do

If A[i]<0 Then S:=S+A[i]*A[i];

{In kết quả ra màn hình}

Writeln('S= ', S);

Readln;

End.

Bài tập 5.3: Viết chương trình nhập vào một mảng gồm N số nguyên. Sắp xếp lại mảng theo thứ tự tăng dần và in kết quả ra màn hình.

Uses Crt;

Type Mang = ARRAY[1..50] Of Integer;

Var A:Mang;

N,i,j,Tam:Integer;

Begin

{Nhập mảng}

Write('Nhap N='); Readln(N);

For i:=1 To N Do

Begin

Write('A[',i,']='); Readln(A[i]);

End;

{Sắp xếp}

For i:=1 To N-1 Do

For j:=i+1 To N Do

If A[i]>A[j] Then

Begin

Tam:=A[i]; A[i]:=A[j]; A[j]:=Tam;

End;

{In kết quả ra màn hình}

Writeln('Ket qua sau khi sap xep:');

For i:=1 To N Do Write(A[i]:5);

Readln;

End.

Bài tập 5.4: Viết chương trình nhập vào một mảng A gồm N số nguyên và nhập thêm vào một số nguyên X. Hãy kiểm tra xem phần tử X có trong mảng A hay không?

Uses Crt;

Type Mang = ARRAY[1..50] Of Integer;

Var A:Mang;

N,i,x:Integer;

Function TimKiem(x, N: Integer; A:Mang):Integer;

Var i:Integer;

Begin

I:=1;

While (I <= N) and (X<>A[I]) do I:=I+1;

If I <= N Then Timkiem:=I Else Timkiem:=0;

End;

Begin

{Nhập mảng}

Write('Nhap N='); Readln(N);

For i:=1 To N Do

Begin

Write('A[',i,']='); Readln(A[i]);

End;

Write('Nhap X='); Readln(x);

{Kết quả tìm kiếm}

If TimKiem(X,N,A)<>0 Then

Writeln('Vi tri cua X trong mang la:', TimKiem(X,N,A))

Else Writeln('X khong co trong mang.');

Readln;

End.

Bài tập 5.5: Giả sử mảng A đã được sắp xếp theo thứ tự tăng dần. Viết hàm để kiểm tra xem phần tử X có trong mảng A hay không?

Function TimKiemNhiPhan(X, N: Integer; A: Mang):Integer;

Var dau,cuoi,giua:Integer;

Found:Boolean;

Begin

dau:=1; {điểm mút trái của khoảng tìm kiếm}

cuoi:=N; {điểm mút phải của khoảng tìm kiếm}

Found:=False; {chưa tìm thấy}

While (dau <=cuoi) and (Not Found) Do

Begin

giua:=(dau + cuoi) Div 2;

If X = A[giua] Then Found:=True {đã tìm thấy}

Else

If X > A[giua] Then dau:=giua+1

Else cuoi:=giua-1;

End;

If Found Then TimKiemNhiPhan:= giua Else TimKiemNhiPhan:=0;

End;

Bài tập 5.6: Viết chương trình tìm ma trận chuyển vị của ma trận A.

Uses Crt;

Type Mang = ARRAY[1..10,1..10] Of Integer;

Var A,B:Mang;

m,n,i,j:Integer;

Begin

{Nhập ma trận}

Write('Nhap số dòng m='); Readln(m);

Write('Nhap số cột n='); Readln(n);

For i:=1 To m Do

For j:=1 To n Do

Begin

Write('A[',i,j,']='); Readln(A[i,j]);

End;

{Tìm ma trận chuyển vị}

For i:=1 To m Do

For j:=1 To n Do B[i,j]:=A[j,i];

{In ma trận chuyển vị ra màn hình}

For i:=1 To m Do

Begin

For j:=1 To n Do Write(B[i,j]:5);

Writeln;

End;

Readln;

End.

Bài tập 5.7: Cho một mảng 2 chiều A cấp mxn gồm các số nguyên và một số nguyên x. Viết chương trình thực hiện các công việc sau:

a/ Đếm số lần xuất hiện của x trong A và vị trí của chúng.

b/ Tính tổng các phần tử lớn nhất của mỗi dòng.

Uses Crt;

Type Mang = ARRAY[1..10,1..10] Of Integer;

Var A:Mang;

m,n,i,j,x,dem,S,max:Integer;

Begin

{Nhập ma trận}

Write('Nhap số dòng m='); Readln(m);

Write('Nhap số cột n='); Readln(n);

For i:=1 To m Do

For j:=1 To n Do

Begin

Write('A[',i,j,']='); Readln(A[i,j]);

End;

{Nhập x}

Write('Nhap x='); Readln(x);

{Đếm số lãn xuất hiện của x và vị trí của x}

dem:=0;

Writeln('Vi tri cua x trong mang A: ');

For i:=1 To m Do

For j:=1 To n Do

If x=A[i,j] Then

Begin

Write(i,j,' ; ');

dem:=dem+1;

End;

Writeln('So lan xuat hien cua x trong mang A la: ',dem);

{Tính tổng các phần tử lớn nhất của mỗi dòng}

S:=0;

For i:=1 To m Do {duyệt qua từng dòng}

Begin

{Tìm phần tử lớn nhất của dòng thứ i}

Max:=A[i,1];

For j:=2 To n Do {duyệt từng phần tử của dòng thứ i}

If max<A[i,j] Then max:=A[i,j];

{Cộng max vào biến S}

S:=S+max;

End;

Writeln('Tong cac phan tu lon nhat cua moi dong la: ',S);

Readln;

End.

Bài tập 5.8: Giải phương trình bằng phương pháp chia nhị phân.

Uses Crt;

Type HESO=Array[0..20] Of Real;

Var a:HESO;

n:Byte;

Min,Max,epsilon:Real;

Procedure NhapDaThuc;

Var i:Byte;

Begin

Write('Bac cua da thuc: n= '); Readln(n);

Writeln('Nhap cac he so cua da thuc:');

For i:=0 To n Do

Begin

Write('a[',i,']='); Readln(a[i]);

End;

Writeln('Nhap doan tim nghiem:[a,b]');

Write('a= '); Readln(Min);

Write('b= '); Readln(Max);

Write('Nhap sai so cua phuong trinh: '); Readln(epsilon);

End;

{Tính giá trị của đa thức}

Function f(x:Real):Real;

Var S,tam:Real;

i:Byte;

Begin

S:=a[0]; tam:=1;

For i:=1 To n Do

Begin

tam:=tam*x;

S:=S+a[i]*tam;

End;

f:=S;

End;

Procedure TimNghiem(Min,Max:real);

Var m:Real;

Begin

If f(Min)*f(Max)>0 Then Writeln('Phuong trinh vo nghiem.')

Else If abs(f(Min))<epsilon Then Writeln('Nghiem la x=',min:0:2)

Else If abs(f(Max))<epsilon Then Writeln('Nghiem la x=',max:0:2)

Else

Begin

m:=(Min+Max)/2;

If abs(f(m))<=epsilon Then Writeln('Nghiem la x=',m:0:2)

Else If f(Min)*f(m)<0 Then TimNghiem(Min,m)

Else TimNghiem(m,Max);

End;

End;

Begin

NhapDaThuc;

TimNghiem(Min,Max);

Readln;

End.

Bài tập 5.9: Viết chương trình nhập vào số tự nhiên N (N lẻ), sau đó điền các số từ 1 đến n2 vào trong một bảng vuông sao cho tổng các hàng ngang, hàng dọc và 2 đường chéo đều bằng nhau (bảng này được gọi là Ma phương).

Uses Crt;

Var A:Array[1..20,1..20] Of Word;

n,i,j,k:Word;

Begin

Write('Nhap N= '); Readln(n);

Clrscr;

{Định vị ô xuất phát}

i:=n DIV 2 + 1;

j:=n DIV 2 + 2;

{Điền các số k từ 1 đến n*n}

For k:=1 To n*n Do

Begin

A[i,j]:=k;

If k MOD n=0 Then j:=j+2

Else Begin

{Đi theo hướng đông bắc}

j:=j+1; i:=i-1;

End;

If j>n Then j:=j MOD n;

If i=0 Then i:=n;

End;

{In kết quả ra màn hình}

For i:=1 To n Do

Begin

For j:=1 To n Do write(a[i,j]:4);

Writeln;

End;

Readln;

End.

Bài tập 5.10: Viết chương trình nhập vào 2 mảng số nguyên A, B đại diện cho 2 tập hợp (không thể có 2 phần tử trùng nhau trong một tập hợp). Trong quá trình nhập, phải kiểm tra: nếu phần tử vừa nhập vào đã có trong mảng thì không bổ sung vào mảng. In ra màn hình các phần tử là giao của 2 tập hợp A, B.

Uses Crt;

Type Mang=ARRAY[1..50] Of Integer;

Var A,B:Mang;

n,m:Byte;

Function KiemTra(x:Integer; n:Byte; A:Mang):Boolean;

Var i:Byte; Found:Boolean;

Begin

Found:=False;

i:=1;

While (i<=n) AND (not Found) Do

If x=A[i] Then Found:=True Else i:=i+1;

KiemTra:=Found;

End;

Procedure NhapMang(Var n:Byte; Var A:Mang);

Var ch:Char;

x:Integer;

Begin

n:=0;

Repeat

Write('x='); Readln(x);

If not KiemTra(x,n,A) Then

Begin

n:=n+1; A[n]:=x;

End;

Writeln('An ESC de ket thuc nhap!');

ch:=Readkey;

Until ch=#27;

End;

Procedure GiaoAB(n:Byte; A:Mang;m:Byte; B:Mang);

Var i:Byte;

Begin

For i:=1 To n Do

If KiemTra(A[i],m,B) Then Write(A[i]:4);

End;

Begin

Clrscr;

Writeln('Nhap mang A: ');

NhapMang(n,A);

Writeln('Nhap mang B: ');

NhapMang(m,B);

Writeln('Giao cua 2 mang A&B la: ');

GiaoAB(n,A,m,B);

Readln;

End.

Bài tập 5.11: Cho một mảng số nguyên gồm n phần tử. Tìm dãy con gồm m phần tử (mn) sao cho dãy con này có tổng lớn nhất. (Dãy con là dãy các phần tử liên tiếp nhau trong mảng).

Uses Crt;

Type Mang=ARRAY[1..50] Of Integer;

Var A:Mang;

n,m,i,j,k:Byte;

S,Max:Integer;

Begin

Write('So phan tu cua mang: n= '); Readln(n);

For i:=1 To n Do

Begin

Write('a[',i,']='); Readln(a[i]);

End;

Write('Nhap so phan tu cua day con: m= '); Readln(m);

k:=1; {Vị trí phần tử đầu tiên của dãy con}

{Giả sử m phần tử đầu tiên của mảng A là dãy con có tổng lớn nhất}

Max:=0;

For i:=1 To m Do Max:=Max+A[i];

{Tìm các dãy con khác}

For i:=2 To n-m+1 Do

Begin

{Tính tổng của dãy con thứ i}

S:=0;

For j:=i To i+m-1 Do S:=S+A[j];

If S>Max Then {Nếu dãy con tìm được có tổng lớn hơn dãy con trước}

Begin

Max:=S; {Thay tổng mới}

k:=i; {Thay vị trí đầu tiên của dãy con mới}

End;

End;

Writeln('Day con co tong lon nhat la:');

For i:=k To k+m-1 Do Write(A[i]:5);

Readln;

End.

Bài tập 5.12: Viết chương trình in ra màn hình tam giác Pascal. Ví dụ, với n=4 sẽ in ra hình sau:

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

Uses Crt;

Var Dong:Array[0..20] Of Byte;

n,i,j:Byte;

Begin

Write('n= '); Readln(n);

Clrscr;

Dong[0]:=1;

Writeln(Dong[0]:4);

{Khoi tao gia tri cua dong}

For i:=1 To n Do Dong[i]:=0;

{Voi moi dong i}

For i:=1 To n Do

Begin

For j:=i DownTo 1 Do

Begin

Dong[j]:=Dong[j-1]+Dong[j];

Write(Dong[j]:4);

End;

Writeln(Dong[i]:4);

End;

Readln;

End.

Bạn đang đọc truyện trên: Truyen2U.Pro

#antobk