Bài tập pascal nâng cao (có lời giải)

113 13.6K 61
Bài tập pascal nâng cao (có lời giải)

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

1 Cho số tự nhiên N số tự nhiên k Tính chữ số thứ k biểu diễn thập phân số N (Ví dụ cho N=23456 k=1 ta có đáp số 6, k=4 ta có đáp số 3) Uses CRT; Var N: longint; i, k, d: byte; Begin CLRSCR; Write('Nhập số N:'); Readln(N); Writeln('Nhập số K1 phan tu'); Readln; END Cho xâu ký tự S Viết chương trình tính xem S có chữ tiếng Anh (không phân biệt chữ in hoa hay thường) Ví dụ với S "Ha thanh" ta có đáp số Var S: string; i, j, dem: integer; Begin write('Cho xâu ký tự S: '); Readln(S); i:=2; dem:=1 While (i1 then begin i:=1; repeat j:=i+1; repeat trung:=false; if b[i]=b[j] then trung:= true; if trung then begin if jm); inc(i); until i>m; end; if m>0 then for k:=1 to m write(b[k]:4); readln; END 10 Cho trước xâu ký tự Trong xâu có xen kẽ ký tự số ký tự không số Ví dụ: dgghhg456cghh086chgh1fdfgdfg76cgf Viết chương trình tách phần "số" xâu đưa mảng số nguyên Trong ví dụ mảng số có phần tử bao gồm 456, 86, 76 USES crt; CONST so: set of char = ['0','1','2','3','4','5','6','7','8','9']; VAR a: array[1 100] of integer; st,b: string; l,i,n: byte; c: integer; BEGIN clrscr; writeln('Chuong trinh xu li xau co so :'); write('Nhap mot xau co so : ');readln(st); l:=length(st); i:=1; n:=0; repeat if (st[i] in so) then begin b:= ''; repeat b:=b+st[i]; inc(i); until (not(st[i] in so))or(i>l); inc(n); val(b,a[n],c); end; inc(i); until i>l; 10 If (c='#')and(sa>0) then Dec(sa) Else If c'#' then begin Inc(sa); a[sa]:=c; end; end; Readln(f); end; Close(f); End; Procedure Viet; Var i: integer; Begin Assign(g,gn); Rewrite(g); For i:=1 to sa begin Write(g,a[i]); If i mod 60=0 then Writeln(g); end; Readln; Close(g); End; BEGIN ClrScr; Doc; Viet; END Cho văn chứa text file Bạn viết chương trình liệt kê chữ có mặt văn lần theo thứ tự bảng chữ Chuong trinh chay voi file inp nho hon 55000 byte} Program P120802; {Liet ke chu cai co file dung mot lan theo thu tu} Uses Crt; Const MN = 255; fn = 'P120802.inp'; gn = 'P120802.out'; Type mang1 = array [0 255] of integer; Var a : mang1; f,g: text; Procedure Doc; Var c: char; Begin Assign(f,fn); Reset(f); FillChar(a,SizeOf(a),0); While not Eof(f) begin While not Eoln(f) begin Read(f,c); c:=UpCase(c); Inc(a[ord(c)]); end; Readln(f); end; Close(f); 99 End; Procedure Viet; Var i: integer; Begin Assign(g,gn); Rewrite(g); For i:=0 to 255 If chr(i) in ['a' 'z','A' 'Z'] then If a[i]=1 then Writeln(g,chr(i)); Close(g); End; BEGIN Clrscr; Doc; Viet; END Cho văn chứa text file Bạn viết chương trình tính tỉ lệ chữ có mặt văn theo thứ tự bảng chữ Chuong trinh chay voi file inp nho hon 55000 byte tile : chia cho tong so chu cai} Program P120803; Uses Crt; Const MN = 255; fn = 'P120803.inp'; gn = 'P120803.out'; Type mang1 = array [0 255] of integer; Var a : mang1; f,g: text; Procedure Doc; Var c: char; Begin Assign(f,fn); Reset(f); FillChar(a,SizeOf(a),0); While not Eof(f) begin While not Eoln(f) begin Read(f,c); c:=UpCase(c); Inc(a[ord(c)]); end; Readln(f); end; Close(f); End; Procedure Viet; Var i,tong: integer; Begin Assign(g,gn); Rewrite(g); Tong:=0; For i:=0 to 255 If chr(i) in ['a' 'z','A' 'Z'] then Tong:=Tong+a[i]; 100 For i:=0 to 255 If chr(i) in ['a' 'z','A' 'Z'] then If a[i]0 then Writeln(g,chr(i),': ',a[i]/Tong*100:4:4,' %'); Close(g); End; BEGIN Clrscr; Doc; Viet; END Cho văn chứa text file Bạn viết chương trình tính tỉ lệ từ có mặt văn theo thứ tự bảng chữ chuong trinh chay voi du lieu khong qua lon } Program P120804; {Ti le cac tu co van ban theo thu tu chu cai} Uses Crt; Const Mn = 1000; fn = 'P120804.inp'; gn = 'P120804.out'; Type mang1s = array [1 MN] of string[16]; mang1i = array [1 MN] of integer; Var chu : mang1s; sl : mang1i; s,tu : string; p,tong,sst: integer; f,g : text; Procedure Init; Begin Tong:=0; End; Function Contu: boolean; Begin tu:=''; contu:=false; If not (s[1] in ['a' 'z','A' 'Z']) then Repeat Delete(s,1,1); Until (s='')or(s[1] in ['a' 'z','A' 'Z']); If s'' then begin contu:=true; While (s'')and(s[1] in ['a' 'z','A' 'Z']) begin tu:=tu+UpCase(s[1]); Delete(s,1,1); end; end; End; Function Giong: boolean; Var i: integer; Begin Giong:=true; 101 For i:=1 to sst If chu[i]=tu then begin Inc(sl[i]); exit; end; Giong:=false; End; Function Nhohon: boolean; Var i,t: integer; Begin If length(chu[p])>length(chu[p-1]) then t:=length(chu[p-1]) Else t:=length(chu[p]); For i:=1 to t If Ord(chu[p,i])Ord(chu[p-1,i]) then begin Nhohon:=false; exit; end; If length(chu[p])=t then nhohon:=true Else nhohon:=false; End; Procedure Nap; Begin Inc(sst); chu[sst]:=tu; sl[sst]:=1; p:=sst; While (p>1)and Nhohon begin chu[p]:=chu[p-1]; sl[p]:=sl[p-1]; Dec(p); chu[p]:=tu; sl[p]:=1; end; End; Procedure Xulytu; Begin Inc(Tong); If Giong then exit Else Nap; End; Procedure Xuly; Begin While contu Xulytu; End; Procedure Doc; Begin Assign(f,fn); Reset(f); While not Eof(f) begin Readln(f,s); Xuly; end; Close(f); End; Procedure Viet; Var i: integer; Begin 102 Assign(g,gn); Rewrite(g); For i:=1 to sst Writeln(g,chu[i],' ',sl[i]/Tong*100:4:4,' %'); Close(g); End; BEGIN Clrscr; Init; Doc; Viet; END Cho văn chứa text file Bạn viết chương trình tính tỉ lệ nguyên âm có mặt văn theo thứ tự bảng chữ {Chuong trinh chay voi file inp nho hon 55000 byte tile : chia cho tong so chu cai} Program P120805; {Tinh ti le cac nguyen am} Uses Crt; Const MN = 255; fn = 'P120805.inp'; gn = 'P120805.out'; Type mang1 = array[0 255] of integer; Var a : mang1; f,g: text; Procedure Doc; Var c: char; Begin Assign(f,fn); Reset(f); FillChar(a,SizeOf(a),0); While not Eof(f) begin While not Eoln(f) begin Read(f,c); c:=UpCase(c); Inc(a[ord(c)]); end; Readln(f); end; Close(f); End; Procedure Viet; Var i,tong: integer; Begin Assign(g,gn); Rewrite(g); tong:=0; For i:=0 to 255 If chr(i) in ['a' 'z','A' 'Z'] then tong:=tong+a[i]; For i:=0 to 255 If chr(i) in ['A','O','E','U','I','Y'] then If a[i]0 then Writeln(g,chr(i),': ',a[i]/tong*100:4:4,' %'); Close(g); End; 103 BEGIN Clrscr; Doc; Viet; END Bạn lập chương trình nhập vào xâu kí tự gồm dấu mở ngoặc đóng ngoặc đơn, sau kiểm tra tính đắn cách đặt dấu ngoặc Yêu cầu: • • Số lần mở ngoặc số lần đóng ngoặc Dấu mở ngoặc phải đứng trước (ở bên trái) dấu đóng ngoặc tương ứng Program P120808; {Nhap vao mot xau ki tu gom cac dau mo,dong ngoac, kiem tra tinh dung dan} Uses Crt; Const fn = 'P120808.inp'; Var s: string; f: text; Procedure Nhap; Begin Assign(f,fn); Reset(f); Readln(f,s); Close(f); End; Procedure Kiemtra; Var sm,i: integer; Begin sm:=0; For i:=1 to length(s) If s[i] in ['(',')'] then begin If s[i]='(' then Inc(sm) Else Dec(sm); If sm[...]... :'); for j:=jmax to jmax+kmax-1 do write(b[j]:8); end; readln; END 12 12 Viết chương trình nhập số tự nhiên N và in ra dòng thứ N của tam giác Pascal Uses crt; Var a:array[0 33] of longint; i,j,n:0 33; { n>33 thi he so > maxlongint } Begin Clrscr; Writeln('Tam giác Pascal: '); Write('Nhấp số n:'); Readln(n); For i:=0 to n do Begin For j:=i downto 0 do If (j=i)or(j=0) then a[j]:=1 Else a[j]:=a[j]+a[j-1];... tròn và thông báo ngay với người chơi Chương trình dừng khi máy xóa đến số A, máy sẽ thông báo số điểm mà bạn đạt được: xóa mỗi số trước số A sẽ được một điểm Như vậy bạn chơi càng giỏi thì điểm càng cao Uses crt; Const MaxN=1000; Type Khoang=1 MaxN; Var A, N, k: Khoang; next: char; SO: array[Khoang] of integer; (*==========================================*) Procedure input(Var Ai, Ni, ki: khoang);... một số kí tự khỏi xâu sao cho 4 kí tự cuối cùng còn lại theo đúng thứ tự đó tạo nên một số lớn nhất Ví dụ nếu cho xâu '24d5n4r05f704n652z393' thì số lớn nhất còn lại là 7693 Hãy lập chương trình để giải bài toán trên Xâu dữ liệu cho trong tệp IN.TXT, xâu kết quả trong tệp OUT.TXT Program P100217; {Thu duoc so co 4 chu so lon nhat tu xau ki tu} Uses Crt; Var S: String; c: char; n,i,j,k: integer; BEGIN... các kí tự cuối cùng còn lại là một dãy giảm dần và theo đúng thứ tự đó tạo nên một số lớn nhất Ví dụ nếu cho xâu '64562372361247120686005007710137667690' thì số lớn nhất còn lại là 764210 Hãy thử giải bài toán trên với các xâu: • • '865258964125278632545' '12505565701399720215300453620146982302120418' Xâu dữ liệu cho trong tệp IN.TXT, xâu kết quả trong tệp OUT.TXT Program P100218;{Tim xau dai va lon

Ngày đăng: 10/06/2016, 12:32

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan