37

Thuật toán trong pascal

Embed Size (px)

Citation preview

CÁCTHUẬTTOÁNVỀSỐTHUẬTTOÁNKIỂMTRASỐNGUYÊNTỐ

Thuậttoáncủatadựatrênýtưởng:nếun>1khôngchiahếtchosốnguyênnàotrongtấtcảcácsốtừ2đến thìnlàsốnguyêntố.Dođótasẽkiểmtratấtcảcácsốnguyêntừ2đếncóround(sqrt(n)),nếunkhôngchiahếtchosốnàotrongđóthìnlàsốnguyêntố.

Nếuthấybiểuthứcround(sqrt(n))khóviếtthìtacóthểkiểmtratừ2đếnndiv2.Hàmkiểmtranguyêntốnhậnvàomộtsốnguyênnvàtrảlạikếtquảlàtrue(đúng)nếunlànguyên

tốvàtrảlạifalsenếunkhônglàsốnguyêntố.functionngto(n:integer):boolean;vari:integer;beginngto:=false;ifn<2thenexit;fori:=2totrunc(sqrt(n))doifnmodi=0thenexit;{nếunchiahếtchoithìnkhônglànguyêntố=>thoátluôn}ngto:=true;end;Chúý:Dựatrênhàmkiểmtranguyêntố,tacóthểtìmcácsốnguyêntốtừ1đếnnbằngcáchchoi

chạytừ1đếnnvàgọihàmkiểmtranguyêntốvớitừnggiátrịi.

THUẬTTOÁNTÍNHTỔNGCÁCCHỮSỐCỦAMỘTSỐNGUYÊN

Ýtưởnglàtachiasốđócho10lấydư(mod)thìđượcchữsốhàngđơnvị,vàlấysốđódiv10thìsẽđượcphầncònlại.Dođósẽchialiêntụcchođếnkhikhôngchiađượcnữa(sốđóbằng0),mỗilầnchiathìđượcmộtchữsốvàtacộngdồnchữsốđóvàotổng.

Hàmtínhtổngchữsốnhậnvào1sốnguyênnvàtrảlạikếtquảlàtổngcácchữsốcủanó:functiontongcs(n:integer):integer;vars:integer;begins:=0;whilen<>0dobegins:=s+nmod10;n:=ndiv10;end;tongcs:=s;end;Chúý:Tínhtíchcácchữsốcũngtươngtự,chỉcầnchúýbanđầugánslà1vàthựchiệnphépnhân

svớinmod10.

THUẬTTOÁNEUCLIDETÍNHUCLN

ÝtưởngcủathuậttoánEuclidelàUCLNcủa2sốa,bcũnglàUCLNcủa2sốbvàamodb,vậytasẽđổialàb,blàamodbchođếnkhibbằng0.KhiđóUCLNlàa.

HàmUCLNnhậnvào2sốnguyêna,bvàtrảlạikếtquảlàUCLNcủa2sốđó.functionUCLN(a,b:integer):integer;varr:integer;beginwhileb<>0dobeginr:=amodb;a:=b;b:=r;end;UCLN:=a;end;Chúý:DựatrênthuậttoántínhUCLNtacóthểkiểmtrađược2sốnguyêntốcùngnhauhaykhông.

NgoàiracũngcóthểdùngđểtốigiảnphânsốbằngcáchchiacảtửvàmẫuchoUCLN.

THUẬTTOÁNTÍNHTỔNGCÁCƯỚCSỐCỦAMỘTSỐNGUYÊN

Đểtínhtổngcácướcsốcủasốn,tachoichạytừ1đếnndiv2,nếunchiahếtchosốnàothìtacộngsốđóvàotổng.(Chúýcáchtínhnàychưaxétncũnglàướcsốcủan).

functiontongus(n:integer):integer;vari,s:integer;begins:=0;fori:=1tondiv2doifnmodi=0thens:=s+i;tongus:=s;end;Chúý:Dựatrênthuậttoántínhtổngướcsố,tacóthểkiểmtrađược1sốnguyêncólàsốhoànthiện

không:sốnguyêngọilàsốhoànthiệnnếunóbằngtổngcácướcsốcủanó.

CÁCTHUẬTTOÁNVỀVÒNGLẶPTHUẬTTOÁNTÍNHGIAITHỪAMỘTSỐNGUYÊN

Giaithừan!làtíchcácsốtừ1đếnn.Vậyhàmgiaithừaviếtnhưsau:functiongiaithua(n:integer):longint;vari:integer;s:longint;begins:=1;fori:=2tondos:=s*i;giaithua:=s;end;

THUẬTTOÁNTÍNHHÀMMŨ

TrongPascaltacóthểtínhabbằngcôngthứcexp(b*ln(a)).Tuynhiênnếuakhôngphảilàsốdươngthìkhôngthểápdụngđược.

Tacóthểtínhhàmmũanbằngcôngthứclặpnhưsau:functionhammu(a:real;n:integer):real;vars:real;i:integer;begins:=1;fori:=1tondos:=s*a;hammu:=s;end;

THUẬTTOÁNTÍNHCÔNGTHỨCCHUỖI

Thuậttoántínhhàmex:

Đặt: và ,tađượccôngthứctruyhồi:

Khiđó,tacóthểtínhcôngthứcchuỗitrênnhưsau:functionexpn(x:real;n:integer):real;vars,r:real;i:integer;begins:=1;r:=1;fori:=1tondobeginr:=r*x/i;s:=s+r;end;

expn:=s;end;

CÁCBÀITẬPVỀMẢNG1CHIỀUVÀ2CHIỀUBÀITẬP1

Nhậpvàomộtsốn(5<=n<=10)vànphầntửcủadãya,1<ai<100(cókiểmtradữliệukhinhập).a)Inracácphầntửlàsốnguyêntốcủadãy.b)Tínhướcchunglớnnhấtcủatấtcảcácphầntửcủadãy.c)Tínhbiểuthứcsau:

d)Sắpxếpdãytăngdầnvàinradãysausắpxếp.

HƯỚNGDẪN

Ta nên chia chương trình thành các chương trình con,mỗi chương trình thực hiệnmột yêu cầu.Ngoàiratacũngviếtthêmcáchàmkiểmtranguyêntố,hàmmũ,hàmUCLNđểthựchiệncácyêucầuđó.

Chươngtrìnhnhưsau:Khaibáodữliệu:usescrt;varn:integer;a:array[1..10]ofinteger;{n<=10nênmảngcótốiđa10phầntử}Thủtụcnhậpdữliệu,cókiểmtrakhinhập.procedurenhap;vari:integer;beginclrscr;write('NHAPVAOSOPHANTUN=');repeatreadln(n);if(5<=n)and(n<=10)thenbreak;{nếuthoãmãnthìdừngvònglặp}writeln('Khonghople(5<=n<=10).Nhaplai!!!');{ngượclạithìbáolỗi}untilfalse;writeln('NHAPVAONPHANTU(1<ai<100)');fori:=1tondobeginwrite('a',i,'=');repeatreadln(a[i]);if(1<a[i])and(a[i]<100)thenbreak;writeln('Khonghople.Nhaplai!!!');untilfalse;end;end;functionngto(n:integer):boolean;{hàmkiểmtranguyêntố,xemgiảithíchởphầntrên}

vari:integer;beginngto:=false;ifn<2thenexit;fori:=2toround(sqrt(n))doifnmodi=0thenexit;ngto:=true;end;Thủtụcincácsốnguyêntốcủamộtmảngprocedureinngto;vari:integer;beginwriteln('CACPHANTUNGUYENTOTRONGDAY:');fori:=1tondo{duyệtquamọiphầntửtừ1đếnn}ifngto(a[i])thenwriteln(a[i]);{nếuailànguyêntốthìinra}end;functionUCLN(a,b:integer):integer;varr:integer;beginwhileb<>0dobeginr:=amodb;a:=b;b:=r;end;UCLN:=a;end;ThủtụctínhUCLNcủacácphầntửcủamộtmảngprocedureTinhUC;vari,u:integer;beginu:=a[1];{ulàUCLNcủacácphầntửtừ1đếni}fori:=2tondou:=UCLN(u,a[i]);{làUCLNcủacácphầntửtừ1đếni-1vàai}writeln('UCLNcuacadayla:',u);end;functionhammu(a:real;n:integer):real;{hàmmũtínhan}vars:real;i:integer;begins:=1;fori:=1tondos:=s*a;hammu:=s;end;Thủtụctínhtổngcácphầntửcólấymũ:proceduretong;vars:real;i:integer;{sphảikhaibáolàsốthựcđểtránhtrànsố}begins:=0;

fori:=1tondos:=s+hammu(a[i],i);{s:=s+(ai)i}writeln('Tongcantinh:',s:10:0);end;Thủtụcsắpxếptăngdầncácphầntửcủamộtmảng:proceduresxep;vari,j,tg:integer;beginfori:=1ton-1doforj:=i+1tondoifa[i]>a[j]thenbegintg:=a[i];a[i]:=a[j];a[j]:=tg;end;writeln('DAYSAUKHISAPXEPTANGDAN:');fori:=1tondowriteln(a[i]);end;Chươngtrìnhchính:lầnlượtgọitừngthủtụcBEGINnhap;inngto;tinhuc;tong;sxep;END.

BÀITẬP2

Tìmphầntửnhỏnhất,lớnnhấtcủamộtmảng(cầnchỉracảvịtrícủaphầntử).

HƯỚNGDẪN

Giảsửphầntửmincầntìmlàphầntửk.Banđầutachok=1.Sauđóchoichạytừ2đếnn,nếua[k]>a[i]thìrõrànga[i]béhơn,tagánkbằngi.Saukhiduyệttoànbộdãythìksẽlàchỉsốcủaphầntửmin.(Cáchtìmminnàyđơngiảnvìtừvịtrítacũngsuyrađượcgiátrị).

proceduretimmin;vari,k:integer;begink:=1;fori:=2tondoifa[k]>a[i]thenk:=i;writeln('Phantunhonhatlaa[',k,']=',a[k]);end;Tìmmaxcũngtươngtự,chỉthaydấusosánh.proceduretimmax;vari,k:integer;begink:=1;

fori:=2tondoifa[k]<a[i]thenk:=i;writeln('Phantulonnhatlaa[',k,']=',a[k]);end;Chúý:1.Nếuápdụngvớimảng2chiềuthìcũngtươngtự,chỉkháclàđểduyệtquamọiphầntửcủamảng

2chiềuthìtaphảidùng2vòngfor.Vàvịtrímộtphầntửcũnggồmcảdòngvàcột.Vídụ1.Tìmphầntửnhỏnhấtvàlớnnhấtcủamảng2chiềuvàđổichỗchúngchonhau:procedureexchange;vari,j,i1,j1,i2,j2,tg:integer;begini1:=1;j1:=1;{i1,j1làvịtríphầntửmin}i2:=1;j2:=1;{i2,j2làvịtríphầntửmax}fori:=1tomdoforj:=1tondobeginifa[i1,j1]>a[i,j]thenbegin{sosánhtìmmin}i1:=i;j1:=j;{ghinhậnvịtríminmới}end;ifa[i2,j2]<a[i,j]thenbegin{sosánhtìmmax}i2:=i;j2:=j;{ghinhậnvịtrímaxmới}end;end;tg:=a[i1,j1];a[i1,j1]:=a[i2,j2];a[i2,j2]:=tg;{đổichỗ}end;2.Nếucầntìmphầntửlớnnhất/nhỏnhấthoặcsắpxếp1dòng(1cột)củamảng2chiềuthìtacũng

coidòng(cột)đónhư1mảng1chiều.Chẳnghạntấtcảcácphầntửtrêndòngkđềucódạngchỉsốlàa[k,i]vớiichạytừ1đếnn(nlàsốcột).

Vídụ2.Tìmphầntửlớnnhấtcủadòngkvàđổichỗnóvềphầntửđầudòng.proceduretimmax(k:integer);vari,vt,tg:integer;beginvt:=1;{vtlàvịtrícủaphầntửmindòngk}fori:=1tondoifa[k,i]>a[k,vt]thenvt:=i;{cácphầntửdòngkcódạnga[k,i]}tg:=a[k,1];a[k,1]:=a[k,vt];a[k,vt]:=tg;end;Vídụ3.Sắpxếpgiảmdầncộtthứk.proceduresapxep(k:integer);vari,j,tg:integer;beginfori:=1tom-1do{mỗicộtcómphầntử,vìbảngcómdòng}forj:=i+1tomdoifa[i,k]>a[j,k]thenbegin{cácphầntửcộtkcódạnga[i,k]}tg:=a[i,k];a[i,k]:=a[j,k];a[j,k]:=tg;end;end;

BÀITẬP3

Tìmcácphầntửthoảmãn1tínhchấtgìđó.

HƯỚNGDẪN

Nếutínhchấtcầnthoảmãnlàcầnkiểmtraphứctạp(chẳnghạn:nguyêntố,hoànthiện,cótổngchữsốbằng1giátrịchotrước…)thìtanênviếtmộthàmđểkiểmtra1phầntửcótínhchấtđókhông.Còntínhchấtcầnkiểmtrađơngiản(chẵn/lẻ,dương/âm,chiahết,chínhphương…)thìkhôngcần.

Sauđótaduyệtquacácphầntửtừđầuđếncuối,phầntửnàothoảmãntínhchấtđóthìinra.Vídụ1.Inracácsốchínhphươngcủamộtmảng:Đểkiểmtrancóchínhphươngkhông,talấycănn,làmtrònrồibìnhphươngvàsosánhvớin.Nếu

biểuthứcsqr(round(sqrt(n)))=nlàtruethìnlàchínhphương.Vậyđểincácphầntửchínhphươngtaviết:fori:=1tondobeginifsqr(round(sqrt(a[i])))=a[i]thenwriteln(a[i]);Vídụ2.Inracácsốhoànthiệntừ1đếnn:Đểkiểmtrasốcóhoànthiệntadùnghàmtổngước(đãcóởphầnđầu).fori:=1tondobeginiftongus(i)=ithenwriteln(i);Vídụ3.Inracácphầntửcủamảngchia3dư1,chia7dư2:fori:=1tondobeginif(a[i]mod3=1)and(a[i]mod7=2)thenwriteln(a[i]);Vídụ4.Inracácsốcó3chữsố,tổngchữsốbằng20,chia7dư2.Tadùnghàmtổngchữsốđãcóởtrên:fori:=100to999dobegin{duyệtquamọisốcó3chữsố}if(tongcs(i)=20)and(imod7=2)thenwriteln(i);Chúý:Nếuápdụngvớimảng2chiềuthìcũngtươngtự,chỉkháclàđểduyệtquamọiphầntửcủa

