You are on page 1of 26

BÀI GIẢNG

LẬP TRÌNH C CƠ BẢN

Giảng viên: Từ Việt Ba


Khoa: Điện
Lập trình C bằng phần mềm DEV-C++

- Thế nào là thư viện trong C++

- Khai báo hàm


main() trong C++

- Lệnh in ra màn hình


và các cấu trúc liên
quan
Lập trình C bằng phần mềm DEV-C++

- Kiểu dữ liệu nguyên: int

- Kiểu dữ liệu thực: float

Cách khai báo và hiển


thị hai kiểu dữ liệu
trên
Giải thích câu lệnh if
else (sơ lược)

Bài tập: hiển thị phép


nhân hai số a*b=c
LƯU ĐỒ THUẬT TOÁN CỦA HÀM IF


Vào
DỤ
Biểu Sai
thức

Đúng

Khối lệnh

Ra
BÀI THỰC HÀNH SỐ 1: THỜI GIAN 1 GIỜ

Lập chương trình giải phương trình bậc 1: ax+b = 0


Với a,b nhập vào từ bàn phím.

Yêu cầu:
- Lập lưu đồ thuật toán
- Viết chương trình bằng DEV-C++
LƯU ĐỒ THUẬT TOÁN GIẢI PHƯƠNG TRÌNH BẬC 1 ax+b=0

Khai báo biến a,b,x

Nhập a,b

Đúng
a==0 Pt vô nghiệm

Sai
Phương trình có
nghiệm x=-b/a

KT
BÀI THỰC HÀNH SỐ 1: THỜI GIAN 1 GIỜ
Mở rộng: dùng hàm scanf(“định dạng “,&biến); để nhập số liệu từ bàn
phím.
LỆNH CÓ CẤU TRÚC
1. Cấu trúc rẽ nhánh:
a) Lệnh cấu trúc IF dạng khuyết

Cú pháp: if <điều kiện>


{
<công việc 1>;
<công việc 2>;
}

a) Lệnh cấu trúc IF dạng đủ


Cú pháp: if <điều kiện>
<công việc 1> ;
else
<công việc 2>;
LỆNH CÓ CẤU TRÚC
2. Cấu trúc lựa chọn: switch … case
Cú pháp: switch <biểu thức>
{
case <giá trị 1> :
<nhóm lệnh 1>;
[break ;]
case <giá trị 2>:
<nhóm lệnh 2>;
[break ;]
case <giá trị 3>:
<nhóm lệnh 3>;
[break ;]
…………….
default: <nhóm lệnh khác>;
BÀI THỰC HÀNH SỐ 2: THỜI GIAN 1.5 GIỜ

Lập chương trình giải phương trình bậc 2:


a.x2 + bx + c = 0
Với a,b,c nhập vào từ bàn phím.

Yêu cầu:
- Lập lưu đồ thuật toán
- Viết chương trình bằng DEV-C++
LƯU ĐỒ THUẬT TOÁN GIẢI PT BẬC 2: a.x2 + b.x + c =

0
Khai báo biến a,b,c,x
Nhập a, b, c

Tính Delta = b2/2*a

Delta Delta Delta


<0 <0 <0

Đúng Đúng Đúng


Pt có nghiệm kép Pt có hai nghiệm
Pt vô nghiệm
x1=x2=?? x1=?;x2=?

KT
Các nội dung bài tập sau:
Các phép toán so sánh và số học
trong C:
Ví dụ: i++, i--
Vòng lặp for là gì?
https://www.youtube.com/watch?
v=pQLGn5EIiIc
Kết quả của chương trình bên
là:
A. Tính tổng 10 số int đầu tiên
B. In ra 10 số int đầu tiên
LỆNH CÓ CẤU TRÚC
3. Lệnh cấu trúc lặp
a) Lặp với số lần xác định : FOR
Cú pháp: for (<biểu thức1>; <biểu thức 2>; <biểu thức 3>) <câu lệnh>
o <biểu thức 1>: Khởi tạo biến đếm
o <biểu thức 2>: Kiểm tra điều kiện của vòng lặp
o <biểu thức 2>: Điều khiển biến đếm của vòng lặp
 Ý nghĩa:
