GamesCapNhat.Wap.Sh
HOME - Lập Trình đồng hồ gỗ ĐỨC PHỔ WAP LẬP TRÌNH
Xem Thêm >>
Lập Trình Pascal

Bài Tập Pascal Chọn Lọc - Tin Học Lớp 11

Bài tập pascal cơ bản đến nâng cao theo chương trình TIN HỌC lớp 11 không phân ban 

Trần Khánh Toàn - THPT số 1 Đức Phổ 2011-2014

Nhằm giúp các bạn học sinh lớp 11 tiếp cận với ngôn ngữ lập trình Pascal một cách dễ dàng và vận dụng vào các ngôn ngữ lập trình khác trong tin học, tôi sưu tầm và biên soạn một số bài toán cơ bản đến nâng cao có trong chương trình của lớp 11 không  phân ban. Các chương trình nhằm mục đích tham khảo cho các bạn ham mê tin học và là tài liệu chuẩn bị cho các bài kiểm tra về môn tin học. 

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

 Program Program TIM_SO_LON_NHAT; 

Uses crt; 

Var a,b,c,d,max: real;  

BEGIN 

Clrscr; 

Writeln('TIM SO LON NHAT TRONG BON SO A, B, C, D');  

Writeln0; 

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

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

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

Write('Nhap d='); Readln(d); max:=a; 

If b>max then max:=b; If c>max then max:=c; if d>max then max:=d; 

Writeln('So lon nhat la: ',max: 4: 2);  

Readln; 

END. 

Bài 1B:  Viêt chương trình nhập ba số dương bất kỳ, kiểm tra ba số vừa nhập có phải là ba cạnh của tam giác không? Nếu phải thì tính chu vi và diện tích của tam giác đó. 

PROGRAM Kiem_tra_tam_giac; 

Uses crt; 

Var a,b,c,cv,s,p:  real; 

BEGIN 

Clrscr; 

Writeln(‘nhap so thu nhat’); readln(a); 

Writeln(‘nhap so thu hai’); readln(b); 

Writeln(‘nhap so thu ba’); readln(c); 

If0 And0 And0 then 

Begin  

Cv:=a+b+c; p:=c/2; s:=sqrt0*0*0); 

Writeln(‘ba so vua nhap la ba canh cua tam giac’); 

Writeln(‘ chu vi cua tam gia la’, cv: 4: 2, ‘ dien tich cua tam giac la’, s:6:2); 

End 

Else Writeln(‘ba so vua nhap khong phai la ba canh cua tam giac’); 

Readln 

End.  

Bài 1C:  Viết chương trình nhập độ cao h so với mặt đất của một vật rơi tại nơi có gia tốc g,  Tính và hiển thị vận tốc của vật tại mặt đất. 

Program  Tinh_van_toc; 

Uses crt; 

Var h, v,g:  real; 

Begin  

Clrscr; 

Writeln(‘nhap do cao cua vat’); readln(h); 

Writeln(‘nhap gia toc’); readln(g); 

V:=sqrt0; 

Writeln(‘van toc tai mat dat la’, v: 6: 2); 

Readln 

End.

 Bài 2:   Viết chương trình giải phương trình ax+b=0 

Program GIAI_PHUONG_TRINH_BAC_NHAT; 

Uses crt; 

Var a,b,x:  real;  

Begin 

Clrscr; 

Writeln0;  

Writeln0;  

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

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

If(a=0) then 

If(b=0) then Writeln(' Phuong trinh co vo so nghiem') 

Else  writeln(' Phuong tring vo nghiem') 

Else Writeln0;   

Readln 

End. 

Bài 3:  Viết chương trình giải bất phương trình bậc 1 0  

Program BAT_PHUONG_TRINH_BAC_I; 

Uses crt; 

Var a,b:  real; 

Begin 

Clrscr; 

Writeln0;  

Writeln0;  

Write('nhap a='); readln(a); 

Write('nhap b='); readln(b);  

If a<>0 then 

If a>0 then Writeln0  

Else Writeln0 

Else    

If b>=0 then Writeln('Bat phuong trinh co vo so nghiem')  

Else writeln('Bat phuong trinh vo nghiem'); 

Readln 

End. 

Bài 4:  Viết chương trình giải phương trình  0 

Program GIAI_PHUONG_TRINH_BACII;  

Uses crt; 

Var a,b,c,d,x,x1,x2: real; 

Begin 

Clrscr; 

Writeln('GIAI PHUONG TRINH BAC II: ');  

Writeln0;  

Write('Nhap he so a=');  readln(a); 

Write('Nhap he so b=');  readln(b);  

Write('Nhap he so c=');  readln(c); 

If a=0 then  

 If b=0 then 

If c=0 then 

Writeln('Phuong trinh co vo so nghiem') 

Else Writeln('Phuong trinh vo nghiem') 

Else Writeln0 

Else 

Begin 

d:=b*b-4*a*c; 

If d=0 then  Writeln0: 4: 2) 

Else if d<0 then Writeln(‘phuong trinh vo nghiem’) 

 Else  

Begin 

x1:=0)/0; 

x2:=0)/0; 

