Çok boyutlu dizilerde sıralama sorunu

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
yelkenci
Üye
Mesajlar: 4
Kayıt: 19 Eki 2010 12:33

Çok boyutlu dizilerde sıralama sorunu

Mesaj gönderen yelkenci »

Arkadaşlar bi kaç tane sorum olacaktı sizlere.... çok boyutlu diziler kullanarak ögrenci ad soyad numara vize final ve ortalama hesaplarını yaptırdım....

ad:array [0..10] of array [0..10] of array [0..10]of string;
vf:array[0..10] of array[0..10] of integer ;
ortalama: array [1..10] of double;


bu şekilde dizileri tanımladım....

begin
for a:= 1 to 10 do
begin
ad[a,0,0]:= inputbox('Ögrenci','Adı','');
ad[0,a,0]:= inputbox('Ögrenci','Soyadı','');
ad[0,0,a]:= inputbox('Ögrenci','Numarası','');
vf[a,0] :=strtoint(inputbox('Ögrenci','Vize',''));
if not (vf[a,0]<0) and (vf[a,0]>100) then
begin
showmessage('Lütfen Notu kontrol ediniz');
vf[a,0] :=strtoint(inputbox('Ögrenci','Vize',''));
end;
vf[0,a] :=strtoint(inputbox('Ögrenci','Final',''));
if not (vf[0,a]<0) and (vf[0,a]>100)then
begin
showmessage('Lütfen Notu kontrol ediniz');
vf[0,a] :=strtoint(inputbox('Ögrenci','Final',''));
end;
ortalama[a]:=trunc((vf[a,0]*0.4)+(vf[0,a]*0.6));
end;


Buradada dizilere veri girişini ve ortalama hesaplamasını yaptırdım....
Ama burdan sonra ortalamanın büyük küçük durumuna göre büyükten küçüge sıralama yapmam gerekiyor ve çok boyutlu dizide bunu nasıl yapıcagımı bilmiyorum yardımcı olursanız çok sevinirim...
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: Çok boyutlu dizilerde sıralama sorunu

Mesaj gönderen mkysoft »

Döngüler içinde yapmanız gerekiyor. Delphi'nin demo klasöründe thread örneğinde 3 tür sıralama algoritması verilmiş. Verilerinizin array olması birşey değiştirmez, uyarlayabilirsiniz.
Kullanıcı avatarı
comfort
Üye
Mesajlar: 214
Kayıt: 28 Ara 2004 06:37
Konum: İzmir
İletişim:

Re: Çok boyutlu dizilerde sıralama sorunu

Mesaj gönderen comfort »

Zaten array lerde TList gibi otomatik sıralama olmadığı için çok boyutlu tek boyutlu fark etmez.Sıralamayı kendin yaptıracaksın. Bubble Sort, Quick Sort, Selection Sort algoritmalarından birini kullanabilirsin. Arama yaptırırsan bu forumda herşeyi bulabilirsin. :ara :ara :ara
yelkenci
Üye
Mesajlar: 4
Kayıt: 19 Eki 2010 12:33

Re: Çok boyutlu dizilerde sıralama sorunu

Mesaj gönderen yelkenci »

sağolun ilgilendiginiz için ama ben o sıralama yöntemlerine baktım çok bişy anlamadım....
ad dizisine girilen verileri tek boyutlu bir diziye aktardım şu komutla...
sonuc[a]:=(ad[a,0,0]+' '+ad[0,a,0]+' '+ad[0,0,a]) ;

daha sonra şu blokla kontrol ve değişim yaptım ama 3 den fazla veri girdigimde en sorun çıktı 2 tane veride sorun yok çalışıyor ama fazlasında problem oluyor nerde eksik yaptım bilmiyorum...
for b := 1 to 9 do
begin
if ortalama<ortalama[b+1] then
begin
deger:= ortalama;
ortalama:= ortalama[b+1];
ortalama[b+1]:=deger;
c:=sonuc;
sonuc:=sonuc[b+1];
sonuc[b+1]:=c;
end;
end;
yelkenci
Üye
Mesajlar: 4
Kayıt: 19 Eki 2010 12:33

Re: Çok boyutlu dizilerde sıralama sorunu

Mesaj gönderen yelkenci »

sağolun arkadaşlar ben çözdüm sorunu... İhtiyacı olan arkadaşlar olursa iletirim kendilerine...
Kullanıcı avatarı
adelphiforumz
Üye
Mesajlar: 602
Kayıt: 01 Nis 2008 05:38
Konum: İstanbul

Re: Çok boyutlu dizilerde sıralama sorunu

Mesaj gönderen adelphiforumz »

sorunu çözdüm yerine sorunun çözümünü yazsaydın daha iyi olurdu en azından böylece herkez bilginden faydalanmış olurdu.
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Kullanıcı avatarı
The_aLiEn
Üye
Mesajlar: 28
Kayıt: 09 Kas 2010 02:35
Konum: Trabzon
İletişim:

Re: Çok boyutlu dizilerde sıralama sorunu

Mesaj gönderen The_aLiEn »

İnanıyorum, bir gün tüm programlama bölümü öğrencileri record kullanımını benimseyecek... Her bir alan için dizilerle ne diye uğraşıp duruyorsun ki? Öğrenci başlığı altında alanlarını gruplayıp ilgili bir record tanımı yaptıktan sonra, öğrencilerin kendisini ( yani record'ları ) bir diziye alarak, daha sonra çok basitçe bubble sort'u o diziye uygulayarak sıralama işlemini tamamlamış olursun...

( bubble sort içindeki kontrol şartını "record"."vize-şu-bu-her neyse" olarak düzenleyerek )
( bubble sort içindeki swapping işlemini recordlar ile yapman gerek, daha basitçe nasıl açıklayabilirim bilemiyorum... )
Cevapla