1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Ôn tập ngôn ngữ C

38 219 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 38
Dung lượng 181 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Ôn tập ngôn ngữ CMục tiêu Ôn tập về các khaí niệm cơ bản về lập trình Ôn tập cú pháp C.. 1- Các khái niệm cơ bản về lập trìnhChương trình máy tính: Tập các lệnh nhị phân có thứ tự nhằm

Trang 1

Ôn tập ngôn ngữ C

Mục tiêu

Ôn tập về các khaí niệm cơ bản về lập trình

Ôn tập cú pháp C.

Ôn tập kỹ thuật viết chương trình C.

Ôn tập kỹ thuật viết hàm C.

Ôn tập kỹ thuật phân tích chương trình có hàm.

Ôn tập về mảng 1 chiều

Ôn tập về ma trận

Ôn tập về chuỗi ký tự.

Ôn tập về cấu trúc

Trang 3

1- Các khái niệm cơ bản về lập trình

Chương trình máy tính: Tập các lệnh nhị phân

có thứ tự nhằm giải một bài toàn trên máy tính Ngôn ngữ lập trình:Một tập các định nghĩa về cú pháp cho phép người sử dụng tạo ra các

chương trình máy tính Một chương trình sẽ

được tạo ra từ một chuỗi các phát biểu đúng cú pháp.

Dịch chương trình:Quá trình chuyển 1 chương trình trong 1 ngôn ngữ lập trình thành chương trình nhị phân (mã máy) Như vậy chương trình

có 2 dạng: chương trình trong ngôn ngữ lập

trính và chương trình mã máy.

Trang 4

Các khái niệm cơ bản về lập trình

Phần mềm ngôn ngữ: Một phần mềm máy

tính hiện thực cú pháp của 1 ngôn ngữ lập

trình, cung cấp cho người sử dụng các một

số tiện ích như : Môi trường soạn thảo

chương trình (editor), dịch chương trình +

kiểm lỗi cú pháp chương trình (compile),

chạy cả/ từng bước chương trình, kiểm tra trị các biến (debug, View)

Trang 5

Các khái niệm cơ bản về lập trình

Giải thuật: Phương pháp / cách tiếp cận để giải một bài toán.

Đặc điểm của giải thuật:

(1) Có duy nhật 1 điểm bắt đầu + duy nhất 1 điểm kết thúc.

(2) Giải thuật phải dừng.

(3) Kết qủa phải đúng.

Mô tả 1 giải thuật

(1) Một trật tự hữu hạn các bước giải theo

ngôn ngữ (chương trình máy tính là một giải thuật cho 1 bài toán cụ thể)

(2) Lưu đồ.

Trang 6

Các khái niệm cơ bản về lập trình

Dùng Editor NNLT

Chương trình ngôn ngữ

Dịch

No

Yes Lỗi cú pháp

Kq đúng

Trang 7

2- Cú pháp ngôn ngữ C

2.1- Từ khóa và cách đặt từ mới

Từ khóa: Từ cơ bản của ngôn ngữ.

Cách đặt 1 từ: Ký tự đầu là chữ hay gạch nối, các ký tự sau là chữ+số+gạch nối

Không đặt từ trùng với từ khóa, không sử dụng các ký hiệu toán tử, không dùng ký tự khoảng trống Mỗi khái niệm được đặt 1 từ riêng.

Trang 8

2.2- Toán tử cơ bản

Toán tử số học: + - * / % ++

Toán tử so sánh: < <= == >= > != : trả về trị 0 (sai) 1 (đúng).

Toán tử luận lý: ! && || : trả về trị 0 (sai) 1 (đúng).

Toán tử trên bit : & | ^ ( and, or, xor)

Toán tử dịch: >> <<

Toán tử điều kiện : Cond ? true_val : false_val

Toán tử gán: = += -= *= /= .

Trang 9

Độ ưu tiên toán tử (TT) cơ bản

(1) Ngoặc từ trong ra ngoài.

(2) TT Số học (nhân chia trước cộng trừ sau, kết hợp trái phải).

Trang 10

2.3- Kiểu dữ liệu-Hằng- Biến

Datatype : Khái niệm đặc tả kích thước bộ

nhớ khi lưu trữ các loại dữ liệu khác nhau.

Các kiểu dữ liệu cơ bản: char, int, long, float, double.

Kiểu dữ liệu dẫn xuất (derived): Kiểu dữ liệu được dẫn ra từ các kiểu cơ bản, thí dụ:

Trang 11

Kiểu dữ liệu-Hằng- Biến

Biến (variable) : Một vùng nhớ sẽ lưu trữ dữ liệu có liên quan đến bài toán và có thể thay đổi theo thời gian.

Biến phải thuộc 1 kiểu dữ liệu.

Khai báo biến:

DataType varName [ = TrịKhởiTạo];

Thí dụ

char c1 , c2 =‘A’ , c3=c2;

int n = 7 , m = n , d ;

Trang 12

2.4- Phát biểu C

Phát biểu đơn (simple statement) : Một tác vụ hoặc 1 biểu thức.

Phát biểu khối (compound statement) : Một nhóm

tác vụ được bao lại bằng { } Thường dùng trong các tình huống đặc biệt muốn coi 1 nhóm phát biểu đơn là 1 phát biểu.

Trang 13

Phát biểu Chọn – Select statements

Phát biểu chọn 1/2 (if else statement):

if (condition) Statement_1;

else Statement_2;

Phát biểu chọn 1/n (switch statement): switch (int_or_char_expression)

{ case Constant1: Statements ; break;

case Constant2: Statements ; break;

case Constant3: Statements ; break;

.

default : Statements;

}

Trang 15

Một thí dụ về phát biểu lặp

Tính S= 1+2+3+4+6+7+7+9+11+ +n

Làm nhiều phép cộng  Lặp.

Khởi tạo (phía trái) : S=0, i=1

Điều kiện: (phía phải) : i<=n

Trang 17

Phát biểu chuyển điều khiển

Ngưng ngay tác vụ của 1 hàm.

exit (int n); // trong thư việc stdlib.h

Ngưng ngay chương trình đang chạy, trả điều khiển về cho hệ điều hành.

Trang 18

3- Kỹ thuật giải bài toán đơn giản

Bài toán

Nhặt các

danh từ

Biến a, b, c (chọn kiểu lớn)

Cắt câu

theo động từ,

#include <stdio.h> // Xuất-nhập

#include <conio.h> // ngưng void main()

{ int a, b, c;

<Câu lệnh tương đương>

<Câu lệnh tương đương>

getch();

}

( giải thuật )

Trang 20

4- Hàm C – Định nghĩa

Một tác vụ cần cho việc giải bài toán.

Một nhóm phát biểu được đặt tên.

Con người thường diễn đạt 1 yêu cần bằng Động từ + Các túc từ Khi thực hiện việc này

có khi rất vất vả và phức tạp.

Trang 21

Hàm C – Các thành phần của hàm

Tên hàm: tên gọi của tác vụ theo quy ước đặt từ, thường là động từ như trong ngôn ngữ tự nhiên Tham số : Dữ liệu để hàm tác động Tham số có 2 loại: tham trị, tham biến.

Kiểu kết qủa: Có khi 1 tác vụ sau khi thực thi xong

có một dữ liệu mô tả kết qủa của tác vụ  Cần nơi chứa dữ liệu kết qủa phù hợp (datatype).

Nội dung : nhóm phát biểu chỉ định thứ tự thực thi chi tiết của tác vụ.

Hiện thực 1 hàm là hiện thực cả 4 thành phần của hàm

Trang 23

#include <stdio.h> // Xuất-nhập

#include <conio.h> // ngưng

void Hàm1 ( Type a)

{ }

int Hàm2(Type b)

{ return 3*b; } void main()

{ int a, b, c;

Hàm1(a); // gọi hàm

printf(“%d\n”, Hàm2(b) ); <Câu lệnh tương đương> getch();

}

Trang 24

6- Pointer

Pointer= Biến mang trị là địa

chỉ của một vùng nhớ.

Cung cấp phương tiện gián

tiếp để truy cập 1 dữ liệu

( biết địa chỉ sẽ đến địa chỉ

đó truy cập được dữ liệu).

Cú pháp khai báo pointer:

Trang 25

Toán tử thao tác trên pointer

& : Lấy địa chỉ của 1 biến.

* : Truy cập trị tại 1 địa chỉ.

new : cấp phát mới 1 vùng nhớ , trả về 1

pointer.

delete pointer : Trả vùng nhớ đã cấp phát

động.

++ : Lấy địa chỉ phần tử sau.

: Lấy địa chỉ phần tử trước đó.

= : Gán 2 pointer với nhau.

So sánh 2 pointer cho biết vị trí trước sau

của 2 dữ liệu.

Đơn vị thay đổi trị của pointer khi cộng trừ là kích thước

của kiểu dữ liệu mà pointer này chỉ đến

Trang 26

Toán tử thao tác trên pointer

& : Lấy địa chỉ của 1 biến.

* : Truy cập trị tại 1 địa chỉ.

new : cấp phát mới 1 vùng nhớ , trả về 1

pointer.

delete pointer : Trả vùng nhớ đã cấp phát

động.

++ : Lấy địa chỉ phần tử sau.

: Lấy địa chỉ phần tử trước đó.

= : Gán 2 pointer với nhau.

So sánh 2 pointer cho biết vị trí trước sau

của 2 dữ liệu.

Đơn vị thay đổi trị của pointer khi cộng trừ là kích thước

của kiểu dữ liệu mà pointer này chỉ đến

Trang 27

Toán tử thao tác trên pointer

p1 100

n 3

p3 p2 p1 100

Trang 28

Toán tử thao tác trên pointer

Trang 29

Bài tập

Chạy code sau:

int m=3, n=6;

int* p1= &m, *p2=&n ;

int* p3 = new int [3] , *p4=p3;

Trang 30

7- Mảng 1 chiều

Mảng= Nhóm trị cùng kiểu có chung tên , mỗi phần tử

được quản lý bằng chỉ số đi từ 0.

Kích thước của mảng = số phần tử mà mảng có thể chứa Khai báo và quản lý mảng tĩnh : Mảng tĩnh sau khi khai báo đã có sẵn vùng nhớ vì đã ấn định kích thước của

mảng.

Kiểu a [100] ; // tối đa 100 phần tử

int n; // số phần tử hiện có , chỉ số đi từ 0 đến n-1

Khai báo và quản lý mảng động : Dùng pointer Khi khai báo chưa có vùng nhớ cho các phần tử, chỉ có vùng nhớ chứa các phần tử sau khi xin cấp phát động bộ nhớ.

Kiểu* a ;

int n; // số phần tử hiện có , chỉ số đi từ 0 đến n-1

Trang 31

void Nhập (int*&a, int &n)

void Nhập ( int a[] , int &n)

long Tổng (int *a, int n)

int Max ( int a[] , int n)

Trang 32

8- Mảng 2 chiều – Ma trận

Ma trận= Nhóm trị cùng kiểu có chung tên , các phần tử được bố trí thành các hàng các cột.

Mỗi phần tử là 1 trị ĐƠN

Kích thước của ma trận = số hàng * số cột Khai báo và quản lý ma trận tĩnh :

Kiểu m [10][20] ; // tối đa 10 hàng 20 cột

int h, c; // số hàng cột hiện có

Truy xuất phần tử : m[i][j]

Trang 33

Ma trận động- quản lý như mảng 1 chiều

Trang 34

Ma trận động- có ấn định số hàng tối đa, số cột tùy ý

Khai báo và quản lý ma trận động : Dùng

Trang 35

for (int i=0; i<h; ++i) m[i]= new Kiểu[c];

Địa chỉ phần tử hàng i cột j : & m[i][j]

Trị của phần tử hàng i cột j : m[i][j]

Trang 36

9- Chuỗi ký tự trong C

100

char S[30]=“Hoa hong”;

Chuỗi ký tự tương tự mảng các ký tự Có 1 điều khác là byte cuối cùng mang trị NULL (0) mang ý nghĩa byte đánh dấu kết thúc chuỗi.

S[i] là ký tự thứ i trong chuỗi.

Rất nhiều hàm thao tác chuỗi được khai báo trong string.h Hàm scanf(“%s”, S) chỉ nhập được chuỗi không có khoảng trắng.

Nhập chuỗi có khoảng trắng bằng : gets(S);

Trước khi nhập ký tự, chuỗi, nên xả bộ đệm bàn phím bằng

Trang 38

Thao tác trên cấu trúc

Truy xuất thành phần:

strcpy(e2.Code, e1.Code); // gán thành phần chuỗi

e2.Salary = e1 Salary;

Ngày đăng: 25/08/2017, 09:48

TỪ KHÓA LIÊN QUAN

w