mảng2chiềuthìtaphảidùng2vòngfor.Vídụ,đểincácphầntửnguyêntốcủa1mảng2chiều:fori:=1tomdobeginforj:=1tondobeginifngto(a[i,j])thenwriteln(a[i,j]);

BÀITẬP4

Nhậpvàinmảng2chiềudạngmatrận(mdòng,ncột).

HƯỚNGDẪN

Đểnhậpcácphầntửcủamảng2chiềudạngmatrận,tacầndùngcáclệnhsaucủaunitCRT(nhớphảicókhaibáousercrtởđầuchươngtrình).

GotoXY(a,b):dichuyểncontrỏmànhìnhđếnvịtrí(a,b)trênmànhình(cộta,dòngb).Mànhìnhcó80cộtvà25dòng.

whereX:hàmchogiátrịlàvịtrícộtcủacontrỏmànhình.whereY:hàmchogiátrịlàvịtrídòngcủacontrỏmànhình.

Khinhập1phầntử tadùnglệnhreadlnnêncontrỏmànhìnhsẽxuốngdòng,dođócầnquaylạidòngcủabằnglệnhGotoXY(j*10,whereY-1),nếutamuốnmỗiphầntửcủamatrậnứngvới10cộtmànhình.

procedurenhap;vari,j:integer;beginclrscr;write('Nhapm,n=');readln(m,n);fori:=1tomdobeginforj:=1tondobeginwrite('A[',i,',',j,']=');readln(a[i,j]);{nhậpxongthìxuốngdòng}gotoXY(j*10,whereY-1);{dichuyểnvềdòngtrước,vịtrítiếptheo}end;writeln;{nhậpxong1hàngthìxuốngdòng}end;end;Đểinbảngdạngmatrậnthìđơngiảnhơn,vớimỗidòngtasẽincácphầntửtrên1hàngrồixuống

dòng:procedureinbang;vari,j:integer;beginfori:=1tomdobegin{viếtcácphầntửcủahàngi}forj:=1tondowrite(a[i,j]:6);{mỗiphầntửchiếm6ôđểcănphảichothẳngcột

vàkhôngsítnhau}writeln;{hết1hàngthìxuốngdòng}end;end;

CÁCBÀITẬPVỀXÂUKÍTỰBÀITẬP1

Nhậpvàomộtxâuskhácrỗngvàthựchiệnchuẩnhoáxâu,tứclà:a)Xoácácdấucáchthừab)Chuyểnnhữngkítựđầutừthànhchữhoa,nhữngkítựkhácthànhchữthường.

HƯỚNGDẪN

Chươngtrìnhnhưsau:vars:string;procedurechuanhoa(vars:string);{slàthambiếnđểcóthểthayđổitrongchươngtrìnhcon}vari:integer;beginwhiles[1]=''dodelete(s,1,1);{xoácáckítựcáchthừaởđầuxâu}whiles[length(s)]=''dodelete(s,length(s),1);{xoácáckítựcáchthừaởcuốixâu}{xoácáckítựcáchthừaởgiữacáctừ:nếus[i-1]làcáchthìs[i]làdấucáchlàthừa.Phảidùngvòng

lặp for downtovì nếu trongquá trìnhxoá ta làmgiảmchiềudài củaxâu, nếu for to sẽkhôngdừngđược.}

fori:=length(s)downto2doif(s[i]='')and(s[i-1]='')thendelete(s,i,1);{Chuyểnkítựđầuxâuthànhchữhoa}s[1]:=Upcase(s[1]);fori:=2tolength(s)doifs[i-1]=''thens[i]:=Upcase(s[i]){Chuyểns[i]làkítựđầutừthànhchữhoa.}elseifs[i]in['A'..'Z']then{s[i]làkítựchữhoakhôngởđầumộttừ}s[i]:=chr(ord(s[i])+32);{thìphảichuyểnthànhchữthường}end;BEGINwrite('Nhapvao1xaus:');readln(s);chuanhoa(s);writeln('Xaussaukhichuanhoa:',s);readln;END.

BÀITẬP2

Nhậpvàomộtxâuxkhácrỗngvàthôngbáoxâuđócóphảilàxâuđốixứnghaykhông?

HƯỚNGDẪN

Xâuđốixứngnếunóbằngchínhxâuđảocủanó.Vậycáchđơngiảnnhấtlàtasẽxâydựngxâuđảocủaxvàkiểmtraxemnócóbằngxkhông.Đểxâydựngxâuđảocủax,cáchđơngiảnnhấtlàcộngcáckítựcủaxtheothứtựngược(từcuốivềđầu).

Chươngtrình:varx:string;(************************************************)functiondoixung(x:string):boolean;{hàmkiểmtraxâuđốixứng}vary:string;i:integer;beginy:='';{xâydựngylàxâuđảocủax,bằngcáchcộngdầncáckítựcủaxvàoytheothứtựngược}fori:=length(x)downto1doy:=y+x[i];{sosánhxvàxâuđảocủanó}ifx=ythendoixung:=trueelsedoixung:=false;end;BEGINwrite('Nhapvao1xau:');readln(x);ifdoixung(x)thenwriteln('Xaudoixung!')elsewriteln('Xaukhongdoixung!');readln;END.

BÀITẬP3

Nhậpvàomộtxâusvàđếmxemnócóbaonhiêutừ.Từlàmộtdãycáckítự,cáchnhaubởidấucách?

HƯỚNGDẪN

Cáchđếmtừđơngiảnnhấtlàđếmdấucách:nếus[i]làkítựkháccáchvàs[i-1]làkítựcáchthìchứngtỏs[i]làvịtríbắtđầucủamộttừ.Chúýlàtừđầutiêncủaxâukhôngcódấucáchđứngtrước.

Chươngtrình:vars:string;{Hàmđếmsốtừcủamộtxâu}functionsotu(s:string):integer;vari,dem:integer;begin{cộngthêmdấucáchphíatrướcxâuđểđếmcảtừđầutiên}s:=''+s;dem:=0;fori:=2tolength(s)do{s[i]làvịtríbắtđầu1từ}if(s[i-1]='')and(s[i]<>'')thendem:=dem+1;sotu:=dem;

end;BEGINwrite('Nhapvao1xau:');readln(s);writeln('Sotutrongxaula:',sotu(s));readln;END.

BÀITẬP4

Nhậpvàomộtxâusvàinracáctừcủanó(Từlàmộtdãycáckítự,cáchnhaubởidấucách).Xâucóbaonhiêutừlàđốixứng?

HƯỚNGDẪN

Cónhiềucáchđểtáchmộtxâuthànhcáctừ.Cáchđơngiảnnhấttiếnhànhnhưsau:1)Bỏquacácdấucáchchođếnkhigặpmộtkítựkháccách(hoặchếtxâu).2)Ghicáckítựtiếptheovàoxâutạmchođếnkhigặpdấucáchhoặchếtxâu,khiđótađược1

