Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Delphi kod örneği
#1
Merhabalar, öncelikle bu uygulamayı length ve copy olarak yapmaya çalışıyorum. 60 la 80 arasındaki puanları L2 ye aktarabiliyorum ve yapabiliyorum. Ancak aynı zamanda L2 ye "ortalamasını" yapmaya çalışırken bir türlü yapamadım ve yardım istemekteyim. Bu örneğin kodlarını yapabilirseniz çok müteşekkir olurum efendim. Herkese iyi çalışmalar ve iyi günler diliyorum.


Ek Dosyalar Resimler
   
Cevapla
#2
Aktarım yaptığınız kod kısmını paylaşırmısınız. Ortalama hesabını yapmak için gerekli olan şeylerin %90ı zaten orada olması lazım.
Cevapla
#3
(10-01-2023, Saat: 09:20)frmman Adlı Kullanıcıdan Alıntı: Aktarım yaptığınız kod kısmını paylaşırmısınız. Ortalama hesabını yapmak için gerekli olan şeylerin %90ı zaten orada olması lazım.

60 la 80 arasını değilde 50 den düşüğü falan aktarabildim birde onun üzerinde ortalamayı istiyor eklenenlerin yapamadıklarım onlar sadece

   
Cevapla
#4
Eklenen resimden birşey anlaşılmıyor, çözünürlüğü çok düşük.
Mümkünse

Begin
// kodlarınız....
// bu şekilde ekleyin
End;
Cevapla
#5
(10-01-2023, Saat: 16:39)frmman Adlı Kullanıcıdan Alıntı: Eklenen resimden birşey anlaşılmıyor, çözünürlüğü çok düşük.
Mümkünse

Begin
// kodlarınız....
// bu şekilde ekleyin
End;

var
x,I,uz:integer;
s:string;
toplam,ortalama:real;
begin

for I := 0 to L1.Items.Count-1 do

  begin

  x:=pos('=',L1.Items[I]);
  uz:=length(L1.Items[I]);
  s:=copy(L1.Items[I],x+1,uz-x);

  if (strtoint(s)>=60) and (strtoint(s)<=80) then
    begin
    L2.Items.Add(L1.Items[I]);
    end;



    end;


end;

end.

bu şekilde 60 la 80 arasındaki notları geçiriyorum eksik olan şey ortalaması. onu yapabilirsen çok güzel olur.
Cevapla
#6
Şu şekilde yapabilirsiniz.

Kodlar test edilmedi, syntax hataları olabilir.

var
x,I,uz:integer;
s:string;
toplam,ortalama:real;
adet:integer;
begin
 
adet = 0;
toplam := 0;

for I := 0 to L1.Items.Count-1 do
   begin
 
  x:=pos('=',L1.Items[I]);
  uz:=length(L1.Items[I]);
  s:=copy(L1.Items[I],x+1,uz-x);
 
  if (strtoint(s)>=60) and (strtoint(s)<=80) then
   begin
   inc(adet);
     toplam := toplam + strtoint(s);
   L2.Items.Add(L1.Items[I]);
   end;

 end;

if adet > 0 then
begin
  ortalama := toplam / adet;
  L2.Items.Add('Ortalama:'+floattostr(ortalama));
end
else
begin
  L2.Items.Add('Ortalama Hesaplanamadı');
end;
 
end;
 
end.
Cevapla
#7
(10-01-2023, Saat: 20:56)frmman Adlı Kullanıcıdan Alıntı: Şu şekilde yapabilirsiniz.

Kodlar test edilmedi, syntax hataları olabilir.

var
x,I,uz:integer;
s:string;
toplam,ortalama:real;
adet:integer;
begin
 
adet = 0;
toplam := 0;

for I := 0 to L1.Items.Count-1 do
   begin
 
  x:=pos('=',L1.Items[I]);
  uz:=length(L1.Items[I]);
  s:=copy(L1.Items[I],x+1,uz-x);
 
  if (strtoint(s)>=60) and (strtoint(s)<=80) then
   begin
   inc(adet);
     toplam := toplam + strtoint(s);
   L2.Items.Add(L1.Items[I]);
   end;

 end;

if adet > 0 then
begin
  ortalama := toplam / adet;
  L2.Items.Add('Ortalama:'+floattostr(ortalama));
end
else
begin
  L2.Items.Add('Ortalama Hesaplanamadı');
end;
 
end;
 
