SlideShare a Scribd company logo
1 of 35
Download to read offline
BỘ MÔN CÔNG NGHỆ PHẦN MỀM
TIN HỌC ĐẠI CƯƠNG
HƯỚNG DẪN THỰC HÀNH
Hà Nội, 10/2009
Phần thực hành bao gồm các bài tập mẫu giúp cho sinh viên hiểu sâu hơn về ngôn
ngữ và các bài tập tự làm giúp sinh viên áp dụng các kiến thức đã học để giải quyết
một bài toán cụ thể.
HƯỚNG DẪN THỰC HÀNH
MÔN TIN HỌC ĐẠI CƯƠNG
ội dung thực hành gồm 5 bài, thực hiện trong 5 buổi thực hành đối với những
lớp học 3 tín chỉ và 3 buổi thực hành đối với những lớp học 2 tín chỉ, mỗi buổi
thực hành kéo dài 120 phút. Mỗi bài thực hành gồm có phần yêu cầu lý thuyết,
phần các bài tập mẫu và các bài tập tự làm.
Sinh viên đọc lại phần lý thuyết trong bài giảng, thực hiện các bài tập mẫu và đưa ra
nhận xét về kết quả nhận được khi thực hiện các bài tập mẫu. Sau mỗi bài tập mẫu,
thực hiện một số thay đổi đối với bài tập mẫu và nhận xét kết quả. Sinh viên tự làm
phần bài tập tự làm.
Giáo viên hướng dẫn sinh viên thực hiện các bài tập và kiểm tra kết quả thực hiện
của sinh viên.
N
MỤC LỤC
Bài 1. Hệ điều hành Windows XP và môi trường Turbo C++ 3.0 ........................................5
1.1. Hệ điều hành Windows XP .......................................................................................5
1.1.1. Mục tiêu ........................................................................................................................ 5
1.1.2. Yêu cầu lý thuyết........................................................................................................... 5
1.1.3. Khởi động máy tính....................................................................................................... 5
1.1.4. Các thành phần trên màn hình Desktop........................................................................ 5
1.1.5. Sử dụng chuột .............................................................................................................. 6
1.1.6. Khởi động một chương trình ......................................................................................... 6
1.1.7. Cửa sổ của một chương trình ....................................................................................... 6
1.1.8. Window Explorer........................................................................................................... 8
1.1.9. Tắt máy tính an toàn ................................................................................................... 13
1.2. Môi trường Turbo C++ 3.0 và ngôn ngữ C .............................................................13
1.2.1. Mục tiêu ...................................................................................................................... 13
1.2.2. Yêu cầu lý thuyết......................................................................................................... 14
1.2.3. Môi trường Turbo C++ 3.0 .......................................................................................... 14
1.2.4. Các bài tập mẫu.......................................................................................................... 14
1.2.5. Các bài tập tự làm....................................................................................................... 17
Bài 2. Cơ bản về ngôn ngữ ...............................................................................................18
2.1. Mục tiêu ..................................................................................................................18
2.2. Yêu cầu lý thuyết ....................................................................................................18
2.3. Các bài tập mẫu......................................................................................................18
2.4. Các bài tập tự làm ..................................................................................................21
Bài 3. Một số thuật toán cơ bản ........................................................................................22
3.1. Mục tiêu ..................................................................................................................22
3.2. Yêu cầu lý thuyết ....................................................................................................22
3.3. Các bài tập mẫu......................................................................................................22
3.4. Các bài tập tự làm ..................................................................................................27
Bài 4. Ma trận....................................................................................................................29
4.1. Mục tiêu ..................................................................................................................29
4.2. Yêu cầu lý thuyết ....................................................................................................29
4.3. Các bài tập mẫu......................................................................................................29
4.4. Các bài tập tự làm ..................................................................................................31
Bài 5. Cấu trúc ..................................................................................................................32
5.1. Mục tiêu ..................................................................................................................32
5.2. Yêu cầu lý thuyết ....................................................................................................32
5.3. Các bài tập mẫu......................................................................................................32
5.4. Các bài tập tự làm ..................................................................................................35
5
Bài 1. Hệ điều hành Windows XP và môi trường Turbo
C++ 3.0
1.1. Hệ điều hành Windows XP
1.1.1. Mục tiêu
- Biết cách bật, tắt máy tính.
- Làm quen với các thao tác cơ bản trên hệ điều hành Windows XP.
1.1.2. Yêu cầu lý thuyết
Sinh viên cần nắm vững những nội dung sau:
- Các kiến thức cơ bản về máy tính.
- Khái niệm về các hệ điều hành.
1.1.3. Khởi động máy tính
- Nhấn nút Power trên thân máy, Windows sẽ tự khởi động.
- Tùy thuộc vào cách thiết lập hệ thống, chúng ta có thể phải gõ mật khẩu (Password) để đăng nhập
vào màn hình làm việc (Desktop) của Windows.
1.1.4. Các thành phần trên màn hình Desktop
6
+ Các biểu tượng liên kết đến các chương trình thường sử dụng.
+ Thanh tác vụ chứa:
- Nút Start dùng để mở thực đơn Start để khởi động các chương trình.
- Nút các chương trình đang chạy: dùng để chuyển đổi qua lại giữa các chương trình.
- Khay hệ thống: chứa các biểu tượng nhỏ giúp truy cập dễ dàng tới các chức năng hệ thống như
giờ hệ thống, âm lượng, máy in, …
1.1.5. Sử dụng chuột
Chuột dùng để điều khiển con trỏ chuột để tương tác với các đối tượng trên màn hình. Hiện nay,
chuột thường có tối thiểu 2 nút:
- Nút trái thường dùng để chọn đối tượng, rê đối tượng...
- Nút phải thường dùng để hiển thị thực đơn ngữ cảnh. Nội dung của thực đơn ngữ cảnh tùy thuộc
vào con trỏ chuột đang nằm trên đối tượng nào.
Các hành động mà chuột thực hiện
Di chuyển con trỏ chuột
Rà chuột trên mặt phẳng bàn để di chuyển con trỏ chuột trên màn hình
đến đối tượng cần xử lý.
Nháy chuột trái
Thường dùng để chọn một đối tượng bằng cách trỏ con trỏ chuột đến
đối tượng, nhấn nhanh và nhả nút trái chuột.
Rê chuột
Dùng để di chuyển đối tượng hoặc quét chọn nhiều đối tượng ... bằng
cách trỏ con trỏ chuột đến đối tượng, nhấn và giữ nút trái chuột, di
chuyển chuột đến vị trí khác rồi nhả nút trái chuột.
Nháy chuột phải
Thường dùng hiển thị thực đơn ngữ cảnh liên quan đến mục được
chọn, bằng cách trỏ con trỏ chuột đến đối tượng, nhấn nhanh và nhả
nút phải chuột.
Nháy kép chuột
Thường dùng để kích hoạt chương trình được hiển thị dưới dạng một
biểu tượng trên màn hình, bằng cách trỏ con trỏ chuột đến đối tượng,
nhấn và nhả nút trái chuột nhanh 2 lần liên tiếp.
1.1.6. Khởi động một chương trình
Nháy chuột trái lên nút Start, sau đó nháy chuột trái lên tên chương trình chúng ta muốn mở. Để mở
một chương trình mà chúng ta không nhìn thấy trong thực đơn Start, hãy nháy chuột trái lên mục
All Programs để hiển thị các chương trình đã cài đặt trên máy rồi nháy chuột trái lên tên chương
trình cần thực hiện.
1.1.7. Cửa sổ của một chương trình
7
Mỗi chương trình khi chạy trong Windows sẽ được hiển thị dưới dạng một cửa sổ, cửa sồ này là
phần giao tiếp giữa người sử dụng và chương trình.
- Thanh tiêu đề: Chứa biểu tượng thực đơn hệ thống ở góc trái; tên chương trình; các nút thu nhỏ,
phóng đại kích thước cửa sổ và nút đóng cửa sổ ở góc phải.
- Thanh thực đơn: Chứa các chức năng của chương trình.
- Thanh công cụ: Chứa các chức năng được biểu diễn dưới dạng biểu tượng.
- Thanh trạng thái: Miêu tả đối tượng đang được trỏ hoặc thông tin trạng thái hiện thời.
- Thanh cuốn dọc và ngang: Chỉ hiển thị khi nội dung không hiện đầy đủ trong cửa sổ. Chúng cho
phép cuộn màn hình để xem nội dung nằm ngoài đường biên của cửa sổ.
Thực hành
+ Mở cửa sổ My Computer: Nháy chuột trái vào nút Start, chọn mục My Computer.
+ Nháy chuột trái vào nút Thu nhỏ (Minimize) để thu nhỏ cửa sổ thành một nút lệnh trên thanh tác
vụ.
+ Nháy chuột trái vào nút đó trên thanh tác vụ để đưa cửa sổ trở lại kích thước ban đầu.
+ Nháy chuột trái vào nút Phóng đại (Maximize) để phóng to kích thước cửa sổ.
+ Nháy chuột trái vào nút Phóng đại (bây giờ là Restore Down) để đưa cửa sổ trở lại kích thước
bình thường.
+ Trỏ chuột vào đường biên của cửa sổ, khi chuột chuyển thành mũi tên 2 đầu thì kéo rê đường
biên để thu nhỏ kích thước cửa sổ cho đến khi xuất hiện thanh cuốn dọc và ngang.
+ Bấm vào các nút mũi tên ở 2 đầu thanh cuộn để xem nội dung nằm ngoài đường biên của cửa sổ.
+ Trỏ chuột lên thanh tiêu đề và rê cửa sổ sang vị trí khác.
+ Đóng cửa sổ My Computer bằng một trong 2 cách sau:
- Nháy chuột trái vào nút Đóng (Close) của cửa sổ.
- Nháy chuột trái vào tên thực đơn File trên thanh thực đơn, thực đơn File xuất hiện, nháy
chuột trái vào mục Close.
8
1.1.8. Window Explorer
Các chương trình và dữ liệu của chúng ta được lưu dưới dạng các tập tin (Files) trên các thiết bị
nhớ như: Ổ đĩa cứng, đĩa mềm, đĩa CD, ổ USB, ...
Trong phần này, chúng ta sẽ học cách dùng Windows Explorer để quản lý các tập tin.
Mở Windows Explorer
Nháy chuột phải vào nút Start và nháy chuột trái vào mục Explorer để mở Windows Explorer.
Khung trái cửa sổ chứa tên các ổ đĩa và các thư
mục
- Windows dùng các ký tự (A:), (B:) cho các ổ
đĩa mềm; các ký tự (C:), (D:) … để đặt tên cho
các loại ổ đĩa lưu trữ khác.
- Mỗi ổ đĩa trên máy tính đều có một thư mục
(Folder) chính được gọi là thư mục gốc chứa các
tập tin trên đĩa. Nhưng để dễ dàng cho việc quản
lý các tập tin, chúng ta có thể tạo thêm các thư
mục con khác, lồng nhau, chứa các tập tin theo
từng nhóm.
- Một thư mục có thể rỗng hoặc có thể chứa các
tập tin và các thư mục con.
Khung phải cửa sổ hiển thị nội dung của mục
được chọn trên khung trái
- Nháy chuột trái vào ổ đĩa cần chọn bên khung
trái để hiện nội dung của thư mục gốc bên
khung phải.
- Nháy chuột trái vào tên thư mục bên khung trái để hiện nội dung của thư mục đó bên khung phải.
- Nháy chuột trái vào dấu trừ để thu gọn nhánh phân cấp thư mục con.
Chú ý
Dấu cộng bên cạnh cho biết ổ đĩa hay thư mục đó còn chứa các thư mục con.
Thay đổi hình thức hiển thị trên khung phải
Nháy chuột trái vào thực đơn View và
chọn 1 trong 5 hình thức hiển thị:
- Thumbnails: Thường dùng để xem
trước các File hình.
- Tiles: Hiện các tập tin và các thư mục
con ở dạng biểu tượng lớn.
- Icons: Hiện các tập tin và các thư
mục con ở dạng biểu tượng nhỏ.
- List: Hiện các tập tin và các thư mục
con ở dạng liệt kê danh sách.
9
- Details: Liệt kê chi tiết các thông tin như tên (Name), kiểu (Type), kích thước lưu trữ (Size), ngày
giờ tạo hay sửa (Modified).
Hiện/ẩn cây thư mục trên khung trái
Nháy chuột trái vào nút Folders để chọn hay bỏ chọn nút này trên thanh công cụ chuẩn.
Sắp xếp dữ liệu bên khung phải
Nháy chuột trái vào mục Arrange
Icons by trên thực đơn View và chọn
thứ tự sắp xếp
- Theo tên: Name
- Theo kích thước: Size
- Theo phần mở rộng: Type
- Theo ngày tháng tạo sửa: Modified
Quản lý thư mục và tập tin
Tạo một thư mục
10
- Mở thư mục muốn tạo
thêm thư mục con trong đó.
- Chọn mục thực đơn File |
New | Folder (Chọn mục
thực đơn Folder nằm trên
thực đơn New, mà tên thực
đơn New lại nằm trên thực
đơn File) hoặc chọn Make a
new folder bên khung trái.
Một thư mục mới hiển thị
với tên mặc định là New
Folder.
- Gõ tên thư mục mới (nếu
muốn) và ấn phím Enter.
Tạo Shortcut
Shortcut là một tập tin liên kết đến một đối tượng, đối tượng đó có thể là tập tin, thư mục, ổ đĩa,
máy in hay máy tính khác
trên mạng. Shortcut là cách
nhanh nhất để khởi động
một chương trình được sử
dụng thường xuyên hoặc để
mở tập tin, thư mục mà
không cần phải tìm đến nơi
lưu trữ chúng.
- Mở thư mục chứa tập tin
cần tạo Shortcut.
- Nháy chuột phải vào tập
tin.
- Chọn Create Shortcut: nếu
tạo Shortcut ngay trong thư
mục đang mở.
- Chọn Send To | Desktop (create shortcut): nếu muốn tạo Shortcut trên màn hình Desktop.
Đổi tên tập tin hay thư mục (Rename)
- Mở ổ đĩa hay thư mục chứa
tập tin hoặc thư mục con cần
đổi tên.
- Nháy chuột trái vào tên tập
tin hay thư mục muốn đổi
tên.
- Chọn mục thực đơn File |
Rename hoặc chọn Rename
11
this file hoặc Rename this folder bên
khung trái.
- Gõ tên mới, sau đó ấn phím Enter.
Di chuyển một tập tin hoặc thư mục (Move)
- Mở ổ đĩa hoặc thư mục chứa tập tin hay thư mục con cần di chuyển.
- Nháy chuột trái vào tên tập tin hay thư mục muốn di chuyển.
- Chọn mục thực đơn Edit | Move To Folder… hoặc chọn Move this file hay Move this folder bên
khung trái. Hộp thoại Move Items xuất hiện.
- Trong hộp thoại này, nháy chuột trái chọn ổ đĩa, thư mục muốn chuyển đến, sau đó nháy chuột
trái vào nút Move.
Sao chép một tập tin hay thư mục (Copy)
- Mở ổ đĩa hay thư mục
chứa tập tin hay thư mục
con cần sao chép.
- Nháy chuột trái vào tên
tập tin hay thư mục muốn
sao chép.
- Chọn mục thực đơn Edit
| Copy To Folder … hay
chọn Copy this file hoặc
Copy this folder. Hộp
thoại Copy Items xuất
hiện.
- Trong hộp thoại này,
nháy chuột trái chọn ổ đĩa,
thư mục muốn chuyển
đến, sau đó nháy chuột
trái vào nút Copy.
Xóa tập tin hay thư mục
Khi xóa tập tin hay thư mục trong đĩa cứng, Windows sẽ di chuyển tập tin hay thư mục đó vào
Thùng rác (Recycle Bin). Đây là thư mục của Windows dùng để chứa các tập tin bị xóa. Chúng ta
có thể mở thư mục này để phục hồi lại hoặc xóa hẳn khỏi đĩa cứng.
Nếu xóa dữ liệu trên đĩa mềm hay đĩa CD thì chúng không được chuyển vào thùng rác.
12
- Chọn tập tin hay thư
mục cần xóa.
- Chọn mục thực đơn
File | Delete hoặc chọn
mục Delete this file hay
Delete this folder.
- Windows Explorer sẽ
hiển thị hộp thoại xác
nhận xóa. Nháy chuột
trái vào nút Yes để thực
hiện hoặc vào nút No
nếu không muốn thực
hiện.
Chú ý:
- Chúng ta có thể nháy chuột phải vào đối tượng cần xóa và chọn mục Delete. Với cách xóa này
bạn có thể phục hồi lại ngay bằng cách nháy chuột phải vào vùng trống bên khung phải và chọn
mục Undo Delete.
- Để xóa vĩnh viễn tập tin hay thư mục, chúng ta giữ phím Shift trong khi chọn mục Delete.
Tìm kiếm tập tin hay thư mục (Search)
- Nháy chuột trái vào nút
Search trên thanh công cụ.
- Nháy chuột trái vào mục
All files and folders.
- Nếu muốn tìm theo tên
tập tin hay thư mục, hãy
gõ đầy đủ hay một phần
tên tập tin trong hộp All
or part of file name.
- Hoặc nếu muốn tìm theo
nội dung tập tin hãy gõ
một từ hay một cụm từ đại
diện cần tìm trong
hộp A word or phrase in
the file.
- Bạn có thể chỉ ra nơi cần
tìm bằng cách nháy chuột trái vào mũi tên hướng xuống trong hộp Look in, sau đó chọn ổ đĩa hay
thư mục mà cần tìm trong đó.
- Nháy chuột trái vào nút Search.
Chú ý:
- Kết quả tìm kiếm sẽ hiện bên khung phải.
13
- Nếu có nhiều tập tin được tìm thấy, chúng ta có thể sử dụng những điều kiện bổ sung để lọc ra
những tập tin cần thiết.
Quản lý đĩa với My Computer
- Chọn My Computer bên khung trái.
- Để xem dung lượng và kích thước còn trống trên đĩa: Nháy chuột trái vào mục View | Details.
1.1.9. Tắt máy tính an toàn
Nháy chuột trái lên nút Start, nháy chuột trái vào
mục Turn Off Computer. Hộp thoại Turn off
computer xuất hiện, nháy chuột trái vào nút Turn
off.
Chú ý
- Chúng ta nên tắt hết các ứng dụng đang chạy
trước khi tắt máy tính.
- Nếu tắt máy trực tiếp bằng nút Power trên thân máy có thể gây ra những lỗi nghiêm trọng.
- Nháy chuột trái vào nút Stand By trên hộp thoại Turn off computer sẽ đưa máy tính về chế độ chờ
để tiết kiệm điện năng.
- Nháy chuột trái vào nút Reset trên hộp thoại Turn off computer sẽ khiến máy khởi động lại.
1.2. Môi trường Turbo C++ 3.0 và ngôn ngữ C
1.2.1. Mục tiêu
14
- Khởi động và thoát chương trình TC.
- Tạo một chương trình nguồn, soạn thảo, dịch và chạy chương trình.
- Lưu một chương trình và mở một chương trình đã có.
- Viết một số chương trình C đơn giản, làm quen với các kiểu dữ liệu nguyên, thực và các câu lệnh
vào ra.
1.2.2. Yêu cầu lý thuyết
Trong bài này, sinh viên cần nhớ lại những kiến thức cơ bản về ngôn ngữ C, bao gồm:
- Cấu trúc của một chương trình viết trên ngôn ngữ C.
- Cách đặt tên cho các biến.
- Các lệnh vào ra.
1.2.3. Môi trường Turbo C++ 3.0
Môi trường Turbo C++ 3.0 (viết tắt là TC) là một chương trình cho phép tạo ra, dịch và thực hiện
các chương trình viết bằng ngôn ngữ C.
Để sử dụng chương trình TC, cần khởi động chương trình TC.
- Chạy tập tin TC.EXE (thường ở trong thư mục C:TCBIN) bằng cách nháy kép chuột hoặc chọn
tập tin rồi nhấn Enter.
- Nếu TC mở sẵn các chương trình trước đó, chọn mục thực đơn Window | Close All để đóng
chúng lại.
- Để tạo một chương trình mới, chọn mục thực đơn File | New.
- Để lưu chương trình vào ổ cứng, chọn mục thực đơn File | Save (hoặc nhấn F2). Hộp thoại Save
File As xuất hiện. Trong phần Save File As trên hộp thoại thường đã chứa nội dung
“C:TCBINNONAME00.CPP”, chúng ta hãy xóa “NONAME00.CPP” ở cuối đi và gõ thêm vào
một tên chúng ta muốn đặt cho chương trình. Lưu ý, tên tập tin không được chứa quá 8 ký tự,
không được chứa các ký tự trống và phải có tên mở rộng là “c”. Ví dụ, chúng ta có thể gõ vào một
tên như: “C:TCBINTIMMAX.C”. Nháy chuột trái vào nút OK trên hộp thoại để hoàn thành công
việc lưu chương trình.
- Để mở chương trình đã có, chọn mục thực đơn File | Open (hoặc nhấn F3). Hộp thoại Open a File
xuất hiện. Ở phần Name trên hộp thoại có thể chứa nội dung “*.CPP”, chúng ta hãy xóa hết và nhập
lại với nội dung là “*.C” và nhấn Enter hoặc nháy chuột trái vào nút Open để ở cửa sổ Files phía
dưới chỉ hiển thị các tập tin có tên mở rộng là “C”. Chọn tập tin cần mở rồi nháy chuột trái vào nút
Open hoặc nháy kép vào tập tin cần mở để hoàn thành công việc mở chương trình.
- Để phóng đại cửa sổ chương trình TC tới kích thước đầy màn hình, hoặc đưa cửa sổ từ kích thước
đầy màn hình trở về kích thước thông thường chúng ta hãy nhấn và giữ phím Alt rồi nhấn phím
Enter.
- Để thoát khỏi TC, chọn mục thực đơn File | Quit (hoặc nhấn và giữ phím Alt rồi nhấn phím X).
1.2.4. Các bài tập mẫu
Bài 1. Viết chương trình in ra màn hình dòng chữ “Chao mung den voi Turbo C++
3.0” và dòng chữ thông báo “An phim Enter de thoat.” ở 2 dòng màn hình liên
tiếp. Chương trình đợi người sử dụng nhấn 1 phím bất kỳ trên bàn phím để kết
thúc.
15
Đây là chương trình đầu tiên, cơ bản nhất giúp sinh viên hiểu được cấu trúc cơ bản của một chương
trình C.
- Khởi động TC.
- Vào File | New để tạo một chương trình mới.
- Lưu chương trình với tên là “chaomung.c”.
- Soạn thảo chương trình như trong Error! Reference source not found. ở dưới. Lưu ý, chỉ số ở
đầu các dòng chỉ dùng để tham chiếu, không đưa vào chương trình nguồn khi soạn thảo.
- Lưu chương trình như miêu tả ở trên, nhấn Ctrl + F9 để thực hiện chương trình.
Chương trình 1
1. #include <stdio.h>
2. #include <conio.h>
3. void main()
4. {
5. printf("Chao mung den voi Turbo C++ 3.0");
6. printf("nAn phim Enter de thoat.");
7. getch();
8. }
+ Thực hiện chương trình và đánh giá kết quả.
+ Thử một vài thay đổi đối với chương trình. Với mỗi thay đổi, chạy và nhận xét kết quả thu được,
sau đó khôi phục chương trình mẫu:
- Bỏ chỉ thị #include <stdio.h>
- Bỏ chỉ thị #include <conio.h> và câu lệnh getch()
- Bỏ dấu n ở dòng 6
Bài 2.Viết chương trình thực hiện các công việc sau:
- Nhập 2 số thực rồi tính và in ra màn hình tổng và tích của 2 số vừa nhập.
- Nhập độ dài 2 cạnh góc vuông của 1 tam giác vuông rồi tính và in ra màn
hình độ dài cạnh huyền của nó.
- Nhập số thực dương r rồi tính và in ra màn hình chu vi và diện tích hình
tròn bán kính r.
Chương trình giúp hiểu về cú pháp khai báo biến và thực hiện các phép tính đơn giản.
- Vào Windows | Close All để đóng các cửa sổ đang mở.
- Vào File | New để tạo một chương trình mới.
- Lưu chương trình với tên là “expr.c”.
- Soạn thảo chương trình như trong Chương trình 1.
- Nhấn F2 để ghi chương trình, nhấn Ctrl + F9 để thực hiện chương trình.
Chương trình 1
1. #include <stdio.h>
2. #include <conio.h>
3. #include <math.h>
4.
16
5. void main()
6. {
7. float a, b, w, h, r;
8. printf("Nhap hai so thuc a, b: ");
9. scanf("%f%f", &a, &b);
10. printf("Tong a + b = %fn", a + b);
11. printf("Tich a * b = %fn", a * b);
12.
13. printf("Nhap do dai hai canh goc vuong cua tam giac: ");
14. scanf("%f%f", &w, &h);
15. printf("Do dai canh huyen: %fn", sqrt(w*w + h*h));
16.
17. printf("Nhap ban kinh duong tron: ");
18. scanf("%f", &r);
19. printf("Chu vi hinh tron: %fn", 2*M_PI*r);
20. printf("Dien tich hinh tron: %fn", M_PI*r*r);
21.
22. getch();
23. }
+ Thực hiện chương trình và đánh giá kết quả.
+ Thử một vài thay đổi đối với chương trình. Với mỗi thay đổi, chạy và nhận xét kết quả thu được,
sau đó khôi phục chương trình mẫu:
- Bỏ chỉ thị #include <math.h>
- Thay đổi %f%f thành %d%d ở dòng 9
- Bỏ các dấu & ở dòng 14
Bài 3. Viết chương trình hiển thị các số chính phương từ 12
đến 502
, mỗi dòng
màn hình hiển thị 5 số chính phương.
Chương trình giúp sinh viên hiểu sâu hơn về cách sử dụng hàm printf.
- Vào Windows | Close All để đóng các cửa sổ đang mở.
- Vào File | New để tạo một chương trình mới.
- Lưu chương trình với tên là “chphuong.c”.
- Soạn thảo chương trình như trong Chương trình 2.
- Nhấn F2 để ghi chương trình, nhấn Ctrl + F9 để thực hiện chương trình.
Chương trình 2
1. #include <stdio.h>
2. #include <conio.h>
3. void main()
4. {
5. int i, j;
6. for (i = 1; i <= 50; i++)
7. {
8. printf("%6d", i*i);
9. if (i % 5 == 0)
17
10. printf("n");
11. }
12. getch();
13. }
+ Thực hiện chương trình và đánh giá kết quả.
+ Thử một vài thay đổi đối với chương trình. Với mỗi thay đổi, chạy và nhận xét kết quả thu được,
sau đó khôi phục chương trình mẫu:
- Thay %6d thành %3d ở dòng 8
- Thay %6d thành %d ở dòng 8
- Thay %6d thành %10d ở dòng 8
- Thay lệnh ở dòng 8 bằng lệnh printf("%d ", i*i);
- Thay lệnh ở dòng 8 bằng lệnh printf("%a ", i*i);
- Bỏ các câu lệnh ở dòng 9, 10
1.2.5. Các bài tập tự làm
Bài 1. Viết chương trình nhập từ bàn phím toạ độ của hai điểm trong mặt phẳng. Tính và đưa ra
khoảng cách giữa hai điểm có toạ độ vừa nhập.
Bài 2. Viết chương trình nhập từ bàn phím điểm và số tiết của ba môn học. Tính điểm trung bình ba
môn học theo công thức tổng điểm của từng môn học nhân với số tiết, chia cho tổng số tiết.
18
Bài 2. Cơ bản về ngôn ngữ
2.1. Mục tiêu
- Sử dụng các câu lệnh điều khiển.
- Khai báo và sử dụng mảng.
- Vào, ra và xử lý xâu ký tự.
2.2. Yêu cầu lý thuyết
Sinh viên cần nắm vững những nội dung sau:
- Cú pháp các câu lệnh if, for, while, break và continue.
- Cú pháp khai báo mảng và truy cập phần tử mảng.
- Khai báo xâu ký tự, nhập và in xâu ký tự.
2.3. Các bài tập mẫu
Bài 1. Viết chương trình nhập một dãy số thực và in dãy số đó ra màn hình.
Chương trình mẫu gồm việc nhập và in một dãy số, áp dụng cho các bài toán làm việc với dãy số.
- Khởi động TC.
- Vào File | New để tạo một chương trình mới.
- Lưu chương trình với tên là “dayso.c”.
- Soạn thảo chương trình như trong Chương trình 3.
- Nhấn F2 để ghi, nhấn Ctrl + F9 để thực hiện chương trình.
Chương trình 3
1. #include <stdio.h>
2. #include <conio.h>
3. void main()
4. {
5. float a[20];
6. int n, i;
7.
8. printf("Nhap so phan tu: ");
9. scanf("%d", &n);
10. /* Nhap day so */
11. for (i = 1; i <= n; i++)
12. {
13. printf("a[%d] = ", i);
14. scanf("%f", &a[i]);
15. }
16. /* In day so tren mot hang */
17. printf("Day so vua nhap:n");
18. for (i = 1; i <= n; i++)
19. printf("%10.3f", a[i]);
20. getch();
21. }
+ Thực hiện chương trình và đánh giá kết quả.
19
+ Thử một vài thay đổi đối với chương trình. Với mỗi thay đổi, chạy và nhận xét kết quả thu được,
sau đó khôi phục chương trình mẫu:
- Bỏ cặp ngoặc { } ở dòng 12, 15
- Bỏ lệnh printf("a[%d] = ", i); ở dòng 13
- Sửa câu lệnh printf("%10.3f", a[i]); thành printf("%8.2f", a[i]); ở dòng
19
Bài 2. Viết chương trình nhập số thực x rồi tính ex
theo khai triển Taylor và in giá trị tính được ra
màn hình:
n
x
n
xx
xe
!!2
1
2
++++= K
Khai triển dừng ở giá trị nguyên dương n sao cho 6
10
!
−
<
n
xn
Bài này giúp sinh viên hiểu về cách sử dụng vòng lặp while.
- Vào Windows | Close All để đóng các cửa sổ đang mở.
- Vào File | New để tạo một chương trình mới.
- Lưu chương trình với tên là “luythua.c”.
- Soạn thảo chương trình như trong Chương trình 4.
- Nhấn F2 để ghi, nhấn Ctrl + F9 để thực hiện chương trình.
Chương trình 4
1. #include <stdio.h>
2. #include <conio.h>
3. #include <math.h>
4.
5. void main()
6. {
7. float x, lt, gt, eps, s;
8. int i;
9. printf("Nhap x: ");
10. scanf("%f", &x);
11. lt = 1.0;
12. gt = 1.0;
13. s = 0;
14. i = 0;
15. eps = lt/gt;
16. while (fabs(eps) >= 1e-6)
17. {
18. s+= eps;
19. i++;
20. lt*= x;
21. gt*= i;
22. eps= lt/gt;
23. }
24. printf("e^%0.3f = %f", x, s);
20
25. getch();
26. }
+ Thực hiện chương trình và đánh giá kết quả.
+ Thử một vài thay đổi đối với chương trình. Với mỗi thay đổi, chạy và nhận xét kết quả thu được,
sau đó khôi phục chương trình mẫu:
- Thay đổi giá trị 10e-6 ở dòng 16 thành 0.001
- Bỏ dòng lệnh 13
- Thay đổi thứ tự các câu lệnh từ 18 đến 21
Bài 3. Viết chương trình nhập rồi in địa chỉ của một người nào đó.
Bài này giúp sinh viên hiểu cách nhập và xuất xâu ký tự, cách in xâu ký tự.
- Vào Windows | Close All để đóng các cửa sổ đang mở.
- Vào File | New để tạo một chương trình mới.
- Lưu chương trình với tên là “diachi.c”.
- Soạn thảo chương trình như trong Chương trình 5.
- Nhấn F2 để ghi, nhấn Ctrl + F9 để thực hiện chương trình.
CHƯƠNG TRÌNH 5
1. #include <stdio.h>
2. #include <conio.h>
3.
4. void main()
5. {
6. char name[30];
7. int number;
8. char street[50];
9. char district[30];
10. char city[30];
11.
12.
13. printf("Ho va ten: ");
14. fflush(stdin); gets(name);
15.
16. printf("So nha: ");
17. scanf("%d", &number);
18.
19. printf("Pho: ");
20. fflush(stdin); gets(street);
21.
22. printf("Quan: ");
23. fflush(stdin); gets(district);
24.
25. printf("Thanh pho: ");
26. fflush(stdin); gets(city);
27.
28. printf("Dia chi cua ban:n");
21
29. printf("%snSo %d pho %s quan %snThanh pho %s",
30. name, number, street, district, city);
31. getch();
32. }
+ Thực hiện chương trình và đánh giá kết quả.
+ Thử một vài thay đổi đối với chương trình. Với mỗi thay đổi, chạy và nhận xét kết quả thu được,
sau đó khôi phục chương trình mẫu:
- Bỏ câu lệnh fflush(stdin) ở dòng 20
- Sửa dòng 29 để được các cách in ra khác nhau, ví dụ sửa từ So thành So nha
- Thay đổi dòng 14 bằng lệnh scanf("%s", name);
2.4. Các bài tập tự làm
Bài 1. Nhập một dãy số nguyên, tính và in ra trung bình cộng của các phần tử. In ra bình phương
của các số trên một dòng.
Bài 2. Tính giá trị biểu thức:
Với độ chính xác .
22
Bài 3. Một số thuật toán cơ bản
3.1. Mục tiêu
- Thực hiện thuật toán tính tổng
- Thực hiện thuật toán đếm
- Thực hiện thuật toán tính trung bình cộng
- Thực hiện thuật toán tìm giá trị lớn nhất và giá trị nhỏ nhất.
- Thực hiện thuật toán sắp xếp.
3.2. Yêu cầu lý thuyết
Sinh viên cần nắm vững những nội dung sau:
- Các thuật toán đã được giới thiệu trong phần 1 của chương trình học.
- Mảng một chiều.
- Các câu lệnh điều khiển.
3.3. Các bài tập mẫu
Bài 1. Viết chương trình thực hiện:
- Nhập một dãy số nguyên.
- In dãy số đã nhập ra màn hình.
- Tính và in ra tổng các số chẵn của dãy số.
Thực hiện:
- Khởi động TC.
- Vào File | New để tạo một chương trình mới.
- Lưu chương trình với tên là “tongchan.c”.
- Soạn thảo chương trình như trong Chương trình 6.
- Nhấn F2 để ghi chương trình, nhấn Ctrl + F9 để thực hiện chương trình.
Chương trình 6
1. #include <stdio.h>
2. #include <conio.h>
3. void main()
4. {
5. int a[20];
6. int n, i, T;
7.
8. printf("Nhap so phan tu: ");
9. scanf("%d", &n);
10. for (i = 1; i <= n; i++)
11. {
12. printf("a[%d] = ", i);
13. scanf("%d", &a[i]);
14. }
15.
16. /* Tinh tong cac phan tu chan */
17. T = 0;
23
18. for (i = 1; i <= n; i++)
19. if (a[i] % 2 == 0)
20. T = T + a[i];
21. printf("Tong cac phan tu chan = %dn", T);
22.
23. printf("Day so vua nhap:n");
24. for (i = 1; i <= n; i++)
25. printf("%6d", a[i]);
26. getch();
27. }
+ Thực hiện chương trình và đánh giá kết quả.
+ Thử một vài thay đổi đối với chương trình. Với mỗi thay đổi, chạy và nhận xét kết quả thu được,
sau đó khôi phục chương trình mẫu:
- Bỏ dòng lệnh 17
- Đưa dòng 19, 20, 21 vào một khối lệnh
- Thay đổi câu lệnh ở dòng 25 bằng lệnh printf("%d", a[i]);
Bài 2. Viết chương trình thực hiện:
- Nhập các hệ số của một đa thức P.
- Nhập số thực x rồi tính và in giá trị của đa thức P(x) ra màn hình.
Thực hiện:
- Vào Windows | Close All để đóng các cửa sổ đang mở.
- Vào File | New để tạo một chương trình mới.
- Lưu chương trình với tên là “poly.c”.
- Soạn thảo chương trình như trong Chương trình 8.
- Nhấn F2 để ghi, nhấn Ctrl + F9 để thực hiện chương trình.
Chương trình 8
1. #include <stdio.h>
2. #include <conio.h>
3.
4. void main()
5. {
6. float a[20];
7. int n, i;
8. float p, x, f;
9.
10. /* Nhap da thuc */
11. printf("Bac da thuc: ");
12. scanf("%d", &n);
13. for (i = n; i >= 0; i--)
14. {
15. printf("a%d = ", i);
16. scanf("%f", &a[i]);
17. }
24
18.
19. printf("Nhap x: ");
20. scanf("%f", &x);
21. p = 0;
22. f = 1;
23. for (i = 0; i <= n; i++)
24. {
25. p+= a[i]*f;
26. f*= x;
27. }
28. printf("Gia tri da thuc: %f", p);
29. getch();
30. }
+ Thực hiện chương trình và đánh giá kết quả.
+ Thử một vài thay đổi đối với chương trình. Với mỗi thay đổi, chạy và nhận xét kết quả thu được,
sau đó khôi phục chương trình mẫu:
- Thay câu lệnh ở dòng 13 bằng câu lệnh for (i = 0; i <= n; i++)
- Hãy đưa ra một cách khác tính giá trị đa thức (nếu có thể)
Bài 3. Viết chương trình thực hiện:
- Nhập một dãy số thực.
- In dãy số đã nhập ra màn hình.
- Đếm số phần tử có giá trị nằm trong đoạn [10, 20].
Thực hiện:
- Vào Windows | Close All để đóng các cửa sổ đang mở.
- Vào File | New để tạo một chương trình mới.
- Lưu chương trình với tên là “dem.c”.
- Soạn thảo chương trình như trong Chương trình 9.
- Nhấn F2 để ghi, nhấn Ctrl + F9 để thực hiện chương trình.
Chương trình 9
1. #include <stdio.h>
2. #include <conio.h>
3. void main()
4. {
5. float a[20];
6. int n, i, d;
7.
8. printf("Nhap so phan tu: ");
9. scanf("%d", &n);
10. for (i = 1; i <= n; i++)
11. {
12. printf("a[%d] = ", i);
13. scanf("%f", &a[i]);
14. }
25
15.
16. /* Dem so phan tu co gia tri nam trong doan [10, 20]*/
17. d = 0;
18. for (i = 1; i <= n; i++)
19. if ((a[i] >= 10) && (a[i] <= 20))
20. d = d + 1;
21. printf("n So phan tu thoa man dieu kien = %4d", d);
22.
23. printf("n Day so vua nhap:n");
24. for (i = 1; i <= n; i++)
25. printf("%10.3f", a[i]);
26. getch();
27. }
+ Thực hiện chương trình và đánh giá kết quả.
+ Thử một vài thay đổi đối với chương trình. Với mỗi thay đổi, chạy và nhận xét kết quả thu được,
sau đó khôi phục chương trình mẫu:
- Bỏ dòng lệnh 17
- Đưa lệnh 19, 20, 21 vào một khối lệnh
Bài 3. Viết chương trình thực hiện:
- Nhập một dãy số nguyên.
- In dãy số vừa nhập ra màn hình.
- Tìm và in ra giá trị phần tử lớn nhất của dãy.
Thực hiện:
- Vào Windows | Close All để đóng các cửa sổ đang mở.
- Vào File | New để tạo một chương trình mới.
- Lưu chương trình với tên là “max.c”.
- Soạn thảo chương trình như trong Chương trình 10.
- Nhấn F2 để ghi, nhấn Ctrl + F9 để thực hiện chương trình.
Chương trình 10
1. #include <stdio.h>
2. #include <conio.h>
3. void main()
4. {
5. int n, i;
6. int a[20], max;
7.
8. printf("Nhap so phan tu: ");
9. scanf("%d", &n);
10. for (i = 1; i <= n; i++)
11. {
12. printf("a[%d] = ", i);
13. scanf("%d", &a[i]);
14. }
26
15.
16. /* Tim gia tri max */
17. max = a[1];
18. for (i = 2; i <= n; i++)
19. if (a[i] > max)
20. max = a[i];
21. printf("Gia tri lon nhat: %4dn", max);
22.
23. printf("Day so vua nhap:n");
24. for (i = 1; i <= n; i++)
25. printf("%6d", a[i]);
26. getch();
27. }
+ Thực hiện chương trình và đánh giá kết quả.
+ Thử một vài thay đổi đối với chương trình. Với mỗi thay đổi, chạy và nhận xét kết quả thu được,
sau đó khôi phục chương trình mẫu:
- Thay lệnh ở dòng 17 bằng lệnh max = 0;
- Đưa các dòng lệnh 19, 20, 21 vào khối lệnh
- Thay đổi dòng lệnh 19 bằng if (a[i] >= max)
Bài 4. Viết chương trình thực hiện:
- Nhập một dãy số thực.
- In dãy số vừa nhập ra màn hình.
- Sắp xếp dãy số theo thứ tự tăng dần.
- In dãy số đã sắp xếp ra màn hình.
Thực hiện:
- Vào Windows | Close All để đóng các cửa sổ đang mở.
- Vào File | New để tạo một chương trình mới.
- Lưu chương trình với tên là “sapxep.c”.
- Soạn thảo chương trình như trong Chương trình 11.
- Nhấn F2 để ghi, nhấn Ctrl + F9 để thực hiện chương trình.
Chương trình 11
1. #include <stdio.h>
2. #include <conio.h>
3. void main()
4. {
5. int n, i, j;
6. float a[20], tg;
7.
8. printf("Nhap so phan tu: ");
9. scanf("%d", &n);
10. for (i = 1; i <= n; i++)
11. {
27
12. printf("a[%d] = ", i);
13. scanf("%f", &a[i]);
14. }
15.
16. printf("Day so truoc khi sap xep:n");
17. for (i = 1; i <= n; i++)
18. printf("%7.2f", a[i]);
19.
20. /* Sap xep day so theo thu tu tang dan */
21. for (i = 1; i <= n - 1; i++)
22. for (j = i + 1; j <= n; j++)
23. if (a[i] > a[j])
24. {
25. tg = a[i];
26. a[i] = a[j];
27. a[j] = tg;
28. }
29.
30. printf("nDay so sau khi sap xep:n");
31. for (i = 1; i <= n; i++)
32. printf("%7.2f", a[i]);
33. getch();
34. }
+ Thực hiện chương trình và đánh giá kết quả.
+ Thử một vài thay đổi đối với chương trình. Với mỗi thay đổi, chạy và nhận xét kết quả thu được,
sau đó khôi phục chương trình mẫu:
- Thay lệnh ở dòng 21 bằng lệnh for (i = 1; i <= n; i++);
- Bỏ cặp ngoặc ở các dòng 24 và 28
- Thay lệnh ở dòng 23 bằng lệnh if (a[i] < a[j])
3.4. Các bài tập tự làm
Bài 1. Nhập dãy số nguyên a1, a2,..., an. Hãy đếm xem trong dãy có bao nhiêu phần tử có giá trị chia
cho 7 dư 1 hoặc 3? Tính trung bình cộng các phần tử có giá trị chẵn và nhỏ hơn 50? Tìm một phần
tử lẻ có giá trị nhỏ nhất? In ra màn hình dãy số đã nhập và các đại lượng tính được ở trên.
Bài 2. Nhập dãy số thực a1, a2,..., an. Hãy đếm xem trong dãy có bao nhiêu cặp 2 phần tử liên tiếp
mà phần tử đứng sau có giá trị lớn hơn phần tử đứng trước? Tính tổng các phần tử có giá trị không
thuộc đoạn [-10, 20]? Tìm giá trị và vị trí của một phần tử có giá trị nhỏ nhất? In ra màn hình dãy
số đã nhập và các đại lượng tính được ở trên.
Bài 3. Nhập số thực r và toạ độ của n điểm trên mặt phẳng xOy. Hãy đếm số điểm nằm bên trong
nửa đường tròn tâm O(0, 0) bán kính r và nằm bên trái trục Oy? Đếm số điểm không thuộc góc III
của hệ trục toạ độ xOy? Tính diện tích của hình chữ nhật nhỏ nhất có các cạnh song song với các
trục tọa độ và chứa tất cả các điểm đã nhập? In ra màn hình toạ độ các điểm đã nhập và các đại
lượng tính được ở trên.
28
Bài 4. Nhập toạ độ của n điểm trên mặt phẳng xOy. Hãy tính diện tích hình tròn nhỏ nhất tâm ở gốc
tọa độ O(0, 0) chứa tất cả các điểm trên? Tính tổng độ dài các đoạn thẳng nằm trong góc IV của hệ
trục toạ độ xOy? In ra màn hình toạ độ các điểm đã nhập và các đại lượng tính được ở trên.
Bài 5. Nhập hai đa thức P, Q và hai số thực u, v.
- Tính giá trị P(u) – Q(v).
- Đưa ra các hệ số của đa thức tổng P(x) + Q(x).
29
Bài 4. Ma trận
4.1. Mục tiêu
- Khai báo và truy cập các phần tử ma trận.
- Nhập ma trận và in ma trận dưới dạng bảng.
- Thao tác với ma trận.
4.2. Yêu cầu lý thuyết
Sinh viên cần nắm vững những phần nội dung sau:
- Cú pháp khai báo và truy cập phần tử mảng hai chiều.
- Các lệnh for lồng nhau.
- Kiến thức toán học về ma trận.
4.3. Các bài tập mẫu
Bài 1. Viết chương trình thực hiện:
- Nhập một ma trận thực.
- In ma trận ra màn hình dưới dạng bảng.
- Tính và in ra màn hình tổng các hàng của ma trận và giá trị lớn nhất của chúng.
Thực hiện:
- Khởi động TC.
- Vào File | New để tạo một chương trình mới.
- Lưu chương trình với tên là “matrix.c”.
- Soạn thảo chương trình như trong Chương trình 12.
- Nhấn F2 để ghi, nhấn Ctrl + F9 để thực hiện chương trình.
Chương trình 12
1. #include <stdio.h>
2. #include <conio.h>
3. void main()
4. {
5. float a[50][50], sum[50];
6. int m, n, i, j;
7. float max, tmp;
8.
9. /* Nhap ma tran */
10. printf("Nhap kich co ma tran: ");
11. scanf("%d%d", &m, &n);
12. for (i = 1; i <= m; i++)
13. for (j = 1; j <= n; j++)
14. {
15. printf("a[%d][%d] = ", i, j);
16. scanf("%f", &tmp);
17. a[i][j] = tmp;
18. }
19.
20. /* In ma tran duoi dang bang */
30
21. printf("Ma tran vua nhap:n");
22. for (i = 1; i <= m; i++)
23. {
24. for (j = 1; j <= n; j++)
25. printf("%8.2f", a[i][j]);
26. printf("n");
27. }
28. /* In tong hang va tong lon nhat */
29. for (i = 1; i <= m; i++)
30. {
31. sum[i] = 0;
32. for (j = 1; j <= n; j++)
33. sum[i] += a[i][j];
34.
35. printf("Tong hang %d: %fn", i, sum[i]);
36. }
37. max = sum[1];
38. for (i = 2; i <= m; i++)
39. if (max < sum[i])
40. max = sum[i];
41. printf("Tong hang lon nhat: %f", max);
42.
43. getch();
}
+ Thực hiện chương trình và đánh giá kết quả.
+ Thử một vài thay đổi đối với chương trình. Với mỗi thay đổi, chạy và nhận xét kết quả thu được,
sau đó khôi phục chương trình mẫu:
- Thay dòng 16, 17 bằng lệnh scanf("%f", &a[i][j]);
- Hoán đổi vị trí 2 dòng 35 và 36
- Thay vì tính tổng các dòng, tính tổng các cột và đưa ra tổng lớn nhất
Bài 2. Viết chương trình thực hiện:
- Nhập một ma trận nguyên vuông.
- In ma trận ra màn hình dưới dạng bảng.
- Kiểm tra xem ma trận vừa nhập có phải là ma trận tam giác trên hay không (Ma trận tam giác trên
là ma trận có tất cả các phần tử nằm phía dưới đường chéo chính đều bằng 0).
Thực hiện:
- Vào File | New để tạo một chương trình mới.
- Lưu chương trình với tên là “matrix2.c”.
- Soạn thảo chương trình như trong Chương trình 13.
- Nhấn F2 để ghi, nhấn Ctrl + F9 để thực hiện chương trình.
Chương trình 13
1. #include <stdio.h>
2. #include <conio.h>
3. void main()
4. {
31
5. int a[50][5], n, i, j, d;
6. clrscr(); /* Xoa man hinh */
7. printf("Nhap kich thuoc ma tran: ");
8. scanf("%d", &n);
9. /* Nhap ma tran */
10. for (i = 1; i <= n; i++)
11. for (j = 1; j <= n; j++)
12. {
13. printf("nNhap a[%d][%d]: ", i, j);
14. scanf("%d", &a[i][j]);
15. }
16. /* In ma tran duoi dang bang */
17. printf("nnMa tran vua nhap duoi dang bangn");
18. for (i = 1; i <= n; i++)
19. {
20. for (j = 1; j <= n; j++)
21. printf("%5d ", a[i][j]);
22. printf("n");
23. }
24. /* Dem so phan tu khac 0 nam duoi duong cheo chinh */
25. d = 0;
26. for (i = 2; i <= n; i++)
27. for (j = 1; j < i; j++)
28. if (a[i][j] != 0)
29. d++;
30. /* Ket luan */
31. if (d == 0)
32. printf("nnMa tran la ma tran tam giac tren");
33. else
34. printf("nnMa tran khong la ma tran tam giac tren");
35. getch();
36. }
+ Thực hiện chương trình và đánh giá kết quả.
+ Thử một vài thay đổi đối với chương trình. Với mỗi thay đổi, chạy và nhận xét kết quả thu được,
sau đó khôi phục chương trình mẫu:
- Thực hiện phần chương trình "Dem so phan tu khac 0 nam duoi duong cheo chinh" (từ dòng 24
đến dòng 29) bằng cách khác.
- Giải quyết bài toán bằng cách khác mà không cần đếm số lượng phần tử khác 0 nằm phía dưới
đường chéo chính (Gợi ý: Có thể sử dụng câu lệnh break;).
4.4. Các bài tập tự làm
Bài 1. Nhập một ma trận thực. Tính tổng tất cả các phần tử của ma trận và tìm giá trị lớn nhất của
chúng.
Bài 2. Nhập một ma trận thực M cấp m×n. In ma trận MT
ra màn hình dưới dạng bảng (Ma trận MT
là ma trận thực cấp n×m mà MT
[i][j] = M[j][i], với 1 ≤ i ≤ n, 1 ≤ j ≤ m).
32
Bài 5. Cấu trúc
5.1. Mục tiêu
- Định nghĩa cấu trúc và khai báo biến, mảng cấu trúc.
- Nhập dữ liệu cho một danh sách các cấu trúc.
- In ra các thông tin trong một danh sách các cấu trúc.
5.2. Yêu cầu lý thuyết
Sinh viên cần nắm vững những phần nội dung sau:
- Khái niệm cấu trúc và cú pháp định nghĩa cấu trúc
- Truy cập các trường của cấu trúc
- Cú pháp khai báo mảng cấu trúc
- Từ khoá typedef
5.3. Các bài tập mẫu
Bài 1. Viết chương trình thực hiện:
- Định nghĩa một cấu trúc lưu thông tin về nhân viên, gồm các trường: họ tên, địa chỉ và mức
lương.
- Nhập các thông tin của một nhân viên nào đó.
- In ra màn hình các thông tin vừa nhập.
Thực hiện:
- Khởi động TC.
- Vào File | New để tạo một chương trình mới.
- Lưu chương trình với tên là "nhanvien.c".
- Soạn thảo chương trình như trong Chương trình 14.
Nhấn F2 để ghi, nhấn Ctrl + F9 để thực hiện chương trình.
Chương trình 14
1. #include <stdio.h>
2. #include <conio.h>
3.
4. struct nhanvien {
5. char hoten[30];
6. char diachi[50];
7. float luong;
8. };
9.
10. void main()
11. {
12. struct nhanvien nv;
13. printf("Nhap thong tin nhan vienn");
14. printf("Ho va ten: ");
15. fflush(stdin); gets(nv.hoten);
16. printf("Dia chi: ");
17. fflush(stdin); gets(nv.diachi);
33
18. printf("Muc luong: ");
19. scanf("%f", &nv.luong);
20.
21. printf("Thong tin nhan vien vua nhapn");
22. printf("Ho va ten: %sn", nv.hoten);
23. printf("Dia chi: %sn", nv.diachi);
24. printf("Luong: %f", nv.luong);
25.
26. getch();
27. }
+ Thực hiện chương trình và đánh giá kết quả.
+ Thử một vài thay đổi đối với chương trình. Với mỗi thay đổi, chạy và nhận xét kết quả thu được,
sau đó khôi phục chương trình mẫu:
- Bỏ từ khoá struct ở dòng 12
- Thêm các trường mã nhân viên và tuổi vào cấu trúc lưu thông tin nhân viên
Bài tập 2. Viết chương trình thực hiện:
- Nhập vào một danh sách các sinh viên, mỗi sinh viên gồm các thông tin: họ tên, mã sinh viên,
điểm trung bình.
- Hiển thị danh sách các sinh viên vừa nhập.
- Sắp xếp danh sách theo chiều giảm dần của điểm trung bình và in ra 3 thí sinh có điểm trung bình
cao nhất.
Thực hiện:
- Vào Windows | Close All để đóng các cửa sổ đang mở.
- Vào File | New để tạo một chương trình mới.
- Lưu chương trình với tên là "sinhvien.c".
- Soạn thảo chương trình như trong Chương trình 15.
- Nhấn F2 để ghi, nhấn Ctrl + F9 để thực hiện chương trình.
Chương trình 15
1. #include <stdio.h>
2. #include <conio.h>
3.
4. typedef struct {
5. char hoten[30];
6. char masv[15];
7. float diem;
8. } sinhvien;
9.
10. void main()
11. {
12. sinhvien ds[10], tg;
13. int n, i, j;
14.
15. printf("So sinh vien: ");
16. scanf("%d", &n);
34
17.
18. for (i = 1; i <= n; i++)
19. {
20. printf("Nhap thong tin sinh vien thu %dn", i);
21. printf("Ho va ten: ");
22. fflush(stdin); gets(tg.hoten);
23. printf("Ma sinh vien: ");
24. fflush(stdin); gets(tg.masv);
25. printf("Diem trung binh: ");
26. scanf("%f", &tg.diem);
27. ds[i] = tg;
28. }
29.
30. printf("nDanh sach sinh vien vua nhap:n");
31. printf("%-3s %-25s %-10s %-6sn",
32. "STT", "Ho va ten", "Ma SV", "Diem");
33. printf("------------------------------------------n");
34.
35. for (i = 1; i <= n; i++)
36. printf("%-3d %-25s %-10s %-6.2fn",
37. i, ds[i].hoten, ds[i].masv, ds[i].diem);
38.
39. /* Sap xep giam dan cua diem trung binh */
40. for (i = 1; i < n; i++)
41. for (j = i + 1; j <= n; j++)
42. if(ds[i].diem < ds[j].diem)
43. {
44. tg = ds[i];
45. ds[i] = ds[j];
46. ds[j] = tg;
47. }
48.
49. printf("nDanh sach 3 sinh vien co diem cao nhat:n");
50. printf("%-3s %-25s %-10s %-6sn",
51. "STT", "Ho va ten", "Ma SV", "Diem");
52. printf("------------------------------------------n");
53.
54. for (i = 1; (i <= 3) && (i <= n); i++)
55. printf("%-3d %-25s %-10s %-6.2fn",
56. i, ds[i].hoten, ds[i].masv, ds[i].diem);
57.
58. getch();
59. }
+ Thực hiện chương trình và đánh giá kết quả.
+ Thử một vài thay đổi đối với chương trình. Với mỗi thay đổi, chạy và nhận xét kết quả thu được,
sau đó khôi phục chương trình mẫu:
- Thay lệnh ở dòng 27 bằng lệnh: tg = ds[i];
35
- Thêm vào chương trình chức năng hiển thị tất cả các sinh viên có điểm trung bình cao nhất.
5.4. Các bài tập tự làm
Bài 1. Định nghĩa một cấu trúc mô tả thông tin về một khách mua hàng, gồm các trường:
- Họ tên
- Địa chỉ
- Số điện thoại
- Tên mặt hàng khách đặt mua
- Số lượng
- Ngày giao hàng
Nhập thông tin cho một khách hàng và đưa ra các thông tin vừa nhập.
Bài 2. Định nghĩa cấu trúc mô tả thông tin về sách trong thư viện, gồm các trường:
- Mã sách
- Tên sách
- Tác giả
- Năm xuất bản
- Số trang
Nhập một danh sách các cuốn sách, hiển thị ra màn hình danh sách các cuốn sách theo thứ tự tên
của chúng trong bảng chữ cái.