từ.3)Nếuchưahếtxâuthìquaylạibước1.Mỗikhitìmđượcmộttừ,taghiluônnóramànhình,nếutừđólàđốixứngthìtăngbiếnđếm.Ta

cũngcóthểlưucáctừtáchđượcvàomộtmảngnếubàitậpyêucầudùngđếnnhữngtừđótrongcáccâusau.

Chươngtrình:vars:string;dem:integer;{Hàmkiểmtratừđốixứng}functiondoixung(x:string):boolean;vary:string;i:integer;beginy:='';fori:=length(x)downto1doy:=y+x[i];ifx=ythendoixung:=trueelsedoixung:=false;end;{Thủtụcthựchiệntáchtừ}proceduretach;vari,len:integer;t:string;beginwriteln('Cactutrongxau:');i:=1;len:=length(s);repeat{B1:bỏquacácdấucáchchođếnkhihếtxâuhoặcgặp1kítựkháccách:}while(s[i]='')and(i<=len)doinc(i);ifi>=lenthenbreak;{nếuhếtxâuthìdừng}

t:='';{tlàbiếntạmlưutừđangtách}{B2:lấycáckítựkháccáchđưavàobiếntạmchođếnkhihếtxâuhoặcgặp1kítựcách:}while(s[i]<>'')and(i<=len)dobegint:=t+s[i];inc(i);end;{inratừvừatáchđượcvàkiểmtrađốixứng}writeln(t);ifdoixung(t)theninc(dem);untili>=len;writeln('Sotudoixungtrongxau:',dem);end;(************************************************)BEGINwrite('Nhapvao1xau:');readln(s);tach;END.

BÀITẬP5

Mộtsốnguyêngọilàpalindromnếunóđọctừtráisangcũngbằngđọctừphảisang.Vídụ121làmộtsốpalindrom.Nhậpmộtdãynphầntửnguyêndươngtừbànphím,5<=n<=20vàcácphầntửcó2đến4chữsố.Inracácsốlàpalindromtrongdãy.

HƯỚNGDẪN

Mộtsốlàpalindromthìxâutươngứngcủanólàxâuđốixứng.Tasẽxâydựngmộthàmkiểmtramộtsốcóphảilàpalindromkhôngbằngcáchchuyểnsốđóthànhxâuvàkiểmtraxâuđócóđốixứngkhông?

Chươngtrình:usescrt;varn:integer;a:array[1..20]ofinteger;{Thủtụcnhậpdữliệu}procedurenhap;vari:integer;beginclrscr;repeatwrite('n=');readln(n);if(n<=20)and(n>=5)thenbreak;{nếuđãthoảmãnthìthoátkhỏivònglặp}writeln('Yeucau5<=n<=20.Nhaplai!');untilfalse;fori:=1tondorepeat

write('A[',i,']=');readln(a[i]);if(a[i]<=9999)and(a[i]>=10)thenbreak;{a[i]có2đến4chữsố}writeln('Yeucaucacphantuco2den4chuso.Nhaplai!');untilfalse;end;{Hàmkiểmtrabằngcáckiểmtraxâuđốixứng}functionpalindrom(k:integer):boolean;varx,y:string;i:integer;beginstr(k,x);{chuyểnkthànhxâux}y:='';fori:=length(x)downto1doy:=y+x[i];{nếuxlàđốixứngthìklàpalindrom}ifx=ythenpalindrom:=trueelsepalindrom:=false;end;{Inkếtquả:}procedurepalin;vari:integer;beginwriteln('Cacsolapalindromtrongday:');fori:=1tondoifpalindrom(a[i])thenwriteln(a[i]);readln;end;(*Chươngtrìnhchính*)BEGINnhap;palin;END.

CÁCBÀITẬPVỀTỆPBÀITẬP1

Nhậpmộtmảng2chiềumdòng,ncộttừfileBANGSO.TXT.Cấutrúcfilenhưsau:dòngđầulà2sốmvàn,cáchnhaubằngdấucách,mdòngsau,mỗidòngnsốnguyên.

a)Hãyinranhữngsốlàsốnguyêntốcủamảng.b)Tìmvịtríphầntửlớnnhấttrongmảng.c)Sắpxếpmỗidòngcủamảngtăngdầnvàinramảngdạngmatrận.

HƯỚNGDẪN

Takhaibáomộtmảng2chiềuvànhậpdữ liệu từ filevàomảng.Quá trìnhnhập từ filevănbảngiốngnhưnhậptừbànphím,khôngcầnthựchiệnkiểmtradữliệu.

Đểsắpxếpmảngtheoyêucầu,tathựchiệnsắpxếptừngdòngcủamảngbằngcáchviếtmộtthủtụcsắpxếp(kiểuđổichỗchođơngiản)coimỗidòngcủamảngnhư1mảng1chiều.

Chươngtrình:varm,n:integer;a:array[1..100,1..100]ofinteger;(*Nhậpdữliệu*)procedurenhap;varf:text;i,j:integer;beginassign(f,'BANGSO.TXT');reset(f);readln(f,m,n);fori:=1tomdoforj:=1tondoread(f,a[i,j]);close(f);end;functionngto(k:integer):boolean;vari:integer;beginngto:=false;ifk<2thenexit;fori:=2toround(sqrt(k))doifkmodi=0thenexit;ngto:=true;end;procedureinngto;vari,j:integer;beginwriteln('Cacphantunguyentocuamang:');fori:=1tomdoforj:=1tondo

ifngto(a[i,j])thenwrite(a[i,j],'');writeln;end;proceduretimmax;varmax,i,j,im,jm:integer;beginmax:=a[1,1];im:=1;jm:=1;{im,jmlưutoạđộphầntửđạtmax}fori:=1tomdoforj:=1tondoifmax<a[i,j]thenbeginmax:=a[i,j];{mỗilầngánmaxthìgántoạđộluôn}im:=i;jm:=j;end;writeln('PhantulonnhatbanglaA[',im,',',jm,']=',max);end;{Thủtụcthựchiệnsắpxếptăngdầndòngthứk.Cácphầntừdòngkcódạnga[k,i]}procedurexepdong(k:integer);vari,j,tg:integer;beginfori:=1tondoforj:=i+1tondoifa[k,i]>a[k,j]thenbegintg:=a[k,i];a[k,i]:=a[k,j];a[k,j]:=tg;end;end;proceduresapxep;vari,j:integer;beginfori:=1tomdoxepdong(i);{sắpxếptừngdòng}writeln('Mangsaukhisapxep:');fori:=1tomdobegin{indạngmatrận}forj:=1tondowrite(a[i,j]:5);{incácphầntửtrên1dòng}writeln;{inhết1dòngthìxuốngdòng}end;end;BEGINnhap;inngto;timmax;sapxep;END.

BÀITẬP2

Nhập2sốm,ntừbànphím,sauđósinhngẫunhiênm´nsốnguyênngẫunhiêncógiátrịtừ15đến300đểghivàofileBANG.TXT.Sauđóthựchiệncácyêucầusau:

a)Inm´nsốđãsinhdạngmatrậnmdòng,ncột.b)Inracácsốchínhphương.Yêucầu:khôngđượcdùngmảng2chiềuđểlưutrữdữliệu.

HƯỚNGDẪN

Doyêucầukhôngđượcdùngmảng2chiềuđểlưutrữdữliệunêntasẽđọcfileđếnđâu,xửlíđếnđấy.

