GIÁO TRÌNH NGÔN NGỮ LẬP TRÌNH

158 170 0
GIÁO TRÌNH NGÔN NGỮ LẬP TRÌNH

Đ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

Giíi thiƯu Tin häc lµ mét ngµnh khoa häc mòi nhọn phát triển nhanh chóng vài chục năm lại ngày mở rộng lĩnh vực nghiên cứu, ứng dụng mặt đời sống xã hội Ngôn ngữ lập trình loại công cụ giúp ngời thể vấn đề thực tế lên máy tính cách hữu hiệu Với phát triển tin học, ngôn ngữ lập trình dần tiến hoá để đáp ứng thách thức thực tế Khoảng cuối năm 1960 đầu 1970 xuất nhu cầu cần có ngôn ngữ bậc cao để hỗ trợ cho nhà tin học việc xây dựng phần mềm hệ thống, hệ điều hành Ngôn ngữ C đời từ đó, đợc phát triển phòng thí nghiệm Bell Đến năm 1978, giáo trình " Ngôn ngữ lập trình C " tác giả ngôn ngữ Dennish Ritchie B.W Kernighan viết, đợc xuất phổ biến rộng rãi C ngôn ngữ lập trình vạn Ngoài việc C đợc dùng để viết hệ điều hành UNIX, ngời ta nhanh chóng nhận søc m¹nh cđa C viƯc xư lý cho vấn đề đại tin học C không gắn với hệ điều hành hay máy nào, đ ợc gọi " ngôn ngữ lập trình hệ thống" đợc dùng cho việc viết hệ điều hành, tiện lợi cho việc viết chơng trình xử lý số, xử lý văn sở liệu Và tìm hiểu giới ngôn ngữ C từ khái niệm ban đầu Hà nội tháng 11 năm 1997 Nguyn Hu Tun Chơng khái niệm 1.1 Tập ký tự dùng ngôn ngữ C : Mọi ngôn ngữ lập trình đợc xây dựng từ ký tự Các ký tự đợc nhóm lại theo nhiều cách khác để tạo nên từ Các từ lại đợc liên kết với theo qui tắc để tạo nên câu lệnh Một chơng trình bao gồm nhiều câu lệnh thể thuật toán để giải toán Ngôn ngữ C đợc xây dựng ký tự sau : 26 chữ hoa : A B C Z 26 chữ thờng : a b c z 10 ch÷ sè : C¸c ký hiƯu to¸n häc : + - * / = ( ) Ký tự gạch nối : _ Các ký tù kh¸c : , : ; [ ] {} ! \ & % # $ DÊu c¸ch (space) dùng để tách từ Ví dụ chữ VIET NAM cã ký tù, cßn VIETNAM chØ cã ký tự Chú ý : Khi viết chơng trình, ta không đợc sử dụng ký tự khác ký tự Ví dụ nh lập chơng trình giải phơng trình bậc hai ax +bx+c=0 , ta cÇn tÝnh biƯt thøc Delta = b2 - 4ac, ngôn ngữ C không cho phép dùng ký tự , ta phải dùng ký hiệu khác để thay 1.2 Từ khoá : Từ khoá từ đợc sử dụng để khai báo kiểu liệu, để viết toán tử câu lệnh Bảng dới liệt kê từ khoá TURBO C : asm char extern break const double far case continue else float cdecl default enum for goto interrupt register sizeof tipedef volatile ý nghĩa cách sư dơng huge if long near return short static struct union unsigned while từ khoá đợc đề cập int pascal signed switch void sau này, ta cần ý : - Không đợc dùng từ khoá để đặt tên cho hằng, biến, mảng, hàm - Từ khoá phải đợc viết chữ thêng, vÝ dơ : viÕt tõ kho¸ khai b¸o kiĨu nguyên int INT 1.3 Tên : Tên khái niệm quan trọng, dùng để xác định đại lợng khác chơng trình Chúng ta có tên hằng, tên biến, tên mảng, tên hàm, tên trỏ, tên tệp, tên cấu trúc, tên nhãn, Tên đợc đặt theo qui tắc sau : Tên dãy ký tự bao gồm chữ cái, số gạch nối Ký tự tên phải chữ gạch nối Tên không đợc trùng với khoá Độ dài cực đại tên theo mặc định 32 đợc đặt lại giá trị từ tới 32 nhờ chức : Option-Compiler-Source-Identifier length dùng TURBO C Ví dụ : Các tên : a_1 Các tên sai delta x1 _step GAMA : 3MN m#2 f(x) te ta Y-3 Ký tự số Sử dụng ký tự # Sử dụng dÊu ( ) Trïng víi tõ kho¸ Sư dơng dÊu tr¾ng Sư dơng dÊu - Chó ý : Trong TURBO C, tên chữ thờng chữ hoa khác ví dụ tên AB khác với ab C, ta thờng dùng chữ hoa để đặt tên cho dùng chữ thờng để đặt tên cho hầu hết cho đại lợng khác nh biến, biến mảng, hàm, cấu trúc Tuy nhiên điều bắt buộc 1.4 Kiểu liệu : Trong C sử dụng các kiểu liệu sau : 1.4.1 Kiểu ký tự (char) : Một giá trị kiểu char chiÕm byte ( bit ) vµ biĨu diƠn đợc ký tự thông qua bảng mã ASCII Ví dô : Ký tù A B a b M· ASCII 048 049 050 065 066 097 098 Cã hai kiĨu d÷ liƯu char : kiĨu signed char unsigned char Kiểu Char ( Phạm vi biểu diễn Sè ký tù KÝch -128 ®Õn 127 256 thíc byte ®Õn 255 256 byte Signed char ) Unsigned char Ví dụ sau minh hoạ khác hai kiểu liệu : Xét đoạn ch ¬ng tr×nh sau : char ch1; unsigned char ch2; ch1=200; ch2=200; Khi ®ã thùc chÊt : ch1=-56; ch2=200; Nhng ch1 ch2 biểu diễn ký tự có mã 200 Phân loại ký tự : Cã thĨ chia 256 ký tù lµm ba nhãm : Nhóm 1: Nhóm ký tự điều khiển có mã từ đến 31 Chẳng hạn ký tự mã 13 dùng để chuyển trỏ đầu dòng, ký tự 10 chuyển trỏ xuống dòng dới ( cột ) Các ký tự nhóm nói chung không hiển thị hình Nhóm : Nhóm ký tự văn có mã từ 32 đến 126 Các ký tự đợc đa hình máy in Nhóm : Nhóm ký tự đồ hoạ có mã số từ 127 đến 255 Các ký tự đa hình nhng không in đợc ( lệnh DOS ) 1.4.2 KiĨu nguyªn : Trong C cho phÐp sử dụng số nguyên kiểu int, số nguyên dài kiểu long số nguyên không dấu kiểu unsigned Kích cỡ phạm vi biểu diễn chúng đợc bảng dới : Kiểu int unsigned int long Phạm vi biểu diễn -32768 đến 32767 đến 65535 -2147483648 ®Õn KÝch thíc byte byte byte unsigned 2147483647 ®Õn 4294967295 byte long Chó ý : KiĨu ký tù còng cã thĨ xem lµ mét dạng kiểu nguyên 1.4.3 Kiểu dấu phảy động : Trong C cho phép sử dụng ba loại liệu dấu phảy động, float, double long double Kích cỡ phạm vi biểu diễn chúng đợc bảng dới : Kiểu Float Double Phạm vi biểu diễn 3.4E-38 đến 3.4E+38 1.7E-308 đến Số chữ số Kích thớc có nghĩa đến 15 ®Õn 16 byte byte 1.7E+308 3.4E-4932 ®Õn long double 17 đến 18 10 byte 1.1E4932 Giải thích : Máy tính lu trữ đợc số kiểu float có giá trị tuyệt đối từ 3.4E-38 đến 3.4E+38 Các số có giá trị tuyệt đối nhỏ hơn3.4E-38 đợc xem Phạm vi biểu diễn số double đợc hiểu theo nghĩa tơng tự 1.5 Định nghĩa kiểu TYPEDEF : 1.5.1 Công dụng : Từ khoá typedef dùng để đặt tên cho kiểu liệu Tên kiểu đợc dùng để khai báo liệu sau Nên chọn tên kiểu ngắn gọn để dễ nhớ Chỉ cần thêm từ khoá typedef vào trớc khai báo ta nhận đợc tên kiểu liệu dùng tên để khai báo biến, mảng, cấu trúc, vv 1.5.2 Cách viết : Viết từ khoá typedef, sau kiểu liệu ( kiểu ), đến tên kiểu Ví dụ câu lệnh : typedef int nguyen; đặt tên kiểu int nguyen Sau ta dùng kiểu nguyen để khai báo biến, mảng int nh ví dụ sau ; nguyen x,y,a[10],b[20][30]; Tơng tự cho câu lệnh : typedef float mt50[50]; Đặt tên kiểu mảng thực chiều có 50 phần tử tên mt50 typedef int m_20_30[20][30]; Đặt tên kiểu mảng thực hai chiều có 20x30 phần tử tên m_20_30 Sau ta dùng kiểu khai báo : mt50 a,b; m_20_30 x,y; 1.6 Hằng : Hằng đại lợng mà giá trị không thay đổi trình tính toán 1.6.1 Tên : Nguyên tắc đặt tên ta xem xét mục 1.3 Để đặt tên hằng, ta dùng dòng lệnh sau : #define tên giá trị Ví dụ : #define MAX 1000 Lúc này, tất tên MAX chơng trình xuất sau đợc thay 1000 Vì vậy, ta thờng gọi MAX tên hằng, biểu diƠn sè 1000 Mét vÝ dơ kh¸c : #define pi 3.141593 Đặt tên cho float pi có giá trị 3.141593 1.6.2 Các loại : 1.6.2.1 Hằng int : Hằng int số nguyên có giá trị khoảng từ -32768 đến 32767 Ví dụ : #define number1 Định nghiã int number1 có giá trị -50 #define sodem -50 Định nghiã int sodem có giá trị 2732 2732 Chú ý : Cần phân biệt hai 5056 5056.0 : 5056 số nguyên 5056.0 thực 1.6.2.2 Hằng long : Hằng long số nguyên có giá trị khoảng từ -2147483648 đến 2147483647 Hằng long đợc viết theo cách : 1234L 1234l ( thêm L l vào đuôi ) Một số nguyên vợt miền xác định int đợc xem long Ví dụ : #define sl Định nghiã long sl có giá trị 8865056L #define sl 8865056 Định nghiã long sl có giá trị 8865056 8865056 1.6.2.3 H»ng int hÖ : H»ng int hÖ đợc viết theo cách 0c1c2c3 ci số nguyên dơng khoảng từ đến Hằng int hệ luôn nhận giá trị dơng Ví dụ : #define h8 0345 Định nghiã int hệ có giá trị 3*8*8+4*8+5=229 1.6.2.4 Hằng int hƯ 16 : Trong hƯ nµy ta sư dơng 16 ký tự : 0,1 ,9,A,B,C,D,E,F Cách viết a A b hc B c hc C d hc D e E f F Giá trị 10 11 12 13 14 15 H»ng sè hƯ 16 cã d¹ng 0xc1c2c3 hặc 0Xc1c2c3 ci sè hƯ 16 VÝ dơ : #define h16 0xa5 #define h16 0xA5 #define h16 0Xa5 #define h16 0XA5 Cho ta hắng số h16 hệ 16 có giá trị nh Giá trị chúng hệ 10 lµ : 10*16+5=165 1.6.2.5 H»ng ký tù : H»ng ký tự ký tự riêng biệt đợc viết hai dấu nháy đơn, ví dụ 'a' Giá trị 'a' mã ASCII chữ a Nh giá trị 'a' 97 Hằng ký tự tham gia vào phép toán nh số nguyên khác Ví dụ : '9'-'0'=57-48=9 Ví dụ : #define kt 'a' Định nghiã ký tự kt có giá trị 97 Hằng ký tự đợc viết theo cách sau : ' \c1c2c3' c1c2c3 số hệ mà giá trị b»ng m· ASCII cđa ký tù cÇn biĨu diƠn VÝ dụ : chữ a có mã hệ 10 97, ®ỉi hƯ lµ 0141 VËy h»ng ký tù 'a' viết dới dạng '\141' Đối với vài ký tự đặc biệt ta cần sử dụng cách viết sau ( thêm dấu \ ) : Cách viÕt '\'' '\"' '\\' '\n' Ký tù ' " \ \n (chun dßng ) '\0' '\t' '\b' '\r' \0 ( null ) Tab Backspace CR ( đầu dòng ) LF ( sang '\f' trang ) Chó ý : Cần phân biệt ký tự '0' '\0' Hằng '0' ứng với chữ số có mã ASCII 48, cßn h»ng '\0' øng víi kýtù \0 ( thêng gäi lµ ký tù null ) cã m· ASCII lµ Hằng ký tự thực số nguyên, dùng số nguyên hệ 10 ®Ĩ biĨu diƠn c¸c ký tù, vÝ dơ lƯnh printf("%c%c",65,66) sÏ in AB 1.6.2.5 H»ng x©u ký tù : Hằng xâu ký tự dãy ký tự đặt hai dấu nháy kép Ví dụ : #define xau1 "Ha noi" #define xau2 "My name is Giang" Xâu ký tự đợc lu trữ máy dới dạng bảng có phần tử ký tự riêng biệt Trình biên dịch tự động thêm ký tự null \0 vào cuối xâu ( ký tự \0 đợc xem dấu hiệu kết thúc xâu ký tự ) Chú ý : Cần phân biệt hai 'a' "a" 'a' ký tự đợc lu trữ byte, "a" xâu ký tự đợc lu trữ mảng hai phần tử : phần tử thứ chứa chữ a phần tử thứ hai chứa \0 1.7 Biến : Mỗi biến cần phải đợc khai báo trớc đa vào sử dụng Việc khai báo biến đợc thực theo mÉu sau : 10  Xãa viewport : Sư dơng hàm : void clearviewport(void); Xoá hình, đa chạy tạo độ (0,0) hình : Sử dụng hàm : void cleardevice(void); Toạ độ âm dơng : Nhờ sử dụng viewport viết chơng trình đồ hoạ theo toạ độ âm dơng Muốn ta thiết lập viewport cho clip để vẽ giới hạn viewport Sau đoạn chơng trình thực công việc : int xc,yc; xc=getmaxx()/2; yc=getmaxy()/2; setviewport(xc,yc,getmaxx(),getmaxy(),0); Nh thế, hình đợc chia làm bốn phần với toạ độ âm dơng nh sau : Phần t trái : x ©m, y ©m x : tõ -getmaxx()/2 ®Õn y : từ -getmaxy()/2 đến Phần t trái dới : x âm, y dơng x : từ -getmaxx()/2 đến y : từ đến getmaxy()/2 Phần t phải : x dơng, y âm x : từ đến getmaxx()/2 y : từ -getmaxy()/2 đến Phần t phải díi : x d¬ng, y d¬ng x : tõ ®Õn getmaxx()/2 y : tõ ®Õn getmaxy()/2 VÝ dô : 144 Chơng trình vẽ đồ thị hàm sin x hệ trục toạ độ âm dơng Hoành độ x lấy giá trị từ -4 đến Trong chơng trình có sử dụng hai hàm settextjustify outtextxy ta đề cập phần sau #include "graphics.h" #include "conio.h" #include "math.h" #define TYLEX 20 #define TYLEY 60 main() { int mh=mode=DETECT; int x,y,i; initgraph(mh,mode,""); if (graphresult!=grOK ) exit(1); setviewport(getmaxx()/2,getmaxy()/2,getmaxx(),getmaxy(),0); setbkcolor(BLUE); setcolor(YELLOW); line(-getmaxx()/2,0,getmaxx()/2,0); line(0,-getmaxy()/2,0,getmaxy()/2,0); settextjustify(1,1); setcolor(WHITE); outtextxy(0,0,"(0,0)"); for (i=-400;i

Ngày đăng: 05/09/2019, 14:45

Mục lục

  • Hà nội tháng 11 năm 1997

  • 1.1. Tập ký tự dùng trong ngôn ngữ C :

  • 1.4.1. Kiểu ký tự (char) :

  • Phân loại ký tự :

  • 1.4.3. Kiểu dấu phảy động :

  • 1.5. Định nghĩa kiểu bằng TYPEDEF :

  • 1.6.2.5. Hằng xâu ký tự :

  • Vị trí của khai báo biến :

  • Khởi đầu cho biến :

  • Lấy địa chỉ của biến :

  • Lấy địa chỉ một phần tử của mảng :

  • Khởi đầu cho biến mảng :

  • Khởi đầu của một mảng char có thể là

  • Các lệnh vào ra

  • 2.1. Thâm nhập vào thư viện chuẩn :

  • 2.2. Các hàm vào ra chuẩn - getchar() và putchar() - getch() và putch() :

  • 2.3. Đưa kết quả lên màn hình - hàm printf :

  • Chuỗi điều khiển có thể có các ký tự điều khiển :

  • Dạng tổng quát của đặc tả :

  • Các ký tự chuyển dạng và ý nghĩa của nó :

Tài liệu cùng người dùng

Tài liệu liên quan