20 tháng 4, 2014

Tổng hợp các bài tập lập trình trên Turbo Pascal (Phần tiếp theo - P6)


Trong bài viết sau đây sẽ chia sẻ đến bạn tổng hợp các bài tập cơ bản lập trình trên phần mền Turbo Pascal. Hy vọng, nó sẽ giúp ích cho bạn khi mới bắt đầu làm quen với ngôn ngữ lập trình cơ bản. Các bài tập tổng hợp bao gồm: các lệnh nhập xuất đơn giản, các câu lệnh điều khiển, dữ liệu kiểu mảng, chương trình con ... Phần tiếp theo - P6.
 
53. Viết chương trình nhập vào mảng 1 chiều gồm n phần tử kiểu số nguyên. In ra mảng vừa nhập theo thứ tự ngược. Cho biết có bao nhiêu phần tử có nội dung là số nguyên tố. Tính tích các phần tử là ước số của k, với k được nhập từ bàn phím. Cho biết phần tử x xuất hiện ở lần thứ m tại vị trí thứ mấy, với x và m được nhập từ bàn phím. Sắp xếp mảng theo thứ tự giảm dần. In ra mảng sau khi sắp xếp.

Program so_nguyen;
Uses crt;
Var a: array [1 .. 30] of integer;
d, n, i, j, k, x, m, tich, tam: integer;
Begin
Clrscr;
Repeat
Write ('Nhap so phan tu n: ');
Readln (n);
Until (n > 0) and (n < 31);
For i := 1 to n do
Begin
Write ('Nhap phan tu thu ', i, ': ');
Readln (a [i]);
End;
Writeln ('Mang vua nhap la: ');
For i := n downto 1 do
Write (a [i]);
d := 0;
For i := 1 to n do
Begin
If n mod a [i] <> 0 then
d := d + 1
Else
If n = a [i] then i := i + 1;
End;
Writeln ('Co ', d, ' phan tu la so nguyen to');
Write ('Nhap k = ');
Readln (k);
tich := 1;
For i := 1 to n do
If k mod a [i] = 0 then
tich := tich * a [i];
Writeln ('Tich cac phan tu la uoc so cua ', k, ': ', tich);
Write ('Nhap x: ');
Readln (x);
Write ('Nhap m: ');
Readln (m);
i := 1;
While (a [i] <> x) and (i <= m) do
i := i + 1;
If i <= m  then writeln ('Phan tu ', x, ' xuat hien lan thu ', m, ' o vi tri thu ', i)
Else writeln ('Khong co phan tu ', x, ' trong mang');
For i := 1 to n + 1 do
For j := i + 1 do n do
If a [i] < a [j] then
Begin
tam := a [i];
a [i] := a [j];
a [j] := tam;
End;
Writeln ('Mang sau khi sap xep giam dan la: ');
For i := 1 to n do 
Write (a [i]);
Readln;
End.

54. Viết chương trình nhập vào 2 mảng 1 chiều có cùng số phần tử và nội dung các phần tử kiểu số thực. Tạo ra mảng thứ 3 bằng tổng 2 dãy đó - (c [i] = a [i] + b [i]). In ra dãy vừa tạo.

Uses crt;
Var a: array [1 .. 20] of real; 
b: array [1 .. 20] of real;
c: array [1 .. 20] of real;
n, i: integer;
Begin
Clrscr;
Repeat
Write ('Nhap so phan tu n: ');
Readln (n);
Until (n > 0) and (n < 21);
For i := 1 to n do
Begin
Write ('Nhap phan tu thu ', i, ': ');
Readln (a [i]);
End;
Writeln ('Mang thu nhat la: ');
For i := 1 to n do
Writeln (a [i] : 3);
For i := 1 to n do
Begin
Write ('Nhap phan tu thu ', i, ': ');
Readln (b [i]);
End;
Writeln ('Mang thu hai la: ');
For i := 1 to n do
Write (b [i] : 3);
For i := 1 to n do
c [i] := a [i] + b [i];
Writeln ('Mang thu ba vua tao: ');
For i := 1 to n do write (c [i] : 3);
Readln;
End.

55. Viết chương trình nhập vào 2 mảng 1 chiều có cùng số phần tử và nội dung các phần tử kiểu boolean. In ra 2 mảng vừa nhập trên 2 hàng khác nhau. Tạo ra mảng thứ 3 là kết quả của việc thực hiện phép toán AND trên từng phần tử của 2 mảng đã nhập. Tạo ra mảng thứ 4 là kết quả của việc thực hiện phép toán OR trên từng phần tử của 2 mảng đã nhập. In ra 2 mảng vừa tạo trên 2 hàng khác nhau.

Uses crt;
Var a: array [1 .. 10] of boolean;
b: array [1 .. 10] of boolean;
c: array [1 .. 10] of boolean;
d: array [1 .. 10] of boolean;
i, j: integer;
Begin
Clrscr;
Repeat
Write ('Nhap so phan tu n: ');
Readln (n);
Until (n > 0) and (n < 11);
For i := 1 to n do
Begin
Write ('Nhap phan tu thu ', i, ' : ');
Readln (a [i]);
End;
Writeln ('Mang thu nhat la: ');
For i := 1 to n do
Write (a [i]);
Writeln;
For i := 1 to n do
Begin
Write ('Nhap phan tu thu ', i, ' : ');
Readln (a [i]);
End;
Writeln ('Mang thu hai la: ');
For i := 1 to n do
Write (b [i]);
Writeln;
For i := 1 to n do
c [i] := a [i] and b [i];
Writeln ('Mang thu ba la: ');
For i := 1 to n do
Write (c [i]);
Writeln;
For i := 1 to n do
d [i] := a [i] or b [i];
Writeln ('Mang thu tu la: ');
For i := 1 to n do
Write (d [i]);
Readln;
End.

Chúc bạn thành công!