-Đểsinhcácsốngẫunhiêntừađếnb,tadùngbiểuthứca+random(b-a+1).-Đểkiểmtrasốkcóphảilàsốchínhphươngkhông,talấycănbậc2củak,làmtrònrồibình

phương.Nếukếtquảbằngkthìklàsốchínhphương.Tứclàkiểmtrasqr(round(sqrt(k)))=k.Chươngtrình:varm,n:integer;f:text;proceduresinh;vari,j:integer;beginwrite('Nhapvao2som,n:');readln(m,n);assign(f,'BANG.TXT');rewrite(f);writeln(f,m,'',n);fori:=1tomdobeginforj:=1tondowrite(f,15+random(300-15+1):6);{sinhsốngẫunhiêntừ15đến300}writeln(f);end;close(f);end;{Hàmchínhphương}functioncp(k:integer):boolean;beginifsqr(round(sqrt(k)))=kthencp:=trueelsecp:=false;end;procedurechinhphuong;vari,j,k:integer;beginassign(f,'BANG.TXT');reset(f);readln(f,m,n);writeln('CACSOCHINHPHUONGCUABANG:');fori:=1tomdobeginforj:=1tondobeginread(f,k);ifcp(k)thenwrite(k,'');{vừađọcvừaxửlí}end;

end;close(f);end;procedureinbang;vari,j,k:integer;beginassign(f,'BANG.TXT');reset(f);{mởlạiđểindạngmatrận}readln(f,m,n);writeln(#10,'INBANGDANGMATRAN:');fori:=1tomdobeginforj:=1tondobeginread(f,k);write(k:6);{đọcđếnđâuinđếnđó}end;writeln;end;close(f);end;BEGINsinh;chinhphuong;inbang;END.

CÁCBÀITẬPVỀBẢNGHIBÀITẬP1

Viếtchươngtrìnhquảnlísách.Mỗicuốnsáchgồmtênsách,tênnhàxuấtbản,nămxuấtbản,giátiền,sốlượng:

a)ĐưaradanhsáchcáccuốnsáchcủanhàxuấtbảnGiáodục.b)Tínhtổngsốtiềnsách.c)Sắpxếpdanhsáchtheonămxuấtbảngiảmdầnvàghikếtquảramànhình.d)Inramànhìnhcáccuốnsáchcógiátiền<=10.000đvàxuấtbảnsaunăm2000.

HƯỚNGDẪN

Môtảmỗicuốnsách làmộtbảnghi,các thông tinvềnó(tênsách, tên tácgiả,…)làcác trường.Danhsáchcuốnsáchsẽlàmộtmảngcácbảnghi.

Khaibáokiểudữliệumôtảsáchnhưsau:typesach=recordten:string[30];{tênsách}nxb:string[20];{tênNhàxuấtbản}namxb:integer;{nămxuấtbản}soluong:integer;{sốlượng}gia:real;{giátiền}end;Thôngtincủatấtcảcáccuốnsáchtalưutrongmộtmảngcácbảnghikiểusach:vards:array[1..100]ofsach;n:integer;Nhậpdữliệu: tanhậptênsáchtrước.Nếutênsáchlàxâurỗngthìđừngnhập,ngượclại lầnlượt

nhậpcácthôngtinkhác:procedurenhap;vart:string;beginClrScr;writeln('NHAPTHONGTINVECACCUONSACH');writeln('(nhaptensachlaxaurongneumuondung)');repeatwrite('Tensach:');readln(t);ift=''thenbreak;n:=n+1;withds[n]dobeginten:=t;write('NXB:');readln(nxb);write('Namxuatban:');readln(namxb);

write('Soluong:');readln(soluong);write('Giatien:');readln(gia);end;untilfalse;end;Câua:tasẽduyệtquatoànbộdanhsáchcáccuốnsách,kiểmtranếutênnhàxuấtbảnlàGiáodục

thìinratấtcảcácthôngtincủacuốnsáchtươngứng:procedureinsach;vari:integer;beginClrscr;writeln('CACCUONSACHCUANXBGIAODUC:');fori:=1tondowithds[i]doifnxb='Giaoduc'thenbeginwriteln('Ten:',ten);writeln('Namxuatban:',namxb);writeln('Soluong:',soluong);writeln('Giatien:',gia);end;readln;end;Câub: tacũngduyệtquatoànbộcáccuốnsách,nhânsốlượngvàgiátiềnrồicộngdồnvàomột

biếntổng.Sauđóinrabiếntổngđó:proceduretinh;vari:integer;tong:real;begintong:=0;fori:=1tondowithds[i]dotong:=tong+gia*soluong;writeln('TONGGIATRICUATATCACACCUONSACH:',tong:0:3);end;Câuc:Sắpxếpdanhsáchgiảmdầntheonămxuấtbảnbằngphươngphápnổibọt(2vòngfor).Chú

ýbiếntrunggiantrongđổichỗphảicókiểusachthìmớigánđược.proceduresxep;vari,j:integer;tg:sach;beginfori:=1tondoforj:=i+1tondoifds[i].namxb<ds[j].namxbthenbegintg:=ds[i];ds[i]:=ds[j];ds[j]:=tg;end;fori:=1tondowithds[i]dobegin

writeln('Ten:',ten);writeln('Namxuatban:',namxb);writeln('Soluong:',soluong);writeln('Giatien:',gia);end;readln;end;Câud:talàmtươngtựviệcindanhsáchcácsáchcủaNXBGiáodục:procedureinds;vari:integer;beginwriteln('CACCUONSACHGIAREHON10000VAXUATBANTUNAM2000:');fori:=1tondowithds[i]doif(gia<=10000)and(namxb>=2000)thenwriteln(ten);end;Chươngtrìnhchính:Lầnlượtgọicácchươngtrìnhcontheothứtự:BEGINnhap;insach;tinh;sxep;inds;readln;END.

BÀITẬP2

Viếtchươngtrìnhquảnlícánbộ.Thôngtinvềcánbộgồmtên,tuổi,hệsốlương,phụcấp,thunhập.a)NhậpthôngtincánbộtừfilevănbảnCANBO.TXT.Cácthôngtingồmtên,tuổi,hệsốlương,

phụcấp,mỗithôngtintrênmộtdòng.Tínhthunhập=hệsốlương´350000đ+phụcấpb)Đưaradanhsáchcácbộtrẻ(tuổi<=30),inđầyđủcácthôngtinc)SắpxếptêncánbộtheoabcvàghilênfiletruycậptrựctiếpSAPXEP.DAT.d)ĐọcdanhsáchtừfileSAPXEP.DAT,inramànhìnhcáccánbộcóthunhậptừ3triệutrởlên.

HƯỚNGDẪN

Làmtươngtựbài1,chúýlànhậpdữliệutừfilechứkhôngphảitừbànphím.Dođókhôngcầnghicácthôngtinyêucầunhậpramànhình.Hơnnữa,phảitạotrướcmộtfilevănbảnlàCANBO.TXTđểchươngtrìnhcóthểchạymàkhôngbáolỗi.

Toànvănchươngtrình:usescrt;typecanbo=recordten:string[20];

