You are on page 1of 102

CNG BI GING

1. Thng tin chung


Mn hc: Lp trnh c bn
B mn:

Khoa hc my tnh, Khoa Cng Ngh Thng Tin

Gio vin ph trch: V Minh Ph, i t, TS, GVC


2. Phn I. Tng quan v Tin hc
1.0. Yu cu v mn hc v cc quy nh chung
1.1. Tng quan v thng tin
1.2. Biu din v x l thng tin trong KTMT
1.3. Lch s pht trin v phn loi cc th h my tnh
3. Thi lng: 2 tit
4. Mc ch
- Nm c lch s, nguyn tc c bn v m ha thng tin trong my tnh
- Hiu c php bin i gia cc h m
- Nm c bn cht ca s khc bit gia cc th h my tnh
5. Ni dung
- S lc v lch s hnh thnh
- Thng tin v m ha thng tin, cng thc chuyn i gia cc h m
- Bng m ASCII v m rng
- Nguyn tc x l thng tin trong MTDT
- Lch s pht trin
- Phn loi 4 th h my tnh, bn cht ca s khc bit.
- n v thng tin v cc phng php lu gi thng tin.
- Tp ngun v tp lnh
6. Ti liu tham kho
- Phm Th Long, o Thanh Tnh, on Th Tun, Nhp mn Tin hc i
cng, HVKTQS, trang 4-50.
1

- H iu hnh MSDOS,
7. Cu hi n tp
- Hy thc hnh thnh tho vic chuyn i cc h m.
- Ti sao phi s dng bng m ASCII m rng?

CNG BI GING
1. Thng tin chung
Mn hc: Lp trnh c bn
B mn:

Khoa hc my tnh, Khoa Cng Ngh Thng Tin

Gio vin ph trch: V Minh Ph, i t, TS, GVC


2. Phn I. Tng quan v Tin hc
2.1. Cu trc chung ca my tnh in t
2.2. B nh
2.3. Cc thit b vo-ra, thit b ngoi vi
2.4. Gii thut v s lc v cc phn mm
3. Thi lng: 3 tit
4. Mc ch
- Nm c cc thnh phn c bn ca my tnh v chc nng ca tng thnh
phn
- Nm c cc loi b nh
- Hiu c quy trnh chuyn i t gii thut-chng trnh-phn mm
5. Ni dung
- Trnh by v cu trc chung ca my tnh nh: B nh trong (ROM, RAM),
B nh ngoi (a t,..), cc loi b nh khc (m rng v tng tc)
- Cu trc v vai tr ca ROM (b nh ch c) trong my tnh
- RAM (B nh truy xut ngu nhin) v s khc bit gia ROM, RAM
- Cc thnh phn iu khin, ni ghp v cc cng
- Thit b vo Keyboard (Bn phm), cc phm trn bn phm v chc nng ca
chng
- Thit b hin th vo-ra DISPLAY (Mn hnh), cc loi mn hnh t n sc
n phn gii cao. im nh v mu ca mn hnh.
- Thit b ra PRINTER (My in) chuyn ti thng tin cn thit do ngi s
dng yu cu. Cc loi my in in, phun, lazer thng dng
3

- Hiu c thut ton l hu hn cc bc gii hu hiu mt bi ton no


trong thc t.
- Nm c nguyn tc tnh ton gii mt bi ton trong my tnh l:
BI TON THUT TON SON THO CHNG TRNH DCH
CHNG TRNHCHY CHNG TRNHKT QU.
- Lu l cc bc sau vic son tho, dch v chy chng trnh ph thuc
vo cc h son tho tng ng, chung quy li ch l dch t ngun (chng
trnh ngun hay tp ngun) thng qua cc b bin dch a tp ngun v
dng m my (tp lnh, c phn m rng l .COM, EXE ,)
6. Ti liu tham kho
- Phm Th Long, o Thanh Tnh, on Th Tun, Tin hc i cng,
HVKTQS, trang 3-40.
- H iu hnh MSDOS
7. Cu hi n tp
- ROM khc RAM ch no?
- USB, b nh di ng thuc dng b nh no?
- Chng trnh l g, mun son c chng trnh ta phi lm gi?

CNG BI GING
1. Thng tin chung
Mn hc: Lp trnh c bn
B mn:

Khoa hc my tnh, Khoa Cng Ngh Thng Tin

Gio vin ph trch: V Minh Ph, i t, TS, GVC


2. Phn I. Tng quan v Tin hc
3.1. Cu hnh ca cc h thng my tnh
3.2. La chn cu hnh
3.3. Gii thiu s lc v h iu hnh MSDOS v WINDOWS
3.4. H son tho MS OFFICE
3. Thi lng: 3 tit
4. Mc ch
- Nm c nguyn tc xc nh cu hnh
- Cch la chn cu hnh ph hp vi mc ch s dng hoc kh nng ti
chnh
- Hiu c bn cht ca HDH v cc loi HDH
- Nm c h iu hnh WINDOWS
- Nm c HDH l b phin dch NGI-MY_NGI
- H iu hnh WINDOWS l s tch hp HDH +WINDOWS
5. Ni dung
- Trnh by v cu hnh my vi tnh thng qua CPU v mn hnh
- Vic la chn cu hnh s dng ph thuc vo cc yu t: mc ch s dng
(my chy nhanh, cho php ci t s dng c nhng phn mm chuyn
dng p ng cc yu cu cng vic), kh nng ti chnh, phn loi cu hnh
- S lc v HDH MSDOS v h thng (IO.SYS, MSDOS.SYS,
COMMAND.COM)
- Cc lnh ni tr v ngoi tr trong HDH

- Qun l, lu gi thng tin theo cu trc hnh cy gm th mc, th mc con


v tp tin (tp lnh v tp ngun)
- Phn tch H iu hnh WINDOWS l s tch hp gia HDH MSDOS v
WINDOWS
- Gii thiu ca s DESKTOP, cc biu tng trn mn hinh
- Gii thiu ca s START: Program, Document, Setting, Search,
- Gii thiu ca s ci t cu hnh, b sung v g b cc ng dng: Control
Panel
- Gii thiu cc thao tc kch ht, sao chp di chuyn trn cc ca s
- S lc v WORD gm kch hot, to tp tin, m tp tin c,
- Gii thiu v thanh cng c (File, Edit, View, Inesrt, Format, Tool, Table,)
Phn tch tng chc nng.
- Gii thiu cc biu tng h tr nhanh di thanh cng c
- Gii thiu v Toolbars, ci t cc hin th theo yu cu
- Gii thiu cc biu tng bn di ca s son tho.
- t trang, l, u , chn v in ra my in
6. Ti liu tham kho
- Phm Th Long, o Thanh Tnh, on Th Tun, Tin hc i cng,
HVKTQS, trang 3-40.
- H iu hnh MSDOS
7. Cu hi n tp
- Yu t no quyt nh cu hnh cao, thp?
- ng dng no cho php ci t, thm, g cc ng dng?
- t cu hnh ca mn hnh thng qua ng dng no?
- Control Panel chopheps lm nhng gi?

CNG BI GING
1. Thng tin chung
Mn hc: Lp trnh c bn
B mn:

Khoa hc my tnh, Khoa Cng Ngh Thng Tin

Gio vin ph trch: V Minh Ph, i t, TS, GVC


2. Phn II. Ngn ng lp trnh C/C++
Ch : Trong mi mc ging vin c th a vo nhiu v d minh ha, hc vin
ty tham kho ty theo kh nng.
Ch : Trong mi mc ging vin c th a vo nhiu v d minh ha, hc vin
ty tham kho ty theo kh nng.
1.1. Cc phn t v cc khi nim c bn
1.2. Cc kiu d liu c s
1.3 Cu trc chung ca chng trnh v qui tc vit CT
3. Thi lng: 4 tit
4. Mc ch
- hc vin nm c cch ci t v kch hot ca s son tho ngn ng
C/C++, cc chc nng ca ca s son tho.
- Gip hc sinh nm c cc khi nim c bn v ngn ng lp trnh
- Cc quy nh v t kha, hng, bin, cu lnh
- Cu trc chung ca mt chng trnh, bin dch v chy chng trnh
5. Ni dung
1.1 Cc phn t c bn
-B ch vit: a..z,A..Z;0..9;+,-,*,/>,<,>=,<=
-T kha: auto, break, case, char, continuie, defalt, do,
double, else,entry, enum, extern, float, for, goto, if,
int, long, register, return, sizeof,short, static,struct,
switch,typedef,union,

unsigned,

while,

void,

asm,

fortran, passcal, ada.


1.2. Quy nh v nh danh v khi vit mt chng trnh
7

- Khng c dng nhng t kha nh danh


- Tn nh danh phi vit lin nhau, nu vit cch nhau
phi c du ni di.
- Sau mi cu lnh c du kt thc ;
- Khai bo nhng thng tin cn khi vit chng trnh, tc
l khai bo cc hm th vin

1.3. Hng,bin.
- Hng s l thng tin c gi tr khng i trong qu
trnh thc hin chng trnh:
+ Hng s hc: S nguyn v s thc
+ Hng s nguyn c th biu din vi cc c s khc
nhau 8,10,16
+ -14, +14, 0114(c s 8 ng vi 76 trong c s 10)
+ Hng s thc vit di dng s thp phn thng thng
hoc di dng khoa hc.
+ Hng k t: Gm cc k t vit trong du nhy n.
a,b,
+ Hng kiu chui: Gm mt dy cc k t vit trong du
nhy n. abcxd,dbhk,
- Khai bo hng. const <kiu d liu> <tn hng>= <gi
tr>;

1.4.Bin.
- Thng tin c gi tr thay i trong qu trnh thc hin
chng trnh gi l bin.
- Bin c nhiu kiu, tn bin bt u bng ch ci, vit
lin nhau nu vit cch phi c du ni di.
- Tn bin khng c trng t kho.

1.5.Cc loi d liu c s.


a/ Kiu s nguyn: int

+ Khai bo: int <tn bin>;


+ Kiu s nguyn nm trong khong -32768 n 32767
+

nhiu

rng

cho

ngun:

char(-

127,..,128),short,long int(-2147483648 n 2147483647),


+ V d: int t; long int t;
b/ Kiu s thc: float
+ Khai bo: float <tn bin>;
+ C 2 dng m(khoa hc) v dng thng
+ C nhiu m rng cho s thc: float(-1.2E-38 n
1.2E38);double(-2.2E-308

2.2E308)

long

double(-3.4E-4932 n 3.4E4932);
+ V d: float x;
x=333.45; hoc
float x=333.45;
c/ Kiu k t: char
+ Khai bo: char <tn bin>;
+ Hng k t c c biu din nm gia 2 du nhy
n:a,b,
+ Trong bng m ASCII cc k t t 0-31 l cc k t
iu khin khng in ra c, bng sau cho ta s tng ng
gia k t v dy m
K t
BEL
Nhy cch

Dy m
\a
\t

K t
Xo tri
Nhy cch

Dy m
\b
\v

ngang
Xung dng

\n

ng
Xung di FF

\f

miLF
V u dng

\r

Du

\*

\
\\

Du ?
M nul

\?
\0

CR
Du
Du\

+ Hng xu k t c trong du nhy kp: ha noi


mua thu.
+ V d: char t;
+ Hm x l k t:
d/ Hm x l k t
- toASCII(c):Chuyn c thnh m ASCII,
- tolower(c),toupper(c):Chuyn c thnh ch thng, hoa
- getchar():Dng chng trnh ch nhp mt k t t bn
phm;
V d 1:
#include <iostream.h>
#include <ctype.h> /* cn phi c v cc hm trn nm
trong tp ny*/
#include <stdio.h>
void main()
{
char chuthuong,chuhoa;
cin>>chuthuong;
chuhoa=toupper(chuthuong);
cout<<chuhoa;
}
e/ Kiu boolean: bool
+ Khai bo: bool <tn bin>;
+ Nhn gi tr TRUE(1), FALSE(0)
+ Cc php ton: AND(&&); OR (||); NOT(!) vi cc gi
tr nh bng chn l logic.
U
1

V
1

U&&V
1

U||V
1

!U
0

10

1
0
0

0
0
1

0
0
0

1
0
1

0
1
1

+ C th in ra mn hnh kt qu ca php tnh logic


nh:
cout<<(%d,0&&3)- kt qu cho l 0.
f/ Cc hng tng trng:
+ Khai bo 1:

#define <Tn hng> <Gi tr>;

+ v d:#define pi 3.14592,#define max 3


+ Khai bo 2:

#define <Tn hng> <Xu k t>

6. Ti liu tham kho


- Quch Tun Ngc, Ngn ng lp trnh C++ trang 1-59
- Bi ging ca gio vin trang 1-7
- Phm Vn t, Ngn ng C++ v lp trnh hng i tng
- Dng T Cng, Ngn ng lp trnh C
7. Cu hi n tp
- T kha l g? Bin, hng l g?
- Khai bo bin, hng cn thc hin u trong chng trnh?
- D liu c s gm nhng loi no? Khai bo ra sao?

- Cu trc chung ca mt chng trnh gm nhng phn no?

CNG BI GING
1. Thng tin chung
Mn hc: Lp trnh c bn
B mn:

Khoa hc my tnh, Khoa Cng Ngh Thng Tin

11

Gio vin ph trch: V Minh Ph, i t, TS, GVC


