[Tin học] 61 bài tập tin

D

duynhana1

[TẶNG BẠN] TRỌN BỘ Bí kíp học tốt 08 môn
Chắc suất Đại học top - Giữ chỗ ngay!!

ĐĂNG BÀI NGAY để cùng trao đổi với các thành viên siêu nhiệt tình & dễ thương trên diễn đàn.

Bài tập tin

Post 1 số bài tập để các bạn luyện tập ^^

Bài 1: Nhập vào 2 cạnh của một hình chữ nhật. In ra màn hình diện tích và chu vi của nó. Program HINH_CHU_NHAT;

Bài 2: Nhập vào bán kính của hình tròn. In ra màn hình diện tích và chu vi của nó. Program HINHTRON;

Bài 3 : Tính tam giác: Nhập vào ba số a,b,c bất kì. Kiểm tra xem nó có thể là độ dài ba cạnh hay không, nếu không thì in ra màn hình ' Khong la ba canh cua mot tam giac'. Ngược lại, thì in diện tích, chu vi của tam giác ra màn hình.

Bài 4: Viết chương trình giải phương trình bậc 1 (ax + b = 0)

Bài 6: Viết chương trình giải phương trình bậc 2 (ax2 + bx + c =0)

Bài 8: Tìm giá trị nhỏ nhất trong 4 số a, b, c, d (a, b, c, được nhập từ bàn phím).

Bài 10: Nhập vào thời gian 1 công việc nào đó là x giây. Hãy chuyển đổi và viết ra màn hình số thời gian trên dưới dạng bằng bao nhiêu giờ, bao nhiêu phút, bao nhiêu giây.

Bài 11: Nhập vào tâm và bán kính của một đường tròn. Sau đó nhập vào một điểm A(x, y) bất kì và kiểm tra xem nó có thuộc đường tròn hay không?


Bài 13: Tính n!


Bài 18: Tìm tất cả các chữ số có ba chữ số abc sao cho tổng các lập phương của các chữ
số thì bằng chính số đó ( abc = a3 + b3 + c3).

Bài 19: Nhập vào một số nguyên không âm, kiểm tra xem nó có phải là số nguyên tố hay không?


Bài 20: In ra các số nguyên tố nhỏ hơn hoặc bằng N (N là số nguyên không âm được nhập từ bàn phím).


Bài 21: Nhập 3 loại tiền và số tiền cần đổi. Hãy tìm tất cả các tổ hợp có được của 3 loại tiền trên cho số tiền vừa nhập.

Bài 22:
Trăm trâu trăm cỏ
Trâu đứng ăn năm
Trâu nằm ăn ba
Trâu già ba con một bó. Hỏi có bao nhiêu con mỗi loại?

Bài 23: Tạo bảng số dạng sau:


0 1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19



Bài 30: Viết các chương trình con tính diện tích tam giác, tròn, vuông, chữ nhật trong một chương trình. Sau đó hỏi chọn một trong các phương án tính diện tích bằng cách chọn trong bảng chọn lệnh sau:

Bài 31: Tính các số Fibonacci:
- F1=F2 = 1
- Fn = Fn-1 + Fn-2

Bài 32: Viết chương trình tìm số đảo của một số nguyên dương . Ví dụ: - Số = 12345
- Số đảo = 54321

Bài 37: Hãy viết chương trình nhập giá trị cho ma trận vuông cấp n.
a. Tính tổng các phần tử nằm trên đường chéo chính
b. Tính tổng bình phương các số nằm trên hàng chẵn.
c. Tính tổng căn bậc hai các số không âm trên cột lẻ.
d. Đếm số phần tử có giá trị trong khoảng [1..5].

Bài 38: Viết chương trình nhập vào một ma trân, tính tổng bình phương của các số âm trong ma trận trên.

Bài 39: Viết chương trình nhập vào một ma trận. In ma trận chuyển vị của nó ra
màn hình. Ma trận B là ma trận chuyển vị của ma trận A nếu các phần tử của chúng có quan hệ B = A[j, i].

Bài 41: Viết chương trình nhập vào một dãy số nguyên có n phần tử. In ra màn hình phần tử nhỏ nhất, phần tử lớn nhất và giá trị trung bình của danh sách ra màn hình. Program MAX_MIN_AVG;

Bài 42: Viết chương trình nhập vào một dãy số nguyên có n phần tử.
a. Đưa những phần tử lẻ ra đầu danh sách, những phần tử chẵn về cuối danh sách và in kết quả ra màn hình.
b. Sắp xếp các phần tử lẻ đầu danh sách theo thứ tứ tăng dần, sắp xếp các phần tử
chẵn cuối danh sách theo thứ tự giảm dần. In danh sách ra màn hình.
Bài 43: Chuyển 1 số từ hệ thập phân sang nhị phân.
Bài 44: Chuyển 1 số từ hệ thập phân sang bát phân.
Bài 45: Viết chương trình nhập vào một chuỗi kí tự, sau đó nhập vào một kí tự bất kì và
đếm số lần của nó trong chuỗi đã nhập.