tuoi:byte;hsl,phucap,thunhap:real;end;vards:array[1..100]ofcanbo;n:integer;(*********************************************)procedurenhap;varf:text;beginassign(f,'CANBO.TXT');reset(f);n:=0;whilenoteof(f)dobeginn:=n+1;withds[n]dobeginreadln(f,ten);readln(f,tuoi);readln(f,hsl);readln(f,phucap);thunhap:=hsl*350000+phucap;end;end;close(f);end;(*********************************************)procedurein30;vari:integer;beginwriteln('DANHSACHCACCANBOTRE:');fori:=1tondowithds[i]doiftuoi<=30thenbeginwriteln('Ten:',ten);writeln('Tuoi:',tuoi);writeln('Hesoluong:',hsl:0:3);writeln('Phucap:',phucap:0:3);writeln('Thunhap:',thunhap:0:3);end;end;(*********************************************)proceduresxep;vari,j:integer;tg:canbo;beginfori:=1tondoforj:=i+1tondoifds[i].ten>ds[j].tenthenbegin

tg:=ds[i];ds[i]:=ds[j];ds[j]:=tg;end;end;(*********************************************)procedureghitep;varf:fileofcanbo;i:integer;beginassign(f,'SAPXEP.DAT');rewrite(f);fori:=1tondowrite(f,ds[i]);close(f);end;proceduredoctep;varf:fileofcanbo;i:integer;beginassign(f,'SAPXEP.DAT');reset(f);i:=0;whilenoteof(f)dobegini:=i+1;read(f,ds[i]);end;n:=i;close(f);end;(*********************************************)procedurein3M;vari:integer;beginwriteln('DANHSACHCACCANBOCOTHUNHAPCAO:');fori:=1tondowithds[i]doifthunhap>=3000000thenbeginwriteln('Ten:',ten);writeln('Tuoi:',tuoi);writeln('Thunhap:',thunhap:0:3);end;end;(*********************************************)BEGINnhap;in30;sxep;in3M;readln;END.THUAÄTTOAÙN(GIAÛITHUAÄT)

I)KhaùiNieämThuaätToaùn:1)giaûithuaätcuûamoätbaøitoaùnlaømoätheäthoángcaùcquytaécchaëtcheõvaøroõraøng

chaèmxaùcñònhmoätdaõycaùcthaotaùctreânnhöõngdöõlieäuvaøo(INPUT),saochosaumoätsoáhöõuhaïnböôùcthöïchieäncaùcthaotaùctathuñöôïckeátquaû(OUTPUT)cuûabaøitoaùn

2)Víduï:chohaisoánguyeâna,b.caànxaâydöïnggiaûithuaätñeåtìmöôùcsoáchunglôùnnhaát(USCLN)cuûahaisoáavaøb.DöôùiñaäylaøgiaûithuaätcuûanhaøtoaùnhoïccoåHyLaïpÔcliñeàxuaátchobaøitoaùntreân:

GiaûithuaätÔclid:-INPUT:a,bnguyeân-OUTPUT:USCLNcuûaavaøb.Böôùc1:ChiaachobtìmsoádölaørBöôùc2:Neáur=0thìthoângbaùokeátquaû:USCLNlaøb.DöønggiaûithuaätBöôùc3:Neáur¹0thìgaùntròbchoa,gaùntròrchobroàiquayveàböôùc1caùcthaotaùcgoàm:-Pheùptìmdö:chiasoánnguyeânachosoánguyeânbñeåtìmsoádölaør-Pheùpgaùntrò:ñöamoätgiaùtròcuïtheåvaøomoätbieánnaøoñoù.-Pheùpchuyeånñieàukhieån:chopheùpthöïchieäntieáptöømoätböôùcnaøoñoù(neáu

khoângcoùgaëppheùpchuyeåntieápthìmaùyseõthöïchieäntuaàntöï:sauböôùcilaøböôùci+1)Sau ñaây laø phaàn theå hieän giaûi thuaät Ôclid cuûa Ngoân ngöõ PASCAL thoâng qua moät

chöôngtrìnhconlaøHaøm.{***************************************************}FUNCTIONUSCLN(a,b:integer):Integer;varr:integer;BeginWhileb<>0dobeginr:=amodb;a:=b;b:=r;end;USCLN:=a;END;{***************************************}II).Caùcñaëctröngcuûathuaättoaùn:1)Thuaättoaùnphaûicoùtínhdöøng:saumoätsoáhöõuhaïnböôùcthìphaûidöøngthuaättoaùnvaøchorakeátquaûVíduï:trongthuaättoaùnÔclidsaukhithöïchieänböôùc1chiaachobñeåtìmsoádörtacoù0<r

£bDoñoùneáur=0thìthuaättoaùndöøngsaukhithöïchieänböôùc2,coønr¹0thìsauböôùc3seõcoùpheùpgaùntròcuûabchoavaøcuûarchobneântathuñöôïc0<b<a.Ñieàunaøycoùnghóalaøsoádölaànsaunhoûhônsoádölaàntröôùc.Neânsaumoäthöõuhaïnböôùcthöïchieänthìr=0vaødöøngthuaättoaùn.

2)Thuaättoaùncoùtínhxaùcñònh:Ñoøi hoûi thuaät toaùn saumoãi böôùc caùc thao taùc phaûi heát söùc roõ raøng, khoângneân

gaâysöïnhaäpnhaèng,tuyøtieän.noùicaùchkhaùctrongcuøngmoätñieàukieänthìxöûlyùôûnôinaøocuõngchomoätkeátquaû.

3)Thuaättoaùnxöûlyùñaïilöôïngvaøo(INPUT):Moätgiaûithuaätthöôøngcoùmoäthoaëcnhieàuñaïilöôïngvaøomaøtagoïilaødöõlieäuvaøo.

caùcdöõlieäuthöôøngbieánthieântrongmoätmieànchotröôùc.4)Thuaättoaùnxöûlyùñaïilöôïngra(OUTPUT):Saukhithuaättoaùnthöïchieänxong,tuyøtheochöùcnaêngmaøthuaättoaùnñaûmnhaäntacoù

theåthuñöôïcmoätsoákeátquaûtagoïilaøñaïilöôïngra.5)Thuaättoaùnphaûicoùtínhhieäuquaû:moätbaøitoaùncoùtheåcoùnhieàuthuaättoaùnñeågiaûi.Trongsoácaùcthuaättoaùntacaàn

choïnthuaättoaùntoátnhaát,nghóalaøthuaättoaùnphaûithöïchieännhanh,toánítboänhôù.6)Thuaättoaùnphaûicoùtínhphoåduïng:laøthuaättoaùncoùkhaûnaênggiaûiñöôïcmoätlôùplôùncaùcbaøitoaùn.

III)caùcvíduïveàgiaûithuaätmoätsoábaøitoaùnvieátdöôùidaïngchöôngtrìnhcon

BAØITOAÙN1:“Vieátcaùchaømkieåmtraxemmoätsoácoùphaûilaøsoánguyeântoá(soáchínhphöông,soá

hoaønhaûo)haykhoâng?Tìmöôùcsoáchunglôùnnhaátcuûa2soá?”Giaûithuaätchobaøinaøylaøraátquenthuoäc.*Veàsoánguyeântoá:NñöôïcgoïilaøsoánguyeântoáneáuNkhoângchiaheátcaùcsoáñitöø