2. Phn II. Ngn ng lp trnh C/C++
Ch : Trong mi mc ging vin c th a vo nhiu v d minh ha, hc vin
ty tham kho ty theo kh nng.
2.1. Php ton
2.2. Biu thc
2.3. Mt s hm v cc lnh vo ra
3. Thi lng: 4 tit
4. Mc ch
- hc vin nm c ton t, ton hng, cc php ton ng vi cc kiu d liu
- Gip hc sinh nh c php ca cc cu lnh vo-ra v cc hm th vin tng ng
5. Ni dung

2.1 Cc php ton


a/ Quan h
- Gm :

>(ln hn),<( nh hn),==(bng),!=(khc)

- Cho gi tr l TRUE(1) nu ng v FALSE(0) nu sai

b/ Logic (BOOLEAN)
- Gm : Hoc(||),v (&&),ph nh(!)
- Kt qu l gi tr cc bng chn l
U
1
1
0
0

V
1
0
0
1

||(OR)
1
1
0
1

&&(AND)
1
0
0
0

(NOT)
0
0
1
1

c/ Cc php ton s hc.


- Gm: +, -, *, /, % - cng, tr, nhn, chia, ly phn d
- Gi tr b mt sau php gn:
+ Nu int x th gn x=1.25 ch cho x=1
- Cch vit gn:
+ a+=b tng ng a=a+b
12

+ a-=b tng ng a=a-b


+ a*=b tng ng a=a*b
+ a/=b tng ng a=a/b
+ a%=b tng ng a=a%b

d/ Tng gim mt n v.
- ++ tng ln 1, (++a) tng ng a+=1
- -- Gim i 1

(--b) tng ng b-=1

- Ch : Vic t cc du ++,--trc u tin c tng


hoc gim 1 n v ri sau s dng kt qu mi
tnh. Cn ++,--sau th ngc li.
- V d: x=15;
y=x++ +2;
s=++x+3;
Kt qu cui cng x=17,y=17, s=20
V d 2:
#include <stdio.h>
void main()
{
int x,y,z,t;
x=3;y=4;
printf(t=%\d,x+ ++y);
printf(z=%\d,x+y);
}
Kt qu t=8,s=8

e/ p kiu:
- C/C++ cho php trn ln cc kiu d liu vi nhau,
nhng ng thi mi kiu d liu phn ng khac nhau i
vi mi php ton. Do di khi ta p cho my i kiu
d liu t kt qu mong mun
- V d:
13

int i,m,n;
float x;
x=m/n /* Kt qu l phn nguyn*/
x=m/ float(n) /* n b p thnh s thc nn Kt qu l
s thc*/

2.2. Biu thc.


a/ nh ngha T hp ton t v ton hng gi l biu
thc.
- V d: (a+b)*c-d; x=++a%b;
- Ch :
+ Tt c cc ton hng thuc kiu char, short int khi
tnh ton u c t

ng chuyn v int

+ Tt c cc ton hng kiu float u c chuyn v


kiu double.+ V d char a; int x,b; float c; double
d; x=(a*b)+(c-d)-(c*b)- hng t

u thnh kiu int,

2
hng t sau thnh kiu double.

b/ Chuyn kiu bt buc trong biu thc.


- C php: (kiu) <Ton hng>.
- V d: (float)(x/3+10*y) kt qu l kiu float v khng
ph thuc vo kt qu
V d 2:
#include <conio.h>
#include <stdio.h>
#include <iostream.h>
main{}
{
int x,y:integer;
float z;
14

y=7;
z=123.44;
cout<<(int)(z/3+10*y);
cout<<z/3+10*y;
}

c/ Cc hm s hc dnh cho s nguyn v s thc:


Hm
abs(i)
fabs(d)
sin(d),cos,cosh,tan,

Kiu
int
double

Kt qu
Cho tr tuyt i ca i
Cho tr tuyt i ca

double

s thc d
Cho tr gia tr

exp,log,sqrt,floor,ceil

sin,cos,cosh,tan,e
m,loga,cn,ct trn

pow(d1,d2),fmod(d1,d2)

double

s,hm lm trn s
d1 m d2, ly d1/d2

d/ Cc v d minh ha
V d 3: Minh ha cc hm
# include <iostream.h>
#include <conio.h>
void main()
{
int i,m,n;
float x;
m=13; n=4;
cout<< ket qua cua cac phep chia m/n<<endl;
x=m/n;
cout<<x<<

ket qua lay phan nguyen<<endl;

x=m/float(n);
cout<< ket qua chinh xac phep chia

m/n<<x<<endl;

}
15

V d 4:
# include <iostream.h>
#include <conio.h>
void main()
{
float x;
x=2.3+1.7;/* x=4*/
cout<<Gia tri x=%d\n<<x;
x=int(2.3)+int(1.7);/* x=3*/
cout<<Gia tri moi cua x=%d\n<<x;
}

e/ Kch thc ca i tng.


