MasterTR Posted November 7, 2010 Share Posted November 7, 2010 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 More sharing options...
KintaRo Posted November 7, 2010 Share Posted November 7, 2010 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 More sharing options...
MasterTR Posted November 7, 2010 Author Share Posted November 7, 2010 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 More sharing options...
KintaRo Posted November 7, 2010 Share Posted November 7, 2010 valla sonrası beni aşar Link to comment Share on other sites More sharing options...
MasterTR Posted November 7, 2010 Author Share Posted November 7, 2010 tamam teşekkürler ben bir bakayım. Link to comment Share on other sites More sharing options...
gecer80 Posted November 7, 2010 Share Posted November 7, 2010 ort:=(vize*30/100)+(final*70/100) hocam burdaki ifadelerde şunu dene bide : ort:=(vize*0.3)+(final*0.7) bide hesaplama yapıldıktan sonra yazdır edit3.text i ! Link to comment Share on other sites More sharing options...
aakdis Posted November 7, 2010 Share Posted November 7, 2010 [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 [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 More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.