1. Trang chủ
  2. » Giáo án - Bài giảng

Giáo trình nhập môn tin học

120 1 0
Tài liệu được quét OCR, nội dung có thể không chính xá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

Thông tin cơ bản

Định dạng
Số trang 120
Dung lượng 7,71 MB

Nội dung

Trang 2

TAI LIEU THAM KHAO

1 Giáo trình tin hoc (tập 1, 2), Hồ Sĩ Đàm & Lê Khắc Thành, NXB DHQGHN 2 Hướng dẫn thực hành và ứng dụng Windows XP, Nguyễn Tiến, Đặng Xuân

Hường & Nguyễn Văn Hồi, NXB Thống kê

3 Ngơn ngữ lập trình C, Quách Tuần Ngọc , Nhà xuất bản Giáo dục

Trang 4

Khoa CNTT ~ Truong CDKT Ly Tu Trong [ itt; }while (i<=MAX) i

printf("Tong cac so le: d\n", odd); printf ("Tong cac so chan: td\n", even) ;

printf ("Tong day so: $d", sum) ; getch () ; Két qua: SN x0 m°.J101104|JN TT CC (Fl x! ae

Tong cac so le: 2589 tong cac so chan: 2558

ong day so: 5@58 aa uy BAI TAP 1 Viét chương trình giải và biện luận phương trình bậc 2 với các hệ số a, b, c và nghiệm x là các số thực : ax? +bx+c=0

2 Viét chương trình nhập bán kính r và chiều cao ? của một hình cầu Nhập yêu cầu tính tóan các thông số của hình cầu gồm:

'A' hoặc ‘a’ (Area): tinh diện tích hình cầu 4 = 7-7?

“C° hoặc *c' (Circumference): tinh chu vi hình cầu € = 2 Tr

-V' hoặc *v' (Volume): tínhthể tích hình cầu ‘= 22 -}

3 Viết chương trình dùng các cấu trúc lặp for, while, do while dé in dãy các số

nguyên lẻ nhỏ hơn 100 theo chiều ngược với mẫu sau: 99, 97, 95, .,3, 1

4 Viết chương trình tính tổng và tích của dãy số gồm n>0 phân tử Trong đó n được nhập

vào từ bàn phím khi thực hiện chương trình: 117

Trang 5

Khoa CNTT — Trường CĐKT Lý Tự Trọng void main (void) { int i=l;

printf ("Cac so nguyen tu 1 %d:\n\n", MAX); do printf ("%6d", i++); while (i<=MAX) ; getch () ; } b Vidu2

Trang 6

Khoa CNTT - Trường CĐKT Lý Tự Trọng HI CẤU TRÚC do while 1, Cú pháp

do statement; while (condition) ;

Thuc hién phat biéu statement khi condi tion van còn có tri true do{ compound statement; }while (condition) ;

condition: Biểu thức điều kiện bất kỳ bao gồm các tóan tử so sánh, logic, bitwise với kết

quả là một giá trị logic true (1) hoặc £a1se (0) Biểu thức điều kiện conđi tion phải được viết trong cặp ngoặc “ ( ) ”

statement: Phat biéu bat ky

compound statement: Phat biéu phttc hay khối lệnh, phải được bao trong cặp ngoặc

nhọn { } LƯU Ý:

- Cau tric do while con gọi là cầu trúc lặp kiểm tra điều kiện sau (pre-test loop) vì điều kiện được kiểm tra sau khi thực hiện statement

- statement được thực hiện tối thiểu 1 lần cho dù lần kié tra condi tion đầu tiên co tri true - V6i phát biểu: do ; while(1) ;

SẼ tạo ra việc lặp vô tận, và chỉ có thê kết thúc bằng một trong các phát biéu break,

goto hodc return 2 Ví dụ

a Vidul

Viết lại chương trình in ra màn hình các số nguyên từ 1 đến 100, mỗi giá trị in ra trong 6 vi

Trang 7

