Đăng ký Đăng nhập
Trang chủ Giáo dục - Đào tạo Cao đẳng - Đại học Đại cương Bài tập pascal có lời giải chi tiết...

Tài liệu Bài tập pascal có lời giải chi tiết

.PDF
69
3206
127

Mô tả:

Bài tập pascal có lời giải chi tiết
BAØI TAÄP CÔ BAÛN BAØI TAÄP CHÖÔNG 1:CAÂU LEÄNH IF ….THEN… * Baøi 1 : Nhaäp 3 soá a , b , c baát kì . Haõy kieåm tra xem ba soá ñoù coù theå laø ñoä daøi ba caïnh cuûa moät tam giaùc hay khoâng ? Thoâng baùo leân maøn hình ‘ Thoûa maõn ‘, ‘ Khoâng thoûa maõn trong töøng tröôøng hôïp töông öùng . GIAÛI Var a , b , c : Real ; BEGIN Writeln (' Nhap do dai 3 canh cua tam giac : ') ; Write (' a = ') ; Readln ( a ) ; Write (' b = ') ; Readln ( b ) ; Write (' c = ') ; Readln ( c ) ; If ( a + b > c ) and ( b + c > a ) and ( c + a > b ) and ( a > 0 ) and ( b > 0 ) and ( c > 0 ) Then Writeln (' Thoa man : Day la 3 canh cua mot tam giac ') Else Writeln (' Khong thoa man ! ') ; Readln ; END . * Baøi 2 : Nhaäp N soá baát kì . Ñeám caùc soá lôùn hôn 10 vaø nhoû hôn 20 vaø tính toång cuûa chuùng . Sau ñoù , ñöa ra maøn hình :So cac so >10 vaø <20 la : ( gia tri ) ;Tong cua chung la : ( gia tri ) GIAÛI Var Tong , So : Real ; I , N , Dem : Integer ; BEGIN Write (' Bao nhieu so : ') ; Readln ( N ) ; Tong := 0 ; Dem := 0 ; For I := 1 To N Do Begin Write (' So = ') ; Readln ( So ) ; If ( So > 10 ) and ( So < 20 ) Then Begin Tong := Tong + So ; Dem := Dem + 1 ; End ; BAØI TAÄP CÔ BAÛN TRANG 1 BAØI TAÄP CÔ BAÛN End ; Writeln (' So cac so >10 va <20 la : ', Dem ) ; Writeln (' Tong cua chung la :', Tong ) ; Readln ; END . * Baøi 3 : Nhaäp boán soá a , b , c , d . Haõy tìm giaù trò lôùn nhaát cuûa chuùng vaø gaùn giaù trò lôùn nhaát ñoù cho bieán Max . GIAÛI Var Max , a , b , c , d : Real ; BEGIN Writeln (' Nhap gia tri cua 4 so : ') ; Write (' a = ') ; Readln ( a ) ; Write (' b = ') ; Readln ( b ) ; Write (' c = ') ; Readln ( c ) ; Write (' d = ') ; Readln ( d ) ; Max := a ; If Max < b Then Max := b ; If Max < c Then Max := c ; If Max < d Then Max := d ; Writeln (' Gia tri lon nhat la : ', Max ) ; Readln ; END . * Baøi 4 : Ñoïc ngaøy thaùng naêm , sau ñoù vieát ra maøn hình ñoù laø ngaøy thöù maáy trong tuaàn . GIAÛI Var Thu , Ngay , Thang : Byte ; Nam : Integer ; BEGIN Write (' Doc Ngay Thang Nam : ') ; Readln ( Ngay , Thang , Nam ) ; Nam := 1900 + ( Nam mod 1900 ) ; If Thang < 3 Then Begin Thang := Thang + 12 ; Nam := Nam - 1 ; End ; Thu := Abs ( Ngay + Thang * 2 + ( Thang + 1 ) * 3 div 5 + Nam + Nam div 4 ) mod 7 ; Case Thu Of 0 : Writeln (' Chu Nhat ') ; 1 : Writeln (' Thu Hai ') ; BAØI TAÄP CÔ BAÛN TRANG 2 BAØI TAÄP CÔ BAÛN 2 : Writeln (' Thu Ba ') ; 3 : Writeln (' Thu Tu ') ; 4 : Writeln (' Thu Nam ') ; 5 : Writeln (' Thu Sau ') ; 6 : Writeln (' Thu Bay ') ; End ; Readln ; END . * Baøi 5 : Vieát chöông trình : Nhaâp soá baùo danh Nhaäp ñieåm vaên , toaùn , ngoaïi ngöõ In ra maøn hình döôùi daïng : _ Phieáu ñieåm : _ Soá baùo danh : _ Ñieåm vaên : _ Ñieåm toaùn : _ Ñieåm ngoaïi ngöõ : _ Toång soá ñieåm : Baïn ñaõ truùng tuyeån ( hoaëc Baïn ñaõ khoâng truùng tuyeån ) vôùi ñieàu kieän Toång soá ñieåm >= 15 hay ngöôïc laïi . GIAÛI Uses Crt ; Var SBD : Integer; Van , Toan , Ngoaingu , Tongdiem : Real ; BEGIN Clrscr ; Write (' So bao danh : ') ; Readln( SBD ) ; Write (' Diem toan : ') ; Readln( Toan ) ; Write (' Diem ngoai ngu : ') ; Readln( Ngoaingu ) ; Write (' Diem van : ') ; Readln ( Van ) ; Tongdiem := Toan + Van + Ngoaingu ; Clrscr ; Writeln (' Phieu Bao Diem ') ; Writeln (' So bao danh : ', SBD ) ; Writeln (' Diem van : ', Van ) ; Writeln (' Diem toan : ', Toan ) ; Writeln (' Diem ngoai ngu : ', Ngoaingu) ; Writeln (' Tong diem : ', Tongdiem) ; If Tongdiem >= 15 Then Writeln(' Ban da trung tuyen ') BAØI TAÄP CÔ BAÛN TRANG 3 BAØI TAÄP CÔ BAÛN Else Writeln(' Ban khong trung tuyen ') ; Readln ; END . * Baøi 6 : Vieát chöông trình nhaäp hai soá thöïc . Sau ñoù hoûi pheùp tính caàn thöïc hieän vaø in keát quaû cuûa pheùp tính ñoù . Neáu laø “+” , in keát quaû cuûa toång leân maøn hình . Neáu laø “-” , in keát quaû cuûa hieäu leân maøn hình . Neáu laø “/” , in keát quaû cuûa thöông leân maøn hình . Neáu laø “*” , in keát quaû cuûa tích leân maøn hình . Neáu laø “+” , in keát quaû cuûa toång leân maøn hình . Neáu laø “+” , in keát quaû cuûa toång leân maøn hình . GIAÛI Uses Crt ; Var a , b , T : Real ; Pt : Char ; BEGIN Clrscr ; Write (' a = ') ; Readln( a ) ; Write (' b = ') ; Readln( b ) ; Write (' Phep tinh thuc hien la (+ - * /) : ') ; Readln( Pt ) ; If Pt = '+’ Then T := a + b ; If Pt = '-’ Then T := a - b ; If Pt = '*’ Then T := a * b ; If Pt = '/’ Then T := a / b ; Write ( a , pt , b , ' = ', T ) ; Readln ; END . * Baøi 7 : Giaûi vaø bieän luaän phöông trình : x2 + ( m – 2 ) x + 1 = 0 ôû ñaây m laø tham soá thöïc tuyø yù . GIAÛI Uses Crt; Var m , Delta : Real ; BEGIN Clrscr; Write (' m = ') ; Readln( m ) ; Delta := sqr( m-2 ) - 4 ; If Delta < 0 Then Writeln(' Phuong trinh vo nghiem ') Else Begin BAØI TAÄP CÔ BAÛN TRANG 4 BAØI TAÄP CÔ BAÛN If Delta = 0 Then Writeln(' Phuong trinh co nghiem kep X= ', -( m - 2 ) / 2 ) Else Begin Writeln(' Phuong trinh co 2 nghiem : ') ; Writeln (' X1 = ', ( -(m-2) + sqrt(delta) ) / 2 ) ; Writeln (' X2 = ', ( -(m-2) - sqrt(Delta) ) / 2 ) ; End ; End ; Readln ; END . * Baøi 8 : Vieát chöông trình nhaäp hai soá töï nhieân N, M vaø thoâng baùo ‘Dung‘ neáu N , M cuøng tính chaün leõ , trong tröôøng hôïp ngöôïc laïi thì thoâng baùo ‘Sai‘. GIAÛI Uses Crt ; Var N , M : Integer ; Begin Clrscr ; Write(' N , M = ') ; Readln( N , M ) ; If ( (N + M) mod 2 = 0 ) Then Writeln(' Dung ! ') Else Writeln(' Sai ! ') ; Readln ; END . BAØI TAÄP CHÖÔNG 2:VOØNG LAÄP XÑ VAØ KHOÂNG XAÙC ÑÒNH Söû duïng leänh For * Baøi 1 : Laäp trình tính tích caùc soá töï nhieân töø 1 tôùi 10 . GIAÛI Var i : Byte ; (* chæ soá chaïy *) p : word ; (* tích soá *) BEGIN p := 1; (* cho giaù trò ban ñaàu cuûa tích *) For i := 1 to 10 Do (* cho i chaïy töø 1 tôùi 10 *) p := p * i ; (* laàn löôït nhaân i vôùi p *) Write (' 1 * 2 * ... * 10 = ', p ) ; Readln ; END . Baøi 2 :Vieát chöông trình ñeám soá laàn xuaát hieän cuûa caùc kí töï thuoäc baûng chöõ caùi trong 50 laàn goõ kí töï baèng baøn phím (khoâng phaân bieät a vôùi A, b vôùi B …, duøng haøm Upcase ñeå chuyeån ñoåi chöõ thöôøng vôùi chöõ hoa) . BAØI TAÄP CÔ BAÛN TRANG 5 BAØI TAÄP CÔ BAÛN GIAÛI Uses Crt ; Var a : Array[ 'A'..'Z' ] of integer; (* maûng boä ñeám *) ch : char ; (* bieán nhaäp kí töïù *) i : byte ; (* chæ soá cuûa laàn goõ phím *) BEGIN Clrscr ; For ch :='A' to 'Z' Do a[ch] := 0 ; (* xaû boä ñeám *) Writeln (' Go phim 50 lan ') ; For i := 1 To 50 Do (* thöïc hieän 100 laàn *) Begin ch :=Readkey ; (* nhaäp kí töï vaøo Ch khoâng caàn goõ Enter *) ch := Upcase(ch) ; (* Ñoãi chöõ thöôøng thaønh chöõ hoa *) a[ch] := a[ch] + 1 ; End; Writeln (' So lan xuat hien cac ki tu la :') ; For ch :='A' to 'Z' do (* Kieåm tra boä ñeám töø 'A' tôùi 'Z' *) If a[ch] > 0 Then (* Neáu Ch coù xuaát hieän *) Writeln (ch , a[ch] : 4 , ' lan . ') ; (* Vieát ra maøn hình kí töï vaø soá laàn xuaát hieän *) Readln ; END . * Baøi 3 :Cho soá töï nhieân n , haõy laäp trình ñeå tính caùc toång sau : a. a. 1 + 1/22 + 1/32 + … + 1/n2 b. b. 1 + 1/2! + 1/3! + … + 1/n! GIAÛI BAØI TAÄP CÔ BAÛN TRANG 6 BAØI TAÄP CÔ BAÛN a) Var n , i : Word ; S : Real ; BEGIN Write (' Nhap n : ') ; Readln (n) ; S := 0 ; For i := 1 To n Do S := S + 1 / sqr(i) ; Writeln (' S = ', S:0:2) ; Readln ; END . b) Var n , i , j , p : Word ; S : Real ; BEGIN Write (' Nhap n : ') ; Readln(n) ; p := 1 ; s := 0 ; For i :=1 To n Do Begin p := p * i ; (* tính i *) S := S + 1 / p ; End ; Writeln (' S = ', S:0:2) ; Readln ; END . *Baøi 4 : Tính giaù trò cuûa bieåu thöùc sau : ( 1 + 1/12 ) ( 1 + 1/22 ) … ( 1 + 1/n2 ) GIAÛI Var i , n : Byte ; p : Real ; Begin Write(' Nhap n : ') ; Readln (n) ; p := 1 ; For i := 1 To n Do p := p * ( 1 + 1/sqr(i) ) ; Writeln(' p = ', p:10:5 ) ; Readln ; End Söû duïng leänh While * Baøi 5 : Laäp trình tính toång : A = 1 + 1/2 + 1/3 + … + 1/n BAØI TAÄP CÔ BAÛN TRANG 7 BAØI TAÄP CÔ BAÛN ôû ñaây n laø soá töï nhieân ñöôïc nhaäp vaøo töø baøn phím . GIAÛI Uses Crt ; Var i , n : Integer ; tong: Real ; BEGIN Clrscr ; Write (' Cho so tu nhien n : ') ; Readln (n) ; tong :=0 ; i :=1 ; While i <= n Do Begin tong := tong + 1/i ; i := i + 1 ; End ; Writeln (' Tong can tim la : ', tong:12:6 ) ; Readln ; END . * Baøi 6 : Tính haøm luõy thöøa an , ôû ñaây a thöïc vaø n töï nhieân ñöôïc nhaäp vaøo töø baøn phím . GIAÛI Uses Crt ; Var i , n : Integer ; a , giatri : Real ; BEGIN Clrscr ; Write (' Cho so a : ') ; Readln(a) ; Write (' Cho so mu n : ') ; Readln(n) ; i := 1 ; giatri := 1 ; While i <= n Do Begin giatri := giatri * a ; i:= i+1 ; End ; Writeln(' a mu n bang : ', giatri ) ; Readln ; END . * Baøi 7 : Vieát chöông trình nhaäp moät daõy soá toái ña 100 soá , sau ñoù in ra maøn hình caùc soá khaùc nhau . GIAÛI BAØI TAÄP CÔ BAÛN TRANG 8 BAØI TAÄP CÔ BAÛN Uses Crt; Var A : Array [1..100] Of Integer; i , j , n : Integer ; BEGIN Clrscr ; Write(' Do dai cua day so N = ') ; Readln (N) ; For I := 1 To N Do Begin Write ('A[', i , ']= ') ; Readln ( A[i] ) ; End ; Writeln (' Cac so khac nhau la : ') ; Writeln ( A[1] ) ; i := 2 ; While i <= N Do Begin j := 1 ; While ( j < i ) and ( A[j] <> A[i] ) Do inc(j) ; If j = i Then Writeln( A[i] ) ; i :=i + 1 ; End ; Readln ; END . * Baøi 8 : Vieát chöông trình nhaäp moät daõy soá toái ña 100 soá , sau ñoù saép xeáp laïi theo thöù töï taêng daàn . GIAÛI Uses Crt; Var A : Array [1..100] Of Integer ; i , j , n , T : Integer ; BEGIN Clrscr ; Write(' Do dai cua day so N = ') ; Readln (N) ; Writeln (' Nhap day so : ') ; For i := 1 To N Do Begin Write('A[', i ,'] = ') ; Readln ( A[i] ) ; End ; i := 1 ; While (i <= n-1) Do Begin j := i+1; While j<=n do BAØI TAÄP CÔ BAÛN TRANG 9 BAØI TAÄP CÔ BAÛN Begin If A[j] < A[i] then Begin T := A[j]; A[j ] := A[i]; A[i] := T ; End ; j := j + 1; End ; i := i + 1; End ; Writeln(' Day sau khi sap xep : ') ; For i := 1 To N Do Write(A[i] : 4) ; Readln ; END . Söû duïng leänh Repeat * Baøi 9 : Cho moät daõy soá ñöôïc nhaäp töø baøn phím . Haõy vieát chöông trình nhaäp moät soá a roài lieät keâ taát caû caùc phaàn töû trong daõy lôùn hôn a. GIAÛI Uses Crt ; Var b : Array[1..100] Of Real; a : Real ; n , i : Byte ; BEGIN Clrscr ; Write ('Nhap do dai cua day so : ') ; Readln(n) ; Writeln (' Nhap cac phan tu cua day : ') ; For i := 1 To n Do Begin Write (' b[', i ,'] = ') ; Readln( b[i] ) ; End ; Write (' Nhap so thuc a : ') ; Readln(a) ; Writeln (' Cac phan tu lon hon a cua day : ') ; i:=1; Repeat If ( b[i] > a ) Then Writeln (' b[', i ,'] = ', b[i]:8:2 ) ; inc(i) ; Until i > n ; Readln ; END . BAØI TAÄP CÔ BAÛN TRANG 10 BAØI TAÄP CÔ BAÛN Baøi 10 : Vieát chöông trình nhaäp moät daõy soá toái ña 50 soá roài in ra maøn hình caùc soá truøng nhau cuûa daõy . GIAÛI Uses crt ; Var a , b : Array[1..50] Of Integer ; n , m , i , j , k : Byte ; trung : Boolean ; BEGIN Clrscr ; Write (' Nhap do dai cua day so nguyen : ') ; Readln(n) ; Writeln (' Nhap cac phan tu cua day : ') ; For i := 1 To N do Begin Write (' a[', i ,'] = ') ; Readln( a[i] ) ; End ; i := 1 ; m := 0 ; Repeat trung := false ; j := i + 1; Repeat If ( j <= n ) and ( a[i] = a[j] ) Then trung := true ; inc (j) ; Until trung or ( j > n ) ; If trung Then Begin m := m + 1; b[m] := a[i] ; writeln ( b[m] : 4 ) ; End ; inc(i) ; Until i > n ; If m > 1 Then Begin i := 1 ; Repeat j := i + 1 ; Repeat trung := false ; If b[i] = b[j] Then trung := true ; If trung Then Begin BAØI TAÄP CÔ BAÛN TRANG 11 BAØI TAÄP CÔ BAÛN If j < m Then For k := j To m - 1 Do b[k] := b[k + 1] ; m := m - 1 ; dec ( j ) ; End ; inc ( j ) ; Until j > m ; inc ( i ) ; Until i > m ; End ; If m > 0 Then For k := 1 To m Do Write ( b[k] : 4 ) ; Readln ; END . * Baøi 11 : Baïn coù 1000 ñ ñem göûi ngaân haøng vôùi laõi suaát 8%/thaùng . Sau moãi thaùng tieàn laõi ñöôïc nhaäp vaøo ñeå tính laõi suaát thaùng sau . Baïn muoán ñeå daønh cho ñeán khi soá tieàn taêng leân laø x . Vaäy phaûi ñeå trong bao laâu GIAÛI uses crt ; var thang : Byte ; tien , lai , x : Real ; BEGIN clrscr ; writeln (' Chuong trinh tinh thoi gian rut tien lai ') ; write (' So tien lai muon rut ra : ') ; readln(x) ; tien := 1000 ; thang :=1 ; repeat lai := tien * 8 / 100 ; tien := tien + lai ; thang := thang + 1 ; until tien >= x ; writeln (' Ban phai gui tien trong ', thang div 12 , ' nam ', thang mod 12 ,' thang .') ; writeln (' Khi do so tien ban rut ra duoc la ', tien:12:2 ,' dong .') ; readln ; END . * Baøi 12 : Vieát chöông trình tìm ÖSCLN cuûa N soá ñöôïc nhaäp töø baøn phím . GIAÛI Uses crt ; Var a : Array [1..100] Of Integer ; BAØI TAÄP CÔ BAÛN TRANG 12 BAØI TAÄP CÔ BAÛN n , i : Byte ; d : integer ; BEGIN Clrscr ; Writeln (' Tim USCLN cua N so :') ; Write (' Nhap so N : ') ; Readln(n) ; Writeln ('Nhap ', N ,' so : ') ; For i := 1 To n Do Begin Write(' So thu ', i ,' = ') ; Readln( a[i] ) ; End ; For i := 1 To n-1 Do Repeat d := a[i] ; a[i] := a[ i+1 ] mod a[i] ; a[i+1] := d ; Until a[i] = 0 ; Writeln (' USCLN cua ', N ,' so la : ', a[n] ) ; Readln ; END . BAØI TAÄP CHÖÔNG 3:CHÖÔNG TRÌNH CON Baøi 1 : Duøng thuû tuïc chuyeån moät soá töï nhieân n cho tröôùc sang heä cô soá 2 . GIAÛI Procedure Change ( n : integer ; Var St : String ) ; (* thuû tuïc chuyeån soá töï nhieân n cho tröôùc sang heä cô soá 2 vaø ñöôïc löu ôû trong xaâu St *) Type b : Array[0 .. 1] Of Char = ('0' , '1') ; Var du , So : Integer ; S : String ; Begin S := '' ; (* xaâu roãng *) So := n ; Repeat Du := So mod 2 ; So :=So div 2 ; S := b[du] + s ; Until So = 0 ; St := S ; End ; Baøi 2 :Duøng thuû tuïc giaûi phöông trình baäc hai ax2 + bx + c = 0 GIAÛI Uses Crt ; Var a, b, c, x1, x2: real; BAØI TAÄP CÔ BAÛN TRANG 13 BAØI TAÄP CÔ BAÛN (*================================*) Procedure Nhapabc(var aa,bb,cc: real); Begin Write('a='); Readln(aa); Write('b='); Readln(bb); Write('c='); Readln(cc); End; (*=================================*) Procedure GPTB2; Var Delta: real; Begin Delta:=sqr(b)-4*a*c; If Delta<0 then Writeln('Phuong trinh vo nghiem.') Else If Delta=0 then Begin Write('Phuong trinh co nghiem kep : '); Write('x1,2=',-b/(2*a):8:2); End Else Begin x1:=(-b+sqrt(Delta))/(2*a); x2:=(-b-sqrt(Delta))/(2*a); Writeln('Phuong trinh co 2 nghiem phan biet la :'); Writeln('X1=',x1:8:2, 'X2=',x2:8:2); End; End; (*================================*) BEGIN (* CT chính *) Clrscr; Writeln(' Giai Phuong Trinh Bac Hai Voi Cac He So :'); Nhapabc(a,b,c); If a<>0 then GPTB2 Else Writeln(' Khong phai phuong trinh bac hai '); Readln ; END . Baøi 3 : Haõy vieát laïi thuû tuïc Insert ñoái vôùi moät chuoãi kí töï cho tröôùc tuøy yù . GIAÛI Procedure Insert ( St1 : String ; Var St2 : String ;Vt : Byte ) ; (* cheøn xaâu St1 vaøo St2 baét ñaàu töø vò trí Vt *) Var i : Byte ; S : String ; Begin If ( Vt > length(St2) Or ( Vt < 1 ) Then BAØI TAÄP CÔ BAÛN TRANG 14 BAØI TAÄP CÔ BAÛN Write(' Khong the chen ra ngoai xau ') ; Else Begin S := '' ; (* xaâu roãng *) For i := 1 To (Vt - 1) Do S := S + St2[i] ; S := S + St1 ; For i := Vt To length(St2) Do S := S + St2[i] ; St2 := S ; End ; End ; Baøi 4 : Vieát chöông trình thöïc hieän laàn löôït caùc coâng vieäc sau : _ Laäp thuû tuïc nhaäp ba soá thöïc döông a , b , c töø baøn phím . _ Laäp thuû tuïc kieåm tra xem ba soá treân coù laäp thaønh ba caïnh cuûa tam giaùc hay khoâng ? _ Vieát thuû tuïc tính dieän tích cuûa tam giaùc . _ Vieát thuû tuïc tính caùc trung tuyeán cuûa tam giaùc . _ Vieát hoaøn thieän chöông trình chính . GIAÛI Uses Crt; Var a, b, c: real ; (*================================*) Procedure Nhap(Var a, b, c: real); Procedure input (Var a: real; tenbien: Char); Begin Repeat Write('Nhap ' + tenbien+' = '); Readln(a); Until (a>=0); End; Begin (* baét ñaàu thuû tuïc nhaäp *) Input(a, 'a'); Input(b, 'b'); Input(c, 'c'); End; (* keát thuùc thuû tuïc nhaäp *) (*================================*) Procedure Kiemtra(a, b, c: Real); Begin If (a0; End; (*================================*) Begin (* Thaân cuûa thuû tuïc Compare*) kq:=''; (* Xaâu roãng *) For i:=1 to length(s1) do If (not kt(s1[i],kq)) and (kt(s1[i],s2)) then kq:=concat(kq,s1[i]); End; (*==============================*) BEGIN Clrscr; Writeln('Nhap 2 xau S1 va S2 :'); Write('S1: '); Readln(xau1); Write('S2: '); Readln(xau2); Compare(xau1, xau2, xau); If xau<>'' then Writeln('Xau chung la: ',xau) Else Writeln('Khong co ki tu nao trong ca hai xau '); BAØI TAÄP CÔ BAÛN TRANG 18 BAØI TAÄP CÔ BAÛN Write('Nhan ENTER de ket thuc...'); Readln; END . Baøi 8 : Vieát haøm tính D (St1 , St2) , vôùi U, V laø hai xaâu kí töï baát kì , laø toång soá caùc kí töï khoâng gioáng nhau trong hai xaâu treân , moãi loaïi kí töï chæ ñöôïc nhôù moät laàn . Ví duï D (‘aabba’ , ‘bcdd’) = 2 vì chæ coù hai kí töï a vaø d laø khoâng gioáng nhau trong caùc xaâu treân . GIAÛI Uses Crt; Const M=100; Var S: array[1..M] of string; max, min, i, j, n: byte; (*===============================*) Function D(U,V: string): byte; (*Traû veà toång soá loaïi kí töï khoâng gioáng nhau trong 2 xaâu U vaø V *) Var k, id: byte; s, luu: string; Begin luu:=''; (* Xaâu roãng *) For id:=1 to length(U) do If (pos(U[id],V)=0) and (pos(U[id],luu)=0) then luu:=concat(luu,U[id]); For id:=1 to length(V) do If(pos(V[id],U) = 0) and (pos(V[id],luu)=0) then luu:= concat(luu,V[id]); d:=length(luu); End; (*=================================*) Procedure nhap; Begin Repeat Write('So xau ki tu (>=2):') ; Readln(n); If n<2 then Writeln(#7,'Co ',n,' xau ki tu nen khong the ' + 'so sanh duoc'); Until n>=2; Writeln('Nhap ',n,' xau ki tu :'); For i:=1 to n do BAØI TAÄP CÔ BAÛN TRANG 19 BAØI TAÄP CÔ BAÛN Begin Write('S',i,'='); Readln(S[i]); End; End ; (*===============================*) BEGIN (* Chöông trình chính *) Clrscr; nhap; max:=0; min:=255; For i:=1 to n-1 do For j:=i+1 to n do Begin If maxd(S[i],S[j]) then min:=d(S[i],S[j]); End; Write('Max(d(Si,Sj)=',max,' Min(d(Si,Sj)=',min); Readln; END . Baøi 9 : Vieát chöông trình hoaøn chænh thöïc hieän caùc coâng vieäc cuûa thöïc ñôn sau : 1. 1. Nhaäp döõ lieäu ( nhaäp soá töï nhieân n ) . 2. 2. Phaân tích ra thöøa soá nguyeân toá ( phaân tích n thaønh tích caùc soá nguyeân toá ) . 3. 3. Thoaùt khoûi chöông trình . GIAÛI Uses Crt; Type uoc_nguyen_to=array[1..50] of longint; Var u, N: longint; i, dem: integer; a: uoc_nguyen_to; (*================================*) Procedure nhap(Var NN:longint); Begin Repeat Write('Nhap N='); Readln(NN); Until NN>=0; End; (*=================================*) Procedure viet; Begin BAØI TAÄP CÔ BAÛN TRANG 20
- Xem thêm -

Tài liệu liên quan