2choñeánRound(sqrt(N)).• Veàsoáchínhphöông:Nñöôïcgoïi laøsoáchínhphöôngneáuphaàn thaäpphaâncuûa

Sqrt(n)laøbaèng0.•Veàsoáhoaønhaûo:Nñöôïcgoïilaøsoáhoaønhaûoneáunoùbaèngtoångcaùcöôùccuûa

noù(khoângkeåchínhnoù)víduï:N=6,N=28{Toaønvaênchöôngtrình}UsesCrt;Vari:Integer;{***********************************************}FunctionSont(n:Integer):Boolean;{haømkieåmtrasoánguyeântoá}Vari:Integer;BeginSont:=False;Fori:=2toRound(Sqrt(n))doIfnModi=0ThenExit;Sont:=True;End;{**********************************************}FunctionCphuong(n:integer):Boolean;{kieåmtrasoáchínhphöông}BeginCphuong:=sqrt(n)=Round(sqrt(n));End;{**********************************************}FunctionHoanhao(n:integer):Boolean;Vars,i:integer;Begins:=0;fori:=1tondiv2doifnModi=0Thens:=s+i;Hoanhao:=s=n;End;{************************************************}FunctionUscln(a,b:Integer):Integer;Varr:Integer;Begin

Whileb<>0DoBeginr:=aModb;a:=b;b:=r;End;Uscln:=a;End;{***********************************************}Begin{Chöôngtrìnhchính}End.BAØITOAÙN2:“TìmcaùcsoáM,NsaochotoångcaùcöôùcdöôngcuûaMbaúngNvaøtoångcaùcöôùcdöông

cuûaNbaúngMvôùiM,N<longint”yùùtöôûnggiaûithuaät:-Vieáthaømtínhtoångcaùcöôùcdöôngcuûamoätsoá. -Duyeät I=1..n. ñeå baøi toùan chaïy trong thôøi gian chaáp nhaän ta ñaët k=

tonguoc(i);KhiñoùneáuTongUoc(k)=ithìtoûraøngIvaøkthoûamaõnñeàbaøi.{Toøanvaênchöôngtrình}{$B-}UsesCrt;Vark,n,i,j:Longint;{*****************************************}FunctionTongUoc(a:Longint):Longint;Vart,s:Longint;Begins:=0;Fort:=1toaDiv2doifaModt=0Thens:=s+t;TongUoc:=s;End;{*****************************************}BEGINWrite(‘nhapN=’);Readln(N);Fori:=1toNdoBegink:=tonguoc(i);ifTongUoc(k)=iThenWriteln(i,'',k);End;END.{******************************}BAØITOAÙN3:

“PhaântíchmoätsoátöïnhieânNthaønhtíchcaùcsoánguyeântoá.

Víduï90=2*3*3*5”

YÙtöôûnggiaûithuaät:Chia lieân tieápNchoöôùc nguyeân toábeùnhaát cuûaN,quaù trìnhdöøng laïikhiN=1, cöù

moãilaànthöïchieänpheùpchianhövaäytagaùnlaïin:=nDivNtmin(n);trongñoùNtmin(n)laøhaømtìmöôùcnguyeântoábeùnhaátcuûaN.

HaømtìmöôùcnguyeântoábeùnhaátcuûamoätsoáNlaødeãhieåunhösau:ChoI=2..nneáuilaøsoánguyeântoávaønchiaheátchoithìichínhlaøöôùcnguyeântoábeù

nhaát.haømkieåmtramoätsoácoùphaûilaøsoánguyeântoáhaykhoângñöôïcvieátbôûihaømNT{Toøanvaênchöôngtrình}UsesCrt;VarN:Integer;{********************************************}FunctionNT(n:Integer):Boolean;Vari:Integer;BeginNt:=False;Fori:=2ToN-1DoIfnModi=0ThenExit;Nt:=True;End;{**********************************************}FunctionNTMIn(n:Integer):Integer;Vari:Integer;BeginFori:=2toNdoIfnt(i)and(NModi=0)ThenBeginntmin:=i;Exit;End;End;{**********************************************}

BEGINRepeatReadln(n);Untiln>1;Whilen<>1DOBeginWrite(Ntmin(n):4);n:=nDivNtmin(n);End;END.BAØITOAÙN4:ChuyeånñoåitöøheäñeámthaäpphaânsangheäñeámLamaõvaøngöôïclaïi.yùùtöôûnggiaûithuaät:ChuyeånñoåisoáNtöøheäñeámthaäpphaânsangheäñeámLaMaõ:-Ñaëta=nDiv1000thìsoátöôngöùngôûheäñeámlamaõcoùakyùhieäuM.-Ñoåituøngkyùsoáhaønghaøngtraêm,haøngchuïc,haøngñônvòquasoálamaõtöôngöùngvôùi

caùcboäkyùsoá(C,D,M),(X,L,C),(I,V,X).Víduï:4729Thìa=47traêmthìphaûiduøngboäM,D,CtöùclaøsoáDCC2chuïcthìphaûiduøngboäC,L,XtöùclaøsoáXX9ñônvòthìphaûiduøngboäX,V,ItöùclaøsoáIXChuyeånñoåisoáStöøheäñeámheäñeámLamaõsangthaäpphaân:GiaûtañaõcoùhaømDoi(ch)ñeåñoåimoätkyùsoátöøheälamaõsangheäthaäpphaân..Ñaët

Tam=doi(s[Length(s)])-Xeùttöøngkyùsoálamaõtöøphaûisangtraùi.(i=length(s)-1..1)-Neáugiaùtròcuûamoätkyùsoá<=giaùtròcuûakyùsoálieànbeântraùinoùthìkeátquaûlaø

giaùtròhieäntaïicoängvôùigiaùtròcuûakyùsoáñangxeùtngöôïclaïithìtröøñigiaùtròcuûakyùsoáñangxeùt.

{Toøanvaênchöôngtrình}UsesCrt;{************************************************}FunctionHe10_sang_lama(n:Integer):String;Vars,CH1,CH2,CH3:String;a,b,K,H,i:Integer;Begins:='';K:=1000;H:=100;a:=nDivk;Fori:=1toados:=s+'M';Repeatcasekof1000:BeginCH1:='C';CH2:='D';CH3:='M';End;100:BeginCH1:='X';CH2:='L';CH3:='C';End;

10:BeginCH1:='I';CH2:='V';CH3:='X';End;End;b:=nModKDivH;casebof1:s:=s+CH1;2:s:=s+CH1+CH1;3:s:=s+CH1+CH1+CH1;4:s:=s+CH1+CH2;5:s:=s+CH2;6:s:=s+CH2+CH1;7:s:=s+CH2+CH1+CH1;8:s:=s+CH2+CH1+CH1+CH1;9:s:=s+CH1+CH3;End;K:=KDiv10;H:=HDiv10;Untilk=1;He10_Sang_lama:=s;End;{*********************************************}Functionlama_sang_he10(s:String):Integer;Vari,tam:Integer; Function doi(ch:char):Integer;{ haøm doi laø chöông trình con cuûa ham

LaMa_sang_he_10}Vark:Integer;BeginCaseUPCASE(ch)of'M':k:=1000;'D':k:=500;'C':k:=100;'L':k:=50;'X':k:=10;'V':k:=5;'I':k:=1;'0':k:=0;End;{endofcase}DOI:=K;End;BEGIN{baétñaàucuûahaøm}Tam:=doi(s[length(s)]);Fori:=length(s)-1downto1doifdoi(s[i+1])<=doi(s[i])ThenTam:=Tam+doi(s[i])ElseTam:=Tam-doi(s[i]);LAMA_sang_He10:=Tam;END;{keátthuùchaøm}

