not ortalaması

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
lazanya
Üye
Mesajlar: 23
Kayıt: 13 Haz 2003 12:34
Konum: trabzon
İletişim:

not ortalaması

Mesaj gönderen lazanya »

bir öğrenci düşünün genel bilgilari var bir de bu öğrenciye ait 10 adet veya daha fazla dersin not girişi ve anında ortalaması. DBeditlerle olamz başa çıkılmaz. nasıl bir form kullanabilirim.

1Yyazılı 2Y 3Y ... ... .. ortlama
ingilizce
türkçe

yok bu olmadı diyelim. bir dersi Dbeditlerle vermek istedim. Dbeditlerin farzedelim 3 tane EDIT1 te anında ortlaması nasılalınır. yalnız dikkat edelim 2 giriş var 1 i boş o zaman hata veriyor. 1 tane varsa 1 e bölecek 2 tane varsa 2 ye böyle gidecek.

teşekkürler
csyasar
Üye
Mesajlar: 646
Kayıt: 25 Şub 2004 10:14
Konum: Tokat

Mesaj gönderen csyasar »

field'ları kullanarakda olur:

Kod: Tümünü seç

Table1Ortalama.value:=(TableYazili1.value+Table1Yazili2.value+Table1Yazili3.value) / 3;
lazanya
Üye
Mesajlar: 23
Kayıt: 13 Haz 2003 12:34
Konum: trabzon
İletişim:

olur ama

Mesaj gönderen lazanya »

dostum ilgin için sağol ama bu kod bende var. buradaki sorun hep üçe bölüyor. ben 7-8 tane field koyacağım bunlardan birini sayı girilidğinde ortalama hanesinde 1 e bölünmüş sayı, iki sayı girilmişse 2 ye bölünmüş sayı olmalı, hepsi her zaman dolu olmayacak. bölen değişken olacak.
bu tip bir kod olsa dahi ben onu sadece tek bir ders ile kullanabiliyorum.
çünkü dbedit i düşünürsek alt alta tüm girişleri (kişileri) gösterecek o yüzden tüm derleri göstemek mümkün değil.
.............1yazılı...2y....3y...............................................ortalama
ing
türkçe
resim
beden

merak ettiğim yapan nasıl yapmış nasıl bir form kullanmış aynı excele benziyor. acaba biri bana kaynak site önerebilirmi, bu konu ile ilgili.
csyasar
Üye
Mesajlar: 646
Kayıt: 25 Şub 2004 10:14
Konum: Tokat

Mesaj gönderen csyasar »

o zaman dolu olan fieldları tespit et. mesela public vs.'nin altında var yazan yerin altına:

Kod: Tümünü seç

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  formanamenu: Tformanamenu;
 dolu_field_count:integer; {sadece bu kısmı ekleyeceksin. yani bu satırı}

implementation
daha sonra hesapla gibi bi butonun olur. tüm fieldların dolu olup olmadığını tespit edip, toplamlarını alırsın.

Kod: Tümünü seç

//Dolu - boş fieldların tespiti:
if (Table1Yazili1.asstring='') then begin //asstring parametresi kafanı karıştırmasın o kontrol için. fieldları numerik veya float tanımla...
dolu_field_count:=dolu_field_count+1;
end;
//diğer fieldlarada aynı şeyi uygularsın...

//daha sonra toplamları alırsın...
Table1Toplam_Not.value:=Table1Yazili1.value+Table1Yazili2.value+Table1Yazili3.value+Table1Yazili4.value+Table1Yazili5.value+ vs.
daha sonra bu kodun altına devamla ederek:

Kod: Tümünü seç

Table1Ortalama.value:=Table1Toplam_Not.value / dolu_field_count;
lazanya
Üye
Mesajlar: 23
Kayıt: 13 Haz 2003 12:34
Konum: trabzon
İletişim:

deneyeceğim

Mesaj gönderen lazanya »

deneyeceğim
lazanya
Üye
Mesajlar: 23
Kayıt: 13 Haz 2003 12:34
Konum: trabzon
İletişim:

beceremedim galiba...

Mesaj gönderen lazanya »

