Viết chương trình sắp xếp các từ trong chuỗi pascal

uses crt;

var s,t:string;

n,i,j,z,k,l:longint;

a:array[1..100] of string;

begin

clrscr;

write['nhap xau:'];readln[s];

z:=1; j:=0;

s:=s+' ';

for i:=1 to length[s] do

if [s[i]=' '] and [s[i-1]' '] then

begin

j:=j+1;

a[j]:='';

for k:=z to i-1 do

begin

a[j]:=a[j]+s[k];

end;

z:=i+1;

end;

for i:=1 to j-1 do

for k:=i+1 to j do

if length[a[i]]>length[a[k]] then

begin

t:=a[i];

a[i]:=a[k];

a[k]:=t;

end;

s:='';

for i:=1 to j do

s:=s+' '+a[i];

writeln['xau da sap xep tu tang dan la:'];

write[s];

readln;

end.

kool_boy_98

  • #2

[tin]

bạn ơi, quan trọng là sắp xếp như thế nào chứ? vd: từ nhỏ đến lớn, hay từ lớn đến nhỏ,...........nếu không thì bạn chỉ cần in ra các giá trị của dãy số đấy thôi vì đề không yêu cầu mà
viết chương trình giúp bạn nè, cũng không chắc là đúng đâu@-]
var i: integer;
n:integer;
a:array[1..100000000] of integer;
begin
write['nhap so cac phan tu cua day so, n=']; readln[n];
for i:=1 to n do
begin write['a[',i,']='];
readln[a];
end;
for i:=1 to 10 do write[n];
readln;
end.

thiennu274

  • #3

bạn ơi, quan trọng là sắp xếp như thế nào chứ? vd: từ nhỏ đến lớn, hay từ lớn đến nhỏ,...........nếu không thì bạn chỉ cần in ra các giá trị của dãy số đấy thôi vì đề không yêu cầu mà
viết chương trình giúp bạn nè, cũng không chắc là đúng đâu@-]
var i: integer;
n:integer;
a:array[1..100000000] of integer;
begin
write['nhap so cac phan tu cua day so, n=']; readln[n];
for i:=1 to n do
begin write['a[',i,']='];
readln[a];
end;
for i:=1 to 10 do write[n];
readln;
end.


Sắp xếp theo tăng dần ý. Mình cho ví dụ roy` mak`. Bạn xem dùm cái đề nhaz. Zí lại cái chương trình bạn viết chưa đáp ứng được đề bài mà. Xem lại giùm mình nhax bạn.
P/s: Hix, làm bài nỳ 2 ngày uj. Bạn giải được hậu tạ nhìu

ochuotqb

  • #4

Mã:

var st,ch:string;
    a: array [1..100] of integer;
    i,j,k,b,code:integer;
   begin
        write['Nhap xau: '];
        readln[st];
   while i0 then
               begin
                 k:=k+1;
                 val[ch,b,code];
                 a[k]:=b;
               delete[ch,1,length[ch]];
            end;
              if j=0 then
                 i:=i+1
                       else
                       i:=i+j;
         end;
for i:=1 to k-1 do
    for j:=i+1 to k do
        if a[i]>a[j] then
           begin
                b:=a[i];
                a[i]:=a[j];
                a[j]:=b;
           end;
k:=0;
for i:=1 to length[st] do
    if st[i] in ['0'..'9'] then
       st[i]:='1';
    while pos['11',st]0 do delete[st,pos['11',st],1];
for i:=1 to length[st] do
    begin
        if st[i]='1' then
           begin
                k:=k+1;
                write[a[k]];
           end
              else
                  write[st[i]];
           end;


readln
end.

Bài của bạn đây...

  • #5

Mã:

var st,ch:string;
    a: array [1..100] of integer;
    i,j,k,b,code:integer;
   begin
        write['Nhap xau: '];
        readln[st];
   while i0 then
               begin
                 k:=k+1;
                 val[ch,b,code];
                 a[k]:=b;
               delete[ch,1,length[ch]];
            end;
              if j=0 then
                 i:=i+1
                       else
                       i:=i+j;
         end;
for i:=1 to k-1 do
    for j:=i+1 to k do
        if a[i]>a[j] then
           begin
                b:=a[i];
                a[i]:=a[j];
                a[j]:=b;
           end;
k:=0;
for i:=1 to length[st] do
    if st[i] in ['0'..'9'] then
       st[i]:='1';
    while pos['11',st]0 do delete[st,pos['11',st],1];
for i:=1 to length[st] do
    begin
        if st[i]='1' then
           begin
                k:=k+1;
                write[a[k]];
           end
              else
                  write[st[i]];
           end;


readln
end.

Bài của bạn đây...

cái khúc sắp xếp dãy số nên dùng picksort :v chứ dùng cái đó vô thi hsg hay gì đó thì chết

Bài Viết Liên Quan

Chủ Đề