1. Trang chủ
  2. » Cao đẳng - Đại học

Lập trình cơ bản (Cao đẳng Quản trị mạng máy tính) - Nguồn: BCTECH

97 12 0

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 97
Dung lượng 0,9 MB

Nội dung

- Trình bày được công dụng của các phép toán - Trình bày được các lệnh nhập, xuất dữ liệu - Áp dụng các phép toán vào trong các bài toán - Sử dụng câu lệnh nhập xuất vào trong các bài tậ[r]

(1)

UBND TỈNH BÀ RỊA- VŨNG TÀU

TRƯỜNG CAO ĐẲNG KỸ THUẬT CƠNG NGHỆ

GIÁO TRÌNH MƠ ĐUN: LẬP TRÌNH CƠ BẢN

NGHỀ: QUẢN TRỊ MẠNG TRÌNH ĐỘ: CAO ĐẲNG Ban hành kèm theo Quyết định số: /QĐ-CĐKTCN

ngày….tháng….năm Hiệu trưởng Trường Cao đẳng Kỹ thuật Công nghệ BR – VT)

(2)

BÀ RỊA–VŨNG TÀU, NĂM 2020

TUYÊN BỐ BẢN QUYỀN

Nhằm đáp ứng nhu cầu học tập nghiên cứu cho giảng viên sinh viên nghề Quản trị mạng trường Cao đẳng Kỹ thuật Công nghệ Bà Rịa – Vũng Tàu, thực biên soạn tài liệu Lập trình

(3)

LỜI GIỚI THIỆU

Giáo trình lập trình C xây dựng biên soạn sở chương trình khung đào tạo cao đẳng nghề Quản trị mạng Trường Cao Đẳng Kỹ thuật Công nghệ Bà Rịa – Vũng Tàu phê duyệt

Giáo Trình biên soạn nhằm đáp ứng yêu cầu học tập sinh viên bước đầu làm quen với công việc lập trình, đồng thời giúp cho sinh viên có tài liệu học tập, rèn luyện tốt khả lập trình, tạo tảng vững cho mơn học

Nội dung giáo trình chia làm 16 bài: Bài 1: Giới thiệu thuật toán

Bài 2: Giới thiệu ngơn ngữ lập trình C

Bài 3: Trình bày thành phần ngơn ngữ lập trình C Bài 4: Sử dụng phép toán câu lệnh nhập, xuất lập trình C Bài 5: Sử dụng câu lệnh có cấu trúc điều kiện

Bài 6: Sử dụng cấu trúc vòng lặp for Bài 7: Sử dụng cấu trúc vòng lặp while Bài 8: Sử dụng cấu trúc vòng lặp while

Bài 9: Sử dụng câu lệnh break, continue, goto Bài 10: Giới thiệu hàm

Bài 11: Truyền tham số cho hàm

Bài 12: Nhập xuất liệu cho mảng chiều

Bài 13: Sử dụng mảng chiều làm tham số cho hàm Bài 14: Sắp xếp mảng chiều

Bài 15: Nhập xuất chuỗi ký tự Bài 16: Thao tác chuỗi ký tự

(4)

các nhà chuyên môn, anh chị đồng nghiệp bạn độc giả để giáo trình hồn thiện

Bà Rịa – Vũng Tàu, ngày tháng năm 2020 Biên soạn

(5)

MỤC LỤC

LỜI GIỚI THIỆU

MỤC LỤC

BÀI 1: THUẬT TỐN 10

1 Ví dụ 10

2 Khái niệm 10

2.1 Khái niệm toán 10

2.2 Khái niệm thuật toán 11

3 Các đặc trưng thuật toán 11

3.1 Liệt kê 11

3.2 Dùng sơ đồ khối 12

BÀI 2: GIỚI THIỆU NGƠN NGỮ LẬP TRÌNH C 15

1 Lịch sử hình thành 15

2 Đặc điểm ngôn ngữ c 16

3 Cấu trúc chương trình c 16

4 Một số ví dụ mẫu 17

5 Cài đặt chương trình 18

6 Khởi động chương trình 18

7 Soạn thảo chương trình 18

8 Thốt khỏi chương trình 19

BÀI 3: TRÌNH BÀY CÁC THÀNH PHẦN CƠ BẢN CỦA NGƠN NGỮ LẬP TRÌNH C 20

1 Bộ ký tự, từ khóa tên 20

1.1 Bộ ký tự 20

1.2 Từ khóa 20

1.3 Tên 21

(6)

2.2 Kiểu ký tự (char) 22

2.3 Kiểu dấu phẩy động 22

3 Hằng, biến, biểu thức 23

3.1 Hằng 23

3.2 Biến 25

3.3 Biểu thức 26

BÀI 4: SỬ DỤNG CÁC PHÉP TOÁN VÀ CÂU LỆNH NHẬP, XUẤT TRONG LẬP TRÌNH C 28

1 Các phép toán 28

1.1 Các phép toán toán học 28

1.2 Các phép toán quan hệ logic 29

1.2.1 Các phép toán quan hệ 29

1.2.2 Các phép toán logic 29

1.2.3 Phép toán tăng giảm 30

1.2.4 Các phép toán lấy địa biến 31

1.2.5 Chuyển đổi kiểu liệu 31

1.2.6 Thứ tự ưu tiên phép toán 32

2 Các lệnh nhập, xuất liệu 33

2.1 Các lệnh xuất 33

2.2 Các lệnh nhập 35

2.3 Các hàm nhập xuất liệu khác: 36

2.3.1 Hàm getch(): 36

2.3.2.Hàm gets 36

2.3.3.Hàm getchar 37

2.3 Hàm putchar 37

(7)

BÀI 5: SỬ DỤNG CÂU LỆNH CÓ CẤU TRÚC ĐIỀU KIỆN 39

1 Lệnh có cấu trúc điều kiện if 39

1.1 Cấu trúc if dạng khuyết 39

1.1.1.Cú pháp 39

1.1.2 Sự hoạt động 40

1.1.3 Lưu đồ khối 40

1.1.4 Bài tập 41

1.2 Cấu trúc if dạng đầy đủ 42

1.2.1 Cú pháp 42

1.2.2 Sự hoạt động: 43

1.2.3 Lưu đồ khối 43

1.1.4 Bài tập 43

2 Lệnh có cấu trúc lựa chọn switch case 45

2.1 Cú pháp 45

2.2 Sự hoạt động 45

2.3 Lưu đồ khối 46

2.4 Bài tập 46

BÀI 6: SỬ DỤNG CẤU TRÚC VÒNG LẶP FOR 48

1.Cú pháp 48

2 Sự hoạt động 48

3 Lưu đồ khối 49

4 Bài tập 49

BÀI 7: SỬ DỤNG CẤU TRÚC VÒNG LẶP WHILE 52

1 Cú pháp 52

2 Sự hoạt động 52

3 Lưu đồ khối 52

(8)

BÀI 8: SỬ DỤNG CẤU TRÚC VÒNG LẶP DO WHILE 55

1 Cú pháp 55

2 Sự hoạt động 55

3 Lưu đồ khối 56

4 Bài tập 56

BÀI 9: SỬ DỤNG CÁC CÂU LỆNH BREAK, CONTINUE, GOTO 58

1 Lệnh break 58

2 Lệnh continue 59

3.Câu lệnh goto 59

BÀI 10: GIỚI THIỆU VỀ HÀM 62

1 Khái niệm 62

2 Khai báo hàm 64

2.1 Khai báo hàm không định kiểu liệu 64

2.2 Khai báo hàm có định kiểu liệu 65

3 Kết trả hàm- lệnh return- lệnh exit 66

3.1 Kết trả hàm 66

3.2 Lệnh return: dùng để thoát khỏi hàm trả giá trị .67

4 Bài tập 68

BÀI 11: TRUYỀN THAM SỐ CHO HÀM 70

1 Cách truyền tham số cho hàm 70

2 Bài tập 71

BÀI 12: NHẬP XUẤT DỮ LIỆU CHO MẢNG MỘT CHIỀU 73

1 Khái niệm 73

2 Khai báo mảng chiều 73

3 Khởi tạo mảng 74

3.1 Khởi tạo mảng 74

3.2 Chỉ số mảng 75

(9)

4.Nhập xuất liệu cho phần tử mảng chiều 75

BÀI 13: SỬ DỤNG MẢNG MỘT CHIỀU LÀM THAM SỐ CHO HÀM 77

1.Dùng mảng làm tham số cho hàm 77

2 Tìm kiếm mảng chiều 79

2.1 Ý tưởng 79

Xét phần mảng a Nếu phần tử xét x trả vị trí Nếu kơ tìm trả -1 79

2.2 Các bước tiến hành 79

2.3 Giải thuật 79

BÀI 14: SẮP XẾP MẢNG MỘT CHIỀU 84

1 Ý tưởng 84

2 Các bước tiến hành sau 84

3 Giải thuật 85

BÀI 15: NHẬP XUẤT CHUỖI KÝ TỰ 88

1 Khái niệm 88

2 Khai báo biến chuỗi 88

2.1 Khai báo theo mảng 88

2.2 Vừa khai báo vừa gán giá trị 89

3 Vào với xâu ký tự 89

3.1 Nhập chuỗi từ bàn phím 89

3.2 Xuất chuỗi lên hình 89

BÀI 16: THAO TÁC TRÊN CHUỖI KÝ TỰ 91

1 Các phép toán chuỗi ký tự 91

2 Bài tập 94

(10)

GIÁO TRÌNH MƠ ĐUN

Tên mơ đun: Lập trình Mã mơ đun: MĐ10

Vị trí, tính chất, ý nghĩa vai trị mơ đun:

- Vị trí: Mơ đun bố trí sau học xong mơn tin học tin học nâng cao - Tính chất: Mơ đun u cầu phải có tư logic kiến thức tốn Mục tiêu mơ đun:

- Về kiến thức:

+ Phân tích xây dựng thuật tốn

+ Khai báo biến dùng chương trình

+ Trình bày lệnh nhập xuất phép tốn lập trình c + Trình bày vẽ lưu đồ thuật toán cấu trúc điều khiển cấu trúc lặp

+ Trình bày hàm kết trả hàm + Trình bày kiểu liệu có cấu trúc điều kiện - Về kỹ năng:

+ Sử dụng câu lệnh nhập xuất vào tập tính tốn

+ Sử dụng câu lệnh có cấu trúc điều khiển cấu trúc lặp vào tập

+ Vận dụng hàm vào chương trình

+ Sử dụng kiểu liệu có cấu trúc điều kiện vào tập + Viết chương trình

+ Biên dịch, kiểm tra sửa lỗi chương trình + Chạy chương trình kiểm nghiệm kết - Về lực tự chủ trách nhiệm:

+ Có tinh thần trách nhiệm, ý thức tổ chức kỷ luật, tác phong công nghiệp, tinh thần hợp tác cơng việc

(11)

+ Có khả tổ chức điều hành nhóm, đánh giá thành viên nhóm

(12)

BÀI 1: THUẬT TOÁN Mã bài: 10.1

Giới thiệu:

Bài học giới thiệu khái niệm toán tin học, khái niệm thuật toán, đặc trưng thuật toán phương pháp biểu diễn thuật toán Mục tiêu:

- Giới thiệu thuật tốn

- Trình bày đặc trưng thuật toán

- Nêu phương pháp biểu diễn thuật toán - Rèn luyện tính cẩn thận, kiên trì, sáng tạo

- Bảo đảm an toàn vệ sinh cho người thiết bị phịng máy Nội dung chính:

1 Ví dụ

Xét yêu cầu sau:

- Bài 1: Tính chu vi, diện tích hình chữ nhật - Bài 2: Viết dịng chữ hình máy tính - Bài 3: Quản lý cán quan

- Bài 4: Tìm số lớn hai số nguyên dương a b - Bài 5: Xếp loại học tập học sinh lớp

àTrong yêu cầu trên, yêu cầu xem toán? 2 Khái niệm

2.1 Khái niệm toán

- Bài tốn việc mà người muốn máy tính thực - Các yếu tố tốn:

+ Input: Thơng tin biết, thơng tin đưa vào máy tính + Output: Thơng tin cần tìm, thơng tin lấy từ máy tính Ví dụ 1: Tính chu vi, diện tích hình chữ nhật

- Input: Các cạnh hình chữ nhật

(13)

Hướng dẫn thao tác cho máy thực để tìm lời giải Bài tốn

Input Bằng cách nào? Output Giải toán

Thuật tốn Ví dụ : Tìm giá trị nhỏ số dãy số.

- Input: Các số dãy số

- Output: Giá trị nhỏ dãy số

Ví dụ : Xếp loại học tập học sinh lớp - Input: Bảng điểm học sinh

- Output: Bảng xếp loại học tập 2.2 Khái niệm thuật toán

