Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Ortalama aldırma
#1
Merhaba

3 Alanım var [BIRINCISAYI], [IKINCISAYI], [UCUNCUSAYI], 



Bu üç alanın ortalamasını aldırmak istiyorum, alanların hepsi 0 dan büyük ise 3'e, alanlardan herhangi biri  0 ise 2'ye bölecek, alanlardan 2 tanesi 0 ise 1'e bölecek.

Bir türlü sorunu aşamadım. Yardımcı olursanız minnettar olurum.
Cevapla
#2
(05-07-2020, Saat: 18:23)xthief Adlı Kullanıcıdan Alıntı: Bir türlü sorunu aşamadım.

Neler yaptınız da aşamadınız? 
Takıldığınız yer neresi? 
Yada aldığınız hata mesajı nedir?
There's no place like 127.0.0.1
WWW
Cevapla
#3
Merhaba 

* Bakış açısını soruyu lineer kurarak sadeleştirin. 
* Yani 1 değer için 1'e, 2 değer için 2'ye, 3 değer için 3'e böleceğiz gibisinden. Yönerge şu şekildedir. 

  1. Bir tane bölünecek toplam değişkeni belirleyerek,  ilk değer olarak 0'a eşitleyin. 
  2. alt alta üç tane if sorgusu ile her bir 0'dan farklı değer için bu değişkene 1 ekleyin.
  3. Üç değeri de, içeriği sıfır olup olmadığını önemsemeden parantez içinde toplayıp, parantez sonunda bu toplam değere bölün.
Kolay gelsin
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif
Cevapla
#4
Şuna benzer bir şey olabilir...

var
 A, B, C: Integer;   // ortalaması alınacak alanlar
 X, Y: Integer;      // X bölen, Y Sonuc...
begin
 A := 1;
 B := 0;
 C := 33;
 X := Ord(A > 0) + ord(B > 0) + ord (C > 0);
 if X < 1 then X := 1;
 Y := (A + B + C) div X;
 ShowMessage(X.ToString);
 ShowMessage(Y.ToString);
end;
YouTube Delphi Tips
"Yaşlanarak değil, yaşayarak tecrübe kazanılır. Zaman insanları değil, armutları olgunlaştırır" Peyami Safa
WWW
Cevapla
#5
(05-07-2020, Saat: 18:42)mrmarman Adlı Kullanıcıdan Alıntı: Merhaba 

* Bakış açısını soruyu lineer kurarak sadeleştirin. 
* Yani 1 değer için 1'e, 2 değer için 2'ye, 3 değer için 3'e böleceğiz gibisinden. Yönerge şu şekildedir. 

  1. Bir tane bölünecek toplam değişkeni belirleyerek,  ilk değer olarak 0'a eşitleyin. 
  2. alt alta üç tane if sorgusu ile her bir 0'dan farklı değer için bu değişkene 1 ekleyin.
  3. Üç değeri de, içeriği sıfır olup olmadığını önemsemeden parantez içinde toplayıp, parantez sonunda bu toplam değere bölün.
Kolay gelsin

Muharrem Hocam çok teşekkür ederim. 
Dediğiniz gibi yaptığımda sorunum çözüldü.
Farklı bir yol ile deniyordum, neden parantez içerisine alıyoruz açıklayabilir misiniz?

(05-07-2020, Saat: 19:02)uparlayan Adlı Kullanıcıdan Alıntı: Şuna benzer bir şey olabilir...

var
 A, B, C: Integer;   // ortalaması alınacak alanlar
 X, Y: Integer;      // X bölen, Y Sonuc...
begin
 A := 1;
 B := 0;
 C := 33;
 X := Ord(A > 0) + ord(B > 0) + ord (C > 0);
 if X < 1 then X := 1;
 Y := (A + B + C) div X;
 ShowMessage(X.ToString);
 ShowMessage(Y.ToString);
end;

Teşekkürler Sayın Hocam.
Cevapla
#6
@xthief

Cevap "matematik". 

* İşlemler/parantezler ile ilişkili öncelikler sonucu belirler. 

Örnek :
A = 2
B = 1
C = 3
için
(A + B + C) / 3 = 2
iken parantez olmazsa 
A + B + C  / 3 = 4
toplamaya göre bölme işlemi önceliklidir. Parantez bu önceliği değiştirmenizi sağlar. 

Bu yeterince açık mıdır?

Ayrıca bölme sonucu Tamsayı olmayabilir, ortalama için @uparlayan integer vermiş ama real tipi bir değişken ( Sonuc : Double ) kullanmanızı öneririm.
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif
Cevapla
#7
Kimse mükemmel değil Smile
YouTube Delphi Tips
"Yaşlanarak değil, yaşayarak tecrübe kazanılır. Zaman insanları değil, armutları olgunlaştırır" Peyami Safa
WWW
Cevapla
#8
(05-07-2020, Saat: 20:27)mrmarman Adlı Kullanıcıdan Alıntı: @xthief

Cevap "matematik". 

* İşlemler/parantezler ile ilişkili öncelikler sonucu belirler. 

Örnek :
A = 2
B = 1
C = 3
için
(A + B + C) / 3 = 2
iken parantez olmazsa 
A + B + C  / 3 = 4
toplamaya göre bölme işlemi önceliklidir. Parantez bu önceliği değiştirmenizi sağlar. 

Bu yeterince açık mıdır?

Ayrıca bölme sonucu Tamsayı olmayabilir, ortalama için @uparlayan integer vermiş ama real tipi bir değişken ( Sonuc : Double ) kullanmanızı öneririm.

Evet işlem önceliğini atlamışım. Teşekkür ediyorum. 
Double kullanmıştım zaten.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Ortalama Vade Hesaplatma OZCANK 14 3.401 22-04-2022, Saat: 23:27
Son Yorum: FiRewaLL
Question Fast Report Şartlı Kdv Tutarı aldırma delphicim 5 3.339 18-12-2019, Saat: 10:51
Son Yorum: apachi2006



Konuyu Okuyanlar: 1 Ziyaretçi