More Related Content

What's hot (15)

Sach tin hoc cb chuan
Sach tin hoc cb chuanSach tin hoc cb chuan
Sach tin hoc cb chuan
 
May t5 t7
May t5 t7May t5 t7
May t5 t7
 
Vb6 16 (11)
Vb6 16 (11)Vb6 16 (11)
Vb6 16 (11)
 
Chuong 01
Chuong 01Chuong 01
Chuong 01
 
Tl open office_impress
Tl open office_impressTl open office_impress
Tl open office_impress
 
Thủ thuật PC hay
Thủ thuật PC hayThủ thuật PC hay
Thủ thuật PC hay
 
Chương 7: Phần mềm sửa chữa
Chương 7: Phần mềm sửa chữaChương 7: Phần mềm sửa chữa
Chương 7: Phần mềm sửa chữa
 
Slide: Scratch: 2 Thanh danh mục
Slide: Scratch: 2 Thanh danh mụcSlide: Scratch: 2 Thanh danh mục
Slide: Scratch: 2 Thanh danh mục
 
Tổng Quan về Lập trình Scratch
Tổng Quan về Lập trình ScratchTổng Quan về Lập trình Scratch
Tổng Quan về Lập trình Scratch
 
Hướng dẫn sử dụng Photoshop CS5 (tiếng Việt)
Hướng dẫn sử dụng Photoshop CS5 (tiếng Việt)Hướng dẫn sử dụng Photoshop CS5 (tiếng Việt)
Hướng dẫn sử dụng Photoshop CS5 (tiếng Việt)
 
