1. Trang chủ
  2. » Công Nghệ Thông Tin

Một số bài tập nâng cao NNLT Pascal

237 168 5

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Giới thiệu Trong 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ất hiệ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++). o Tuyển chọn 20 bài toán về cấu trúc dữ liệu đặc biệt.

Tuyển chọn số toán tin Giới thiệu Trong tài liệu tuyển chọn số tốn tin nhiều nguồn khác Nó thường xuất kỳ thi học sinh giỏi cấp Các tập tài liệu tương đối đơn giản Không sử dụng thuật toán đặc biệt (đệ quy - quay lui, quy hoạch động, tham lam ) nào, có nhiều cách giải khác Nhằm mục đích ơn lại loại cấu trúc liệu đơn giản mối tương quan cấu trúc Nhằm hình thành tư lập trình bước đầu cho bạn đọc Để tham khảo tốt tài liệu bạn cần đọc thêm kiến thức chương trình con, nhập xuất liệu tệp văn Nếu cảm thấy thú vị bạn tham khảo thêm số tài liệu sau: o Tuyển chọn 100 tập lập trình (code pascal c++) o Tuyển chọn 50 toán đệ quy - quay lui - vét cạn (code pascal c++) o Tuyển chọn 50 toán quy hoạch động (code pascal c++) o Tuyển chọn 50 toán đồ thị (code pascal c++) Trần Văn Sĩ Page o Tuyển chọn 20 toán cấu trúc liệu đặc biệt Cấu trúc bản, If Then Else Bà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ị số có chữ số Dữ liệu vào: Lưu tệp ChuSo.inp số nguyên dương có chữ số Dữ liệu ra: Ghi vào tệp ChuSo.out có cấu trúc ví dụ Ví dụ: ChuSo.inp 1234 ChuSo.out Chu so hang nghin: Chu so hang tram: Chu so hang chuc: Chương trình: Program ChuSo; Var f 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:=n rewrite( f o ) ; div 10; assign( f o , ’ C h u S o o u t ’ ) ; writeln(fo,’Chu so hang nghin: ’,Nghin); writeln(fo,’Chu s o hang t r a m : ’ writeln(fo,’Chu s o hang chuc:’ , C h u c ) ; writeln(fo,’Chu s o hang don vi: , Tr a m ) ; ’ , D o n Vi ) ; close( f o ) ; End Bài 2: Hình chữ nhật Tính diện tích chu vi hình chữ nhật Dữ liệu vào: Lưu 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 Begin Cv:=a+b+c; p : = C v / ; 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 : : ) ; close( f o ) ; End Bài 4: Phương trình bậc hai Tìm nghiệm phương trình bậc hai ax2+bx+c=0 (a^0) Dữ liệu vào: Lưu tệp Ptb2.inp số thực hệ số a,b,c Dữ liệu ra: Ghi vào tệp Ptb2.out với cấu trúc sau: + Ghi “Ptvn” phương trình vơ nghiệm + Ghi hai nghiệm x1, x2 (nếu nghiệm kép ghi hai lần) Ví dụ: Ptb2.inp Ptb2.inp Ptb2.inp Ptb2.out Ptvn Ptb2.out -1.00 -1.00 Ptb2.out -1.00 -2.00 Chương trình: x1:=(-b+sqrt(Delta))/(2*a); x2:=(-b-sqrt(Delta))/(2*a); End; assign( f o , ’ P t b o u t ’ ) ; rewrite( f o ) ; i f ( D e l t a < ) then w r i t e ( f o , ' P t v n ' ) ; i f ( D e l t a > = ) then Program P t b ; Var fi,fo: text; a,b,c,Delta: longint; x1,x2: real; Begin assign( f i , ' P t b 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 > = ) then Begin write(fo,x1:4:2,’ ’,x2:4:2); close( f o ) ; End Bài 5: Karaoke Một điểm kinh doanh dịch vụ KARAOKE mở cửa từ 9h00 đến 23h00 tất ngày tuần Cách thức tính tiền điểm KARAOKE sau: + Từ thứ đến thứ 6: Từ 9h00 đến 14h00 giá 40.000đ/1 giờ, từ 14h00 đến 23h00 giá 50.000đ/1 Nếu khách hàng sử dụng nhiều sau thứ giảm giá 30% so với đơn giá + Thứ 7, Chủ nhật: Giá 60.000đ/1 Dữ liệu vào: Lưu tệp karaoke.inp với cấu trúc: Tuyen chon mot so toan tin ca ban + Dòng thứ nhất: Lưu số nguyên nằm phạm vi từ đến cho biết ngày thứ tuần (từ thứ hai đến chủ nhật) + Dòng Bùi Hong Dân Page Tuyen chon mot so toan tin ca ban thứ hai: Lưu số nguyên nằm phạm vi từ đến 23 Số nguyên thứ cho biết bắt đầu sử dụng dịch vụ, số nguyên thứ hai cho biết kết thúc sử Bùi Hong Dân Page Tuyen chon mot so toan tin ca ban dụng dịch vụ Hai số nguyên cách khoảng trắng số nguyên thứ hai lớn số nguyên thứ Dữ liệu ra: Lưu vào Bùi Hong Dân Page Tuyen chon mot so toan tin ca ban tệp karaoke.out số nguyên cho biết số tiền khách hàng phải trả để sử dụng dịch vụ Yêu cầu: Viết Bùi Hong Dân Page Tuyen chon mot so toan tin ca ban chương trình nhập liệu từ tệp karaoke.inp ghi kết tệp karaoke.out Ví dụ: karaoke.inp 13 Bùi Hong Dân karaoke.out 148000 Page 10 Tuyen chon mot so toan tin ca ban get if you call Dispose or Freemem with an invalid pointer (notably, Nil) Lỗi phép toán Con trỏ Lỗi xảy có lệnh Dispose FreeMem trỏ Nil không xác định 205 Floating point overflow You are trying to use or produce too large real numbers Lỗi tràn số Lỗi xãy có lệnh sử dụng sinh số thực lớn Bùi Hong Dân Page 223 Tuyen chon mot so toan tin ca ban 206 Floating point underflow You are trying to use or produce too small real numbers Lỗi tràn số Lỗi xãy có lệnh sử dụng sinh số thực nhỏ 207 Invalid floating point operation Can occur if you try to calculate the square root or logarithm of a negative number Lỗi số khơng xác định Lỗi xảy có phép tính tốn thức hàm Log số âm Bùi Hong Dân Page 224 Tuyen chon mot so toan tin ca ban 210 Object not initialized When compiled with range checking on, a program will report this error if you call a virtual method without having called istr constructor Đối tượng khơng có giá trị ban đầu Khi biên dịch với trình có Kiểm tra Vùng (RangeChecking) mở, chương trình báo lỗi có lệnh gọi phương pháp ảo (?) khơng có đối tượng xây dựng (?) 211 Call to abstract method Your program Bùi Hong Dân Page 225 Tuyen chon mot so toan tin ca ban tried to execute an abstract virtual method Abstract methods should be overridden, and the overriding method should be called Trừu tượng hoá phương pháp (?) Chương trình có thi hành phương pháp ảo trừu tượng (?) Phương pháp trừu tượng nên ghi đè, phương pháp ghi đè nên gọi thay 212 Stream registration error This occurs when an invalid type is registered in the Bùi Hong Dân Page 226 Tuyen chon mot so toan tin ca ban objects unit Lỗi đăng ký luồng Lỗi xảy kiểu biến không hợp lệ đăng ký thư viện Object 213 Collection index out of range You are trying to access a collection item with an invalid index(objects unit) Thu thập danh mục vùng Lỗi xãy có lệnh truy cập thơng tin thu thập với danh mục không xác định (lỗi thư viện Object) Bùi Hong Dân Page 227 Tuyen chon mot so toan tin ca ban 214 Collection overflow error The collection has reached its maximal size, and you are trying to add another element (objects unit) Thông tin thu thập tràn nhớ Những thông tin thu thập đạt giới hạn lưu trữ, có lệnh thêm vào thông tin (lỗi thư viện Object) 215 Arithmetic overflow error This error is reported when the result of an arithmetic operation is outside of its supported range Bùi Hong Dân Page 228 Tuyen chon mot so toan tin ca ban Contrary to Turbo Pascal, this error is only reported for 32-bit or 64- bit arithmetic overflows This is due to the fact that everything is converted to 32-bit or 64-bit before doing the actual arithmetic operation Lỗi tràn số học Lỗi xảy kết phép tốn số học nằm ngồi giới hạn hỗ trợ biến Trái với Turbo Pascal, lỗi báo cho phép toán số học hệ 32-bit 64-bit Nguyên nhân liệu dịch sang thông tin 32-bit 64-bit Bùi Hong Dân Page 229 Tuyen chon mot so toan tin ca ban trước thực thao tác tính tốn số học 216 General Protection fault The application tried to access invalid memory space This can be caused by several problems: Lỗi bảo vệ chung (?) Ứng dụng truy cập vào vùng nhớ không hợp lệ Lỗi xãy khi: Bùi Hong Dân Page 230 Tuyen chon mot so toan tin ca ban D e f e r e n c i n g Bùi Hong Dân Page 231 Tuyen chon mot so toan tin ca ban a n i l p o i n Bùi Hong Dân Page 232 Tuyen chon mot so toan tin ca ban t e r T r u y c ậ Bùi Hong Dân Page 233 Tuyen chon mot so toan tin ca ban p v o c o n Bùi Hong Dân Page 234 Tuyen chon mot so toan tin ca ban t r ỏ N i l Trying to access memory which is out of bounds (for example, calling move with an Bùi Hong Dân Page 235 Tuyen chon mot so toan tin ca ban invalid length) Truy cập vào vùng nhớ nằm giới hạn 217 Unhandled exception occurred An exception occurred, and there was no exception handler present The sysutils unit installs a default exception handler which catches all excpetions and exits gracefully 219 Invalid typecast Thrown when an invalid typecast is attempted on a class using the as operator This error is also thrown when an Bùi Hong Dân Page 236 Tuyen chon mot so toan tin ca ban object or class is typecast to an invalid class or object and a virtual method of that class or object is called This last error is only detected if the -CR compiler option is used 227 Assertion failed error An assertion failed, and no AssertErrorProc procedural variable was installed Bùi Hong Dân Page 237 ... If Then Else Bà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ị số có chữ số Dữ liệu vào: Lưu tệp ChuSo.inp số nguyên dương có chữ số Dữ liệu ra:... sử dụng dịch vụ, số nguyên thứ hai cho biết kết thúc sử Bùi Hong Dân Page Tuyen chon mot so toan tin ca ban dụng dịch vụ Hai số nguyên cách khoảng trắng số nguyên thứ hai lớn số nguyên thứ Dữ... ’ ’ , D t : : ) ; close( f o ) ; End Bài 4: Phương trình bậc hai Tìm nghiệm phương trình bậc hai ax2+bx+c=0 (a^0) Dữ liệu vào: Lưu tệp Ptb2.inp số thực hệ số a,b,c Dữ liệu ra: Ghi vào tệp Ptb2.out

Ngày đăng: 19/08/2019, 07:39

Xem thêm:

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w