Jump to content

Delphi 7 Bir Sorum Olucak ?


MasterTR

Recommended Posts

delphi'de vize+final notumu hesaplamak için program yazdım,ancak if şartı koymak gerekki kalıp kalmadığımı öğrenebileyim :)

Code'larım şu ancak if kullanınca hata alıyorum bakabilir misiniz?

vize,final,ort:Integer;

begin
vize:=StrToInt(Edit1.Text);
final:=StrToInt(Edit1.Text);
ort:=StrToInt(Edit3.Text);
ort:=(vize*30/100)+(final*70/100)
   [b][color="#FF0000"]if notu>0 then[/color][/b]
ShowMessage('Kötü');

Link to comment
Share on other sites

Delphiden çok anlamam ama programlama ile ilgili genel bilgim olduğu için fikir yürütebilirim sanırım.

notu değişkeni verdiğin kodlarda tanımlanmamış ayrıca if koşulu kapatılmamış. İlk bakışta teoriye aykırı olarak bunlar görünüyor.

Link to comment
Share on other sites

valla görememişim heralde onu,notu--> ort olarak değiştirdim ama hata gene alıyorum.

var
vize,final,ort:Integer;

begin
vize:=StrToInt(Edit1.Text);
final:=StrToInt(Edit1.Text);
ort:=StrToInt(Edit3.Text);
ort:=(vize*30/100)+(final*70/100)
   if ort>0 then
End diyorsan ekledim onda bir problem yok.
ShowMessage('Kötü');

Link to comment
Share on other sites

[quote name='MasterTR' date='07 Kasım 2010 - 12:55 ' timestamp='1289134513' post='911624']
valla görememişim heralde onu,notu--> ort olarak değiştirdim ama hata gene alıyorum.

[code]var
vize,final,ort:Integer;

begin
vize:=StrToInt(Edit1.Text);
final:=StrToInt(Edit1.Text);
ort:=StrToInt(Edit3.Text);
ort:=(vize*30/100)+(final*70/100)
if ort>0 then
End diyorsan ekledim onda bir problem yok.
ShowMessage('Kötü');[/code]
[/quote]

Dostum öncelikle sonucu atayacağın değişkene ort adı yerine not yada sonuc demen daha doğru olur. Sonuc diyelim.
1. Hata: Sonuc değişkeni küsüratlı olacağından tipini Integer olarak tanımlaman hesaplamada hataya neden olur. Sonuc değişkeninin tipi real ,float veya double yapabilirsin.
2. Hata: Sonuç hesaplandıktan sonra Sonucu Edit3 te göstermek istemişsin ancak atama ile ilgili bir hata var. Edit3 tekini Sonuc'a değil, Sonucu Edit3 atamalısın. ort:=StrToInt(Edit3.Text); yerine Edit3.Text := FloatToStr(Sonuc); olmalı.
3. Hata: Kişinin notuna göre yazı yazmak için birden fazla if kullanmalısın. if fonksiyonlarını iç içe kullanabilirsin.
[b]if [/b]Şart [b]then [/b]Şart doğruysa yapılacaklar [b]else [/b]Şart yanlışsa yapılacaklar

Doğru kod aşağıdaki gibi olmalı. Umarım işine yarar B)

[codebox]var
Vize, Final: Integer;
Sonuc: Double;
begin
Vize := StrToInt(Edit1.Text);
Final := StrToInt(Edit2.Text);
Sonuc := (Vize*30/100)+(Final*70/100);
Edit3.Text := FloatToStr(Sonuc);
if Sonuc > 85 then ShowMessage('Aferin Sana') else
if Sonuc > 70 then ShowMessage('Güzel') else
if Sonuc > 60 then ShowMessage('Fena Değil') else
if Sonuc > 50 then ShowMessage('Dikkat Et') else
ShowMessage('Biraz daha çalış');
end;[/codebox]

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...