Bùi Thế Tâm

Blog về Tin học, Toán học, Du lịch, Lịch sử

Archive for the ‘Tin học – lập trình’ Category

Bốn đề thi trắc nghiệm môn Lập trình C và C++

Posted by ngocson on 29/04/2010

Hình thức thi trắc nghiệm đã có từ rất lâu. Ưu điểm của hình thức thi này là có thể lập trình cho máy tính ra đề tự động và chấm, hoặc nếu in ra giấy thì người hoàn toàn không có trình độ chuyên môn cũng có thể chấm được (chỉ cần biết đọc biết viết).

Có 3 loại câu trong đề thi trắc nghiệm:

- Loại thứ nhất: nêu câu hỏi, nêu các phương án trả lời là A B C D, người làm bài chọn lấy 1 phương án (ví dụ C). Đây là loại dễ nhất, người làm bài chọn bừa cũng có khả năng được 1/4 số điểm của câu. Để tránh sinh viên chọn bừa, có thày áp dụng cách tính điểm: chọn đúng sẽ nhận trọn số điểm của câu, chọn sai sẽ trừ 1/4 số điểm, bỏ trắng không chọn thì được 0 điểm.

- Loại thứ hai:  nêu câu hỏi, nêu các phương án trả lời là A B C D, người làm bài chọn nhiều phương án trả lời đúng (ví dụ B D).

- Loại thứ ba: nêu một biểu thức toán học hay một quy trình tính toán, hoặc nêu một chương trình máy tính, người làm bài phải tự viết ra kết quả tính toán. Đây là loại khó nhất trong các câu hỏi, nhưng đánh giá được chính xác kiến thức của sinh viên. Loại này cũng có thể chuyển được về Loại thứ nhất nếu cho 4 phương án trả lời.

Dưới đây trình bày 4 đề thi trắc nghiệm sử dụng loại câu hỏi thứ ba. Mỗi đề có 10 câu, mỗi câu được 1 điểm. Đây là các đề thi trong bộ nhiều đề mà tác giả đã dùng trong nhiều năm từ 2000 – 2009 để kiểm tra cuối học kỳ (tại Khối chuyên Toán – Tin, Đại học Khoa học tự nhiên Hà Nội). Khi in các đề này không được in số đề, các câu trong 1 đề cũng không có số thứ tự câu, như vậy sẽ hạn chế sinh viên trao đổi với nhau và chép bài của nhau. Các đề được phát sao cho các sinh viên cạnh nhau phải dùng đề khác nhau.

Xem bài chi tiết >>

Tài liệu giáo trình để dạy là:

Bùi Thế Tâm. Ngôn ngữ C và lập trình hướng đối tượng. NXB Giao thông vận tải, 240 trang, 19 x 27 cm, 2006.

Bùi Thế Tâm

Posted in Tin học - lập trình | Leave a Comment »

Đề thi thực hành Lập trình C

Posted by ngocson on 29/04/2010

Thời gian làm bài trên máy: 90 phút

Đề 1

Câu 1 (6 điểm)

Nhập n phần tử từ bàn phím của một mảng cấu trúc s[50]. Mỗi phần tử của mảng lưu trữ thông tin về một hộ gia đình dùng nước sạch của thành phố. Thông tin về một hộ gồm có: họ tên chủ hộ, số công tơ cũ của tháng trước, số công tơ mới của tháng hiện tại.

In mảng đã nhập và các thông tin cần tính dưới dạng:

Xem chi tiết >>

Đây là 4 đề thi đã dùng cho học sinh phổ thông trung học Khối chuyên Toán – Tin, Đại học Khoa học tự nhiên Hà Nội, vào những năm 1998 – 2009.

Tài liệu giáo trình:

Bùi Thế Tâm. Ngôn ngữ C và lập trình hướng đối tượng. NXB Giao thông vận tải, 240 trang, 19 x 27 cm, 2006.

Bùi Thế Tâm

Posted in Tin học - lập trình | Tagged: | Leave a Comment »

Turbo Pascal: Cây tìm kiếm nhị phân

Posted by ngocson on 20/11/2009

Cây nhị phân tổng quát là một tập hợp hữu hạn các đỉnh được xác định đệ quy như sau:

- Một tập trống là một cây nhị phân.

- Giả sử T1 và T2 là hai cây nhị phân không cắt nhau và r là một đỉnh mới không thuộc T1, T2. Khi đó ta có thể thành lập một cây nhị phân mới T với gốc r có T1 là cây con bên trái, T2 là cây con bên phải của gốc.

Xem chi tiết ….

Bùi Thế Tâm soạn 20/11/2009

Tái bút: Bài này trích từ cuốn “Giáo trình Turbo Pascal 7.0″ của Bùi Thế Tâm in năm 2004, NXB Giao thông vận tải. Đây là một chương trình chạy hoàn chỉnh: cây có thể nhập từ bàn phím hay từ một tệp, các cách duyệt 1 cây (trong đó có theo chiều rộng và theo chiều sâu), xóa một đỉnh của cây, tìm kiếm trên cây. Bạn không thể tìm được ở cuốn nào lại có chương trình hoàn thiện như vậy(trước khi cuốn sách trên được in).

Posted in Tin học - lập trình | Tagged: , | 1 Comment »

Pascal: vẽ đồng hồ, chùm pháo hoa

Posted by ngocson on 19/10/2009

1. Chương trình tạo một chiếc đồng hồ Gimico trên màn hình máy tính dùng Pascal.
uses crt,graph,dos;
var x,y,x1,y1,x2,y2,goc: integer;  goc1,goc2,goc3,old,gd,gm:integer;
gio,phut,giay,mili:word;  so,gio1,phut1,giay1:string;  rad:real;
procedure kim_giay(goc:integer);
begin rad:=goc*pi/180; x1:=round(x+150*sin(rad));
y1:=round(y-150*cos(rad)); setlinestyle(0,0,1); line(x,y,x1,y1); Read the rest of this entry »

Posted in Tin học - lập trình | Tagged: , | 1 Comment »

Pascal: đề thi 1-2-3

Posted by ngocson on 19/10/2009

Đề thi Môn Ngôn ngữ Lập trình Pascal (đề 1)

Thời gian : 10 phút đọc đầu đề, 90 phút làm bài. Không sử dụng tài liệu

Họ tên thí sinh : . . . . . . . . . . . . . . . . . . . . . . . . . . .  Ngày sinh: . . . . . . . . . . . .

Lớp : . . . . . . . . . . Số báo danh : . . . . . . . . . . . . .  Số máy tính : . . . . . . . . . . .

Hướng dẫn đặt các tên tệp bài làm và nơi lưu trữ . Đề thi có 3 câu, mỗi câu cần làm một tệp chương trình. Tên tệp chương trình ứng với câu i là Ci_xxx.PAS, giải thích: C là viết tắt của từ “câu”, i là câu thứ i, gạch chân, xxx là số báo danh của thí sinh. Giả sử thí sinh có số báo danh là 248 thì 3 tệp chương trình có tên là C1_248.PAS, C2_248.PAS, C3_248.PAS. Cả 3 tệp chương trình đều đặt trong thư mục có chứa tệp TURBO.EXE. Read the rest of this entry »

Posted in Tin học - lập trình | Tagged: , | Leave a Comment »

Turbo Pascal: Unit Graph

Posted by ngocson on 19/10/2009

Màn hình máy tính có hai chế độ hiển thị thông tin: chế độ văn bản và chế độ đồ hoạ. Trong chế độ đồ hoạ màn hình chia thành lưới vuông các điểm ảnh (pixel).      Màn hình thông dụng hiện nay (VGA) trong chế độ đồ hoạ với độ phân giải cao có 640 cột điểm ảnh đánh số từ 0 đến 639 (ứng với trục X hướng sang phải) và 480 hàng điểm ảnh đánh số từ 0 đến 479 (ứng với trục Y hướng từ trên xuống dưới). Ta có thể vẽ (cho điểm sáng) và tô màu từng điểm ảnh để tạo một hình bất kỳ trên màn hình. Trong chế độ đồ hoạ màn hình cũng có con trỏ vẽ nhưng nó không hiện. Read the rest of this entry »