- C php: sizeof(ton hng);
- Gii thch: Cho bit s bytes m ton hng ang
chim.
V d 5:
#include <stdio.h>
char c;
void main()
{
int i;
long int x;
float y;
double z;
cout<<%d<<sizeof(c);
cout<<%d<<sizeof(i);
cout<<%d<<sizeof(x);
printf(%d,sizeof(y);
printf(%d,sizeof(z);
}
16

2.3 Cc lnh vo-ra


a/ Cc hm nhp
- Php gn: <tn bin>=<ton hng>;
x=10;
x1=x2+10;
- Trong C++ vic gn lin tip cng cho php:

void main()
{
int x1,x2
x2=x1=100;(php gn kp);
cout<< gia tri cua x1 la <<x1<<x2;
}
- S hiu chnh s c thc hin theo chiu:
int

long

float

double

long double

b/ Hm cin: Dng nhp d liu t bn phm vi c php


sau:
+ C php cin>> <bin>;
+ V d: cin>>x,y;
- Hm scanf(<tham s nh dng>,<bin>);
2.3 Cc ham xut d liu
a/ Hm cout: Dng a thng tin ra mn hnh
+ C php: cout<< <bin> hoc cout<< dng thng
bo;hoc
cout<< dng thng bo<< <bin>
b/ Hm prinf
- C php: prinf<tham s nh dng>, <bin>)
Mi tham s nh dng phi bt u bng k t %
- Ch : Khi dng 2 hm cin, cout phi gi hm u l
#include <iostream.h>,
17

#include <stdio.h>
V d 6:
#include <stdio.h>
#include <iostream.h>
main()
{
cout(

phan

nguyen

trong

phep

chia

1770/25

la

%d\n,1770/25);
}
V d 7: Chuyn n v thi gian c a vo bng giy
thnh gi pht giy
#include <stdio.h>
main()
{
long int giay,phut,gio;
cout<< Nhap thoi gian bang giay:\n;
cin>>giay;
gio=giay/3600; /* chuyn giy thnh gi*/
phut= (giay-3600*gio)/60;/* chuyn giy thnh pht */
giay= giay-3600*gio-60*phut/* phn giy cn li */
cout<< Doi giay ra gio phut giay la\n;
cout<<giay<< giay <<phut<< phut <<gio<< gio
getch();
return 0;
}
6. Ti liu tham kho
- Quch Tun Ngc, Ngn ng lp trnh C++ trang 82-99
- Bi ging ca gio vin
- Dng T Cng, Ngn ng lp trnh C, trang 15-25
7. Cu hi n tp
18

- Chc nng ca cc hm th vin: iostream.h, conio.h, stdio.h?


- Trnh by chc nng ca cc hm x l k t v hm s hc?
- Cc hm vo-ra, c php? ngha ca vic kt hp gia cc hm ny?

CNG BI GING
1. Thng tin chung
Mn hc: Lp trnh c bn
B mn:

Khoa hc my tnh, Khoa Cng Ngh Thng Tin

Gio vin ph trch: V Minh Ph, i t, TS, GVC


2. Phn II. Ngn ng lp trnh C/C++
Ch : Trong mi mc ging vin c th a vo nhiu v d minh ha, hc vin
ty tham kho ty theo kh nng.
4.1. Cc cu lnh iu kin

19

4.2. Cu lnh la chn


3. Thi lng: 4 tit
4. Mc ch
- hc vin nm c c php ca cc cu lnh iu kin
- ng dng thc hnh trn cc v d c th ng vi cc kiu d liu c s
5. Ni dung

4.1.Cu lnh iu kin


a/ Cu lnh if ...
- C php: if (biu thc)
{
Nhm lnh;
}
b/
C php: if (biu thc)
{
Nhm lnh 2;
}
else
{
Nhm lnh 2;
}
- Gii thch: a/ Nu biu thc tho mn th thc hin
<nhm lnh>.
b/ Nu biu thc tho mn th thc hin <nhm lnh 1> cn
khng thc hin <nhm lnh 2>.
- Ch : Nu nhm lnh l mt lnh th khng cn bao bi
{

}.

c/ Cc v d minh ha v gii thch cc dng lnh.

20

Vi d 8: Nhp t bn phm 3 cnh ca tam gic. Xc nh


xem l tam gic g?
#include <stdio.h>
#include <math.h>
main()
{
float a,b,c;
printf(nhap gia tri a,b,c:\n);
cin>>a>>b>>c;
if ((a>=b+c)||(b>=a+c)||(c>=b+a))
printf(a,b,c khong la canh cua tam gic\n);
else
if(a==b && b==c)
printf(Tam gic u\n);
else
if(a==b || b==c || c==a)
printf(Tam gic can);
else
printf(Tam giac thuong);
if ((a*a==b*b+c*c)||(b*b==a*a+c*c)||(c*c==a*a+b*b))
printf( vuong\n);
}
Vi d 9: (tham kho thm) Tnh din tch ca tam gic vi
cc cnh c nhp vo t bn phm
#include <stdio.h>
#include <math.h>
#include <iostream.h>
#include <conio.h>
main()
21

{
float a,b,c,chuvi,dientich;
printf("nhap gia tri a,b,c:\n");
cin>>a>>b>>c;
if ((a>=b+c)||(b>=a+c)||(c>=b+a))
printf("a,b,c khong la canh cua tam giac\n");
else
{
chuvi=a+b+c;
dientich=chuvi/2*(chuvi/2-a)*(chuvi/2-b)*(chuvi/2-c);
dientich=sqrt(dientich);
printf("Chu vi %f \n",chuvi);
printf("Dien tich %f \n",dientich);
}
getch();
}
V d 10: Tnh tin in phi tr hng thng theo quy
nh sau:
+ n 50 kw phi tr 50 ng
+ Ln hn 50 v <=100 tr 70 ng
+ Ln hn 100 v <=200 tr 100 ng
+ Ln hn 200 tr 150.5 ng
#include <stdio.h>
#include <math.h>
#include <conio.h>
main()
{
int tieuthu;
float tiendien;
printf(nhap luong dien tieu thu\n);
22

cin>>tieuthu;
if(tieuthu<=50)
tiendien=tieuthu*50;
else
if (tieuthu<=100)
tiendien=50*50+(tieuthu-50)*70;
else
if (tieuthu<=200)
tiendien=50*50+50*70+(tieuthu-100)*100;
else
tiendien=50*50+50*70+100*100+(tieuthu-200)*150.5;
printf(So tien phai tra la:%f\n,tiendien);
}
V d 11: Gii phng trnh bc 2 vi a, b, c c nhp
vo t bn phm.
//#include <stdio.h>
# include <iostream.h>
#include <math.h>
#include <conio.h>
main()
{
float a,b,c,delta,x1,x2;
cout<<" Nhap vao gia tri a b c:

";

cin>>a>>b>>c;
delta=b*b-4*a*c;
if (delta > 0)
{
cout<<"Nghiem x1 ="<<(-b+sqrt(delta))/(2*a)<<endl;
cout<<"Nghiem x2 ="<<(-b-sqrt(delta))/(2*a)<<endl;
}
23

else
if (delta==0)
cout<<"Nghiem x1=x2 ="<<-b/(2*a)<<endl;
else
{
cout<<"Nghiem

phuc

x1

="<<-b/(2*a)<<"

x2

="<<-b/(2*a)<<"

*"<<sqrt(-delta)/(2*a)<<endl;
cout<<"Nghiem

phuc

*"<<sqrt(-delta)/(2*a)<<endl;
}
getch();
}

4.2. Cu lnh switch: Chn mt trong cc phng


n
- C php: switch(Biu thc)
{
case <hng 1>: <Dy lnh 1>;
case <hng 2>: <Dy lnh 2>;
.
case <hng k>: <Dy lnh k>;
defaut:

<dy lnh k+1>;

}
- Gii thch: Thc hin mt dy lnh ng vi mt gi tr
ca biu thc.
V d 12: Nhp vo mt thng ca nm cho bit s ngy ca
thng .
# include <iostream.h>
#include <math.h>
#include <conio.h>

24

main()
{
int ngay,thang,nam;
cout<<" Cho thang: \n";
cin>>thang;
switch (thang)
{
case 1,3,,5,7,8,10,12:
cout<<thang<<" co 31 ngay"<<endl;
break;
case 4,6,9,11:
cout<<thang<<" co 30 ngay"<<endl;
break;
case 2:
{
cout<<" Cho nam: \n";
cin>>nam;
if (nam%4==0)
cout<<thang<<" co 29 ngay"<<endl;
else
cout<<thang<<" co 28 ngay"<<endl;
break;
}
}
getch();
return 0;
}
- Ch : Sau mi case phi c lnh break thot ra khi tho mn.
6. Ti liu tham kho

25

- Quch Tun Ngc, Ngn ng lp trnh C++ trang 1-59


- Bi ging ca gio vin trang 19-26
- Dng T Cng, Ngn ng lp trnh C
7. Cu hi n tp
- Trnh by s khc bit gia cu lnh iu kin v cu lnh la chn?
- Vit chng trnh tmnghieemj ca h phng trnh tuyn tnh bc nht?
- Vit chng trnh tnh gi tr ln nht, nh nht ca n s c nhp vo t bn
phm?

B mn:

Khoa hc my tnh, Khoa Cng Ngh Thng Tin

Gio vin ph trch: V Minh Ph, i t, TS, GVC


2. Phn II. Ngn ng lp trnh C/C++
Ch : Trong mi mc ging vin c th a vo nhiu v d minh ha, hc vin
ty tham kho ty theo kh nng.
5.1. Cu lnh lp xc nh
26

5.2. Cu lnh lp khng xc nh


3. Thi lng: 4 tit
4. Mc ch
- hc vin nm c c php ca cc cu lnh lp xc nh v khng xc nh
- Phn bit c bn cht ca cc cu lnh lp trn
- ng dng thc hnh trn cc v d c th ng vi cc kiu d liu c s
5. Ni dung: Cu lnh lp.
Khi cn thc hin mt cng vic lp i lp li nhiu ln
vi mt s cu lnh nh nhau theo mt quy lut no ca
bin ta s dng lm gin tin n ta s dng vng lp.

6.1. Cu lnh for (vng lp xc nh).


- thc hin mt cng vic nhiu ln vi cc
tham s khc nhau ngi ta ngi ta xy dng cc
vng lp cho php vit gn cng vic .
a/ C php for (<biu thc 1>;<biu thc 2>;<biu thc
3>);
- <Biu thc 1>: Dng khi to bin iu khin vng lp.
- <Biu thc 2>: Dng kim tra iu kin thc hin
vng lp.
- <Biu thc 3>: Dng thay i gi tr ca bin iu
khin.
b/ Cc v d v s dng cu lnh forv gii thch
ngha
V d 13: Nhp vo t bn phm 2 s nguyn. Tnh tng cc
s nguyn nm gia 2 s .
#include <stdio.h>
#include <math.h>
void main()
{

27

int i,a,b,tam;
long tong;
printf(nhap so thu nhat\n);
cin>>a;
printf(nhap so thu hai\n);
cin>>b;
if (a>b)
{
tam=a;
a=b;
b=tam;
}
tong=0;
for(i=a;i<=b;i++)
tong+=i;
printf(Tong la: %d,tong);
}
V d 14: Nhp n vo t bn phm, tnh 1!+2!++n!
#include <stdio.h>
#include <math.h>
*/#define n 5;*/
void main()
{
int i,n,tam;
long int tonggiaithua;
printf(nhap n= \n);
cin>>n;
tonggiaithua=0;tam=1;
for(i=1;i<=n;i++)
{
28

tam=tam*i;
tonggiaithua=tonggiaithua+tam
}
printf(Tong giai thua la: %d,tonggiaithua);
}
6.2. Cu lnh lp khng xc inh: while...
a/C php while(<biu thc>)
{
< Cc lnh>
};
- Gii thch: Vng lp s c thc hin nu biu thc
tho

mn(Nhn

gi

tr

true)

kt

thc

khi

<biu

thc>nhn gi tr false.
b/ Cc v d
V d 16: Tnh tng s=1-1/(1*2)++(-1)n *1/(n*(n+1))+
vi chnh xc epsilon=0.0001;
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
void main()
{
int i;
float tam,tg,tong;
const float epsilon=0.0001;
i=1;tam=1;tong=1;tg=1;
while (fabs(tg)>=epsilon)
{
tam=-tam;
tg=tam/[i*(i+1)];
29

i++;
tong=tong+tg;
}
cout<<" tong la:<<tong<<endl;
getch();
}
V d 17: Tnh gi tr ca e m x vi x c nhp t bn
phm vi chnh xc tu .
# include <iostream.h>
# include <math.h>
# include <conio.h>
main()
{
int i;
float emu,epsilon,x,tam,tong;
cin>>x;
cin>>epsilon;
emu=1;
i=1;
tam=1;
while (tam>=epsilon)
{ tam=tam*x/i;
i++;
emu+=tam;
}
cout<< Gia tri ham e mu x : <<emu;
getch();
return 0;
}

30

6.3. Cu lnh do while.


a/ C php do
{<Cc lnh>}
while(<biu thc>);
- Gii thch: Cu lnh do while khc cu lnh while ch
while kim tra iu kin ri tin hnh thc hin cc lnh
trong {

}, cn do while lp ri mi kim tra iu kin

nu ng chy tip.
- Ch : Cu lnh do while th phi c du kt thc;
sau
a/ Cc v d
V d 18: Tnh cosx=1-x2/2!+..+(-1)n*x2n/(2n)!+.. vi x
c nhp t bn phm
1. Dng vng lp while:
#include <iostream.h>
#include <stdio.h>
#include <math.h>
#include <conio.h>
void main()
{
int i;
float tam,x,epsilon,tong;
epsilon=0.0001;
printf("nhap gia tri x \n");
cin>>x;
i=1;tam=1;tong=1;
while(fabs(tam)>=epsilon)
{
if (i==1)
31

tam=x;
tam=-x*x*tam*1/((2*i-1)*(2*i));
tong+=tam;
i++;
}
cout<<"tong la:"<<tong;
getch();
}
2. Dng vng lp dowhile:
#include <iostream.h>
#include <stdio.h>
#include <math.h>
#include <conio.h>
void main()
{
int i;
float tam,x,epsilon,tong;
epsilon=0.00001;
printf("nhap gia tri x \n");
cin>>x;
i=1;tam=1;tong=1;
do
{
tam=-x*x*tam*1/((2*i-1)*(2*i));
tong+=tam;
i++;
}
while (fabs(tam)>=epsilon);
cout<<"tong la:"<<tong;
getch();
32

}
V d 19: (tham kho)S pi c tnh thng qua cng thc
sau: Pi/4=1-1/3++(-1)n/(2n+1)+..Vit chng trnh tnh
s pi
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
#include <iomanip.h>
#include <math.h>
void main()
{
int i;
float tam,epsilon,pi;
epsilon=0.00001;
pi=1;i=1;
tam=1;
while (fabs(tam/(2*i+1))>=epsilon)
{
tam=-tam;
pi+=tam/(2*i+1);
i++;
}
cout<<" so pi=

"<<setw(10)<<4*pi;

}
- V d 20: (tham kho) Va g va ch, b li cho trn,
36 con 100 chn chn. Tnh s ch, g
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
void main()
33

{
int x,y;
x=0;
do
{ x++;
y=36-x;
}
while(2*x+4*y!=100);
cout<<"So ga:

"<<x<<endl;

cout<<"So cho: "<<y<<endl;


getch();
}
6.4. Cc cu lnh b tr cho cu lnh lp
a/ Cu lnh break
- C php: break;
- Gii thch: Cho php thot khi cc vng lp v chuyn
quyn iu khin cho lnh nm ngay sau vng lp,hoc l
kt thc cu lnh iu khin ang thc hin.
b/ Cu lnh continue
- C php: continue;
- Gii thch: Cho php chuyn sang vng lp tip theo m
khng cn thc hin phn cn li.
- V d 21: Minh ho lnh continue
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
void main()
{
int i;
for (i=1;i<=5;i++)
34

{
cout<< Gia tri I = <<i<<endl;
if (i<4) continue; /* nu tho th tip tuc */
cout<<Sang lenh moi khi khong thoa va thuc hien tiep\n;
}
getch();
}
- V d 22: Minh ho lnh continue,bng cch tnh bnh
phng ca s dng nhp t bn phm.
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
void main()
{
int i;
do
{
cout<< Nhap vao so i \n<<endl;
cin>>i;
if (i<0)
{ cout<< nhap lai so >0 \n;
continue; /* nu tho th tip tuc */
}
cout<<Binh phuong cua so vua nhap la : <<i*i<<endl;
}
while(i);
getch();
}
c/ Lnh: goto

35

-Lnh goto s chuyn iu khin n v tr c nhn trong


chng trnh.
- V d 23: Minh ho lnh goto.
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
void main()
{
int i;
for (i=1;i<=10;i++)
{
cout<< Thuc hien lap \n;
cout<<i<< Chao cc ban \n;
if (i==3) goto ra;
cout<< Ket thuc vong<<i<<endl;
}
ra: cout<< Het vong lap<<i<<endl;
}

6. Ti liu tham kho


- Quch Tun Ngc, Ngn ng lp trnh C++ trang 159-169
- Bi ging ca gio vin :27-45.
- Dng T Cng, Ngn ng lp trnh C,trang 54-78
7. Cu hi n tp
- Trnh by s khc bit gia cu lnh lp xc nh v khng xc nh?
- Vit chng trnh tnh tgx, sinx,cosx,s pi?

36

B mn:

Khoa hc my tnh, Khoa Cng Ngh Thng Tin

Gio vin ph trch: V Minh Ph, i t, TS, GVC


2. Phn II. Ngn ng lp trnh C/C++
Ch : Trong mi mc ging vin c th a vo nhiu v d minh ha, hc vin
ty tham kho ty theo kh nng.
6.1. D liu kiu mng

37

6.2. Con tr
3. Thi lng: 4 tit
4. Mc ch
- hc vin nm c c php ca cc mng 1-2 chiu
- ng dng khc khai bo mng gii cc bi ton thc t
- Nm c tnh tin dng ca khai bo v s dng con tr trong lp trnh
5. Ni dung

7.1.Mng
a/ Mng 1 chiu
-

php:<Kiu

phn

t>

<Tn

mng>[<S

ph.

ca

mng];
- V d: int a[100]; char text[80]
- Lu : Ch s u tin ca mng l 0
a[0]

a[1]

a[2]

a[87] a[98] a[99]

-Vi khai bo: static char messege[25] cng l mng 25 k


t song l cp pht tnh cho b nh mng ny.
-V d 27: a thc
P(x)=anxn+an-1xn-1+an-2xn-2+..+a1x1+a0=((anx+an-1)x+an

)x+)

-2

x+a1)+a0.Nhp x v h s vo t bn phm. Tnh gi tr