Write('Phuong trinh co hai nghiem:  ‘);  

Writeln(‘ x1=',x1: 4: 2,' va x2=',x2: 4: 2); 

   End; 

  End; 

 Readln 

End.

 Bài 5:  Giải hệ phương trình tuyến tính:  

ax + by = m 

cx + dy = n 

Program GIAI_HE_HAI_AN;  

Uses crt; 

Var a,b,c,d,m,n: real; 

dx,dy ,dd: real; 

BEGIN 

Clrscr; 

Writeln('GIAI HE HAI AN: ');  

Writeln0;  

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

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

Write('Nhap c='); readln(c);  

Write('Nhap m='); readln(m);  

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

   dd:=a*d-b*c; dx:=m*d-b*n;  dy:=a*n-c*m; If dd=0 then 

If (dx=0) And (dy=0) then 

Writeln('He vo so nghiem hoac vo nghiem') 

Else writeln('He vo nghiem') 

Else 

Begin 

Write('He co nghiem: '); Writeln'x=',dx; 

End; 

Readln 

End.

 Bài 6:  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.  

Program DOI_GIO_PHUT_GIAY; 

Uses crt; 

Var gio, phut,giay, x:  longint;  

Begin 

Clrscr; 

Writeln('DOI SANG GIO PHUT GIAY'); 

Writeln0;  

Write('Nhap vao so giay:  '); readln(x);  

gio:=x div 3600; x:=x mod 3600;  phut:=x div 60;  x:=x mod 60; 

Writeln('Ket qua = ', gio,'gio:  ', phut, 'phut:  ', x, 'giay');  

Readln; 

End. 

Bài 7:  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? 

Program KIEM_TRA_DIEM_THUOC_DUONG_TRON;  

Uses crt; 

Var x0,y0,xa,ya,d,r :  real;   

ĐT:  0972.311.481 Trang 7  

Begin 

Clrscr; 

Writeln('KIEM TRA DIEM THUOC DUONG TRON: ');  

Writeln0;  

Write('Nhap ban kinh R= ');  readln(r); 

Write('Nhap hoanh do tam duong tron = ');  readln(x0);  

Write('Nhap tung do tam duong tron = ');  readln(y0);  

Write('Nhap hoanh do diem a = ');   readln(xa); 

Write('Nhap tung do diem a = ');    readln(ya); 

d:=SQRT0+SQR0);  

If r=d then Writeln('Diem A nam tren duong tron') 

Else  

If d>r then Writeln('Diem A nam ngoai duong tron')  

Else Writeln('Diem A nam trong duong tron'); 

Readln 

End.

 Bài 7 b:  Viết chương trình nhập vào tâm và bán kính hai đường tròn, xác định vị trí tương đối của hai đường tròn đó. 

Program Khao_Sat_Hai_Duong_Tron; 

         Var  R 1, R2 ,x1, y1,x2,y2,  Kc, Tong, Hieu:  Real; 

        BEGIN 

      Writeln('KHAO SAT 2 DUONG TRON'); 

      Writeln0; 

      Writeln; 

      Writeln0; 

      Write0;      Readln(R1); 

       Write0;  Readln(x1); 

       Write0;  Readln(y1); 

      writeln; 

      Writeln0;  

Write0;      Readln(R2); 

      Write0;     Readln(x2); 

      Write0;  Readln(y2); 

     Kc:=Sqrt(Sqr(x1 – x2) + Sqr(y1 – y2)); 

     Tong:=R1 + R2;      Hieu:=ABS(R1 – R2); 

     If (Kc = 0) AND (Hieu = 0) Then 

            Writeln0 

      Else 

            If (Hieu > Kc) Then 

               Writeln0 

             Else If (Tong = Kc) OR (Hieu = Kc) Then 

                  Writeln0 

               Else If (Tong > Kc) AND (Hieu < Kc) Then 

                      Writeln0 

                  Else If (Tong < Kc) Then 

                      Writeln0; 

      Readln 

End.

 Bài 8:  Tính xy ( Với x, y là số thực).  

Program X_LUYTHUA_Y; 

Uses crt; 

Var lt, x,y,z: real; 

Begin 

Clrscr; 

Writeln(‘TINH X LUY THUA Y: ’);  

Writeln0;  

Write('Nhap x = '); readln(x); Write('nhap y = '); readln(y); 

If x>=0 then 

Begin 

z:=exp0);  

Writeln('x ^ y = ',z: 4: 2); 

End 

Else  

Writeln('Khong tinh duoc do x la so am'); 

 Readln; 

End. 

Bài 9:  Tính n! 

Program TINH_N_GIAI_THUA;  

Uses crt; 

Var i,n,gt: integer; 

Begin 

Clrscr; 

Writeln('  TINH N GIAI THUA: ');  

Writeln0;  

Write('Nhap n ='); readln(n); gt:=1;  

For i:=1 to n do gt:=gt*i; Writeln(n, '!= ',gt); 

Readln; 

End.

 Bài 10**:  Đọc ngày tháng năm, sau đó viết ra màn hình đó là ngày thứ mấy trong tuần. 

Program   Ngaythang; 

Uses crt; 

Var     Thu, Ngay, Thang:  Byte;  

Nam:  Integer;  

 BEGIN 

Clrscr; 

 Write (' Doc Ngay:  '); Readln ( Ngay ); 

 Write (' Doc Thang:  '); Readln ( Thang ); 

 Write (' Doc Nam:  '); Readln ( Nam ); 