Thuật toán: Là tập hợp (dãy) hữu hạn thị (hành động) định nghĩa rõ ràng nhằm giải toán cụ thể

Tính chất thuật tốn:

- Tính xác: q trình tính tốn hay thao tác máy tính thực xác

- Tính rõ ràng: câu lệnh minh bạch xếp theo thứ tự định - Tính khách quan: viết nhiều người máy tính kết phải

- Tính phổ dụng: áp dụng cho lớp tốn có đầu vào tương tự

- Tính kết thúc: hữu hạn bước tính tốn 3 Các đặc trưng thuật tốn

Trong giáo trình giới thiệu cách mơ tả thuật tốn: 3.1 Liệt kê

(14)

Ví dụ: Tìm nghiệm phương trình bậc tổng quát: ax + b = (ã)  Giải tốn thơng thường:

- Nếu a = (ã) pt bậc + Nếu b = (ã) vơ số nghiệm + Nếu b ≠ (ã) vơ nghiệm - Nếu a ≠ (ã) có nghiệm x = -b/a  Liệt kê:

- Bước 1: Nhập a, b

- Bước 2: Nếu a = quay lại bước 1, ngược lại qua bước - Bước 3: Gán cho x giá trị -b/a, qua bước

- Bước 4: Đưa kết x kết thúc 3.2 Dùng sơ đồ khối

Dùng số biểu tượng thể thao tác

- Trong sơ đồ khối, người ta dùng số biểu tượng thể thao tác như:

Bảng 1.1:Bảng ký hiệu biểu diễn thuật toán

STT Ký hiệu Ý nghĩa

1 Bắt đầu / kết thúc chương trình

2 Nhập/ xuất liệu

3 Điều kiện rẽ nhánh (Lựa chọn)

4 Xử lý/ tính tốn/ gán

5 Chỉ hướng thao tác

Ví dụ 1: Tìm nghiệm phương trình bậc tổng quát: ax + b =  Liệt kê:

- Bước 1: Nhập a, b

(15)

- Bước 3: Gán cho x giá trị -b/a, qua bước - Bước 4: Đưa kết x kết thúc

Sơ đồ khối:

- Ví dụ 2: Vẽ sơ đồ khối thể thuật tốn tính chu vi diện tích hình chữ nhật

Ví dụ 3: Vẽ sơ đồ đồ thuật toán nhật vào số nguyên a,b Tính tổng, hiệu, tích, thương số đó

Bắt đầu

- Nhập CR - Nhập CD

Chu vi=(CR+CD)*2 Diện tích=CR*CD

- Hiển thị chu vi - Hiển thị diện tích

(16)

Lưu ý:

Ta cần diễn tả thuật toán ngơn ngữ cho máy tính hiểu thực được, ngơn ngữ gọi ngơn ngữ lập trình Kết diễn tả thuật tốn gọi chương trình

Câu hỏi, tập:

1.1 Lưu đồ phương pháp hình thức giúp diễn đạt giải thuật, đó….: a Hình ô van dùng để bắt đầu kết thúc chương trình

b Hình thoi dùng để điều khiển lựa chọn (hay kiểm tra điều kiện) c Hình chữ nhật dùng để xử lý, tính tốn gán

d Tất câu

1.2 Trình bày đặc trưng ký hiệu thuật toán

1.3 Viết thuật toán nhập vào số nguyên dương a kiểm tra xem số chẵn số lẻ

(17)

BÀI 2: GIỚI THIỆU NGƠN NGỮ LẬP TRÌNH C Mã bài: 10.2

Giới thiệu:

Bài học giới thiệu lịch sử hình thành phát triển ngơn ngữ lập trình c, cấu trúc chương trình c, thực thao tác cài đặt Dev c++, khởi động thoát khỏi chương trình Dev c++

Mục tiêu:

- Mơ tả lịch sử hình thành phát triển ngơn ngữ C - Trình bày cấu trúc chương trình C

- Thực cài đặt, khởi động, soạn thảo khỏi chương trình C - Rèn luyện tính cẩn thận, kiên trì, sáng tạo

- Bảo đảm an toàn vệ sinh cho người thiết bị phịng máy Nội dung chính:

1 Lịch sử hình thành

- Ngơn ngữ lập trình C đời năm 1972, Dennis Ritchie khởi xướng

- C tạo để sử dụng phần hệ điều hành UNIX (Ken Thompson, Dennis Ritchie Douglas McIlroy, 1969)

- C sử dụng rộng rãi có ảnh hưởng lớn đến nhiều ngơn ngữ lập trình đại, có C++, xem mở rộng C

- Là ngơn ngữ lập trình có cấu trúc phân biệt chữ Hoa - thường (case sensitive)

- Mơi trường C:

+ Borland C (cịn gọi Turbo C) + Borland C++ 3.1 for DOS - Môi trường C/C++:

+ Dev-C++

+ Visual C++ Microsoft

(18)

2 Đặc điểm ngơn ngữ c

C gồm từ khóa, từ khóa kết hợp với cú pháp C hình thành ngơn ngữ C Nhưng nhiều trình biên dịch cho C thêm vào từ khóa dùng cho việc tổ chức nhớ giai đoạn tiền xử lý định

 Quy tắc lập trình C sau:

- Khơng lưu tên tập tin dạng tiếng Việt có dấu khoảng cách, ký tự đặc biệt

- Tất từ khóa chữ thường (khơng in hoa)

- Ðoạn mã chương trình C có phân biệt chữ thường chữ hoa Ví dụ: do while khác với DO WHILE

- Từ khóa khơng thể dùng cho mục đích khác đặt tên biến (variable name) tên hàm (function name)

- Hàm main() hàm gọi đến chương trình bắt đầu chạy (chúng ta xem xét kỹ phần sau)

3 Cấu trúc chương trình c

Ví dụ viết chương trình hiển thị câu “xin chào”

Hình 2.1: Ví dụ mơ chương trình c

#include <stdio.h>: khai báo sử dụng thư viện xuất/nhập chuẩn (standard I/O library) Các thư viện khác: string, time, math, conio.h, iostream.h…

(19)

- Chương trình C chia nhỏ thành đơn vị gọi hàm

- Cho dù có hàm chương trình, hệ điều hành trao quyền điều khiển cho hàm main() chương trìnhC thực thi

- Theo sau tên hàm dấu “ngoặc đơn”

- Dấu ngoặc đơn có chứa hay khơng chứa tham số - Dấu phân cách {…}: mở đóng khối mã

- Dấu kết thúc câu lệnh dấu chấm phẩy “;”: Một câu lệnh C kết thúc dấu chấm phẩy

- Trình biên dịch C khơng hiểu việc xuống dịng, khoảng trắng hay tab

- Một câu lệnh không kết thúc dấu chấm phẩy xem dòng lệnh lỗi C

- //: Dịng thích: Những thích thường viết để mơ tả cơng việc lệnh đặc biệt, hàm hay toàn chương trình Trình biên dịch bỏ qua phần thích

+ Trong trường hợp thích nhiều dịng, bắt đầu ký hiệu /* kết thúc */

4 Một số ví dụ mẫu Ví dụ 1:

#include<stdio.h> #include<conio.h> main()

{

printf(“TRAN TRONG KINH MOI”); printf(“Ban: Hai Ha”);

printf(“Den du sinh nhat”);

printf(“vao luc 17h 10-8-2020”); }

Khi chạy chương trình có kết sau:

Ví dụ 2:

(20)

#include<conio.h> main()

{

printf("\t * \n"); printf(" \t *** \n "); printf("\t ***** \n "); printf("\t *******\n "); }

5 Cài đặt chương trình

- Chạy file cài đặt DEV-C++ (file devcpp.exe) Làm theo hướng dẫn máy - Vào menu "Tools" chọn "Compiler Options"

- Vào tab "Settings" tab, nhấn vào "Link" khung bên trái thay đổi thông số "Generate debugging information" sang "Yes":

- Nhấn OK

Hình 2.2: Hộp hội thoại cài đặt Dev C++ 6 Khởi động chương trình

Khởi động chương trình: Start/ programs / Dev C++ 7 Soạn thảo chương trình

(21)

Hình 2.3: Hộp hội thoại mở hình soạn thảo Dev C++ 8 Thốt khỏi chương trình

Thốt khỏi Dev C++

Dùng File/Exit Alt-X

Câu hỏi, tập: 2.1 Cấu trúc chương trình C gồm:

a Các tập tin thư viện c { bao gồm hàm, lệnh đơn, lệnh ghép}

b main() d Cả a,b,c

2.2 Thứ tự bước để chạy chương trình C gồm: 1- Viết chương trình

2- Chạy chương trình để kiểm tra kết qủa 3- Biên dịch chương trình theo ngơn ngữ 4- Tìm giải thuật để giải tốn Thứ tự bước là:

a 1,2,3,4 c 4,1,3,2

b 1,3,2,4 d 1,4,3,2

2.3.Cho đặc điểm sau, đặc điểm với ngơn ngữ lập trình C a Tất từ khóa chữ hoa

b Tất từ khóa chữ thường

(22)

BÀI 3: TRÌNH BÀY CÁC THÀNH PHẦN CƠ BẢN CỦA NGƠN NGỮ LẬP TRÌNH C

Mã bài: 10.3

Giới thiệu:

Trong học làm quen với khái niệm ký tự, từ khóa, tên, kiểu liệu C Các khái niệm hằng, biến, biểu thức cách khai báo chúng

Mục tiêu:

- Nêu sử dụng hệ thống kí hiệu từ khóa - Nêu phân tích kiểu liệu

- Phân tích vận dụng loại biến, biểu thức cho chương trình cụ thể

-Áp dụng các từ khóa, biến, hằng, biểu thức vào tập - Rèn luyện tính cẩn thận, kiên trì, sáng tạo, độc lập hoạt động nhóm - Bảo đảm an tồn vệ sinh cho người thiết bị phòng máy Nội dung chính:

1 Bộ ký tự, từ khóa tên 1.1 Bộ ký tự

- Gồm 26 chữ in hoa: A, B, C Z, - Gồm 26 chữ in thường: a, b,……, z - 10 chữ số: 0,1,2,… ,9

- Ký tự gạch nối _ (chú ý phân biệt dấu -) - Dấu cách (space): dùng để phân biệt từ: Ví dụ: lop Học (7 ký tự) - LopHoc (6 ký tự) Chú ý:

Khi viết chương trình, ta khơng sử dụng ký tự khác ký tự

1.2 Từ khóa

(23)

tử câu lệnh Bảng liệt kê từ khố lập trình C:

Bảng 3.1: Các từ khóa ngơn ngữ lập trình C

asm break case cdecl

char const continue default

do double else enum

extern far float for

goto huge if int

interrupt long near pascal

register return short signed

sizeof static struct switch

typedef union unsigned void

volatile while

Ý nghĩa cách sử dụng từ khóa đề cập sau này, ta cần ý:

- Không dùng từ khóa để đặt tên cho hằng, biến, mảng, hàm - Từ khoá phải viết chữ thường, ví dụ: viết từ khóa khai báo kiểu nguyên int INT

1.3 Tên

Là dãy ký tự bắt đầu chữ ký tự gạch dưới, theo sau chữ cái, chữ số ký tự gạch nối (-)

- Tên: dùng làm tên hằng, tên biến, nhãn, tên hàm Ví dụ: Tên đúng: _abc, Delta_1, BETA

Tên sai: 1xyz (vì bắt đầu chữ số) A#B (vì có dấu #)

Delta (vì có khoảng trống), X-1 (vì sử dụng dấu gạch ngang) 2 Các kiểu liệu bản

(24)

Bảng 3.2: Bảng ký hiệu biểu diễn kiểu số nguyên

Kiểu Phạm vi biểu diễn Kích thước

int -32768 đến 32767 byte

unsigned int đến 65535 byte

long (int) -2147483648 đến 2147483647 byte

unsigned long (int)

0 đến 4294967295 byte

2.2 Kiểu ký tự (char)

Một giá trị kiểu ký tự (char) chiếm byte nhớ biểu diễn ký tự thông qua bảng mã ASCII

Ví dục

Ký tự Mã ASCII

0 048

1 049

2 050

A 065

a 097

Có hai kiểu ký tự (char) sau:

Bảng 3.3:Bảng ký hiệu biểu diễn kiểu ký tự Kiểu Phạm vi biểu

diễn

Số ký tự Kích thước

char (signed char) -128 -> 127 256 byte

unsigned char -> 255 256 byte

2.3 Kiểu dấu phẩy động

Trong C sử dụng ba loại giá trị dấu phẩy động: float (độ xác đơn), double long double (độ xác kép)

(25)

float 3.4E-38 -> 3.4E+38 7-8 byte

double 1.7E-308->1.7E+308 15-16 byte