end.
var
I,x,uz:integer;
s:string;
toplam,ortalama:Real;
begin
for I := 0 to L1.Items.Count-1 do
  begin
  x:=pos('=',L1.Items[I]);
  uz:=length(L1.Items[I]);
  s:=copy(L1.Items[I],x+1,uz-x);
  if (strtoint(s)>=60) and (strtoint(s)<=80) then
    begin
    toplam:=toplam+strtoint(s);
    L2.Items.Add(L1.Items[I]);
    end;
  end;
  for I := 0 to L2.Items.Count-1 do

      ortalama:=toplam/(L2.Items.Count);
      L2.Items.Add('Ortalamanız:'+floattostr(ortalama));

end;

end.

bu şekilde sonuca ulaştım ve ortalamasını alıp ekledi senin yazdığın koda bakıp uyarladım ve bunu yazıp çalıştırdım teşekkürler üşenmeden yanıt verdiğin için.
Cevapla
#8
Aşağıda yazdığın kodda işaretlediğim kısım gereksiz.

Birde şu şekilde dene bakalım ne olacak: L1 deki notların hepsine 50 den küçük değerler verip tekrar yazdığın kodu çalıştır.


var
I,x,uz:integer;
s:string;
toplam,ortalama:Real;
begin
for I := 0 to L1.Items.Count-1 do
  begin
  x:=pos('=',L1.Items[I]);
  uz:=length(L1.Items[I]);
  s:=copy(L1.Items[I],x+1,uz-x);
  if (strtoint(s)>=60) and (strtoint(s)<=80) then
   begin
   toplam:=toplam+strtoint(s);
   L2.Items.Add(L1.Items[I]);
   end;
  end;
  for I := 0 to L2.Items.Count-1 do // <<--- BU KISIM GEREKSİZ
 
     ortalama:=toplam/(L2.Items.Count);
     L2.Items.Add('Ortalamanız:'+floattostr(ortalama));
 
end;
 
end.
Cevapla
#9
(11-01-2023, Saat: 10:37)frmman Adlı Kullanıcıdan Alıntı: Aşağıda yazdığın kodda işaretlediğim kısım gereksiz.

Birde şu şekilde dene bakalım ne olacak: L1 deki notların hepsine 50 den küçük değerler verip tekrar yazdığın kodu çalıştır.


var
I,x,uz:integer;
s:string;
toplam,ortalama:Real;
begin
for I := 0 to L1.Items.Count-1 do
  begin
  x:=pos('=',L1.Items[I]);
  uz:=length(L1.Items[I]);
  s:=copy(L1.Items[I],x+1,uz-x);
  if (strtoint(s)>=60) and (strtoint(s)<=80) then
   begin
   toplam:=toplam+strtoint(s);
   L2.Items.Add(L1.Items[I]);
   end;
  end;
  for I := 0 to L2.Items.Count-1 do // <<--- BU KISIM GEREKSİZ
 
     ortalama:=toplam/(L2.Items.Count);
     L2.Items.Add('Ortalamanız:'+floattostr(ortalama));
 
end;
 
end.
L1 in ortalamasını aldı hatalı çıktı evet senin ilk yazdığını yazınca oldu ancak ben "inc" kodunu görmediğim ve bilmediğim için biraz şüpheli bakıp denememiştim deneyince oldu bana "inc" i anlatabilir misin ?
Cevapla
#10
adet := adet + 1 ===> inc(adet)
adet := adet + 3 ===> inc(adet, 3)

anlamına geliyor.
PostgreSQL - Linux - Delphi, Poliüretan
WWW
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
Photo rad stduıo delphi vlc programlama ıocomport ve tcopmport hataları ozcan 2 139 20-03-2023, Saat: 09:39
Son Yorum: RAD Coder
  Delphi Derleme Süresi delphiX14 8 685 14-03-2023, Saat: 23:02
Son Yorum: enigma
Star Delphi Formlarının Sekmeler Halinde açılması sahin4169 12 5.789 02-03-2023, Saat: 17:08
Son Yorum: mustafaozpinar
  Delphi 7 Veri Tabanı İşlemi Hakkında mahone 6 263 28-02-2023, Saat: 15:36
Son Yorum: mahone
  Delphi ile geliştirdiğiniz uygulamalar neler? - İki Ödüllü Mr.Developer 19 9.050 13-02-2023, Saat: 22:52
Son Yorum: enigma



Konuyu Okuyanlar: 1 Ziyaretçi