Sắp xếp số trong chuỗi [ pascal lúp 8]

K

kool_boy_98

[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.
 
T

thiennu274

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 ;)
 
O

ochuotqb

Mã:
var st,ch:string;
    a: array [1..100] of integer;
    i,j,k,b,code:integer;
   begin
        write('Nhap xau: ');
        readln(st);
   while i<length(st)+1 do
         begin
              j:=0;
              while st[i+j] in ['0'..'9'] do
                    begin
                         ch:=ch+st[i+j];
                         j:=j+1;
                    end;
            if length(ch)>0 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...
 

Hải Ham Học

Học sinh
Thành viên
24 Tháng sáu 2017
133
34
26
20
Bà Rịa - Vũng Tàu
thcs hòa hiệp
Mã:
var st,ch:string;
    a: array [1..100] of integer;
    i,j,k,b,code:integer;
   begin
        write('Nhap xau: ');
        readln(st);
   while i<length(st)+1 do
         begin
              j:=0;
              while st[i+j] in ['0'..'9'] do
                    begin
                         ch:=ch+st[i+j];
                         j:=j+1;
                    end;
            if length(ch)>0 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
 
Top Bottom