Giải Các Bài Toán Về Xâu Kí Tự

Nơi trao đổi thông tin Văn Lang
Chào mừng bạn đến với nơi trao đổi thông tin của chúng tôi ! Hãy đăng nhập hoặc đăng kí tài khoản để trải nghiệm nhiều điều thú vị tại đây ! Thân ái !
Nơi trao đổi thông tin Văn Lang
Chào mừng bạn đến với nơi trao đổi thông tin của chúng tôi ! Hãy đăng nhập hoặc đăng kí tài khoản để trải nghiệm nhiều điều thú vị tại đây ! Thân ái !
Nơi trao đổi thông tin Văn Lang
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.
Nơi trao đổi thông tin Văn Lang Nơi trao đổi thông tin, tăng cường hợp tác, giải đáp những vướng mắc khi học lập trình Pascal
Trang ChínhTìm kiếm
Tìm kiếm
Display results as : Số bài Chủ đề
Advanced Search Advanced Search
Latest imagesĐăng kýĐăng Nhập
Nơi trao đổi thông tin Văn Lang :: Bài tập :: Xâu kí tự
Giải các bài toán về xâu kí tựGo down
Tác giảThông điệp
AdminAdminAdminPosts : 122Danh tiếng : 7Join date : 10/11/2014Age : 23Giải các bài toán về xâu kí tự Empty
Bài gửiTiêu đề: Giải các bài toán về xâu kí tự Giải các bài toán về xâu kí tự Icon_minitime13/11/2014, 12:18
Bài 1: Nhập xâu kí tự bất kì a) Đếm số lần xuất hiện của 1 kí tự nào đó trong câu.b) Liệt kê các kí tự có mặt trong xâu cùng số lần xuất hiện của các kí tự đó.Bài giải:uses crt;var str:string[100];chu:array[#1..#254] of integer;i:integer;ch:char;beginclrscr;for ch:=#1 to #254 do chu[ch]:=0;write(' Nhap chuoi = ');readln(str);for i:=1 to length(str) do(chu[upcase(str[i])]):=chu[upcase(str[i])] +1;writeLn('Cac ki tu trong xau la:');for ch:=#1 to #254 doif chu[ch]>0 then writeln(ch, ': xuat hien ',chu[ch],' lan');readln;end.Bài 2: Nhập 1 xâu kí tự.a) Xét xem trong xâu có K kí tự kề nhau mà như nhau hay không?b) Hãy xóa đi kí tự kề nhau mà như nhau, chỉ giữ lại một.Bài giải:uses crt;var ch:string[100];   i,k,d,d1,n:integer;(*****)function xoa:boolean;var i:integer;begin    xoa:=false;    for i:=1 to length(ch)-1 do    if ch[i]=ch[i+1] then    begin         delete(ch,i,1);         xoa:=true;         exit    end;end;(*****)beginclrscr;      write('Nhap chuoi :');readln(ch);      write('Nhap ki tu K:');readln(k);      n:=length(ch);      d:=0;d1:=0;      for i:=1 to n-1 do      begin           if ch[i]=ch[i+1] then inc(d1)           else d1:=0;           if d1+1>=k then inc(d);      end;      if d>0 then writeln('Co ',k,' ki tu nhu nhau')      else writeln('Khong co ',k,' ki tu nhu nhau');      while xoa do;      write('In lai xau sau khi xoa:');      writeln(ch);readln;end.Bài 3: Nhập 1 xâu kí tự. Kiểm tra tính đối xứng của xâu đó. Nếu xâu không đối xứng thì đảo xâu.Bài giải:uses crt;var str,s:string[100];n,i:integer;(*****)procedure sx(var a,b:char);var tam:char;begin    tam:=a;    a:=b;    b:=tam;end;procedure dao(n,i:integer);var j:integer;begin    for j:=i+1 to n do        if str[i]=str[j] then           begin                sx(str[j],str[n-i+1]);                exit           end;end;(*****)beginclrscr;      write('Nhap xau:');readln(str);      n:=length(str);      s:='';      for i:=n downto 1 do s:=s+str[i];      if str=s then writeln('Chuoi doi xung:')      else          begin               writeln('Chuoi ko doi xung, chuoi da dao doi xung:');               for i:=1 to n-1 do                   dao(n,i);          end;          writeln(str);readln;end.Bài 4: Cho 1 xâu kí tự. Tính xem trong số đó có bao nhiêu loại kí tự khác nhau ( không phân biệt in hoa hay in thường).Bài giải:uses crt;var s:string;i,j,dem:integer;t:boolean;beginclrscr;      write('Nhap xau:');readln(s);      dem:=0;      for i:=1 to length(s) do      begin           t:=false;           for j:=1 to i-1 do               if((s[j])=(s[i])) then t:=true;           if not(t) then inc(dem);      end;      write('Co ',dem,' ki tu khac nhau.');readln;end.Bài 5: Cho 1 xâu kí tự bất kì, tính:a) Số lượng các kí tự số.b) Số lượng các kí tự chữ cái.Bài giải:uses crt;const so: set of char=['0','1','2','3','4','5','6','7','8','9'];var st,b:string;   a:array[1..100] of integer;   i,j,l,n,dem,dem1,c:integer;(*****)procedure sx(var x,y:integer);var tam:integer;begin    tam:=x;    x:=y;    y:=tam;end;(*****)beginclrscr;      write('nhap xau:');readln(st);      dem:=0;      dem1:=0;      for i:=1 to length(st) do      begin           if (st[i] in['0'..'9']) then inc(dem);           if (upcase(st[i]) in['A'..'Z']) then inc(dem1);      end;      write('Co ',dem1,' chu cai.');      writeln;      writeln('Co ',dem,' chu so.');      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;      for i:=1 to n do write(a[i]:5);      writeln;      writeln('Sx tang:');      for i:=1 to n-1 do      for j:=i to n do      if a[j]<a[i] then sx(a[j],a[i]);      for i:=1 to n do write(a[i]:5);readln;end.Bài 6: Cho 1 xâu kí tự bất kì (cả số lẫn chữ). Viết chương trình tách các phần là số của xâu trên và đưa ra 1 mảng số nguyên.Bài giải: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;c,l,i,n,j:integer;(*****)procedure sx(var x,y:integer);var tam:integer;begin    tam:=x;    x:=y;    y:=tam;end;(*****)beginclrscr;      write('Nhap xau:');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;      for i:=1 to n do write(a[i]:5);      writeln;      write('Sx tang:');      writeln;      for i:=1 to n-1 do      for j:=i to n do      if a[j]<a[i] then sx(a[j],a[i]);      for i:=1 to n do write(a[i]:5);readln;end.Bài 7: Nhập vào 1 xâu. Biến đổi thành chữ in hoa.Bài giải:uses crt;var s:string;   i,k:integer;beginclrscr;      write('Nhap xau:');readln(s);      write('Bien doi in hoa:');      for i:=1 to length(s) do      write(upcase(s[i]));readln;end.Bài 8: Nhập vào 1 xâu. Biến đổi in thường.Bài giải:uses crt;var s:string;   i:integer;beginclrscr;      write('Nhap xau:');readln(s);      for i:=1 to length(s) do      if s[i] in ['A'..'Z'] then s[i]:=chr(ord(s[i])+32);      write('Bien doi thuong:',s);readln;end.Bài 9: Nhập vào 1 chuỗi, in ra chuỗi ngược.Bài giải:uses crt;var s:string;   i:integer;beginclrscr;      write('nhap chuoi:');readln(s);      write('Chuoi nguoc:');      for i:=length(s) downto 1 do write(s[i]);readln;end.Bài 10: Nhập vào danh sách HS 1 lớp. Sắp xếp lại danh sắp theo thứ tự tăng dần theo  chiều dài của tên.Bài giải:uses crt;var hs:string;   i,j,n:integer;(******)procedure sx(var a,b:integer);var tam:integer;begin    tam:=a;    a:=b;    b:=tam;end;(******)beginclrscr;      write('Nhap so HS:');readln(n);      for i:=1 to n do      begin           write('Ten HS thu ',i,' :');readln(hs[i]);      end;      for i:=1 to n-1 do          for j:=i+1 to n do          if length(hs[i]) > length(hs[j]) then sx(hs[i],hs[j]);          writeln('Sx theo do dai ten:');          for i:=1 to n do writeln(hs[i]);readln;end.Bài 11: Nhập vào họ tên bất kì sau đó biến đổi các chữ cái đầu tiên là in hoa.Bài giải:uses crt;const chu=['a'..'z'];     var hoten:string;         i,k:integer;beginclrscr;      write('Nhap ho ten:');readln(hoten);      k:=length(hoten);      if hoten[1] in chu then hoten[1]:=upcase(hoten[1]);      for i:=2 to k do          if (hoten[i-1]=#32) and (hoten[i] in chu) then          hoten[i]:=upcase(hoten[i]);      write('sau khi bien doi:',hoten);readln;end.Bài 12: Nhập vào 1 đoạn văn. Tính số câu.Bài giải:uses crt;var s:string;   i,d:integer;beginclrscr;      write('Nhap 1 doan:');readln(s);      for i:=1 to length(s) do      if s[i]='.' then inc(d);      write('Doan tren co ',d,' cau.');readln;end.Bài 13: Nhập vào 1 số, xóa bỏ các chữ số lẻ. Xuất kết quả dưới dạng đối xứng của phần còn lại.Vd:1 2 4 5 6 --> 2 4 6 6 4 2Bài giải:uses crt;const so=['1','3','5','7','9'];var s:string;   i:integer;beginclrscr;      write('Nhap 1 day so:');readln(s);      i:=1;      while i<=length(s) do      if s[i] in so then      begin           delete(s,i,1);           i:=1;      end       else inc(i);      write('Sau khi xoa cac so le va bien doi doi xung:',s);      for i:=length(s) downto 1 do write(s[i]);readln;end.Bài 14: Nhập vào 1 số, xóa bỏ các chữ số chẵn. Kiểm tra số còn lại có bao nhiêu chữ số. Xuất kết quả dưới dạng đối xứng của phần còn lại.Bài giải:uses crt;const so=['0','2','4','6','8'];var s:string;   i,dem:integer;beginclrscr;      dem:=0;      write('Nhap 1 day so:');readln(s);      i:=1;      while i<= length(s) do      if s[i] in so then      begin           delete(s,i,1);           i:=1;      end       else inc(i);      for i:=1 to length(s) do dem:=dem+1;    writeln('Sau khi xoa cac so chan con ',dem,' so le .');    write('Sau khi xoa cac so chan va bien doi doi xung :',s,' ');      for i:=length(s) downto 1 do write(s[i]);readln;end.Bài 15: Nhập chuỗi gồm cả chữ và số. Xuất ra màn hình các số riêng và các chữ riêng. Hãy đếm số lần xuất hiện của mỗi chữ, mỗi số.Bài giải:uses crt;var s:string;   dem:array[#1..#254] of integer;   i:integer;   chu:char;begin    clrscr;    write('Nhap chuoi gom chu va so:');readln(s);    for chu:=#1 to #254 do dem[chu]:=0;    writeln('Chu:');    for i:=1 to length(s) do        if upcase(s[i]) in ['A'..'Z'] then           begin                write(s[i]);                dem[upcase(s[i])]:=dem[upcase(s[i])] +1;           end;    writeln;    writeln('So:');    for i:=1 to length(s) do        if s[i] in ['0'..'9'] then           begin                write(s[i]);                dem[s[i]]:=dem[s[i]] +1;           end;    writeln;    for chu:=#1 to #254 do        if dem[chu]<>0 then writeln(chu,' xuat hien ',dem[chu],' lan');    readln;end.Bài 16: Nhập 1 xâu kí tự và bỏ đi tất cả các khoảng trống bên trái của nó.Bài giải:uses crt;var s,t:string;   i,p:integer;begin    clrscr;    write('Nhap chuoi:');readln(s);    writeln('khoang trong ben trai cua chuoi da bo, chuoi:');    while s[1]=#32 do delete(s,1,1);    write(s);    readln;end.Bài 17: Dùng hàm “copy”. Tách từ đầu tiên ra khỏi 1 xâu kí tự cho trước.Bài giải:uses crt;var s:string;   i:integer;begin    clrscr;    write('Nhap chuoi:');readln(s);    writeln('Tach tu dau tien ra khoai xau:');    write(copy(s,1,1));    readln;end.
LikeDislike
Về Đầu Trang Go down
https://forumpascalvanlang.forumvi.com
Giải các bài toán về xâu kí tựVề Đầu Trang
Trang 1 trong tổng số 1 trang
Similar topics-
» Giải các bài toán về ước và bội » Giải các bài toán về số nguyên tố» Giải bài toán về dãy Fibonacci» Giải các bài toán về mảng một chiều » Giải các bài toán cơ bản về mảng hai chiều
Permissions in this forum:Bạn không có quyền trả lời bài viết
Nơi trao đổi thông tin Văn Lang :: Bài tập :: Xâu kí tự-
Chuyển đến: Chọn Diễn Đàn||--Các chuyên đề hay|--Lí thuyết| |--Làm quen với Pascal| |--Các cấu trúc điều khiển| |--Mảng và xâu| |--Tệp (File)| |--Bài tập| |--Các vòng lặp| |--Cấu trúc điều kiện| |--Mảng| | |--Mảng hai chiều| | |--Mảng một chiều| | | |--Xâu kí tự| |--Tệp (File)| |--Bài tập cơ bản| |--Thảo luận| |--đưa bài| |--Các bộ đề thi|--Thông tin công nghệ|--Các chương trình lớn viết bằng Pascal
Free forum | ©phpBB | Free forum support | Báo cáo lạm dụng | Thảo luận mới nhất

Từ khóa » Xét Xem Trong Xâu Có K Kí Tự Kề Nhau Mà Như Nhau Hay Không