Chuong 02
Chuong 02Chuong 02
Chuong 02
 
Lythuyet thi
Lythuyet thiLythuyet thi
Lythuyet thi
 
Hướng dẫn sử dụng đầu ghi IP Vantech
Hướng dẫn sử dụng đầu ghi IP VantechHướng dẫn sử dụng đầu ghi IP Vantech
Hướng dẫn sử dụng đầu ghi IP Vantech
 
Chuong 03
Chuong 03Chuong 03
Chuong 03
 
Phần mềm chấm thi trăc nghiệm VTS
Phần mềm chấm thi trăc nghiệm VTSPhần mềm chấm thi trăc nghiệm VTS
Phần mềm chấm thi trăc nghiệm VTS
 

Viewers also liked

Phan3excel 110716212447-phpapp02
Phan3excel 110716212447-phpapp02Phan3excel 110716212447-phpapp02
Phan3excel 110716212447-phpapp02
lekytho
 
Bài tập và thực hành 10
Bài tập và thực hành 10Bài tập và thực hành 10
Bài tập và thực hành 10
Việt Nguyễn
 
đề Cương ôn thi lý thuyết chứng chỉ a tin học
đề Cương ôn thi lý thuyết chứng chỉ a tin họcđề Cương ôn thi lý thuyết chứng chỉ a tin học
đề Cương ôn thi lý thuyết chứng chỉ a tin học
Học Huỳnh Bá
 
