16 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 - P5)


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 - P5.
 
51. Viết chương trình nhập vào mảng 1 chiều gồm n phần tử kiểu số thực. In ra mảng vừa nhập. Thêm 1 phần tử x vào vị trí vt, với x và vt nhập từ bàn phím. Cho biết phần tử lớn nhất xuất hiện sau cùng ở vị trí thứ mấy. Tính tích các phần tử dương nằm ở các vị trí lẻ. Xóa tất cả các phần tử có nội dung là y, với y nhập từ bàn phím.

Uses crt;
Var a: array [1 .. 20] of integer;
n, i, j, vt: integer;
x, y, max, tich: real;
Begin
Clrscr;
Repeat
Write ('Nhap phan tu thu 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 vua nhap la: ');
For i := 1 to n do
Write (a [i] : 6 : 2);
Write ('Nhap phan tu can them: ');
Readln (x);
Repeat
Write ('Nhap vi tri can them: ');
Readln (vt);
Until (vt > 0) and (vt <= n + 1);
For i := n downto vt do
n [i + 1] := a [i];
a [vt] := x;
n := n + 1;
Writeln ('Mang vua them la: ');
For i := 1 to n do
Write (a [i] : 6 : 2);
max := a [1];
For i := 2 to n do
If max < a [i] then
max := a [i];
i := n;
While a [i] <> max do 
i := i - 1;
Writeln ('Vi tri xuat hien sau cung cua phan tu lon nhat la: ', i);
tich := 1;
For i := 1 to n do
If (i mod 2 <> 0) and (a [i] > 0) then
tich := tich * a [i];
Writeln ('Tich cac phan tu nam o cac vi tri le la: ', tich : 6 : 2);
Write ('Nhap phan tu can xoa: ');
Readln (y);
i := 1;
While i <= n do
If a [i] = y then
Begin
For j := i to n - 1 do
a [j] := a [j + 1];
n := n - 1;
End
Else i := i + 1;
Writeln ('Mang xoa them la: ');
For i := 1 to n do 
Write (a [i] : 6 : 2);
Readln;
End.

52. Viết chương trình nhập vào ma trận a gồm m hàng, n cột, các phần tử kiểu số nguyên. In ra ma trận vừa nhập. Cho biết trong ma trận có bao nhiêu phần tử là số chính phương. Tính tích các phần tử khác 0 nằm trên cột c, với c nhập từ bàn phím. Sắp xếp các phần tử nằm trên hàng h theo thứ tự giảm dần, với h nhập từ bàn phím. In ra ma trận sau khi sắp xếp.

Uses crt;
Var a: array [1 .. 10, 1 .. 10] of integer;
m, n, i, j, d, c, h, tam: integer;
t: longint;
Begin
Clrscr;
Repeat
Write ('Nhap so hang va so cot: ');
Readln (m, n);
Until (m > 0) and (m < 21) and (n > 0) and (n < 21);
For i := 1 to m do
For j := 1 to n do
Begin
Write ('Nhap a [', i, ' , ', j, ']: ');
Readln (a [i, j]);
End;
For i := 1 to m do
Begin
For j := 1 to n do
Write (a [i, j] : 6);
Writeln;
End;
d := 0;
For i := 1 to m do
For j := 1 to n do
If frac (sqrt (a [i, j])) = 0 then
d := d + 1;
Writeln ('Tong ma tran co ', d, ' phan tu la so chinh phuong');
Repeat
Write ('Nhap cot can tinh tich: ');
Readln (c);
Until (c > 0) and (c <= n);
t := 1;
For i := 1 to m do
If a [i, c] <> 0 then
t := t * a [i, c];
Writeln ('Tich cac phan tu khac 0 tren cot ', c, ' la: ', t);
Repeat
Write ('Nhap hang can sap xep: ');
Readln (h);
Until (h > 0) and (h <= m);
For i := 1 to n - 1 do
For j := i + 1 to n do
If a [h, i] < a [h, j] then
Begin
tam := a [h, i];
a [h, i] := a [h, j];
a [h, j] := tam;
End;
For i := 1 to m do
Begin
For j := 1 to n do
Write (a [i, j] : 6);
Writeln;
End;
Readln;
End.

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