B. PHẦN LẬP TRÌNH ĐỀ BÀI: Bài 1 (10 điểm): Sắp xếp trong xâu Nhập một xâu s bao gồm số và kí tự, in ra xâu đã sắp xếp số theo thứ tự tăng dần còn vị trí các kí tự vẫn giữ nguyên? Input Output abc6ghj7kkkkk1hhhh9 abc6ghj7kkkkk1hhhh9 Bài 2 (10 điểm): viết chương trình nhập vào một chuổi các ký tự chữ cái gồm nhiều từ mỗi từ là một tên của một học sinh và trên màn hình phải hiện ra đúng chữ đầu của tên là chữ hoa còn các chữ cái còn lại là chữ thường. Sau đó sắp xếp các tên trên theo thứ tự alphabet mỗi tên xuất một dòng Dữ liệu vào: Các phím chữ cái thường từ ầ z và phím cách trống để phân biệt tên học sinh này với tên học sinh kia. Kết quả ra: Màn hình sẽ hiển thị chữ đầu của mỗi tên học sinh là chữ hoa (người nhập không cần bấm giữ phím shift hoặc bật Caplock), sắp xếp các tên trên theo thứ tự alphabet mỗi tên xuất một dòng. Gợi ý: Dùng hàm Readkey. Ví dụ: Input Output dung cuong an xuan dao Dung Cuong An Xuan Dao An Cuong Dao Dung Xuan program bai1; uses crt; var x,xs:string; procedure docdl; var v:text; begin assign(v,'c:\input.txt'); reset(v); readln(v,x); close(v); end; procedure xau_so; var i,j:word;c:char; begin xs:=''; for i:= 1 to length(x) do for c:= '0' to '9' do if x[i]=c then xs:=xs+c; for i:= 1 to length(xs)-1 do for j:= i+1 to length(xs) do if xs[i]>xs[j] then begin c:=xs[i]; xs[i]:=xs[j]; xs[j]:=c; end; end; procedure thay; var i:word; c:char; begin for i:= 1 to length(x) do for c:='0' to '9' do if x[i]=c then begin x[i]:=xs[1]; delete(xs,1,1); end; end; procedure xuat; var r:text; begin assign(r,'c:\OUTPUT.TXT'); rewrite(r); writeln(r,x); close(r); end; begin clrscr; docdl; xau_so; thay; xuat; end. program bai 2; uses crt; var x:string; s:array[1..1000] of string; i,n,j:word; v,r:text; begin clrscr; assign(v,'d:\vao.txt'); reset(v); readln(v,x); close(v); writeln(x); assign(r,'d:\ra.txt'); rewrite(r); n:=1; repeat i:= pos(' ',x); s[n]:= copy(x,1,i-1); delete(x,1,i); n:=n+1; until pos(' ',x) =0; n:=n+1; s[n]:=x; s[n-1]:=s[n]; n:=n-1; for i:= 1 to n do s[i][1]:= upcase(s[i][1]); for i:= 1 to n-1 do write(r,s[i],' '); writeln(r,s[n]); for i:= 1 to n-1 do for j:= i+1 to n do if s[i]>s[j] then begin x:=s[i]; s[i]:=s[j]; s[j]:=x; end; for i:= 1 to n do writeln(r,s[i]); close(r); end.
Tài liệu đính kèm: