ACİL DELPHİ ÖDEVİ

dinamik tanımlanmış bir diziye edite girilen değer sayısında uzunluk atayıp diziyi 1-100 arasında değerler ile doldurunuz. 3 adet buton ile (ort, enbd,enkd) dizideki değerlerin ortalama, en büyük değer ve en küçük değerini fonksiyon yardımı ile bulup editlere yazacak delphi

Merhabalar @ensman38 geçmişi anımsadım mesajinka :)
delphi epeydir açmıyorum ama imkanım olsa sana yardımcı olmak isterdim şu an bilgisayarım yok programı da kullanmıyorum
Tavsiyede bulunmak isterim bence sen kodları yazmaya basla konuyu da o şekilde aç
Çalışmayan kodu bulmak boyle daha kolay
Hem deneye yanıla çok daha iyi öğreniliyor :)
@YoRuMSuZ konuya bakabilir misin
 
Eğer istediğin böyle bir şeydi.

Bu örnekte Edit1 'de belirtilen adet kadar ListBox1 de rastgele sayı üretiliyor. Sağ taraftaki Edit2, Edit3 ve Edit4 ' bu listedeki en büyük sayı, en küçük sayı ve tüm sayıların ortalaması alınıyor. Ve aşağıdaki gibi bir sonuç döndürülüyor.

Önce ListBox1'in içini Buton 1 e tıklayıp doldurduktan sonra Button2 ile hesaplar yapılıyor.

delphi rastegele sayı, en büyük, en küçük

Kodlar: (Not: Kaynak kodlarını da konuya ekliyorum kendine göre özelleştirebilirsin, umarım işini görür)

Forma 4 Adet Edit, 2 adet Button ve 1 adet ListBox yerleştirin...

"math" kütüphanesini "uses" satırına eklemeyi unutmayın.

Daha sonra Botton1 ve Button2 OnClick yordamlarına alttaki kodları girin.

C#:
uses math;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  Cekilis: Array [1 .. 100] of Integer;
  x, y: Integer;
begin
  ListBox1.Clear;
  Randomize; // rasgele sayı üret
  Cekilis[1] := RandomRange(1, 100);
  ListBox1.Items.Add(IntToStr(Cekilis[1]));
  for x := 1 to StrToInt(Edit1.Text) - 1 do
  begin
    Cekilis[x] := RandomRange(1, 100); //yeni sayı
    y := 0;
    repeat
      if Cekilis[x] = Cekilis[y] then //aynı sayı üretilirse
      begin
        Cekilis[x] := RandomRange(1, 100); //yeniden üret
        y := -1;
      end;
      Inc(y);
    until y > x - 1;
    ListBox1.Items.Add(IntToStr(Cekilis[x]));
  end;
end;

procedure Diziler(deger: Array of Double; var EnKucuk: Double;
  var EnBuyuk: Double; var Ort: Double);
begin
  EnKucuk := MinValue(deger); //en büyük
  EnBuyuk := MaxValue(deger); //en küçük
  Ort := mean(deger); //ortalama
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  Dizi: Array of Double;
  Adet, i: Integer;
  Minimum, Maximum: Double;
  Ortalama: Double;
begin
  Adet := ListBox1.Items.Count;
  SetLength(Dizi, Adet);
  for i := low(Dizi) to high(Dizi) do
  begin
    Dizi[i] := StrToInt(ListBox1.Items.Strings[i]);
  end;
  Diziler(Dizi, Minimum, Maximum, Ortalama);

  Edit2.Text := FloatToStr(Minimum);
  Edit3.Text := FloatToStr(Maximum);
  Edit4.Text := FloatToStr(Ortalama);
end;
 

Eklentiler

Geri
Top