Giáo trình tin học đại cương;Giáo trình tin học đại cươngGiáo trình tin học đại cươngGiáo trình tin học đại cươngGiáo trình tin học đại cươngGiáo trình tin học đại cươngGiáo trình tin học đại cươngGiáo trình tin học đại cươngGiáo trình tin học đại cương
Bi táûp Tin hc Âải cỉång PHÁƯ N I : Dặẻ LI U VAè CHặNG TRầNH TấNH TOAẽN CAẽC BIỉU THặẽC Vióỳt chổồng trỗnh nhỏỷp baùn kờnh R vaỡ xuỏỳt maỡn hỗnh thóứ tờch V vaỡ dióỷn tờch S cuớa hỗnh cỏửu (V = 4R3/ vaỡ S=4R2) * Thût toạn: + Cọ thãø khai bạo cạc biãún : V,S,R + Nháûp R tỉì bn phêm (dỉỵ liãûu nháûp vo tỉì bn phêm) + Gạn: V theo cäng thỉïc:V = 4πR3/ S=4πR2 + Viãút kẹt qa V, s maỡn hỗnh (kóỳt quaớ xuỏỳt ra) * Chổồng trỗnh #include #include #include main() { clrscr(); float v,s,r; printf(" Nhap ban kinh hinh cau R(voi R>0)="); scanf("%f",&r); s=4*M_PI*r*r; v=4*M_PI*r*r*r/3; printf("Dien tich hinh cau= %0.2f",s); printf("\nThe tich hinh cau= %0.2f",v); getch(); } * Kãút qu chảy demo + Vaìo R=2 + Dien tich hinh cau la:50.27 + The tich hinh cau la:33.51 * Nháûn xẹt Âáy l bi toạn ráút âån gin, toạn âån thưn mäüt biãøu thỉïc Nguùn Vàn Ngun- Khoa CNTT-ÂTVT Âải hc Bạch Khoa  Nàơng Bi táûp Tin hc Âải cỉång 2 Vióỳt chổồng trỗnh nhỏỷp sọỳ thổỷc x,y v giạ trë hm log F(x,y) = ( x − y ) + arctg ( x + y ) e x + cos( x + y ) * Thuáût toaïn: + Khai baïo caïc biãún : x,y,Tu,Mau,F kiãøu thỉûc + Âc giạ trë x,y tỉì bn phêm + Gaïn : tu=log(fabs(x*x-y*y))/log(5)+atan(x+y); mau=exp(x)+cos(x+y); F= tu/mau; + Viãút kóỳt quaớ F maỡn hỗnh * Chổồng trỗnh #include #include #include main() { clrscr(); float x,y,tu,mau,f; printf("Nhap x="); scanf("%f",&x); printf("\nNhap y="); scanf("%f",&y); tu=log(fabs(x*x-y*y))/log(5)+atan(x+y); mau=exp(x)+cos(x+y); f=tu/mau; printf("Ket qua cua ham F(x,y) la= %0.2f",f); getch(); } Viãút chổồng trỗnh nhỏỷp sọỳ thổỷc x,y vaỡ tờnh giaù trë ca hm f(x,y) sau: F(x,y) = x + log + arctg ( x − y ) (x + y) Nguyãùn Vàn Nguyãn- Khoa CNTT-ÂTVT Âaûi hc Bạch Khoa  Nàơng Bi táûp Tin hc Âải cỉång * Thût toạn: + Khai bạo cạc biãún: x,y,Tu,Mau,F:kiãøu thỉûc + Âc giạ trë ca x,y tỉì bn phêm (dỉỵ liãûu vo tỉì bn phêm) + Gạn cạc biãøu thỉïc: tu=pow(5,x)+log((fabs(x-y)))/log(5); mau=1+atan(x+y); F:= tu/mau; + Viãút kãút qu F maỡn hỗnh (kóỳt quaớ) * Chổồng trỗnh #include #include #include main() { clrscr(); float tu,mau; float x,y; printf("nhap x="); scanf("%f",&x); printf("nhap y="); scanf("%f",&y); tu=pow(5,x)+log((fabs(x-y)))/log(5); mau=1+atan(x+y); printf(" ket qua cua=%0.3f", tu/mau); getch(); } Tênh chu k dao âäüng ca làõc âån T = 2π l g Våïi g l gia täúc trng trỉåìng 9,18m/s2 * Thût toạn: + Cọ thãø khai bạo hàịng säú g + Khai baïo caïc biãún : T,L + Nháûp chiãưu di L tỉì bn phêm + Gạn T= 2*pi*sqrt(l/g) Nguùn Vàn Ngun- Khoa CNTT-ÂTVT Âải hc Bạch Khoa  Nàơng Bi táûp Tin hc Âải cỉång + Viãút kãút quaớ T maỡn hỗnh * Chổồng trỗnh #include #include #include #define g 9.18 main() { clrscr(); float l,t; printf(" Nhap chieu dai lac="); scanf("%f",&l); t=2*M_PI*sqrt(l/g); if (l0 thỗ phổồng trỗnh coù nghióỷm thổỷc Nóỳu delta must return a pointer or a class operator [] missing ] Parameter names are used only with a function body Parameter 'number' missing name Pointer to structure required on left side of -> or ->* Reference initialized with 'type1', needs lvalue of type 'type2' Reference variable 'variable' must be initialized Repeat count needs an lvalue sizeof may not be applied to a bit field sizeof may not be applied to a 155 Việc tách đối sè cđa macro bÊt hỵp lý Céng trá bÊt hỵp lý Tỉ hỵp ghi bÊt hỵp lý (nh− BP+BX) Dïng ký tù chÊm bÊt hỵp lý Tham sè cuối toán tử phải thuộc kiểu int Cần lvalue khả biến Sai cú pháp đối số macro Việc bung macro dài Hàm main() phải trả kiểu int Thiếu tham chiếu nhớ Đặt từ khoá break sai chỗ Đặt từ khoá continue sai chỗ Đặt dấu chấm thập phân sai chỗ Đặt từ khoá else bị sai chỗ Khai báo tên bị lặp Phải lấy địa nhớ Cần tên ®Ĩ khai b¸o ThiÕu dÊu ":" sau to¸n tư "?" Không kết thúc tên tệp Không cho tên tệp ý nghÜa ThiÕu th«ng tin vỊ kiĨu ViƯc chun kiĨu trỏ bất dịch Không phải kiểu biểu thức hợp lệ Không phải kiểu cho phép Hằng số lớn Các đối tợng kiểu khởi tạo với { } Toán tử -> phải trả trỏ lớp Toán tử [ ] thiếu ] Các tên tham số đợc dùng thân hàm Thiếu tên tham số Con trỏ đến struct phải bên trái -> ->* Khởi tạo tham chiếu với kiểu cần lvalue kiểu Biến tham chiếu phải đợc khởi tạo Đếm vòng lặp cần lvalue Không thể áp dụng toán tử sizeof vào trờng bit Không thể áp dụng toán tử sizeof vào mét Nguùn Vàn Ngun- Khoa CNTT-ÂTVT Âải hc Bạch Khoa  Nàơng Bi táûp Tin hc Âải cỉång function Size of 'identifier' is unknown or zero Size of the type is unknown or zero 'specifier' has already been included Statement missing ; Structure required on left side of or * Structure size too large Subscripting missing ] Switch selection expression must be of integral type Switch statement missing ( | ) The value for 'identifier' is not within the range of an int Too few parameters in call Too few parameters in call to function Too many decimal points Too many default cases Too many error or warning messages Too many exponents Too many initializers Too many types in declaration Too much global data defined in file Two consecutive dots Two operands must evaluate to the same type Type mismatch in default argument value Lỗi biên dịch Type mismatch in default value for parameter 'parameter' Type mismatch in parameter 'number' Type mismatch in parameter 'number' in call to 'function' Type mismatch in parameter 'parameter' Type mismatch in parameter 'parameter' in call to 'function' Type mismatch in redeclaration of 156 hàm Kích thớc tên Kích thớc kiểu Việc định đà đợc đa vào Câu lệnh thiếu ";" struct phải bên phải dấu chấm * Kích thớc struct lớn Thiếu ] chØ sè m¶ng BiĨu thøc chän lƯnh switch phải thuộc kiểu nguyên Lệnh switch thiếu "(" , ")" Giá trị cho tên không thuộc miền int Quá Ýt tham sè lƯnh gäi Qu¸ Ýt tham sè lệnh gọi hàm Quá nhiều dấu chấm thập phân Quá nhiều trờng hợp default Quá nhiều thông báo khuyến cáo lỗi Quá nhiều thích Quá nhiều khởi tạo Quá nhiều khai báo kiểu Quá nhiều liệu toàn cục định nghĩa tệp Hai dấu chấm liên tục Hai toán hạng phải ớc lợng thành kiểu Sai kiểu giá trị đối số mặc định ý nghĩa Sai kiểu giá trị mặc định cho tham sè Sai kiĨu tham sè Sai kiĨu cđa tham sè lƯnh gäi hµm Sai kiĨu cđa tham sè nµy Sai kiĨu cđa tham sè nµy lƯnh gäi hàm Sai kiểu khia báo lại tên Nguyóựn Vàn Ngun- Khoa CNTT-ÂTVT Âải hc Bạch Khoa  Nàơng Bi táûp Tin hc Âải cỉång 'identifier' Type name expected Type qualifier 'identifier' must be a struct or class name Type 'typename' may not be defined here Unable to execute command 'command' Unable to open include file 'filename' Undefined structure 'structure' Undefined symbol 'identifier' Unexpected } union cannot be a base type union cannot have a base type Unterminated string or character constant Use or -> to call function Use or -> to call 'member', or & to take its address User break Value of type void is not allowed Variable 'variable' has been optimized and is no longer available Variable 'identifier' is initialized more than once void & is not a valid type While statement missing ( | ) Wrong number of arguments in call of macro khuyến cáo biên dịch Array variable 'identifier' is near Assigning 'type' to 'enumeration' Bit fields must be signed or unsigned int Both return and return with a value used Call to function 'function' with no prototype Call to function with no prototype Code has no effect Condition is always true| false Constant is long Constant out of range in comparison Conversion may lose significant 157 Kiểu tên phải struct hay lớp Không thể định nghĩa kiểu Không thể thực đợc lệnh Không thể mở đợc tệp đa vào Không định nghĩa struct Không định nghĩa ký kiệu Thiếu "}" union kiểu sở union có kiểu sở Không kết thúc chuỗi ký tự ký tự Dùng "." "->" để gọi hàm Dùng "." "->" để gọi thành phần, "&" để lấy địa Dùng ^break để kết thúc chơng trình Không cho phép lấy giá trị kiểu void Biến đà đợc tối u hoá dùng đợc Biến đợc khởi tạo nhiều lần Địa void kh«ng cho phÐp LƯnh while thiÕu "(" , ")" Sai số đối số lệnh gọi macro ý nghĩa Biến mảng thuộc lớp gần Gán kiểu cho kiểu vô hớng liệt kê Các trờng bit phải thuộc kiểu int có dấu không dấu Cẩ hai trả giá trị đà sử dụng Gọi hàm nguyên mẫu Gọi hàm nguyên mẫu Lệnh hiệu lực Điều kiện luôn đúng|sai Hằng bị dài Hằng miền giá trị so sánh Việc chuyển kiểu làm thiếu chÝnh x¸c Nguùn Vàn Ngun- Khoa CNTT-ÂTVT Âải hc Bạch Khoa  Nàơng Bi táûp Tin hc Âải cỉång digits Declare type 'type' prior to use in prototype Division by zero Function should return a value Hexadecimal value contains more than digits 'identifier' declared but never used 'identifier' is assigned a value that is never used 'identifier' is declared as both external and static Initialization is only partially bracketed Initializing 'enumeration' with 'type' Mixing pointers to signed and unsigned char No declaration for function 'function' Non-constant function 'function' called for constant object Non-volatile function 'function' called for volatile object Nonportable pointer comparison Nonportable pointer conversion Parameter 'parameter' is never used Possible use of 'identifier' before definition Possibly incorrect assignment Redefinition of 'macro' is not identical Structure passed by value Style of function definition is now obsolete Superfluous & with function Suspicious pointer conversion Temporary used for parameter 'number' khuyÕn cáo biên dịch Temporary used for parameter 'number' in call to 'function' Temporary used to initialize 'identifier' Undefined structure 'structure' Unknown assembler instruction Unreachable code 158 tÝnh to¸n Khai báo kiểu u tiên dùng Chia cho số không Hàm nên trả giá trị Giá trị thập lục phân nhiều chữ số Tên không sử dụng Tên đợc gán giá trị mà không sử dụng Tên đợc khai báo vừa thc líp extern, võa thc líp static ViƯc khëi t¹o phần cặp {} Khởi tạo enum với kiểu Lẫn trỏ đến char có dấu không dấu Hàm không đợc khai báo Hàm không lại gọi cho đối tợng Hàm không thuộc lớp volatile lại gọi cho đối tợng volatile So sánh trỏ bất dịch Chuyển trỏ bất dịch Tham số không sử dụng Có thể dùng tên trớc định nghĩa Có thể sai lệnh gán Định nghĩa lại macro không quán struct truyền giá trị Kiểu định nghĩa hàm không chuẩn Hàm thừa "&" Xem lại việc chuyển đổi trỏ Dùng tạm tham số ý nghĩa Dùng tạm tham số lệnh gọi hàm Dùng tạm để khởi tạo cho tên Không định nghĩa struct Không biết lệnh hợp ngữ Lệnh không thực đợc Nguyóựn Vn Nguyón- Khoa CNTT-TVT aỷi hoỹc Bạch Khoa  Nàơng Bi táûp Tin hc Âải cỉång Use qualified name to access nested type 'type' Void functions may not return a value 159 Dùng tên để truy cập kiểu tổ hợp Hàm void trả giá trị lỗi biên dịch nghiêm trọng Bad call of intrinsic function Compiler table limit exceeded Error writing output file Register allocation failure Unable to create output file 'filename' Unable to open 'filename' Unable to open input file 'filename' Out of memory Không thể mở tệp Không thể mở tệp nhập Tràn nhớ lỗi chạy chơng trình Abnormal program termination Divide error Floating point error: Divide by 0, Domain, Overflow, Partial loss of precision, Underflow, Stack fault Null pointer assignment Stack overflow Chơng trình kết thúc không bình thờng Lỗi phép chia Lỗi số thực: Chia cho số không, Miền giá trị, Tràn trên, Mất độ xác, Tràn dới, Lỗi ngăn xếp Gán trỏ null Tràn ngăn xếp Sai lệnh gọi hàm Bảng biên dịch giới hạn Lỗi ghi tệp Lỗi phân bố ghi Không thể tạo tƯp ghi nµy III Cạc Header III.1 MATH.H int abs(int x); Lấy trị tuyệt đối số x kiểu int double fabs(double x); Lấy trị tuyệt đối số thực x long int labs(long int x); Lấy trị tuyệt đối số x kiĨu long Cạc hm cos(x), sin(x), tg(x), arccos(x), arsin(x), arctg(x), arctg(y/x) ln(x) double double double double double double double cos(double x); sin(double x); tan(double x); acos(double x); asin(double x); atan(double x); atan2(double y, double x); Nguyãùn Vàn Nguyãn- Khoa CNTT-ÂTVT Âải hc Bạch Khoa  Nàơng Bi táûp Tin hc aỷi cổồng double atof(const char *s); Đổi chuỗi s sang số thực double ceil(double x); Lấy giá trị nguyên nhỏ >=x double floor(double x); Lấy giá trị nguyên lớn nhÊt nÕu s1 > s2 size_t strlen(const char *s); LÊy ®é dài chuỗi ký tự s char *strlwr(char *s); Chuyển biến chuỗi s sang tất chữ thờng char *strupr(char *s); Chuyển biến chuỗi s sang tất chữ hoa char *strrev(char *s); Đảo tất ký tự s ( trõ ký tù null) char *strset(char *s, int ch); Đặt tất ký tự s thành ký tù ch char *strstr(const char *s1, const char *s2); Tìm lần xảy chuỗi s2 chuỗi ký tự s1 Nguyóựn Vn Nguyón- Khoa CNTT-ÂTVT Âải hc Bạch Khoa  Nàơng Bi táûp Tin hoỹc aỷi cổồng 164 MUC LUC PHệN I : Dặẻ LIU VAè CHặNG TRầNH TÊNH TOẠN CẠC BIÃØU THỈÏC PHÁÖN II : LÃÛNH ÂIÃÖU KIÃÛN + IF + LÃÛNH SWITCH CASE PHÁƯN III : LÃÛNH VNG LÀÛP 27 + FOR 27 + WHILE 27 + DO WHILE 27 PHÁÖN IV : CHặNG TRầNH CON 57 PHÁƯN V : KIÃØU MNG 80 PHệN VI : KIỉU XU CHặẻ 122 PHÁÖN VII : STRUCT VAÌ UNION 134 PHÁÖN VIII : KIÃØU CON TROÍ & FILE 139 BAÌI TÁÛP LAÌM THÃM 147 TI LIÃÛU THAM KHO 150 PHÁƯN PHỦ LỦC 151 I CẠC PHÊM SOẢN THO TRONG MÄI TRỈÅÌNG BORLAND C 3.1 151 II CAẽC LI THặèNG GP KHI LP TRầNH 152 III CAÏC HEADER 159 III.1 MATH.H 159 III.2 STDIO.H 160 III.3.CONIO.H 161 III.4 CTYPE.H 162 III.5 STDLIB.H 162 III.6 STRING.H 163 Nguyãùn Vàn Ngun- Khoa CNTT-ÂTVT Âải hc Bạch Khoa  Nàơng Bi táûp Tin hc Âải cỉång Nguùn Vàn Ngun- Khoa CNTT-ÂTVT Âải hc Bạch Khoa  Nàơng 165 ... printf("Chuong trinh tinh goc lai cua tam giac\n"); printf("Vao lan luot cac diem\n "); printf(" Toa cua diem A: Xa,Ya="); Nguyãùn Vàn Ngun- Khoa CNTT-ÂTVT Âải hc Bạch Khoa  Nàơng Bi táûp Tin hc Âải cỉång... Nguyóựn Vn Nguyón- Khoa CNTT-ÂTVT Âải hc Bạch Khoa  Nàơng Bi táûp Tin hc Âải cỉång 44 void main() { clrscr(); int n,s,t; printf("Tinh tong cac chu so\n"); printf("Nhap so n ="); scanf("%d",&n);... main() { clrscr(); /* Chuong trinh tinh sin(x) theo chuoi Taylor*/ float s1,s2,x,a1,a2,i,k; printf(" Nhap x="); scanf("%f",&x); x=x*M_PI/180; s1=0; a1=x;i=3; /* Tinh theo while*/ /*