Cấu trúc for cho phép thực hiện lặp lại nhiều lần một
dãy <câu lệnh> với số lần lặp lại đã xác định trước.

Ví dụ: Tính tổng n


số nguyên dương
đầu tiên:
LỆNH CÓ CẤU TRÚC
3. Lệnh cấu trúc lặp
a) Lặp với số lần xác định : FOR
Cú pháp: for (<biểu thức1>; <biểu thức 2>; <biểu thức 3>) <câu lệnh>
o <biểu thức 1>: Khởi tạo biến đếm
o <biểu thức 2>: Kiểm tra điều kiện của vòng lặp
o <biểu thức 2>: Điều khiển biến đếm của vòng lặp

BÀI TẬP:
1. Viết chương trình tính tổng nghịch đảo của N số nguyên đầu tiên theo công
thức sau:

2. Viết chương trình nhập vào N số nguyên, tìm số lớn nhất, số nhỏ nhất.

3. Viết chương trình nhập vào N rồi tính giai thừa của N.
Nhập vào N số nguyên, tìm số lớn nhất, số nhỏ nhất

Khai báo biến i=1


n,min,max,I,a. Nhập n

Nhập số a
Max=0;

Đúng
a>max

Đúng
Sai

Sai Min = a; max = a;


i<=n

i++;
KT
VÒNG LẶP WHILE (Lặp với số lần không xác định: WHILE)
Cấu trúc lặp
while <điều kiện>
{
<khối lệnh>;
}

VD: while <i<=n>


{
i=i+1;
}

Ví dụ: Sử dụng cấu trúc lặp while để


tính tổng của n số nguyên đầu tiên
VÒNG LẶP DO WHILE Lặp với số lần lặp không xác địn
Cấu trúc
do
lặp
{
<khối lệnh>;
}
while <điều kiện>;
a.Ý nghĩa:
<Khối lệnh> được thực hiện trong khi <điều kiện> còn đúng và lặp lại đến khi nào điều kiện
sai.
Lưu ý : <khối lệnh> sẽ được thực hiện ít nhất một lần.
b.Lưu đồ cú pháp:
Khối lệnh

Điều kiện
đúng
sai

Ví dụ: Viết chương trình tính


tổng sau: s=1+1/2+1/3+…+1/n
V. CHƯƠNG TRÌNH CON (HÀM)
1. Khái
Trong lập trình chúng ta gặp những đoạn chương trình lặp đi lặp lại ở những vị trí khác
niệm:
nhau. Để tránh rườm rà, những đoạn chương trình này được thay thế bằng các chương
trình tương ứng và khi cần thì gọi lại nó ra mà không cần viết lại. Chương trình thay thế
tương ứng đó gọi là chương trình con.
Ví dụ. Để tính tổng của biểu thức sau :
S= 1+x1 + x2 + … + xn
V. CHƯƠNG TRÌNH CON (HÀM)
2. Đặc điểm cơ bản của Hàm (Ctr Con):
Khi định nghĩa một hàm tức là chỉ rõ các lệnh cần phải được thực hiện mỗi khi hàm đó được
gọi đến. Như thế, tất cả những hàm được sử dụng trong một chương trình đều phải có một định
nghĩa tương ứng. Ngoài ra, hàm còn trả về cho chương trình gọi nó một giá trị, giá trị này có kiểu
được khai báo trong khi định nghĩa hàm.
 Giá trị của hàm có thể không cần dùng đến, như: printf, scanf

 Hàm có thể không có giá trị gán cho tên hàm (giá trị trả về - kiểu void)

 Hàm có thể cung cấp các giá trị không phải kiểu vô hướng

 Hàm có thể thay đổi các giá trị đối số (tham số) của nó