{*************************************************}BEGIN{chöôngtrìnhchính}Writeln(he10_sang_lama(4729));END.BAØITOAÙN5:Moätphaânsoás/t=[b1,b2,b3,...bk]vôùibilaøkeátquaûcuûaphaântíchsau:1--------------------1B1+----------------------1B2+--------------------1B3+----------------B4+.................................1BK-1+-------BKa)ChotröôùcS/thaõytìmdaõybib)ChotröôùcdaõybihaõytìmS/t{Toaønvaênchöôngtrình}UsesCrt;Vars,t,a,bb,i,k:Integer;b:array[1..12]ofInteger;{*********************************************}ProcedureCau_a;BeginWriteln('nhaps,t');Readln(s,t);i:=0;Whiles<>0DoBegini:=i+1;bb:=tdivs;a:=s;s:=t-bb*s;t:=a;Write(bb:5);End;End;{***************************************************}ProcedureCau_b;BeginReadln(k);Fori:=1tokdoReadln(b[i]);

s:=1;t:=b[k];Fori:=k-1downto1doBegina:=t;t:=t*b[i]+s;s:=a;End;Writeln(s,'/',t);End;{************************************************}BEGINCau_a;Cau_b;END.BAØITOAÙN6:“Haõytínhtoångcuûahaisoátöïnhieânlôùn”Baøitoaùnnaøycoùnhieàucaùchgiaûisauñaâychuùngtoâineâuleânmoätlôøigiaûitöïnhieân

nhaátnhöngcuõngraáthieäuquaûvaødeãhieåunhösau:Tröôùcheáttañitìmhaømcoänghaichuoåi.FunctionCong(s1,s2:String):String;VarL1,L2,Max,i,tam,a,b,code,nho:Integer;h,h1:String;BeginL1:=length(s1);L2:=length(s2);ifL1>L2ThenMax:=L1ElseMax:=L2;Fori:=L1+1toMaxdos1:='0'+s1;Fori:=L2+1toMaxdos2:='0'+s2;nho:=0;h:='';Fori:=Maxdownto1doBeginval(s1[i],a,code);val(s2[i],b,code);tam:=a+b+nho;iftam>=10Thennho:=1Elsenho:=0;str(tamMod10,h1);h:=h1+h;End;ifnho=1Thenh:='1'+h;cong:=h;End;{******************************************************}

Baâygiôøchuùngtatìmhieåugiaûithuaätkinhñieånchodaïngtoaùnnaøynhösau:-Giaûsöûhaisoáñöôïcchobôûichuoåis1,s2-Theâm0vaøobeântraùisoácoùchieàudaøingaénñeå2chuoåis1,s2coùchieàudaøibaèngnhau

vaøgiaûsöûchieàudaøiluùcñoùlaøMax.-Tínhc[i]=a[i]+b[i]vôùimoïii(i=1..Max)Víduï:a=986b=927Thìc[1]=18;c[2]=10;c[3]=13;-ÑeåClaømaûngsoákeátquaûcaànbieánñoåimoätchuùtnöõanhösau:DuyeätmaûngC töø phaûi qua traùi,moãi c[i] chæ giöõ laïi phaàn dö coøn phaàn nguyeân thì

coängtheâmchophaàntöûc[i-1]nhösau:Fori:=Maxdownto1doBeginc[i-1]:=c[i-1]+c[i]Div10;c[i]:=c[i]Mod10;End;{Toaønvaênchöôngtrình}USESCRT;Procedurecong;Vars1,s2:String;a,b,i,L1,L2,code,Max:Word;c:Array[0..100]ofInteger;BeginReadln(s1);Readln(s2);L1:=length(s1);L2:=length(s2);ifL1>L2ThenMax:=L1ElseMax:=L2;Fori:=L2+1toMaxdos2:='0'+s2;Fori:=L1+1toMaxdos1:='0'+s1;Fillchar(C,SizEof(c),0);Fori:=1toMaxdoBeginval(s1[i],A,code);val(s2[i],B,code);c[i]:=a+b;End;Fori:=Maxdownto1doBeginc[i-1]:=c[i-1]+c[i]Div10;c[i]:=c[i]Mod10;End;Fori:=1toMaxdoWrite(c[i]);End;BEGIN

cong;END.Chöôngtrìnhtröø2soátöïnhieânlôùnthìvaátvaûhôn.theoyùtöôûnglaølaáysoácoùtròtuyeät

ñoáilôntröøñisoácoùtròtuyeätñoáinhoûvaøkeátquaûseõlaøsoáaâmneáusoáthöùnhaátbeùhônsoáthöù2,sauñoùñöatöøngkyùtöïcuûasoálôùnvaøomaûngh1,cuûasoábeùvaøomaûngh2.Neáuh1[i]<h2[i]thì

c[i]:=h1[i]+10-h2[i];vaøh2[i-1]:=h2[i-1]+1;ngöôïclaïineáuh1[i]>=h2[i]thìc[i]:=h1[i]-h2[i];{Toøanvaênchöôngtrình}Proceduretru;Vars1,s2,s:String;h1,h2:Array[1..100]ofInteger;C:Array[1..100]ofInteger;dau:Char;code,l1,l2,Max,i:word;BeginReadln(s1);Readln(s2);L1:=length(s1);L2:=length(s2);ifL1>L2ThenMax:=L1ElseMax:=L2;Fori:=L2+1toMaxdos2:='0'+s2;Fori:=L1+1toMaxdos1:='0'+s1;dau:=#32;IFs2>s1ThenBegindau:='-';s:=s2;s2:=s1;s1:=s;End;Fillchar(C,SizEof(c),0);Fori:=1toMaxdoBeginval(s1[i],h1[i],code);val(s2[i],h2[i],code);End;Fori:=Maxdownto1doBeginIFh1[i]<h2[i]ThenBeginc[i]:=h1[i]+10-h2[i];h2[i-1]:=h2[i-1]+1;End

Elsec[i]:=h1[i]-h2[i];End;Write(dau);Fori:=1toMaxdoWrite(c[i]);End;vaøchöôngtrìnhnhaân2soátöïnhieânlôùnñöôïcvieátnhösau:{Toaønvaênchöôngtrình}Procedurenhan;BeginReadln(s1);Readln(s2);L1:=length(s1);L2:=length(s2);Fillchar(C,SizEof(c),0);Fori:=1toL1doForj:=1toL2doBeginval(s1[i],A,code);val(s2[J],B,code);c[i+j]:=c[i+j]+a*b;End;Fori:=L1+L2downto3doBeginc[i-1]:=c[i-1]+c[i]Div10;c[i]:=c[i]Mod10;End;Write('Tichla:');Fori:=2toL1+L2doWrite(c[i]);End.TrongtàiliệunàytôicósửdụngtưliệucủaanhNguyễnThanhTùng-khoaCNTT,Đạihọcsưphạm

HàNộivànhiềutưliệucủabạnbètôi.