Các từ được liên kết theo một quy tắc ngữ pháp nào đó để tạo thành các câu lệnh.. Tên được đặt theo quy tắc: Tên là một dãy các ký tự chữ và số trong đó ký tự đầu tiên phải là chữ.. Khi
Trang 1CHƯƠNG II
CÁC KHÁI NIỆM CƠ BẢN
I Tập ký tự dùng trong ngôn ngữ C:
Mọi ngôn ngữ lập trình đều được xây dựng lên từ một bộ ký tự nào đó Các ký tự được
nhóm theo nhiều cách khác nhau tạo thành các
từ Các từ được liên kết theo một quy tắc ngữ pháp nào đó để tạo thành các câu lệnh Một
chương trình bao gồm nhiều câu lệnh và diển đạt một thuận toán để giải một bài toán nào đó.
Ngôn ngữ C được xây dựng trên bộ ký tự sau:
26 chữ cái la tinh lớn: A, B, C, ,Z
26 chữ cái la tinh lớn: a, b, c, ,z
10 chữ số: 0,1,2, ,9
Các ký hiệu toán học: + - * / = ( )
Trang 2 Ký tự gạch nối _ (Chú ý phân biệt với dấu -)
Các ký hiệu đặc biệt khác: , ; : [ ] { } ? ! \ & |
% # $
Dấu cách (Space)
Trang 3II Tên
Tên là khái niệm rất quan trọng, nó dùng để xác định các đại lượng khác nhau trong một chương trình Chúng ta co tên hằng,
biến, mảng, hàm, con trỏ, tên tệp, tên cấu trúc, tên nhãn,
Tên được đặt theo quy tắc:
Tên là một dãy các ký tự chữ và số trong đó ký tự đầu tiên phải là chữ Khi viết tên cho phép sử dụng dấu _ như một chữ
Tên không được trùng với các từ khoá cuả C
Tên có độ dài tuỳ ý, tuy nhiên chỉ có 8 ký tự đầu có nghĩa
Trang 4Chú ý:
Trong C có sự phân biệt chữ hoa và chữ thường
Thông thường sử dụng chữ hoa để đặt tên các hằng, dùng chữ thường để đặt tên các đại lượng khác.(Không bắt buộc)
Trang 5III Từ khoá
Từ khoá là những từ có ý nghĩa hoàn toàn xác định, chúng thường được sử dụng để khai báo các kiểu dữ liệu, để viết các toán tử và các câu lệnh
Các từ khoá mà chúng ta thường gặp khi làm việc với C:
Trang 6IV Một số chương trình ví dụ:
Ví dụ 1:
#include “stdio.h”
void main()
{
printf(“Welcom to C! \n”);
}
Ví dụ 2:
#include “stdio.h”
main()
{
printf(“Welcom to C! \n”);
return 0;
}
Trang 7V Một số quy tắc cần nhớ khi viết
chương trình:
Quy tắc đầu tiên cần nhớ là:
Mỗi câu lệnh có thể viết trên một hay nhiều
dòng nhưng phải được kết thúc bằng dấu;
Quy tắc thứ hai là quy tắc về lời giải thích:
Các lời giải thích phải đặt giữa dấu /* và dấu */
Quy tắc thứ 3 là quy tắc sử dụng các hàm chuẩn.
Khi sử dụng mộ hàm cần biết nó nằm trên tập Header (*.h) và phải dùng toán tử #include để
gắn tệp đó vào chương trình
Quy tắc thứ tư nói về cấu trúc của một chương trình.
Một chương trình có thể chỉ có một hàm chính - main(), hoặc có thể thêm nhiều hàm khác
Trang 8VI Khai báo và toán tử gán
Mọi biến trước khi sử dụng đều phải khai báo để xác định kiểu của nó Để khai báo các
biến nguyên (Kiểu int) ta dùng từ kháo int Đối với các biến thực (Kiểu float) ta dùng từ khoá
float.
Ví dụ:
int a, b, c; /* Khai báo các biến a, b, c
thuộc kiểu int */
float x, y, z; /* Khai báo các biến x, y, z
thuộc kiểu float */
Toán tử gán có dạng:
v=e
trong đó v là biến còn e có thể là biến hay
một biểu thức toán học nào đó Tác dụng
của lệnh này là: trước tiên xác định giá trị
trong biến e và sau đó giá giá trị đó cho biến v
Trang 9VII Đưa kết quả lên màn hình
Để đưa kết quả ra màn hình ta dùng câu lệnh:
printf(dòng điều khiển,v1,v2,v3,v4)
Trong đó:
v1,v2,v3, là các biến mà giá trị của chúng cần được đưa ra màn hình
Dòng điều khiển là một hằng xâu ký tự
(dãy ký tự đặt trong dấu hai đấu nháy kép
“ “) bao gồm ba loại:
- Các ký tự cần đưa nguyên xi ra màn
hình
- Ký tự điều khiển việc chuyển xuống đầu dòng tiếp theo
- Các ký tự dùng để mô tả kiểu cách đưa
ra của các biến, gọi chúng là các đặc tả
Trang 10Các đặc tả:
- \n: ký tự điều khiển việc chuyển dòng.
- Đặc tả đối với biến số nguyên:
%[fw]d
Trong đó: fw là một số nguyên xác định độ rộng tối thiểu dành cho trường ra (số vị trí tối thiểu trần
màn hình dành cho một biến kiểu int
Khi fw lớn hơn độ dài thực tế của trường ra thì một số khoảng tróng sẽ được bổ sung vào bên trái.
Ví dụ:
int a;
void main()
{ a=456;
frintf(“%6d”, a);
getch();
}
Khí chạy chương trình thi trên màn hình có dạng:
“ 456”
Trang 11 Khi không có fw hoặc fw nhỏ hơn hay bằng độ dài thực tế của trường ra, thì độ rộng trên màn hình dành cho trường ra sẽ bằn độ dài thực tế của nó.
- Đối với biến thực cố thể dùng đặc tả:
%[fw][.pp]f
Trong đó pp là độ chính xác Nói một cách cụ thể hơn: trên màn hình sẽhiện lên một giá trị thực pp chữ số sau dấu chấm thập phân.
Nếu pp=0, biến thực được đưa ra như một số nguyên (không có dấu phân cách thập phân)
Nếu không có pp thì máy sẽ ngầm hiểu là pp=6
fw là số nguyên xác định độ rộng tối thiểu trên màn hình dành cho trường ra
Độ dài thực tế của một biến thực:
L v = L fw + pp +1(vị trí dành cho dấu chấm phân cách thập phân + 1 (vị trí dành cho dấu - nếu có)
Trang 12Ví dụ minh hoạ
Đặc tả Giá trị của
biến Dạng đưa ra màn hình
%d
%d
%5d
%5d
%8.0f
%f
%f
%8.3f
%8.3f
%.3f
%.3f
%.2f
%.2f
-456 456 456 -456 45.78 45.78 -45.78 45.78 -45.7894
45.78 -45.78 0.345 -0.345
-456 456 456 -456 45 45.780000 -45.78000 45.780 -45.789 45.780 -45.780 0.35
-0.35
Trang 13Chú ý:
Sau khi đọc những điều nói trên một câu hỏi đặt ra là làm thế nào để đưa ra các ký tự: % ‘ “ \
Câu trả lời như sau:
Khi dấu % đứng ngoài kết cấu đặc tả thì nó được xem như ký tự thông
thường nghĩa là bản thân nó được đưa ra màn hình (máy in hoặc đĩa)
Đối với các ký tự khác ta dùng thêm dấu \ đặt trước nó Nói một cách cụ
thể hơn:
Khi viết \’ thì dấu ‘ được đưa ra.
Khi viết \” thì dấu “ được đưa ra
Khi viết \\ thì dấu \ được đưa ra
Trang 14VIII Đưa kết quả ra máy in:
Cách thức đưa kết qua ra máy in hoàn toàn
tương tự như cách đưa ra màn hình Sự khác nhau chỉ ở một vài chi tiết nhỏ nhơ sau:
- Dùng lệnh:
fprintf thay cho lệnh printf
Đưa thêm tham số stdprn vào dòng điều khiển Như vậy để đưa kết quả ra máy in ta dùng câu lệnh:
fprintf(stdprn, dòng điều khiển, v1,v2,
v3, ,vk)
Trang 15IX Vào số liệu từ bàn phím:
Để đưa số liệu vào từ bàn phím hai giá trị
kiểu int và ba giá trị kiểu float có thể dùng các câu lệnh sau:
int a, b;
float c, d, e;
scanf(“%d%d%f%f%f”, &a,&b,&c,&d,&e)
Đối với câu lệnh scanf cần chú ý các điểm sau:
- Không dùng tến biến như trong câu lệnh
frinf mà dùng địa chỉ của biến Phép toán:
&biến
cho địa chỉ của biến
- Mỗi biến ứng với một đặc tả Như vậy số đặc tả bằng số biến
- Dùng đặc tả %d đối với biến nguyên
- Dùng đặc tả %f đối với biến thực
Trang 16Một cách tổng quát câu lệnh scanf có
dạng:
scanf(“t1t2 tk”,&v1,&v2, ,&vk);
Trong đó:
- v1, v2, , vk là các biến (kiểu int và kiểu float)
- t1, t2, ,tk là các đặc tả tương ứng Sự hoạt động của câu lệnh scanf:Khi gặp lệnh này máy sẽ dừng để đợi
thao tác viên vào số liệu từ bàn phím
Trang 17X Một vài chương trình đơn giản
Chương trình 1:
Viết chương trình tính chu vi và diện tích hình tròn:
void main()
{
float r, c, s;
prinf(“Chương trinh tinh chu vi và dien tich hinh
tron”);
prinf(“\n Ban kinh r = “);
scanf(“%f”, &r);
c= 2*r*3.14;
s= r*r*3.14;
printf(“\n r = %8.3f \n c = %8.3f \ns = %8.3f”, r, c,s); }
Trang 18Chương trình 2:
Viết chương trình tính x lũy thừa y
#include "stdio.h"
#include "math.h"
void main()
{
double pow(); /*khai bao ham pow() kieu double*/
double x, y, z;
printf("Chuong trinh tinh x luy thua y \n");
printf("x = ");
scanf("%lf",&x);
printf("y = ");
scanf("%lf",&y);
z=pow(x,y);/*ham pow la mot ham da co trong math.h*/ printf("\n x = %8.2f\n y = %8.2f\n z = %8.2f", x, y, z); getch();
}