Thứ Bảy, 5 tháng 11, 2011

Bài tập & bài giải Pascal sử dụng kiểu mảng

Bài 1 :
Giải hệ phương trình tuyến tính hai ẩn dùng ma trận :
a11x + a12y = c1
a21x + a22y = c2
Uses Crt;
Var a: array[1..2, 1..2] of real;
c: array[1..2] of real;
d, dx, dy, x, y: real;



BEGIN
Clrscr;
Writeln('Giai he phuong tring tuyen tinh hai an:');
Writeln(' a11x+a12y=c1');
Writeln(' a21x+a22y=c2');
Writeln('Nhap cac he so cua he phuong trinh');
Write('a11='); Readln(a[1,1]);
Write('a12='); Readln(a[1,2]);
Write('c1='); Readln(c[1]);
Write('a21='); Readln(a[2,1]);
Write('a22='); Readln(a[2,2]);
Write('c2='); Readln(c[2]);
d:=a[1,1]*a[2,2] - a[2,1] * a[1,2];
dx:=c[1]*a[2,2] - c[2] * a[1,2];
dy:=a[1,1]*c[2] - a[2,1] * c[1];
If d=0 then Writeln(' He vo nghiem hoac vo so nghiem')
Else
Begin
x:=dx/d; y:=dy/d;
Writeln('He co nghiem duy nhat :');
Writeln('x=', x:0:2, ' ; y=', y:0:2);
End ;
Readln;
END .
Bài 2 :
Lập phương trình tạo ra một mảng chứa bảng cửu chương .
Uses Crt ;
Var a : Array[1..10, 2..9] Of Byte ;
i, j : Byte ;
BEGIN
Clrscr ;
For i := 1 To 10 Do
For j := 2 To 9 Do a[i, j] := i*j ;
Writeln(' Bang cuu chuong : ') ; Writeln ;
For i := 1 To 10 Do
For j := 2 to 9 do Write ( j:4 , 'x' , i:2 , '=' , a[i , j]:2) ;
Readln ;
END .

Bài 3 :
Viết chương trình nhập hai số nguyên dương m , n . Sau đó tính trung bình cộng bình phương các số nguyên từ m đến n .
Var m , n , k , s : Word ;
tb : real ;

BEGIN
Writeln('Nhap 2 so nguyen duong m, n :') ;
Write (' m = ') ; Readln(m) ;
Write (' n = ') ; Readln(n);
If m > n Then (* ñoãi choã ñeå m <= n *)
Begin
k := m ; m := n ; n := k ;
End ;
s := 0 ;
For k := m To n do s := s + sqr(k) ;
tb := s / (n - m + 1) ;
Writeln ('Trung binh cong bimh phuong cac so '
+ 'nguyen tu m den n la: ', tb:12:2);
Readln ;
END .
Bài 4 :
Viết chương trình nhập từ bàn phím các phần tử của một mảng hai chiều . Kích thước của mảng được nhập trước từ bàn phím .
Var m , n , i , j : Byte ;
a : Array[1..100, 1..100] Of Real;

BEGIN
Write ('Nhap cac kich thuoc cua mang hai chieu : ') ;
Write (' So hang m = ') ; Readln(m) ;
Write (' So cot n = ') ; Readln(n) ;
Writeln (' Nhap cac phan tu cua mang : ') ;
For i := 1 To m Do
For j := 1 To n Do
Begin
Write ('a[', i:2, ', ' , j:2 ,']=') ; Readln(a[i, j]) ;
End ;
Readln ;
END .
Bài 5 :
Dãy số sau được gọi là dãy Fibonaci :
a1 = 1
a2 = 1
a3 = 2
a4 = 3
. . .
an = an-1 + an-2
Viết chương trình tính 20 số Fibonaci đầu tiên và đưa ra kết quả vào một mảng 20 phần tử .
Var
a : Array[1..20] Of Byte ;
i : Byte ;

BEGIN
a[1] :=1;
a[2] :=1;
For i:=3 to 20 do a[i]:=a[i-1]+a[i-2] ;
For i:=1 to 20 do Write(a[i]:Cool;
END .
Bài 6 :
Dãy số an được định nghĩa như sau :
a1 = 1
a2 = 2
. . .
an = 2an-1 + an-2 ( n > 2 )
Hãy lập chương trình tính và gán giá trị của dãy vào biến mảng .
Var a : Array [1..100] Of Word ;
i, N : Byte ;
S : Real ;

BEGIN
Write (' Nhap so N>=2 : ') ; Readln(n) ;
a[1] := 1 ;
a[2] := 2 ;
For i := 3 To N Do a[i] := 2*a[i-1]+a[i-2] ;
S := 0 ;
For i := 1 to N do S := S+1/sqr(a[i]) ;
Writeln (' S = ', S:12:6) ;
Readln ;
END .
Bài 7 :
Nhập số tự nhiên N và viết chương trình tạo mảng bao gồm N số nguyên tố đầu tiên .

Bài 8 :
a. Viết chương trình nhập dữ liệu từ dãy đối xứng vào mảng một chiều .
b. Viết chương trình nhập dữ liệu là ma trận đối xứng vào mảng hai chiều .
a)
Var a: array [1..100] of integer;
n, i: byte;
Begin
Write('Nhap so phan tu cua day doi xung:');
Readln(n);
Writeln('Nhap cac phan tu cua day:');
For i:=1 to (n+1) div 2 do
Begin
Write('a[', i:2, ']='); Readln(a[i]);
a[n-i+1] := a[i];
End;
Readln ;
END ;

b)
Var a: array [1..100, 1..100] of integer;
n, i, j: integer;
BEGIN
Write('Nhap kich thuoc cua mang doi xung: ');
Readln(n);
Write('Nhap cac phan tu cua mang:');
For i:=1 to n do
For j:=1 to i do
Begin
Write('a[', i:2, ',', j:2, ']='); Readln(a[i, j]);
a[j,i]:=a[i,j];
End;
Readln ;
END ;

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

Đăng nhận xét