Khoa CNTT - Trường CĐKT Lý Tự Trọng { int i, sum, odd, even; 13 = 1; odd = even = sum = 0; while (i<=MAX) { sumt+=i ; if (i%2!=0) // 1 la so 1e odd+=i ; else /⁄/ i la so chan event=i; itt; }

printf ("Tong cac so le: %d\n", odd);

printf ("Tong cac so chan: %d\n", even);

printf ("Tong day so: %d", sum); getch () ; } Kết quả: | c+ “D:\Hai-GiaoTrinh)KTLTSEXSe#fi

ong cac so chan: 2558 Jong day so: 5858

Trang 8

Khoa CNTT - Trường CĐKT Lý Tự Trọng | #include <stdio.h> #include <conio.h> #define MAX 100 void main (void) { int i=1; printf ("Cac so nguyen tu 1 %d:\n\n", while (i<=MAx) printf ("$6d", i++); getch(); MAX) ; b Vidu2

Trang 9

Khoa CNTT — Truong CDKT Ly Tu Trong 1 CAU TRUC while

1 Cú pháp

while (condition) statement;

khi giá trị của biéu thirc condition con 1a true thi thuc hién statement while (condition) { compound statement;

condition: Biêu thức điều kiện bất kỳ bao gồm các tóan tử so sánh, logic, bitwise với kết quả là một giá trị logic true (1) hoặc fa1se (0) Biểu thức điều kiện condition phải

được viết trong cặp ngoặc “( ) ” statement: Phát biêu bất kỳ

compound statement: Phát biểu phức hay khối lệnh, phải được bao trong cặp ngoặc

nhọn { }

LƯU Ý:

-_ Cấu trúc whi1le còn gọi là cầu trúc lặp kiểm tra điều kiện trước (pre-test loop) vì điều kiện được kiểm tra trước khi thực hién statement

- statement c6 thé không được thực hiện lần nào nếu lan kié tra condition ddu tién cé tri false - Với phát biểu: while (1) ;

sẽ tạo ra việc lặp vô tận, và chỉ có thể kết thúc băng một trong các phát biểu break, goto hodc return

2 Vidu

a Vidul

Viết lại chương trình in ra màn hình các số nguyên từ 1 đến 100, mỗi giá trị in ra trong 6 vị trí, dùng cầu tric while thay vi for

Trang 10

Khoa CNTT - Trường CĐKT Lý Tự Trọng #include <stdio.h> #include <conio.h> #define MAX 100 void main (void) {

int i, sum, odd, even;

odd = even = sum = 0;

for (i=1; i<=MAX; i++) { sumt+=i ; if (i%2!=0) // ilasole odd+=i ; | else // i la so chan event=1;

Printf ('"Tong cac so le: d\n", odd);

printf ("Tong cac so chan: d\n", even) ;

printf ("Tong day so: $d", sum); getch();

Kết quả:

DI

ong cac so le: 2500 ong cac so chan: 2550

Hong đau so: 50858

Trang 11

Khoa CNTT - Trường CĐKT Ly Tự Trọng

sẽ tạo ra việc lặp vô tận, và chỉ có thê kết thúc bằng một trong các phát biểu break, goto hoặc return

-_ Cấu trúc lặp for còn được gọi là câu trúc lặp cố dinh (fixed loop) vi s6 lan lap hoan tòan được xác định 2 Ví dụ a Vidul In ra màn hình các số nguyên từ | dén 100, mỗi giá trị in ra trong 6 vị trí #include <stdio.h> #include <conio.h> #define MAX 100 void main (void) { int i;

printf ("Cac so nguyen tu 1 %d:\n\n", MAX);

Trang 12

Khoa CNTT - Truong CDKT Ly Tự Trọng BÀI 17: CÁU TRÚC LẶP I CAU TRUC LAP FOR 1 Cú pháp for(init expression; cond expression; loop_expression) statement;

Lặp lại việc thực hiện phát biêu statement với số lần xác định tùy thuộc vào init expression va cond expression for(init expression; cond expression; loop_expression) { compound statement;

init expression: Biéu thit thiét lập giá tri khởi động đếm số lần của vòng lặp, biểu thức này không bị ràng buộc về kiểu dữ liệu

cond_ expzession: Biểu thức điều kiện để kết thúc vòng lặp Biểu thức phải có kiểu số

học hoặc con trỏ (pointer) và giá trị biểu thức được định giá mỗi khi bắt đầu một lần lặp va thường có kiểu Ï logic (false/true)

loop _ expression: Biểu thức dùng để định giá sau mỗi lần lặp và dùng cho bước lặp sau trong biểu thức điều kiện cond_expression Biểu thức này không bị hạn chế về kiểu

đữ liệu

Khi trong vòng lặp for có phát biểu continue thì 1oop_expression được định gia va điều khiển được đưa về đầu vòng lặp Khi có phát biểu break trong vòng lặp fo+ thì

loop_expression không được thực hiện và điều khiển được đua ra sau for

Trang 14

Khoa CNTT- —-< CĐKT by Ty W Trọng b Ví dụ2 exadecimal: @xf5a? a mo “Ds TH t so nguyen: 52935 e dem (8/10/16): 3

He dem 3 khong xac dinh

Viết lại chương trình ví đụ 2 ở mục 1.2.2 dùng cấu tric switch thay vì dùng cầu trúc if #include <stdio.h> #include <conio.h> #define ADD #define SUB #define MUL #define DIV #define ERR_IN #define ERR OP void main (void) { float a,b; char op; bet rf

"Toan tu khong hop le" "Phep chia cho zero”

Trang 16

Khoa CNTT - Trường CĐKT Lý Tự Trọng Case constant2: statement2; [break ; ]

(default: default statement; ]

expression = constant]: thuc hién statement]

expression = constant2: thuc hién statement2

expression = default ¢ (constant1, constant2, ): thuc hién default statement

expression: Biéu thitc cho két quả là kiểu đữ liệu đếm được, nghĩa là các giá trị rời rac kiéu char, int, long

coensCanL1, constant2, : Giá trị kết quả tương ứng của biểu thức expression

statement1, statement2, default_statement: Phát biểu bất kỳ

default: Trường hợp biểu thức expression cho kết quả khác với các hằng

_ Constan£1, constant2, đã liệt kê

break: Thông thường sau mỗi khối case cần có một phát biêu break nhằm chuyên điều khiến ra ngòai switch Điều này sẽ làm cho các phát biểu ở các khối case sau đó không được thực hiện Hãy thử bỏ các phát biểu break trong các ví dụ bên đưới để thấy tác dụng

của nó

2 Ví dụ

a Vi dụ] ‘

Trang 17

Khoa CNTT — Truong CDKT Ly Tu Trọng if (b!=0) printf ("%5.2£ $c $%5.2£ $6.2f\n", a, op, b, | a/b) ; else printf ("%5.2f %c %5.2f = %s\n", a, op, b, ERR_DIV) ; else printf (ERR_OP) ; getch () ; oan tu + ~ * />: &

oan tu khong hop lem

Nhap 2 so bat ky: 42 os

oan tu + — * />: /

42.66 ¢ 8.00 = Phep chia cho zero

Trang 18

Khoa CNTT - Trường CĐKT Lý Tự Trọng

Nhập vào 2 giá trị số thực bất kỳ và 1 ký hiệu tóan từ số hoc (+, -, *, /), tinh va in ra man

hình kết quả biểu thức tương ứng #include <stdio.h> #include <conio.h> #define ADD ry #define SUB ta! #define MUL tae

#define DIV VÀ

#define EBRR OP "Toan tu khong hop le" #define ERR_DIV "Phep chia cho zero" void main (void)

{

float a,b;

char op;

printf£("Nhap 2 so bat ky: ");

Trang 19

Khoa CNTT —- Truong CDKT Ly Tu Trong

statement: Mét phat biéu bat ky va co thé la phép gan, biéu thitc, phép gọi hàm, và cũng có thể là một cầu trúc điều khiển bất kỳ Kết thúc một phát biểu phải có một dấu chấm phẩy

é6 Q32 af

compound statement: Phát biểu phức hay khối lệnh Khi có từ 2 phát biểu trở lên trong một cấu trúc điều khiển, thì các phát biểu này phải được bao trong cặp ngoặc nhọn “{ }” Kết thúc một compound statement khéng c6 ddu cham phay 2 Ví dụ a Vidul Nhập 2 giá trị số kiểu int, kiểm tra và in ra số lớn hon theo dang max (a,b) =? #include <stdio.h> #include <conio.h> void main(void) { int a,b;

printf ("Nhap 2 so nguyen bat ky: ");

Trang 20

Khoa CNTT - Trường CĐKT Lý Tự Trọng 1 Viết chương trình nhập vào chiều đài và chiều rộng của một hình chữ nhật, tính và in ra màn hình: - _ Chu vi hình chữ nhật - _ Diện tích hình chữ nhật

2 Viết chương trình nhập một chữ hoa và đổi sang chữ thường

3 Viết chương trình nhập một chữ thường và đổi sang chữ hoa

4 Viết chương trình nhập vào một số nguyên là tổng số giây (second), đôi ting số gidy sang giờ, phút, giây và in ra màn hình theo dang hh:mm:ss

5 Viét chuong trinh nhap mét sé unsigned int và đếm tổng số bit 1 của số đã nhập

BÀI 16: CẤU TRÚC ĐIỀU KIỆN I CÁU TRÚC if else 1 Cú pháp if(condition) statement ; néu condition c6 giá trị true thi thực hiện statement if (condition) sÈtatement 1 ; else statement2;

néu condition c6 giá tri true thi thuc hién statement] , ngược lại (£a1 se) thì thực hiện statement2 if (condition) { compound statement; }

condition: Bieu thức điêu kiện bất kỳ bao gôm các tóan tử so sánh, logic, bitwise với kết

quả là một giá trị logic true (1) hoặc £a1se (0) Biểu thức điều kiện condition phải được

viết trong cặp ngoặc “ ( ) ”

101

Trang 22

Khoa CNTT - Trường CĐKT Lý Tự Trọng IV HÀM getch () 1 Cú pháp #include <conio.h> int getch (void) ;

Tuong tu nhu ham getche(), tuy nhiên hàm getch() không hiện ký tự đã nhập lên màn hình Hàm này rất hữ dụng khi cần kiểm tra xem phím nào trên bàn phím được nhắn dé quyết định

thực hiện tác vụ tiếp theo 2 Ví dụ

Trang 23

Khoa CNTT - Trường CĐKT Lý Tự Trọng Kết qủa: ị hu vi: 21.72? Dien tich: 32.56 6m qo i MZ Il HAM getche () 1 Cú pháp #include <conio.h> int getche (void) ;

Dùng đề đọc một ký tự từ bàn phím và trả về ký tự đó, đông thời ký tự nhập sẽ xuất hiện trên man hinh tai vi tri cursor

2 Vidu

Chương trình đơn giản dưới đây cho phép lặp ởi lặp lại việc nhận | phim tir ban phim và in ra màn hình ký tự tương ứng va ma ASCII cua ky tự đó (được ghi trong ngoặc) Chương

Trang 24

Khoa CNTT - Trường CĐKT Lý Tự Trọng uoi: 28 tong luong: 58,” hong tin da nhap:

Trang 25

Khoa CNTT - Trường CDKT Ly Ty Trong 2 Ví dụ: ` Ví dụ 1; Nhập vào thông tin của bạn gồm tên, tuổi và trọng lượng, sau đó in ra trên 1 dòng Các thông tin đó #include <stdio.h> #include <conio.h> void main (void) {

char name[30]; //Chuoi chua Ten int age; //Tuoi

float weight; //Trong luong

Pprintf ("Nhap thong tin cua ban:\n") ;

printf ("Ten: Wy;

scanf ("$[A-Za-z]", name) ; //Chi chap nhan chu cai

printf ("Tuoi: ");

scanf ("%$d", Gage) ; //So nguyen printf ("Trong luong: ");

scanf("%f", &weight) ; _ #/§o thuc float printf("\nThong tin da nhap:\n") ;

Trang 26

Khoa CNTT ~ Truong CDKT Ly Tự Trọng

Ký tự khỏang trắng (whitespace) được định nghĩa gồm: khỏang tréng (blank), tab ngang 1£

(horizontal tab), tab đứng ‘\W' (vertical tab), vé đầu dòng "' (carriage return), dòng mới ‘\n' (newline) hay kéo trang "f' (form feed) Các ký tự trắng sẽ được bỏ qua khi scanfQ đọc dữ liệu từ thiết bị nhập

Ký tự không trắng (non-whitespace) bao gồm các ký tự không thuộc tập các ký tự trắng đã

nêu trên

scanfQ có khả năng kiểm tra sự hợp lệ của các ký tự thuộc một tập xác định được ghi trong

cặp dẫu ngoặc vuông [ ] Những ký tự ghi trong cặp dẫu ngoặc này được xem là hợp lệ |

Vidu:

scanf(" %[A-Za-z]"", myString);

sẽ chỉ chấp nhận các chữ cái A-Z và a-z, bat ky 1 ký tự khác không thuộc tập này sẽ bị bỏ qua và không được ghi vào chuỗi myString Nếu muốn cho phép có khỏang trồng trong

chuỗi nhập, ta ghỉ thêm khôang trống vào tập hợp

scanf("%[ A-Za-z]", myString);

Ngòai ra nếu ky tự đầu tiên trong cặp ngoặc vuông là dấu '^' thì scanf() sẽ chỉ chập nhận những ký tự không thuộc tập ký tự ghi trong cặp ngoặc này Chẳng hạn

scanf('%[^\n]", myString);

sẽ chấp nhận tất cả các ky ty, ngoai trừ ký tự newline '\n’

Giá trị trả về của hàm scanfQ tùy thuộc vào tình trạng nhập liệu trước đó:

Số lượng argument da duoc doc, néu không có lỗi 0, nếu không có argument nào được đọc

EOF, néu đọc đến cuối file Vị dụ: | if(scanf("%od %f"", &intNum, &floatNum) == 2) h

size Kích thước tôi đa của ving nhap (input field)

h Giá trị nhập được chứa theo dạng short int

| Giá trị nhập được chứa theo dạng long int hoặc double L Giá trị nhập được chứa theo dạng long double

* Vùng nhập bị bỏ qua và không được ghi

Trang 27

Khoa CNTT - Trường CĐKT Lý Tự Trọng Kết quả: men 4.123847: 1234.123047: 1234.123605 : 1234.1230427 : 1234.12385: 1234.123085 : :1234.12305: :1234.1223042: : 1234.123085: H HÀM scanf () 1 Cú pháp #include <stdio.h> int scanf( const char *format, argument );

Hàm seanf() nhan dữ liệu từ thiết bị nhập chuẩn (STDIN) theo dinh dang format va ghi vao buffer Chudi format bao gém ky tu diéu khién (control character), ky tu trang (whitespace)

va ky tu khac trang (non-whitesapce) Các định dạng được ghi trong cặp ngoặc kép ("" "'), Bảng dưới đây liệt kê một số ký tự điều khiển cho scanfQ Yc Ky tu don %d Số nguyên decimal (decimal integer) %i Số nguyên (integer) Ze, Yof, Yog Số có đấu chấm động (floating point) %o Số bát phan (octal) %s Chuỗi ký tự (string)

%ox Số thập olục phan (hexadecimal)

Trang 28

Khoa CNTT - Trường CDKT Lý Tự Trọng

Cánh trai (left justify)

+ Dau + hoặc — trước giá trị

Space Số dương với khỏang trang trước giá trị

0 Điền số 0 cho giá trị số

# Ký hiệu hệ thống đếm trước giá trị số: 0 với octal chấm thập phân với số thực , Ox vdi hexadecimal, d4u

width Kích thước tôi thiểu của giá trị xuất

prec Số số lẻ sau dấu chấm thập phân

h Thê hiện sé short int

| Thê hiện số long int (1đ) hoặc double (if)

Trang 29

Khoa CNTT ~ Truong CDKT Ly Ty Trong

BAI 15: CAC HAM NHAP XUAT I HAM print () 1 Cú pháp #include <stdio.h> int printf( const char *format, argument, );

Ham printf() xuat dit kiéu theo định dạng ƒ/ormat ra thiết bị xuất chuẩn (STDOUT), théng thường là màn hình Chuỗi format xdc dinh các ký tự sẽ được in ra màn hình và mã định dạng (control character) dữ liệu Các định dạng được ghi trong cặp ngoặc kép (" "), Bảng dưới đây liệt kê một số định dạng cho printf() Z[flag][width][.prec][hlL]control_character _ _ %%c | ¬ Ký tự

“ed Số nguyên có đấu (signed integer) dang decimal

%i Số nguyên cé dau (signed integer) dang decimal

“oe Số dạng khoa hoc (scientific notation) với chữ thường "e" (exponent) %E Số dạng khoa học (scientific notation) với chữ hoa "E" (exponent) %f Số thực với dấu chấm động (floating point)

“ag Dạng ngắn của %4e hay %f

%G | Dạng ngắn của %E hay %f %0 Số bát phân (octal)

%s Chuỗi ky ty (string)

“ou Số nguyên không dấu (unsigned integer)

"Xx Số thập lục phân không dấu (unsigned hexadecimal) với chữ thường %X Số thập lục phân không dấu (unsigned hexadecimal) với chữ hoa

“op Con tro

Trang 30

Khoa CNTT - Trường CĐKT Lý Tự Trọng

BÀI TẬP

1 Viết chương trình in ra màn hình hình chữ nhật gồm các dấu * (không dùng vòng lặp)

2 Sửa lại chương trình Listingl.epp ở trang 6 để tính tích và thương của 2 giá trị (đối với

phép chia cần kiểm tra số chia khác không)

Trang 32

Khoa CNTT ~_ Truong CDKT Ly Tu Trong

2 Cach khai bao va goi ham

Một hàm được xác định thông qua các yếu tố sau:

— Tén ham (function name)

— Danh sách tham só (parameters) và kiểu của tham số (data type)

—_ Tham số vào (input parameters) va tham s6 ra (output parameters) — Kiểu dữ liệu trả về của ham (return data type)

Khai báo Prototype cia ham:

return type Junction_name(parameter list);

int Maxvalue(int a, int b);

float add(float x, float b); STUDENT* GetStudentList(void); Lời gọi hàm; Junction_name(parameter list, Vidu 1: int a=5, b=7; float sum; Printf("max(%d,%d) = %d", a, b, maxvalue(a,b));

sum = add((float)a, (float)b);

Vidu 2: Nhập 2 gid trị thực a và b, in ra số max, min và tôn 8 của chúng #include <stdio.h> #include <conio.h>

float MaxVal(float a, float b); float MinVal(float a, float b); float Sum(float a, float b);

89

Trang 33

Khoa CNTT - Trường CĐKT Lý Tự Trọng

Các tập tin header thường dùng đến gồm stdio.h, conio.h, stdlib.h, string.h, math.h và

time.h

Danh sách các hàm thường dùng được định nghĩa trong các tập tin header nêu trên được mô

tả trong phần phụ lục cuối tài liệu 1 Tập tin header

Các tập tin header trong C/C++ là một thành phân rất quan trọng không thể tách rời từ giai

đoan thiết kế chương trình đến gian đọan biên dịch và liên kết vdé tao ra tập tin đối tượng (.obj) và tập tin nhị phân thi hành được (.exe, đll) Các mô tả dữ liệu, các chỉ dẫn biên dịch,

các khai báo prototype hàm thường được bố trí trong các tập tin header

Khi muốn sử dụng các hằng, biến, hàm hay các mô tả khác trong một tập tin header, ta cần

viết dẫn hướng đến tập tin header đó tại đầu chương trình trước cài đặt hàm main() và khai

báo dữ liệu

Đối với các tập tin header được phân phôi theo phần mềm ngôn ngữ ta viết dẫn hướng như sau (lưu ý cuối dòng không có đấu chấm phây):

#include <header_/file>

Đối với tập tin header do người dùng viết thường được đặt trong thư mục làm việc hiện thời,

Trang 34

Khoa CNTT ~ Truong CDKT Ly Tu Trong

I CHUYEN DOI KIEU Di LIEU

Trong quá trình viết chương trình, ta phải xử lý trên nhiều kiểu dữ liệu (data type) khac nhau,

và trong nhiều trường hợp việc chuyển đổi các giá trị từ kiểu dữ liệu này sang kiểu dữ liệu khác là rất cần thiết, C/C++ thực hiện phép chuyển kiểu dữ liệu thông qua tóan tử type cast

bằng cách viết tên kiểu dữ liệu đích trong dấu ngoặc trước tên biến, hằng, hàm hay biểu thức '

nguồn

(typecast)item

typecast: Kiéu đữ liệu đích

item: hang, bién, hàm, biểu thức muốn chuyên kiểu Vị dụ: #include <stdio.h> #include <conio.h> void main(void) { int a=25, b, c; | float x=14,25, y; ” b=(int)x; c=(int)((float)a/x); y=(float)a; printf("a=%d, b=%d, c=%đd, x=%5.2f, y=5.2f", a, b, €, X, V); getch(); | —_ | Kết qủa: a=25, b=14, c=], x=14.25, y=25.00

IV CAC HAM CO-SAN TRONG C/C++

C/C++ tich hop sin một số lượng lớn các hàm (predefined functions) dé thực hiện các tác vụ khác nhau, các hàm được phân chia theo từng nhóm xử lý khác nhau và được định nghĩa và phân phối trong các tập tin header dj kèm với đuôi ".h" Muốn dùng hàm nào ta cần dùng dẫn hướng (directive) #include <header_file> ghi rõ tên tập tin header có định nghĩa hàm đó

Dé biết thêm chỉ tiết về các tập tin header, xem phụ lục cuối tài liệu

Trang 35

Khoa CNTT - Trường CĐKT Lý Tự Trọng Sàn CAL EPA Eee pean iy

: NẠP a Ee REPRE RRO ee Ae a ONES Sees ee

O | Nhóm biêu thức con (a*b+c)/(a*d)

{] Trich phan tir a(i] voi bién a la m6t array và bién i la index Thuộc tính của student.name, student.age struct/class Con trỏ thuộc tính của : -> student->name, student->age struct/class & Địa chỉ của &a cho địa chỉ của biến a

Con trỏ/giá trị biên con ¬ eek

*a cho giá trị của biên con trỏ a trỏ = Gan giá tri a=12; ghi gia tri hang 12 vao biéna += - , a=2; *= Các tóan tử sô học ghép ; j a*=Š5; tương tự với a=a*5; %4=

II LENH VA KHOI LENH

~ Trong C/C++ mai lệnh đơn (single statement) là một khai báo hay phát biêu được ghi trên 1 dong đơn và kết thúc bằng dâu chấm phây (;)

~ Trong khi đó, một khối lệnh (statement block/compound statemen?) là tập các lệnh: đơn và được bao trong cặp ngoặc nhọn ({})

Vi du:

int count=5; // Lénh don

Trang 36

Khoa CNTT - Trường CĐKT Lý Tự Trọng a7 TH | Tăng | don vj “+a 06 két qua 6 | = | Giảm 1 don vi a Có kết quả 4

Lưu ý: Giả sử a là biễn kiểu số nguyên thì:

+†a và a++ đều tăng giá trị biến a lên | đơn vị, tuy nhiên có sự khác biệt Chúng ta hay xem 2 ví dụ đơn giản sau: #include <stdio.h> #include <stdio.h> #include <eonio.h> #include <conio.h> void main(void) void main(void) { { int a=5; int a=5; printf("a = %d", ++a); printf("a = %d", at+); getch(); getch(); } } ' Kết quả: a= 6 Cũng tương tự như vậy đôi với a và a Kết quả: a = 5 # * oA sa © Tốn tử điều kiện (condition ? expr]: expr2) condition: Biêu thức cho kết quả logic TRUE hoặc FALSE, trong đó sử dụng các tóan tử so sánh như đã nêu ở mục 1.2.]

exprl: Biểu thức, biến, hằng, hàm bất kỳ tương ứng với condition có tri logic TRUE expr2: Biêu thức, biến, hang, ham bat kỳ tương ứng với condifion có trị logic FALSE

Yí dụ: Xác định số lớn hơn trong 2 số a và b Inta=-l,b= ];

max = (a>b) ? a: b;

Két quả: max có trị là trị của biến b f Các tóan tử khác

Ngòai các tóan tử đã trình bày ở các mục trén, C/C++ còn hỗ trợ nhiều tóan tử khác với mục đích tạo thuận lợi và linh hoat cho việc viết chương trình

85

Trang 37

Khoa CNTT - Trường CĐKT Lý Tự Trọng c Téan tử Bitwise

Khi xử lý trên từng bít dữ liệu, thực tế là việc xử lý các thanh ghi (register) khi lập trình hardware, người lập trình đến các công cụ hay tóan tử cho phép thao tác trên từng bit của byte dữ liệu Các tóan tử bitwise được liệt kê trong bảng dưới đây: b=(a&5); cho kết quả b=4 Bitwise AND

| Bitwise inclusive OR b=(a|5); cho kết qua b=13 “ Bitwise excluse OR (XOR) b=(a^5); cho kết quả b=9 ~ Bu | (one's compliment) b=~a; cho két qua b=3

Dịch sang trái n bịt, tương ứng với | b=(a<<2);

= phép nhân cho 2" sẽ tương ứng b = 12*2° = 12*4 = 48

Dịch sang phải n bit, tương ứng với Doane) ; >> sẽ tương ứng với b = 12/2“ = 12/4 = phép chia cho 2" 3

d Toán tử tang gam

Gồm các tóan tử thực hiện trên các biến hay biểu thức có giá trị nguyên như char, int, short,

Trang 38

Khoa CNTT — Trường CDKT Ly Tu Trong /(*#\ % && T- | a+b#*c KP Đ)— 4# a* ©) (2x a) (num % 2) != ọ 2 Tóan tử a Toán tử sọ Sánh: —————— _ _ SET

a<b c6 két qua false ˆ a<=b có kết quả false 8>b có kết quả true 8>=b có kết quả true

a==b có két qua false

8!=b có kết quả true

biểu thức logic, trong đó các tóan hạng là các biến, giá trị

toan logic 14 một giá tri logic TRUE hoặc

Trang 39

Khoa CNTT - Trường CĐKT Lý Tự Trọng Khai báo kiểu dữ liệu mới: typedef base_type new_type;

base_type: Tén kiéu cơ sở hay kiêu đã được định nghĩa trước

new_ype: Tên kiêu dữ liệu mới

typedef struct STUDENT { unsigned int id; char firstname[10]; char lastname[30]; int ages; bs typedef unsigned int BYTE; int i, J, k=0; unsigned char Channel_ nr; float x=0.0, result; STUDENT student; BYTE count;

BÀI 14: BIỂU THỨC —- TÓAN TỬ - CÂU LENH

I BIEU THUC VA TOAN TU

1 Khái niệm về biểu thức

Biểu thức là một công thức tính toán bao gồm các phép toán, hằng, biến, hàm, và các dấu

ngoặc |

Thứ tự ưu tiên: Khi tinh giá trị của một biểu thức, ngôn ngữ C quy ước thứ tự ưu tiên của các phép toán từ cao đến thấp như sau:

biểu thức trong ngoặc, phép gọi hàm,

82

Trang 40

Nn0a CNT T — Trường CDK T Ly Tu Trong

Ngày đăng: 06/08/2022, 16:11