tiền tệ và chính sách tiền tệ
tiền tệ và chính sách tiền tệtiền tệ và chính sách tiền tệ
tiền tệ và chính sách tiền tệ
LyLy Tran
 
Bai tap lap trinh c
Bai tap lap trinh  cBai tap lap trinh  c
Bai tap lap trinh c
tiểu minh
 
Bài tập nhập môn lập trình
Bài tập nhập môn lập trìnhBài tập nhập môn lập trình
Bài tập nhập môn lập trình
Huy Rùa
 

Viewers also liked (14)

Phan3excel 110716212447-phpapp02
Phan3excel 110716212447-phpapp02Phan3excel 110716212447-phpapp02
Phan3excel 110716212447-phpapp02
 
[123doc.vn] bg-giai-tich-iii-nguyen-xuan-thao-2014
[123doc.vn]   bg-giai-tich-iii-nguyen-xuan-thao-2014[123doc.vn]   bg-giai-tich-iii-nguyen-xuan-thao-2014
[123doc.vn] bg-giai-tich-iii-nguyen-xuan-thao-2014
 
Bài tập và thực hành 10
Bài tập và thực hành 10Bài tập và thực hành 10
Bài tập và thực hành 10
 
Baigiang05 thuattoan(1s 1p)
Baigiang05 thuattoan(1s 1p)Baigiang05 thuattoan(1s 1p)
Baigiang05 thuattoan(1s 1p)
 
Chương 5
Chương 5Chương 5
Chương 5
 
[Tin học 12 - Ms. Access] Cơ sở dữ liệu quan hệ
[Tin học 12 - Ms. Access] Cơ sở dữ liệu quan hệ[Tin học 12 - Ms. Access] Cơ sở dữ liệu quan hệ
[Tin học 12 - Ms. Access] Cơ sở dữ liệu quan hệ
 
đề Cương ôn thi lý thuyết chứng chỉ a tin học
đề Cương ôn thi lý thuyết chứng chỉ a tin họcđề Cương ôn thi lý thuyết chứng chỉ a tin học
đề Cương ôn thi lý thuyết chứng chỉ a tin học
 
Các thao tác cơ bản trên photoshop cs3 (phần 1)
Các thao tác cơ bản trên photoshop cs3 (phần 1)Các thao tác cơ bản trên photoshop cs3 (phần 1)
Các thao tác cơ bản trên photoshop cs3 (phần 1)
 
tiền tệ và chính sách tiền tệ
tiền tệ và chính sách tiền tệtiền tệ và chính sách tiền tệ
tiền tệ và chính sách tiền tệ
 
Hướng dẫn giải bài tập chuỗi - Toán cao cấp
Hướng dẫn giải bài tập chuỗi - Toán cao cấpHướng dẫn giải bài tập chuỗi - Toán cao cấp
Hướng dẫn giải bài tập chuỗi - Toán cao cấp
 
Tập 3 chuyên đề Toán học: Hình học phẳng Oxy - Megabook.vn
Tập 3 chuyên đề Toán học: Hình học phẳng Oxy - Megabook.vnTập 3 chuyên đề Toán học: Hình học phẳng Oxy - Megabook.vn
Tập 3 chuyên đề Toán học: Hình học phẳng Oxy - Megabook.vn
 
Bai tap lap trinh c
Bai tap lap trinh  cBai tap lap trinh  c
Bai tap lap trinh c
 
Bài tập nhập môn lập trình
Bài tập nhập môn lập trìnhBài tập nhập môn lập trình
Bài tập nhập môn lập trình
 
GIẢI TAM GIÁC TRONG TỌA ĐỘ PHẲNG
GIẢI TAM GIÁC TRONG TỌA ĐỘ PHẲNGGIẢI TAM GIÁC TRONG TỌA ĐỘ PHẲNG
GIẢI TAM GIÁC TRONG TỌA ĐỘ PHẲNG
 