long double 3.4E-4932-> 1.1E+4932 17-184 byte 10 byte 3 Hằng, biến, biểu thức

3.1 Hằng - Khái niệm

Là giá trị bất biến chương trình khơng thay đổi, khơng biến đổi Các loại sử dụng C tương ứng với kiểu liệu định - Trong C, thường có loại sau:

+ Hằng số nguyên + Hằng số thực + Hằng ký tự

+ Hằng chuỗi ký tự Hằng số

Ðó giá trị số xác định, số nguyên hay thực viết chương trình cách bình thường

Hằng số nguyên

- Giá trị bao gồm chữ số, dấu +, - lưu trữ theo kiểu int Ví dụ: 12, -12

- Nếu giá trị vượt miền giá trị int có ký tự l (hay L) theo sau giá trị lưu theo kiểu long int

Ví dụ: 43L 43l nguyên lưu theo kiểu long int Hằng số thực:

Trong giá trị có dấu chấm thập phân, ghi dạng số có mũ, lưu theo kiểu float, double, long double

Ví dụ: 1.2, 2.1E -3 (2.1E-3=0.0021) 3.1e-2 (3.1e-2=0.031) Hằng ký tự

- Một kiểu ký tự viết dấu ngoặc đơn (') 'A' 'z'

(26)

Ðối với vài ký tự đặc biệt, ta cần sử dụng cách viết thêm dấu \, '\t' tương ứng với phím tab:

Bảng 3.5:Bảng ký hiệu biểu diễn kiểu ký tự Cách viết Ký tự

‘\n’ Xuống hàng

‘\t’ Tab

‘\0’ “null”- ứng với giá trị nguyên bảng mã ASCII (khác với số ‘0’)

‘\b’ Backspace

‘\r’ CR (về đầu dòng)

‘\f’ LF (sang trang)

‘\\’ \

‘\’” “

‘\’’ ‘

Hằng ký tự tham gia vào phép tốn số nguyên khác: '8' - '1'= 56-49=7

Hằng chuỗi ký tự

Là chuỗi ký tự nằm cặp dấu nháy kép " " Các ký tự ký tự biểu diễn chuỗi

Ví dụ: "Turbo C", "Ngơn ngữ C++ \n\r"

Một chuỗi lưu trữ tận ký tự Null (\0), ví dụ chuỗi "Turbo C" lưu trữ nhớ sau:

T U R B O C \0

Cách định nghĩa sử dụng chương trình

Với giá trị thường dùng chương trình ta nên định nghĩa đầu chươngtrình (sau dịng khai báo thư viện chuẩn) theo cú pháp:

#define <tên hằng><giá trị> Ví dụ: #define PI 3.1415

3.2 BiếnKhái niệm

(27)

hiện chương trình giá trị biến bị thay đổi trình Cách đặt tên biến giống cách đặt tên nói phần Mỗi biến thuộc kiểu liệu xác định có giá trị thuộc kiểu

Cách khai báo

Mỗi biến chương trình phải khai báo trước sử dụng Cú pháp khai báo biến sau:

<Kiểu liệu><danh_sách_tên_biến>;

Lưu ý: có nhiều tên biến tên biến phải có dấu, Ví dụ:

int a,b; float x; Khởi đầu cho biến

Ngay dòng khai báo ta gán cho biến giá trị Việc làm gọi khởi đầu cho biến

Ví dụ: int a,b=6,d=1;

Truy xuất đến địa biến

Một số hàm C dùng đến địa biến ví dụ hàm scanf Ðể nhận địa biến dùng toán tử: & tên_biến;

Ví dụ: &a;

/*Chương trình minh họa cách khai báo biến C*/ #include<stdio.h>

main() {

char ki_tu; /* Khai báo ký tự*/

int so_nguyen; /* Khai báo số nguyên*/ float so_thuc; /* Khai báo số thực*/

ki_tu = 'a'; so_nguyen = 15; so_thuc = 27.62;

printf("%c la mot ky tu.\n",ki_tu);

(28)

printf("%f la mot so thuc.\n",so_thuc); }

Kết quả: a la mot ky tu 15 la mot so nguyen 27.620001 la mot so thuc 3.3 Biểu thức

Là kết hợp hợp lệ phép toán thực biến, giá trị hàm Một biểu thức bao gồm toán tử (phép toán) tốn hạng (biến, )

Ví dụ 1:

int x=2,y=7;

x=(x+2*y); /* x,y biến tương ứng với toán hạng ; phép cộng (+) (*) dấu (=) toán tử biểu thức*/

Ví dụ 2: int i, a=3;

a=(i=a*11); /*là biểu thức hợp lệ (với a biến có giá trị trước đó).*/

Câu hỏi, tập: 3.1 Tên đặt qui định lập trình C

a Tinh- tong c #2Tinhtong

b 2Tinhtong d Tinh_tong

3.2 Các cách khai báo sau, khai báo dùng để khai báo kiểu số nguyên

a int c char

b float d double

3.3 Bộ ký tự lập trình C gồm:

a 26 chữ in thường, in hoa c Dấu cách, dấu gạch nối b 10 chữ số (0,1,…,9) d Tất câu 3.4 Kiểu số nguyên có phạm vi biểu diễn nằm khoảng

a 3.4E-38 ÷3.4E+38 c -32768 ÷ 32767

(29)(30)

BÀI 4: SỬ DỤNG CÁC PHÉP TOÁN VÀ CÂU LỆNH NHẬP, XUẤT TRONG LẬP TRÌNH C

Mã bài: 10.4

Giới thiệu:

Bài học làm quen với phép toán, câu lệnh nhập xuất cách áp dụng phép tốn câu lệnh vào toán C

Mục tiêu:

- Trình bày cơng dụng phép tốn - Trình bày lệnh nhập, xuất liệu - Áp dụng phép toán vào toán - Sử dụng câu lệnh nhập xuất vào tập

- Tích cực hóa người học, rèn luyện tính cẩn thận, kiên trì, sáng tạo, độc lập hoạt động nhóm

- Bảo đảm an tồn vệ sinh cho người thiết bị phòng máy Nội dung chính:

1 Các phép tốn

1.1 Các phép toán toán học

Bảng 4.1:Bảng pháp tốn học

Phép tốn ý nghĩa Ví dụ

+ Phép cộng a+b

- Phép trừ a-b

* Phép nhân a*b

/ Phép chia a/b (Cho phần nguyên phép chia a cho b) % Phép lấy phần dư a%b (Cho phần dư phép chia a cho b) Ví dụ:

(31)

Các phép tốn + - có thứ tự ưu tiên, có thứ tự ưu tiên nhỏ phép *, /, % ba phép lại có thứ tự ưu tiên nhỏ phép trừ ngơi Các phép tốn số học thực từ trái sang phải Số ưu tiên khả kết hợp phép toán mục sau

1.2 Các phép toán quan hệ logic

Phép toán quan hệ logic cho ta giá trị (1) giá trị sai (0) Nói cách khác, điều kiện nêu ta nhận giá trị 1, trái lại ta nhận giá trị

1.2.1 Các phép toán quan hệ

Bảng 4.2:Bảng phép tốn quan hệ

Phép tốn Ý nghĩa Ví dụ

> So sánh lớn a>b

4>5 có giá trị >= So sánh lớn

bằng

a>=b

6>=2 có giá trị

< So sánh nhỏ a<b

6<=7 có giá trị <= So sánh nhỏ

bằng

a<=b

8<=5 có giá trị

== So sánh a==b

6==6 có giá trị

!= So sánh khác a!=b

9!=9 có giá trị

Bốn phép tốn đầu có số ưu tiên, hai phép sau có số thứ tự ưu tiên thấp số thứ tự bốn phép đầu

Các phép toán quan hệ có số thứ tự ưu tiên thấp so với phép toán số học, biểu thức: i<n-1 hiểu i<(n-1)

1.2.2 Các phép toán logic

Trong C sử dụng ba phép toán logic: - Phép phủ định:

(32)

Ví dụ:

a !a

khác 0

bằng

- Phép (AND)

+ Ký hiệu là: && - Phép (OR)

+ Ký hiệu là: ||

Bảng 4.3:Bảng phép toán logic

a b a&&b a||b

1 1

1 0

0 1

0 0

Các phép quan hệ có số ưu tiên nhỏ so với “!” lớn so với && ||, biểu thức như:

(a<b)&&(c>d) viết lại thành:

a<b&&c>d

Chú ý: Cả a b nguyên thực 1.2.3 Phép toán tăng giảm

C đưa hai phép tốn ngơi để tăng giảm biến (nguyên thực) Toán tử tăng ++ cộng vào tốn hạng nó, tốn tử giảm trừ tốn hạng

Ví dụ: n=5

++n Cho ta n=6 n Cho ta n=4

(33)

Sự khác ++n n++ chỗ: phép n++ tăng sau giá trị sử dụng, cịn phép ++n n tăng trước sử dụng Sự khác n n

Ví dụ: n=5

x=++n Cho ta x=6 n=6

x=n++ Cho ta x=5 n=6

1.2.4 Các phép toán lấy địa biến Khái niệm

Ðịa biến số thứ tự byte dãy byte liên tiếp mà máy dành cho biến

Phân loại địa biến

Từ khái niệm địa chỉ, ta nhận xét thấy: Ðịa hai biến kiểu int liên tiếp cách byte, địa hai biến kiểu float liên tiếp cách byte Nên phân biệt kiểu địa chỉ: Ðịa kiểu int, địa kiểu float, địa kiểu double

Phép lấy địa biến

Phép toán: &x cho ta địa biến x 1.2.5 Chuyển đổi kiểu liệu

Khi hai toán hạng phép tốn khác kiểu liệu kiểu liệu thấp nâng thành kiểu liệu cao trước tính tốn Ví dụ: f có kiểu float, i có kiểu int, biểu thức f +i, i tạm thời chuyển sang kiểu float để thực phép cộng

- Cú pháp:

(<Tên kiểu liệu cần chuyển>)<Biểu thức>

Nếu f có kiểu float, i1 i2 có kiểu int có giá trị 10 biểu thức f=i1/i2 gán vào f giá trị 3.0 Trong trường hợp này, để thu kết xác, cần sử dụng phép ép kiểu: f=(float) i1/i2

Ví dụ:

(34)

a=-y; /*a =-6*/ x=a/b+c; /*x=4.0*/

x=a/b+(float) c; /*x=4.0*/ x=(float) a/b+ c; /*x=3.5*/

a=y-z ; /*a=2 (nếu kết 2.999.) 3*/ 1.2.6 Thứ tự ưu tiên phép tốn

Các phép tốn có độ ưu tiên khác nhau, điều có ý nghĩa biểu thức có số phép tốn thực trước số phép toán khác Thứ tự ưu tiên phép tốn trình bày bảng sau:

Bảng 4.4:Bảng thứ tự ưu tiên pháp tốn

TT Phép tốn Trình tự kết hợp

1 () [] -> Trái qua phải

2 ! ~ & * - ++ (type) sizeof Phải qua trái

3 * (phép nhân) / % Trái qua phải

4 + - Trái qua phải

5 <<>> Trái qua phải

6 <<= >>= Trái qua phải

7 == != Trái qua phải

8 & Trái qua phải

9 ^ Trái qua phải

10 | Trái qua phải

11 && Trái qua phải

12 || Trái qua phải

13 ?: Phải qua trái

14 = += -= *= /= %= <<= >>= &= ^= |= Phải qua trái

15 , Trái qua phải

Chú thích:

Các phép tốn tên dịng có thứ tự ưu tiên, phép tốn hàng có số ưu tiên cao số hàng

Đối với phép tốn mức ưu tiên trình tự tính tốn từ trái qua phải hay ngược lại cột trình tự kết hợp

Ví dụ:

(35)

Nên dùng dấu ngoặc trịn để viết biểu thức cách xác 2 Các lệnh nhập, xuất liệu

Hàm thư viện: Thư viện nhập xuất C rong C++ có tên là: #include <stdio.h> (standard input/output)

#include<iostream>

Ngồi với C++ ta phải khai báo sử dụng thêm namespace std cú pháp using namespace std;

2.1 Các lệnh xuất

Sử dụng hàm printf()

Cú pháp: printf("Dòng điều khiển",[các biểu thức]); Dòng điều khiển gồm loại:

+ Chuỗi ký tự mang tính chất thơng báo (hằng chuỗi) + Các ký tự điều khiển (\n, \r, \t )

+ Các mã đặc tả để in biểu thức tương ứng (mỗi biểu thức in phải có đặc tả) Các đặc tả dùng hàm printf sau:

Bảng 4.5:Bảng ký tự đặc tả hàm printf

Mã đặc tả Kiểu liệu Tác dụng

%c char in ký tự có mã ASCII tương ứng

%[n]d int in số nguyên với chiều dài tối thiểu n %[n]ld long int in số nguyên (long int)

%[n]u int in số nguyên hệ 10 không dấu

%[n]o int in số nguyên hệ bát phân tương ứng

%[n]x int in số nguyên hệ 16 tương ứng

%[n.m]f float in số thực vối chiều dài n lấy m số thập phân

%s mảng ký tự in chuỗi ký tự Ví dụ:

#include<stdio.h> main()

{

(36)

printf(“%d”, a); è Xuất 10 printf(“%d”, b); è Xuất 20 printf(“%d %d”, a, b); è Xuất 10 20 }

Sử dụng hàm cout

Cú pháp: cout << "Gia Tri";

Sử dụng toán tử << đằng sau cout để ngăn cách giá trị Nếu bạn muốn in nhiều giá trị sử dụng cú pháp sau:

cout << "Gia Tri 1"<< "Gia Tri 2"<< "Gia Tri 3"; Ví dụ:

#include<stdio.h> #include<iostream> using namespace std; main ()

{

cout << "Chao mung ban den voi c++"; cout <<"\n";

cout << "Ban dang hoc C++ can ban"; cout << "\n";

}

2.2 Các lệnh nhập

Sử dụng hàm scanf()

- Cú pháp: scanf("các đặc tả",<danh sách đia biến tương ứng với đặc tả>);

Các đặc tả có dạng %<ký tự đặc tả>(Mỗi biến muốn nhập giá trị phải có đặc tả tương ứng)

Ta có ký tự đặc tả sau:

Bảng 4.5: Bảng ký tự đặc tả hàm scanf Mã đặc tả Kiểu liệu của

biến

Tác dụng

(37)

%d int nhập số nguyên

%ld long int nhập số nguyên (long int)

%o int nhập số nguyên hệ bát phân

%x int nhập số nguyên hệ 16 tương ứng

%f float nhập số thực

%lf double nhập số thực

%s mảng ký tự nhập chuỗi ký tự Mảng tương

ứng phải đủ lớn để chứa chuỗi nhập vào ký tự kết thúc chuỗi (\0), lệnh scanf tự động chèn ký hiệu kết thúc chuỗi vào

Ví dụ 1: Nhập năm sinh người Tính tuổi người #include<stdio.h>

#include<conio.h> main()

{

int namsinh,namhientai,tuoi;

printf("nhap nam tại"); scanf("%d",& namhientai);

printf("nhap nam sinh"); scanf("%d",&namsinh); tuoi=namhientai-namsinh;

printf(" tuoi la: %d", tuoi); }

Sử dụng hàm cin

- Cú pháp: cin >> Tên biến;

Trường hợp ban muốn nhập nhiều giá trị lênh cin sử dụng cú pháp sau:

cin >> Tên biến >> Tên biến 2>> Tên biến 3;; 2.3 Các hàm nhập xuất liệu khác:

2.3.1 Hàm getch():

(38)

+ Ý nghĩa: sử dụng theo nhiều cách khác nhau, viết getch(); dùng để dừng hình

2.3.2.Hàm gets

- Cú pháp:gets(Tên mảng ký tự);

- ý nghĩa: Hàm cho phép nhận chuỗi từ bàn phím gặp ký tự \n (cho phép nhập khoảng trắng từ)

- Ví dụ

/* Chương trình minh họa nhập liệu (nhập chuỗi (xâu) ký tự) bằng hàm gets() */

#include<stdio.h>

char a[5];//Khai báo chuỗi(xâu) gồm ký tự main() /* Ham chinh */

{

int i;

printf("Nhap chuoi ky tu: ");gets(a);

//giả sử nhập vào ABCDEFGH,có thể nhập khoảng trắng

//Khi nhập chuỗi ta không cần phải lấy địa printf("%s",a); //In ABCDEFGH

}

2.3.3.Hàm getchar

- Cú pháp: getchar(void)

- Ý nghĩa: Nhận ký tự từ bàn phím trả ký tự nhận - Ví dụ

/* Chương trình minh họa hàm getchar() */ #include<stdio.h>

main() /* Ham chinh */

{

int j;

printf("Nhap ky tu: ");

(39)

printf("%c\n",j); //in hình ký tự A

printf("%d",j); // in hình mã ASCII A 65

}

2.3 Hàm putchar

- Cú pháp: int putchar(int ch)

- ý nghĩa: Xuất ký tự lên hình Kết hàm trả ký tự xuất thành công, ngược lại cho kết eof (-1)

Ví dụ: char c=A;

putchar(c);/*in hình ký tự A*/ 2.3.5 Hàm puts

- Cú pháp: int puts(char *s)

- ý nghĩa: Xuất chuỗi lên hình với *s trỏ kiểu char trỏ tới ô nhớ đầu vùng nhớ chứa chuỗi ký tự muốn xuất Hàm xuất đưa thêm ký tự \n vào cuối, kết hàm =\n thành công ngược lại = EOF.

- Ví du:

/*Chương trình minh họa hàm puts*/ #include<stdio.h>

main() {

puts("");

puts("Hàm puts có chức năng: Ðưa chuỗi ký tự hình ");

puts("Khi thành cơng, hàm trả ký tự cuối xuất.");

puts("Khi có lỗi hàm trả EOF."); }

Câu hỏi, tập:

4.1 Nhập số a b Tính tổng, hiệu, tính thương hai số

(40)

tiền = số lượng * đơn giá thuế giá trị gia tăng = 10% tiền

4.3 Viết chương trình nhập vào cạnh hình chữ nhật, tính chu vi, diện tích

4.4 Viết chương trình tính diện tích, chu vi hình tam giác

(41)

BÀI 5: SỬ DỤNG CÂU LỆNH CÓ CẤU TRÚC ĐIỀU KIỆN Mã bài: 10.5

Giới thiệu:

Câu lệnh có cấu trúc điều kiện cho phép ta thay đổi luồng chương trình, dựa điều kiện Bài giúp cho người học làm quen với cú pháp, hoạt động, sơ đồ khối câu lệnh có cấu trúc điều kiện if, switch cách áp dụng câu lệnh tập

Mục tiêu:

- Trình bày phân biệt câu lệnh đơn lệnh ghép

- Trình bày cú pháp, hoạt động, lưu đồ khối câu lệnh if dạng đầy đủ dạng khuyết

- Trình bày cú pháp, hoạt động, lưu đồ khối câu lệnh switch case - Sử dụng câu lệnh if dạng khuyết dạng đầy đủ vào toán cụ thể

- Sử dụng câu lệnh câu lệnh switch case vào toán cụ thể - Tích cực hóa người học, rèn luyện tính cẩn thận, kiên trì, sáng tạo, độc lập hoạt động nhóm

- Bảo đảm an tồn vệ sinh cho người thiết bị phòng máy Nội dung chính:

1 Lệnh có cấu trúc điều kiện if 1.1 Cấu trúc if dạng khuyết 1.1.1.Cú pháp

if (<Biểu thức điều kiện>) <Công việc>

Trong đó: if: từ khóa, <Biểu thức điều kiện>: biểu thức có kiểu logic, <Cơng việc>: thể câu lệnh hay khối lệnh

 Lệnh đơn:

(42)

Ví dụ: x=0; i++; printf(“\n”);  Lệnh ghép:

Câu lệnh ghép tập hợp câu lệnh bao hai dấu “{ }” -Cú pháp:

{

<Câu lệnh 1> <Câu lệnh 2> ……… <Câu lệnh n> }

-Ví dụ: { t=x; x=y; y=t; }

Các thành phần bên câu lệnh ghép thực cách xuất Đây cấu trúc ngôn ngữ lập trình cấp cao 1.1.2 Sự hoạt động

Thứ tự thực câu lệnh if sau: - Kiểm tra <Biểu thức điều kiện>:

+ Nếu BT điều kiện (!= 0)(TRUE) thực câu lệnh khối lệnh liền sau điều kiện

+ Nếu điều kiện sai bỏ qua lệnh khối lệnh liền sau điều kiện (những lệnh khối lệnh sau thực bình thường khơng phụ thuộc vào điều kiện sau if)

(43)

Hình 5.1: Sơ đồ hoạt động câu lệnh if dạng khuyết 1.1.4 Bài tập

Bài tập 1: Viết chương trình nhập vào số nguyên n, em cho biết n la số chẵn hay sô lẻ

#include<stdio.h> #include<conio.h>

main () {

int n;

printf("Nhap n = "); scanf("%d",&n); if (n%2==0)

printf("n=%d la so chan”,n); if (n%2!=0)

printf("n=%d la so le”,n); }

Bài tập 2: Yêu cầu người chạy chương trình nhập vào giá trị số a b, a lớn b in thông báo “Gia trị a lớn giá trị b”, sau hiển thị giá trị cụ thể số lên hình

#include<stdio.h> #include<conio.h>

Bắt đầu

Đ Biểu thức điều

kiện

Cơng việc

Thốt

(44)

main () {

int a,b;

printf("Nhap vao gia tri a=");scanf("%d",&a); printf("Nhap vao gia tri b=");scanf("%d",&b); if(a>b)

printf("\n Gia tri a=%d lon hon gia tri b=%d",a,b); if(b>a)

printf("\n Gia tri a=%d nho hon gia tri b=%d",a,b); }

Bài tập 3: Viết chương trình tìm max hai số a,b in kết lên hình #include<stdio.h>

#include<conio.h> main()

{

float a,b,max;

printf("\n Cho a=");scanf("%f",&a); printf("\n Cho b=");scanf("%f",&b); max=a;

if (b>max) max=b;

printf("Max cua hai so a=%8.2f va b=%8.2f la max=%8.2f",a,b,max);

}

1.2 Cấu trúc if dạng đầy đủ 1.2.1 Cú pháp

if (<Biểu thức điều kiện>) <Công việc 1> else

<Công việc 2> Trong đó: + if, else: từ khóa;

+ <Biểu thức điều kiện>: biểu thức có kiểu logic

(45)

hay khối lệnh 1.2.2 Sự hoạt động:

Thứ tự thực câu lệnh if sau: - Kiểm tra <Biểu thức điều kiện>

+ Nếu điều kiện thực cơng việc + Nếu điều kiện sai thực cơng việc

- Các lệnh phía sau công việc không phụ thuộc vào điều kiện 1.2.3 Lưu đồ khối

Hình 5.2: Sơ đồ hoạt động câu lệnh if dạng đầy đủ 1.1.4 Bài tập

Bài tập 1: Viết chương trình nhập vào số nguyên n, em cho biết n la số chẵn hay sô lẻ

#include<stdio.h> #include<conio.h>

main () {

int n;

printf("Nhap n = "); scanf("%d",&n); if (n%2==0)

printf("n=%d la so chan”,n); S

Đ Biểu thứcđiều kiện

Công việc Công việc

(46)

else

printf("n=%d la so le”,n); }

Bài tập 2: Yêu cầu người chạy chương trình nhập vào giá trị số a b, a lớn b in thơng báo “Gia trị a lớn giá trị b”, sau hiển thị giá trị cụ thể số lên hình

#include <stdio.h> #include <conio.h> main ()

{

int a,b;

printf("Nhap vao gia tri a=");scanf("%d",&a); printf("Nhap vao gia tri b=");scanf("%d",&b); if(a>b)

printf("\n Gia tri a=%d lon hon gia tri b=%d",a,b); else

printf("\n Gia tri a=%d nho hon gia tri b=%d",a,b); }

Bài tập 2. Viết chương trình tìm max hai số a,b in kết lên hình #include <stdio.h>

#include <conio.h> main ()

{

int a,b,max;

printf("Nhap a,b = "); scanf("%d%d",&a,&b); if (a >b) max=a;

else max=b;

printf(“giá trị lớn nhất=%d”,max); }

* Lưu ý:

(47)

- Trong trường hợp câu lệnh if “bên trong” khơng có else phải viết cặp dấu {} (coi khối lệnh) để tránh kết hợp else if sai

2 Lệnh có cấu trúc lựa chọn switch case 2.1 Cú pháp

switch (<Biểu thức>) {

case <giá trị 1>:

Thực công việc <Biểu thức> có giá trị <gt1> break;

case giá trị 2:

Thực cơng việc <Biểu thức> có giá trị <gt2> break;

case giá trị n:

Thực cơng việc n <Biểu thức> có giá trị <gtn> break;

default:

Thực cơng việc biểu thức có giá trị khác; break;

}

Trong đó: + <Biểu thức>: là giá trị kiểu số nguyên + switch, case, default: từ khóa 2.2 Sự hoạt động

- Kiểm tra giá trị biểu thức trước

- Nếu giá trị biểu thức giá trị thực cơng việc - Nếu giá trị biểu thức khác giá trị so sánh với giá trị 2, giá trị thực cơng việc

- Cứ thế, so sánh tới giá trị n

(48)

trường hợp default

Lưu ý: Các giá trị sau case phải kiểu số nguyên, không bắt buộc phải có default

2.3 Lưu đồ khối

Hình 5.3 Sơ đồ hoạt động câu lệnh switch case 2.4 Bài tập

Nhập vào số nguyên, chia số nguyên cho lấy phần dư Kiểm tra phần dư in thơng báo “số chẵn”, số dư in thông báo “số lẻ”

#include<stdio.h> #include<conio.h> main (){

int songuyen, phandu;

printf("\n Nhap vao so nguyen "); scanf("%d",&songuyen); phandu=(songuyen % 2);

switch(phandu) {

case 0: printf("%d la so chan ",songuyen);break; case 1: printf("%d la so le ",songuyen); break; }

}

(49)

Câu hỏi, tập:

5.1 Viết chương trình nhập vào số nguyên In hình số ngun nhỏ số

đó

5.2 Viết chương trình nhập vào họ tên, điểm thi cuối kỳ học sinh In họ tên học sinh, kết xếp loại học sinh theo tiêu chuẩn sau:

- Giỏi: Nếu Điểm kết >= - Khá: Nếu > Điểm >= 6.5

- Trung bình: Nếu 6.5 > Điểm >= - Yếu: Nếu Điểm <

5.3 Viết chương trình giải phương trình bậc 1: bx + c =

5.4 Sử dụng câu lệnh switch… case viết chương trình lựa chọn cơng việc sau hiển thị kết hình:

- Tính diện tích hình chữ nhật - Tính diện tích vuông

(50)

BÀI 6: SỬ DỤNG CẤU TRÚC VÒNG LẶP FOR Mã bài: 10.6

Giới thiệu:

Khi thực chương trình, có trường hợp mà bạn phải thực lặp lại liên tiếp nhiều lần đoạn chương trình Bài học giúp sinh viên hiểu rõ cú pháp, hoạt động, sơ đồ khối câu lệnh lặp for cách thức hoạt động tập cụ thể

Mục tiêu:

- Trình bày cú pháp, hoạt động, lưu đồ khối câu lệnh for - Sử dụng câu lệnh câu lệnh for vào toán cụ thể

- Tích cực hóa người học, rèn luyện tính cẩn thận, kiên trì, sáng tạo, độc lập hoạt động nhóm

- Bảo đảm an tồn vệ sinh cho người thiết bị phòng máy Nội dung chính:

1.Cú pháp

for (Biểu thức 1; biểu thức 2; biểu thức 3) <Công việc>

Trong đó:

+ for: từ khóa

+ <Cơng việc>: thể câu lệnh hay khối lệnh + Biểu thức 1: biểu thức gán

+ Biểu thức 2: biểu thức điều kiện

+ Biểu thức 3: biểu thức tăng/ giảm để thay đổi giá trị biến điều kiện

2 Sự hoạt động

- B1: Khởi gán giá trị cho biểu thức - B2: Kiểm tra điều kiện biểu thức

(51)

thực

- B3: Tăng giảm giá trị biểu thức quay lại B2 3 Lưu đồ khối

Hình 6.1 Sơ đồ hoạt động câu lệnh for

Một số lưu ý sử dụng câu lệnh for:

- Trong biểu thức có nhiều biểu thức Các biểu thức phân biệt dấu phẩy

- Bất kỳ biểu thức biểu thức nói vắng phải giữ dấu chấm phẩy (;)

4 Bài tập

Bài tập1: Viết đoạn chương trình in dãy số nguyên từ đến 10 #include<stdio.h>

#include<conio.h> main()

{

int i;

(52)

for(i=1;i<=10;i++) printf("%d ",i); }

Bài tập Viết chương trình nhập vào số nguyên n Tính tổng số nguyên từ đến n

#include<stdio.h> #include<conio.h> main ()

{

int i,s,n;

printf("\n nhap n=");scanf(“%d”,&n); s=0;

for(i=1;i<=n;i++) s=s+i;

printf("tong s=%d ",s); }

Câu hỏi, tập: Viết chương trình tính tổng sau:

6.1 s = + 2+ 3+…+n 6.2 s = + 5+ …+(3n – 1)

6.3 s = +21 + 13 + 14 +…+ 1n 6.4 s= 13 + 61 + 19 +…+ 31

n

6.5 s = 1-2+3-…+(-1)n*n

6.6 s =1+ 12 + 14 + 61 +…+ 2∗1n 6.7 s =1 2+1

∗3 +

1 3∗4 +

1

4∗5 +…+

1

n(n+1)

6.8 s =1 1+∗13 + 2∗14 + 3∗15 +…+ (n−1)∗(1 n+1)

(53)

BÀI 7: SỬ DỤNG CẤU TRÚC VÒNG LẶP WHILE Mã bài: 10.7

Giới thiệu:

Ngoài cấu trúc vòng lặp for giới thiệu hướng dẫn trước, Bài học giúp sinh viên hiểu rõ cú pháp, hoạt động, sơ đồ khối câu lệnh lặp mà có số lần lặp không xác định trước (while) cách thức hoạt động tập cụ thể

Mục tiêu:

- Trình bày cú pháp, hoạt động, sơ đồ khối câu lệnh while - Sử dụng câu lệnh câu lệnh while vào tốn cụ thể

- Tích cực hóa người học, rèn luyện tính cẩn thận, kiên trì, sáng tạo, độc lập hoạt động nhóm

- Bảo đảm an toàn vệ sinh cho người thiết bị phịng máy Nội dung chính:

1 Cú pháp

while (Biểu thức điều kiện) <Công việc>

Trong đó:

+ while: từ khóa

+ <Công việc>: thể câu lệnh hay khối lệnh + Biểu thức điều kiện: biểu thức có kiểu logic

2 Sự hoạt động

- Kiểm tra Biểu thức điều kiện

- Nếu điều kiện sai (=0) (false) khỏi lệnh while

- Nếu điều kiện (!=0) (True) thực cơng việc quay lại kiểm tra điều kiện tiếp

(54)

Hình 7.1 Sơ đồ hoạt động câu lệnh whileLưu ý:

- Vòng lặp dừng lại điều kiện sai

- Khối lệnh thực cơng việc rỗng, làm thay đổi điều kiện 4 Bài tập

Bài tập 1. Viết đoạn chương trình in dãy số nguyên từ đến 10 #include<stdio.h>

#include<conio.h> main()

{

int i;

printf("\n Day so tu den 10: "); i=1;

while(i<=10)

printf("%d ",i++); }

Bài tập 2. Viết chương trình nhập vào số ngun n Tính tổng số nguyên từ đến n

#include <stdio.h> #include<conio.h> main()

{

int i,s,n;

Cơng việc Biểu thức ĐK

S

Đ Thốt

(55)

printf("\n nhap n=");scanf(“%d”,&n); s=0;i=1;

while(i<=n) {

s=s+i; i=i+1; }

printf("tong s=%d ",s); }

Câu hỏi, tập: Viết chương trình tính tổng sau:

7.1 s = + 2+ 3+…+n 7.2 s = + 5+ 8…+(3n – 1)

7.3 s = +21 + 13 + 14 +…+ 1n 7.4 s= 13 + 61 + 19 +…+ 31

n

7.5 s = -1+2-3-…+(-1)n*n

7.6 s =1+ 12 + 14 + 61 +…+ 2∗1n 7.7 s =1 2+1

∗3 +

1 3∗4 +

1

4∗5 +…+

1

n(n+1)

7.8 s =1 1+∗13 + 2∗14 + 3∗15 +…+ (n−1)∗(1 n+1)

(56)

BÀI 8: SỬ DỤNG CẤU TRÚC VÒNG LẶP DO WHILE Mã bài: 10.8

Giới thiệu:

Bài học trước tìm hiểu câu lệnh lặp có số lần lặp khơng xác định trước while Bài học giúp sinh viên hiểu rõ cú pháp, hoạt động, sơ đồ khối câu lệnh lặp mà hoạt động lặp thực cơng việc trước, sau kiểm tra điều kiện lặp cách thức hoạt động tập cụ thể

Mục tiêu:

- Trình bày cú pháp, hoạt động, sơ đồ khối câu lệnh while - Sử dụng câu lệnh câu lệnh while vào tốn cụ thể

- Tích cực hóa người học, rèn luyện tính cẩn thận, kiên trì, sáng tạo, độc lập hoạt động nhóm

- Bảo đảm an toàn vệ sinh cho người thiết bị phịng máy Nội dung chính:

1 Cú pháp do

<Công việc>

while (<Biểu thức điều kiện>) Trong đó:

+ do, while: từ khóa

+ <Công việc>: thể câu lệnh hay khối lệnh + Biểu thức điều kiện: biểu thức có kiểu logic

2 Sự hoạt động

- Trước tiên thực công việc, sau kiểm tra Biểu thức điều kiện - Nếu điều kiện sai khỏi lệnh …while

(57)

3 Lưu đồ khối

Hình 8.1 Sơ đồ hoạt động câu lệnh while

Lưu ý:

Lặp while kiểm tra điều kiện trước thực lặp, vòng lặp do… while thực lệnh lặp kiểm tra điều kiện Do vịng lặp do while thực lệnh lần

4 Bài tập

Bài tập 1: Viết đoạn chương trình in dãy số nguyên từ đến 10 #include<stdio.h>

#include<conio.h> main()

{

int i;

printf("\n Day so tu den 10: "); i=1;

do

printf("%d ",i++); while(i<=10);

}

Bài tập 2. Viết chương trình nhập vào số nguyên n Tính tổng số Bắt đầu

Công việc

Biểu thức ĐK

S Đ

(58)

nguyên từ đến n #include<stdio.h> #include<conio.h> main() { int i,s,n;

printf("\n nhap n=");scanf(“%d”,&n); s=0;i=1; { s=s+i; i=i+1; } while(i<=n);

printf("tong s=%d ",s); }

Câu hỏi, tập: Viết chương trình tính tổng sau:

8.1 s = + 2+ 3+…+n 8.2 s = + 5+ …+(3n – 1)

8.3 s = +21 + 13 + 14 +…+ 1n 8.4 s= 13 + 61 + 19 +…+ 31

n

8.5 s = 1-2+3-…+(-1)n*n

8.6 s =1+ 12 + 14 + 61 +…+ 21

n

8.7 s =1 2+1

∗3 +

1 3∗4 +

1

4∗5 +…+

1

n(n+1)

8.8 s =1 1+1

∗3 +

1 2∗4 +

1

3∗5 +…+

1

(n−1)∗(n+1)

8.9 Viết chương trình cho phép người dùng nhập liên tục giá trị n nhập số âm dừng

(59)

BÀI 9: SỬ DỤNG CÁC CÂU LỆNH BREAK, CONTINUE, GOTO Mã bài: 10.9

Giới thiệu:

Trong làm quen với cú pháp, hoạt động câu lệnh break, continue, goto cách áp dụng chúng để giải tập Mục tiêu:

- Trình bày cú pháp, hoạt động, sơ đồ khối câu lệnh break, continue, goto

- Sử dụng câu lệnh câu lệnh break, continue, goto vào toán cụ thể

- Tích cực hóa người học, rèn luyện tính cẩn thận, kiên trì, sáng tạo, độc lập hoạt động nhóm

- Bảo đảm an tồn vệ sinh cho người thiết bị phòng máy Nội dung chính:

1 Lệnh break Cú pháp: break;

Dùng để khỏi vịng lặp Khi gặp câu lệnh vịng lặp, chương trình khỏi vòng lặp đến câu lệnh liền sau Nếu nhiều vịng lặp >break khỏi vịng lặp gần Ngồi ra, break cịn dùng cấu trúc lựa chọn switch

Ví dụ: Cho phép người dùng nhập liên tục giá trị n nhập âm dừng

#include<stdio.h> #include<conio.h> main()

{ int n;

while(n>0) {

(60)

break; }

}

2 Lệnh continueCú pháp: continue;

- Khi gặp lệnh vịng lặp, chương trình bỏ qua phần lại vòng lặp tiếp tục thực lần lặp

- Ðối với lệnh for, biểu thức tính giá trị quay lại bước

- Ðối với lệnh while, while; biểu thức điều kiện tính xét xem tiếp tục thực <Cơng việc> hay không? (dựa vào kết biểu thức điều kiện).

Ví dụ: Viết chương trình in tất số lẻ nhỏ 100 trừ số 5,7,93 #include<stdio.h>

#include<conio.h> main()

{

int i;

for(i=1;i<100;i+=2) {

if((i==5)||(i==7)||(i==93)) continue;

printf("%5d", i); }

}

3.Câu lệnh goto

Nhãn có dạng tên biến có dấu hai chấm (:) đứng sau Nhãn gán cho câu lệnh chương trình

Ví dụ 1: t:s+=a;/* t nhãn câu lệnh gán */Cú pháp toán tử goto

goto nhan;

(61)

Ví dụ 2:

int s=1,a=3;

goto t;/*Nhảy tới thực lệnh sau t*/

++a;

t: s+=a;/*Kết s=4, bỏ qua lệnh ++a*/

Ví dụ 3:

#include<stdio.h> main()

{

// Khai báo biến cục bộ: int a = 10;

// Vòng lặp while

VONGLAP:do // label VONGLAP, lệnh

{

if(a==15) {

// nhảy qua bước lặp a=a+1;

goto VONGLAP; }

printf("\n Gia tri cua a la:%d ",a); a=a+1;

}while(a<20); return 0; }

* Chú ý:

- Câu lệnh goto nhãn cần nằm hàm

- Khơng cho phép dùng tốn tử goto nhảy từ ngồi vào khối lệnh, nhiên nhảy từ khối lệnh hoàn toàn hợp lệ

(62)

9.1: Lệnh lệnh sau dùng để khỏi vịng lặp (for, while) câu lệnh switch

a break c continue

b goto d exit

9.2: Lệnh lệnh sau cho phép chuyển tới nơi gán nhãn

a break c continue

b goto d exit

9.3: In hình giá trị từ 10 đến 20 trừ số 13 số 17

(63)

BÀI 10: GIỚI THIỆU VỀ HÀM Mã bài: 10.10

Giới thiệu:

Trong chương trình lớn, có đoạn chương trình viết lặp lặp lại nhiều lần, để tránh rườm rà thời gian viết chương trình, người ta thường phân chia chương trình thành nhiều đoạn nhỏ, đoạn giải cơng việc Các đoạn gọi hàm Qua giới thiệu cho sinh viên hiểu khái niệm, cách khai báo, kết trả hàm

Mục tiêu:

- Trình bày khái niệm hàm

- Trình bày cách khai báo hàm, khai báo hàm không định kiểu định kiểu liệu

- Trình bày quy tắc xây dựng hàm vận dụng thiết kế xây dựng chương trình

- Trình bày cú pháp hoạt động câu lệnh return exit

- Viết chương trình theo cấu trúc hàm khơng định kiểu định kiểu liệu - Sử dụng hàm không định kiểu định kiểu liệu vào tập - Sử dụng câu lệnh return- Lệnh Exit vào tập

- Tích cực hóa người học, rèn luyện tính cẩn thận, kiên trì, sáng tạo, độc lập hoạt động nhóm

- Bảo đảm an toàn vệ sinh cho người thiết bị phịng máy Nội dung chính:

1 Khái niệm

- Hàm đoạn chương trình độc lập thực trọn vẹn công việc định sau trả giá trị cho chương trình gọi nó, hay nói cách khác hàm chia nhỏ chương trình

(64)

Một hàm định nghĩa sử dụng đâu chương trình Trong C, chương trình bắt đầu thực thi hàm main

Ví dụ 1: Ta có hàm max để tìm số lớn số nguyên a, b sau: int max(int a,int b)

{

return(a>b)?a:b; }

Ví dụ 2: Ta có chương trình (hàm main) dùng để nhập vào số nguyên a,b in hình số lớn số

#include<stdio.h> #include<conio.h> int max(int a,int b) {

return(a>b)?a:b; }

int main() {

int a,b,c;

printf("\n Nhap vao so a, b,c "); scanf("%d%d %d",&a,&b,&c);

printf("\n So lon la %d",max(a, max(b,c))); return 0;

}

Hàm thư viện

- Hàm thư viện hàm định nghĩa sẵn thư viện đó, muốn sử dụng hàm thư viện phải khai báo thư viện trước sử dụng lệnh #include <tên thư viện.h>

- Ý nghĩa số thư viện thường dùng:

(65)

2 conio.h: Thư viện chứa hàm vào chế độ DOS (DOS console) Gồm hàm clrscr(), getch(), getche(), getpass(), cgets(), cputs(), putch(), clreol(),…

3 math.h: Thư viện chứa hàm tính tốn gồm hàm abs(), sqrt(), log(). log10(), sin(), cos(), tan(), acos(), asin(), atan(), pow(), exp(),…

4 alloc.h: Thư viện chứa hàm liên quan đến việc quản lý nhớ Gồm hàm calloc(), realloc(), malloc(), free(), farmalloc(), farcalloc(), farfree(), … 5 io.h: Thư viện chứa hàm vào cấp thấp Gồm hàm open(), _open(), read(), _read(), close(), _close(), creat(), _creat(), creatnew(), eof(), filelength(), lock(),…

6 graphics.h: Thư viện chứa hàm liên quan đến đồ họa Gồm initgraph(), line(), circle(), putpixel(), getpixel(), setcolor(), …

Muốn sử dụng hàm thư viện ta phải xem cú pháp hàm sử dụng theo cú pháp (xem phần trợ giúp Turbo C)

2 Khai báo hàm

Cú pháp chung: <Kiểu_dữ_liệu_của_hàm> Tên hàm ([các_tham_số]); - Trong

+ <tên hàm>: theo quy tắc đặt tên

+ <danh sách tham số>: tham số hình thức đầu vào giống khai báo biến, cách dấu phẩy “,”

2.1 Khai báo hàm không định kiểu liệu - Cú pháp:

void Tên_hàm ([danh sách tham số]) {

Khai báo biến cục bộ;

Các câu lệnh / khối lệnh hay lời gọi đến hàm khác; }

- Trong

(66)

+ <danh sách tham số>: tham số hình thức đầu vào giống khai báo biến, cách dấu phẩy “,”

-Ví dụ:

void XuatTong(int x, int y) {

int s; s=x+y;

printf(“%d cong %d bang %d”,x,y,s); }

void hieu(int x, int y) {

int s; s=x-y;

printf(“%d hieu %d bang %d”,x,y,s); }

2.2 Khai báo hàm có định kiểu liệu - Cú pháp:

<Kiểu liệu> Tên_hàm ([danh sách tham số]) {

<Kiểu liệu> kq;

Khai báo biến cục bộ;

Các câu lệnh / khối lệnh hay lời gọi đến hàm khác; return kq;

} - Trong

+ <kiểu liệu>: kiểu C (char, int, long, float,…) + <tên hàm>: theo quy tắc đặt tên

+ <danh sách tham số>: tham số hình thức đầu vào giống khai báo biến, cách dấu,

(67)

- Bên thân hàm (phần giới hạn cặp dấu {}) khai báo câu lệnh xử lý Các khai báo bên hàm gọi khai báo cục hàm khai báo tồn bên hàm mà thơi

Ví dụ: {

int s; s = x + y; return s; }

int hieu(int x,int y) {

int s; s = x - y; return s; }

3 Kết trả hàm- lệnh return- lệnh exit 3.1 Kết trả hàm

- Một hàm định nghĩa chúng chưa thực thi trừ ta có lời gọi đến hàm

- Cú pháp gọi hàm: <Tên hàm>([Danh sách tham số]) + Ví dụ 1: Xét tốn tính tổng s=1+2+3+…+n số nguyên void tinhtong(int s)

{ int i; s=1;

for(i=1;i<4;i++) s=s+i;

printf(“%d”,s); }

main() {

int s;

(68)

+ Ví dụ 2: Xét toán xuất kết ba số nguyên a, b, c #include<stdio.h>

#include<conio.h> int sub(int a,int b) {

int c; a=a+3; b=b+5; c=a-b; return c; }

main() {

int a,b,c ; a=9;

b=5;

c=sub(a,b);

printf("%d %d %d",a,b,c); }

Lưu ý: Việc gọi hàm phép tốn, khơng phải phát biểu

3.2 Lệnh return: dùng để khỏi hàm trả giá trị

Cú pháp:

return ; /*không trả giá trị*/

return <biểu thức>; /*Trả giá trị biểu thức*/

Nếu hàm có kết trả về, ta bắt buộc phải sử dụng câu lệnh return để trả kết cho hàm

Ví dụ 1: Viết hàm tìm số lớn số nguyên a b int max(int a,int b)

{

(69)

3.3 Lệnh exit()

Hàm exit() C sử dụng để khỏi chương trình Hàm này, triệu gọi sẽngay kết thúc chương trình chuyển quyền điều khiển cho hệ điều hành

- Cú pháp:

exit(int mã_trả_về);

Mã_trả_về thường số Số xác định việc kết thúc chương trình cách bình thường.Tuy nhiên có vài trường hợp mã_trả_về số khác để xác định vài loại lỗi

4 Bài tập

Bài tập 1: Viết chương trình khơng định kiểu tìm giá trị lớn số a,b nhập từ bàn phím

#include<stdio.h> #include<conio.h>

void tim_max(int a,int b) {

if(a>=b)

printf(" gia tri lon nhat la %d",a); else

printf(" gia tri lon nhat la %d",b); }

main() {

int a,b;

printf("nhap a=");scanf("%d",&a); printf("nhap b=");scanf("%d",&b); tim_max(a,b);

}

Bài tập 2: Viết chương trình định kiểu tìm giá trị lớn số a,b nhập từ bàn phím

(70)

int tim_max(int a,int b) {

if(a>=b) return a; else

return b; }

main() {

int a,b;

printf("nhap a=");scanf("%d",&a); printf("nhap b=");scanf("%d",&b); printf("Max %d ",tim_max(a,b)); }

Câu hỏi, tập

Sử dụng hàm định kiểu không định kiểu liệu làm tập sau:

10.1 Viết chương nhập vào số nguyên a,b Tính tổng, hiệu, tích, thương hai số

10.2 Viết chương trình nhập vào cạnh hình chữ nhật, tính chu vi, diện tích

10.3 Viết chương trình tính diện tích, chu vi hình tam giác

10.4 Viết hàm định kiểu liệu thực tính tổng in kết hình

s=1 + + + +…+ n

10.5 Viết hàm định kiểu liệu thực tính tổng in kết hình

s = + + + + …+ 2*n

10.6 Viết hàm định kiểu liệu thực tính tổng in kết hình

(71)(72)

BÀI 11: TRUYỀN THAM SỐ CHO HÀM Mã bài: 10.11

Giới thiệu:

Trong trình học tập làm việc với hàm Truyền tham số cho hàm kiến thức thiếu với tất Bài giới thiệu cho sinh viên biết tham biến, tham trị cách áp dụng vào tập

Mục tiêu:

- Trình bày quy tắc xây dựng hàm vận dụng thiết kế xây dựng chương trình

- Thực cách truyền tham số cho hàm - Viết chương trình theo cấu trúc hàm

- Sử dụng lệnh kết thúc lấy giá trị trả hàm

- Tích cực hóa người học, rèn luyện tính cẩn thận, kiên trì, sáng tạo, độc lập hoạt động nhóm

- Bảo đảm an tồn vệ sinh cho người thiết bị phòng máy Nội dung chính:

1 Cách truyền tham số cho hàm

Tham số hình thức, tham số thực biến cục bộ

- Các tham số dùng khai báo hàm gọi tham số hình thức Các tham số cung cấp cho hàm gọi hàm tham số thực Tham số thực biểu thức, tham số hình thức biểu thức Dãy tham số thực phải tương ứng kiểu với tham số hình thức

Có hàm khơng cần có tham số Vì vậy, khai báo ta dùng từ khóa void để báo hàm khơng cần tham số

(73)

- Mặc nhiên, việc truyền tham số cho hàm C truyền theo giá trị nghĩa giá trị thực (tham số thực) không bị thay đổi giá trị truyền cho tham số hình thức

- Khi chương trình gọi để thi hành, tham trị cấp ô nhớ nhận giá trị giá trị tham số thực Do đó, tham trị biến, việc thay đổi giá trị chúng khơng có ý nghĩa bên ngồi hàm, khơng ảnh hưởng đến chương trình chính, nghĩa khơng làm ảnh hưởng đến tham số thực tương ứng

- Tham trị: Một tham số truyền theo dạng tham trị giá trị khơng bị thay đổi kết thúc chương trình

- Truyền tham biến: Không giống truyền tham trị, truyền tham biến làm thay đổi giá trị biến truyền vào Vì vậy, cách thao tác làm thay đổi địa truyền vào kết thúc hàm giữ nguyên

2 Bài tập - Tham trị:

void traodoi(int x, int y) //Đây tham trị nên không thay đổi giá trị

{

int z=x; x=y; y=z; }

main()

{ int x,y;

x=5;y=6;

traodoi(x,y);

printf(“%d%d”,x,y); }

- Tham biến: Một tham số truyền theo dạng tham biến giá trị bị thay đổi kết thúc chương trình

void traodoi(int &x, int &y) {

(74)

} main()

{ int x,y;

x=5;y=6;

traodoi(x,y);

printf(“%d%d”,x,y); }

Câu hỏi, tập:

Sử dụng hàm dạng tham trị tham biến viết chương trình sau:

11.1 Viết chương nhập vào số nguyên a,b Tính tổng, hiệu, tích, thương hai số

11.2 Viết chương trình nhập vào cạnh hình chữ nhật, tính chu vi, diện tích

(75)

BÀI 12: NHẬP XUẤT DỮ LIỆU CHO MẢNG MỘT CHIỀU Mã bài: 10.12

Giới thiệu:

Mảng liệu tập hợp phần tử có kiểu liệu truy cập thông qua tên Việc vận dụng mảng liệu việc học tập làm việc điều thiếu Bài học cung cấp cho khái niệm, khai báo, khởi tạo, cách nhập xuất mảng chiều

Mục tiêu:

- Nêu định nghĩa mảng

- Nêu, phân tích cách khai báo mảng chiều - Trình bày số phép lấy địa mảng chiều

- Thực cách khởi tạo, truy nhập vào phần tử mảng chiều - Trình bày cách nhập xuất mảng chiều

- So sánh cách nhập xuất mảng với cách nhập xuất biến - Sử dụng cách nhập xuất mảng vào tập

- Tích cực hóa người học, rèn luyện tính cẩn thận, kiên trì, sáng tạo, độc lập hoạt động nhóm

- Bảo đảm an toàn vệ sinh cho người thiết bị phịng máy Nội dung chính:

1 Khái niệm

- Mảng tập hợp hữu hạn phần tử kiểu, lưu trữ nhớ

- Các phần tử mảng có tên (là tên mảng) phân biệt với số cho biết vị trí mảng

2 Khai báo mảng chiều

Cú pháp: <Kiểu><Tên mảng ><[số phần tử]>  Ý nghĩa:

(76)

- Số phần tử: số nguyên, cho biết số lượng phần tử tối đa mảng (hay nói khác kích thước mảng gì)

- Kiểu: phần tử mảng có liệu thuộc kiểu

- Ở đây, ta khai báo biến mảng gồm có số phần tử, phần tử thứ tên mảng [0], phần tử cuối tên mảng[số phần tử -1]

Ví dụ:

int a[10]; /* Khai báo biến mảng tên a, phần tử thứ a[0], phần tử cuối cùng a[9].*/

Ta coi mảng a dãy liên tiếp phần tử nhớ sau: Vị trí:

Phần tử:

3 Khởi tạo mảng 3.1 Khởi tạo mảng Gồm cách sau:

Khởi tạo giá trị cho phần tử mảng VD: int a[4] = {12, 17, 15, 19};

A 120 171 152 193

Khởi tạo giá trị cho số phần tử đầu mảng VD: int a[4] = {12, 17};

a

12 17 0

Khởi tạo giá trị cho phần tử mảng VD: int a[4] = {0};

a 00 10 20 30

Tự động xác định số lượng phần tử VD: int a[4] = {12, 17, 15, 19};

0

(77)

a 120 171 152 193 3.2 Chỉ số mảng

Chỉ số mảng phải giá trị kiểu int khơng vượt qua kích thước mảng, số mảng

- Ví dụ: int a[5];

/*Gồm phần tử tương ứng số từ (a[0],a[1],a[2],a[3],a[4]) */ 3.3 Lấy địa phần tử mảng chiều

Chỉ lấy địa phần tử thuộc mảng chiều thơng qua tốn tử & theo cú pháp:

&tên_biến[i] (i số mảng)

Chú ý: Tên mảng chứa địa đầu mảng Ví dụ: có int a[10] a=&a[0]

4.Nhập xuất liệu cho phần tử mảng chiều - Ví dụ: nhập xuất liệu cho mảng chiều (kiểu int) #include<stdio.h>

#include<conio.h> main()

{

int a[5]; int i;

/*Nhập liệu*/

for (i=0;i<5;i++) {

printf("\n a[%d]",i); scanf("%d",&a[i]); /*nhập trực tiếp phép lấy địa chỉ*/

}

/*Ðưa kết hình*/

(78)

}

Câu hỏi, tập: 12.1 Lập trình thực công việc sau:

- Nhập vào mảng dãy số nguyên a1,a2,a3…an - In dãy vừa nhập hình

-Tính tổng phần tử nhập vào

- Tinh trung bình cộng phần tử nhập vào

-Tính trung bình cộng phần tử chẵn, lẻ nhập vào - Tìm in giá trị lớn nhất, nhỏ mảng

- Xuất dãy số chẵn, số lẻ phần tử nhập vào 12.3 Lập trình thực công việc sau:

- Nhập vào mảng dãy số thực a1,a2,a3…an - In dãy vừa nhập hình

(79)

BÀI 13: SỬ DỤNG MẢNG MỘT CHIỀU LÀM THAM SỐ CHO HÀM Mã bài: 10.13

Giới thiệu:

Qua tìm hiểu cách truyền tham số cho hàm mảng, ý tưởng, bước tiến hành giải thuật tìm kiếm tuyến tính mảng chiều

Mục tiêu:

-Trình bày thuật tốn viết mảng dạng hàm

- Trình bày thuật tốn tìm kiếm vị trí, tìm kiếm phần tử mảng chiều

- Viết tập mảng chiều dạng hàm

- Áp dụng thuật tốn tìm kiếm vị trí, tìm kiếm phần tử vào tập - Tích cực hóa người học, rèn luyện tính cẩn thận, kiên trì, sáng tạo, độc lập hoạt động nhóm

- Bảo đảm an toàn vệ sinh cho người thiết bị phịng máy Nội dung chính:

1.Dùng mảng làm tham số cho hàm Truyền mảng cho hàm

- Tham số kiểu mảng khai báo hàm giống khai báo biến mảng Ví dụ:

void NhapMang(int a[100],int &n)

{ int i;

for(i=0;i<n;i++) {

printf("a[%d]=",i);scanf("%d",&a[i]); }

}

- Tham số kiểu mảng truyền cho hàm địa phần tử đầu tiên của mảng

(80)

+ Mảng thay đổi nội dung sau thực hàm VD: void SapXepTang(int a[100],int n)

void SapXepTang(int *a);  Lời gọi hàm

void NhapMang(int a[100], int &n); void XuatMang(int a[100], int n); main()

{

int a[100], n; NhapMang(a, n); XuatMang(a, n); }

Ví dụ: Viết chương trình nhập vào mảng n số nguyên viết chương trình thực công việc sau:

- Nhập mảng

- In mảng vừa nhập hình #include<conio.h>

#include<stdio.h>

void nhap(int a[100],int & n)

{ int i;

for(i=0;i<n;i++) {

printf("a[%d]=",i);scanf("%d",&a[i]); }

}

void inra(int a[100],int n) {

int i;

printf("mang sau nhap"); for(i=0;i<n;i++)

(81)

main() {

int chon; int a[100],n;

printf("nhap n=");scanf("%d",&n); nhap(a,n);

inra(a,n); }

2 Tìm kiếm mảng chiều

u cầu: Tìm xem phần tử x có nằm mảng a kích thước n hay khơng? Nếu có nằm vị trí

2.1 Ý tưởng

Xét phần mảng a Nếu phần tử xét x trả vị trí Nếu kơ tìm trả -1

2.2 Các bước tiến hành

• Bước : Khởi gán i=0;

• Bước : So sánh a[i] với giá trị x cần tìm, có khả + a[i] = = x tìm thấy x Dừng;

+ a[i] != x sang bước 3;

• Bước : i=i+1 // Xét tiếp phần tử mảng Nếu i= =N: Hết mảng Dừng;

Ngược lại: Lặp lại bước 2; 2.3 Giải thuật

Từ mô tả thuật tốn tìm tuyến tính, cài đặt hàm TimTuyenTinh để xác định vị trí phần tử khóa x mảng a:

int TimKiem(int a[], int n, int x) { int i

for(i=0;i<n;i++) {

(82)

return i; }

return -1; }

3 Bài tập: Viết chương trình nhập vào mảng n số nguyên viết chương trình dạng hàm thực công việc sau:

a In mảng vừa nhập hình

b Nhập vào phần tử x, kiểm tra có x mảng hay khơng, có thơng báo số lần xuất phần tử x mảng, khơng thơng báo khơng có phần tử x mảng

Ví dụ: Nhập vào dãy: 2,4,6,5,2 Nhập vào x=2 thơng báo có giá trị x=2 dãy

c Kiểm tra phần tử x mảng hay khơng, có thơng báo phần tử nằm vị trí đầu tiền mảng, khơng có thơng báo khơng có phần tử x mảng

#include<conio.h> #include<stdio.h>

void nhap(int a[100],int& n)

{ int i;

for(i=0;i<n;i++) {

printf("a[%d]=",i);scanf("%d",&a[i]); }

}

void inra (int a[100],int n) {

int i;

printf("mang sau nhap"); for(i=0;i<n;i++)

(83)

void timgiatri(int a[100],int n) {

int x,d,i;

printf(" nhap x=");scanf("%d",&x); d=0;

for(i=0;i<n;i++)

if(a[i]==x) d=d+1; if (d!=0)

printf("co %d phan tu %d day",d,x); else

printf("k co phan tu %d day",x); }

int timkiemVT(int a[],int n,int k) {

int i;

for(i=0;i<n;++i) {

if(a[i]==k) {

return i; }

}

return -1; }

main() {

int chon;

int a[100],n,k;

{

printf("1 Nhap DS MANG\n"); printf("2 In DS MANG\n");

(84)

printf("4 Tim kiem vi tri\n");

printf("0 Thoat\n");

printf("\nBan chon 1, 2, 3, 4, 0: "); scanf("%d",&chon);

switch(chon) {

case 1: printf(" nhap n=");scanf("%d",&n); nhap(a,n); break;

case 2: inra(a,n); break; case 3: tim(a,n); break;

case 4:printf(" nhap k=");scanf("%d",&k); int tt=timkiemVT(a,n,k);

if(tt==-1)

printf("Ko tim thay phan tu %d \n", k); else

printf("Tim duoc phan tu %d tai vi tri %d \n",k,tt);

break; }

}

while(chon!=0); }

Câu hỏi, tập:

13.1 Lập trình thực cơng việc sau dạng hàm - Nhập vào mảng dãy số nguyên a1,a2,a3…an

- Tính tổng phần tử nhập vào

- Tìm in giá trị lớn nhất, nhỏ mảng

- Xuất dãy số chẵn, số lẻ phần tử nhập vào

(85)

VD: Nhập vào dãy: 1,4,6,5,1 Nhập vào k=1 => có giá trị k=1 dãy 13.2 Lập chương trình thực công việc sau dạng hàm

- Nhập vào dãy số nguyên a1,a2,a3, an

- Tính trung bình cộng phần tử nhập vào - Tính trung bình cộng số chẵn, số lẻ dãy

- Tìm kiếm phần tử nhập vào từ bàn phím có mảng hay khơng? - Tính tổng phần tử lẻ dãy số nhập vào

- Tính tổng s = n

i-1 1/ai với giả thiết ai khác với i

- Tính tổng phần tử chẵn dãy vừa nhập

(86)

BÀI 14: SẮP XẾP MẢNG MỘT CHIỀU Mã bài: 10.14

Giới thiệu:

Sắp xếp trình xử lý danh sách phần tử để đặt chúng theo thứ tự thỏa mãn tiêu chuẩn dựa nội dung thơng tin lưu giữ phần tử Bài học giúp biết ý tưởng, bước tiến hành thuật toán xếp mảng chiều phương pháp đổi chỗ

Mục tiêu:

- Trình bày thuật toán xếp mảng chiều - Áp dụng thuật toán xếp vào tập

- Tích cực hóa người học, rèn luyện tính cẩn thận, kiên trì, sáng tạo, độc lập hoạt động nhóm

- Bảo đảm an tồn vệ sinh cho người thiết bị phòng máy Nội dung chính:

1 Ý tưởng

Xuất phát từ đầu dãy, tìm tất các nghịch chứa phần tử này, triệt tiêu chúng cách đổi chỗ phần tử cặp nghịch Lặp lại xử lý với phần tử kế dãy (Nghịch thế: Là xét dãy a1, a2, ……… an Nếu i<j ai>aj

thì gọi nghịch thế) 2 Các bước tiến hành sau

+ Bước 1: i = 0; // đầu dãy

+ Bước 2: j = i+1; //tìm nghịch với a[i] + Bước 3:

Trong j < N thực

Nếu a[j]<a[i] //xét cặp a[i], a[j] Hoán vị (a[i],a[j]);

j = j+1; + Bước 4: i = i+1;

(87)

Ngược lại: Dừng 3 Giải thuật

void SXDoicho(int a[], int N)

{ int i,j,tg;

for(i = 0; i<N-1; i++)

for(j =i+1;j < N ;j++)

if(a[j ]< a[i])// Thỏa cặp nghịch thế

{

tg=a[i]; a[i]=a[j]; a[j]=tg; }

}

(88)(89)

Câu hỏi, tập: Lập trình thực công việc sau:

14.1 Nhập vào mảng dãy số nguyên a1,a2,a3…an 14.2 Sắp xếp mảng theo thứ tự tăng dần

(90)

BÀI 15: NHẬP XUẤT CHUỖI KÝ TỰ Mã bài: 10.15

Giới thiệu:

Trong học làm quen với khái niệm chuỗi ký tự, khai báo, hàm nhập xuất chuỗi

Mục tiêu:

- Nêu khái niệm chuỗi ký tự - Khai báo biến chuỗi ký tự

- Thực thao tác nhập vào chuỗi ký tự cho chương trình

- Tích cực hóa người học, rèn luyện tính cẩn thận, kiên trì, sáng tạo, độc lập hoạt động nhóm

- Bảo đảm an toàn vệ sinh cho người thiết bị phịng máy Nội dung chính:

1 Khái niệm

Chuỗi ký tự dãy gồm ký tự mảng ký tự kết thúc ký tự ‘\0’ (còn gọi ký tự NULL bảng mã Ascii)

Các chuỗi ký tự đặt cặp dấu nháy kép “ ” 2 Khai báo biến chuỗi

2.1 Khai báo theo mảng

 Cú pháp: char <Biến> [Chiều dài tối đa]  Ví dụ: Trong chương trình, ta có khai báo: char Ten[12];

Trong khai báo này, nhớ cung cấp 12+1 bytes để lưu trữ nội dung chuỗi ký tự Ten; byte cuối lưu trữ ký tự ‘\0’ để chấm dứt chuỗi

Ghi chú:

- Chiều dài tối đa biến chuỗi nguyên nằm khoảng từ đến 255 bytes

(91)

2.2 Vừa khai báo vừa gán giá trị

Cú pháp: char <Biến>[]=<”Hằng chuỗi”> Ví dụ:

#include<stdio.h> #include<conio.h> int main()

{

char Chuoi[]="Mau nang hay la mau mat em” ; printf("Vua khai bao vua gan trị: %s”,Chuoi) ; return 0;

}

* Ghi chú: Chuỗi khai báo mảng ký tự nên thao tác mảng áp dụng chuỗi ký tự

3 Vào với xâu ký tự 3.1 Nhập chuỗi từ bàn phím

Để nhập chuỗi ký tự từ bàn phím, ta sử dụng hàm gets() Cú pháp: gets(<Biến chuỗi>)

Ví dụ: char Ten[20]; gets(Ten);

Ta sử dụng hàm scanf() để nhập liệu cho biến chuỗi, nhiên lúc ta nhập chuỗi khơng có dấu khoảng trắng

3.2 Xuất chuỗi lên hình

Để xuất chuỗi (biểu thức chuỗi) lên hình, ta sử dụng hàm puts() Cú pháp: puts(<Biểu thức chuỗi>)

Ví dụ: Nhập vào chuỗi hiển thị hình chuỗi vừa nhập #include<conio.h>

#include<stdio.h> #include<string.h> int main()

{

(92)

printf("Nhap chuoi: ");gets(Ten); printf("Chuoi vua nhap: ");puts(Ten); return 0;

}

Ngồi ra, ta sử dụng hàm printf(), cputs() (trong conio.h) để hiển thị chuỗi lên hình

Câu hỏi, tập: 15.1 Các khai báo biến sau Khai báo

a char HoTen; b char HoTen[20];

c char *HoTen[20]; d Tất

15.2 Khai báo với khai báo kiểu chuỗi:

a int a, b; c a,b: float;

b char ten[12]; d Tất câu

15.3 Nhập vào chuỗi gồm mã sinh viên, họ tên, năm sinh Hiển thị hình chuỗi vừa nhập

15.4 Nhập tên sản phẩm, số lượng đơn giá Tính tiền thuế giá trị gia tăng phải trả, biết:

(93)

BÀI 16: THAO TÁC TRÊN CHUỖI KÝ TỰ Mã bài: 10.16

Giới thiệu:

Trong học làm quen với hàm cộng, xác định độ dài, hàm ghép, hàm so sánh, hàm đổi chữ hoa sang chữ thường ngược lại chuỗi ký tự Cách áp dụng hàm vào tập

Mục tiêu:

- Nêu cú pháp công dụng phép toán chuỗi - Áp dụng phép toán vào chương trình cụ thể

- Tích cực hóa người học, rèn luyện tính cẩn thận, kiên trì, sáng tạo, độc lập hoạt động nhóm

- Bảo đảm an toàn vệ sinh cho người thiết bị phịng máy Nội dung chính:

1 Các phép toán chuỗi ký tựCộng chuỗi - Hàm strcat()

- Cú pháp: strcat (s1,s2): nối s1 s2

- Ý nghĩa: Hàm có tác dụng ghép chuỗi (s1) vào chuỗi (s2) - Ví dụ 1: giá trị câu s1: " ABC" ; s2: " ABE" => strcat(s1,s2) ; => " ABCABE";

Xác định độ dài chuỗi - Hàm strlen() - n = strlen(s1): cho biết độ dài chuỗi s1

- Ví dụ: Sử dụng hàm strlen xác định độ dài chuỗi nhập từ bàn phím #include<conio.h>

#include<stdio.h> #include<string.h> int main(){

char Chuoi[255]; int Dodai;

(94)

printf("Chuoi vua nhap: ");puts(Chuoi); printf(“Co dai %d”,Dodai);

getch(); }

Đổi ký tự thường thành ký tự hoa - Hàm toupper() #include<conio.h>

#include<stdio.h> #include<string.h> main()

{

char n,k;

printf(“ nhap ky tu”); scanf(“%c”, &n); k= toupper(n);

printf(“ chu hoa la %c”,k); getch();

}

Đổi ký tự chữ hoa thành ký tự chữ thường, hàm tolower(ch);Đổi chuỗi chữ thường thành chuỗi chữ hoa, hàm strupr()

-Cú pháp: char *strupr(char *s)

- Ý nghĩa:Hàm struppr() dùng để chuyển đổi chuỗi chữ thường thành chuỗi chữ hoa, kết trả hàm trỏ đến địa chuỗi chuyển đổi

- Ví dụ: Viết chương trình nhập vào chuỗi ký tự từ bàn phím Sau sử dụng hàm strupr() để chuyển đổi chúng thành chuỗi chữ hoa

#include<conio.h> #include<stdio.h> #include<string.h> main()

{

char Chuoi[255],*s;

(95)

printf(“Chuoi chu hoa: ”);puts(s); }

Đổi chuỗi chữ hoa thành chuỗi chữ thường, hàm strlwr()

- Muốn chuyển đổi chuỗi chữ hoa thành chuỗi toàn chữ thường, ta sử dụng hàm strlwr(), tham số hàm tương tự hàm strupr()

Cú pháp: char *strlwr(char *s)So sánh chuỗi, hàm strcmp() - Cú pháp: n= strcmp (s1,s2)

- Ý nghĩa: so sánh chuỗi s1,s2 (so theo mã ASCII ký tự) + n>0: s1> s2

n = 0: s1=s2 n < 0: s1<s2

So sánh chuỗi, hàm strncmp() - Cú pháp: m = strncmp (s1, s2, n)

- Ý nghĩa: so sánh n ký tự chuỗi s1 với s2

- Ví dụ: m = strncmp (s1, s2, 2) ; m = ký tự đầu chuỗi là: + s1: "ABC" s2: " ABE" giống

Sao chép phần chuỗi, hàm strcpy() - Cú pháp: strcpy (đích, nguồn) ;

- Ý nghĩa: chép chuỗi nguồn vào chuỗi đích, gán chuỗi

- Ví dụ:

char [30] ;

Ten = "Nguyễn Văn Ðông "; (sai) strcpy (ten, "Nguyễn Văn Ðông "); gets (ten): Nhập vào từ bàn phím Sao chép chuỗi, hàm strncpy()

- Cú pháp strnpy (s1, s2, n) ;

(96)

Đổi từ chuỗi số, hàm atoi(), atof(), atol() (trong stdlib.h) - d= atoi (chuỗi số); chuyển chuỗi số thành int

- f = atof (chuỗi số); chuyển chuỗi số thành số thực (float) - l = atol(chuỗi số); chuyển chuỗi số thành long (nguyên byte) - Ví dụ: char s[20] ;

gets(s) nhập vào s từ bàn phím chuỗi " 123.45" d=atoi(s) d = 123

f = atof(s); f = 123.45  Tìm kiếm nội dung chuỗi, hàm strstr()

- Cú pháp: char *strstr(const char *s1, const char *s2) - Ý nghĩa:

+ Hàm strstr() sử dụng để tìm kiếm xuất chuỗi s2 chuỗi s1

+Kết trả hàm trỏ đến phần tử chuỗi s1 có chứa chuỗi s2 giá trị NULL chuỗi s2 khơng có chuỗi s1

- Ví dụ: Viết chương trình sử dụng hàm strstr() để lấy phần chuỗi gốc chuỗi “hoc”

#include<conio.h> #include<stdio.h> #include<string.h> int main(){

char Chuoi[255],*s;

printf("Nhap chuoi: ");gets(Chuoi); s=strstr(Chuoi,”hoc”);

printf(“Chuoi trich ra: ”);puts(s); }

* Chú ý: Muốn dùng hàm chuỗi phải khai báo đầu chương trình #include <ctype.h>; #include <string.h>

2 Bài tập

(97)

#include<conio.h> #include<stdio.h> #include<string.h> int main()

{

char HoLot[30], Ten[12];

printf("Nhap Ho Lot: ");gets(HoLot); printf("Nhap Ten: ");gets(Ten);

strcat(HoLot,Ten); /* Ghep Ten vao HoLot*/

printf("Ho ten la: ");puts(HoLot); }

Bài tập 2: Viết chương trình nhập vào họ, tên người Sau copy tên vào họ người

#include<conio.h> #include<stdio.h> #include<string.h> int main()

{

char ho[255],ten[255];

printf("Nhap ho: ");gets(ho); printf("Nhap ten: ");gets(ten);

strcpy(ho,ten);

printf(“Chuoi dich: ”);puts(ho); }

Câu hỏi, tập:

16.1 Trình bày cú pháp, công dụng hàm cộng, đếm, chép, đổi ký tự, chuỗi chữ thường thành chữ hoa ngược lại

16.2 Viết chương trình nhập vào hai chuỗi s1 s2, nối chuỗi s2 vào s1 Xuất chuỗi s1 hình

(98)

TÀI LIỆU THAM KHẢO

[1] Lê Xuân Việt, Lập trình bản, Nhà xuất xây dựng, 2018

[2] GS Phạm Văn Ất, Kỹ thuật lập trình, Nhà xuất Bách Khoa Hà Nội, 2018

[3] Nguyễn Đình Tê, Hồng Đức Hải, Giáo trình lý thuyết tập ngôn ngữ C, Nhà xuất Giáo dục, 1999

[4] Nguyễn Cẩn, C – Tham khảo toàn diện, Nhà xuất Đồng Nai, 1996 [5] Võ Văn Viện, Giúp tự học Lập Trình với ngơn ngữ C, Nhà xuất Đồng Nai, 2002

[6] Brain W Kernighan & Dennis Ritchie, The C Programming Language, Prentice Hall Publisher, 1988

[7] Tham khảo tài liệu mạng Internet:

http://www.slideshare.net/tuoitrecomvn/giao-trinhc-aptech http://ww.tailieuhoctap.vn

Ngày đăng: 01/04/2021, 18:17

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[7] Tham khảo các tài liệu ở mạng Internet: http://www.slideshare.net/tuoitrecomvn/giao-trinhc-aptechhttp://ww.tailieuhoctap.vn Link
[1] Lê Xuân Việt, Lập trình cơ bản, Nhà xuất bản xây dựng, 2018 Khác
[2] GS Phạm Văn Ất, Kỹ thuật lập trình, Nhà xuất bản Bách Khoa Hà Nội, 2018 Khác
[3] Nguyễn Đình Tê, Hoàng Đức Hải, Giáo trình lý thuyết và bài tập ngôn ngữ C, Nhà xuất bản Giáo dục, 1999 Khác
[4] Nguyễn Cẩn, C – Tham khảo toàn diện, Nhà xuất bản Đồng Nai, 1996 Khác
[5] Võ Văn Viện, Giúp tự học Lập Trình với ngôn ngữ C, Nhà xuất bản Đồng Nai, 2002 Khác
[6] Brain W. Kernighan &amp; Dennis Ritchie, The C Programming Language, Prentice Hall Publisher, 1988 Khác

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w