ca a thc.
#include <stdio.h>
#include <math.h>
#include <conio.h>
#include <iostream.h>
void main()
{
float a[20];
int i,k;
38

float p,x;
printf("nhap bac cao nhat cua da thuc\ n");
cin>>k;
printf("nhap cac he so \n");
for (i=0;i<=k;i++)
{
cout<<"a["<<i<<"]=");
cin>>a[i];
}
printf("nhap gia tri x \n");
cin>>x;
p=a[k];
for(i=k-1;i>=0;i--);
p=p*x+a[i];
printf("Gia tri da thuc=%f",p);
}
- Bi ton trn c gii bi thut ton Horner.
V d 28: Nhp vo t bn phm dy s nguyn hy sp xp
theo th t tng dn.
#include <iostream.h>
#define n 5
main()
{
int i,j,tam;
int a[n];
for (i=0;i<=n;i++)
cin>>a[i]<<endl;
for (i=0;i<=n;i++)
for (j=i+1;j<=n;j++)
if(a[i]>a[j])
39

{ tam=a[i];a[i]=a[j]; a[j]=tam;}
for (i=0;i<=n;i++)
cout<<a[i]<<

b/ Khi to gi tr mng.
- Mng c th khi to gi tr ngay sau khi khai bo:
int a[3]={3,4,5}. iu ny ngha l a[0]=3,a[1]=4,a[2]=5,
- Mng c truy nhp trc tip.

c/ Mng nhiu chiu


- C php:<kiu mng> <tn mang>[k.t. hng][k.t.
a[0][0]
a[0][1]
a[1][0]
a[1][1]
a[2][0]
a[2][1]
V d: a[3][5];

a[0][2]
a[1][2]
a[2][2]

a[0][3]
a[1][3]
a[2][3]

ct];

a[0][4]
a[1][4]
a[2][4]

- Khi to mng vi cc gi tr ban u:

int a[3,2]={{1,2},{3,4},{5,6}};
-V d 29: Hy tnh tch ca 2 ma trn vung c nhp t
bn phm.
#include <stdio.h>
#include <math.h>
#include <conio.h>
#include <iostream.h>
# define m 4
# define n 4
# define l 4
void main()
{
int i,j,k;
float a[m][n],b[n][l],c[m][l];

40

for (i=0;i<m;i++)
for (j=0;j<n;j++)
cin>>a[i][j];
for (i=0;i<n;i++)
for (j=0;j<l;j++)
cin>>b[i][j];
for (i=0;i<m;i++)
for (j=0;j<l;j++)
{
c[i][j]=0;
for (k=0;k<n;k++)
c[i][j]=c[i][j]+a[i][k]*b[k][j];
}
cout<< Ma tran tich la: \n;
for (i=0;i<m;i++)
{
for (j=0;j<m;j++)
cout<<c[i][j]<<

cout<<<<endl;
}
getch();
}
- V d trn d trn ch m t tch ca 2 ma trn ch
cha tnh n vic vit cha p mt iu ny s thc
hin sau ny.

7.2. Con tr
a/ Nguyn tc hot ng
- B nh ca my tnh gm nhiu nh xp lin nhau. Mi
nh c 2 phn: Phn a ch v Phn ni dung.
- K hiu ton t con tr v a ch nh sau:
41

*p:l d liu ti a ch p gi l ton t ly d liu


quy chiu c ni dung gin tip qua con tr.
-&x l a ch ca bin x, gi l ton t a ch ca x
- Con tr l bin cha a ch, khng cha gi tr s
liu.
V d:
int x=15; //gi tr bin x
int *p;=15 //Khai bo d liu s nguyn c da ch nm
trong con tr p
p=&x; //nhn gi tr a ch ca x
-Gii thch: u tin con tr p cha c gi tr xc nh,
sau php gn p=&x th p s tr ti x, lc ny con tr p
l bin gi gi tr a ch ca nh x
Vng nh ang cha con tr

Vng nh cha d liu ang x

l
a ch

Ni dung nh

a ch

Ni dung nh

56F0
56F4

1234
FOF

F0F0
FOF

F6
15

&p

P=&x

&x

*p=x

b/ M t qua v d
#include <iostream.h>
main()
{
int so;
int *contro;
so=10;
cout<<\n Dia chi cua so<<&so;
cout<<\n Gia tri cua so<<so;

42

contro=&so;// Con tro tro toi so


cout<<\n Dia chi cua con tro <<&contro;
cout<<\n Gia tri cua con tro <<contro;
cout<<\n Gia tri duoc con tro tro toi<<*contro;
}
Kt qu:
a ch ca so:0x8EEA0FFE
Gi tr ca so:10
a ch ca con tr:0x8EEA0FFA
Gi tr ca con tr:0x8EEA0FFE
Gi tr con tr tr ti:10.
6. Ti liu tham kho
- Quch Tun Ngc, Ngn ng lp trnh C++ trang 212-227
- Bi ging ca gio vin
- Dng T Cng, Ngn ng lp trnh C, trang 140-174.
7. Cu hi n tp
- Trnh by cch b tr mng trong b nh?
- Vit chng trnh tnh gi tr a thc, tnh tch cc ma trn, tnh nghim ca phng
trnh f(x)=0 trn [a,b], tnh tch phn theo cng thc hnh thang, Smon.
- Trnh by v con tr, phn tch s khc bit gia *contro,&contro.

B mn:

Khoa hc my tnh, Khoa Cng Ngh Thng Tin

Gio vin ph trch: V Minh Ph, i t, TS, GVC


2. Phn II. Ngn ng lp trnh C/C++
Ch : Trong mi mc ging vin c th a vo nhiu v d minh ha, hc vin
ty tham kho ty theo kh nng.
8.1. Mt vi thut ton sp xp n gin
6.2. Xu k t
3. Thi lng: 4 tit
43

4. Mc ch
- hc vin nm c thut ton i ch trc tip v chn trc tip
- ng dng cc thut ton vo mt s v d c th
- Nm c c php, cc thao tc vo-ra i vi xu k t
5. Ni dung
8.1. Sp xp
a/ i ch trc tip:
- S dng mng a[n] khai bo v lu gi dy cho trc.
-Thc hin lp t i=1,2,,n
- So snh a[i], ln lt vi a[i+1], a[i+2], a[n], nu ln hn i ch
- Kt thc lp ta c dy c sp xp tng dn
V d 28: Nhp vo t bn phm dy s nguyn hy sp xp
theo th t tng dn.
#include <iostream.h>
#define n 5
main()
{
int i,j,tam;
int a[n];
for (i=0;i<=n;i++)
cin>>a[i]<<endl;
for (i=0;i<=n;i++)
for (j=i+1;j<=n;j++)
if(a[i]>a[j])
{ tam=a[i];a[i]=a[j]; a[j]=tam;}
for (i=0;i<=n;i++)
cout<<a[i]<<

b/ Chn trc tip


44

- Gi s a[1],,a[i-1] c sp
- Thc hin lp chn a[i] vo v tr thch hp dy a[1],...,a[i] tng

8.2. Xu k t.
a/ Khi nim xu.
- C/C++ s dng mng cc xu k t cha xu k t.
- Xu k t c lu tr trong mng k t song n c
nh du s kt thc xu bng mt phn t cui cng mang
gi tr c bit: K t null l k t u tin c m k
t 0 trong ASCII c k hiu trong C/C++ l \0
b/ Khai bo: char <ten xu>[< di];
<tn xu> s cha ti a l < di> k t.
- V d: char a[50];
- Xu ch cha ti a l < di>-1, cui cng cha k
hiu kt thc.
- C th khai bo: char str[]=day la xau can nhap;
(Khng ch ra s cc i my s t ng b tr mng
nh cha dy k t trn + 1 cha \0
c/ Lnh nhp xu thng thng
gets(<tn xu): Cho php nhp <tn xu> vo t bn phm
- V d: gets(a) v nhp xu nguyen van a khi trong
b nh c dng sau:
n

\0

c/ di thc ca xu l strlen(<xu>). Hm ny c trong


th vin <string.h>.
- Ba kiu khai bo sau l tng ng:
1. char text[5]={D,C,f,S,P};
2. char text[5]=DCfSP;
3. char text[]=DCfSP;

45

Nh vy text[0]=D,text[1]=C,text[2]=f,text[3]=S,
text[4]=P.
- Hai kiu u thiu 1 k t cho \0.

d/ Truy cp vo mt phn t ca xu.


-C php: <tn xu>[<ch s>]
-Gii thch: Ch s chy t 0 n di cc i ca xu
v cho ta phn t th <ch s>+1

e/ In mt xu ra mn hnh.
- C php: cout<< <tn xu>;
- V d: cout<< Thi du; cout<<st;

f/ Nhp mt xu t bn phm
- n gin ta k hiu str l mt xu k t
- C php: + cin>> str;

(1) ly t tp iostream.h

+ cin.get(str,max); (2)ly t tp
iostream.h
+ gets(str);

(3) ly t tp stdio.h

- Gii thch: (1): c vo mt xu nhng n ch c xu


khng cha du cch trng(du cch, du TAB, xung dng)
V d nhp t toi day th str chi nhn toi
- (2): c xu k t cho xu str cho n khi n nhn c
ENTER hoc cho n khi t s lng cc k t l max.
- (3): Cho ta xu va nhp.
- Ch : Nu dng (1) (c phn u ca xu) sau dng
tip (2) th s nhn c phn cn li ca xu va nhp
theo(1). V d sau minh ho iu .
-V d 30: M t kt qu ca 3 cch nhp
#include <iostream.h>
#include <stdio.h>

46

#include <conio.h>
#include <string.h>
main()
{
char str[30],str1[30];
int i;
int max=15;
cout<<" Minh hoa cac cach nhap boi cin, cin.get, gets
\n";
cin>>str;
cout<<" Xau nhan duoc:

"<<str<<endl;

getch();
cin.get(str1,max);
cout<<" Xau nhan duoc1:

"<<str1<<endl;

getch();
gets(str);
cout<<" Xau nhan duoc:

"<<str<<endl;

getch();
return 0;
}

g/ Ghp xu k t.
-

th

dng

hm

strcat(str1,str2)

trong

th

vin

string.h ghp 2 xu, song c th xy dng chng trnh


nh sau:
-V d 31a: Ghp cc xu k t
#include <iostream.h>
/*#include <stdio.h>*/
#include <conio.h>
#include <string.h>
main()
47

{
char str[40]=" Hoc C++ can kien tri";
char str1[40]="Khong chan nan";
int dem1=0,dem2=0;
while (str[dem1] !='\0') dem1++;
while(str1[dem2] !='\0') dem2++;
if ((sizeof(str)/sizeof(str[0]))<(dem1+dem2+1))
{
cout<<"

Khong the thuc hien ghep";

}
else
{
dem2=0;
while (str1[dem2] != '\0')
str[dem1++]=str1[dem2++];
str[dem1]='\0';
cout<<str;
}
getch();
return 0;
}
-V d 31b: (tham kho) Ghp cc xu k t
#include <iostream.h>
/*#include <stdio.h>*/
#include <conio.h>
#include <string.h>
main()
{
char str[40]=" Hoc C++ can kien tri";
char str1[40]="Khong chan nan";
48

int dem1=0,dem2=0;
while (str[dem1] !='\0') dem1++;
while(str1[dem2] !='\0') dem2++;
if ((sizeof(str)/sizeof(str[0]))<(dem1+dem2+1))
{
cout<<"

Khong the thuc hien ghep";

}
else
{
dem2=0;
while (dem2<strlen(str1) )
str[dem1++]=str1[dem2++];
str[dem1]='\0';
cout<<str;
}
getch();
return 0;
}

h/ Copy xu k t.
- C th dng hm strcpy(str1,str2) trong th vin chun
<string.h>.
- Th d sau minh ho cch to ra hm strcpy.
-V d 32: Copy cc xu k t
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
#include <string.h>
main()
{
49

char str1[40], str2[40];


int i;
/*cout<<" Nhap vao xau 1:"<<endl;
gets(str1);*/
cout<<" Nhap vao xau 2:"<<endl;
gets(str2);
cout<<strcpy(str1,str2);
cout<<str1<<" gan xong"<<endl;
getch();
return 0;
}
-V d 33: (tham kho) S dng th vin cc hm
#include <iostream.h>
#include <conio.h>
#include <string.h>;
int main(void)
{
char destination[25];
char *blank="!!!

", *c=" C++ ", *turbo=" Turbo ";

strcpy(destination,turbo);
strcat(destination,turbo);
strcat(destination,c);
cout<<" xau dich :"<<destination;
getch();
return 0;
}
i/ So snh xu k t.
- Hai xu c di khc nhau ging nhau n di xu
ngn hn c coi l xu b hn.

50

- Hai xu bng nhau ging nhau nu ni dung v di ca


chng ging nhau.
- Xu trc sau tun th th t t in.
-V

dFILENAME<FILENAME

A,FILENAME==FILENAME

gi tr true.
- Hm so snh: strcmp(str1,str2): Cho kt qu 0 nu bng,
<0 nu str1<str2,>0 nu str1>str2.
-V d 34: Chng trnh so snh 2 xu.
/* Copy xau ky tu */
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
#include <string.h>
main()
{
char str1[40], str2[40];
cout<<" Nhap vao xau 1:"<<endl;
gets(str1);
cout<<" Nhap vao xau 2:"<<endl;
gets(str2);
if (strcmp(str1, str2)==0)
cout<<" giong nhau hoan toan";
else
if(strcmp(str1,str2)<0)
cout<<str1;
else(cout<<str2);
cout<<" dung truoc ";
(strcmp(str1,str2)<0) ? (cout<<str2): (cout<<str1);
getch();
return 0;
51

}
-V d 35:In ra m k t tng ng vi cc k t trong
xu
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
#include <string.h>
void main()
{
char *str1;
char st[80];
do
{
str1=st;
cin.get(st,80);
while(*str1)
cout<<int(*str1++)<<"

";

}
while(strcmp(st,"done")==0);
getch();
}
-V d 36: (tham kho)i ch thnh ch hoa v m c bao
nhiu ln xut hin ca cc k t xut trong xu.
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <ctype.h>
#define dodai 80
52

void main()
{
char str[dodai];
int i, demchu['Z' - 'A'+1];
clrscr();
for(i=0;i<=('Z'-'A'+1);i++)
demchu[i]=0;
cin.get(str,dodai);
for(i=0;i<strlen(str);i++)
str[i]=toupper(str[i]);
cout<<str;
for(i=0;i<=strlen(str);i++)
demchu[str[i]-'A']++;
for(i='A';i<='Z';i++)
if (demchu[i-'A'])
cout<<"\n so chu"<<char(i)<<"--"<<demchu[i-'A'];
getch();
}
6. Ti liu tham kho
- Quch Tun Ngc, Ngn ng lp trnh C++ trang 1-59
- Bi ging ca gio vin (tp bi ging km theo)
- Dng T Cng, Ngn ng lp trnh C
7. Cu hi n tp
- Vit chng trnh sp xp tng dn theo thut ton chn trc tip
- Phn tch s khc nhau v ging nhau ca cc phng php nhp xu
- Tm, m s t trong xu, s ln xut hin ca cc loi k t trong xu

53

B mn:

Khoa hc my tnh, Khoa Cng Ngh Thng Tin

Gio vin ph trch: V Minh Ph, i t, TS, GVC


2. Phn II. Ngn ng lp trnh C/C++
Ch : Trong mi mc ging vin c th a vo nhiu v d minh ha, hc vin
ty tham kho ty theo kh nng.
54

8.1. Mt vi thut ton sp xp n gin


6.2. Xu k t
3. Thi lng: 4 tit
4. Mc ch
- hc vin nm c thut ton i ch trc tip v chn trc tip
- ng dng cc thut ton vo mt s v d c th
- Nm c c php, cc thao tc vo-ra i vi xu k t
5. Ni dung
9.1. Khi nim hm
9.2. Tnh quy

9.1. Khi nim hm.


- Hm l mt on chng trnh nhm thc hin mt nhim
v no ,c th tr li kt qu cho tn hm hoc khng
tu thuc vo yu cu ca ngi lp trnh
- Hm trong C/C++ cn c nhiu tnh nng vt tri m ta
s xt n sau.
a/ Khai bo hm
C php:
-<kiu gi tr hm> <ten hm>(<cc th.s hnh thc v
kiu ca chng>);
(1)
-void <ten hm>(<cc th.s hnh thc v kiu ca chng>);
(2)
- Khi tnh xong gi tr ca hm ta phi tr li gi tr
cho tn hm bng lnh return <gi tr>
- Nu hm khng cn tr li gi tr th u tn hm phi
c t kho void.
- float vidu(float a, int b,int c);

b/ Tham s thc s v tham s hnh thc

55

- Cc tham s dng khi khai bo gi l tham s hnh thc.


- Tham s c cung cp cho hm khi s dng gi l tham
s thc s
- Tham s thc s c th l biu thc.
- Phi c tng ng 1 1 gia tham s thc s v tham s
hnh thc.

c/ Lnh return.
- Hm return c th tr gi tr ca c mt biu thc v
d 2 cch vit sau l tng ng:
float vidu(float x, int a, int b,int c)
{
return a*x*x+b*x+c;
}
v
float vidu(float x, int a, int b,int c)
{ float giatri;
giatri=a*x*x+b*x+c;
return giatri;
- Lnh return c th xut hin nhiu ln trong hm
- V d: double trituyetdoi(double u,double v)
{ double s;
s=u+v;
if s>0 return s
else return s;
}

d/ Hm khng c gi tri.
- Hm khng c gi tr phi c khai bo theo dng (2)
v khng cha lnh return trong.
- void vidu(float a, int b,int c);

56

e/ V d minh ho
V d 24: Tnh gi tr a*x2+b*x+c;
#include <iostream.h>
#include <conio.h>
#include <math.h>
float ham_vi_du(float,int,int,int);
void main()
{
%float ham_vi_du(float,int,int,int);
float x,y,z;
int a,b,c;
cout<<" nhap he so a, b, c : \n";
cin>>a>>b>>c;
cout<<" nhap gia tri x lan 1: \n";
cin>>x;
y=ham_vi_du(x,a,b,c);
cout<<" Gia tri cua ham ham_vi_d = "<<y<<endl;
cout<<" nhap gia tri x lan 2: \n";
cin>>x;
y=ham_vi_du(x,a,b,c);
cout<<" Gia tri moi cua ham ham_vi_du = "<<y<<endl;
getch();
}
float ham_vi_du(float x,int a,int b,int c)
{
float gia_tri;
gia_tri=a*x*x+b*x+c;
return gia_tri;
}
V d 25: Tnh n giai tha
57

#include <iostream.h>
#include <conio.h>
void main()
{
long int giai_thua(int);
int n;
long int y;
cout<<" Nhap gia tri n : \n";
cin>>n;
y=giai_thua(n);
cout<<" gia tri giai thua = "<<y;
getch();
}
long int giai_thua(int n)
{
int i;
long int gia_tri;
gia_tri=1;
for (i=1;i<=n;i++)
gia_tri*=i;
return gia_tri;
}
e/ Truyn tham s gi tr cho hm
- Truyn tham s cho hm trong C/C++ c thc hin duy
nht l truyn tham tr iu c ngha l tham s thc
s trc v sau khi gi hm l khng i v l kiu
duy nht.
V d 27: V d m t cch truyn tham tr
#include <iostream.h>
main()
58

{
void hoan_vi(int a, int b);
int n=10,m=20;
cout<<Truoc khi goi ham

:<<n<<

<<m<<endl;

hoan_vi(n,m);
cout<< Sau khi goi ham

:<<n<<

<<m<<endl;

}
void hoan_vi(int a, int b)
{
int t;
cout<< Truoc khi hoan vi :<<n<<

<<m<<endl;

t=a;
a=b;
b=t;
cout<< Sau khi hoan vi :<<a<<

<<b<<endl;

f/ Bin ton cc v bin a phng.


- Bin ton cc l bin s dng mi ni trong chng
trnh. N c khai bo bn ngoi c chng trnh chnh.
- Bin a phng l bin c khai bo trong cc hm khi
hm kt thc th cc bin ny cng mt lun.
- V d v bin ton cc:
#include <iostream.h>
int i;
main()
{
void thidu(void);
for (i=1;i<=5;i++)
thidu();
}
59

void thidu(void)
{
int m=3; /* m l bin a phng*/
m++;
count<<i<<

<<m<<endl;

g/ Tm hot ng ca bin
- Bin ton cc: Hot ng trn ton b chng trnh ngay
sau khi khai bo n
- Bin a phng: Ch hot ng trong hm cha n. Cch
cp pht cho bin a phng l cp pht t ng, mi ln
gi hm l mt ln cp pht.
- Bin a phng tnh (static):L

bin do yu cu c

cp pht mt v tr c nh, loi bin ny c th tn


ti ngay c khi hm kt thc hot ng
- Cc bin a phng tnh c khi to =0 khi bt u
ln gi u
- V d minh ho:
V d 28:
#include <iostream.h>
int i;
main()
{
void thidu(void);
for (i=1;i<=5;i++)
thidu()
}
void thidu(void)
{ static int m=3; /* m l bin a phng static */
m++;
60

count<< goi ham lan thu

<<m<<endl;

9.2. Tnh quy ca hm.


- quy l mt i tng T c thc hin thng qua T1
ging ht T nhng c kch thc b hn.
- Hm c th c li gi chnh n l tnh quy ca
hm.
- V d: n!=n*(n-1)!
Vy c th khi qut nh sau:
+ Vi n=1 n! =1;
+ n!=n*(n-1)! vi n>1
V d 29: Dng quy tnh n!
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
long int giaithua(int n);
void main()
{
int n;
cin>>n;
cout<<"giai thua cua "<<n<<"la:"<<giaithua(n)<<endl;
getch();
}
long int giaithua(int n)
{
if (n==1)
return (1);
else
return(n*giaithua(n-1));
}
61

V d 30: Tnh c s chung ln nht theo quy


#include <iostream.h>
#include <conio.h>
#include <stdio.h>
int ucln(int x, int y);
void main()
{
int x,y;
cin>>x;
cin>>y;
cout<<uoc so chunglon nhat :<<ucln(y,x%y)<<endl;
getch();
}
int ucln(int x, int y)
{ if(y==0) return(x);
else return(ucln(y,x%y));
}
V d 31:(tham kho) Thc hin quy bi ton thp H
ni
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
void dichchuyen(int n,int c1,int c2,int c3);
main()
{
int n
coun<< Cho so tang:

\n;

cin>>n;
dichchuyen(n,1,2,3);
}
62

void dichchuyen(int n,int c1,int c2,int c3)


{
if(n==1)
cout<<c1<< ---> <<c3;
else
{
dichchuyen(n-1,c1,c3,c2);
dichchuyen(1,c1,c2,c3);
dichchuyen(n-1,c2,c1,c3);
}

6. Ti liu tham kho


- Quch Tun Ngc, Ngn ng lp trnh C++ trang 1-59
- Bi ging ca gio vin (tp bi ging km theo)
- Dng T Cng, Ngn ng lp trnh C, trang 184-218.
7. Cu hi n tp
- Hy a ra cu trc chung ca mt chng trnh v cu trc ca mt hm
- Gii cc phng trnh bc 2, USCLN, sp xp tng dn mt dy bng cch s dng
hm vit chng trnh
- Dng cc phng php quy sp xp tng dn, tnh BSCNN, tm s Fibonaci

Gio vin ph trch: V Minh Ph, i t, TS, GVC


2. Phn II. Ngn ng lp trnh C/C++
Ch : Trong mi mc ging vin c th a vo nhiu v d minh ha, hc vin
ty tham kho ty theo kh nng.
10.1. Kiu d liu c cu trc

63

10.2. Kiu d liu t nh ngha


3. Thi lng: 4 tit
4. Mc ch
- hc vin nm c cc cu trc cn thit
- C th xy dng c cc bi ton qun l t n gin n phc tp
- Ch rng khng nht thit phi c tt c cc v d, ring v d 39 cn nm vng
5. Ni dung

Kiu d liu c cu trc.


- Kiu d liu c cu trc l kiu d liu m mi phn t
c nhiu thnh phn v cc thnh phn ny c kiu khc
nhau. Trong C/C++ c nh ngha kiu struct vit tt
cach structure, ging nh bn ghi trong pascal.

10.1. M t v Khai bo.


- M t v h s ca sinh vin nh sau:
struct hoso
{
char hoten[20];
char quequan[30];
int diemtoan;
int diemly;
int diemtin;
float dtb;
} sinhvienA,sinhvienB;
- M t s phc:
struct sophuc
{float phanthuc,phanao} z1,z2;
a/ C php:
struct <Tn kiu cu trc>

64

{
<kiu d liu 1> <trng 1>;
. . . . . . . . . .
<kiu d liu k> <trng k>;
} <bin cu trc>;
Hoc c th khai bo trc tip nh sau:
struct
{
<kiu d liu 1> <trng 1>;
. . . . . . . . . .
<kiu d liu k> <trng k>;
} <bin cu trc>;

Cng c th khai bo trc tip nh sau:


struct <Tn kiu cu trc>
{
<kiu d liu 1> <trng 1>;
. . . . . . . . . .
<kiu d liu k> <trng k>;
}
struct <Tn kiu cu trc> <bin>;

b/ Truy nhp vo tng phn t ca struct


- Truy nhp vo tng trng ca struct theo c php sau:
<Tn bin cu trc>.<trng i>;
Vd:sihvienA.diemtoan=9;
sinhvienA.diemly=8;sinhvienA.diemtin=8

c/ Kt hp vi mng

65

- Kt hp vi mng lm cho chng trnh sng sa hn v


tin li hn vi c php nh sau:
struct
{
<kiu d liu 1> <trng 1>;
. . . . . . . . . .
<kiu d liu k> <trng k>;
} <bin mng>[ di];
d/ Cc v d v gii thch cc v d
- V d 37:
#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <ctype.h>
#include <math.h>
#define max 3
struct nhansu
{
char hoten[30];
struct dat
{
int ngay;
int thang;
int nam;
} ngaysinh;
float luong;
}nguoi[max];
main()
66

{
int i;
for(i=0;i<max;i++)
{
cout<<" Nhap ho so cho nguoi thu : "<<i+1<<endl;
cout<<" Ho ten : ";
gets(nguoi[i].hoten);
cout<<endl;
cout<<" Ngay sinh : ";
cin>>nguoi[i].ngaysinh.ngay;
cout<<"Thang sinh : ";
cin>>nguoi[i].ngaysinh.thang;
cout<<"Nam sinh : ";
cin>>nguoi[i].ngaysinh.nam;
cout<<endl;
}
for(i=0;i<max;i++)
{
cout<<nguoi[i].hoten<<"

"<<"

Ngay

sinh

"<<nguoi[i].ngaysinh.ngay<<
"Thang sinh : "<<nguoi[i].ngaysinh.thang<<"Nam sinh :
"<<nguoi[i].ngaysinh.nam;
cout<<endl;
}
getch();
return 0;
}
- V d 38:
#include <iostream.h>
#include <stdlib.h>
67

#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <ctype.h>
#include <math.h>
#define max 2
struct nhansu
{
char hoten[30];
struct dat
{
int ngay;
int thang;
int nam;
} ngaysinh;
float luong;
}

nguoi[5];

void nhapdl(void);
void danhsach(void);
main()
{
nhapdl();
danhsach();
getch();
return 0;
}
void nhapdl(void)
{
68

int i;
for(i=0;i<max;i++)
{
cout<<" Nhap ho so cho nguoi thu : "<<i+1<<endl;
cout<<" Ho ten : ";
gets(nguoi[i].hoten);
cout<<endl;
cout<<" Ngay sinh : ";
cin>>nguoi[i].ngaysinh.ngay;
cout<<"Thang sinh : ";
cin>>nguoi[i].ngaysinh.thang;
cout<<"Nam sinh : ";
cin>>nguoi[i].ngaysinh.nam;
cout<<endl;
}
}
void danhsach(void)
{
int i;
for(i=0;i<max;i++)
{
cout<<nguoi[i].hoten<<"

"<<"

Ngay

sinh

"<<nguoi[i].ngaysinh.ngay<<
"Thang sinh : "<<nguoi[i].ngaysinh.thang<<"Nam sinh :
"<<nguoi[i].ngaysinh.nam;
cout<<endl;
}
}
- V d 39: (tham kho)
#include <iostream.h>
69

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <ctype.h>
#include <math.h>
#define max 4
struct nhansu
{
char hoten[30];
struct dat
{
int ngay;
int thang;
int nam;
} ngaysinh;
float luong;
}

nguoi[max];

void input(void);
void list(void);
void delet(void);
main()
{
int i;
int choice;
do
{
cout<<"1: Nhap du lieu \n";
cout<<"2: Hien thi danh sach \n";
cout<<"3: Xoa mot nguoi \n ";
70

cout<<"4: Thoat \n ";


cin>>choice;
switch(choice)
{
case 1:
input();
break;
case 2: list();
break;
case 3: delet();
break;
/* case 4: thoat();
break; */
}
}
while (choice!=4);
getch();
return 0;
}
void input(void)
{
int i;
cout<<" NHap day nay\n";
for(i=0;i<max;i++)
{
cout<<" Nhap ho so cho nguoi thu : "<<i+1<<endl;
cout<<" Ho ten : ";
gets(nguoi[i].hoten);
cout<<endl;
cout<<" Ngay sinh : ";
71

cin>>nguoi[i].ngaysinh.ngay;
cout<<"Thang sinh : ";
cin>>nguoi[i].ngaysinh.thang;
cout<<"Nam sinh : ";
cin>>nguoi[i].ngaysinh.nam;
cout<<endl;
}
}
void list(void)
{
int i;
for(i=0;i<max;i++)
{
cout<<" Hien thi danh sach :"<<endl;
cout<<nguoi[i].hoten<<"

"<<"

Ngay

sinh

"<<nguoi[i].ngaysinh.ngay<<
"Thang sinh : "<<nguoi[i].ngaysinh.thang<<"Nam sinh :
"<<nguoi[i].ngaysinh.nam;
cout<<endl;
}
}
void delet(void)
{
int i,k;
cout<<"Ban ghi can xoa: "<<endl;
cin>>k;
for(i=k-1;i<max;i++)
nguoi[i]=nguoi[i+1];
cout<<" So nguoi con lai :"<<endl;
for(i=0;i<max;i++)
72

{
cout<<" Hien thi danh sach :"<<endl;
cout<<nguoi[i].hoten<<"

"<<"

Ngay

sinh

"<<nguoi[i].ngaysinh.ngay<<
"Thang sinh : "<<nguoi[i].ngaysinh.thang<<"Nam sinh :
"<<nguoi[i].ngaysinh.nam;
cout<<endl;
}
}
6. Ti liu tham kho
- Quch Tun Ngc, Ngn ng lp trnh C++ trang 1-59
- Bi ging ca gio vin (km theo)
- Dng T Cng, Ngn ng lp trnh C, trang 222-264
7. Cu hi n tp
- Hy xy dng cu trc qun l cn b l quan qun i trong mt s on
- Vit chng trnh qun l cn b cho s on gm cc chc nng: nhp, thm,
xa, sp xp, tm kim, tnh lng, ph cp,

Gio vin ph trch: V Minh Ph, i t, TS, GVC


2. Phn II. Ngn ng lp trnh C/C++
Ch : Trong mi mc ging vin c th a vo nhiu v d minh ha, hc vin
ty tham kho ty theo kh nng.
73

11.1. D liu kiu tp


11.2. Cc chng trnh c cu trc lin quan ti tp
3. Thi lng: 4 tit
4. Mc ch
- hc vin nm c cc loi tp v qun l cc tp
- ng dng gii mt s bi ton c th
5. Ni dung:
11.1. D liu kiu tp
- Khi gii cc bi ton ta cn lu gi li cc kt qu
hoc nhp nhng thng tin ban u, vic lm c hiu
qu ngi ta thc hin thng qua cc tp tin.
- Mi mt phn t c tp tin c b tr nh mt ca s,
kt thc tp c k hiu l EOF.
- Trong C/C++ c mt hm chun feof c kiu boolean vi
tham s l bin tp cho bit ca s t vo v kt
thc tp cha(c gi tr true nu kt thc).
- Truy nhp vo tp c 2 phng php: tun t v trc
tip
- Vic x l tp gm 4 bc:
1. Khai bo bin tp
2. M hoc ghi tp
3. Ghi hoc c tp
4. ng tp

a/ Khai bo tp.
- C php: FILE *<tn con tr tp>;
- Gii thch: <Tn con tr tp> do ngi s dng t theo
mun min l hp l. Ta hay dng fprt (file pointer)

b/ M tp ghi hoc c.

74

- C php: <bin tp>=fopen(<tn tp trn a>,<kiu x


l tp>);
- Th d:
+ fptr=fopen(D:\TC\BIN\thidu.txt,w);
M mt tp c tn trong ng dn ghi(w)
+ fptr=fopen(<ng dn\\thidu.txt,r);
M mt tp c tn trong ng dn c(r)

c/ Cc quy c x l tp
- w : M tp vn bn mi ghi.
- r : M tp tn ti c.
- a : M tp tn ti v ghi thm d liu vo cui
tp. Nu tp cha c th s c t ng to ra.
- r+ : M tp c cho php c ghi v c.
- w+ : M tp vn bn mi cho php c ghi v c.Nu
c tp th my s hu v thay d liu c.
- a+ : M tp c cho php c c v ghi thm d liu
vo cui tp hoc c tp.
- i vi tp nh phn th ta thm k t b hoc +b
vo sau cc k t trn.

d/ ng tp
- C php: fclose(<bien tep>);
- Cu trc chung ca chng trnh x l tp c dng:
#include <stdio.h>
main()
{
FILE *fprt;
fprt=fopen(vidu.dat,w);
if (fprt==null)
cout<< Khong mo duoc tep)<<endl;
else
75

{
. . .
fclose(fprt);
}
}

e/ Ghi d liu vo tp nh phn


- Hm ghi d liu vo tp:
fwrite(&<bin>,sizeof(<bin>),<s khi>,<bien tep>)
+ &<bin> l a ch ca khi d liu
+ sizeof(<bin>): Kch thc <bin>
+ <s khi>: S khi d liu cn ghi vo tp
+ Con tr tp
- V d 40. To tp nh phn ghi 100 s thp phn t 1
n 100.
#include <stdio.h>
main()
{
char filename[20];
int i;
FILE *f;
cout<< ten tep can tao:<<endl;
cin>>filename;
f=fopen(filename,wb);
for(i=1;i<=100;i++)
fwrite(&i,sizeof(int),1,f);
fclose(f);
}

f/ c d liu t tp nh phn
- Hm c d liu t tp nh phn c:
fread(&<bin>,sizeof(<bin>),<s khi>,<bien tep>)
76

+ &<bin> l a ch ca bin cn ghi d liu t bin


tp ra(con tr tp)
+ sizeof(<bin>): Kch thc <bin>
+ <s khi>: S khi d liu cn ghi vo tp
+ <bien tep>:Con tr tp
+ Khi ghi gi tr ra bin th phi lun kim tra xem
ca s tp ch n ht tp cha bng hm EOF bng 1
trong cc cch sau:
if (ch=getc(fp),!EOF); Hm getc(fp) c hiu l c mt
k t hay 1 byte ca tp c con tr l fp.
if (ch=getc(fp),!EOF): Cu lnh trn c ngha l c 1 k
t t fp v th xem gi tr ca n l EOF hay khng.
Nu mun qut tt c cc phn t ca tp th:
while((ch=getc(fp)), !EOF)
- V d 41. c tp nh phn c.
#include <stdio.h>
#include <conio.h>
#include <iotream.h>
main()
{
char filename[20];
int i;
FILE * f;
cout<< ten tep can doc:<<endl;
cin>>filename;
f=fopen(filename,rb);
while (fread(&i,sizeof(int),1,f), !feof(f))
cout<<(i*i)<<

fclose(f);
77

getch();
return 0;
}
11.2 Cc v d minh ha lin quan n cu trc tp
a/ Ghi vo tp nh phn
- V d 42: Ghi vo tp mi 50 s cui ca tp v I ra
mn hnh bnh phng ca chng
#include <stdio.h>
#include <iostream.h>
#include <conio.h>
main()
{
char filename[20];
int i;
FILE *f, *f1;
cout<<" ten tep can doc:"<<endl;
cin>>filename;
f=fopen(filename,"rb");
f1=fopen("sn1.dat","wb");
while (fread(&i,sizeof(int),1,f), !feof(f))
{
if(i>50)
fwrite(&i,sizeof(int),1,f1);
cout<<(i*i)<<"

";

}
/* do
{
fread(&i,sizeof(int),1,f)
if(!feof(f))
cout<<(i*i)<<"

";
78

}
while ( !feof(f)) */
fclose(f);
fclose(f1);
getch();
return 0; }
b/ Sao chp sang tp khc
- V d 43: Sao chep mot tep sang tep khac
#include <stdio.h>
#include <iostream.h>
#include <conio.h>
main()
{
char filename[20];
char filename1[20];
int i;
FILE *f, *f1;
cout<<" ten tep nguon: "<<endl;
cin>>filename;
/*cout<<" ten tep dich:

"<<endl;

cin>>filename1;*/
f=fopen(filename,"rb");
f1=fopen("sn1.dat","wb");
{
while (fread(&i,sizeof(int),1,f), !feof(f))
fwrite(&i,sizeof(int),1,f1);
}
fclose(f);
fclose(f1);
79

getch();
return 0; }

c/ Ghi c d liu cu trc


- Cc v d trn x l cc tp c cc phn t c d liu
n gin chun. Tp thuc kiu struct cng c kiu nh
phn.
- Chng trnh

sau ho php ta nhp d liu t bn phm

- V d 44: To tp d liu cu trc nhn s


#include <stdio.h>
#include <iostream.h>
#include <conio.h>
#include <string.h>
#include <ctype.h>
#define TRUE 1
/*char ss[80];*/
typedef struct
{ int ngay;
int thang;
int nam;
} date;
typedef struct
{
char ten[80];
char diachi[80];
date ngaysinh;
float luong;
} mau_nhan_su;
mau_nhan_su read_screen(mau_nhan_su Nguoi);
FILE *fpt;
main()
80

{
int flag=TRUE;
mau_nhan_su Nguoi;
fpt=fopen("nhansu.dat","wb");
Nguoi.luong=0;
while(flag)
{
cout<<" Ten :(AN enter de ket thuc

" <<endl;

gets(Nguoi.ten);
if(Nguoi.ten[0]=='\0')
break;
Nguoi=read_screen(Nguoi);
fwrite(&Nguoi,sizeof(mau_nhan_su),1,fpt);
}
fclose(fpt);
return 0;
}
mau_nhan_su read_screen(mau_nhan_su Nguoi)
{
printf("Cho ngay thang nam sinh: ");
scanf("%d/%d/
%d",Nguoi.ngaysinh.ngay,Nguoi.ngaysinh.thang,Nguoi.ngaysi
nh.nam);
printf("Dia chi hien tai: ");
gets(Nguoi.diachi);
/*gets(ss);*/
printf("Luong : ");
scanf("%f",&Nguoi.luong);
/*gets(ss);*/
return(Nguoi);
81

}
d/ Truy cp trc tip tp d liu nh phn.
- C/C++ ch nh ngha mt kiu tp: Tp truy cp tun t
- Truy nhn do di ca cc phn t l nh nhau nn c
th tnh ton to ca chng v iu ny cho php ta
truy cp trc tip n tng phn t ca tp.
- Hm truy cp trc tip l:fseek
-Cphp:fseek(fptr,No*<kich_thuoc-phan_tu>,<vi tri>)
- Gii thch:
+ fptr: Con tr tp
+ No: V tr s th t ca phn t trong tp
+ <kich_thuoc-phan_tu>: thng c thc hin bng
sizeof(<ten kpt>) v cho ta to ca phn t.
+ Tham s cui cng:<vi tri>=
SEEK_SET: Di chuyn v tr truy cp bt u t u
tp
SEEK_CUR: Di chuyn tnh t v tr hin ti ca ca
s hin ti ca tp
SEEK_END: Di chuyn tnh t to cui tp.
-V d 45: Truy cp trc tip tp c:
#include <stdio.h>
#include <iostream.h>
#include <conio.h>
#include <string.h>
#include <ctype.h>
FILE * f;
main()
{
char tentep[20];
char ch;
82

int n,No;
printf(" Cho ten tep:" );
scanf("%20s",tentep);
f=fopen(tentep,"r");
while(printf("Phantucantruycapthu: ")
,scanf("%1d",&No,No))
{
fseek(f,sizeof(int)*(No-1 ),SEEK_SET);
fread(&n,sizeof(int),1,f);
printf("Gia tri tim thay : %d \n",n);
}
fclose(f);
getch();
}
- Vi du 46: Truy cp trc tip tp va ghi va c
#include <stdio.h>
#include <iostream.h>
#include <conio.h>
#include <string.h>
#include <ctype.h>
FILE * stream;
main(void)
{
char msg[]="Day la chuong trinh chay thu";
char buf[20];
if ((stream=fopen("ghidoc.dat","w+"))==NULL)
{
fprintf(stderr," Khong mo duoc tep\n");
return 1;
}
83

fwrite(msg,strlen(msg)+1,1,stream);
printf("%s\n",buf);
fclose(stream);
getch();
return 0;
}
- Vi du 47: (tham kho) Truy cp trc tip cp nht d
liu
#include <stdio.h>
#include <iostream.h>
#include <conio.h>
#include <string.h>
#include <ctype.h>
main()
{
FILE * f;
char tentep[20];
int n,k;
long m;
printf(" Ten tep can xu ly: ");scanf("%20s", tentep);
f=fopen(tentep,"w");
k=1;
while(printf("Phan

tu

thu

may

can

cap

nhat:

"),scanf("%1d",&m,m))
{
printf("Gia tri cap nhat:\n");
scanf("%1d",&n);
fseek(f,sizeof(int)*(m-1),SEEK_SET);
fwrite(&n,sizeof(int),1,f);
84

cout<<"Lan thu: "<<k<<endl;


k++;
}
fclose(f);
getch();
}
- V d 48: Cp nht tp cu trc nhn s
#include <stdio.h>
#include <iostream.h>
#include <conio.h>
#include <string.h>
#include <ctype.h>
#define TRUE 1
typedef struct
{ int ngay;
int thang;
int nam;
} date;
typedef struct
{ char ten[80];
char diachi[80];
date ngaysinh;
float luong;
} mau_nhan_su;
void write_screen(mau_nhan_su);
mau_nhan_su read_screen(mau_nhan_su Nguoi);
FILE * fpt;
main()
{
85

int No;
long kich_thuoc,pos;
mau_nhan_su Nguoi;
fpt=fopen("nhansu.dat","rb");
fseek(fpt,0,SEEK_END); /* Xac dinh kich thuoc tep*/
kich_thuoc=ftell(fpt);
cout<<"Can cap

nhat phan tu thu may " <<endl;

cin>>No;
pos=No*sizeof(mau_nhan_su);
if(No<0 || pos>kich_thuoc)
cout<<"Khong co phan tu trong tep"<<endl;
else
{
fseek(fpt,pos-1,0);
fread(&Nguoi,sizeof(mau_nhan_su),1,fpt);
write_screen(Nguoi);
}
return 0;
}
void write_screen(mau_nhan_su Nguoi)
{
printf("Ten : %s\n",Nguoi.ten);
printf("Ngaysinh:

%2d/%2d/

%2d\n",Nguoi.ngaysinh.ngay,Nguoi.ngaysinh.thang,Nguoi.nga
ysinh.nam);
printf("Dia chi hien tai: ",Nguoi.diachi);
printf("Luong : %8.2f\n",Nguoi.luong);
return;
}

11.3 Tp vn bn
86

- Cc phn t ca tp vn bn l cc k t v c t
chc thnh tng dng.
- Mi dng c k hiu kt thc dng(End of line)
- Cc cp k t iu khin: CR(nhy v u dng m s
ASCII=13,\r);

LF(nhy

xung

dng

tip

theo

ASCII=10,\n)
a/ M tp vn bn mi ct d liu
- Gm cc hm sau:
1. putc(ch,fprt): Ghi mt k t vo tp vn bn
2. fputs(str,fprt): Ghi xu k t vo tp vn bn
3. fprintf(fprt,): kt qu ra tp vn bn c con tr
fprt
- Mi ln ghi xong my s t ng chuyn ca s n v
tr tip theo.
b/ Cc v d
- V d 49: Ghi mt dng cc ch hoa vo tp
#include <stdio.h>
#include <iostream.h>
#include <conio.h>
#include <string.h>
#include <ctype.h>
main()
{
FILE * f;
char c;
/* Cach nay doc doc ten tep vao tu ban phim
char tentep[11];
cout<<"Ten tep :"<<endl;
gets(tentep);
f=fopen(tentep,"w");

*/
87

f=fopen("d:\\tc\\bin\\vidu.txt","w");
do

/* Doc ky tu tu ban phim,chuyen chu hoa va ghi vao

tep*/
putc(toupper(c=getchar()),f);
while(c!='\n');
fclose(f);
return 0;
}
- Vi du 50: Ghi c d liu cu trc
#include <stdio.h>
#include <iostream.h>
#include <conio.h>
#include <string.h>
#include <ctype.h>
#define TRUE 1
typedef struct
{ int ngay;
int thang;
int nam;
} date;
typedef struct
{ char ten[80];
char diachi[80];
date ngaysinh;
float luong;
} mau_nhan_su;
mau_nhan_su read_screen(mau_nhan_su Nguoi);
void write_file(mau_nhan_su Nguoi);
FILE * f;
char ss[80];
88

main()
{
int flag=TRUE;
mau_nhan_su Nguoi;
f=fopen("Nhan_su.dat","w");
Nguoi.luong=0;
while (flag)
{
cout<<" Ten : (An ENTER de ket thuc";
gets(Nguoi.ten);
if (Nguoi.ten[0]=='\0')
break;
Nguoi=read_screen(Nguoi);
write_file(Nguoi);
}
fclose(f);
return 0;
}
mau_nhan_su read_screen(mau_nhan_su Nguoi)
{
printf(" Hay cho ngay/thang/nam

:");
scanf("%d/%d/

%d",&Nguoi.ngaysinh.ngay,&Nguoi.ngaysinh.thang,&Nguoi.nga
ysinh.nam);
gets(ss);
cout<<"Dia chi :";
gets(Nguoi.diachi);
cout<<"Luong :";
scanf("%f",&Nguoi.luong);
gets(ss);
89

return(Nguoi);
}
void write_screen(mau_nhan_su Nguoi)
{
fprintf(f,Nguoi.ten);
fprintf(f,"Ngaysinh:

%2d/%2d/

%2d\n",Nguoi.ngaysinh.ngay,Nguoi.ngaysinh.thang,
Nguoi.ngaysinh.nam);
fprintf(f,"Dia chi hien tai: ",Nguoi.diachi);
fprintf(f,"Luong : %8.2f\n",Nguoi.luong);
return;
}
- Vi du 51: c mt dng cc ch t tp vn bn
#include <stdio.h>
#include <iostream.h>
#include <conio.h>
#include <string.h>
#include <ctype.h>
main()
{
FILE *f;
char c;
/* Cach nay doc doc ten tep vao tu ban phim
char tentep[11];
cout<<"Ten tep :"<<endl;
gets(tentep);
if((f=fopen(tentep,"r"))==NULL);
printf(" Tep co loi, hoac chua ton tai \n");
else */
if ((f=fopen("d:\\tc\\vidu.txt","r"))==NULL)
90

cout<<" Tep co loi, hoac chua ton tai "<<endl;


else
do
putchar(c=getc(f));
while(c!='\n');
fclose(f);
getch();
return 0;
}
6. Ti liu tham kho
- Quch Tun Ngc, Ngn ng lp trnh C++ trang 1-59
- Bi ging ca gio vin trang 19-26
- Dng T Cng, Ngn ng lp trnh C
7. Cu hi n tp
- Hy a ra cu trc chung ca mt tp nh phn v tp vn bn
- Tm hiu cc v d trn v gii thch tng on m lnh
- Cc phng php truy nhp n cc tp, trnh by c php

Gio vin ph trch: V Minh Ph, i t, TS, GVC


2. Phn II. Ngn ng lp trnh C/C++

91

Ch : Trong mi mc ging vin c th a vo nhiu v d minh ha, hc vin


ty tham kho ty theo kh nng.
13.1. Thit lp ch ha (cc tp ti thiu, bng mu, hm thit lp mu,
13.2. Cc hm v on, ng, hnh trn, ch nht, hin th vn bn
13.3. Hng dn n tp v thi
3. Thi lng: 4 tit
4. Mc ch
- hc vin nm c cc nguyn tc s dng ha
- S dng thnh tho cc hm c s gii mt s bi ton c th
5. Ni dung:
5.1. Cc file ti thiu cn cho v ha: Khi dng ha vi Tubo C, phi c cc
file sau: GRAPH.H (khi to ha), *.BGI (cha iu khin cc loi mn hnh),
*.CHR (iu khin v cc kiu ch khc nhau trong ha)
- Phi khai bo hm th vin ngay u chng trnh: #include <graph.h>
- Trong chng trnh cn khai bo hai bin nguyn ng vi v ha v ch
ha , l 2 bin gdriver v gmode: int gdriver=DETECT,gmode,
errorcode;
- Bng sau cho bit tn ca cc gi tr GraphDriver, GraphMode. V d CGA l
hng c gi tr bng 1.
CC HNG DRIVER

DETECT
CGA
MCGA
EGA
EGA64
EGAMONO
IBM8514
HERCMONO
ATT400
VGA
PC3270
CurrentDriver
GraphDriver
CGA

GI TR NGHA

0
Yu cu t ng pht hin
1
Vi mch CGA
2
Vi mch MCGA
3
Ch EGA
4
Ch EGA64
5
Ch EGAMono
6
Ch IBM8514
7
Ch HercMono
8
Ch ATT400
9
Ch VGA
10
Ch PC 3270
-128
Chuyn ti GetModeRange
Bng 1: Cc hng iu khin ha
GraphMode
phn gii
CGAC0, 1, 2, 3, 4 320x200 CGA phn gii thp
CGAHI
640x200 CGA phn gii cao
92

MCGA

MCGA0,, 1,, 2,, 320x200


3,,
MCGAMED
320x200
MCGAHI
640x480
EGA
EGALO
640x200 Tng ng CGA
EGAHI
640x350
EGA64
EGA64LO
640x200 Tng ng CGA
EGA64HI
640x350
EGAMONO
EGAMONOHI
640x350
VGA
VGALO
640x200
VGAMED
640x350
VGAHI
640x480
HERCMONO
HERCMONOHI
720x348
ATT400
ATT400C 0, 1, 2, 320x200
3
ATT400MED
640x400
ATT400HI
640x400
PC3270
PC3270HI
720x350
IBM8514
IBM8514LO
640x480 256 mu
IBM8514HI
1024x768 256 mu
BNG 2: cc ch ha ca graph.h
- Khi to ha, ta dng hm initgraph c sn v khai bo nh sau:
void far initgraph(int far * graphdriver,
int far *graphmode, char far *pathtodriver);

graphdriver: bin con tr nguyn, cha gi tr xc nh kiu mn hnh (bng 1).


Mi mn hnh c nhiu ch ha tng ng vi phn gii v bng mu khc
nhau.
Graphmode: Bin con tr nguyn, cha gi tr xc nh ch ha.
Pathtodriver: Tham s bo cho Turbo C bit ni cha cc file ha ca Turbo C.
V d:
initgraph(&gdriver, &gmode, "C:\\TC\\BGI");
trong li gi hm initgraph, c hai tham s con tr &gdriver, &gmode l hai
tham s thc c thay vo. Trc , nu tham s graphdriver c gn gi tr
DETECT th hm inigraph s phi t xc nh kiu mn hnh, ch ha sao
cho tt nht. Kt qu s tr li cho tham s thc gdriver, gmode tng ng vi
graphdriver, graphmode nu bng lit k.
- Trong trng hp mn hnh c th chy nhiu ch khc nhau, c th t chn ly
graphdriver v graphmode thch hp bng cch khng dng lnh gn Gdriver =
DETECT; m ch ng gn gi tr thch hp cho gdriver v gmode trc khi gi
initgraph.
gdriver := EGA; gmode := EGAHI;
initgraph(&gdriver, &gmode, "C:\\TC\\BGI");
Hoc cng c th vit di dng tham s
gdriver := 3; gmode := 1;
93

initgraph(&gdriver, &gmode, "C:\\TC\\BGI");


Mun bit tn ca gdriver , gmode, ta dng hm kiu xu k t l getdrivername v
getmodename
- Kt qu sau khi khi to ha thng qua hm GraphResult.
Graphresult() (c sn trong th vin), cho bit tnh trng ch khi to initgraph.
Hm ny c nhiu gi tr hng khc nhau c nh ngha sn nh sau:
GI TRI
TN GI TR
KIU LI C PHT HIN
S
0
grOk
No error, khng c li
-1
grNoInitGraph
(BGI) graphics not installed (use
initgraph)
ha cha c khi to
-2
grNoDetected
Graphics hardware not detected
V ha khng tm thy
-3
grFileNotFound
Device driver file not found
Khng tm thy cc b iu khin
-4
grInvalidDriver
Invalid device driver file
Tp iu khin khng chy
-5
grNoLoadMem
Not enough memory to load driver
Khng b nh no b iu
khin
-6
grNoScanMem
Out of memory in scan fill
-7
grNoFloodMem
Out of memory in flood fill
-8
grFontNotFound
Font file not found
Khng tm thy font ch
-9
grNoFontMem
Not enough memory to load font
Khng b nh np font
-10
grInvalidMode
Invalid graphics mode for selected
driver
-11
grError
Graphics error, c li ha
-12
grIOError
Graphics I/O error
Li vo ra ha
-13
grInvalidFont
Invalid font file
Tp font ch khng ng
-14
grInvalidFontNum
Invalid font number
S fint khng hp l
-15
grInvalidDeviceNum
Invalid Device number
-18
grInvalidVersion
Invalid version number
- Ch duy nht khi graphresult = grOK ta mi c th cng vic v ha c.
Mun bit li c th, c th dng chng trnh mu trong th d sau:
V d 52:
#include "graphics.h"
#include "stdlib.h"
#include "stdio.h"

94

#include "conio.h"
int main()
{
int gdriver = DETECT, gmode, errorcode;
initgraph(&gdriver, &gmode, "");
errorcode = graphresult();
if(errorcode != grOK)
{
printf("Graphics error: %s\n",
grapherrormsg(errorcode));
printf("Pess any key to halt: ");
getch();
exit(1);
}
line(0, 0, getmaxx(), getmaxy());
getch();
closegraph();
return 0;
}

trong grapherrormsg(errorcode) s thng bo kt qu li.


Cc hm thit lp mu ha
5.2. Hng biu din mu
- Cc hng m t mu c gi tr nh sau:
Hng
BLACK
BLUE
GREEN
CYAN
RED
MAGENTA
BROWN
LIGHTGRAY
DRAKGRAY
LIGHTBLUE
LIGHTGREEN
LIGHTCYAN
LIGHTMARED
LIGHTGENTA
YELLOW
WHITE

Gi tr

en
Xanh
Xanh l cy
Xanh cm thch

Ta
Nu
Xm nh
Xm m
Xanh nht
Xanh l cy nht
Xanh cm thch nht
Hng
Ta nht
Vng
Trng

- Bng mu(pelette) l tp hp cc mu ta c th chn mt trong cc mu ca


bng ny v. C th thay i cc mu trong mt bng. Mi ch ha c
tp hp mu khc nhau, to thnh mt bng mu. Thng thng ta nh ngha:
Struct palettetype{
unsigned char size;

95

signed char colors[MAXCOLORS + 1];


};

palette.colors[0]:phn t mu nn, byte u tin cha di ca palette,


cho bit c bao nhiu gi tr trong bng colors tip theo. Bng colors vi mi ch
s l mt mu khc nhau, t 0 ti MAXCOLORS.
setallpalette(struct palettetype far * palette): hm
thay i ton b mu trong bng mu c tn l palette.
setpalette(int colornum, int color):hm thay i mt mu th
colornum sang mu mi color.
getpalette(struct palettetype far * palette): hm ly li
cc gi tr ca cc palette ang dng.
setcolor(int color): hm t mu v hin ti trong khi dng bng mu
c cc hm v khc. Mu s 0 l mu nn.
setcolor: hm tr v gi tr mu cao nht cho thit b v ch hin ti
setbkcolor (int color): hm xc lp mu nn
l hm xc lp mu nn
5.3. Cc hm v im: Hm v mt im l hm c bn nht.
- V mt im sng (x,y):
putpixcel(int x, int y, int color)
getpixcel(int x, int y)
5.4. Cc hm v ng thng
- Di chuyn n ta (x,y): moveto(int x, int y)
- Hm cho gi tr ta hin hnh: getx v gety
- Hm v ng thng:lineto(int x, int y)v ng thng t v tr con
tr ha (x, y).
- Hm v on thng:line(int x1, int y1, int x2, int y2)v
on [(x1, y1), (x2, y2)].
- Hm t v tr con tr (x,y) n (x+d,y+d): linerel(int dx, int dy)
5.5. Cc hm v ng trn
- V ng trn tm (x,y): circle(int x, int y, int R);
V d 53:
// circle.cpp : Defines the entry point for the console application.
//
#include
#include
#include
#include

<graphics.h>
<stdlib.h>
<stdio.h>
<conio.h>

int main()
{
/* T ng pht hin ha, request auto detection */
int gdriver = DETECT , gmode, errorcode;
int midx, midy;
int radius = 100;
// Khi to initialize graphics and local variables

96

initgraph(&gdriver, & gmode, "");


// read result of initialization
errorcode = graphresult();
if(errorcode != grOK) // an error occurred
{
printf("Graphics error: %s\n", grapherrormsg(errorcode));
printf("pess any key to halt: ");
getch();
exit(1);
}
midx = getmaxx() / 2;
midy = getmaxy() / 2;
setcolor(getmaxcolor());
/* V ng trn draw the circle */
circle(midx, midy, radius);
// kt thc, clean up
getch();
closegraph();
return 0;

.
5.6.

V hnh ch nht

V hnh ch nht vi (x1, y1) ta im phi trn bn tri, (x2, y2) ta


im di bn phi: rectangle(int x1, int y1, int x2, int y2);
- V hnh ch nht song song t mu c:
bar(int x1, int y1, int x2, int y2);
- Hm v a gic bt k:
drawpoly(int numpoints, int far *polypoints);
- Hm t mu a gic: fillpoly(int numpoints, int far *polypoints);
polyPoints: tham s khng chiu cha ta cc nh a gic. NumPoints:
cho s ta trong PolyPoints( chnh l s nh ca a gic).
-

5.7.

Hin th vn bn trong ch ha

- Trong ha, hm printf(), cout khng ph hp vi mn hnh Graphics.


- Hm cho ni dung xu ti v tr con tr:
outtext(char far *textstring);
- Hm cho ni dung xu ti (x,y):.
outtextxy(int x, int y, char far *textstring);

Tng ng vi vic thc hin 2 lnh:


moveto(x, y);
outtext(textstring);
- Xc lp kiu ch:
settextstyle(int font, int direction, int charsize); :
- Kiu ch hin ra trn mn hnh nh hm trn c th thay i v c nhiu kiu
font c cha trong file *.chr
TN
GI TR
NGHA
DEFAULT_FONT
0
8x8 bit mapped font
TRIPLEX_FONT
1
Strocked triplex font
SMALL_FONT
2
Strocked small font
97

SANS_SERIF_FONT
3
Strocked sans-serif font
GOTHIC_FONT
4
Strocked gothic font
Chiu vit:
HORIZ_DIR = 0 l ng nm ngang, t tri qua phi
VERT_DIR = 1 l thng ng, t di ln trn.
- Kch thc ch charsize nhn gi tr t 1 n 10, l h s phng to ch
- Hm xc nh v tr dng vn bn vit ra theo hai hm outtext:
settextjustification(int Horz, int Vert);
+ Tham s Horz c th c cc gi tr sau:
LEFT_TEXT = 0 vn bn xut hin bn phi con tr ha
CENTER_TEXT = 1 vn bn xut hin vi tm l v tr con tr
ha
RIGHT_TEXT = 2 vn bn xut hin bn phi con tr
+ Tham s Vert c th c cc gi tr sau:
BOTTOM_TEXT = 0 vn bn xut hin pha trn con tr
CENTER_TEXT = 1 vn bn xut hin quanh con tr
TOP_TEXT = 2 vn bn xut hin pha di con tr.

- Hm thot khi ch ha: closegraph


5.8. Xc nh mu t, kiu t
-Hm t mu:setfillstyle(int Pattern, int Color)
Trong mu t l cc hng s nguyn c tn v gi tr c nh ngha:
TN
GI TR
NGHA
EMPTY_FILL
SOLID_FILL
LINE_FILL
LTSLASH_FILL
SLASH_FILL
BKSLASH_FILL
LTBKSLASH_FILL
HATCH_FILL
XHATCH_FILL
INTERLEAVE_FILL
WIDE_DOT_FILL
CLOSE_DOT_FILL
USER_FILL

0
1
2
3
4
5
6
7
8
9
10
11
12

Mu nn Background color
Vng t vi mu t Solid fill
--///
///, thick lines
\\\, thick lines
\\\
Light hatch
Heavy crosshatch
Interleaving lines
Widely spaced dots
Closely spaced dots
T theo mu ca ngi dng
User defined fill pattern

- Mu t cng c th t nh ngha ra:


setfillpattern(char far *upattern, int Color)
chc nng: t nh ngha mu t vi mu ma trn 8 x 8.
6. Ti liu tham kho
- Quch Tun Ngc, Ngn ng lp trnh C++ trang 397-437
98

- Bi ging ca gio vin


7. Cu hi n tp
- Hy vit on chng trnh kch hot ha v v cc hnh quen thuc.
- Hy tm hiu cc hm v hng s xc nh loi mn hnh ha.
- Tm hiu cch hin th vn bn di ch ha.
Phn III. Thc hnh
1. Lch thc hnh v s bui
Bui 1. Thc hnh h iu hnh WINDOWS v h son tho WORD
3 tit
Bui 2. Thc hnh cu trc r nhnh
3 tit
Bui 3. Thc hnh cu trc lp
3 tit
Bui 4. Thc hnh v hm v quy
3 tit
Bui 5. Thc hnh v cu trc lp
3 tit
Bui 6. Thc hnh v tp
3 tit
- Thc tp ti Phng my A Khu b bi HVKTQS. Gi thc hnh ng k ti
Phng my theo Thi Kha biu.
2. Yu cu
- Trong gi thc hnh Hc vin phn tch thut ton v thc hin li cc v d c
trong bi ging hoc vit chng trnh gii cc bi ton mi.
- Khng c chi tr chi trong gi thc hnh, nu vi phm s b ui khi Phng
my.
- Khuyn khch thc mc, trao i, tranh lun gia Hc vin vi Hc vin, Hc vin
vi Gio vin trong gi hc.
CC BI TP B SUNG
1.

2.
3.
4.

5.

S nguyn n<1000000 c gi l s hnh phc nu tng ba ch s u bng


ba ch s cui (nu khng 6 s th thm s 0 cho ). Lp trnh tm tt c
cc s hnh phc.
Vit chng trnh c s thnh ch.
Nhp dy s thc, nht ring cc s dng v sp thnh dy tng.
Lit k cc s b hn hoc bng n sao cho bnh phng ca s c phn bn
phi trng vi chnh s .
Nhp mt dy s, tm phn t ln nht, nh nht v v tr t max, min.
b

6.

Dng phuong php hnh thang tnh (sin 2 x cos x)dx vi a, b nhp vo t bn
a

phm
b

7.

Dng phuong php Simson tnh (sin 2 x cos x)dx vi a, b nhp vo t bn phm
a

99

8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.

19.
20.
21.
22.
23.

24.
25.
26.
27.
28.
29.
30.

31.
32.

33.

34.

35.

36.

37.
38.
39.

40.
41.
42.

Nhp mt dy s thc, hy sp xp thnh mt cp s cng nu c th


Dy s Fibonacii Fn: F0=F1=1, Fn=Fn-1+Fn-2 vi n>=2. In ra s Fibonacci th n
Nhp vo n s nguyn, lit k m s nguyn t u tin
Nhp mt xu k t, m s t trong xu
Gii v bin lun phng trnh trng phng ax4+bx2+c=0
Tm hai s nguyn t c tng bng mt s chn cho trc
Tm cc gi tr x,y,z (<100) sao cho x2+y2=z2
Gii phng trnh bc 2, lp trnh khng cho nhp h s a=0
Nhp vo mt xu, m xem c bao nhiu k t v k t s
Nhp vo mt dy s, hy tm dy con tng c nhiu phn t nht
Nhp vo mt dy s thc v mt s nguyn k. Hy xem trong dy c k s
nguyn ng cnh nhau khng?
Vit chng trnh lit k cc s nguyn nhhown s nguyn t n
Vit chng trnh tm USCLN ca 2 s nguyn bng quy v dng vng lp
Nhp vo dy s nguyn. Hy in ra v tr v s nguyn t trong dy nu c
Nhp s nguyn dng m, n. Tm 2 ch s cui ca nm
In ra cc cch c 300000 ng vi cc t tin mnh gi 1000, 2000, 5000,
10000, 20000
Nhp dy s thc, lit k nhng s ch xut hin mt ln
Nhp dy s thc, tm cc s bng tng ca 2 s trong dy
Tm k ln nht 4k b hn n
Tm cn bc 2 ca a theo php lp Newton: x0=1, xn=(a/xn-1xn-1)/2
Tm cc s t nhin b hon n bng tng cc c s ca n
Nhp vo ma trn A(m,n), kim tra xem 2 ct gn nhau c ging nhau khng?
Cho phng trnh ex+sinx-2=0, dng phng php chia i tm nghim trn
[a,b]
Nhpvaof mt chui bt k, xa k k t bt u t v tr th i
Tm trong khong t 100 n 1000 cc s c gi tr bng tng lp phng cc
ch s ca n
Li sut tit kim k%. Nhp vn ban u n, s thng m. Tnh s tin nhn
c sau m thng
Nhp vo mt s thc a. Hy loi b nhng phn t trng nhau vi phn t
trc (ch gi li s u tin) v in ra s mi
Nhp t bn phm 3 im trong mt phng A(x1,y1), B(x2,y2), C(x3,y3).
Tnh din tch tam gic ABC nu c.
Nhp t bn phm 3 im trong mt phng A(x1,y1), B(x2,y2), C(x3,y3).
Xem A, B, C c to thnh tam gic khng? Nu c th l tam gic gi?
Tm BSCNN ca 2 s nguyn dng a,b.
Cho ma trn A, kim tra tnh i xng ca n.
Cho phng trnh x2x-1=0, dng phng php chia i tm nghim ca n
trong on [a,b].
Tnh s vi sai s 0.0001.
Biu din mt s l dng di dng 2p-1 (p nguyn dng).
Xy dng cu trc s phc, thc hin cc php ton ca s phc.
100

43.
44.
45.
46.

47.

48.

Vit chng trnh o ngc mt xu cho trc.


Vit chng trnh in ra bn cu chng.
Nhp vo ma trn n hng, m ct. Tm ct c s s dng nhiu nht.
Gii bi ton Trm tru trm c, tru ng n nm, tru nm n ba, tru gi l
kh ba con mt b. Hi c bao nhiu tru mi loi.
Vit chng trnh kim tra tnh i xng ca mt s, dng vng lp do-while
cho php nhp nhiu ln v dng phm ESC thot.
Tnh 2 4 ... 2(n 1) 2n .

49.

Nhp vo mt dy s thc. Gi M,m lam min v max ca dy. Lit k cc s


nguyn thuc khong (m,M) v khng thuc dy.
50.
Nhp vo mt dy s thc. Hy kim tra:
-Tnh an du, - Cp s cng, - cp s nhn, - dy s dng, - dy s m.
51. Vit hm xc nh di ca xu k t.
52. Vit hm tnh t hp chp k ca n.
53. Nhp mt dy s thc a v nhp s x
a/ Sp xp thnh dy gim.
b/ Xem xt c phn t no bng s x cho trc khng? Nu khng c b sung
thm x sao cho khng ph v tnh gim ca dy.
54. Lp trnh tm tm tt c cc cp s nguyn a, b (1,a,b<100) sao cho a2+b2 l s
chnh phng.

101

102

You might also like