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

pdf96 trang | Chuyên mục: Tin Học Đại Cương | Chia sẻ: dkS00TYs | Lượt xem: 6712 | Lượt tải: 2download
Tóm tắt nội dung Giáo trình Tin học đại cương - Đại học Giao thông vận tải Hà Nội, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
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:

  • pdfGiáo trình Tin học đại cương - Đại học Giao thông vận tải Hà Nội.pdf
Tài liệu liên quan