Basit Bir Konuda Takıldım
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Basit Bir Konuda Takıldım
procedure TForm1.Button11Click(Sender: TObject);
var
k,ilk,son,deger,toplam:integer;
begin
ilk:=strtoint(edit8.Text);
son:=strtoint(edit9.Text);
toplam:=0;
begin
if ilk>son then
deger:=ilk;
ilk:=son;
son:=deger;
end;
for k:= ilk to son do
begin
inc(toplam,k);
end;
form1.Caption:='sonuç= ' + inttostr(toplam);
end;
end.
Arkadaşlar ben bu kodun nasıl işlediğini anlamadım. For ile edit8 in değişkeni ile edit9 un değişkenine gelinceye kadar ne yapmasını söylüyor. Ve şu inc kafama takıldı. Bana adım adım şu kodun işleyişini anlatırmısınız. Farz-ı misal edit8 e 1 rakamını girdim. edit9 a da 5 rakamını girdim. toplam ile i yi topla sonra form1 e 1 olarak yazdır mı diyor. bu inc hangi aşamada devreye giriyor. Bu ilk değişkenine verilen değeri hafıza da tutup sonra bir sonraki aşamada topluyor mu? Hiç bir şey anlamadım. Siz de benim dediğimden bir şey anlamadınız ise sadece inc olayını ve mümkünse tam olarak aşama aşama nasıl çalıştığını yazarsanız sevinirim. Şimdiden teşekkürler.
var
k,ilk,son,deger,toplam:integer;
begin
ilk:=strtoint(edit8.Text);
son:=strtoint(edit9.Text);
toplam:=0;
begin
if ilk>son then
deger:=ilk;
ilk:=son;
son:=deger;
end;
for k:= ilk to son do
begin
inc(toplam,k);
end;
form1.Caption:='sonuç= ' + inttostr(toplam);
end;
end.
Arkadaşlar ben bu kodun nasıl işlediğini anlamadım. For ile edit8 in değişkeni ile edit9 un değişkenine gelinceye kadar ne yapmasını söylüyor. Ve şu inc kafama takıldı. Bana adım adım şu kodun işleyişini anlatırmısınız. Farz-ı misal edit8 e 1 rakamını girdim. edit9 a da 5 rakamını girdim. toplam ile i yi topla sonra form1 e 1 olarak yazdır mı diyor. bu inc hangi aşamada devreye giriyor. Bu ilk değişkenine verilen değeri hafıza da tutup sonra bir sonraki aşamada topluyor mu? Hiç bir şey anlamadım. Siz de benim dediğimden bir şey anlamadınız ise sadece inc olayını ve mümkünse tam olarak aşama aşama nasıl çalıştığını yazarsanız sevinirim. Şimdiden teşekkürler.
peynir
Re: Basit Bir Konuda Takıldım
s.a.
benim anladığım kadarı ile bu kod girilen birinci sayıdan ikinci sayıya kadar olan sayıların toplamlarını alıyor.
inc comutu artırma(yani toplama) için kullanılıyor.
inc üzerine gelip f1 e bastığınız zaman ne işe yaradığını söyler.
x indeğerini N kadar arttırır. Eğer N parametresi verilmezse 1 arttırı.
kolay gelsin.
benim anladığım kadarı ile bu kod girilen birinci sayıdan ikinci sayıya kadar olan sayıların toplamlarını alıyor.
inc comutu artırma(yani toplama) için kullanılıyor.
inc üzerine gelip f1 e bastığınız zaman ne işe yaradığını söyler.
Kod: Tümünü seç
procedure Inc(var X [ ; N: Longint ] );
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Re: Basit Bir Konuda Takıldım
Arkadaşlar teşekkürler. Yalnız ben bu kodların ne işe yradığını biliyorum. Ama aşama aşama anlatırsanız sevinirim. Aslında benim kafama takılan inc bölümü toplam o k değeri ne oluyr. toplam ile k toplanıyor toplandıktan sonra inc komutu ile ikinci defa mı artırılıyor. Bu inc in çalışma prensibini anlamadım.
peynir
- bulutsuzluk_35
- Üye
- Mesajlar: 124
- Kayıt: 06 Eki 2007 04:14
- Konum: İzmir-Ankara-İstanbul-Antalya
- İletişim:
Re: Basit Bir Konuda Takıldım
ya arkadaşlar yani hiç delphi kitaplarına eğitimlere bakmadan bu delphi sanki bi paint gibiymişte kurcalaya kurcalaya öğrenilecekmiş gibi hafife almanız ne kadar doğru ne kadar yanlış bilmiyorum.Arkadaş gelip bu foruma yazacağın konuyu bir araştır yahu.Yani şu kodun ne olduğunu program nasıl adım adım çalıştırılır onu bile öğrensen çözersin..
Yani acaba çokmu ukalaca yaklaştım bilmiyorum ama neyse artık yazdımmm...
Yani acaba çokmu ukalaca yaklaştım bilmiyorum ama neyse artık yazdımmm...
Kod: Tümünü seç
try
try
inc(Bilgi);
except
sabir;
end;
finally
inc(Mutluluk);
end;
Re: Basit Bir Konuda Takıldım
Arkadaşım senin araştırmaktan kastın nedir? Elimde bir kitap var ve o kitap haricinde bir şey yok. Ben de kitapta yazmayan şeyi size soruyorum. Araştırıyorum işte. Bu yaptığım araştırmaya girmiyor mu? Bu delphi'nin nasıl çalıştığıyla ilgili aşağı yukarı bilgim var ama daha acemiyim gene de. Sen benden iyi biliyorsun diye azarlamana gerek var mı?
peynir
-
- Üye
- Mesajlar: 151
- Kayıt: 16 Eki 2006 10:43
- Konum: ERZURUM
Re: Basit Bir Konuda Takıldım
Merhaba ,
kodun sadeleştirilmişi
Kolay gelsin.
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
var
k,ilk,son,deger,toplam:integer;
begin
ilk:=strtoint(edit8.Text);//döngü başlangıç değeri
son:=strtoint(edit9.Text);//döngü bitiş değeri
toplam:=0;
if ilk>son then //başlangıç değeri bitiş değerinden büyükse
begin
deger:=ilk; //
ilk:=son; // bu üç satıra neden gerek duyulmuş anlamadım?
son:=deger; //
end;
for k:= ilk to son do//döngü başlangıcı
begin
inc(toplam,k);
{
Burada toplam başlangıçta 0 ' dı.her döngüde toplamın değerini k kadar artıracak.
yani toplamı her döngüde k ile toplayacak.
}
end;
form1.Caption:='sonuç= ' + inttostr(toplam);//toplamın caption ' a yazılması.
end;
Kod: Tümünü seç
toplam := 0 ;
if StrToInt(Edit9.Text) > StrToInt(Edit8.Text) then
for k := StrToInt(Edit8.Text) to StrToInt(Edit9.Text) do
Inc(toplam , k);
Caption := IntToStr(toplam)
akıllanma , aklını başına toplama , toparlanma , kendisini derleme bu dünyaya ait bir vazife.
ahirette nasıl olsa aklın başına gelecek.
ahirette nasıl olsa aklın başına gelecek.
Re: Basit Bir Konuda Takıldım
Arkadaşlar işn gerçeği ben bu drece kolay soruları size sorarken geriliyorum. Çünkü tepki alıyorum ama bir konuyu anlayamadım. Şimdi for k:= ilk to son do //derken ilk değerden son değere kadar aşağıdakileri işlet diyor. Ben şunu anlamıyorum. Buradaki döngüye başlarken k değeri ilk aşamada hangi değeri alıyor. Mesela ilk değere 1 diyelim. Son değere 3 diyelim. Burada k değeri ilk aşamada 1 değerini alıyor sonra toplam ile toplanıyor ve sonuç olarak 1 değerini mi yazıyor. Yoksa k değeri inc vasıtasıyla 2 değerini mi alıyor. Sonraki aşama da böyle mi oluyor. Bunu öğrenmek istiyorum.palandoken yazdı:Merhaba ,kodun sadeleştirilmişiKod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject); var k,ilk,son,deger,toplam:integer; begin ilk:=strtoint(edit8.Text);//döngü başlangıç değeri son:=strtoint(edit9.Text);//döngü bitiş değeri toplam:=0; if ilk>son then //başlangıç değeri bitiş değerinden büyükse begin deger:=ilk; // ilk:=son; // bu üç satıra neden gerek duyulmuş anlamadım? son:=deger; // end; for k:= ilk to son do//döngü başlangıcı begin inc(toplam,k); { Burada toplam başlangıçta 0 ' dı.her döngüde toplamın değerini k kadar artıracak. yani toplamı her döngüde k ile toplayacak. } end; form1.Caption:='sonuç= ' + inttostr(toplam);//toplamın caption ' a yazılması. end;
Kolay gelsin.Kod: Tümünü seç
toplam := 0 ; if StrToInt(Edit9.Text) > StrToInt(Edit8.Text) then for k := StrToInt(Edit8.Text) to StrToInt(Edit9.Text) do Inc(toplam , k); Caption := IntToStr(toplam)
Kardeş sen de o ortadaki değişimji anlamamışsın. O ortadaki değişim, eğer ilk değer ikinci değerden büyükse ilk değer ile son değeri değiştir diyor. Teşekkürler.
peynir
Re: Basit Bir Konuda Takıldım
edit8 deki değer edit9 daki değerden büyükse alttaki döngüye hiç girmeyecektir. bu durum kontrol edilerek, küçük olan değerden büyük olan değere kadar bir döngü kurulmuşpalandoken yazdı:Kod: Tümünü seç
ilk:=strtoint(edit8.Text);//döngü başlangıç değeri son:=strtoint(edit9.Text);//döngü bitiş değeri if ilk>son then //başlangıç değeri bitiş değerinden büyükse begin deger:=ilk; // ilk:=son; // bu üç satıra neden gerek duyulmuş anlamadım? son:=deger; // end; for k:= ilk to son do//döngü başlangıcı begin inc(toplam,k); { Burada toplam başlangıçta 0 ' dı.her döngüde toplamın değerini k kadar artıracak. yani toplamı her döngüde k ile toplayacak. } end;
bazen yükselmek için önce dibi görmek gerekir...
forumda soru sormadan önce bakılmalı bence
daha fazlası için...
yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