V. CHƯƠNG TRÌNH CON (HÀM)
3. Cú pháp (Các sử dụng) Hàm
[Kiểu dữ liệu] <Tên hàm>([Danh sách tham số])
{
[Khai báo biến cục bộ ];
<Thân hàm>;
[return [biểu thức kết quả] ; ]
}
 [Kiểu dữ liệu]: Nếu hàm trả về một giá trị thì kiểu dữ liệu của hàm phải được khai báo
 <Ten hàm>:theo qui tắc đặt tên
 [danh sách tham số]: có thể có hoặc không, nếu có nhiều tham số thì cách nhau bởi dấu
phảy “,”
 [Khai báo biến cục bộ]: Khi cần dùng biến chỉ cho thần hàm thì chúng ta có thể khai báo
danh sách các biến cần thiết.
 <Thân hàm>: đây là phần chính của hàm, chỉ ra các lệnh cần thực hiện của hàm.
 [return [biểu thức kết quả];]: Lệnh return cho phép thoát khỏi hàm, và đưa kết quả trong
[biểu thức kết quả] cho tên hàm. Lệnh return có thể đặt bất cứ vị trí nào trong tham hàm.
V. CHƯƠNG TRÌNH CON (HÀM)
3. Các ví dụ
VI. MẢNG
1. Khái
Mảng là một kiểu dữ liệu có cấu trúc, gồm có nhiều phần tử có cùng kiểu dữ liệu (kiểu cơ
niệm:
sở), được lưu trữ liên tiếp ở bên trong bộ nhớ và có chung một tên. Các phần tử của mảng
phân biệt nhau bởi chỉ số.
Mỗi phần tử của mảng được truy cập trực tiếp thông qua tên mảng cùng với chỉ số, chỉ số được đặt
giữa hai dấu ngoặc [ ].
void main() {
2. Mảng 1 chiều: int a[100],i,n,tong;
printf(“So phan tu :”); scanf(“%d”,&n);
Khai báo mảng như nào? for(i=0;i<n;i++) {
printf(“phan tu thu a[%d]:”,i);
scanf(“%d”,&a[i]);
Cấu trúc dữ liệu của mảng }
tong=0;
a[0] a[1] a[2] … a[n-1]
for(i=0;i<n;i++)
if(a[i]%2==0) tong+=a[i];
Truy xuất phần tử mảng printf(“tong cac so chan la: %d”,tong);
}
VI. MẢNG
o Cú pháp:
3. Mảng là tham số của hàm <kiểu> <tên hàm>(<kiểu><tên mảng>[],…>)
hoặc <kiểu> <tên mảng>(<kiểu>* tên,….)

VÍ DỤ: // ---- Hàm nhập vào n số nguyên cho mảng các số nguyên
void nhap(int a[], int n) {
int i;
for(i=0;i<n;i++) {
printf(“a[%d]=”,i+1); scanf(“%d”,&a[i]);
}
}

// ---- Hàm in ra danh sách n số nguyên của một mảng các số nguyên
void hienthi(int a[], int n) {
int i;
for(i=0;i<n;i++) printf(“a[%d]=%d”,i+1,a[i]);
}
VI. MẢNG
o Cú pháp:
3. Mảng là tham số của hàm <kiểu> <tên hàm>(<kiểu><tên mảng>[],…>)
hoặc <kiểu> <tên mảng>(<kiểu>* tên,….)

VÍ DỤ: // ---- Hàm main – trong hàm gọi các chương trình con:
hàm nhập, hàm in
void main() {
int a[100],n;
printf(“Mang co bao nhieu pt :”); scanf(“%d”,&n);
nhap(a,n);
hienthi(a,n); }
VI. MẢNG

4. Mảng nhiều chiều:

Ví dụ: Viết chương trình nhập ma trận 2 chiều


có n dòng và m cột và hiển thị lên màn hình
theo dạng toán học.
XIN CẢM ƠN!

You might also like