Nam:=1900 + ( Nam mod 1900 ); 

    If Thang < 3 Then  

 Begin 

         Thang:=Thang + 12;         Nam:=Nam - 1; 

      End; 

    Thu:=Abs 1 * 3  div 5 + Nam + Nam div 4 ) mod 7; 

    Case Thu Of 

  0:  Writeln (‘ngay     ’,ngay,’      thang ',thang,’        nam ’,nam,’    la ngay  Chu Nhat '); 

  1:  Writeln ('ngay     ’,ngay,’      thang ',thang,’        nam ’,nam,’    la ngay Thu Hai '); 

  2:  Writeln ('ngay     ’,ngay,’      thang ',thang,’        nam ’,nam,’    la ngay Thu Ba '); 

  3:  Writeln (‘ngay     ’,ngay,’      thang ',thang,’        nam ’,nam,’    la ngay  Thu Tu '); 

  4:  Writeln (‘ngay     ’,ngay,’      thang ',thang,’        nam ’,nam,’    la ngay  Thu Nam '); 

  5:  Writeln ('ngay     ’,ngay,’      thang ',thang,’        nam ’,nam,’    la ngay Thu Sau '); 

  6:  Writeln ('ngay     ’,ngay,’      thang ',thang,’        nam ’,nam,’    la ngay Thu Bay '); 

     End; 

     Readln; 

  END.

 Bài 11:  Viết chương trình:    Nhâp số báo danh   Nhập điểm văn, toán, ngoại ngữ    In ra màn hình dưới dạng: 

  Phiếu điểm: 

  Số báo danh: 

  Điểm văn:   

  Điểm toán:  

 Điểm ngoại ngữ: 

  Tổng số điểm:    

 Bạn đã trúng tuyển ( hoặc Bạn đã không trúng tuyển ) với điều kiện Tổng số điểm >= 15 hay ngược lại. 

Program INPHIEU; 

Uses Crt; 

 Var SBD:  Integer;  

Van, Toan, Ngoaingu, Tongdiem:  Real;  

BEGIN 

Clrscr;  

 Write (' So bao danh:  '); Readln( SBD );  

 Write (' Diem toan:  '); Readln( Toan );  

 Write (' Diem ngoai ngu:  '); Readln( Ngoaingu );  

 Write (' Diem van:  '); Readln ( Van );  

 Tongdiem:=Toan + Van + Ngoaingu;  

 Writeln (' Phieu Bao Diem ');  

 Writeln (' So bao danh:  ', SBD );  

 Writeln (' Diem van:  ', Van );  

 Writeln (' Diem toan:  ', Toan );  

 Writeln (' Diem ngoai ngu:  ', Ngoaingu);  

 Writeln (' Tong diem:  ', Tongdiem);  

 If Tongdiem >= 15 Then  

  Writeln(' Ban da trung tuyen ') 

    Else  Writeln(' Ban khong trung tuyen '); 

 Readln;  

END.

 Bài 12 : Viết chương trình nhập hai số thực. Sau đó hỏi phép tính cần thực hiện và in kết quả của phép tính đó.   Nếu là “+”, in kết quả của tổng lên màn hình.   Nếu là “-”, in kết quả của hiệu lên màn hình.   Nếu là “/”, in kết quả của thương lên màn hình.   Nếu là “*”, in kết quả của tích lên màn hình.  Nếu là “+”, in kết quả của tổng lên màn hình.   Nếu là “+”, in kết quả của tổng lên màn hình. 

Program   Chuongtrinh_tinh; 

Uses Crt;  

Var      a, b, T:  Real;  

Pt:  Char;  

BEGIN 

    Clrscr;  

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

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

    Write 0:  ');  

    Readln( Pt );  

     If Pt = '+’ Then T:=a + b;  

     If Pt =  '-’ Then T:=a - b;  

     If Pt = '*’ Then T:=a * b;  

     If Pt = '/’  Then T:=a / b;  

    Write ( a, pt, b, ' = ', T );  

    Readln;  

  END. 

PHẦN II:  CÂU LỆNH CÓ CẤU TRÚC

Bài 12.  Cho số tự nhiên n, hãy lập trình để tính các tổng sau:  

a. 1 + 1/22 + 1/32 + … + 1/n2  b. 1 + 1/2! + 1/3! + … + 1/n!

 Program   Caua; 

Uses crt; 

 Var  n, i:  Word;  

          S:  Real;  

BEGIN 

Clrscr; 

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

   S:=0;  

    For i:=1 To n Do  

      S:=S + 1 / sqr(i);  

      Writeln ('Tong la  S = ', S: 6: 2);  

    Readln 

  END.  

Program  Cau_b; 

Uses crt; 

Var n, i, j, p:  Word;  

S:  Real;  

BEGIN  

Clrscr; 

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

   p:=1;      s:=0;  

  For i:=1 To n  Do  

    Begin  

     p:=p * i;       S:=S + 1 / p;  

    End;  

   Writeln ('Tong la S = ', S: 6: 2);  

  Readln 

End. 

Câu 13a:  Lập trình tính tổng:  

 A = 1 + 1/2 + 1/3 + … + 1/n ở đây n là số tự nhiên được nhập vào từ bàn phím. 

Program  tinhtong; 

Uses Crt;  

Var i, n:  Integer;  tong:  Real;  

BEGIN  

Clrscr;  

 Write (' Cho so tu nhien n:  '); Readln (n);  

  tong:=0;  i:=1;  

  While i <= n Do  

   Begin  

    tong:=tong + 1/i;  i:=i + 1;  

   End;  

  Writeln (' Tong can tim la:  ', tong: 8: 2 );  

 Readln;  

END. 

Câu 13b:  Tính số hạng thứ n của dãy FIBONAXI biết n nhập từ bàn phím và quy luật dãy như sau F0=0; F1=1 và Fn=Fn-1+Fn-2 

Program   FIBONAXI; 

Uses crt; 

Var A:   array[0..1000] of integer; 

  n:  integer; 

Begin 

Clrscr; 

  Writeln(‘can so hang thu may cua day Fibonaxi’);  readln(n); 

  A[0]:=0; A[1]:=1; 

   For i:=2 to n do 

    A[i]:=A[i-1]+A[i-2]; 

   Writeln(‘so hang thu’, n,’cua day fibonaxi la’, A[n]); 

  Readln 

End. 

Câu 14a:  Tính hàm lũy thừa an, ở đây a thực và n tự nhiên được nhập vào từ bàn phím. 

Program  Tinhgiaithua; 

Uses Crt;  

Var  i, n:  Integer;    

a, giatri:  Real;  

 BEGIN 

Clrscr;  

  Write (' nhap co so a =:  '); Readln(a);  

  Write (' nhap  so mu n =:  '); Readln(n);  

  i:=1;   giatri:=1;  

   While i <= n Do  

   Begin  

    giatri:=giatri * a; 

    i:=i+1;  

   End;  

  Writeln(' a mu n bang:   ', giatri: 8: 2 );  

 Readln;  

END. 

Bài 14b. Viết chương trình nhập vào hai số nguyên dương a, b bất kỳ, hiển thị ước chung lớn nhất của hai số và bội chung nhỏ nhất của hai số đó. 

Program   UC_BC; 

Uses crt; 

Var a, b, uc, bc:  integer; 

BEGIN 

Clrscr; 

  Writeln(‘nhap so thu nhat ’);  readln(a); 

  Writeln(‘nhap so thu hai ’);  readln(b); 

  While (a<>b) do 

   Begin 

    If a>b then a:=a-b else b:=b-a; 

   End; 

    uc:=a;  bc:=0/uc; 

   Writeln(‘uoc chung lon nhat cua   ‘,a,’ va  ’,b,’    la ‘,uc); 

   Writeln(‘boi chung nho nhat cua ‘,a,’va ’,b,’      la    ‘,bc); 

  Readln 

END.

 Câu 15:  Chương trình nhập mảng một chiều gồm n phần tử n<=100 kiểu nguyên rồi thực hiện 

a. Đếm số lượng phần tử dương cho kết quả ra màn hình

 b. Tính tổng các phần tử dương trong mảng. 

c. Tính trung bình các phần tử  trong mảng.

 d. Tính trung bình các phần tử dương trong mảng 

e. Tìm vị trí đầu tiên của phần tử =k với k nhập từ bàn phím.

 f. Tìm vị trí phần tử =k với k nhập từ bàn phím, nếu có nhiều phần tử =k thì hiển thị ra màn hình tất cả vị trí phần tử=k đó. 

g. Đếm số lượng phần tử là nguyên tố trong mảng.

 h. Kiểm tra mảng vừa nhập có phải là cấp số cộng hay không?

 i. Sắp xếp mảng theo thứ tự tăng dần các phần tử và hiển thị ra màn hình mảng tăng đó  

Prgram BAI_15; 

Uses crt; 

Var A:  array[1..100] of  integr; 

 i, k,demd, s, demnt, tg,n, d, dd,j :  integer; 

  tb, tbm:  real; 

Begin 

Clrscr; 

  Writeln(‘nhap so luong phan tu cua mang’); readln(n); 

  Writeln0; 

   For i:=1 to n do 

    Begin 

     Writeln(‘nhap so hang thu’, I, ‘A[‘,I,’]=  ‘); 

     Readln(A[i]); 

    End; 

  {-------------------------------------------Cau a----------------------------------} 

   demd:=0; 

    For i:=1 to n do if A[i]>0 then demd:=demd+1; 

    Writeln(‘ so luong phan tu duong  cua mang la’, demd);  

  {-----------------------------------Cau b-----------------------------------------} 

s:=0;  

For i:=1 to n do if A[i]>0 then s:=s+ A[i]; 

Writeln(‘ tong cac phan tu duong  cua mang la’, s); 

  {-----------------------------------Cau c-----------------------------------------} 

  s:=0; 

   For i:=1 to n do s:=s+A[i]; 

    tbm:=s/n; 

    Writeln(‘ trung binh cac phan tu  cua mang la   ’, tbm: 6: 2); 

  {----------------------------------------Cau d-------------------------------------}  

  s:=0; demd:=0; 

   For i:=1 to n do 

    Begin  

      if A[i]>0 then s:=s+ A[i]; demd:=d+1; 

    End; 

   tb:=s/demd; 

  Writeln(‘ trung binh cac phan tu duong  cua mang la   ’, tb: 6: 2); 

{----------------------------------------Cau e-------------------------------------} 

 Writeln(‘  nhap gia tri can tim vi tri  ’);  readln(k); 

  J:=1; 

  While (j<=n) And (A[j]<>k) do j:=j+1; 

   If j> n then Writeln(‘khong co gia tri  ’, k, ’ trong mang’) 

    Else Writeln(k, ‘   nam o vi tri thu  ’, j,’   trong mang’); 

{----------------------------------------Cau f---------------------------------------------} 

Writeln(‘  nhap gia tri can tim vi tri  ’);  readln(k); 

  J:=1; writeln(‘cac vi tri xuat hien cua  ’,k,’  trong mang la’);  

  While (j<=n) do 

   Begin 

    If A[j]=k  then write(j: 5);  

     j:=j+1; 

   end; 

{----------------------------------------Cau g---------------------------------------------} 

Demnt:=0; 

For i:=1 to n do 

Begin  

j:=2; 

While-1 And (A[i] mod j<>0) do 

Begin 

J:=j+1; 

End; 

If j> A[i] - 1 then demnt:=demnt+1; 

End; 

Writeln(‘  so luong phan tu la nguyen to la’, demnt); 

{----------------------------------------Cau h-------------------------------------------} 

d:=A[2]-A[1]; j:=3; 

While (j<=n) And -1 do  j:=j+1; 

if j>n then Writeln(‘ mang vua nhap la cap so cong’) 

else Writeln(‘ mang vua nhap khong phai la cap so cong’); 

{------------------------------------------Cau i-----------------------------------------------} 

For i:=1 to n do 

For j:=i+1 to n-1 do  

If A[j]>A[j+1] then 

Begin {doi vi tri hai phan tu A[j] va A[j+1]} 

tg:=A[j];  

A[j]:=A[j+1];  

A[j+1]:=tg; 

End; 

Writeln(‘mang sau khi duoc sap xep la’); 

For i:=1 to n do write(A[i]: 5); 

Readln 

END.

Bài 15 b:  Viết chương trình nhập vào mảng gồm n phần tử (n<=100) tìm và hiển thị vị trí phần tử có giá trị lớn nhât, sau đó sắp xếp các phần tử theo thứ tự tăng dần và hiển thị các phần tử sắp xếp đó ra màn hình. 

Program   Tim_vi_tri; 

uses crt; 

var a:  array[1..100] of integer; 

var i,n,j, tg,max, vt:  integer; 

 begin 

  clrscr; 

   write(' nhap so phan tu cua mang '); 

   readln(n); 

   writeln(' moi nhap cac phan tu cua mang '); 

   for i:=1 to n do 

  begin 

   write('A', i,']= '); 

   readln(a[i]); 

  end; 

Max:=a[1]; vt:=1; 

   For i:=1 to n do 

   begin 

    If A[i]>max then 

     Begin 

      Max:=a[i]; vt:=i; 

     End;  

   End; 

Writeln('gia tri lon nhat la  ', max, ' nam o vi tri thu ',vt); 

for i:=1 to n-1 do 

   for j:=i+1 to n do 

    if a[i]>a[j] then 

   Begin 

    tg:=a[i]; 

    a[i]:=a[j]; 

    a[j]:=tg; 

   End; 

   writeln(' day sau khi sap xep la '); 

    for i:=1 to n do 

    write( a[i]: 4); 

 readln; 

End.

 Bài 15C:  Viết chương trình nhập mảng gồm n phần tử kiểu nguyên(n<=100) và cho ra màn hình phần tử xuât hiện nhiều nhất và số lần xuât hiện của nó trong mảng 

Program  Tansuat; 

Uses crt; 

var i,k,j,n,max:integer;  

b,st: array [1..100] of integer;  

begin  

clrscr; 

  write('Nhap so pt:');readln(n);  

   for i:=1 to n do  

    Begin  

      write('st[',i,']=');readln(st[i]);  

    End;  

b[i]:=0;  

   for i:=1 to n do  

      for j:=i to n do  

        if st[i]=st[j] then inc(b[i]);  

     max:=b[1];  

     for i:=1 to n do if b[i]>max then max:=b[i];  

    write0;  

    for i:=1 to n do  

      if max=b[i] then write(st[i],'  ');  

     write0;  

   Readln  

End.  

Bài 16. Viết chương trình nhập mảng gồm n (n<=100) phần tử rồi chèn vào một số bất kỳ vào một vị trí nào đó trong mảng, số cần chèn và vị trí chèn nhập từ bàn phím. 

Program   Chen; 

Uses crt; 

    Var   i,spt, so,vitri:  Integer; 

A:  Array[1..100] Of Integer; 

Begin 

Clrscr; 

     Writeln0; 

     Writeln0; 

    Write0; 

     Readln(spt); 

    For i:=1 To spt Do 

         Begin 

             Write0; 

            Readln(a[i]); 

        End; 

    Writeln; 

   Writeln0; 

     For i:=1 To spt Do  Write(a[i]: 6); 

  Writeln; 

      Write0; 

      Readln(so); 

     Write0; 

      Readln(vitri); 

      For i:=spt+1 Downto Vitri+1 Do 

          a[i]:=a[i-1];  a[vitri]:=so;  spt:=spt+ 1;      Writeln; 

     Writeln('MANG SAU KHI CHEN'); 

     For i:=1 To spt Do       Write(a[i]: 6);    Readln 

End.  

Bài 17. Viết chương trình nhập mảng gồm n  (n<=100)phần tử rồi xóa đi một phần tử  nào đó có vị trí nhập từ bàn phím 

Program  Xoa_Pt; 

    Var       i,spt,vitri: Integer; 

      a: Array[1..100] Of Integer; 

Begin 

     Writeln0; 

     Writeln0; 

     Writeln; 

     Write0; 

      Readln(spt); 

      For i:=1 To spt Do 

          Begin 

              Write0; 

             Readln(A[i]); 

         End; 

     Writeln; 

    Writeln0; 

    Writeln0; 

    Writeln; 

     For i:=1 To spt Do Write(a[i]: 6); 

     Writeln; 

    Writeln; 

    Write0;    Readln(vitri); 

   For i:=vitri to spt - 1 Do        a[i]:=a[i+1]; 

     spt:=spt - 1; 

      Writeln; 

       Writeln(' MANG SAU KHI XOA'); 

       Writeln0; 

        Writeln; 

         For  i:=1 to spt Do         Write(a[i]: 6); 

        Writeln;    Writeln; 

        Writeln('   Bam phim <Enter> de ket thuc '); 

    Readln 

End. 

Bài 18. Viết chương trình nhập mảng gồm n  (n<=100)phần tử rồi xóa đi những phần  tử trùng nhau trong mảng và in ra màn hình phần tử sau khi đã bỏ bớt. 

Program  Bo_so_trung; 

Uses crt; 

     Const       Max=100; 

     Var    A: Array[1..Max] Of Integer; 

    i,j,k,n: Integer; 

Begin 

     Writeln('XOA BO CAC SO TRUNG NHAU'); 

    Writeln0; 

    Writeln; 

     Write0;    Readln(n); 

    For i:=1 To N Do 

         Begin 

             Write0; 

            Readln(a[i]); 

        End; 

      i:=2; 

     While i <= N Do 

           Begin 

              j:=1; 

              While a[j] <> a[i] Do 

                 j:=j+1; 

           If j < i Then 

                Begin 

                     For k:=i to n-1 Do 

                        a[k]:=a[k+1]; 

                    n:=n-1; 

               End 

           Else 

             i:=i+1; 

      End; 

    Writeln; 

    Write0; 

     For i:=1 to n Do       Write(a[i]: 8); 

     Writeln; 

     Writeln('   Bam phim <Enter> de ket thuc '); 

   Readln 

End. 

Bài tập phần xâu:  

Bài tập1:   Chương trình nhập từ bàn phím các ký tự chương trình đếm số lần xuất hiện của mỗi ký tự 

Program    Dem_so_lan; 

Uses Crt ; 

  Var  a:  Array[ 'A'..'Z' ] of integer; 

          ch:  char ;  

          i:  byte ; 

    BEGIN 

      Clrscr ; 

       For ch:='A' to 'Z' Do a[ch]:=0 ;  

        Writeln (' Go phim 50 lan ') ; 

         For i:=1 To 50 Do 

           Begin 

           ch:=Readkey ;  

         ch:=Upcase(ch) ; 

         a[ch]:=a[ch] + 1 ;          

           End;  

       Writeln (' So lan xuat hien cac ki tu la: ') ; 

       For ch:='A' to 'Z' do  

        If a[ch] > 0 Then  

         Writeln (ch ‘xuat hien’, a[ch]:  4, ' lan. ');  

    Readln ;  

  END. 

Bài tập 2:  Nhập xâu cho trước kiểm tra có phải xâu đối xứng hay không? 

Program  Xau-doi-xung; 

Uses Crt;  

  Var   St:  string;  

           dx:  Boolean;  

           i, len:  byte;  

  BEGIN  

     Clrscr;  

     Write(' Nhap xau St = '); Readln(St);  

      dx:=True;       i:=1;        len:=Length(St);  

     While dx And (i<=(len div 2)) do  

          Begin  

              dx:=1;  

           I:=i+1;  

          End;  

        If dx then Write(' St la xau doi xung ')  

        Else  Write(St,’ khong phai la xau doi xung ') ;  

     Readln;  

  END.

 Bài tập 3:  Chương trình nhập vào họ tên của một người sau đó xóa hết ký tự trắng dư thừa 

Uses crt;  

  Const  Chu=['a'..'z'];  

  Var    Hoten:  string;  

           i,len:  byte;  

  BEGIN 

     Clrscr;  

      Write('Ho ten='); Readln(Hoten);  

       Len:=length(Hoten);  

        If Hoten[1] in Chu then Hoten[1]:=Upcase(Hoten[1]);  

         For i:=2 to len do  

             If -1And(Hoten[i] in Chu) then  

               Hoten[i]:=Upcase(Hoten[i]);  

          Write('Ho ten sau khi dieu chinh la:  ', Hoten);  

       Readln;  

  END.

 Bài tập 4:  Viết chương trình nhập vào một xâu, sau đó xuất ra xâu sau khi đã xóa hết ký tự số. 

Program  xoa_ky_tu_so; 

Uses  crt; 

Var I,k:  byte; 

S:   string; 

Ch:  char; 

Begin 

Clrscr; 

Writeln(‘nhap xau ‘); readln(s); 

K:=length(s); i:=1; 

For ch:=’0’ to ‘9’ do 

Begin  

While (i<=k) And (pos(ch,s))<>0 do 

Begin 

Delete(s,pos(ch,s),1); 

i:=i+1; 

End; 

End; 

Writeln(‘xau sau khi xoa het so la:  ’,s); 

Readln 

End. 

Bài 5:  Viết chương trình nhập vào xâu ký tự và xuất ra màn hình xâu sau khi đã bỏ hết ký tự trắng dư thừa. 

Program  xoa_ky_tu_trang; 

Uses  crt; 

Var I,k :  byte; 

S:  string; 

Begin 

Clrscr;  

Writeln(‘nhap xau’);   Readln(s); 

While (s[1]=’ ‘ do Delete(s,1,1);  

While (s[lengh(s)] =’ ‘ do Delete(s,length(s),1); 

While pos(‘  ‘,s)<>0 do Delete(s,pos(‘  ‘,s),1); 

Writeln(‘ xau sau khi xoa het ky tu trang du thua la’, s); 

Readln 

End. 

 Bài 6:  Viết chương tình nhập vào một xâu, sau đó xóa hết ký tự trắng dư thừa và đổi các ký tự đầu của mỗi từ thành chữ hoa. 

Program  Doi_chu; 

Uses  crt; 

Var I,k :  byte; 

S:  string; 

Begin 

Clrscr;  

Writeln(‘nhap xau’);   Readln(s); 

While (s[1]=’ ‘ do Delete(s,1,1);  

While (s[lengh(s)] =’ ‘ do Delete(s,length(s),1); 

While pos(‘  ‘,s)<>0 do Delete(s,pos(‘  ‘,s),1); 

K:=length(s); 

For i:=1 to k do if ( s[i]=’ ‘ )And1 do upcase1; 

Readln 

End.  

Bài tập phần bản ghi, file

Bài tập 1:  Chương trình nhập danh sách học sinh gồm Họ tên, tuổi, lớp của học sinh,in ra danh sách vừa nhập 

Program  danh_sach; 

Uses  Crt; 

  Const n=15; 

  Type  Danhsach=record 

   holot:  string[25]; 

   ten:  string[10]; 

   tuoi:  0..99; 

   lop:  string[3]; 

                 End; 

  Var  ds:  array [1..n] of Danhsach; 

           i:  byte; 

  BEGIN 

   ClrScr; 

   Writeln('Hay nhap danh sach hoc sinh:  '); 

    Writeln; 

    For i:=1 to n do 

       Begin 

           Writeln('Thong tin hoc sinh thu ',i); 

           Write('Cho ho lot:  '); Readln(ds[i].holot); 

           Write('Cho ten:  '); Readln(ds[i].ten); 

           Write('Cho tuoi:  '); Readln(ds[i].tuoi); 

           Write('Cho lop:  '); Readln(ds[i].lop); 

          Writeln; 

       End; 

    Writeln('Danh sach hoc sinh: '); 

      For i:=1 to n do 

         With ds[i] do Writeln(holot: 20,ten: 10,tuoi: 4,lop: 5); 

       Writeln; 

      Write('Bam Enter de ket thuc...'); 

     Readln; 

  END. 

Bài tập 2:   Chương trình nhập danh sách học sinh gồm Họ tên, tuổi, lớp. Chương trình in ra danh sách sau khi sắp xếp theo thứ tự tăng dần. 

Program  sap_xep; 

Uses  Crt; 

  Const n=5; 

  Type  

      Danhsach=record 

           holot:  string[25]; 

           ten:  string[10]; 

           tuoi:  0..99; 

           lop:  string[3]; 

        End ; 

  Var   ds:  array [1..20] of Danhsach; 

        i,j:  byte; 

        f:  file of Danhsach; 

   Procedure Doi(i,j:  byte); 

    Var tg:  Danhsach; 

      Begin 

          tg:=ds[i]; 

          ds[i]:=ds[j]; 

          ds[j]:=tg; 

      End; 

   BEGIN 

    ClrScr; 

     Writeln('Nhap danh sach hoc sinh tu file data.dat:  '); 

     Writeln; 

      Assign(f,'data.dat'); Reset(f); 

      For i:=1 to n do Read(f,ds[i]); 

     Close(f); 

     For i:=1 to n-1 do 

        For j:=i+1 to n do 

        begin 

           If (ds[i].ten>ds[j].ten) then Doi(i,j) 

           Else 

            If (ds[i].ten=ds[j].ten)And(ds[i].holot>ds[j].holot) then Doi(i,j); 

       end; 

     Writeln('Danh sach hoc sinh: '); 

      For  i:=1 to n do 

         With ds[i] do Writeln(holot: 20,ten: 11,tuoi: 4,lop: 5); 

       Writeln; 

       Write('Bam Enter de ket thuc...'); 

      Readln; 

   END.

 Bài tập 3:  Thông tin về mỗi học sinh là một bản ghi gồm các trường:  Họđệm:  một xâu 25 kí tự. Tên: một xâu 10 kí tự. Tuổi: một số nguyên hai chữ số. Lớp: một xâu hai chữ số và một chữ cái viết hoa Một file bản ghi chứa một danh sách một lớp gồm 20 học sinh. Hãy lập chương trình hiển thị danh sách lên màn hình, mỗi người một dòng.    

Program Nhaphocsinh; 

Uses  Crt;   Const n=5; 

  Type  Danhsach=record 

                 holot:  string[25]; 

                 ten:  string[10]; 

                 tuoi:  0..99; 

                 lop:  string[3]; 

               end; 

  Var   ds:  Danhsach; 

        i:  byte; 

        f:  file of Danhsach; 

  BEGIN 

   ClrScr; 

   Writeln('Danh sach hoc sinh tu file bai2.dat'); 

   Writeln; 

   Assign(f,'bai2.dat'); Reset(f); 

   For  i:=1 to n do 

     Begin 

        Read(f,ds); 

         With ds do Writeln(holot: 20,ten: 11,tuoi: 4,lop: 5); 

      End; 

    Close(f); 

    Writeln; 

     Write('Bam Enter de ket thuc...'); 

     Readln; 

  END. 

Bài tập 4:  Một file bản ghi chứa một danh sách học sinh, thông tin về mỗi học sinh giống như bài trên. Hãy lập chương trình tạo một file bản ghi khác chứa danh sách đó, mỗi bản ghi gồm các trường:   Họtên:  một xâu 35 kí tự.  Tuổi:  một số nguyên hai chữ số.  Khối:  một số nguyên hai chữ số. Lớp:  một chữ cái viết hoa 

Prorgam   file_banghi; 

Uses Crt; 

    Type Danhsach1=record 

                 holot:  string[25]; 

                 ten:  string[10]; 

                 tuoi:  0..99; 

                 lop:  string[3]; 

              End; 

            Danhsach2=record 

                hoten:  string[35]; 

                tuoi:  byte; 

                khoi:  byte; 

                lop:  char; 

              End; 

  Var  ds1:  Danhsach1; 

          ds2:  Danhsach2; 

          f1:  file of Danhsach1; 

          f2:  file of Danhsach2; 

          c:  integer; 

  BEGIN 

Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang  

ĐT:  0972.311.481 Trang 35  

    ClrScr; 

     Writeln('Ghi tu file bai3.dat sang bai3n.dat: '); 

      Writeln; 

      Assign(f1,'bai3.dat');  Reset(f1); 

      Assign(f2,'bai3n.dat'); Rewrite(f2); 

      While not Eof(f1) do 

         Begin 

            Read(f1,ds1); 

            With ds1 do 

               Begin 

                 ds2.hoten:=holot+ten; 

                 val(copy(lop,1,2),ds2.khoi,c); 

                 ds2.tuoi:=tuoi; 

                 ds2.lop:=UpCase(lop[3]); 

                 Write(f2,ds2); 

               End; 

         End; 

       Close(f1); Close(f2); 

      Writeln; 

     Writeln('Bam Enter de ket thuc!'); 

    Readln; 

   END. 

Bài tập về chương trình con

 Bài tập 1. Dùng thủ tục chuyển một số tự nhiên n cho trước sang hệ cơ số 2. 

Procedure Change ( n:  integer ; Var St:  String ) ; 

b:  Array[0..  1] Of Char = ('0', '1') ; 

  Var 

    du, So:  Integer ; 

    S:  String ; 

  Begin 

    S:='' ; {tao xau rong} 

    So:=n ; 

      Repeat 

          Du:= So mod 2 ; 

          So:=So div 2 ; 

          S:=b[du] + s ; 

      Until So = 0 ; 

      St:=S ; 

    End ; Bài tập 2:  Dùng thủ tục giải phương trình bậc hai ax2 + bx + c = 0 

Uses Crt ;  

Var  a, b, c, x1, x2:  real;  

{================================} 

 Procedure  Nhapabc(var  aa,bb,cc:  real);  

  Begin  

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

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

     Write('c='); Readln(cc);  

  End;  

{=================================}  

 Procedure  GPTB2;  

  Var Delta:  real;  

   Begin  

      Delta:=sqr(b)-4*a*c;  

      If Delta<0 then Writeln('Phuong trinh vo nghiem.')  

     Else  

         If Delta=0 then  

                Begin  

                   Write('Phuong trinh co nghiem kep:  '); 

                 Write0: 8: 2);  

             End  

         Else  

          Begin  

              x1:=0)/0;  

              x2:=0)/0;  

              Writeln('Phuong trinh co 2 nghiem phan biet la: ');  

              Writeln('X1=',x1: 8: 2, 'X2=',x2: 8: 2);  

         End;  

End;  

{============================================} 

BEGIN { CT chính }  

   Clrscr;  

     Writeln(' Giai Phuong Trinh Bac Hai Voi Cac He So: ');  

     Nhapabc(a,b,c);  

     If a<>0 then  GPTB2  

      Else  Writeln(' Khong phai phuong trinh bac hai ');  

     Readln ;  

 END.

 Bài tập 3:  Viết chương trình thực hiện lần lượt các công việc sau:  

 Lập thủ tục nhập ba số thực dương a, b, c từ bàn phím. 

 Lập thủ tục kiểm tra xem ba số trên có lập thành ba cạnh của tam giác hay không ?  

 Viết thủ tục tính diện tích của tam giác. 

 Viết thủ tục tính các trung tuyến của tam giác. 

 Viết hoàn thiện chương trình chính.  

Program   Chuong_trinh; 

Uses Crt; 

  Var  a, b, c:  real ; 

  {================================} 

  Procedure Nhap(Var a, b, c:  real); 

      Procedure input (Var a:  real; tenbien:  Char); 

       Begin 

           Repeat 

               Write0; Readln(a); 

           Until (a>=0); 

       End; 

  Begin  

       Input(a, 'a'); 

       Input(b, 'b'); 

       Input(c, 'c'); 

  End;      

  Procedure Kiemtra(a, b, c:  Real); 

  Begin 

     If 0 And 0 And 0 then 

       Writeln(a:0:2, ', ', b: 0: 2, '  va  ', c: 0: 2,   ' lap thanh ba canh cua tam giac ') 

           Else  Writeln('Khong lap thanh ba canh cua tam giac') ; 

  End; 

 Procedure Trung_tuyen (a, b, c:  Real); 

  Var    ma, mb, mc:  real; 

    Begin 

       ma:=sqrt0+2*sqr(c)-sqr(a))/4); 

       mb:=sqrt0+2*sqr(c)-sqr(b))/4); 

       mc:=sqrt0+2*sqr(b)-sqr(c))/4); 

       Writeln('Cac trung tuyen cua tam giac la:  ') ; 

       Writeln('ma=', ma: 0: 2, '   mb=', mb: 0: 2, '   mc=', mc: 0: 2); 

    End; 

  {================================} 

  Procedure Dientich (a, b, c:  real); Var p, S:  real; 

  Begin 

       p:=0/2; 

       S:=sqrt0*0*0); 

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

   End; 

  {================================} 

  BEGIN  

     Clrscr; 

       Nhap(a, b, c); 

       Kiemtra(a, b, c); 

       Dientich(a, b, c); 

       Trung_tuyen(a, b, c); 

       Readln; 

   END. 