forumda soru sormadan önce bakılmalı bence
daha fazlası için...
yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

Re: Basit Bir Konuda Takıldım
peynir şöyle anlatayım:
for k:= 3 to 10 do
dersen k önce 3 olur, sonra 4, sonra 5 ... sonra 10 olarak devam eder.
for k:=ilk to son do
dersen k önce ilk degiskeni neyse o olur, sonra son degiskenden küçükse ilk+1 olur, sonra ilk+2, sonra ilk+3 bu k=son olana kadar devam eder.
for k:=ilk to son do
inc(toplam,k );
diyelim ilk=4, son=9 ve toplam= 0 olsun; inc(toplam,k) yi i da şöyle yazabiliriz toplam:=toplam+k;
k->4, toplam:=0+4 ; ---- > toplam:=4;
k->5 toplam:=4+5 ; ---- > toplam:=9;
k->6, toplam:=9+6 ; ---- > toplam:=15;
k->7 toplam:=15+7 ; ---- > toplam:=22;
k->8, toplam:=22+8 ; ---- > toplam:=30;
k->9 toplam:=30+9 ; ---- > toplam:=39;
k artık son deger olan 9 dan büyük olacagı için burada döngü biter.
Bunlar çok temel bilgilerdir. Öncelikle bu konuları anlaman lazım, yoksa işin çok zor.
for k:= 3 to 10 do
dersen k önce 3 olur, sonra 4, sonra 5 ... sonra 10 olarak devam eder.
for k:=ilk to son do
dersen k önce ilk degiskeni neyse o olur, sonra son degiskenden küçükse ilk+1 olur, sonra ilk+2, sonra ilk+3 bu k=son olana kadar devam eder.
for k:=ilk to son do
inc(toplam,k );
diyelim ilk=4, son=9 ve toplam= 0 olsun; inc(toplam,k) yi i da şöyle yazabiliriz toplam:=toplam+k;
k->4, toplam:=0+4 ; ---- > toplam:=4;
k->5 toplam:=4+5 ; ---- > toplam:=9;
k->6, toplam:=9+6 ; ---- > toplam:=15;
k->7 toplam:=15+7 ; ---- > toplam:=22;
k->8, toplam:=22+8 ; ---- > toplam:=30;
k->9 toplam:=30+9 ; ---- > toplam:=39;
k artık son deger olan 9 dan büyük olacagı için burada döngü biter.
Bunlar çok temel bilgilerdir. Öncelikle bu konuları anlaman lazım, yoksa işin çok zor.
Re: Basit Bir Konuda Takıldım
s.a.
1.For satırına gelinip breakpoint koyulur.
2.program çalıştırılır.
3.program break pointin olduğu satıra gelince durur bu aşamada değerlerini öğrenmek istediğimiz değişkenlerin üzerine tıklayım Ctrl+F5 tuşlarına basarız.
Böylece delphi bu değişkeni "watch list" ealır. Bu işlem değerini görmek istediğimiz düm değişkenler için tekrarlanır.
4.watchlist üzerinde sağ tıklanıp "stay on top" seçilir.
5.watchlist kodları kapatmayacak şekilde kenera çekilir.
6.F8 ile kodlar satır satır çalıştırılmaya başlanır.
7. Watch list e bakılıp "hımmm. demek bu değeri alıyormuş" denilir.
Not:
bu sorunun cevabını öğrenmek için yapılması gereken işlemler.Burada k değeri ilk aşamada 1 değerini alıyor sonra toplam ile toplanıyor ve sonuç olarak 1 değerini mi yazıyor. Yoksa k değeri inc vasıtasıyla 2 değerini mi alıyor. Sonraki aşama da böyle mi oluyor. Bunu öğrenmek istiyorum.
1.For satırına gelinip breakpoint koyulur.
2.program çalıştırılır.
3.program break pointin olduğu satıra gelince durur bu aşamada değerlerini öğrenmek istediğimiz değişkenlerin üzerine tıklayım Ctrl+F5 tuşlarına basarız.
Böylece delphi bu değişkeni "watch list" ealır. Bu işlem değerini görmek istediğimiz düm değişkenler için tekrarlanır.
4.watchlist üzerinde sağ tıklanıp "stay on top" seçilir.
5.watchlist kodları kapatmayacak şekilde kenera çekilir.
6.F8 ile kodlar satır satır çalıştırılmaya başlanır.
7. Watch list e bakılıp "hımmm. demek bu değeri alıyormuş" denilir.
Not:
kolay gelsin.aslangeri yazdı: procedure Inc(var X [ ; N: Longint ] );
x indeğerini N kadar arttırır. Eğer N parametresi verilmezse 1 arttırı.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim