Tài liệu và câu hỏi ôn tập C++

196 1.3K 3
Tài liệu và câu hỏi ôn tập C++

Đ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

Tài liệu và câu hỏi C++

Bài 1: CÁC KHÁI NIỆM CƠ BẢN 1.1 Tập ký tự dùng ngôn ngữ C: Mọi ngôn ngữ lập trình xây dựng từ ký tự Các ký tự nhóm lại theo nhiều cách khác để tạo nên từ Các từ lại 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 tốn để giải tốn Ngơn ngữ 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ừ Chú ý: Khi viết chương trình, ta khơng sử dụng ký tự khác ngồi ký tự Ví dụ lập chương trình giải phương trình bậc hai ax2 +bx+c=0, ta cần tính biểu 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ừ sử dụng để khai báo kiểu liệu, để viết toán tử câu lệnh Bảng liệt kê từ khoá C: asm break case cdecl cChar const continue default dDo double else enum eExtern far float for gGoto huge if int interrup long near pascal t rRegiste return short signed r sSizeof static struct switch tTiyped union unsigned void ef vVolatil while e Ý nghĩa cách sử dụng từ khoá đề cập sau này, ta cần ý: - Không dùng từ khoá để đặt tên cho hằng, biến, mảng, hàm, - Từ khoá phải viết chữ thường, ví dụ: từ khố khai báo kiểu ngun 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 đặt theo qui tắc sau: Tên dãy ký tự bao gồm chữ cái, chữ số gạch nối Ký tự tên phải chữ gạch nối Tên không trùng với từ khoá Độ dài cực đại tên theo mặc định 32 ta đặt lại giá trị từ tới 32 nhờ chức năng: Option-CompilerSource-Identifier length dùng TURBO C Ví dụ: Các tên đúng: a_1, delta, x1, _step, GAMA Các tên sai: 3MN Ký tự số m#2 Sử dụng ký tự # f(x) Sử dụng dấu ( ) Trùng với từ khoá te ta Sử dụng dấu cách Y-3 Sử dụng dấu Chú ý: Trong C, tên chữ thường chữ hoa khác ví dụ tên AB khác với ab Trong 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 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: 1.4.1 Kiểu ký tự - char: Một giá trị kiểu char chiếm byte (8 bit) nhớ biểu diễn ký tự thông qua bảng mã ASCII Ví dụ: Ký tự Mã ASCII 048 049 050 A 065 B 066 a 097 b 098 Có hai kiểu liệu char: kiểu char unsigned char Kiểu Phạm vi Số ký Kích biểu diễn tự thước char -128 đến 127 byte 256 unsigned đến 255 256 byte char Ví dụ sau minh hoạ khác hai kiểu liệu trên: char ch1; unsigned char ch2; ch1=200; ch2=200; Khi thực chất: ch1=-56; ch2=200; Nhưng ch1 ch2 biểu diễn ký tự có mã 200 Phân nhóm 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 (trên cột) Các ký tự nhóm nói chung khơng hiển thị hình Nhóm 2: Nhóm ký tự văn có mã từ 32 đến 126 Các ký tự đưa hình máy in Nhóm 3: Nhóm ký tự đồ hoạ có mã số từ 127 đến 255 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ố ngun khơng dấu kiểu unsigned Kích cỡ phạm vi biểu diễn chúng bảng đây: Kiểu Phạm vi biểu diễn Kích thước int -32768 đến 32767 byte unsi đến 65535 byte gned int long -2147483648 đến byte 2147483647 unsi đến 4294967295 byte gned long Chú ý: Kiểu ký tự xem 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 bảng đây: Kiểu Phạm vi biểu diễn Kích thước flo 3.4E-38 đến byte at 3.4E+38 1.7E-308 đến byte uble 1.7E+308 long 3.4E-4932 đến 10 byte double 1.1E4932 1.5 Định nghĩa kiểu liệu typedef: 1.5.1 Ý nghĩa: Sử dụng từ khoá typedef để khai báo tên kiểu liệu mới, sau dùng tên để khai báo kiểu liệu cho biến, mảng, cấu trúc, vv 1.5.2 Cú pháp: Viết từ khố typedef, sau kiểu liệu, đến tên kiểu liệu Ví dụ: typedef int nguyen; đặt tên kiểu int nguyen Sau ta dùng tên nguyen để khai báo biến, mảng kiểu int ví dụ sau : nguyen x,y, a[10],b[20][30]; Tương tự ta có: 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 Sử dụng kiểu liệu sau: 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 hoạt động chương trình 1.6.1 Tên hằng: Nguyên tắc đặt tên ta xem xét mục 1.3 Để khai báo hằng, ta sử dụng cú pháp sau: #define tên giá trị Ví dụ 1: #define MAX 1000 Tất tên MAX xuất chương trình sau thay 1000 Ví dụ 2: #define pi 3.141593 Đặt tên cho kiểu float pi có giá trị 3.141593 1.6.2 Các loại hằng: 1.6.2.1 Hằng kiểu int: Hằng kiểu int số nguyên có giá trị khoảng từ -32768 đến 32767 Ví dụ: #define Định nghiã int number1 có number1 -50 giá trị -50 #define sodem Định nghiã int sodem có 2732 giá trị 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 kiểu long: Hằng kiểu long số nguyên có giá trị khoảng từ -2147483648 đến 2147483647 Hằng kiểu long 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 xem long Ví dụ: #define sl Định nghiã long sl 8865056L có giá trị 8865056 #define s2 Định nghiã long s2 8865056 có giá trị 8865056 1.6.2.3 Hằng kiểu int hệ số 8: Hằng kiểu int hệ số viết theo cách 0c1c2c3 Ở ci số nguyên dương nhận giá trị từ đến Hằng kiểu int hệ luôn nhận giá trị dương Ví dụ: #define h8 Định nghĩa int hệ có 0345 giá trị là: 3*8*8+4*8+5=229 1.6.2.4 Hằng kiểu int hệ số 16: Hệ 16 sử dụng 16 ký tự: 0,1 ,9,A,B,C,D,E,F để biểu diễn giá trị Kí hiệu Giá trị a A 10 b B 11 c C 12 10 Con chạy đồ hoạ giữ nguyên vị trí Để vẽ đường thẳng nối từ điểm thời chạy đồ hoạ đến điểm bất có toạ độ (x,y) ta sử dụng hàm sau: void lineto(int x, int y); Con chạy chuyển đến vị trí (x,y) Để vẽ đường thẳng từ ví trí thời chạy(giả sử điểm x,y) đến điểm có toạ độ (x+dx,y+dy) ta sử dụng hàm sau: void linerel(int dx, int dy); Con chạy chuyển đến vị trí (x+dx,y+dy) Di chuyển chạy đồ hoạ: Để di chuyển chạy đến vị trí (x,y), ta sử dụng hàm sau: void moveto(int x, int y); Chọn kiểu đường: Hàm void setlinestyle(int kiểu_đường, int mẫu, int độ_dày); tác động đến nét vẽ thủ tục vẽ đường line, lineto, linerel , circle, rectangle (hàm vẽ hình chữ nhật) Hàm cho phép ta xác định ba yếu tố vẽ đường thẳng, là: Kiểu đường, bề dày mẫu tự tạo Dạng đường tham số kiểu_đường xác định Bảng cho giá trị kiểu_đường: Tên Giá trị số Kiểu đường SOLID_LINE Nét liền 182 DOTTED_LIN Nét chấm E CENTER_LIN Nét chấm gạch E DASHED_LI Nét gạch NE USERBIT_LI Mẫu tự tạo NE Bề dày đường vẽ tham số độ_dày xác định, bảng cho giá trị độ_dày: Tên Giá trị số Bề dày NORM_WIDT Bề dày bình H thường THICK_WIDT Bề dày gấp ba H Mẫu tự tạo: Nếu tham số thứ USERBIT_LINE ta tạo mẫu đường thẳng tham số mẫu Ví dụ ta xét đoạn chương trình: int pattern = 0x1010; setlinestile(USERBIT_LINE,pattern,NORM_WID TH); line(0,0,100,200); 183 Giá trị pattern hệ 16 1010, hệ là: 0001 0000 0001 0000 Bit cho điểm sáng, bit làm tắt điểm ảnh Ví dụ: Chương trình vẽ đường gấp khúc đoạn thẳng Đường gấp khúc qua đỉnh sau: (20,20),(620,20),(620,180),(20,180) (320,100) #include "graphics.h" #include "stdio.h" #include "conio.h" main() { int mh=0, mode; initgraph(&mh,&mode,"C:\\TC\\BGI"); setbkcolor(BLUE); setcolor(YELLOW); setlinestyle(SOLIDLINE,0,THICK_WIDTH); moveto(320,100); /* chạy vị trí ( 320,100 ) */ line(20,20,620,20); /* chạy vị trí ( 320,100 ) */ linerel(-300,80); lineto(620,180); 184 lineto(620,20); getch(); closegraph(); } 12.2.4 Vẽ điểm, miền: Vẽ điểm: Hàm: void putpixel(int x, int y, int color); tô điểm (x,y) theo màu xác định color Hàm: unsigned getpixel(int x, int y); trả số hiệu màu điểm ảnh vị trí (x,y) Tơ miền: Để tơ màu cho miền hình, ta dùng hàm sau: void floodfill(int x, int y, int border); Trong đó: (x,y) toạ độ điểm gọi điểm gieo Tham số border chứa mã màu Sự hoạt động hàm floodfill phụ thuộc vào giá trị x ,y, border trạng thái hình - Khi hình có đường cong khép kín đường gấp khúc khép kín mà mã màu giá trị border thì: + Nếu điểm gieo (x,y) nằm miền miền giới hạn phía đường tơ màu + Nếu điểm gieo (x,y) nằm ngồi miền miền phía ngồi đường tơ màu 185 - Trong trường hợp hình khơng có đường cong hình tơ màu Ví dụ: Vẽ đường trịn màu đỏ hình màu xanh Toạ độ (x,y) điểm gieo nạp từ bàn phím Tuỳ thuộc giá trị cụ thể x,y chương trình tơ màu vàng cho hình trịn phần hình bên ngồi hình trịn #include "graphics.h" #include "stdio.h" main() { int mh=mode=0, x, y; printf("\nVao toa x,y:"); scanf("%d%d",&x,&y); initgraph(&mh,&mode,""); if (graphresult != grOk) exit(1); setbkcolor(BLUE); setcolor(RED); setfillstyle(11,YELLOW); circle(320,100,50); moveto(1,150); floodfill(x,y,RED); closegraph(); } 12.2.5 Hình chữ nhật: Hàm: 186 void rectangle(int x1, int y1, int x2, int y2); vẽ hình chữ nhật có cạnh song song với cạnh hình Toạ độ đỉnh trái hình chữ nhật (x1,y1) toạ độ đỉnh phải hành chữ nhật (x2,y2) Hàm: void bar(int x1, int y1, int x2, int y2); vẽ tơ màu hình chữ nhật Toạ độ đỉnh trái hình chữ nhật (x1,y1) toạ độ đỉnh phải hành chữ nhật (x2,y2) Hàm: void bar3d(int x1, int y1, int x2, int y2, int depth, int top); vẽ khối hộp chữ nhật, mặt ngồi hình chữ nhật xác định toạ độ (x1,y1), (x2,y2) Hình chữ nhật tô màu thông qua hàm setfillstyle Tham số depth xác định số điểm ảnh bề sâu khối chiều Tham số top nhận giá trị hay khối chiều tương ứng có nắp khơng top=1 top=0 187 Ví dụ: Chương trình tạo nên hình chữ nhật, khối hình chữ nhật hình hộp có nắp: #include "graphics.h" main() { int mh=mode=0; initgraph(&mh,&mode,""); if (graphresult != grOk) exit(1); setbkcolor(GREEN); setcolor(RED); setfillstyle(CLOSE_DOT_FILL,YELLOW); rectangle(5,5,300,160); bar(3,175,300,340); bar3d(320,100,500,340,100,1); closegraph(); } 12.2.6 Cửa sổ (Viewport): Thiết lập viewport: Viewport vùng chữ nhật hình đồ hoạ Để thiết lập viewport ta dùng hàm: void setviewport(int x1, int y1, int x2, int y2, int clip); 188 (x1,y1) toạ độ góc bên trái, (x2,y2) toạ độ góc bên phải Bốn giá trị phải thoả mãn: ≤ x1 ≤ x2 ≤ y1 ≤ y2 Tham số clip nhận hai giá trị: clip=1 không cho phép vẽ viewport clip=0 cho phép vẽ ngồi viewport Ví dụ: setviewport(100,50,200,150,1); Lập nên vùng viewport hình chữ nhật có toạ độ góc trái cao (100,50) toạ độ góc phải thấp (200,150) (là toạ độ trước đặt viewport) Chú ý: Sau lập viewport, ta có hệ toạ độ mà góc bên trái có toạ độ (0,0) Nhận diện viewport hành: Để nhận viewport thời ta dùng hàm: void getviewsetting(struct viewporttype *vp); kiểu viewporttype định nghĩa sau: struct viewporttype { int left,top,right,bottom; int clip; }; Xóa viewport: 189 Sử dụng hàm: void clearviewport(void); Xố 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ẽ ngồi giới hạn viewport Sau đoạn chương trình thực cơng việc trên: int xc,yc; xc=getmaxx()/2; yc=getmaxy()/2; setviewport(xc,yc,getmaxx(),getmaxy(),0); Như thế, hình chia làm bốn phần với toạ độ âm dương sau: Phần tư trái trên: 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 trên: x dương, y âm 190 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ụ: 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 4π 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(),get maxy(),0); setbkcolor(BLUE); setcolor(YELLOW); 191 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: 15/10/2012, 08:54

Hình ảnh liên quan

Thứ tự ưu tiên của các phép toán được trình bày trong bảng sau: - Tài liệu và câu hỏi ôn tập C++

h.

ứ tự ưu tiên của các phép toán được trình bày trong bảng sau: Xem tại trang 50 của tài liệu.
Con trỏ void thường dùng làm tham số hình thức để nhận bất kỳ địa chỉ kiểu nào từ tham số thực - Tài liệu và câu hỏi ôn tập C++

on.

trỏ void thường dùng làm tham số hình thức để nhận bất kỳ địa chỉ kiểu nào từ tham số thực Xem tại trang 93 của tài liệu.
while (x<=10.0) /* Lập bảng giá trị */ { - Tài liệu và câu hỏi ôn tập C++

while.

(x<=10.0) /* Lập bảng giá trị */ { Xem tại trang 101 của tài liệu.
Một hình ảnh rõ nét giúp ta hình dung ra tệp là tủ   phiếu   của   thư   viện.   Một   hộp   có   nhiều   phiếu  giống nhau về hình thức và tổ chức, song lại khác  nhau về nội dung - Tài liệu và câu hỏi ôn tập C++

t.

hình ảnh rõ nét giúp ta hình dung ra tệp là tủ phiếu của thư viện. Một hộp có nhiều phiếu giống nhau về hình thức và tổ chức, song lại khác nhau về nội dung Xem tại trang 156 của tài liệu.
Việc hiển thị thông tin trên màn hình máy tính được thực hiện thông qua một vỉ mạch điều khiển  màn hình - Tài liệu và câu hỏi ôn tập C++

i.

ệc hiển thị thông tin trên màn hình máy tính được thực hiện thông qua một vỉ mạch điều khiển màn hình Xem tại trang 170 của tài liệu.
Bảng dưới đây cho các giá trị có thể của graphdriver và graphmode: - Tài liệu và câu hỏi ôn tập C++

Bảng d.

ưới đây cho các giá trị có thể của graphdriver và graphmode: Xem tại trang 171 của tài liệu.
Bảng trên cho thấy độ phân giải của màn hình phụ thuộc cả vào kiểu màn hình và mode. Ví dụ  như trong màn hình EGA nếu dùng EGALO thì độ  phân giải là 640x200 (Hàm getmaxx() cho giá trị  cực   đại   của   số   điểm   theo   chiều   ngang   của   màn  hình - Tài liệu và câu hỏi ôn tập C++

Bảng tr.

ên cho thấy độ phân giải của màn hình phụ thuộc cả vào kiểu màn hình và mode. Ví dụ như trong màn hình EGA nếu dùng EGALO thì độ phân giải là 640x200 (Hàm getmaxx() cho giá trị cực đại của số điểm theo chiều ngang của màn hình Xem tại trang 172 của tài liệu.
Các giá trị có thể của mẫu cho bởi bảng dưới đây: Bảng các giá trị có thể của mẫu - Tài liệu và câu hỏi ôn tập C++

c.

giá trị có thể của mẫu cho bởi bảng dưới đây: Bảng các giá trị có thể của mẫu Xem tại trang 176 của tài liệu.
- Trong trường hợp khi trên màn hình không có đường cong nào như trên thì cả màn hình sẽ được  tô màu. - Tài liệu và câu hỏi ôn tập C++

rong.

trường hợp khi trên màn hình không có đường cong nào như trên thì cả màn hình sẽ được tô màu Xem tại trang 186 của tài liệu.
sẽ vẽ một hình chữ nhật có các cạnh song song với các cạnh của màn hình. Toạ độ đỉnh trái trên của  hình chữ nhật là (x1,y1) và toạ độ đỉnh phải dưới  của hành chữ nhật là (x2,y2). - Tài liệu và câu hỏi ôn tập C++

s.

ẽ vẽ một hình chữ nhật có các cạnh song song với các cạnh của màn hình. Toạ độ đỉnh trái trên của hình chữ nhật là (x1,y1) và toạ độ đỉnh phải dưới của hành chữ nhật là (x2,y2) Xem tại trang 187 của tài liệu.

Từ khóa liên quan

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

Tài liệu liên quan