Bài tập 4:  Số Hoàn Hảo là số có tổng các ước của nó (trừ nó) bằng chính nó Ví dụ:  6 = 1 + 2 + 3 a. Viết chương trình kiểm tra xem 1 số có là số hoàn hảo không  b. Liệt kê tất cả số hoàn hảo từ 1..2000 và đếm xem có bao nhiêu số 

Program  So_hoan_hao; uses crt;  

var n,i,d,k,j: integer;  

Procedure hoanhao;  

Begin  

     d:=0;  

     for i:=1 to n-1 do  

         if n mod i=0 then d:=d+i;  

       if d=n then writeln(' So vua nhap la so hoan hao')  

       else writeln(' So vua nhap khong la so hoan hao');  

end;  

Procedure  Viet_len;  

Begin  

      write0;  

       k:=0;  

        for i:=1 to 2000 do  

           Begin  

                 d:=0;  

                  for j:=1 to i-1 do  

                       if i mod j=0 then d:=d+j;  

                  if d=i then  

Begin  

  write(i: 5);      k:=k+1;  

End; 

End; 

writeln;  

       writeln0;  

End;  

Begin  

      clrscr;  

      write(' Nhap n=');  readln(n);  

      hoanhao;  

      vietlen;  

      readln;  

End.    

Bài 5:   Nhập vào 1 số nguyên gồm 4 chữ số viết chương trình con thực hiện 

 Kiểm tra tình chắn lẻ 

 Kiểm tra xem có phải là số nguyên tố không

  Kiểm tra xem có phải là số chính phương không Sau đó trên chương trình chính kiểm tra và trả lời số vừa nhập thuộc số nào? 

Program  chuong_trinh;  

uses crt;  

var i,n,k,d: integer;  

    ok:  boolean; 

Function  chanle(n: integer): boolean;  

Begin        ok:=true;  

      if n mod 2<>0 then ok:=false;  

       chanle:=ok;  

End; Function  nguyento(n: integer): boolean; Begin  

       ok:=true;      d:=0;  

       for i:=2 to n-1 do  

            if n mod i=0 then d:=d+1;  

        if d<>1 then ok:=false;  

        nguyento:=ok; End;  

Function  chinhphuong(n: integer): boolean; 

Begin         ok:=true;       k:=trunc(sqrt(n));  

         if sqr(k)<>n then ok:=false;  

        chinhphuong:=ok; 

End; 

Begin  

       clrscr;  

        write(' Nhap n=');readln(n);  

         if chanle(n) then writeln(' So vua nhap la chan')  

          else writeln(' So vua nhap la so le');  

        if nguyento(n) then writeln(' So vua nhap la nguyen to')  

        else writeln(' So vua nhap khong phai la so nguyen to');  

        if chinhphuong(n) then writeln(' So vua nhap la so chinh phuong')  

        else writeln(' So vua nhap khong la so chinh phuong');  

     readln;  

End.   

Bài 6. Viết chương trình con tính a Giai Thừa với a nhập từ bàn phím 

Program giaithua; 

uses crt; 

var a:    integer; 

Function  gt(n: byte):  Longint;  

Var    s:  Longint;    i:  byte; 

Begin      s:=1;      For i:=2 to n do  s:=s*i; 

    gt:=s; 

End; Begin 

clrscr; 

 write ('Nhap so can tinh giai thua:  ');readln(a);

        if a:=0 or a:=1 then 

writeln0   &n

<< Bài Viết Khác
Danh mục
Game Mobile
Phần Mềm - Ứng Dụng
Hình Nền Đẹp
Kinh Nghiệm Thủ Thuật
Giải Trí Thư Giản
Phim Tổng Hợp
Hổ Trợ Học Tập
Tiện Ích Wap Online
Điện Thoại Bạn Có Chưa?
game online - kinh nghiem thu thuat - app android - game android - phim hanh dong - lap trinh c - lap trinh pascal - giai tri
U-ON

Polaroid