Similar to Thực hành tin đại cương

Huong dan sd power point[bookbooming.com]
Huong dan sd power point[bookbooming.com]Huong dan sd power point[bookbooming.com]
Huong dan sd power point[bookbooming.com]
bookbooming1
 
P2 power point 2010
P2 power point 2010P2 power point 2010
P2 power point 2010
Trần Kỳ
 
Giáo án simco đã chỉnh sửa
Giáo án simco  đã chỉnh sửaGiáo án simco  đã chỉnh sửa
Giáo án simco đã chỉnh sửa
Thanh Le
 
Giao trinh huong_dan_chi_tiet_excel_2013
Giao trinh huong_dan_chi_tiet_excel_2013Giao trinh huong_dan_chi_tiet_excel_2013
Giao trinh huong_dan_chi_tiet_excel_2013
minhhai07b08
 
P2 power point 2010
P2 power point 2010P2 power point 2010
P2 power point 2010
Trần Kỳ
 

Similar to Thực hành tin đại cương (20)

Tin học lớp 6
Tin học lớp 6Tin học lớp 6
Tin học lớp 6
 
BÀI GIẢNG MÔN COREL DRAW - KHOA CÔNG NGHỆ THÔNG TIN
BÀI GIẢNG MÔN COREL DRAW - KHOA CÔNG NGHỆ THÔNG TIN BÀI GIẢNG MÔN COREL DRAW - KHOA CÔNG NGHỆ THÔNG TIN
BÀI GIẢNG MÔN COREL DRAW - KHOA CÔNG NGHỆ THÔNG TIN
 
Hướng dẫn sử dụng bảng tương tác IQboard
Hướng dẫn sử dụng bảng tương tác IQboardHướng dẫn sử dụng bảng tương tác IQboard
Hướng dẫn sử dụng bảng tương tác IQboard
 
Huong dan sd power point[bookbooming.com]
Huong dan sd power point[bookbooming.com]Huong dan sd power point[bookbooming.com]
Huong dan sd power point[bookbooming.com]
 
P2 power point 2010
P2 power point 2010P2 power point 2010
P2 power point 2010
 
Cách cài đặt lại bàn phím máy tính.pdf
Cách cài đặt lại bàn phím máy tính.pdfCách cài đặt lại bàn phím máy tính.pdf
Cách cài đặt lại bàn phím máy tính.pdf
 
Chủ đề 1
Chủ đề 1Chủ đề 1
Chủ đề 1
 
Illustrator
IllustratorIllustrator
Illustrator
 
Bai tap thuc hanh
Bai tap thuc hanhBai tap thuc hanh
Bai tap thuc hanh
 
COM1014 - Lab 01.docx
COM1014 - Lab 01.docxCOM1014 - Lab 01.docx
COM1014 - Lab 01.docx
 
Giáo án simco đã chỉnh sửa
Giáo án simco  đã chỉnh sửaGiáo án simco  đã chỉnh sửa
Giáo án simco đã chỉnh sửa
 
Giao trinh huong_dan_chi_tiet_excel_2013
Giao trinh huong_dan_chi_tiet_excel_2013Giao trinh huong_dan_chi_tiet_excel_2013
Giao trinh huong_dan_chi_tiet_excel_2013
 
Excel 2013
Excel 2013Excel 2013
Excel 2013
 
Hướng dẫn sử dụng phần mềm BÉ HỌA SĨ. User Guide
Hướng dẫn sử dụng phần mềm BÉ HỌA SĨ. User GuideHướng dẫn sử dụng phần mềm BÉ HỌA SĨ. User Guide
Hướng dẫn sử dụng phần mềm BÉ HỌA SĨ. User Guide
 
Tin học lớp 6
Tin học lớp 6Tin học lớp 6
Tin học lớp 6
 
Thiết kế ngược Rapidform cho người mới học
Thiết kế ngược Rapidform cho người mới họcThiết kế ngược Rapidform cho người mới học
Thiết kế ngược Rapidform cho người mới học
 
Chuong1
Chuong1Chuong1
Chuong1
 
P2 power point 2010
P2 power point 2010P2 power point 2010
P2 power point 2010
 
P2 power point
P2 power pointP2 power point
P2 power point
 
TL huong dan lam quen va su dung MS word 2013
TL huong dan lam quen  va su dung MS word  2013TL huong dan lam quen  va su dung MS word  2013
TL huong dan lam quen va su dung MS word 2013
 

More from Ttx Love

More from Ttx Love (20)

CIC-LiftingSafetyHandbook-2020.pdf
CIC-LiftingSafetyHandbook-2020.pdfCIC-LiftingSafetyHandbook-2020.pdf
CIC-LiftingSafetyHandbook-2020.pdf
 
SEICO PROFILE
SEICO PROFILESEICO PROFILE
SEICO PROFILE
 
Nghi dinh 63_2014_nd-cp
Nghi dinh 63_2014_nd-cpNghi dinh 63_2014_nd-cp
Nghi dinh 63_2014_nd-cp
 
Luat xay dung_50_2014_qh13
Luat xay dung_50_2014_qh13Luat xay dung_50_2014_qh13
Luat xay dung_50_2014_qh13
 
Luat so 43_2013_qh13
Luat so 43_2013_qh13Luat so 43_2013_qh13
Luat so 43_2013_qh13
 
Tcxdvn104 2007
Tcxdvn104 2007Tcxdvn104 2007
Tcxdvn104 2007
 
Tcvn 4054 2005
Tcvn 4054 2005Tcvn 4054 2005
Tcvn 4054 2005
 
Tinh luc cap tai moi gd thi cong
Tinh luc cap tai moi gd thi congTinh luc cap tai moi gd thi cong
Tinh luc cap tai moi gd thi cong
 
Tinh cau bang midas nckh sinh vien
Tinh cau bang midas nckh sinh vienTinh cau bang midas nckh sinh vien
Tinh cau bang midas nckh sinh vien
 
P tgiai doan tc dam lien hop
P tgiai doan tc dam lien hopP tgiai doan tc dam lien hop
P tgiai doan tc dam lien hop
 
Pt giai doan thi cong su dung fcm wizard
Pt giai doan thi cong su dung fcm wizardPt giai doan thi cong su dung fcm wizard
Pt giai doan thi cong su dung fcm wizard
 
Midas tinh toan_cau_duc_hang
Midas tinh toan_cau_duc_hangMidas tinh toan_cau_duc_hang
Midas tinh toan_cau_duc_hang
 
Midas civil
Midas civilMidas civil
Midas civil
 
Midas gioi thieu 2
Midas gioi thieu 2Midas gioi thieu 2
Midas gioi thieu 2
 
Gioi thieu midas
Gioi thieu midasGioi thieu midas
Gioi thieu midas
 
Qt ks t.ke nen duong tren dat yeu 22 tcn 262 2000
Qt ks t.ke nen duong tren dat yeu 22 tcn 262 2000Qt ks t.ke nen duong tren dat yeu 22 tcn 262 2000
Qt ks t.ke nen duong tren dat yeu 22 tcn 262 2000
 
C93 22 tcn262_2000p9
C93 22 tcn262_2000p9C93 22 tcn262_2000p9
C93 22 tcn262_2000p9
 
C89 22 tcn262_2000p6
C89 22 tcn262_2000p6C89 22 tcn262_2000p6
C89 22 tcn262_2000p6
 
C8 f 22tcn262_2000p1
C8 f 22tcn262_2000p1C8 f 22tcn262_2000p1
C8 f 22tcn262_2000p1
 
Bae 22 tcn262_2000p8
Bae 22 tcn262_2000p8Bae 22 tcn262_2000p8
Bae 22 tcn262_2000p8
 

