Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Tek dizi içinde öncelik sırası belirleme (+10 puan)
#1
Sorumuz oldukça basit olsa da tek dizi içinde bunu yapmanızı talep edeceğim. Geçici olarak bir transfer objesi oluşturmak yasaktır.

10 tane ürün yer alıyor. Bunları bir TList içinde düşünün. 5 tanesi gömlek, 3 tanesi kravat, 2 tanesi de ceket. Önceliğimiz 5 tane gömlek sonra 3 kravat ve en son 2 ceket olacak şekilde sıralamayı elden geçirmek. Bunun için istediğiniz sıralama algoritmasını da kullanabilirsiniz.

Liste şu şekilde;

1. gömlek
2. kravat
3. ceket
4. gömlek
5. gömlek
6. kravat
7. gömlek
8. kravat
9. ceket
10. gömlek


İlk cevaplayan ve en kısa çözümü veren kişiye +10 puan
En kısa çözümü veren kişiye +9 puan
Doğru cevaplayan kişiye +8 puan

Başarılar!
Cevapla
#2
program Project26;

{$APPTYPE CONSOLE}

{$R *.res}
{

1. gömlek
2. kravat
3. ceket
4. gömlek
5. gömlek
6. kravat
7. gömlek
8. kravat
9. ceket
10. gömlek
}
uses
 System.SysUtils;
 var
liste:array [0..9] of integer  ;
 const
    urunler : array[1..3] of string =
   (
     'gömlek', 'kravat', 'ceket '
   ) ;


  procedure QuickSort ( var aDizi: Array of Integer; aTaban, aTavan: Integer; aSadeceAraliktakiler: Boolean = FALSE);
 var
     Kucuk
   , Buyuk
   , Aradaki
   , Temp   : Integer;
 begin
   Kucuk   := aTaban;
   Buyuk   := aTavan;
   Aradaki := aDizi[ (Kucuk + Buyuk) div 2 ];
   repeat
     while ( aDizi[Kucuk] < Aradaki ) do Inc(Kucuk);
     while ( aDizi[Buyuk] > Aradaki ) do Dec(Buyuk);
     if (Kucuk <= Buyuk) then begin
         Temp := aDizi[Kucuk];
         aDizi[Kucuk] := aDizi[Buyuk];
         aDizi[Buyuk] := Temp;
         Inc(Kucuk) ;
         Dec(Buyuk) ;
     end;
   until (Kucuk > Buyuk);
   if (aSadeceAraliktakiler = FALSE) then begin
       if (Buyuk > aTaban) then QuickSort(aDizi, aTaban, Buyuk);
       if (Kucuk < aTavan) then QuickSort(aDizi, Kucuk, aTavan);
   end;
 end;

var
i:integer;
begin


liste[0]:=1;
liste[1]:=2;
liste[2]:=3;
liste[3]:=1;
liste[4]:=1;
liste[5]:=2;
liste[6]:=1;
liste[7]:=2;
liste[8]:=3;
liste[9]:=1;

 QuickSort(liste, Low(liste), High(liste)) ;
  for I := Low(liste) to High(liste) do writeln(inttostr(i+1)+'.'+urunler[liste[I]]);
 Readln;
end.



Ben burada Uğur Bey'in yazdığı QuickSort'u kullandım ama buradan istenilen bir algoritmada kullanılabilir.
Herhangi bir basit problem, hakkında yeterince toplantı yapılarak, çözümsüz hale getirilebilir.
https://play.google.com/store/apps/developer?id=ONGUN
Cevapla
#3
Degisken kullanabiliyor muyuz ?
Topluluk mopluluk yok :/
Cevapla
#4
(28-11-2017, Saat: 20:14)boreas Adlı Kullanıcıdan Alıntı: Degisken kullanabiliyor muyuz ?

Serbest ancak ek bir liste oluşturup tek tek ayırıp sonra birleştirip diğerlerini silmek yasak Shy
Cevapla
#5
CustomSort kullanılarak yapılabilir:


type
 TGiysi = (gömlek, kravat, ceket);  // ÖNCELİĞE GÖRE BU TİP OLUŞTURULMALI!!!

function CompareFunc(List: TStringList; Index1, Index2: Integer): Integer;
var
  Priorty1, Priorty2: Integer;
begin
  Priorty1 := GetEnumValue(TypeInfo(TGiysi), List[Index1]);
  Priorty2 := GetEnumValue(TypeInfo(TGiysi), List[Index2]);
  if Priorty1 > Priorty2 then
    Result := 1
  else if Priorty2 > Priorty1 then
    Result := -1
  else
    Result := 0;
end;

var
 Liste: TStringList;

...

Liste.Add('gömlek');
Liste.Add('kravat');
Liste.Add('ceket');
Liste.Add('gömlek');
Liste.Add('gömlek');
Liste.Add('kravat');
Liste.Add('gömlek');
Liste.Add('kravat');
Liste.Add('ceket');
Liste.Add('gömlek');
Liste.CustomSort(CompareFunc);
...

There's no place like 127.0.0.1
WWW
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Windows Mesajlaşma Sistemi Hk. Soru (+10 Puan) Tuğrul HELVACI 26 23.608 06-10-2022, Saat: 18:47
Son Yorum: Master_Crazy
  [+10 Puan] String Manipülasyon İşlemleri Abdullah ILGAZ 16 15.804 20-04-2019, Saat: 00:48
Son Yorum: onurcan1977
  Bir Record'un içini doldurma (+20 puan) Tuğrul HELVACI 21 23.385 05-10-2017, Saat: 16:33
Son Yorum: ismailkocacan
  AV (Access Violation) nedir, neden bu hatayı alırız ? (+50 Puan) Tuğrul HELVACI 18 24.956 30-09-2017, Saat: 12:14
Son Yorum: ismailkocacan
  Dinamik nesne dizi kullanımı ve ram optimizasyonu Abdullah ILGAZ 3 4.768 25-09-2017, Saat: 13:51
Son Yorum: esistem



Konuyu Okuyanlar: 1 Ziyaretçi