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

35
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ể.

Upload: ttx-love

Post on 22-Jun-2015

3.635 views

Category:

Documents


0 download

TRANSCRIPT

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

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ể.

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

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

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

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

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

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

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

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

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

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

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

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.

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

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.

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

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

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

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

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

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.

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

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.

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

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

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

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:\TC\BIN) 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:\TC\BIN\NONAME00.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:\TC\BIN\TIMMAX.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.

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

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.

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

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 = %f\n", a + b); 11. printf("Tich a * b = %f\n", 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: %f\n", sqrt(w*w + h*h)); 16. 17. printf("Nhap ban kinh duong tron: "); 18. scanf("%f", &r); 19. printf("Chu vi hinh tron: %f\n", 2*M_PI*r); 20. printf("Dien tich hinh tron: %f\n", 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)

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

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.

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

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ả.

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

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:

nx

n

xxxe

!!21

2

++++= K

Khai triển dừng ở giá trị nguyên dương n sao cho 610!

<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);

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

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");

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

21

29. printf("%s\nSo %d pho %s quan %s\nThanh 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 .

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

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;

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

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 = %d\n", 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. }

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

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. }

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

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. }

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

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: %4d\n", 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. {

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

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.

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

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).

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

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 */

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

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: %f\n", 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. {

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

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("\n\nMa tran vua nhap duoi dang bang\n"); 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("\n\nMa tran la ma tran tam giac tren"); 33. else 34. printf("\n\nMa 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).

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

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 vien\n"); 14. printf("Ho va ten: "); 15. fflush(stdin); gets(nv.hoten); 16. printf("Dia chi: "); 17. fflush(stdin); gets(nv.diachi);

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

33

18. printf("Muc luong: "); 19. scanf("%f", &nv.luong); 20. 21. printf("Thong tin nhan vien vua nhap\n"); 22. printf("Ho va ten: %s\n", nv.hoten); 23. printf("Dia chi: %s\n", 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);

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

34

17. 18. for (i = 1; i <= n; i++) 19. { 20. printf("Nhap thong tin sinh vien thu %d\n", 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 %-6s\n", 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.2f\n", 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 %-6s\n", 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.2f\n", 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];

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

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.