Trang 15 ng máy tính 1.3.2.2 Kh i h th ng máy tính Computer System Unit các thành ph ính c Mainboard, CPU, RAM, các thành phình, cp in storage.. Khi ta úng n bo mà h khác trong máy tính
Trang 1Biên
www.hutech.edu.vn
Trang 2*1.2020.CMP1016*
tailieuhoctap@hutech.edu.vn
Trang 3M C L C
M C L C I
NG D N IV
BÀI 1: KI N TH N V MÁY TÍNH 1
1
1.1.1 Máy tính là gì? 1
1.1.2 2
1.1.3 2
1.1.4 3
3
1.2.1 3
1.2.2 5
1.3 5
1.3.1 y thông minh 5
1.3.2 6
1.3.3 15
1.3.4 19
1.3.5 21
CÂU H I ÔN T P 25
N L P TRÌNH MÁY TÍNH 27
27
28
2.2.1 t 28
2.2.2 29
2.2.3 30
2.2.4 31
37
2.4 anguage) 38
2.4.1 38
2.4.2 39
2.4.3 43
CÂU H I ÔN T P 45
BÀI 3: GI I THI U V NGÔN NG L P TRÌNH C 49
49
3.1.1 49
3.1.2 50
3.1.3 50
-C 52
Trang 43.3 53
CÂU H I ÔN T P 56
BÀI T P NÂNG CAO 59
BÀI 4: KI U D LI U VÀ BI U TH C TRONG C 60
60
4.1.1 60
4.1.2 61
4.1.3 62
4.1.4 62
4.1.5 65
67
4.2.1 67
4.2.2 68
4 69
4.3.1 69
4.3.2 69
4.3.3 Phép gán (l 70
4.3.4 72
4.3.5 74
4.3.6 75
4.3.7 76
4.3.8 Các phép toán thao tác trên bit 77
4.3.9 78
4.3.10 79
80
4.4.1 80
4.4.2 82
85
4.5.1 85
4.5.2 86
4.5.3 87
4.5.4 C 88
4.5.5 89
4.5.6 90
CÂU H I ÔN T P 91
BÀI 5: CÁC TOÁN T U KHI N 96
96
5.1.1 96
5.1.2 96
5.2 98
5.2.1 98
Trang 55.2.2 102
5.3 C 104
5.3.1 104
5.3.2 107
5.3.3 Vòng 109
5.3.4 110
111
5.4.1 111
5.4.2 112
CÂU H I ÔN T P 113
114
114
115
116
6.3.1 116
6.3.2 117
6.3.3 118
6.4 hàm 119
124
6.5.1 124
6.5.2 124
CÂU H I ÔN T P 125
BÀI 7: M NG- CHU I KÝ T 126
7 126
127
7.2.1 Khai báo 127
7.2.2 128
7.2.3 129
7.2.4 130
7.2.5 130
132
7.3.1 132
7.3.2 133
7.3.3 134
CÂU H I ÔN T P 142
BÀI 8: KI U D LI U CÓ C U TRÚC 147
147
148
150
150
8.4.1 150
Trang 68.4.2 151
151
CÂU H I ÔN T P 154
TÀI LI U THAM KH O 160
NG D N
MÔ T MÔN H C
-
-
-
-
-
-
N I DUNG MÔN H C
Trang 7C
h c t t môn này, i h c c n ôn t p các bài h c, tr l i các câu h i và
h c
m 2 ph n
Trang 9c ngày nay, máy
Trang 124 BÀI 1: ÍNH
1.2.1.1 H m th p phân
1.2.1.2 H m nh phân
i 2 BInary digiT
Trang 13b
6(10) =110(2)
1.3 H TH NG MÁY TÍNH
1.3.1 Máy vi tính và thi t b c m tay thông minh
), siêu máy tính (supercomputers), và máy tính nhúng (embedded computers)
Trang 15ng máy tính
1.3.2.2 Kh i h th ng máy tính (Computer System Unit)
Hình 1.5: Computer case và Mainboard
CPU ( Central Processing Unit)
i
CU (Control Unit) ALU
(Arithmetic Logic Unit) Các thanh ghi (Registers)
+ RAM) (Input)
(Output)
Trang 168 BÀI 1:
tâm phép tính CPU có 3 b
Trang 17Input/ Output System) T
RAM (Random Access Memory) là
ình trong quá trình thao tác và tính toán RAM có
d
có các lo
Trang 1810 BÀI 1:
Trang 19Hình 1.7: Mô hình bàn phím
n trên màn
Trang 21trên máy tính xách tay
Speaker port
port
Trang 23húng
Trang 24ft Windows, 3.0, Windows 95, Windows 98, Windows ME và Windows Vista, Windows 7, Windows 8, Windows 10
, vì Tron
Mac OS X Tiger, MacOS Sierra
Trang 271.3.4.1 T c a b x lý trung tâm (CPU):
T
Trang 3022 BÀI 1:
- Các máy khách (client) là các má
e-mak
(wide area network - WAN)
Trang 31(Wide Area Network ng (WAN) là
Hình 1Internet
n
Trang 33Câu 1: Hãy cho bi t t i sao em ch n ngành CNTT ?
Câu 4:
Trang 3628 BÀI 2:
trong môn C u Trúc D Li u và gi i thu t
2.2 GI I THU T
2.2.1 Khái ni m gi i thu t
Trang 37p x
bài toán cùng lo i
Trang 3830 BÀI 2:
-
Trang 393 Ngôn ng - flow chart)
vi c mô t d li u nh p (input), d li u xu t (output) và lu ng x lý thông qua các
Trang 41C u trúc 1: N u u ki c hi n <công vi c>.
Sai
Sai
Trang 43C u trúc 3: ng h p <i> th c hi n <công vi c i>
Trang 452.3 KI U D LI U
type là m h phân u cho trình
Trang 47- p trình Khai báo (Declarative) - -
Trang 4840 BÀI 2:
XML YAML ZetaLisp
Trang 502.4.2.5 Phát tri n Driver máy tính
Trang 5244 BÀI 2:
JavaScript, Java, Python, PHP, C++, C#, TypeScript, Shell, C và Ruby
Trang 53CÂU H I ÔN T P
bài toán sau:
ng d n:
So sánh a v i s 0 N u a>0 thì a d n u a<0 thì a là s âm
Trang 57BÀI 3: GI I THI U V NGÔN NG
Ngôn ng máy (machine language): Là các ch th i d ng nh phân, can thi p
nh ng con s 0 và 1
H p ng (assembly language): Bao g m tên các câu l nh và quy t c vi t các câu
Ví d :
A PRINT a; Hi n th giá tr c a a ra màn hình INPUT b
ADD b; C ng giá tr c a thanh ghi t ng A v i giá tr b
Assembler
Trang 5850 BÀI 3:
Ngôn ng c p cao (High level language) i và phát tri n nh m ph n ánh cách
toán h c Cùng v i s phát tri n c a các th h máy tính,
Ch ng h n ngôn ng LISP s d ng trình thông d ch
i th c hi n Các ngôn ng s d ng trình biên d
Gi a thông d ch và biên d ch có khác nhau ch : Do thông d ch là v a d ch v a
Trang 59Vào nh i th p k u th p k 70 c a th k XX, Dennish Ritchie
máy DEC PDP-11
Ngôn ng l p trình C là m t ngôn ng l p trình h th ng r t m nh và r m
quy t các bài toán k thu t có nhi u công th c ph c t
Trang 605 Biên d ch (compile): C cho phép biên d ch nhi u t
Trang 61Dev-Dòng trên cùng g i là thanh menu (menu bar) M i m c trên thanh menu l i có
th có nhi u m c con n m trong m t menu kéo xu ng
màn hình s xu t hi n m t vùng tr cho ta so n th o n i dung c a ch
Tên c a t p tin g m 2 ph n: Ph n tên và ph n m r ng
M C-free/Dev-C, vào File/New/Source file
v i ph n m r ng là cpp (Ví d : Cau1.cpp)
int main()
{
printf(" Xin chao ban !");
printf(" Xin chao ban!\n");
printf(" Chao ban !\n Toi ten la Hoa ");
printf(" Chao ban !\t Toi ten la Hoa !\n ");
return 0;
}
Trang 63//câu d
int x, y, z;
printf("Moi nhap hai so nguyen de cong: ");
scanf("%d%d", &x, &y);
z = x + y;
printf("Tong hai so la %d\n", z);
//ho c printf("Tong hai so la %d\n", x+y);
v i phép hi u, tích, th u d li u k t qu c a phép chia */
Trang 6456 BÀI 3:
CÂU H I ÔN T P
M C-free/Dev-C, vào File/New/Source file
Trang 65Phím t t biên d ch và ch y c (Compile and Run):
Than moi ban:
Toi du le sinh nhat cua minh
Vao luc 19h ngay 20/10/2016
Tai: 05/42 Vinh Vien TP HCM
Rat mong duoc don tiep!
Trang 66a Nh p vào hai s nguyên Xu t ra màn hình giá tr l n nh t
b Nh p vào ba s nguyên Xu t ra màn hình giá tr l n nh t
Trang 67BÀI T P NÂNG CAO
Trang 68T p ký t trong ngôn ng C bao g m nh ng ký t , ký hi u sau: (phân bi t ch in
ng):
Trang 71Cú pháp: #define <ten hang> <gia tri hang>
Ví d :
Trang 734.1.5 Bi n
Cú pháp: <kieu du lieu> <ten bien>;
Ví d : int a; /* khai báo bi n a có ki u d li u là int */
float x; /* khai báo bi n x có ki u d li u là float */
double y, z; /* khai báo 2 bi n y, z có ki u d li u là double */
long m, n, i; /* khai báo 3 bi n m, n, i có ki u d li u là long */
V trí khai báo bi n trong C
Trang 74printf ("\n Gia tri cua i la: %d ", i);
printf ("\n Gia tri cua bienngoai la %d ", bienngoai);
printf("\n Gia tri cua i la %d",i);
printf("\n Gia tri cua j la %d",j);
if(j>i)
Trang 75{
u s c a j tr }
Trang 76d nh và d u ch nh sau này Ph n n i dung ghi chú này ph i
Trang 77Bi u th c tính n a chu vi c a m t tam giác: p=(a+b+c)/2;
Bi u th c tính di n tích c a m t tam giác: s=sqrt(p*(p-a)*(p-b)*(p-c));
Trang 78} Nguyên t c khi dùng l nh gán thì ki u c a bi n và ki u c a bi u th c ph i gi ng
Trang 79}
<Tên ki u> <Tên bi n> = <Bi u th c>;
Ví d : int x = 10, y=x;
Gi s ta có câu l nh gán sau: <bien> = <bien> + <bieu thuc>;
Ta có th vi t g n l i: <bien> += <bieu thuc>;
Trang 8072 BÀI 4:
4.3.4 Các phép toán quan h và lý lu n
Trang 81d Các phép toán quan h i các phép toán s h c
0)
Phép và: (toán t 2 ngôi) toán t &&
Phép ho c: (toán t 2 ngôi) toán t ||
Trang 82<(type)> <bieu thuc>
Ý ki u giá tr c a bi u th i thành ki u giá tr type
Khi 2 toán h ng trong m t phép toán có ki u giá tr khác nhau thì ki u giá tr th p
qu c a phép toán là m t giá tr có ki u giá tr cao nh t
Trang 84khi th c hi n câu l nh thì n=2 và i=1 */
Trang 854.3.8 Các phép toán thao tác trên bit
thao tác trên t ng bit c a m t s nguyên ta có th dùng các phép toán sau: PHÉP TOÁN
<< Phép d ch trái theo bit
1^1=0 1^0=1 0^1=1 0^0=0
a >> n /*d ch ph i giá tr
Trang 864.3.9 Toán t con tr & và *
M t con tr a ch trong b nh c a m t bi n M t bi n con tr là m t bi n
nó
Ví d : m = &count
Trang 87Ch ng h n, bi n count v trí b nh 2000, gi s count có giá tr là 100 Sau câu
Trang 8880 BÀI 4:
Ví d 3:
/*Doc gia tri cho bien1 co kieu nguyen*/
/*Doc gia tri cho bien2 co kieu th c*/
Trang 89/*Doc gia tri cho bien1 co kieu nguyen, bien2 co kieu thuc*/
Trang 91\n Sau khi lam tron=
\nViet binh thuong =%f \n Viet kieu khoa
K t qu in ra màn hình:
hi n th chúng
Trang 92xóa ký t bên trái (backspace)
printf("\n Tieng Beep \a");
printf("\n Doi con tro sang trai 1 ky tu\b"); printf("\n Dau Tab \tva dau backslash \\"); printf("\n Dau nhay don \' va dau nhay kep \""); printf("\n Dau cham hoi \?");
printf("\n Ky tu co ma bat phan 101 la \101");
printf("\n Ky tu co ma thap luc phan 41 la \x041");
printf("\n Dong hien tai, xin go enter");
getch();
printf("\rVe dau dong");
return 0;
Trang 94c n có (header file), không th thi u trong vi c s d ng m t cách t t nh t các hàm
d li
Trang 95Ví d : typedef int SoNguyen; // Ki u SoNguyen là ki u int
hàm
Khai báo các bi n ngoài (các bi n toàn c c) ph n này không b t bu c: ph n này
n này b t bu c ph i có
<Ki u d li u tr v > main()
{
Các khai báo c c b trong hàm main: Các khai báo này ch t n t i trong hàm
mà thôi, có th là khai báo bi n hay khai báo ki u
Trang 9688 BÀI 4:
các hàm in d li u (printf()), nh p giá tr cho bi n (scanf()), nh n ký t t bàn phím (getc()), in ký t ra màn hình (putc()), nh n m t dãy ký t t bàm phím
G m các hàm clrscr(), , getche(), getpass(), cgets(), cputs(), putch()
log10(), sin(), cos(), tan(), ac
hàm calloc(),
read(), _read(), close(), _close(), creat(), _creat(), creatnew(), eof(), filelength(),
N u ta dùng #include<Tên t p tin> thì Borland C s tìm t
Trang 9890 BÀI 4:
int main()
{
Khai báo bi n n u có (ch t n t i trong hàm);
Trang 99Câu 4: Gi s m=5, n=2 Hãy cho bi t giá tr c a m và n sau khi th c thi m i câu
Trang 103Câu 8: Hoàn thi n các bài t p các bà c
x>0, a>0, a != 1 (dùng logax=lnx/lna)
Trang 10496 BÀI 5:
Trang 105kh i l nh khác nhau hay các kh i l nh l ng nhau có th khai báo các bi n cùng tên
Trang 10698 BÀI 5:
N u m t bi n c khai báo bên ngoài kh i l nh và không trùng tên v i bi n
không th s d ng các bi n bên trong kh i l nh con
<Công vi c>
}
cú pháp:
Sai
Trang 108d u
Trang 109#include< stdio.h> // n ph i khai báo
trình theo các qui t c sau:
ph i
Các câu l nh, kh i l nh cùng c p thì vi t trên cùng m t c t
Trang 111int songuyen, phandu;
printf("\n Nhap vao so nguyen "); scanf("%d",&songuyen);
Trang 114printf("\n Day so tu 1 den 10:");
for (i=1; i<=10; i++)
Trang 115for (int i=1; i<=n; i++)
{
s= s+i;
}
ng là s= %ldreturn 0;
Trang 116- N u giá tr c a <bieu thuc> là sai (b ng 0) thì máy s thoát kh i vòng l p và th c
trong <khoi lenh> Khi g p d u ngo c i <khoi lenh> ho c g p l nh
Trang 118110 BÀI 5:
c 1: Th c hi n các câu l nh trong <khoi lenh công vi c>
Trang 119thoát kh i vòng l p Khi g p câu l nh này trong vòng l
Trang 123Ví d 2 nh p vào 2 s nguyên a,b
hàm printf(), scanf(), getc(), putc(), gets(), puts(), fflush(), fopen(), fclose(), fread(),
hàm clrscr(), , getche(), getpass(), cgets(), cputs(), putch(),
Trang 124116 BÀI 6:
calloc(), realloc(), malloc(), free(), farmalloc(), farc
read(), _read(), close(), _close(), creat(), _creat(), creatnew(), eof(),
Trang 125return; //không tr v giá tr , ch thoát kh i hàm return
return <tên bi n>; //Tr v giá tr c a bi n và thoát
return <bi u th c>; //Tr v giá tr c a bi u th c và thoát
Cú pháp g i hàm: <Tên hàm>([Danh sách các tham s ])
Trang 127printf("Truoc khi goi phuong thuc x = %d \n", x);
change(x); // truyen tham tri vao phuong thuc
printf("Sau khi goi phuong thuc x = %d \n", x);
return 0;
}
Trang 128120 BÀI 6:
K t qu
Truoc khi goi phuong thuc x = 100
Sau khi goi phuong thuc x = 100
printf("Truoc khi goi phuong thuc x = %d \n", x);
change(&x); // truyen tham chieu vao phuong thuc
printf("Sau khi goi phuong thuc x = %d \n", x);
return 0;
}
:
Truoc khi goi phuong thuc x = 100
Sau khi goi phuong thuc x = 101
Trang 129printf("Truoc khi goi ham change: x = %d \n", x);
printf("Sau khi goi ham change: x = %d \n", x);
return 0;
}
M c nhiên, vi c truy n tham s cho hàm trong C là truy n theo giá tr
hình th c
này có tên là InKT
Trang 131printf("\n Truoc khi goi ham hoan vi a=%d ,b=%d",a,b); hoanvi(a,b);
printf("\n Sau khi goi ham hoan vi a=%d ,b=%d",a,b); return 0;
}
K t qu th c hi
Trang 133CÂU H I ÔN T P
qu lên màn hình
3 s a, b, c ph i ki m tra l i xem a, b, c có t o thành m t tam giác không? N u có thì tính chu vi và di n tích N u không thì in ra câu " Không t o thành tam giác"
Trang 134ta g i là m ng c a m ng hay m ng nhi u chi u)
Ta có th chia m ng làm 2 lo i: m ng m t chi u và m ng nhi u chi u
qu n lý m t danh sách h và tên c a kho ng 100 sinh viên trong m t l p Nh n th y
khai báo 100 bi n ki u chu i N
các thao tác trên các h tên s r t dài dòng và r c r i Vì th , ki u d li u m ng giúp
ng h p này; ch c n khai báo 1 bi n, bi n này có th
khi khai báo m ng
c a m ng m t chi u có giá tr không ph i là m t m ng
Trang 136128 BÀI 7: -
N u v a khai báo v a gán giá tr thì m c nhiên C s hi u s ph n t c a m ng là
s giá tr mà chúng ta gán cho m ng trong c p d u {}
Ví d : float x[] = {12.1, 7.23, 5.0, 27.6, 87.9, 9.31};
S ph n t =sizeof(tên m ng)/ sizeof(ki u)
ta không c n ch nh s ph n t c a m ng là bao nhiêu
Ví d : void nhapmang (int a[ ], int n)
7.2.2 Truy c p vào các ph n t c a m ng
s n m trong c p d u ngo c vuông []
Ch s c a ph n t m ng là m t bi u th c mà giá tr là ki u s nguyên
bi n có ki u d li u là ki u c ch ra trong khai báo bi n m ng
Trang 137printf("\nGia tri: %f ", a[1]);
Trang 1387.2.5 M t vài thu t toán trên m ng m t chi u
Bài toán 1: Tính t ng các ph n t trong m ng m t chi u các s nguyên
Trang 141Ví d : char chu i [ ] thu t l p
Trang 142134 BÀI 7: -
Ví d : scanf
i v i hàm scanf khi g p phím space, tab, new line, Enter thì d ng, cho nên ch
printf (xu t chu i xong không xu ng dòng)
gets: fflush (stdin) hay flushall ()
7.3.3 M t s hàm x lý chu i (trong <string.h>)
Cú pháp: int kbhit (void)
Hàm tr v giá tr khác không n u b m bàn phím khác r ng, tr v giá tr
Cú pháp: char * strcat(char* s1, char* s2)
ch a trong s1
Ví d :
#include "stdio.h"
Trang 143#include "string.h"
void main()
{
char s1[50], s2[50];
printf("\nNhap chuoi 1: "); gets(s1);
printf("Nhap chuoi 2: "); gets(s2);
strcat(s1,s2);
printf("Xuat chuoi 1: %s",s1);
printf("\nXuat chuoi 2: %s",s2);
}
Cú pháp: char* strchr (char* ch, int kt)
if (p != NULL) printf("\nchi so cua ky tu: %d",(int)(p-s));
else printf("\nKhong tim thay!");
}