Một Số Bài Tập Nâng Cao NNLT Pascal - Tài Liệu Text - 123doc

Tải bản đầy đủ (.doc) (237 trang)
  1. Trang chủ
  2. >>
  3. Công Nghệ Thông Tin
  4. >>
  5. Kỹ thuật lập trình
Một số bài tập nâng cao NNLT Pascal

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (378.44 KB, 237 trang )

Tuyển chọn một số bài toán tin cơ bảnGiới thiệuTrong tài liệu này tuyển chọn một số bài toán tin cơ bản ở nhiều nguồn khác nhau. Nó thường xuấthiện trong các kỳ thi học sinh giỏi các cấp.Các bài tập trong tài liệu này tương đối đơn giản. Không sử dụng bất kỳ một thuật toán đặc biệt(đệ quy - quay lui, quy hoạch động, tham lam ...) nào, mỗi bài có thể có nhiều cách giải khác nhau.Nhằm mục đích ôn lại các loại cấu trúc dữ liệu đơn giản và mối tương quan giữa các cấu trúc này.Nhằm hình thành tư duy lập trình bước đầu cho bạn đọc.Để có thể tham khảo tốt nhất về tài liệu này các bạn cần đọc thêm kiến thức về chương trình con,nhập xuất dữ liệu bằng tệp văn bản.Nếu cảm thấy thú vị các bạn có thể tham khảo thêm một số tài liệu sau:o Tuyển chọn 100 bài tập lập trình cơ bản (code pascal và c++).o Tuyển chọn 50 bài toán đệ quy - quay lui - vét cạn (code pascal và c++).o Tuyển chọn 50 bài toán quy hoạch động (code pascal và c++).o Tuyển chọn 50 toán đồ thị (code pascal và c++).Trần Văn SĩPage 1oTuyển chọn 20 bài toán về cấu trúc dữ liệu đặc biệt.Cấu trúc cơ bản, If... Then... ElseBài 1: Chữ sốViết chương trình cho biết chữ số hàng nghìn, hàng trăm, hàng chục, hàng đơn vị của một số có 4chữ số.Dữ liệu vào: Lưu trong tệp ChuSo.inp một số nguyên dương có 4 chữ số.Dữ liệu ra: Ghi vào tệp ChuSo.out có cấu trúc như ví dụ dưới đây.Ví dụ:ChuSo.inp1234ChuSo.outChu so hang nghin: 1 Chu so hangtram: 2 Chu so hang chuc: 3Chương trình:Program ChuSo;Varf i , f o : text;n,Nghin,Tram,Chuc,DonVi:integer;Begin assign( f i , ' C h u S o . i n p ' ) ;close( f i ) ;reset( f i ) ; r e a d ( f i , n ) ;n:=n mod 10 00;n:=n mod 10 0;DonVi:=n mod 10;Nghin:=n div 1000;Tram:=n div 100;Chuc:=nrewrite( f o ) ;div10;assign( f o , ’ C h u S o . o u t ’ ) ;writeln(fo,’Chuso hang nghin:’,Nghin);writeln(fo,’Chus o hang t r a m : ’writeln(fo,’Chus o hang chuc:’ , C h u c ) ;writeln(fo,’Chus o hang don vi:, Tr a m ) ;’ , D o n Vi ) ;close( f o ) ;End.Bài 2: Hình chữ nhậtTính diện tích và chu vi hình chữ nhậtDữ liệu vào: Lưu trong tệp Hcn.inp hai số nguyên dương (a)and(c+a>b)then Kt:=true else Kt:=false;i f ( k t = t r u e ) then BeginCv:=a+b+c; p : = C v / 2 ;Dt:=sqrt(p*(p-a)*(p-b)*(p-c));End;assign( f o , ’ Ta m g i a c . o u t ’ ) ; rewrite( f o ) ;i f ( K t = f a l s e ) then w r i t e ( f o , ’ N o ’ ) ; i f ( K t = t r u e ) then w r i t e ( f o , C v, ’’ , D t : 4 : 2 ) ; close( f o ) ;End.Bài 4: Phương trình bậc hai.Tìm nghiệm của phương trình bậc hai ax2+bx+c=0 (a^0).Dữ liệu vào: Lưu trong tệp Ptb2.inp 3 số thực lần lượt là 3 hệ số a,b,c.Dữ liệu ra: Ghi vào tệp Ptb2.out với cấu trúc như sau:+ Ghi “Ptvn” nếu phương trình vô nghiệm.+ Ghi hai nghiệm x1, x2 (nếu là nghiệm kép thì ghi hai lần).Ví dụ:Ptb2.inp2 3 4Ptb2.inp2 4 2Ptb2.inp3 9 6Ptb2.outPtvnPtb2.out-1.00 -1.00Ptb2.out-1.00 -2.00Chương trình:x1:=(-b+sqrt(Delta))/(2*a);x2:=(-b-sqrt(Delta))/(2*a);End;assign( f o , ’ P t b 2 . o u t ’ ) ;rewrite( f o ) ;i f ( D e l t a < 0 ) then w r i t e ( f o , ' P t v n ' ) ; i f ( D e l t a > = 0 ) thenProgram P t b 2 ;Varfi,fo: text;a,b,c,Delta:longint;x1,x2: real;Begin assign( f i , ' P t b 2 . i n p ' ) ;reset( f i ) ;read(fi,a,b,c);close( f i ) ;Delta:=b*b4*a*c;i f ( D e l t a > = 0 ) thenBeginwrite(fo,x1:4:2,’’,x2:4:2);close( f o ) ;End.Bài 5: KaraokeMột điểm kinh doanh dịch vụ KARAOKE mở cửa từ 9h00 đến 23h00 tất cả các ngày trongtuần. Cách thức tính tiền của điểm KARAOKE này như sau:+ Từ thứ 2 đến thứ 6: Từ 9h00 đến 14h00 giá 40.000đ/1 giờ, từ 14h00 đến 23h00 giá50.000đ/1 giờ. Nếu khách hàng sử dụng nhiều hơn 3 giờ thì mỗi giờ tiếp theo sau giờ thứ 3 được giảmgiá 30% so với đơn giá.+ Thứ 7, Chủ nhật: Giá 60.000đ/1 giờ.Dữ liệu vào: Lưu trong tệp karaoke.inp với cấu trúc:Tuyen chon mot so bài toan tin ca ban+ Dòng thứnhất: Lưu mộtsố nguyên duynhất nằm trongphạm vi từ 2đến 8 cho biếtlà ngày thứmấy trong tuần(từ thứ hai đếnchủ nhật).+ DòngBùi Hong DânPage 6Tuyen chon mot so bài toan tin ca banthứ hai: Lưu 2số nguyên nằmtrong phạm vitừ 9 đến 23. Sốnguyên thứnhất cho biếtgiờ bắt đầu sửdụng dịch vụ,số nguyên thứhai cho biết giờkết thúc sửBùi Hong DânPage 7Tuyen chon mot so bài toan tin ca bandụng dịch vụ.Hai số nguyêncách nhau mộtkhoảng trắngvà số nguyênthứ hai luônlớn hơn sốnguyên thứnhất.Dữ liệu ra:Lưu vàoBùi Hong DânPage 8Tuyen chon mot so bài toan tin ca bantệpkaraoke.out1 sốnguyên duynhất chobiết số tiềnkhách hàngphải trả đểsử dụngdịch vụ.Yêu cầu: ViếtBùi Hong DânPage 9Tuyen chon mot so bài toan tin ca banchương trìnhnhập dữ liệu từtệp karaoke.inpvà ghi kết quảra tệpkaraoke.out.Ví dụ:karaoke.inp59 13Bùi Hong Dânkaraoke.out148000Page 10Tuyen chon mot so bài toan tin ca banGiải thích:148000 =(3*40000)+(1*400001*30%*40000)Chươngtrình:ProgramKaraoke;Va rBùi Hong DânPage 11Tuyen chon mot so bài toan tin ca banfi,fo:text;Bùi Hong DânPage 12Tuyen chon mot so bài toan tin ca bangbd,gkt,thuBùi Hong DânPage 13Tuyen chon mot so bài toan tin ca ban,tg:byte;tBùi Hong DânPage 14Tuyen chon mot so bài toan tin ca banien:longint;Bùi Hong DânPage 15Tuyen chon mot so bài toan tin ca banBeginassign( f i , 'karaoke.inp');resetBùi Hong DânPage 16Tuyen chon mot so bài toan tin ca ban(fi);readlnBùi Hong DânPage 17Tuyen chon mot so bài toan tin ca ban(fi,thu);reBùi Hong DânPage 18Tuyen chon mot so bài toan tin ca banadln(fi,gbd,Bùi Hong DânPage 19Tuyen chon mot so bài toan tin ca bangkt);close(Bùi Hong DânPage 20Tuyen chon mot so bài toan tin ca banfi);tg:=gktBùi Hong DânPage 21Tuyen chon mot so bài toan tin ca bangbd;ifBùi Hong Dân(thu>=Page 22Tuyen chon mot so bài toan tin ca ban2)and(thu

Từ khóa » Thuật Toán Vét Cạn Trong Pascal