1) “diğer fieldlarada aynı şeyi uygularsın”

if (Table1Yazili1.asstring='') then begin
dolu_field_count:=dolu_field_count+1;
end;

if (Table1Yazili2.asstring='') then begin
dolu_field_count:=dolu_field_count+1;
end;

….
kastediyorsun. ayrıntıya ihtiyacım var. çok profesyonel değilim de…


2. kodun devamına şunu ekledim

Table1BBS.value:=Table1BBY.value+Table1BIY.value;
Table1BUY.value:=Table1BBS.value/dolu_field_count;


Kod “dolu_field_count” bölümünde takılıyor ve aşağıda şu uyarı mesajı çıkıyor.

[Error] Unit1.pas(72): Incompatible types: 'Integer' and 'Extended'


BBS: birinci dönem birinci sözlü
BBY: birinci dönem birinci yazılı
BUY: birinci dönem üçüncü sözlü
BIY: birinci dönem ikinci yazılı
lazanya
Üye
Mesajlar: 23
Kayıt: 13 Haz 2003 12:34
Konum: trabzon
İletişim:

bu arada

Mesaj gönderen lazanya »

bu arada okullarda kullanılan programlarda excel tarzı formlar kullanıyorlar. nasıl birşey kullanıyorlar biliyormusun? bu tek ders için yeterli bir kod olacak. ama 1 öğrenci için 11 ders yazmak istediğimde bu field tarzı uygulama yetersiz olacak. önce bunu halledeyimde...
Kullanıcı avatarı
warder
Üye
Mesajlar: 255
Kayıt: 10 Mar 2004 04:59

Mesaj gönderen warder »

Kendi okul programımda bahsettiğin işlemin bir bölümünü 1250 satır kodla (BCB) yapmışım. Diğer bölümleri 5-10 satırlık kodlardan oluşuyor.
Okuduğum kadarıyla cevabı zaten biliyorsunuz ama kod yazmaya üşeniyorsunuz. Anladığım kestirme bir yol olabilir mi diye arayışınız var.
Tek ders için yeterli dediğiniz işlemi fonksiyonlaştırıp Controls, Sender gibi parent düzeyde işlemlerle ve etkin bir içerik, hata takibi ile sizin istediğiniz yapılabilir.
Benimkinin uzun olmasının sebebi sizinki gibi dinamik (anında) ortalama gösterme kaygısı taşımamamdan kaynaklanıyor.
... Muhtaç olduğun kudret, damarlarındaki asil kanda mevcuttur!
Mustafa Kemal Atatürk...
lazanya
Üye
Mesajlar: 23
Kayıt: 13 Haz 2003 12:34
Konum: trabzon
İletişim:

yanılıyorsun

Mesaj gönderen lazanya »

öncelikle ben amatör olarak uğraşıyorum bu işle. öğretmenim ve yakında duymuşsundur düşük taksitle laptop verecekler. ben sınıfımdaki öğrencilerin (tek bir sınıf düşün 20 kişi) tek bir dersini benimki olabilir veya sınıfımdaki öğrencilerin 11 dersini birden takip etmek istiyorum. bunun yanında öğrenci hakkındaki diğer bilgilerde mevcut olacak. amaç öğrencilerin sağlıklı bir şekilde takibini yapmak, bu arada ingilizce öğretmeniyim, programcılık sadece bir merak. üşenmekse bugün pazar evden çıkmadım bununla uğraşıyorum. inşallagh yeterince açık anlatabilmişimdir.
Kullanıcı avatarı
warder
Üye
Mesajlar: 255
Kayıt: 10 Mar 2004 04:59

Mesaj gönderen warder »

Sevgili meslektaşım,
Bende sınıf öğretmeniyim. Programcı tabiatımı daha öncül görüyorum.
Belki şimdi yazdıklarım daha anlamlı olur.
Yazdığım tüm cevaplardaki en istemediğim tepki alınma yönelimli olanlardır.
Sizi veya bir başkasını incitmek sanal dünyadaki üslubum değildir.
... Muhtaç olduğun kudret, damarlarındaki asil kanda mevcuttur!
Mustafa Kemal Atatürk...
Cevapla