Chủ đề: [help] lập trình sắp xếp dãy số
-
03-01-2011, 06:22 AM #1
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 4
[help] lập trình sắp xếp dãy số
anh chị nào biết bao em với! cho em xin code sắp xếp dãy số do người nhập vào!
-
03-01-2011, 02:07 PM #2
Silver member
- Ngày tham gia
- Feb 2016
- Bài viết
- 24
Em tìm trong quyển ebook của thầy Lê Minh Hoàng là có rất nhiều mà, sao phải lên đây xin. Mà anh nghĩ em nên tự viết cũng được, code đó không khó.
-
03-01-2011, 08:43 PM #3
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 4
Trả lời
Nói khó thì không khó mà dễ cũng chẳng dễ. Cái này trong sách tin học 11 bài thực hành mảng 2 chiều có ghi rõ.
uses crt;
const max=100;
type mang = array[1..max] of integer;
var n,i,j,y,t,dem: integer; a: mang;
begin
clrscr; {lam sach mang hinh}; dem:=0;
write('Nhap n ');
readln(n);{n là số phần tử của mảng}
for i:=1 to n do begin write('Nhap phan tu thu ',i,':'); readln(a);end; {Nhập phần tử cho mảng}
writeln;{xuống dòng}
for j:=n downto 2 do
for i:=1 to j-1 do if a>a[i+1] then
begin {so sánh a với tất cả các phần tử trong hàng sau đó nếu lớn hơn thì tráo đổi vị trí, sau khi kết thúc ta sẽ được số lớn nhất cuối dãy, ... cứ lặp và ta sẽ được dãy đã sắp xếp.}
t:= a; a:=a[i+1]; a[i+1]:= t;
end;
writeln('Day da duoc sap xep ');
for i:=1 to n do write(a:7);
dem:=dem+1;
if (dem mod 10) = 0 then writeln; {Xuống dòng khi viết được 10 phần tử};
readln
end.
Những phần trong cặp dấu {} là chú thích, nhớ đừng viết vào chương trình nha, ko thì thầy cô cú đầu đó![IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG]
Chú ý nếu bạn muốn copy bỏ trong pascal luôn khỏi phải gõ lại thì copy paste vào notepad, save lại với tên dien dan tin hoc.pas rồi save vào thư mục gốc của pascal hoặc đưa đường dẫn cho pascal, rồi mở ra Ctrl F9 là ok. Mình đã chạy thử rồi!
Chúc bạn học môn tin cũng giỏi như mình [IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG][IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG]
-
03-02-2011, 05:10 AM #4
Junior Member
- Ngày tham gia
- Nov 2015
- Bài viết
- 0
Gửi bởi hoangtungoc
Sắp xếp thì nhiều dạng, dùng nhiều nhất mình thấy có 2 dạng:
+ Bubblesort: Như trên.
+ Quicksort: Bạn tìm trong thư viện thủ tục của anh Trường - Happysoftgroup, phần mình viết.
Dùng khi nào????
+ Bubblesort: Dùng khi bạn muốn sắp xếp theo một chiều thứ tự từ điển tăng (giảm) dần nhưng các phần tử bằng nhau gần nhau sẽ không hoán đổi vị trí. Lợi ích: dùng sắp xếp cho bài toán 2 3 trường trở lên, muốn viết một cách ngắn gọn, bớt thời gian vào phần cài đặt và giới hạn cho phép.
+ Quicksort: Các trường hợp còn lại[IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG]. Khi dữ liệu vào lớn, dùng bbsort có khả năng hoặc chắc chắn toi... Khi đó quicksort tỏ ra là một công cụ mạnh. ^^
@ginta: <ngoài lề xíu [IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG]> anh thi đợt rồi tốt không?
-
03-14-2011, 03:04 AM #5
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 2
asdf
Mã:program sapxep_va_timkiem; type mang = array [1..1000] of integer; var i,j,n,m,chon,x,lo,hi:integer; a:array [1..1000] of integer; {-----------------} procedure Hoanvi; var tam:byte; begin tam:=m; m:=n; n:=tam; end; procedure Bubble; var x,i,j: integer; begin for i:=2 to n do for j:=n downto i do if a[j]<a[j-1] then begin x:=a[j-1]; a[j-1]:=a[j]; a[j]:=x; end; end; procedure Shakes; var x: integer; l,r: word; begin l:=2; r:=n; for i:=l to r do begin for j:=r downto i do if a[j]<a[j-1] then begin x:=a[j-1]; a[j-1]:=a[j]; a[j]:=x; end; l:=j; for j:=i to r-1 do if a[j+1]<a[j] then begin x:=a[j+1]; a[j+1]:=a[j]; a[j]:=x; end; r:=j; end; end; procedure Select; var x,min: integer; i,j: word; begin for i:=1 to n-1 do begin min:=i; for j:=i+1 to n do if a[min]>a[j] then min:=j; x:=a[min]; a[min]:=a[i]; a[i]:=x; end; end; procedure Insert; var x: integer; begin for i:=2 to n do begin x:=a[i]; j:=i-1; while (a[j]>a[i]) do begin a[j+1]:=a[j]; j:=j-1; end; a[j+1]:=x; end; end; function Tim_Tuan_tu: integer; begin a[n+1]:=x; i:=1; while (a[i]<>x) do inc(i); if i<n+1 then Tim_tuan_tu:=i else Tim_tuan_tu:=-1; end; procedure Saptang; var j: byte; begin for i:=1 to n-1 do for j:=i+1 to n do if a[i]>a[j] then Hoanvi; readln end; function Tim_Nhi_phan: integer; var l,r: integer; begin l:=1; r:=n; while (l<=r) do begin i:=(l+r) div 2; if a[i]=x then begin Tim_nhi_phan:=i; exit; end; if a[i]<x then l:=i+1 else r:=i-1; end; Tim_nhi_phan:=-1; end; procedure Nhap; begin write(' Nhap so phan tu mang: '); readln(n); write(' Nhap mang: '); for i:=1 to n do read(a[i]); write(' Nhap x: '); readln(x); end; procedure Xuat; begin for i:=1 to n do write(a[i],' '); readln; end; procedure b; begin Nhap; Bubble; Xuat; end; procedure s; begin Nhap; Shakes; Xuat; end; procedure se; begin Nhap; Select; Xuat; end; procedure ine; begin Nhap; Saptang; Xuat; end; procedure tvn; begin Nhap; writeln(' Tim Tuan Tu : Vi tri phan tu bang x: ',Tim_tuan_tu); write(' Mang la: '); Xuat; Saptang; writeln; write(' Mang sau khi sap tang: '); Xuat; writeln(' Tim Nhi Phan: Vi tri phan tu bang x: ',Tim_nhi_phan); readln; end; Procedure iqk; Const Max=1000; Type Mang = Array[1..Max] Of Integer; Var a:Mang; i:Integer; {-------------------} Procedure Hoanvi(Var m,n : Integer); Var Tam:Byte; Begin Tam:=m; m:=n; n:=Tam; End; Procedure QuickSort(Var A: Mang; Lo,Hi: Integer); Procedure Sort(Left, Right:Integer); Var i,j,x:Integer; Begin i:=Left; j:=Right; x:=a[(Left + Right) Div 2]; Repeat While a[i] < x Do Inc(i); While x < a[j] Do Dec(j); If i <=j Then Begin Hoanvi(a[i],a[j]); Inc(i); Dec(j); End; Until i > j; If Left < j Then Sort(Left,j); If i < Right Then Sort(i,Right); End; Begin Sort(Lo,Hi); End; {-------------------} BEGIN Writeln('GIAI THUAT QUICKSORT'); Writeln('--------------------'); Writeln; Nhap; Saptang; Xuat; Writeln; Readln END; {-----------------} Begin repeat writeln('°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°'); writeln('so 1 la tim tuan tu va tim nhi phan'); writeln; writeln('so 2 la insert sort'); writeln; writeln('so 3 la bubble sort'); writeln; writeln('so 4 la select sort'); writeln; writeln('so 5 la shakes sort'); writeln; writeln('so 6 la quick sort'); writeln; writeln('-nhap kieu chuong trinh muon su dung(nhap 10 de ket thuc):'); readln(chon); case chon of 1: tvn; 2: ine; 3: b; 4: se; 5: s; 6: iqk end; writeln; until chon=10; readln; end.
đây là kết quả của việc tự học.
tớ cũng từng thi tỉnh rồi nhưng ko trúng.
chúc cậu vui vẻ
Theo các bác sĩ chuyên khoa thì nữ giới không nên cạo lông ở vùng kín vì không có phương pháp tẩy lông nè an toàn tuyệt đối. Việc để lông “cô bé” tự nhiên vẫn tốt hơn vì nó có nhiều tác dụng có lợi...
Cạo lông vùng kín đúng cách: An toàn, vệ sinh và thẩm mỹ