Bài 46: Viết chương trình nhập vào một chuỗi ký tự, Kiểm tra xem nó có đối xứng hay không (Ví dụ: Chuỗi đối xứng RADAR, MADAM).

Bài 47: Viết chương trình nhập vào họ tên của một người. Sau đó in chuỗi họ tên ra màn hình với các ký tự đầu đổi thành chữ hoa, toàn bộ chuỗi họ và tên đổi thành chữ hoa.
Bài 48: Viết chương trình nhập vào một chuỗi ký tự . Sau đó in chuỗi ra màn hình với các ký tự đầu đổi thành chữ thường, các ký tự cuối của từ trong chuỗi sang chữ hoa.

Bài 51: Viết chương trình nhập vào một dãy số nguyên có n phần tử.

a. Sắp xếp dãy theo thứ tự tăng dần và in kết quả ra màn hình.
b. Nhập vào một số x bất kì, đếm số lần xuất hiện của nó trong dãy trên. c. In ra màn hình số phần tử nhỏ hơn hoặc bằng x.
d. In ra màn hình số phần tử lớn hơn x.
Bài 52: Viết chương trình nhập vào một dãy số nguyên có n phần tử . Sắp xếp dãy số theo
thứ tự giảm dần & tính giá trị trung bình của dãy.
Bài 53: Viết chương trình nhập vào một ma trận vuông cấp n. a. In ra trong các phần tử trên đường chéo chính.

In ra màn hình trong các phần tử trên đường chéo phụ.
Bài 54: Viết chương trình nhập vào một ma trận vuông cấp n. Kiểm tra xem ma trận có
đối xứng hay không ?

Bài 55: Viết chương trình nhập vào một ma trận vuông cấp n. a. Tính tổng của 2 ma trận.

Tính tích của 2 ma trận.
Bài 56: Đếm số từ trong một chuỗi.

Bài 57: Trộn hai mảng đã được sắp xếp theo thứ tự tăng dần lại thành một mảng mới mà vẫn đảm bảo thứ tự của nó.
Bài 58: Viết chương trình nhập vào một danh sách sinh viên có n người ( mỗi sinh viên có họ, tên, tuổi, quê quán). In danh sách sinh viên ra màn hình. Sắp xếp danh sách sinh viên theo tuổi và in danh sách sau khi sắp xếp ra màn hình.

Bài 59. Viết chương trình nhập vào một file số nguyên. In file số nguyên này ra màn hình.

Bài 60: Mở một file số nguyên đã có trên đĩa, sao chép nội dung của nó sang một tập tin mới và in nội dung của tập tin sau khi sao chép ra màn hình.

Bài 61. Viết chương trình tạo ra một file F3 chứa các số nguyên bằng cách nối hai file số
nguyên F1 và F2 đã có trên đĩa. In nội dung của cả 3 tập tin trên ra màn hình.
 
T

thuyhoa17

Bài 1:
Program HINH_CHU_NHAT;
Var a,b,C,S: word;
Begin
Write(‘nhap a,b);
Readln(a,b);
S:=a*b;
C:=(a+b)*2;
Writeln(‘dien tich hinh chu nhat la:’,S);
Writeln(‘chu vi hinh chu nhat là:’,C);
Readln
End.

Bài 2:
Program HINHTRON;
Var r,C,S: real;
Begin
Write(‘nhap r’);
Readln( r );
S:=3.14*r*r;
C:=2*3.14*r;
Writeln(‘dien tich hinh tron la:’,S:5:2);
Writeln(‘chu vi hinh tron la:’C:5:2);
Readln
End.

Bài 8:
Program gia_tri_nho_nhat;
Var a,b,c,d: real;
Begin
Write(‘nhap a,b,c,d’);
Readln(a,b,c,d);
Min:=a;
If b<min then min:=b;
If c < min then min:=c;
If d < min then min:=d;
Writeln(‘gia tri nho nhat là:’,min:5:1);
Readln
End.

:|
 
N

nhocngo976

Bài tập tin

Bài 2: Nhập vào bán kính của hình tròn. In ra màn hình diện tích và chu vi của nó. Program HINHTRON;


Bài 6: Viết chương trình giải phương trình bậc 2 (ax2 + bx + c =0)

.

Bài 2:
program HINHTRON;
var R,C,S: real;
const pi:=3.14;
begin
writeln('nhap R'); readln(R);
C:=2*pi*R;
S:=pi*sqr(R);
writeln('chu vi :', C,'dien tích:', S);
readln
end.


