Professional Documents
Culture Documents
1-TongQuan Tin hoc co so 2
1-TongQuan Tin hoc co so 2
VC
VC
BB
BB
TIN HỌC CƠ SỞ 2
2
&&
VC
VC
BB
BB
Các khái niệm cơ bản
Ví dụ
Thuật toán giải PT bậc nhất: ax + b = 0
(a, b là các số thực).
Đầu vào: a, b thuộc R
Đầu ra: nghiệm phương trình ax + b = 0
• Nếu a = 0
• b = 0 thì phương trình có nghiệm bất kì.
• b ≠ 0 thì phương trình vô nghiệm.
• Nếu a ≠ 0
• Phương trình có nghiệm duy nhất x = -b/a
4
&&
VC
VC
BB
BB
Các tính chất của thuật toán
7
&&
VC
VC
BB
BB
Sử dụng lưu đồ - sơ đồ khối
Khối vào ra
Nhập/Xuất dữ liệu.
Đường đi
Chỉ hướng thao tác tiếp theo.
8
&&
VC
VC
BB
BB
Sử dụng lưu đồ - sơ đồ khối
Bắt đầu
Đọc a,b
Đ S
a=0
Đ S
Tính
b=0
x = -b/a
Xuất Xuất
Xuất x
“VSN” “VN”
Kết thúc
9
&&
VC
VC
BB
BB
Sử dụng mã giả
10
&&
VC
VC
BB
BB
Cài đặt thuật toán bằng C
#include <stdio.h>
void main()
{
int a, b;
printf(“Nhap a, b: ”);
scanf(“%d%d”, &a, &b);
if (a==0)
{
if (b==0)
printf(“Phuong trinh VSN”);
else
printf(“Phuong trinh VN”);
}
else
printf(“x = %f”, float(-b)/a);
}
11
&&
VC
VC
BB
BB
Cấu trúc IF…ELSE
S TA RT
INPUT num
r=num MOD 2 r = num M O D 2
IF r=0
DISPLAY “Even Number” Yes No
r=0
ELSE
DISPLAY “Odd Number”
END IF DIS P LAY "Num ber is E ven" DIS PLA Y "Num ber is O dd"
END
S TOP
12
&&
VC
VC
BB
BB
Vòng lặp
S TA R T
BEGIN cn t= 0
cnt=0
WHILE (cnt < 1000) No
cn t < 1 0 0 0
DO
DISPLAY “Scooby” Yes
cnt=cnt+1 D IS PL A Y " Sc o ob y "
END DO
END cn t= c n t+ 1
S TOP
13
&&
VC
VC
BB
BB Độ phức tạp của thuật toán
14
14
&&
VC
VC
BB
BB Độ phức tạp của thuật toán
15
15
&&
VC
VC
BB
BB Độ phức tạp của thuật toán
Thực nghiệm
Chịu sự hạn chế của ngôn ngữ lập trình
Ảnh hưởng bởi trình độ của người cài đặt
Chọn được các bộ dữ liệu thử đặc trưng cho
tất cả tập các dữ liệu vào của thuật toán: khó
khăn và tốn nhiều chi phí
Phụ thuộc nhiều vào phần cứng
16
16
&&
VC
VC
BB
BB Độ phức tạp của thuật toán
Xấp xỉ tiệm cận
Cách thông dụng nhất để đánh giá một thuật toán là
ký hiệu tiệm cận gọi là Big-O
Định nghĩa toán học của Big-O:
Cho f và g là hai hàm từ tập các số nguyên hoặc số
thực đến số thực. Ta nói f(x) là O(g(x)) nếu tồn tại
hằng số C và k sao cho: |f(x)| ≤ C |g(x)| với mọi x > k
Ví dụ, hàm f(x) = x2+ 3x + 2 là O(x2)
Thật vậy, khi x > 2 thì x < x2 và 2 < 2x2
Do đó x2 + 3x + 2 < 6x2
Nghĩa là ta chọn được C = 6 và k = 2
17
17
&&
VC
VC
BB
BB Độ phức tạp của thuật toán
19
19
&&
VC
VC
BB
BB Độ phức tạp của thuật toán
20
20
&&
VC
VC
BB
BB
Giới thiệu ngôn ngữ lập trình C
1 Giới thiệu
2 Bộ từ vựng của C
21
&&
VC
VC
BB
BB
Lịch sử của ngôn ngữ lập trình C
Ngôn ngữ lập trình C ra đời năm 1972,
tác giả: Dennis Ritchie.
C được tạo ra để sử dụng như một phần
căn bản của hệ điều hành UNIX (Ken
Thompson, Dennis Ritchie và Douglas
McIlroy, 1969)
C được sử dụng rộng rãi và có ảnh hưởng
lớn đến nhiều ngôn ngữ lập trình hiện đại,
trong đó có C++, được xem là mở rộng
của C.
Là ngôn ngữ lập trình có cấu trúc và phân
biệt chữ Hoa - thường (case sensitive)
22
&&
VC
VC
BB
BB
Môi trường lập trình C/C++
Môi trường C:
Borland C (còn gọi là Turbo C)
Borland C++ 3.1 for DOS.
Môi trường C/C++:
Dev-C++
Visual C++ của Microsoft
Visual Studio
Code Block
23
&&
VC
VC
BB
BB
Môi trường lập trình C/C++
24
&&
VC
VC
BB
BB
Các lĩnh vực ứng dụng của C
C được dùng để lập trình hệ thống
Một chương trình hệ thống làm thành một
phần hệ điều hành hoặc các tiện ích hỗ trợ của
hệ điều hành
Hệ điều hành (Operating Systems), trình
thông dịch (Interpreters), trình soạn thảo
(Editors), trình Hợp Ngữ (Assembly) được gọi
là chương trình hệ thống
Hệ điều hành UNIX được phát triển dựa vào C
Có các trình biên dịch dành cho hầu hết các
loại hệ thống PC
25
&&
VC
VC
BB
BB
Đặc điểm của C
C có 32 từ khóa
Những từ khóa này kết hợp với cú pháp của C
hình thành ngôn ngữ C
Các quy tắc được áp dụng cho các chương trình
C• Tất cả từ khóa là chữ thường
• Ðoạn mã trong chương trình C main()
{
có phân biệt chữ thường, chữ /* This is a sample Program*/
int i,j;
hoa, do while khác DO WHILE i=100;
•Từ khóa không thể dùng đặt j=200;
:
tên biến (variable name) hoặc }
tên hàm (function name)
26
&&
VC
VC
BB
BB
Phần mềm, chương trình, câu lệnh
Software
Program 1 Program 2
27
&&
VC
VC
BB
BB Cấu trúc chương trình C
main():
Chương trình C được chia nhỏ thành những
đơn vị gọi là hàm
Cho dù có bao nhiêu hàm trong chương
trình, Hệ điều hành luôn trao quyền điều
khiển cho hàm main() khi một chương
trình C được thực thi.
Theo sau tên hàm là dấu ngoặc đơn
Dấu ngoặc đơn có thể có chứa hay không
chứa những tham số
28
Cấu trúc chương trình C (tt.)
&&
VC
VC
BB
BB
29
Cấu trúc chương trình C (tt.)
&&
VC
VC
BB
BB
30
Cấu trúc chương trình C (tt.)
&&
VC
VC
BB
BB
33
&&
VC
VC
BB
BB
Bộ từ vựng của C
34
&&
VC
VC
BB
BB
Bộ từ vựng của C
Từ khóa (keyword)
Các từ dành riêng trong ngôn ngữ.
Không thể sử dụng từ khóa để đặt tên cho
biến, hàm, tên chương trình con.
Một số từ khóa thông dụng:
• const, enum, signed, struct, typedef, unsigned…
• char, double, float, int, long, short, void
• case, default, else, if, switch
• do, for, while
• break, continue, goto, return
35
&&
VC
VC
BB
BB
Bộ từ vựng của C
37
&&
VC
VC
BB
BB
Bộ từ vựng của C
40
&&
VC
VC
BB
BB
Cấu trúc chương trình C
41
Ví dụ 1
&&
VC
VC
BB
BB
/*VIDU.CPP*/
/*VIDU.CPP*/
#include
#include <stdio.h>
<stdio.h>
int
int main()
main()
{{
printf(“Nhap
printf(“Nhap mon
mon lap
lap trinh\n");
trinh\n");
Hàm main printf(“Vi
printf(“Vi du
du don
don gian\n");
gian\n");
return
return 0;
0;
}} Nhap
Nhap mon
mon lap
lap trinh
trinh
Vi
Vi du
du don
don gian
gian
Báo CT kết thúc cho HĐH
42
&&
VC
VC
BB
BB
Ví dụ 2
#include <stdio.h>
#include <conio.h>
void main()
{
int x, y, tong;
printf(“Nhap hai so nguyen: ”);
scanf(“%d%d”, &x, &y);
tong = x + y;
printf(“Tong hai so la %d”, tong);
getch();
}
43
Ví dụ 3
&&
VC
VC
BB
BB
printf("%i
printf("%i -- %i
%i == %i\n",
%i\n", a,
a, b,
b, aa -- b);
b);
Viết các biểu thức “a”, return
return 0;
0;
“b” và “a-b” theo định }
} Nhap
dạng %i Nhap 22 so
so nguyen:
nguyen: 21
21 17
17
21
21 -- 17
17 == 44
44
Một số lưu ý từ ví dụ
&&
VC
VC
BB
BB
45
&&
VC
VC
BB
BB
Qui ước