Posted in Tin học - lập trình | Tagged: , | Leave a Comment »

Turbo Pascal: Danh sách liên kết dùng con trỏ

Posted by ngocson on 19/10/2009

1. Danh sách liên kết đơn

Danh sách là một dãy hữu hạn các phần tử thuộc cùng một lớp đối tượng nào đó. Ví dụ : danh sách sinh viên, danh sách vật tư, danh sách các hoá đơn, danh sách các số thực. Trong các bài trước ta đã dùng mảng để biểu thị một danh sách. Cách này có các nhược điểm: kích thước của mảng phải định trước nên tốn bộ nhớ (số phần tử thực tế  dùng nhiều khi rất ít so với khai báo), khi thêm một phần tử vào mảng hoặc xoá một phần tử ra khỏi mảng ta phải mất nhiều thời gian để dồn mảng. Read the rest of this entry »

Posted in Tin học - lập trình | Tagged: , | 1 Comment »

Turbo Pascal: Con trỏ

Posted by ngocson on 19/10/2009

Các biến thuộc kiểu dữ liệu đã học như integer, real, mảng, tập hợp, bản ghi . . . gọi là các biến tĩnh vì chúng được xác định rõ ràng khi khai báo và sau đó được dùng thông qua tên của chúng. Thời gian tồn tại của biến tĩnh cũng là thời gian tồn tại của khối chương trình có chứa khai báo các biến này. Do đó nếu chương trình sử dụng một số lượng lớn các biến tĩnh thì sẽ không đủ bộ nhớ. Ví dụ khi khai báo var A: array[1..5000] of real;  máy sẽ phân một vùng nhớ cố định 30000 byte cho mảng A, trong chương trình có thể ta không dùng đến cả 5000 phần tử. Để tránh lãng phí bộ nhớ Turbo Pascal cho phép dùng biến động (dynamic variable). Các biến này được lưu trữ trong vùng Heap (vùng nhớ tự do của máy), khi cần chúng có thể được tạo ra để chứa dữ liệu, khi không cần có thể xoá chúng đi để giải phóng bộ nhớ. Biến động không có tên và do một con trỏ quản lý. Read the rest of this entry »

Posted in Tin học - lập trình | Tagged: , | Leave a Comment »

Turbo Pascal : Unit tự tạo

Posted by ngocson on 19/10/2009

1. Unit tự tạo

Ngoài các thư viện chương trình có sẵn trong unit chuẩn của Turbo Pascal như System, Crt, Dos, Graph … người sử dụng còn có thể xây dựng cho mình các thư viện chương trình mới bằng cách tự tạo các unit. Mục đích của unit tự tạo: tạo các thư viện hàm và thủ tục để tránh lặp lại những công việc giống nhau, giải quyết vấn đề thiếu bộ nhớ khi thiết kế các chương trình lớn, tạo công cụ để liên kết các module chương trình với nhau mà vẫn đảm bảo tính độc lập cho từng lập trình viên. Read the rest of this entry »

Posted in Tin học - lập trình | Tagged: , | Leave a Comment »

Turbo Pascal: Unit CRT

Posted by ngocson on 19/10/2009

Unit là một tập hợp các hằng số, các kiểu dữ liệu, các biến, các thủ tục và hàm. Mỗi Unit xem như một thư viện chương trình. Turbo Pascal có sẵn các unit chuẩn: unit System, unit Crt,  unit Dos, unit Printer, unit Overlay, unit Graph, unit Turbo3, unit Graph3, unit Windos. Năm unit đầu tiên chứa trong tệp Turbo.tpl, tệp này được tải vào bộ nhớ ngay khi Turbo Pascal khởi động. Ngoài các unit chuẩn có sẵn người dùng có thể tự mình lập các unit riêng. Read the rest of this entry »

Posted in Tin học - lập trình | Tagged: , | Leave a Comment »

 
Follow

Get every new post delivered to your Inbox.