Giáo trình Tin học đại cương - Đại học Giao thông vận tải Hà Nội
MỤC LỤC
LỜI NÓI ðẦU. 3
PHẦN 1. 4
ðẠI CƯƠNG VỀTIN HỌC. 4
CHƯƠNG 1 – NHỮNG KHÁI NIỆM CƠBẢN VỀTIN HỌC. 5
1.1 ðối tượng nghiên cứu của Tin học. 5
1.2 Thông tin và xửlý thông tin . 5
1.3 Hệ ñếm và biểu diễn thông tin trong máy tính. 6
1.4 Nguyên lý của hệxửlý thông tin tự ñộng . 8
1.5 Cấu trúc máy tính . 10
1.6 Một số ứng dụng của Tin học . 12
CHƯƠNG 2 – HỆ ðIỀU HÀNH. 14
2.1 Hệ ñiều hành MS-DOS. 14
2.2 Hệ ñiều hành Windows. 16
CHƯƠNG 3 – THUẬT TOÁN . 21
3.1 Khái niệm. 21
3.2 Một sốphương pháp biểu diễn thuật toán . 21
3.3 Các cấu trúc cơbản của thuật toán. 23
3.4 Một sốthuật toán giải một sốbài toán ñơn giản . 27
PHẦN 2. 32
NGÔN NGỮLẬP TRÌNH C . 32
CHƯƠNG 1 - MỘT SỐKHÁI NIỆM MỞ ðẦU . 34
1.1 Tập ký tự . 34
1.2 Từkhóa. 34
1.3 Tên. 35
1.4 Một sốkhái niệm. 35
1.5 Một sốchương trình ñơn giản. 38
1.6 Một sốquy tắc cần nhớkhi viết chương trình . 39
1.7 Cách thực hiện các chương trình trên máy tính . 40
BÀI TẬP CHƯƠNG 1 . 41
CHƯƠNG 2 - CÁC KIỂU DỮLIỆU . 42
2.1 Các kiểu dữliệu cơbản . 42
2.2 Hằng . 43
2.3 Biến. 45
2.4 Mảng. 46
2.5 Các phép toán trên các kiểu . 48
2.6 Nhập xuất dữliệu . 52
2.7 Một sốhàm thường dùng. 56
BÀI TẬP CHƯƠNG 2 . 57
CHƯƠNG 3 - CÁC LỆNH ðIỀU KHIỂN . 58
3.1 Nhắc lại khái niệm vềcâu lệnh và khối lệnh . 58
3.2. Lệnh if. 58
3.3 Lệnh for . 61
3.4 Lệnh while . 63
3.5 Lệnh do - while . 65
3.6 Lệnh break . 66
3.7 Lệnh continue. 66
BÀI TẬP CHƯƠNG 3 . 68
CHƯƠNG 4 - HÀM VÀ TỔCHỨC CHƯƠNG TRÌNH. 70
4.1 Tổchức chương trình thành các hàm . 70
4.2 Tham sốkiểu con trỏ . 73
4.3 ðệquy. 79
BÀI TẬP CHƯƠNG 4 . 83
CHƯƠNG 5 - CẤU TRÚC . 84
5.1 ðịnh nghĩa cấu trúc và khai báo biến cấu trúc. 84
5.2 Kết hợp ñịnh nghĩa cấu trúc và khai báo biến cấu trúc . 84
5.3 Sửdụng typedef ñể ñịnh nghĩa kiểu dữliệu cấu trúc . 85
5.4 Truy cập các thành phần của cấu trúc . 86
5.5 Ví dụminh hoạ . 86
BÀI TẬP CHƯƠNG 5 . 89
PHỤLỤC 1 - BẢNG MÃ ASCII . 91
PHỤLỤC 2 . 93
DANH SÁCH CÁC HÀM CỦA TURBO C THEO THỨTỰABC . 93
i = 0; for (i = 0; i < n - 1; i++) { dx = (pDiem[i + 1].x - pDiem[i].x); dy = (pDiem[i + 1].y - pDiem[i].y); do_dai+= sqrt(dx*dx + dy*dy); } return do_dai; } 5.5.2 Ví dụ 2 Giáo trình Tin học ðại cương 88 Nhập một danh sách gồm n thí sinh dự thi ñại học, mỗi thí sinh là một cấu trúc gồm các trường: Họ và tên, Quê, ðiểm toán, ðiểm lý, ðiểm hoá Yêu cầu: - Nhập ñiểm chuẩn sau ñó tìm và in ra màn hình danh sách các thí sinh ñỗ ñại học có quê ở “Ha Noi” (Thí sinh ñỗ ñại học nếu có tổng ñiểm không dưới ñiểm chuẩn). - Tìm và in ra màn hình danh sách các thí sinh có ñiểm toán cao nhất. - In ra màn hình toàn bộ thông tin của n thí sinh.. ðể giải quyết bài toán này ta có chương trình sau: #include #include // Dinh nghia kieu Ho so sinh vien typedef struct { char HoTen[30]; char Que[50]; float DiemToan; float DiemLy; float DiemHoa; } HSSV, *PHSSV; void NhapHSSV(PHSSV pSv, int n) { HSSV sv; int i; for (i = 0; i < n; i++) { printf("Ten sinh vien %d: ", i + 1); fflush(stdin); gets(sv.HoTen); printf("Que sinh vien %d: ", i + 1); fflush(stdin); gets(sv.Que); printf("Diem toan, ly, hoa sinh vien %d: ", i + 1); scanf("%f%f%f", &sv.DiemToan, &sv.DiemLy, &sv.DiemHoa); pSv[i] = sv; } } void InHSSV(PHSSV pSv, int n) { int i; printf("%4s %20s %20s %6s %6s %6s\n", "STT", "Ho ten", "Que quan", "Toan", "Ly", "Hoa"); for (i = 0; i < n; i++) printf("%4d %20s %20s %6.1f %6.1f %6.1f\n", i + 1, pSv[i].HoTen, pSv[i].Que, pSv[i].DiemToan, pSv[i].DiemLy, pSv[i].DiemHoa); } void main() { HSSV day[50]; int n, i; float chuan, max; printf("Nhap so sinh vien: "); scanf("%d", &n); // Nhap ds sinh vien Giáo trình Tin học ðại cương 89 NhapHSSV(day, n); // In ds sinh vien vua nhap InHSSV(day, n); // Tim kiem cac sinh vien do que o Ha Noi printf("Nhap diem chuan: "); scanf("%f", &chuan); printf("\nDanh sach sinh vien do, que o Ha Noi:\n"); printf("%4s %20s %20s %6s %6s %6s\n", "STT", "Ho ten", "Que quan", "Toan", "Ly", "Hoa"); for (i = 0; i < n; i++) if ((day[i].DiemToan + day[i].DiemLy + day[i].DiemHoa >= chuan)&& (strcmpi(day[i].Que, "Ha Noi") == 0)) printf("%4d %20s %20s %6.1f %6.1f %6.1f\n", i + 1, day[i].HoTen, day[i].Que, day[i].DiemToan, day[i].DiemLy, day[i].DiemHoa); // Tim diem toan cao nhat max = day[0].DiemToan; for (i = 1; i < n; i++) if (max < day[i].DiemToan) max = day[i].DiemToan; // In ra danh sach sinh vien diem toan cao nhat printf("\nDanh sach sinh vien diem toan cao nhat:\n"); printf("%4s %20s %20s %6s %6s %6s\n", "STT", "Ho ten", "Que quan", "Toan", "Ly", "Hoa"); for (i = 0; i < n; i++) if (day[i].DiemToan == max) printf("%4d %20s %20s %6.1f %6.1f %6.1f\n", i + 1, day[i].HoTen, day[i].Que, day[i].DiemToan, day[i].DiemLy, day[i].DiemHoa); } Trong chương trình trên, ta xây dựng 2 hàm nhập (NhapHSSV) và in (InHSSV) danh sách sinh viên. Sau ñó sử dụng chúng trong hàm main. ðộc giả có thể viết lại chương trình trên mà không sử dụng 2 hàm trên bằng cách viết trực tiếp ñoạn chương trình nhập và in vào trong hàm main. BÀI TẬP CHƯƠNG 5 Bài 1. Xây dựng một cấu trúc (ứng với phiếu ñiểm của thí sinh) gồm các thành phần: - Họ tên - Quê quán - Trường - Tuổi - Số báo danh - ðiểm thi trong ñó Họ tên lại là một cấu trúc gồm ba thành phần: Họ, tên ñệm và tên. Quê quán cũng là một cấu trúc gồm ba thành phần: xã, huyện và tỉnh. ðiểm thi là một cấu trúc gồm ba thành phần: toán, lý, hóa (ñiểm chấm chính xác ñến 1/4). Giáo trình Tin học ðại cương 90 ðọc số liệu từ một phiếu ñiểm cụ thể và lưu trữ vào các thành phần của cấu trúc nói trên, sau ñó in các số liệu ra màn hình. Bài 2. Sử dụng ñịnh nghĩa cấu trúc ở bài 1 : Nhập số liệu của 20 phiếu ñiểm và lưu trữ vào mảng cấu trúc nói trên. Tìm kiếm và in ra các thí sinh có tổng số ñiểm ba môn lớn hơn 15. Bài 3. Giả sử ñã nhập số liệu của 20 phiếu ñiểm theo như yêu cầu của bài 2. Hãy lập chương trình sắp xếp lại các phần tử của mảng cấu trúc theo thứ tự giảm dần của tổng số ñiểm, sau ñó in danh sách thí sinh (theo thứ tự nói trên). Mỗi thí sinh sẽ in trên một dòng gồm các thông tin: - Họ tên - Quê quán - Số báo danh - ðiểm toán, lý, hóa. Bài 4. Nhập danh sách n học sinh với các thuộc tính: họ tên, năm sinh và tổng ñiểm. Sắp xếp danh sách theo thứ tự giảm của tổng ñiểm. Khi tổng ñiểm như nhau thì học sinh có năm sinh nhỏ hơn ñược xếp trước. In danh sách học sinh ñã sắp xếp sao cho tất cả các chữ cái của họ tên chuyển thành chữ hoa. Bài 5. ðịnh nghĩa kiểu cấu trúc mô tả ña thức, sau ñó viết các hàm vào ña thức, in ña thức, cộng ña thức và nhân ña thức. áp dụng trong hàm main() ñể thực hiện các việc: Vào từ bàn phím ba ña thức P1, P2 và P3. Tính ña thức P theo công thức: P = (P1 + P2)2 + P3 In P1, P2, P3 và P. Vào từ bàn phím một dẫy n ña thức, sau ñó in chúng lên màn hình theo thứ tự giảm của bậc. Giáo trình Tin học ðại cương 91 PHỤ LỤC 1 - BẢNG MÃ ASCII Bộ ký tự ASCII (American Standard Code for Interchange Information) gồm 256 ký ñược phân bố như sau: - 32 ký tự ñầu tiên là các ký tự ñiều khiển không in ñược như ký tự Enter (mã 13), ký tự ESC (mã 27). - Các mã ASCII 32-47,58-64,91-96 và 123-127 là các ký tự ñặc biệt như dấu chấm, dấu phẩy, dấu cách, dấu ngoặc, dấu móc, dấu hỏi,... - Các mã ASCII 48-57 là 10 chữ số - Các mã ASCII 65-90 là các chữ cái hoa từ A ñến Z - Các mã ASCII 97-122 là các chữ cái thường từ a ñến z - Các mã ASCII 128-255 là các ký tự ñồ hoạ. MÃ KÝ TỰ MÃ KÝ TỰ MÃ KÝ TỰ 0 NUL 43 + 86 V 1 SOH 44 , 87 W 2 STX 45 - 88 X 3 ETX 46 . 89 Y 4 EOT 47 / 90 Z 5 ENQ 48 0 91 [ 6 ACK 49 1 92 \ 7 BEL 50 2 93 ] 8 BS 51 3 94 ^ 9 HT 52 4 95 _ 10 LF 53 5 96 ` 11 VT 54 6 97 a 12 FF 55 7 98 b 13 CR 56 8 99 c 14 SO 57 9 100 d 15 SI 58 : 101 e 16 DLE 59 ; 102 f 17 DC1 60 < 103 g 18 DC2 61 = 104 h 19 DC3 62 > 105 i 20 DC4 63 ? 106 j 21 NAK 64 @ 107 k 22 SYN 65 A 108 l 23 ETB 66 B 109 m Giáo trình Tin học ðại cương 92 24 CAN 67 C 110 n 25 EM 68 D 111 o 26 SUB 69 E 112 p 27 ESC 70 F 113 q 28 FS 71 G 114 r 29 GS 72 H 115 s 30 RS 73 I 116 t 31 US 74 J 117 u 32 Space 75 K 118 v 33 ! 76 L 119 w 34 ” 77 M 120 x 35 # 78 N 121 y 36 $ 79 O 122 z 37 % 80 P 123 { 38 & 81 Q 124 | 39 ’ 82 R 125 } 40 ( 83 S 126 ~ 41 ) 84 T 127 DEL 42 * 85 U Giáo trình Tin học ðại cương 93 PHỤ LỤC 2 DANH SÁCH MỘT SỐ HÀM CỦA TURBO C (theo thứ tự ABC) ðể biết chi tiết, ñề nghị ñộc giả sử dụng help của môi trường TC bằng cách ñánh tên hàm trong môi trường TC sau ñó ñể con trỏ dưới tên hàm rối nhấn Ctrl + F1. Hàm Tệp tiêu ñề Hàm Tệp tiêu ñề 1. _chmod 28. coreleft 2. _close 29. cos 3. _creat 30. cosh 4. _open 31. cprintf 5. abort 32. creat 6. abs 33. cscanf 7. acos 34. delay 8. arc 35. delline 9. asin 36. disable 10. atan 37. drawpoly 11. atan2 38. ecvt 12. atof 39. ellipse 13. atoi 40. enable 14. atol 41. exit 15. bar 42. exp 16. bar3d 43. fabs 17. cabs 44. fclose 18. calloc 45. fcloseall 19. ceil 46. fcvt 20. chdir 47. feof 21. chmod 48. ferror 22. circle 49. fflush 23. cleardevive 50. fflushall 24. clearviewport 51. fgetc 25. close 52. fgets 26. clreol 53. fillpopy Giáo trình Tin học ðại cương 94 27. clrscr 54. findfirst 55. findnext 87. getpalette 56. floodfill 88. getpixel 57. floor 89. gets 58. fmode 90. gettextinfo 59. fopen 91. gettime 60. FP_OFF 92. gettime 61. FP_SEG 93. getvect 62. fprintf 94. getviewport 63. fprintf 95. getw 64. fputc 96. gotoxy 65. fputs 97. gotoxy 66. fread 98. grapherrormsg 67. free 99. graphresult 68. fscanf 100. imagesize 69. fseek 101. initgraph 70. fteel 102. int86 71. fwrite 103. int86x 72. gcvt 104. intdos 73. geninterrupt 105. intdosx 74. getbkcolor 106. intr 75. getc 107. inxdigit 76. getch 108. isalnum 77. getchar 109. isalpha 78. getche 110. iscntrl 79. getcolor 111. isdigit 80. getcwd 112. isgraph 81. getdate 113. islower 82. getimage 114. isprint 83. getlinesettings 115. ispunct 84. getmaxcolor 116. isspace 85. getmaxx 117. isupper 86. getmaxy 118. itoa 119. kbhit 145. peek 120. Keep 146. peekb Giáo trình Tin học ðại cương 95 121. labs 147. perror 122. line 148. pieslice 123. linerel 149. poke 124. lineto 150. pokeb 125. log 151. pow 126. log10 152. printf 127. lseek 153. putc 128. Ltoa 154. putch 129. malloc 155. putchar 130. memccpy hoặc 156. putimage 131. memchr hoặc 157. putpixel 132. memcmp hoặc 158. puts 133. memcpy hoặc 159. putw 134. memicmp hoặc 160. rand 135. memset hoặc 161. random 136. MK_FP 162. randomize và 137. mkdir 163. read 138. movedata 164. realloc 139. movedata hoặc 165. rectangle 140. moveto 166. remove 141. nosound 167. rewind 142. open 168. rmdir 143. outtext 169. scanf 144. outtextxy 170. segread 171. setbkcolor 200. Strncat 172. setcolor 201. strncmp 173. setdate 202. strncpy 174. setfillstyle 203. strnicmp Giáo trình Tin học ðại cương 96 175. setlinestyle 204. strnset 176. setpalette 205. strpbrk 177. settextjustify 206. strrchr 178. settextstyle 207. strrev 179. settime 208. strset 180. setvect 209. strspn 181. setviewport 210. Strstr 182. setwritemode 211. strupr 183. sin 212. system 184. Sinh 213. tan 185. sleep 214. Tanh 186. sound 215. textbackground 187. sprintf 216. textcolor 188. sqrt 217. textheight 189. srand 218. textmode 190. strcat 219. textwidth 191. strchr 220. time 192. strcmp 221. tolower 193. strcmpi 222. toupper 194. strcpy 223. ultoa 195. strcspn 224. unlink 196. strdup 225. Wherex 197. stricmp 226. wherey 198. strlen 227. window 199. strlwr 228. write
File đính kèm:
- Giáo trình Tin học đại cương - Đại học Giao thông vận tải Hà Nội.pdf