bài 6:
program ptb2;
var a,b,c ,x1,x2,D: real;
begin
writeln('nhap gia tri a,b,c'); readln(a,b,c);
D:=sqr(b)-4*a*c;
if D <0 then write ('ptvn') else if D=0 then write( 'pt co nghiem duy nhat', -b/(2*a) else if D >0 then
x1:= (-b+sqrt(D)) /(2*a);
x2:= (-b-sqrt(D))/ (2*a);
writeln( 'pt có 2 nghiem', x1, x2);
readln;
end.
 
D

duynhana1

bài 6:
program ptb2;
var a,b,c ,x1,x2,D: real;
begin
writeln('nhap gia tri a,b,c'); readln(a,b,c);
D:=sqr(b)-4*a*c;
if D <0 then write ('ptvn') else if D=0 then write( 'pt co nghiem duy nhat', -b/(2*a) Thiếu dấu ngoặc chỗ này :D else if D >0 then
x1:= (-b+sqrt(D)) /(2*a);
x2:= (-b-sqrt(D))/ (2*a);
writeln( 'pt có 2 nghiem', x1, x2); (viết như thế này thì chương trình sẽ in ra hai nghiệm dính vào nhau, rất khó phân biệt )
readln;
end.

Ai làm tiếp đi :D
 
D

doigiaythuytinh

Bài 3 : Tính tam giác: Nhập vào ba số a,b,c bất kì. Kiểm tra xem nó có thể là độ dài ba cạnh hay không, nếu không thì in ra màn hình ' Khong la ba canh cua mot tam giac'. Ngược lại, thì in diện tích, chu vi của tam giác ra màn hình.

Program tamgiac;
uses crt;
var a,b,c: real;
BEGIN
write('Nhap a,b,c: ');
readln(a,b,c);
If a+b>c and a-b<c then write('Ba so da nhap la ba canh cua 1 tam giac) esle write('Ba so da nhap ko la ba canh cua tam giac);
readln
END.



Bài 4: Viết chương trình giải phương trình bậc 1 (ax + b = 0)

program giai_pt;
uses crt;
var a,b,x: real;
BEGIN
write('Nhap a,b: ');
readln(a,b);
If a:=0 then x:=b else x:=-b/a;
writeln('Nghiem cua pt la x= ',x:6:2);
readln
END.


Đếm lại thì thấy ko đủ 61 bài :D
 
Last edited by a moderator:
D

duynhana1



Program tamgiac;
uses crt;
var a,b,c: real;
BEGIN
write('Nhap a,b,c: ');
readln(a,b,c);
If a+b>c and a-b<c then write('Ba so da nhap la ba canh cua 1 tam giac) esle write('Ba so da nhap ko la ba canh cua tam giac);
readln
END.
Điều kiện cần và đủ để a,b,c là 3 cạnh của tam giác là :

[TEX]\left{ a+b>c \\ a+c>b \\ b+c>c \\ a,b,c>0 [/TEX]

hoặc có thể viết gọn lại [TEX]\left{ (a+b-c)(a+c-b)(b+c-a)>0 \\ a,b,c>0[/TEX]

Bài toán của con bị 2 lỗi:

  • Lỗi cú pháp: If a+b>c and a-b<c then thiếu dấu ngoặc đúng ra phải là : If (a+b>c) and (a-b<c) then
  • Lỗi thuật toán : Với điều kiện kiểm tra của con, không tính trường hợp a,b,c<=0 thì nó sai với TH sau: a=1 và c=1 và b=2 khi nhập cái này vào thì chương trình của con báo a,b,c là 3 cạnh của 1 tam giác :D. Lỗi này nặng nhất :p

program giai_pt;
uses crt;
var a,b,x: real;
BEGIN
write('Nhap a,b: ');
readln(a,b);
If a:=0 then x:=b else x:=-b/a;
writeln('Nghiem cua pt la x= ',x:6:2);
readln
END.

Bài này cũng 2 lỗi :
  • Lỗi cú pháp: Biểu thức boolean If a:=0 then cái dấu con viết là phép gán, không phải phép so sánh, sai cơ bản^^
  • Lỗi thuật toán: Chưa có TH vô số nghiệm (a=0 and b=0) và TH vô nghiệm ^^ Ct của con chỉ đúng với TH có 1 nghiệm
 
D

diamond_jelly95

Bài tập tin

Bài 13: Tính n!
Bài 22:
Trăm trâu trăm cỏ
Trâu đứng ăn năm
Trâu nằm ăn ba
Trâu già ba con một bó. Hỏi có bao nhiêu con mỗi loại?
bài 13:
n:=1;
i:=0;
While i\leqn do
begin
i:=i+1;
n:=n*i;
end;

bài 22:
Var a,b,c: byte;
BEGIN
For a:=1 to 20 do
For b:=1 to 33 do
For c:=1 to 90 do
if (a+b+c=100) and ( a*5+b*3+(c/3) =100) then
begin
Writeln (' số trâu đứng là:', a);
Writeln (' số trâu nằm là:', b);
Writeln (' số trâu già là:', c);
end;
Readln;
END.
 
D

diamond_jelly95

Bài 31: Tính các số Fibonacci:
- F1=F2 = 1
- Fn = Fn-1 + Fn-2
cách 1:
Var a:array[1..1200] of word;
n,i: integer;
BEGIN
Writeln (' nhập n:');
Readln (n);
a[1]:=1;
a[2]:=1;
For i:=3 to n do
a:=a[i-1]+a[i-2];
Writeln ('giá trị n=', a[n]);
Readln;
END.
cách 2:
Var F,F1,F2,n,i: word;
BEGIN
Writeln (' nhập n:');
Readln (n);
F1:=1;
F2:=1;
For i:=3 to n do
begin
F:=F1+F2;
F1:=F2;
F2:=F;
end;
Writeln (' giá trị n là:',F);
END.
 
D

duynhana1

bài 13:
n:=1;
i:=0;
While i\leqn do
begin
i:=i+1;
n:=n*i;
end;
Bài chưa xử lý TH số âm

bài 22:
Var a,b,c: byte;
BEGIN
For a:=1 to 20 do
For b:=1 to 33 do
For c:=1 to 90 do
if (a+b+c=100) and ( a*5+b*3+(c/3) =100) then
begin
Writeln (' số trâu đứng là:', a);
Writeln (' số trâu nằm là:', b);
Writeln (' số trâu già là:', c);
end;
Readln;
END.

Về ý tưởng thì OK nhưng về thuật toán thì chưa nhanh cho lắm ^^

Ta chỉ cần 2 vòng For mà thôi ;)
Mã:
For a:=1 to 20 do
 For b:=1 to (100-5*a) div 3 do 
    Begin
    c:=100-a-b;
    If ((c mod 3)=0) and (5*a+ 3*b+ c div 3 =100) then  
        begin
         Writeln (' số trâu đứng là:', a);
         Writeln (' số trâu nằm là:', b);
         Writeln (' số trâu già là:', c);
        end;
    End;
 
D

duynhana1

Bài 31: Ngoài cách của bạn diamond_jelly95 ta tham khảo thêm cách sau :D

Mã:
i:=2;
F1:=1;
F2:=1;
If i=1 then Write(F1) else
  If i=2 then Write(F2) else 
Begin
While i<n-1 do 
 Begin
    F1:=F1+F2;
    F2:=F2+F1;
    i:=i+2;
  End;
If i=n then Write(F2) else Write(F2+F1); 
End;

Thuật toán trên chạy nhanh gấp 2 lần :D
 
Last edited by a moderator:
N

nhocngo976

Bài tập tin



Bài 18: Tìm tất cả các chữ số có ba chữ số abc sao cho tổng các lập phương của các chữ
số thì bằng chính số đó ( abc = a3 + b3 + c3).




hình.

var a,b,c : integer;
begin
for a:=1 to 9 do
for b:=0 to9 do
for c:=0 to9 do
if (100*a+10*b+c=a*a*a+b*b*b+c*c*c)then writeln(a,b,c);
end.
làm lung tung thui, mới học mỗi câu lệnh rẽ nhánh và câu lệnh lặp :-SS
 
Last edited by a moderator:
Q

quockhanhdx

program songuyento;
var N, i : integer;
begin
write('Nhap N');
readln(N);
For i:= 2 to trunc(sqrt(n)) do
begin
If N mod i = 0 then write(N,' ko phai la so nguyen to') ;
else write(N,' la so nguyen to;);
end;
end.

NHÂN ƠI, XEM GIÚP TA VỚI NGHE ! TK
 
Last edited by a moderator:
D

duynhana1

program songuyento;
var N, i : integer;
begin
write('Nhap N');
readln(N);
For i:= to n do
begin
If N mod i = 0 then write(N,' ko phai la so nguyen to')
else write(N,' la so nguyen to;);
end;
end. NHÂN ƠI, XEM GIÚP TA VỚI NGHE ! TK
Mã:
Program Snt;
Var n,i:integer;
      Ktra:boolean;
Begin

   Writeln('CHUONG TRINH KIEM TRA SO NGUYEN TO');
    Writeln;
   Write('Nhap so can kiem tra: ');
   Readln(n);
   Ktra:=True;
   For i:=2 to trunc(sqrt(n)) do 
      If n mod i=0 then Ktra:=False;
   If Ktra then 
     Write(n,' la so nguyen to') 
       Else 
         Write(n,' la hop so');
Readln;
End.
 
Top Bottom