Thực hành tin đại cương

  • 1. BỘ MÔN CÔNG NGHỆ PHẦN MỀM TIN HỌC ĐẠI CƯƠNG HƯỚNG DẪN THỰC HÀNH Hà Nội, 10/2009 Phần thực hành bao gồm các bài tập mẫu giúp cho sinh viên hiểu sâu hơn về ngôn ngữ và các bài tập tự làm giúp sinh viên áp dụng các kiến thức đã học để giải quyết một bài toán cụ thể.
  • 2. HƯỚNG DẪN THỰC HÀNH MÔN TIN HỌC ĐẠI CƯƠNG ội dung thực hành gồm 5 bài, thực hiện trong 5 buổi thực hành đối với những lớp học 3 tín chỉ và 3 buổi thực hành đối với những lớp học 2 tín chỉ, mỗi buổi thực hành kéo dài 120 phút. Mỗi bài thực hành gồm có phần yêu cầu lý thuyết, phần các bài tập mẫu và các bài tập tự làm. Sinh viên đọc lại phần lý thuyết trong bài giảng, thực hiện các bài tập mẫu và đưa ra nhận xét về kết quả nhận được khi thực hiện các bài tập mẫu. Sau mỗi bài tập mẫu, thực hiện một số thay đổi đối với bài tập mẫu và nhận xét kết quả. Sinh viên tự làm phần bài tập tự làm. Giáo viên hướng dẫn sinh viên thực hiện các bài tập và kiểm tra kết quả thực hiện của sinh viên. N
  • 3. MỤC LỤC Bài 1. Hệ điều hành Windows XP và môi trường Turbo C++ 3.0 ........................................5 1.1. Hệ điều hành Windows XP .......................................................................................5 1.1.1. Mục tiêu ........................................................................................................................ 5 1.1.2. Yêu cầu lý thuyết........................................................................................................... 5 1.1.3. Khởi động máy tính....................................................................................................... 5 1.1.4. Các thành phần trên màn hình Desktop........................................................................ 5 1.1.5. Sử dụng chuột .............................................................................................................. 6 1.1.6. Khởi động một chương trình ......................................................................................... 6 1.1.7. Cửa sổ của một chương trình ....................................................................................... 6 1.1.8. Window Explorer........................................................................................................... 8 1.1.9. Tắt máy tính an toàn ................................................................................................... 13 1.2. Môi trường Turbo C++ 3.0 và ngôn ngữ C .............................................................13 1.2.1. Mục tiêu ...................................................................................................................... 13 1.2.2. Yêu cầu lý thuyết......................................................................................................... 14 1.2.3. Môi trường Turbo C++ 3.0 .......................................................................................... 14 1.2.4. Các bài tập mẫu.......................................................................................................... 14 1.2.5. Các bài tập tự làm....................................................................................................... 17 Bài 2. Cơ bản về ngôn ngữ ...............................................................................................18 2.1. Mục tiêu ..................................................................................................................18 2.2. Yêu cầu lý thuyết ....................................................................................................18 2.3. Các bài tập mẫu......................................................................................................18 2.4. Các bài tập tự làm ..................................................................................................21 Bài 3. Một số thuật toán cơ bản ........................................................................................22 3.1. Mục tiêu ..................................................................................................................22 3.2. Yêu cầu lý thuyết ....................................................................................................22 3.3. Các bài tập mẫu......................................................................................................22 3.4. Các bài tập tự làm ..................................................................................................27 Bài 4. Ma trận....................................................................................................................29 4.1. Mục tiêu ..................................................................................................................29 4.2. Yêu cầu lý thuyết ....................................................................................................29 4.3. Các bài tập mẫu......................................................................................................29 4.4. Các bài tập tự làm ..................................................................................................31
  • 4. Bài 5. Cấu trúc ..................................................................................................................32 5.1. Mục tiêu ..................................................................................................................32 5.2. Yêu cầu lý thuyết ....................................................................................................32 5.3. Các bài tập mẫu......................................................................................................32 5.4. Các bài tập tự làm ..................................................................................................35
  • 5. 5 Bài 1. Hệ điều hành Windows XP và môi trường Turbo C++ 3.0 1.1. Hệ điều hành Windows XP 1.1.1. Mục tiêu - Biết cách bật, tắt máy tính. - Làm quen với các thao tác cơ bản trên hệ điều hành Windows XP. 1.1.2. Yêu cầu lý thuyết Sinh viên cần nắm vững những nội dung sau: - Các kiến thức cơ bản về máy tính. - Khái niệm về các hệ điều hành. 1.1.3. Khởi động máy tính - Nhấn nút Power trên thân máy, Windows sẽ tự khởi động. - Tùy thuộc vào cách thiết lập hệ thống, chúng ta có thể phải gõ mật khẩu (Password) để đăng nhập vào màn hình làm việc (Desktop) của Windows. 1.1.4. Các thành phần trên màn hình Desktop
  • 6. 6 + Các biểu tượng liên kết đến các chương trình thường sử dụng. + Thanh tác vụ chứa: - Nút Start dùng để mở thực đơn Start để khởi động các chương trình. - Nút các chương trình đang chạy: dùng để chuyển đổi qua lại giữa các chương trình. - Khay hệ thống: chứa các biểu tượng nhỏ giúp truy cập dễ dàng tới các chức năng hệ thống như giờ hệ thống, âm lượng, máy in, … 1.1.5. Sử dụng chuột Chuột dùng để điều khiển con trỏ chuột để tương tác với các đối tượng trên màn hình. Hiện nay, chuột thường có tối thiểu 2 nút: - Nút trái thường dùng để chọn đối tượng, rê đối tượng... - Nút phải thường dùng để hiển thị thực đơn ngữ cảnh. Nội dung của thực đơn ngữ cảnh tùy thuộc vào con trỏ chuột đang nằm trên đối tượng nào. Các hành động mà chuột thực hiện Di chuyển con trỏ chuột Rà chuột trên mặt phẳng bàn để di chuyển con trỏ chuột trên màn hình đến đối tượng cần xử lý. Nháy chuột trái Thường dùng để chọn một đối tượng bằng cách trỏ con trỏ chuột đến đối tượng, nhấn nhanh và nhả nút trái chuột. Rê chuột Dùng để di chuyển đối tượng hoặc quét chọn nhiều đối tượng ... bằng cách trỏ con trỏ chuột đến đối tượng, nhấn và giữ nút trái chuột, di chuyển chuột đến vị trí khác rồi nhả nút trái chuột. Nháy chuột phải Thường dùng hiển thị thực đơn ngữ cảnh liên quan đến mục được chọn, bằng cách trỏ con trỏ chuột đến đối tượng, nhấn nhanh và nhả nút phải chuột. Nháy kép chuột Thường dùng để kích hoạt chương trình được hiển thị dưới dạng một biểu tượng trên màn hình, bằng cách trỏ con trỏ chuột đến đối tượng, nhấn và nhả nút trái chuột nhanh 2 lần liên tiếp. 1.1.6. Khởi động một chương trình Nháy chuột trái lên nút Start, sau đó nháy chuột trái lên tên chương trình chúng ta muốn mở. Để mở một chương trình mà chúng ta không nhìn thấy trong thực đơn Start, hãy nháy chuột trái lên mục All Programs để hiển thị các chương trình đã cài đặt trên máy rồi nháy chuột trái lên tên chương trình cần thực hiện. 1.1.7. Cửa sổ của một chương trình
  • 7. 7 Mỗi chương trình khi chạy trong Windows sẽ được hiển thị dưới dạng một cửa sổ, cửa sồ này là phần giao tiếp giữa người sử dụng và chương trình. - Thanh tiêu đề: Chứa biểu tượng thực đơn hệ thống ở góc trái; tên chương trình; các nút thu nhỏ, phóng đại kích thước cửa sổ và nút đóng cửa sổ ở góc phải. - Thanh thực đơn: Chứa các chức năng của chương trình. - Thanh công cụ: Chứa các chức năng được biểu diễn dưới dạng biểu tượng. - Thanh trạng thái: Miêu tả đối tượng đang được trỏ hoặc thông tin trạng thái hiện thời. - Thanh cuốn dọc và ngang: Chỉ hiển thị khi nội dung không hiện đầy đủ trong cửa sổ. Chúng cho phép cuộn màn hình để xem nội dung nằm ngoài đường biên của cửa sổ. Thực hành + Mở cửa sổ My Computer: Nháy chuột trái vào nút Start, chọn mục My Computer. + Nháy chuột trái vào nút Thu nhỏ (Minimize) để thu nhỏ cửa sổ thành một nút lệnh trên thanh tác vụ. + Nháy chuột trái vào nút đó trên thanh tác vụ để đưa cửa sổ trở lại kích thước ban đầu. + Nháy chuột trái vào nút Phóng đại (Maximize) để phóng to kích thước cửa sổ. + Nháy chuột trái vào nút Phóng đại (bây giờ là Restore Down) để đưa cửa sổ trở lại kích thước bình thường. + Trỏ chuột vào đường biên của cửa sổ, khi chuột chuyển thành mũi tên 2 đầu thì kéo rê đường biên để thu nhỏ kích thước cửa sổ cho đến khi xuất hiện thanh cuốn dọc và ngang. + Bấm vào các nút mũi tên ở 2 đầu thanh cuộn để xem nội dung nằm ngoài đường biên của cửa sổ. + Trỏ chuột lên thanh tiêu đề và rê cửa sổ sang vị trí khác. + Đóng cửa sổ My Computer bằng một trong 2 cách sau: - Nháy chuột trái vào nút Đóng (Close) của cửa sổ. - Nháy chuột trái vào tên thực đơn File trên thanh thực đơn, thực đơn File xuất hiện, nháy chuột trái vào mục Close.
  • 8. 8 1.1.8. Window Explorer Các chương trình và dữ liệu của chúng ta được lưu dưới dạng các tập tin (Files) trên các thiết bị nhớ như: Ổ đĩa cứng, đĩa mềm, đĩa CD, ổ USB, ... Trong phần này, chúng ta sẽ học cách dùng Windows Explorer để quản lý các tập tin. Mở Windows Explorer Nháy chuột phải vào nút Start và nháy chuột trái vào mục Explorer để mở Windows Explorer. Khung trái cửa sổ chứa tên các ổ đĩa và các thư mục - Windows dùng các ký tự (A:), (B:) cho các ổ đĩa mềm; các ký tự (C:), (D:) … để đặt tên cho các loại ổ đĩa lưu trữ khác. - Mỗi ổ đĩa trên máy tính đều có một thư mục (Folder) chính được gọi là thư mục gốc chứa các tập tin trên đĩa. Nhưng để dễ dàng cho việc quản lý các tập tin, chúng ta có thể tạo thêm các thư mục con khác, lồng nhau, chứa các tập tin theo từng nhóm. - Một thư mục có thể rỗng hoặc có thể chứa các tập tin và các thư mục con. Khung phải cửa sổ hiển thị nội dung của mục được chọn trên khung trái - Nháy chuột trái vào ổ đĩa cần chọn bên khung trái để hiện nội dung của thư mục gốc bên khung phải. - Nháy chuột trái vào tên thư mục bên khung trái để hiện nội dung của thư mục đó bên khung phải. - Nháy chuột trái vào dấu trừ để thu gọn nhánh phân cấp thư mục con. Chú ý Dấu cộng bên cạnh cho biết ổ đĩa hay thư mục đó còn chứa các thư mục con. Thay đổi hình thức hiển thị trên khung phải Nháy chuột trái vào thực đơn View và chọn 1 trong 5 hình thức hiển thị: - Thumbnails: Thường dùng để xem trước các File hình. - Tiles: Hiện các tập tin và các thư mục con ở dạng biểu tượng lớn. - Icons: Hiện các tập tin và các thư mục con ở dạng biểu tượng nhỏ. - List: Hiện các tập tin và các thư mục con ở dạng liệt kê danh sách.
  • 9. 9 - Details: Liệt kê chi tiết các thông tin như tên (Name), kiểu (Type), kích thước lưu trữ (Size), ngày giờ tạo hay sửa (Modified). Hiện/ẩn cây thư mục trên khung trái Nháy chuột trái vào nút Folders để chọn hay bỏ chọn nút này trên thanh công cụ chuẩn. Sắp xếp dữ liệu bên khung phải Nháy chuột trái vào mục Arrange Icons by trên thực đơn View và chọn thứ tự sắp xếp - Theo tên: Name - Theo kích thước: Size - Theo phần mở rộng: Type - Theo ngày tháng tạo sửa: Modified Quản lý thư mục và tập tin Tạo một thư mục
  • 10. 10 - Mở thư mục muốn tạo thêm thư mục con trong đó. - Chọn mục thực đơn File | New | Folder (Chọn mục thực đơn Folder nằm trên thực đơn New, mà tên thực đơn New lại nằm trên thực đơn File) hoặc chọn Make a new folder bên khung trái. Một thư mục mới hiển thị với tên mặc định là New Folder. - Gõ tên thư mục mới (nếu muốn) và ấn phím Enter. Tạo Shortcut Shortcut là một tập tin liên kết đến một đối tượng, đối tượng đó có thể là tập tin, thư mục, ổ đĩa, máy in hay máy tính khác trên mạng. Shortcut là cách nhanh nhất để khởi động một chương trình được sử dụng thường xuyên hoặc để mở tập tin, thư mục mà không cần phải tìm đến nơi lưu trữ chúng. - Mở thư mục chứa tập tin cần tạo Shortcut. - Nháy chuột phải vào tập tin. - Chọn Create Shortcut: nếu tạo Shortcut ngay trong thư mục đang mở. - Chọn Send To | Desktop (create shortcut): nếu muốn tạo Shortcut trên màn hình Desktop. Đổi tên tập tin hay thư mục (Rename) - Mở ổ đĩa hay thư mục chứa tập tin hoặc thư mục con cần đổi tên. - Nháy chuột trái vào tên tập tin hay thư mục muốn đổi tên. - Chọn mục thực đơn File | Rename hoặc chọn Rename
  • 11. 11 this file hoặc Rename this folder bên khung trái. - Gõ tên mới, sau đó ấn phím Enter. Di chuyển một tập tin hoặc thư mục (Move) - Mở ổ đĩa hoặc thư mục chứa tập tin hay thư mục con cần di chuyển. - Nháy chuột trái vào tên tập tin hay thư mục muốn di chuyển. - Chọn mục thực đơn Edit | Move To Folder… hoặc chọn Move this file hay Move this folder bên khung trái. Hộp thoại Move Items xuất hiện. - Trong hộp thoại này, nháy chuột trái chọn ổ đĩa, thư mục muốn chuyển đến, sau đó nháy chuột trái vào nút Move. Sao chép một tập tin hay thư mục (Copy) - Mở ổ đĩa hay thư mục chứa tập tin hay thư mục con cần sao chép. - Nháy chuột trái vào tên tập tin hay thư mục muốn sao chép. - Chọn mục thực đơn Edit | Copy To Folder … hay chọn Copy this file hoặc Copy this folder. Hộp thoại Copy Items xuất hiện. - Trong hộp thoại này, nháy chuột trái chọn ổ đĩa, thư mục muốn chuyển đến, sau đó nháy chuột trái vào nút Copy. Xóa tập tin hay thư mục Khi xóa tập tin hay thư mục trong đĩa cứng, Windows sẽ di chuyển tập tin hay thư mục đó vào Thùng rác (Recycle Bin). Đây là thư mục của Windows dùng để chứa các tập tin bị xóa. Chúng ta có thể mở thư mục này để phục hồi lại hoặc xóa hẳn khỏi đĩa cứng. Nếu xóa dữ liệu trên đĩa mềm hay đĩa CD thì chúng không được chuyển vào thùng rác.
  • 12. 12 - Chọn tập tin hay thư mục cần xóa. - Chọn mục thực đơn File | Delete hoặc chọn mục Delete this file hay Delete this folder. - Windows Explorer sẽ hiển thị hộp thoại xác nhận xóa. Nháy chuột trái vào nút Yes để thực hiện hoặc vào nút No nếu không muốn thực hiện. Chú ý: - Chúng ta có thể nháy chuột phải vào đối tượng cần xóa và chọn mục Delete. Với cách xóa này bạn có thể phục hồi lại ngay bằng cách nháy chuột phải vào vùng trống bên khung phải và chọn mục Undo Delete. - Để xóa vĩnh viễn tập tin hay thư mục, chúng ta giữ phím Shift trong khi chọn mục Delete. Tìm kiếm tập tin hay thư mục (Search) - Nháy chuột trái vào nút Search trên thanh công cụ. - Nháy chuột trái vào mục All files and folders. - Nếu muốn tìm theo tên tập tin hay thư mục, hãy gõ đầy đủ hay một phần tên tập tin trong hộp All or part of file name. - Hoặc nếu muốn tìm theo nội dung tập tin hãy gõ một từ hay một cụm từ đại diện cần tìm trong hộp A word or phrase in the file. - Bạn có thể chỉ ra nơi cần tìm bằng cách nháy chuột trái vào mũi tên hướng xuống trong hộp Look in, sau đó chọn ổ đĩa hay thư mục mà cần tìm trong đó. - Nháy chuột trái vào nút Search. Chú ý: - Kết quả tìm kiếm sẽ hiện bên khung phải.
  • 13. 13 - Nếu có nhiều tập tin được tìm thấy, chúng ta có thể sử dụng những điều kiện bổ sung để lọc ra những tập tin cần thiết. Quản lý đĩa với My Computer - Chọn My Computer bên khung trái. - Để xem dung lượng và kích thước còn trống trên đĩa: Nháy chuột trái vào mục View | Details. 1.1.9. Tắt máy tính an toàn Nháy chuột trái lên nút Start, nháy chuột trái vào mục Turn Off Computer. Hộp thoại Turn off computer xuất hiện, nháy chuột trái vào nút Turn off. Chú ý - Chúng ta nên tắt hết các ứng dụng đang chạy trước khi tắt máy tính. - Nếu tắt máy trực tiếp bằng nút Power trên thân máy có thể gây ra những lỗi nghiêm trọng. - Nháy chuột trái vào nút Stand By trên hộp thoại Turn off computer sẽ đưa máy tính về chế độ chờ để tiết kiệm điện năng. - Nháy chuột trái vào nút Reset trên hộp thoại Turn off computer sẽ khiến máy khởi động lại. 1.2. Môi trường Turbo C++ 3.0 và ngôn ngữ C 1.2.1. Mục tiêu
  • 14. 14 - Khởi động và thoát chương trình TC. - Tạo một chương trình nguồn, soạn thảo, dịch và chạy chương trình. - Lưu một chương trình và mở một chương trình đã có. - Viết một số chương trình C đơn giản, làm quen với các kiểu dữ liệu nguyên, thực và các câu lệnh vào ra. 1.2.2. Yêu cầu lý thuyết Trong bài này, sinh viên cần nhớ lại những kiến thức cơ bản về ngôn ngữ C, bao gồm: - Cấu trúc của một chương trình viết trên ngôn ngữ C. - Cách đặt tên cho các biến. - Các lệnh vào ra. 1.2.3. Môi trường Turbo C++ 3.0 Môi trường Turbo C++ 3.0 (viết tắt là TC) là một chương trình cho phép tạo ra, dịch và thực hiện các chương trình viết bằng ngôn ngữ C. Để sử dụng chương trình TC, cần khởi động chương trình TC. - Chạy tập tin TC.EXE (thường ở trong thư mục C:TCBIN) bằng cách nháy kép chuột hoặc chọn tập tin rồi nhấn Enter. - Nếu TC mở sẵn các chương trình trước đó, chọn mục thực đơn Window | Close All để đóng chúng lại. - Để tạo một chương trình mới, chọn mục thực đơn File | New. - Để lưu chương trình vào ổ cứng, chọn mục thực đơn File | Save (hoặc nhấn F2). Hộp thoại Save File As xuất hiện. Trong phần Save File As trên hộp thoại thường đã chứa nội dung “C:TCBINNONAME00.CPP”, chúng ta hãy xóa “NONAME00.CPP” ở cuối đi và gõ thêm vào một tên chúng ta muốn đặt cho chương trình. Lưu ý, tên tập tin không được chứa quá 8 ký tự, không được chứa các ký tự trống và phải có tên mở rộng là “c”. Ví dụ, chúng ta có thể gõ vào một tên như: “C:TCBINTIMMAX.C”. Nháy chuột trái vào nút OK trên hộp thoại để hoàn thành công việc lưu chương trình. - Để mở chương trình đã có, chọn mục thực đơn File | Open (hoặc nhấn F3). Hộp thoại Open a File xuất hiện. Ở phần Name trên hộp thoại có thể chứa nội dung “*.CPP”, chúng ta hãy xóa hết và nhập lại với nội dung là “*.C” và nhấn Enter hoặc nháy chuột trái vào nút Open để ở cửa sổ Files phía dưới chỉ hiển thị các tập tin có tên mở rộng là “C”. Chọn tập tin cần mở rồi nháy chuột trái vào nút Open hoặc nháy kép vào tập tin cần mở để hoàn thành công việc mở chương trình. - Để phóng đại cửa sổ chương trình TC tới kích thước đầy màn hình, hoặc đưa cửa sổ từ kích thước đầy màn hình trở về kích thước thông thường chúng ta hãy nhấn và giữ phím Alt rồi nhấn phím Enter. - Để thoát khỏi TC, chọn mục thực đơn File | Quit (hoặc nhấn và giữ phím Alt rồi nhấn phím X). 1.2.4. Các bài tập mẫu Bài 1. Viết chương trình in ra màn hình dòng chữ “Chao mung den voi Turbo C++ 3.0” và dòng chữ thông báo “An phim Enter de thoat.” ở 2 dòng màn hình liên tiếp. Chương trình đợi người sử dụng nhấn 1 phím bất kỳ trên bàn phím để kết thúc.
  • 15. 15 Đây là chương trình đầu tiên, cơ bản nhất giúp sinh viên hiểu được cấu trúc cơ bản của một chương trình C. - Khởi động TC. - Vào File | New để tạo một chương trình mới. - Lưu chương trình với tên là “chaomung.c”. - Soạn thảo chương trình như trong Error! Reference source not found. ở dưới. Lưu ý, chỉ số ở đầu các dòng chỉ dùng để tham chiếu, không đưa vào chương trình nguồn khi soạn thảo. - Lưu chương trình như miêu tả ở trên, nhấn Ctrl + F9 để thực hiện chương trình. Chương trình 1 1. #include <stdio.h> 2. #include <conio.h> 3. void main() 4. { 5. printf("Chao mung den voi Turbo C++ 3.0"); 6. printf("nAn phim Enter de thoat."); 7. getch(); 8. } + Thực hiện chương trình và đánh giá kết quả. + Thử một vài thay đổi đối với chương trình. Với mỗi thay đổi, chạy và nhận xét kết quả thu được, sau đó khôi phục chương trình mẫu: - Bỏ chỉ thị #include <stdio.h> - Bỏ chỉ thị #include <conio.h> và câu lệnh getch() - Bỏ dấu n ở dòng 6 Bài 2.Viết chương trình thực hiện các công việc sau: - Nhập 2 số thực rồi tính và in ra màn hình tổng và tích của 2 số vừa nhập. - Nhập độ dài 2 cạnh góc vuông của 1 tam giác vuông rồi tính và in ra màn hình độ dài cạnh huyền của nó. - Nhập số thực dương r rồi tính và in ra màn hình chu vi và diện tích hình tròn bán kính r. Chương trình giúp hiểu về cú pháp khai báo biến và thực hiện các phép tính đơn giản. - Vào Windows | Close All để đóng các cửa sổ đang mở. - Vào File | New để tạo một chương trình mới. - Lưu chương trình với tên là “expr.c”. - Soạn thảo chương trình như trong Chương trình 1. - Nhấn F2 để ghi chương trình, nhấn Ctrl + F9 để thực hiện chương trình. Chương trình 1 1. #include <stdio.h> 2. #include <conio.h> 3. #include <math.h> 4.
  • 16. 16 5. void main() 6. { 7. float a, b, w, h, r; 8. printf("Nhap hai so thuc a, b: "); 9. scanf("%f%f", &a, &b); 10. printf("Tong a + b = %fn", a + b); 11. printf("Tich a * b = %fn", a * b); 12. 13. printf("Nhap do dai hai canh goc vuong cua tam giac: "); 14. scanf("%f%f", &w, &h); 15. printf("Do dai canh huyen: %fn", sqrt(w*w + h*h)); 16. 17. printf("Nhap ban kinh duong tron: "); 18. scanf("%f", &r); 19. printf("Chu vi hinh tron: %fn", 2*M_PI*r); 20. printf("Dien tich hinh tron: %fn", M_PI*r*r); 21. 22. getch(); 23. } + Thực hiện chương trình và đánh giá kết quả. + Thử một vài thay đổi đối với chương trình. Với mỗi thay đổi, chạy và nhận xét kết quả thu được, sau đó khôi phục chương trình mẫu: - Bỏ chỉ thị #include <math.h> - Thay đổi %f%f thành %d%d ở dòng 9 - Bỏ các dấu & ở dòng 14 Bài 3. Viết chương trình hiển thị các số chính phương từ 12 đến 502 , mỗi dòng màn hình hiển thị 5 số chính phương. Chương trình giúp sinh viên hiểu sâu hơn về cách sử dụng hàm printf. - Vào Windows | Close All để đóng các cửa sổ đang mở. - Vào File | New để tạo một chương trình mới. - Lưu chương trình với tên là “chphuong.c”. - Soạn thảo chương trình như trong Chương trình 2. - Nhấn F2 để ghi chương trình, nhấn Ctrl + F9 để thực hiện chương trình. Chương trình 2 1. #include <stdio.h> 2. #include <conio.h> 3. void main() 4. { 5. int i, j; 6. for (i = 1; i <= 50; i++) 7. { 8. printf("%6d", i*i); 9. if (i % 5 == 0)
  • 17. 17 10. printf("n"); 11. } 12. getch(); 13. } + Thực hiện chương trình và đánh giá kết quả. + Thử một vài thay đổi đối với chương trình. Với mỗi thay đổi, chạy và nhận xét kết quả thu được, sau đó khôi phục chương trình mẫu: - Thay %6d thành %3d ở dòng 8 - Thay %6d thành %d ở dòng 8 - Thay %6d thành %10d ở dòng 8 - Thay lệnh ở dòng 8 bằng lệnh printf("%d ", i*i); - Thay lệnh ở dòng 8 bằng lệnh printf("%a ", i*i); - Bỏ các câu lệnh ở dòng 9, 10 1.2.5. Các bài tập tự làm Bài 1. Viết chương trình nhập từ bàn phím toạ độ của hai điểm trong mặt phẳng. Tính và đưa ra khoảng cách giữa hai điểm có toạ độ vừa nhập. Bài 2. Viết chương trình nhập từ bàn phím điểm và số tiết của ba môn học. Tính điểm trung bình ba môn học theo công thức tổng điểm của từng môn học nhân với số tiết, chia cho tổng số tiết.
  • 18. 18 Bài 2. Cơ bản về ngôn ngữ 2.1. Mục tiêu - Sử dụng các câu lệnh điều khiển. - Khai báo và sử dụng mảng. - Vào, ra và xử lý xâu ký tự. 2.2. Yêu cầu lý thuyết Sinh viên cần nắm vững những nội dung sau: - Cú pháp các câu lệnh if, for, while, break và continue. - Cú pháp khai báo mảng và truy cập phần tử mảng. - Khai báo xâu ký tự, nhập và in xâu ký tự. 2.3. Các bài tập mẫu Bài 1. Viết chương trình nhập một dãy số thực và in dãy số đó ra màn hình. Chương trình mẫu gồm việc nhập và in một dãy số, áp dụng cho các bài toán làm việc với dãy số. - Khởi động TC. - Vào File | New để tạo một chương trình mới. - Lưu chương trình với tên là “dayso.c”. - Soạn thảo chương trình như trong Chương trình 3. - Nhấn F2 để ghi, nhấn Ctrl + F9 để thực hiện chương trình. Chương trình 3 1. #include <stdio.h> 2. #include <conio.h> 3. void main() 4. { 5. float a[20]; 6. int n, i; 7. 8. printf("Nhap so phan tu: "); 9. scanf("%d", &n); 10. /* Nhap day so */ 11. for (i = 1; i <= n; i++) 12. { 13. printf("a[%d] = ", i); 14. scanf("%f", &a[i]); 15. } 16. /* In day so tren mot hang */ 17. printf("Day so vua nhap:n"); 18. for (i = 1; i <= n; i++) 19. printf("%10.3f", a[i]); 20. getch(); 21. } + Thực hiện chương trình và đánh giá kết quả.
  • 19. 19 + Thử một vài thay đổi đối với chương trình. Với mỗi thay đổi, chạy và nhận xét kết quả thu được, sau đó khôi phục chương trình mẫu: - Bỏ cặp ngoặc { } ở dòng 12, 15 - Bỏ lệnh printf("a[%d] = ", i); ở dòng 13 - Sửa câu lệnh printf("%10.3f", a[i]); thành printf("%8.2f", a[i]); ở dòng 19 Bài 2. Viết chương trình nhập số thực x rồi tính ex theo khai triển Taylor và in giá trị tính được ra màn hình: n x n xx xe !!2 1 2 ++++= K Khai triển dừng ở giá trị nguyên dương n sao cho 6 10 ! − < n xn Bài này giúp sinh viên hiểu về cách sử dụng vòng lặp while. - Vào Windows | Close All để đóng các cửa sổ đang mở. - Vào File | New để tạo một chương trình mới. - Lưu chương trình với tên là “luythua.c”. - Soạn thảo chương trình như trong Chương trình 4. - Nhấn F2 để ghi, nhấn Ctrl + F9 để thực hiện chương trình. Chương trình 4 1. #include <stdio.h> 2. #include <conio.h> 3. #include <math.h> 4. 5. void main() 6. { 7. float x, lt, gt, eps, s; 8. int i; 9. printf("Nhap x: "); 10. scanf("%f", &x); 11. lt = 1.0; 12. gt = 1.0; 13. s = 0; 14. i = 0; 15. eps = lt/gt; 16. while (fabs(eps) >= 1e-6) 17. { 18. s+= eps; 19. i++; 20. lt*= x; 21. gt*= i; 22. eps= lt/gt; 23. } 24. printf("e^%0.3f = %f", x, s);
  • 20. 20 25. getch(); 26. } + Thực hiện chương trình và đánh giá kết quả. + Thử một vài thay đổi đối với chương trình. Với mỗi thay đổi, chạy và nhận xét kết quả thu được, sau đó khôi phục chương trình mẫu: - Thay đổi giá trị 10e-6 ở dòng 16 thành 0.001 - Bỏ dòng lệnh 13 - Thay đổi thứ tự các câu lệnh từ 18 đến 21 Bài 3. Viết chương trình nhập rồi in địa chỉ của một người nào đó. Bài này giúp sinh viên hiểu cách nhập và xuất xâu ký tự, cách in xâu ký tự. - Vào Windows | Close All để đóng các cửa sổ đang mở. - Vào File | New để tạo một chương trình mới. - Lưu chương trình với tên là “diachi.c”. - Soạn thảo chương trình như trong Chương trình 5. - Nhấn F2 để ghi, nhấn Ctrl + F9 để thực hiện chương trình. CHƯƠNG TRÌNH 5 1. #include <stdio.h> 2. #include <conio.h> 3. 4. void main() 5. { 6. char name[30]; 7. int number; 8. char street[50]; 9. char district[30]; 10. char city[30]; 11. 12. 13. printf("Ho va ten: "); 14. fflush(stdin); gets(name); 15. 16. printf("So nha: "); 17. scanf("%d", &number); 18. 19. printf("Pho: "); 20. fflush(stdin); gets(street); 21. 22. printf("Quan: "); 23. fflush(stdin); gets(district); 24. 25. printf("Thanh pho: "); 26. fflush(stdin); gets(city); 27. 28. printf("Dia chi cua ban:n");
  • 21. 21 29. printf("%snSo %d pho %s quan %snThanh pho %s", 30. name, number, street, district, city); 31. getch(); 32. } + Thực hiện chương trình và đánh giá kết quả. + Thử một vài thay đổi đối với chương trình. Với mỗi thay đổi, chạy và nhận xét kết quả thu được, sau đó khôi phục chương trình mẫu: - Bỏ câu lệnh fflush(stdin) ở dòng 20 - Sửa dòng 29 để được các cách in ra khác nhau, ví dụ sửa từ So thành So nha - Thay đổi dòng 14 bằng lệnh scanf("%s", name); 2.4. Các bài tập tự làm Bài 1. Nhập một dãy số nguyên, tính và in ra trung bình cộng của các phần tử. In ra bình phương của các số trên một dòng. Bài 2. Tính giá trị biểu thức: Với độ chính xác .
  • 22. 22 Bài 3. Một số thuật toán cơ bản 3.1. Mục tiêu - Thực hiện thuật toán tính tổng - Thực hiện thuật toán đếm - Thực hiện thuật toán tính trung bình cộng - Thực hiện thuật toán tìm giá trị lớn nhất và giá trị nhỏ nhất. - Thực hiện thuật toán sắp xếp. 3.2. Yêu cầu lý thuyết Sinh viên cần nắm vững những nội dung sau: - Các thuật toán đã được giới thiệu trong phần 1 của chương trình học. - Mảng một chiều. - Các câu lệnh điều khiển. 3.3. Các bài tập mẫu Bài 1. Viết chương trình thực hiện: - Nhập một dãy số nguyên. - In dãy số đã nhập ra màn hình. - Tính và in ra tổng các số chẵn của dãy số. Thực hiện: - Khởi động TC. - Vào File | New để tạo một chương trình mới. - Lưu chương trình với tên là “tongchan.c”. - Soạn thảo chương trình như trong Chương trình 6. - Nhấn F2 để ghi chương trình, nhấn Ctrl + F9 để thực hiện chương trình. Chương trình 6 1. #include <stdio.h> 2. #include <conio.h> 3. void main() 4. { 5. int a[20]; 6. int n, i, T; 7. 8. printf("Nhap so phan tu: "); 9. scanf("%d", &n); 10. for (i = 1; i <= n; i++) 11. { 12. printf("a[%d] = ", i); 13. scanf("%d", &a[i]); 14. } 15. 16. /* Tinh tong cac phan tu chan */ 17. T = 0;
  • 23. 23 18. for (i = 1; i <= n; i++) 19. if (a[i] % 2 == 0) 20. T = T + a[i]; 21. printf("Tong cac phan tu chan = %dn", T); 22. 23. printf("Day so vua nhap:n"); 24. for (i = 1; i <= n; i++) 25. printf("%6d", a[i]); 26. getch(); 27. } + Thực hiện chương trình và đánh giá kết quả. + Thử một vài thay đổi đối với chương trình. Với mỗi thay đổi, chạy và nhận xét kết quả thu được, sau đó khôi phục chương trình mẫu: - Bỏ dòng lệnh 17 - Đưa dòng 19, 20, 21 vào một khối lệnh - Thay đổi câu lệnh ở dòng 25 bằng lệnh printf("%d", a[i]); Bài 2. Viết chương trình thực hiện: - Nhập các hệ số của một đa thức P. - Nhập số thực x rồi tính và in giá trị của đa thức P(x) ra màn hình. Thực hiện: - Vào Windows | Close All để đóng các cửa sổ đang mở. - Vào File | New để tạo một chương trình mới. - Lưu chương trình với tên là “poly.c”. - Soạn thảo chương trình như trong Chương trình 8. - Nhấn F2 để ghi, nhấn Ctrl + F9 để thực hiện chương trình. Chương trình 8 1. #include <stdio.h> 2. #include <conio.h> 3. 4. void main() 5. { 6. float a[20]; 7. int n, i; 8. float p, x, f; 9. 10. /* Nhap da thuc */ 11. printf("Bac da thuc: "); 12. scanf("%d", &n); 13. for (i = n; i >= 0; i--) 14. { 15. printf("a%d = ", i); 16. scanf("%f", &a[i]); 17. }
  • 24. 24 18. 19. printf("Nhap x: "); 20. scanf("%f", &x); 21. p = 0; 22. f = 1; 23. for (i = 0; i <= n; i++) 24. { 25. p+= a[i]*f; 26. f*= x; 27. } 28. printf("Gia tri da thuc: %f", p); 29. getch(); 30. } + Thực hiện chương trình và đánh giá kết quả. + Thử một vài thay đổi đối với chương trình. Với mỗi thay đổi, chạy và nhận xét kết quả thu được, sau đó khôi phục chương trình mẫu: - Thay câu lệnh ở dòng 13 bằng câu lệnh for (i = 0; i <= n; i++) - Hãy đưa ra một cách khác tính giá trị đa thức (nếu có thể) Bài 3. Viết chương trình thực hiện: - Nhập một dãy số thực. - In dãy số đã nhập ra màn hình. - Đếm số phần tử có giá trị nằm trong đoạn [10, 20]. Thực hiện: - Vào Windows | Close All để đóng các cửa sổ đang mở. - Vào File | New để tạo một chương trình mới. - Lưu chương trình với tên là “dem.c”. - Soạn thảo chương trình như trong Chương trình 9. - Nhấn F2 để ghi, nhấn Ctrl + F9 để thực hiện chương trình. Chương trình 9 1. #include <stdio.h> 2. #include <conio.h> 3. void main() 4. { 5. float a[20]; 6. int n, i, d; 7. 8. printf("Nhap so phan tu: "); 9. scanf("%d", &n); 10. for (i = 1; i <= n; i++) 11. { 12. printf("a[%d] = ", i); 13. scanf("%f", &a[i]); 14. }
  • 25. 25 15. 16. /* Dem so phan tu co gia tri nam trong doan [10, 20]*/ 17. d = 0; 18. for (i = 1; i <= n; i++) 19. if ((a[i] >= 10) && (a[i] <= 20)) 20. d = d + 1; 21. printf("n So phan tu thoa man dieu kien = %4d", d); 22. 23. printf("n Day so vua nhap:n"); 24. for (i = 1; i <= n; i++) 25. printf("%10.3f", a[i]); 26. getch(); 27. } + Thực hiện chương trình và đánh giá kết quả. + Thử một vài thay đổi đối với chương trình. Với mỗi thay đổi, chạy và nhận xét kết quả thu được, sau đó khôi phục chương trình mẫu: - Bỏ dòng lệnh 17 - Đưa lệnh 19, 20, 21 vào một khối lệnh Bài 3. Viết chương trình thực hiện: - Nhập một dãy số nguyên. - In dãy số vừa nhập ra màn hình. - Tìm và in ra giá trị phần tử lớn nhất của dãy. Thực hiện: - Vào Windows | Close All để đóng các cửa sổ đang mở. - Vào File | New để tạo một chương trình mới. - Lưu chương trình với tên là “max.c”. - Soạn thảo chương trình như trong Chương trình 10. - Nhấn F2 để ghi, nhấn Ctrl + F9 để thực hiện chương trình. Chương trình 10 1. #include <stdio.h> 2. #include <conio.h> 3. void main() 4. { 5. int n, i; 6. int a[20], max; 7. 8. printf("Nhap so phan tu: "); 9. scanf("%d", &n); 10. for (i = 1; i <= n; i++) 11. { 12. printf("a[%d] = ", i); 13. scanf("%d", &a[i]); 14. }
  • 26. 26 15. 16. /* Tim gia tri max */ 17. max = a[1]; 18. for (i = 2; i <= n; i++) 19. if (a[i] > max) 20. max = a[i]; 21. printf("Gia tri lon nhat: %4dn", max); 22. 23. printf("Day so vua nhap:n"); 24. for (i = 1; i <= n; i++) 25. printf("%6d", a[i]); 26. getch(); 27. } + Thực hiện chương trình và đánh giá kết quả. + Thử một vài thay đổi đối với chương trình. Với mỗi thay đổi, chạy và nhận xét kết quả thu được, sau đó khôi phục chương trình mẫu: - Thay lệnh ở dòng 17 bằng lệnh max = 0; - Đưa các dòng lệnh 19, 20, 21 vào khối lệnh - Thay đổi dòng lệnh 19 bằng if (a[i] >= max) Bài 4. Viết chương trình thực hiện: - Nhập một dãy số thực. - In dãy số vừa nhập ra màn hình. - Sắp xếp dãy số theo thứ tự tăng dần. - In dãy số đã sắp xếp ra màn hình. Thực hiện: - Vào Windows | Close All để đóng các cửa sổ đang mở. - Vào File | New để tạo một chương trình mới. - Lưu chương trình với tên là “sapxep.c”. - Soạn thảo chương trình như trong Chương trình 11. - Nhấn F2 để ghi, nhấn Ctrl + F9 để thực hiện chương trình. Chương trình 11 1. #include <stdio.h> 2. #include <conio.h> 3. void main() 4. { 5. int n, i, j; 6. float a[20], tg; 7. 8. printf("Nhap so phan tu: "); 9. scanf("%d", &n); 10. for (i = 1; i <= n; i++) 11. {
  • 27. 27 12. printf("a[%d] = ", i); 13. scanf("%f", &a[i]); 14. } 15. 16. printf("Day so truoc khi sap xep:n"); 17. for (i = 1; i <= n; i++) 18. printf("%7.2f", a[i]); 19. 20. /* Sap xep day so theo thu tu tang dan */ 21. for (i = 1; i <= n - 1; i++) 22. for (j = i + 1; j <= n; j++) 23. if (a[i] > a[j]) 24. { 25. tg = a[i]; 26. a[i] = a[j]; 27. a[j] = tg; 28. } 29. 30. printf("nDay so sau khi sap xep:n"); 31. for (i = 1; i <= n; i++) 32. printf("%7.2f", a[i]); 33. getch(); 34. } + Thực hiện chương trình và đánh giá kết quả. + Thử một vài thay đổi đối với chương trình. Với mỗi thay đổi, chạy và nhận xét kết quả thu được, sau đó khôi phục chương trình mẫu: - Thay lệnh ở dòng 21 bằng lệnh for (i = 1; i <= n; i++); - Bỏ cặp ngoặc ở các dòng 24 và 28 - Thay lệnh ở dòng 23 bằng lệnh if (a[i] < a[j]) 3.4. Các bài tập tự làm Bài 1. Nhập dãy số nguyên a1, a2,..., an. Hãy đếm xem trong dãy có bao nhiêu phần tử có giá trị chia cho 7 dư 1 hoặc 3? Tính trung bình cộng các phần tử có giá trị chẵn và nhỏ hơn 50? Tìm một phần tử lẻ có giá trị nhỏ nhất? In ra màn hình dãy số đã nhập và các đại lượng tính được ở trên. Bài 2. Nhập dãy số thực a1, a2,..., an. Hãy đếm xem trong dãy có bao nhiêu cặp 2 phần tử liên tiếp mà phần tử đứng sau có giá trị lớn hơn phần tử đứng trước? Tính tổng các phần tử có giá trị không thuộc đoạn [-10, 20]? Tìm giá trị và vị trí của một phần tử có giá trị nhỏ nhất? In ra màn hình dãy số đã nhập và các đại lượng tính được ở trên. Bài 3. Nhập số thực r và toạ độ của n điểm trên mặt phẳng xOy. Hãy đếm số điểm nằm bên trong nửa đường tròn tâm O(0, 0) bán kính r và nằm bên trái trục Oy? Đếm số điểm không thuộc góc III của hệ trục toạ độ xOy? Tính diện tích của hình chữ nhật nhỏ nhất có các cạnh song song với các trục tọa độ và chứa tất cả các điểm đã nhập? In ra màn hình toạ độ các điểm đã nhập và các đại lượng tính được ở trên.
  • 28. 28 Bài 4. Nhập toạ độ của n điểm trên mặt phẳng xOy. Hãy tính diện tích hình tròn nhỏ nhất tâm ở gốc tọa độ O(0, 0) chứa tất cả các điểm trên? Tính tổng độ dài các đoạn thẳng nằm trong góc IV của hệ trục toạ độ xOy? In ra màn hình toạ độ các điểm đã nhập và các đại lượng tính được ở trên. Bài 5. Nhập hai đa thức P, Q và hai số thực u, v. - Tính giá trị P(u) – Q(v). - Đưa ra các hệ số của đa thức tổng P(x) + Q(x).
  • 29. 29 Bài 4. Ma trận 4.1. Mục tiêu - Khai báo và truy cập các phần tử ma trận. - Nhập ma trận và in ma trận dưới dạng bảng. - Thao tác với ma trận. 4.2. Yêu cầu lý thuyết Sinh viên cần nắm vững những phần nội dung sau: - Cú pháp khai báo và truy cập phần tử mảng hai chiều. - Các lệnh for lồng nhau. - Kiến thức toán học về ma trận. 4.3. Các bài tập mẫu Bài 1. Viết chương trình thực hiện: - Nhập một ma trận thực. - In ma trận ra màn hình dưới dạng bảng. - Tính và in ra màn hình tổng các hàng của ma trận và giá trị lớn nhất của chúng. Thực hiện: - Khởi động TC. - Vào File | New để tạo một chương trình mới. - Lưu chương trình với tên là “matrix.c”. - Soạn thảo chương trình như trong Chương trình 12. - Nhấn F2 để ghi, nhấn Ctrl + F9 để thực hiện chương trình. Chương trình 12 1. #include <stdio.h> 2. #include <conio.h> 3. void main() 4. { 5. float a[50][50], sum[50]; 6. int m, n, i, j; 7. float max, tmp; 8. 9. /* Nhap ma tran */ 10. printf("Nhap kich co ma tran: "); 11. scanf("%d%d", &m, &n); 12. for (i = 1; i <= m; i++) 13. for (j = 1; j <= n; j++) 14. { 15. printf("a[%d][%d] = ", i, j); 16. scanf("%f", &tmp); 17. a[i][j] = tmp; 18. } 19. 20. /* In ma tran duoi dang bang */
  • 30. 30 21. printf("Ma tran vua nhap:n"); 22. for (i = 1; i <= m; i++) 23. { 24. for (j = 1; j <= n; j++) 25. printf("%8.2f", a[i][j]); 26. printf("n"); 27. } 28. /* In tong hang va tong lon nhat */ 29. for (i = 1; i <= m; i++) 30. { 31. sum[i] = 0; 32. for (j = 1; j <= n; j++) 33. sum[i] += a[i][j]; 34. 35. printf("Tong hang %d: %fn", i, sum[i]); 36. } 37. max = sum[1]; 38. for (i = 2; i <= m; i++) 39. if (max < sum[i]) 40. max = sum[i]; 41. printf("Tong hang lon nhat: %f", max); 42. 43. getch(); } + Thực hiện chương trình và đánh giá kết quả. + Thử một vài thay đổi đối với chương trình. Với mỗi thay đổi, chạy và nhận xét kết quả thu được, sau đó khôi phục chương trình mẫu: - Thay dòng 16, 17 bằng lệnh scanf("%f", &a[i][j]); - Hoán đổi vị trí 2 dòng 35 và 36 - Thay vì tính tổng các dòng, tính tổng các cột và đưa ra tổng lớn nhất Bài 2. Viết chương trình thực hiện: - Nhập một ma trận nguyên vuông. - In ma trận ra màn hình dưới dạng bảng. - Kiểm tra xem ma trận vừa nhập có phải là ma trận tam giác trên hay không (Ma trận tam giác trên là ma trận có tất cả các phần tử nằm phía dưới đường chéo chính đều bằng 0). Thực hiện: - Vào File | New để tạo một chương trình mới. - Lưu chương trình với tên là “matrix2.c”. - Soạn thảo chương trình như trong Chương trình 13. - Nhấn F2 để ghi, nhấn Ctrl + F9 để thực hiện chương trình. Chương trình 13 1. #include <stdio.h> 2. #include <conio.h> 3. void main() 4. {
  • 31. 31 5. int a[50][5], n, i, j, d; 6. clrscr(); /* Xoa man hinh */ 7. printf("Nhap kich thuoc ma tran: "); 8. scanf("%d", &n); 9. /* Nhap ma tran */ 10. for (i = 1; i <= n; i++) 11. for (j = 1; j <= n; j++) 12. { 13. printf("nNhap a[%d][%d]: ", i, j); 14. scanf("%d", &a[i][j]); 15. } 16. /* In ma tran duoi dang bang */ 17. printf("nnMa tran vua nhap duoi dang bangn"); 18. for (i = 1; i <= n; i++) 19. { 20. for (j = 1; j <= n; j++) 21. printf("%5d ", a[i][j]); 22. printf("n"); 23. } 24. /* Dem so phan tu khac 0 nam duoi duong cheo chinh */ 25. d = 0; 26. for (i = 2; i <= n; i++) 27. for (j = 1; j < i; j++) 28. if (a[i][j] != 0) 29. d++; 30. /* Ket luan */ 31. if (d == 0) 32. printf("nnMa tran la ma tran tam giac tren"); 33. else 34. printf("nnMa tran khong la ma tran tam giac tren"); 35. getch(); 36. } + Thực hiện chương trình và đánh giá kết quả. + Thử một vài thay đổi đối với chương trình. Với mỗi thay đổi, chạy và nhận xét kết quả thu được, sau đó khôi phục chương trình mẫu: - Thực hiện phần chương trình "Dem so phan tu khac 0 nam duoi duong cheo chinh" (từ dòng 24 đến dòng 29) bằng cách khác. - Giải quyết bài toán bằng cách khác mà không cần đếm số lượng phần tử khác 0 nằm phía dưới đường chéo chính (Gợi ý: Có thể sử dụng câu lệnh break;). 4.4. Các bài tập tự làm Bài 1. Nhập một ma trận thực. Tính tổng tất cả các phần tử của ma trận và tìm giá trị lớn nhất của chúng. Bài 2. Nhập một ma trận thực M cấp m×n. In ma trận MT ra màn hình dưới dạng bảng (Ma trận MT là ma trận thực cấp n×m mà MT [i][j] = M[j][i], với 1 ≤ i ≤ n, 1 ≤ j ≤ m).
  • 32. 32 Bài 5. Cấu trúc 5.1. Mục tiêu - Định nghĩa cấu trúc và khai báo biến, mảng cấu trúc. - Nhập dữ liệu cho một danh sách các cấu trúc. - In ra các thông tin trong một danh sách các cấu trúc. 5.2. Yêu cầu lý thuyết Sinh viên cần nắm vững những phần nội dung sau: - Khái niệm cấu trúc và cú pháp định nghĩa cấu trúc - Truy cập các trường của cấu trúc - Cú pháp khai báo mảng cấu trúc - Từ khoá typedef 5.3. Các bài tập mẫu Bài 1. Viết chương trình thực hiện: - Định nghĩa một cấu trúc lưu thông tin về nhân viên, gồm các trường: họ tên, địa chỉ và mức lương. - Nhập các thông tin của một nhân viên nào đó. - In ra màn hình các thông tin vừa nhập. Thực hiện: - Khởi động TC. - Vào File | New để tạo một chương trình mới. - Lưu chương trình với tên là "nhanvien.c". - Soạn thảo chương trình như trong Chương trình 14. Nhấn F2 để ghi, nhấn Ctrl + F9 để thực hiện chương trình. Chương trình 14 1. #include <stdio.h> 2. #include <conio.h> 3. 4. struct nhanvien { 5. char hoten[30]; 6. char diachi[50]; 7. float luong; 8. }; 9. 10. void main() 11. { 12. struct nhanvien nv; 13. printf("Nhap thong tin nhan vienn"); 14. printf("Ho va ten: "); 15. fflush(stdin); gets(nv.hoten); 16. printf("Dia chi: "); 17. fflush(stdin); gets(nv.diachi);
  • 33. 33 18. printf("Muc luong: "); 19. scanf("%f", &nv.luong); 20. 21. printf("Thong tin nhan vien vua nhapn"); 22. printf("Ho va ten: %sn", nv.hoten); 23. printf("Dia chi: %sn", nv.diachi); 24. printf("Luong: %f", nv.luong); 25. 26. getch(); 27. } + Thực hiện chương trình và đánh giá kết quả. + Thử một vài thay đổi đối với chương trình. Với mỗi thay đổi, chạy và nhận xét kết quả thu được, sau đó khôi phục chương trình mẫu: - Bỏ từ khoá struct ở dòng 12 - Thêm các trường mã nhân viên và tuổi vào cấu trúc lưu thông tin nhân viên Bài tập 2. Viết chương trình thực hiện: - Nhập vào một danh sách các sinh viên, mỗi sinh viên gồm các thông tin: họ tên, mã sinh viên, điểm trung bình. - Hiển thị danh sách các sinh viên vừa nhập. - Sắp xếp danh sách theo chiều giảm dần của điểm trung bình và in ra 3 thí sinh có điểm trung bình cao nhất. Thực hiện: - Vào Windows | Close All để đóng các cửa sổ đang mở. - Vào File | New để tạo một chương trình mới. - Lưu chương trình với tên là "sinhvien.c". - Soạn thảo chương trình như trong Chương trình 15. - Nhấn F2 để ghi, nhấn Ctrl + F9 để thực hiện chương trình. Chương trình 15 1. #include <stdio.h> 2. #include <conio.h> 3. 4. typedef struct { 5. char hoten[30]; 6. char masv[15]; 7. float diem; 8. } sinhvien; 9. 10. void main() 11. { 12. sinhvien ds[10], tg; 13. int n, i, j; 14. 15. printf("So sinh vien: "); 16. scanf("%d", &n);
  • 34. 34 17. 18. for (i = 1; i <= n; i++) 19. { 20. printf("Nhap thong tin sinh vien thu %dn", i); 21. printf("Ho va ten: "); 22. fflush(stdin); gets(tg.hoten); 23. printf("Ma sinh vien: "); 24. fflush(stdin); gets(tg.masv); 25. printf("Diem trung binh: "); 26. scanf("%f", &tg.diem); 27. ds[i] = tg; 28. } 29. 30. printf("nDanh sach sinh vien vua nhap:n"); 31. printf("%-3s %-25s %-10s %-6sn", 32. "STT", "Ho va ten", "Ma SV", "Diem"); 33. printf("------------------------------------------n"); 34. 35. for (i = 1; i <= n; i++) 36. printf("%-3d %-25s %-10s %-6.2fn", 37. i, ds[i].hoten, ds[i].masv, ds[i].diem); 38. 39. /* Sap xep giam dan cua diem trung binh */ 40. for (i = 1; i < n; i++) 41. for (j = i + 1; j <= n; j++) 42. if(ds[i].diem < ds[j].diem) 43. { 44. tg = ds[i]; 45. ds[i] = ds[j]; 46. ds[j] = tg; 47. } 48. 49. printf("nDanh sach 3 sinh vien co diem cao nhat:n"); 50. printf("%-3s %-25s %-10s %-6sn", 51. "STT", "Ho va ten", "Ma SV", "Diem"); 52. printf("------------------------------------------n"); 53. 54. for (i = 1; (i <= 3) && (i <= n); i++) 55. printf("%-3d %-25s %-10s %-6.2fn", 56. i, ds[i].hoten, ds[i].masv, ds[i].diem); 57. 58. getch(); 59. } + Thực hiện chương trình và đánh giá kết quả. + Thử một vài thay đổi đối với chương trình. Với mỗi thay đổi, chạy và nhận xét kết quả thu được, sau đó khôi phục chương trình mẫu: - Thay lệnh ở dòng 27 bằng lệnh: tg = ds[i];
  • 35. 35 - Thêm vào chương trình chức năng hiển thị tất cả các sinh viên có điểm trung bình cao nhất. 5.4. Các bài tập tự làm Bài 1. Định nghĩa một cấu trúc mô tả thông tin về một khách mua hàng, gồm các trường: - Họ tên - Địa chỉ - Số điện thoại - Tên mặt hàng khách đặt mua - Số lượng - Ngày giao hàng Nhập thông tin cho một khách hàng và đưa ra các thông tin vừa nhập. Bài 2. Định nghĩa cấu trúc mô tả thông tin về sách trong thư viện, gồm các trường: - Mã sách - Tên sách - Tác giả - Năm xuất bản - Số trang Nhập một danh sách các cuốn sách, hiển thị ra màn hình danh sách các cuốn sách theo thứ tự tên của chúng trong bảng chữ cái.