mt93 bunu yazdı DrKill bunu yazdı ilk girişte j ve i int olduğu için 2.3 ün tam sayı kısmı olan 2 olurlar. Dngüye girmeden dngü kontrolünde i kontrol yapılmadan 1 eksiltilir yani 1 olur. J ise dngü kontrolü yapıldıktan sonra 1 arttırılır ve 3 olur. Daha sonra bunlar dngü içinde yazdırılır. Tekrar dngü kontrolüne gelinmeden nce i 1 azaltılır ve 0 olur. Dngü kontrolü yapıldığında i 0 olduğu için mantıksal FALSE değeri alır ve dngüye girmeden çıkar. Olay bundan ibaret. şu ilk girişte 2.3 ondalık olarak mı aldınız?i'ye 2 j'ye 3 değerini atamak değil midir ordaki? Kalınla yazdıklarınızı anladım onda sıkıntı yok zaten ama şu dngünün durmasını anlamış değilim. Bu arada saol yardımın için. @HeadBanger Diyecek lafım yok... integer yani tam sayı olarak aldığın için değişkenleri bkz: int i, j; küsürlü sayı yazsanda 2,3 gibi sadece tam sayı kısmını alır derleyici. Küsürlü şekilde almak istersen float veya benzer bir şekilde tanımlayacaksın i ve j değişkenlerini. Kafanız mı güzel ya :) Hangi programlama dilinde virgül ondalık için kullanılmış? Küsürat için nokta kullanılır. Virgül operatrdür, kullanımı için http://msdn.microsoft.com/en-us/library/zs06xbxh.aspx bak buraya aşağı yukarı fikir verir right to left, left to right mantığı ile alakalı. Sonuç olarak soldaki değeri aldığı için i ve j ye 2 atıyor daha sonra i yi bir azaltıp ( 1 ) j yi de 1 artırıyor ( 3 ) fakat --i ile i-- farklı şeylerdir. Mesela i = 5 a = --i; printf ; // 4 4 basarken i = 5 a = i--; printf ; // 5 4 basar Sonuç olarak ilk dngü basamağında 1 ile 2 yi and işlemine sokuyosun ki sonucu 1dir. While devam eder. 2. dnüşte ise 0 ile 3ü and işlemine sokuyosun sonuç 0 o yüzden dngüden çıkıyor :) Edit: Virgülü burda daha güzel anlatmış :) http://en. wikipedia. org/wiki/Comma_operator NmC tarafından 25/Nis/13 00:12 tarihinde düzenlenmiştir There are 10 types of people in the world. Those who knows binary and those who dont...

Yardımlarınız için çok teşekkür ederim eksiğimi anlamış oldum. Finallerde iyi bir şey yaparız artık :) mt93 tarafından 25/Nis/13 16:31 tarihinde düzenlenmiştir

kpoya vermeyinb bırakın ğrensin çabalasın ibiş Hocam sen bırak TBT'yi "boş işlerle" uğraş bence. Aynı sınava girdim sınavda çıkan bir soru başlığa bakarsan "Sınavdayım Acil Yardım Edin..." gibi bir başlık değil. Kodu çalıştırıp baktık sonuç 1 3 çıkıyor. Mantığını kavramak amacıyla soru sorduk. İmza...

Ya ısrarla niye herkes tam kısmı alır diyo ya.. Orda küsüratlı bir sayı yok küsürat nokta ile yazılır. i=j=2,3,4,5,6; yazılmış olsa ne yapacaktınız merak ediyorum :) Ben okuyarak yorumladığım için o virgül'ü nokta sanmıştım :) ona gre yorumladım yanlış grmüşüm. Zaten cevabımdada 2.3 yazmışım. 2,3 diyinde soldakini alıyor dediğin doğru. Sonuç değişmiyor ama mantığı dediğin gibi. DrKill tarafından 25/Nis/13 13:17 tarihinde düzenlenmiştir Bu imzayı her grdüğünüzde 4gb kotanızın 0,00000358559191226959228515625 azalmaktadır. Bilerek ve istenerek bu imza yapılmıştır. Amaç kotanızı smürmektir

NmC bunu yazdı Ya ısrarla niye herkes tam kısmı alır diyo ya.. Orda küsüratlı bir sayı yok küsürat nokta ile yazılır. i=j=2,3,4,5,6; yazılmış olsa ne yapacaktınız merak ediyorum :) dostum nokta da yapsan virgül de yapsan farketmiyor. sadece ilk sayıyı alıyor sadece ilk sayıyı almasının sebebi nokta ile virgülün bi manası olmamasından değil. normalde bu gibi şeylerde virgül kullanmasının amacı iki ayrı şeyi çağırıp ikincisinin sonucunu dnmektir. yani ; int A;A = (3+7, 12-1); printf ; yazarsan 3+7 işleminide 12-1 işleminide yapar ama A ya 12-1 işleminin sonucunu verir. , ün solundaki değeri değil sağındaki değeri kullanır yani. bu normal kullanımı. ama şyle bişey var parantezsiz yazarsa bu işlemi atıyorum ;a = 2,3 derse 3ü değil 2 yi alır çünkü operatrler arasındaki ncelik sıralamasında operatrü operatrünün nceliğinden yüksektir. Bu yüzden nce = işlemini yapar ve direk soldaki sayıyı a ya atar. virgülden sonrasının bi manası kalmaz. .

LynXMaSTeR bunu yazdı NmC bunu yazdı Ya ısrarla niye herkes tam kısmı alır diyo ya.. Orda küsüratlı bir sayı yok küsürat nokta ile yazılır. i=j=2,3,4,5,6; yazılmış olsa ne yapacaktınız merak ediyorum :) dostum nokta da yapsan virgül de yapsan farketmiyor. sadece ilk sayıyı alıyor sadece ilk sayıyı almasının sebebi nokta ile virgülün bi manası olmamasından değil. normalde bu gibi şeylerde virgül kullanmasının amacı iki ayrı şeyi çağırıp ikincisinin sonucunu dnmektir. yani ; int A;A = (3+7, 12-1); printf ; yazarsan 3+7 işleminide 12-1 işleminide yapar ama A ya 12-1 işleminin sonucunu verir. , ün solundaki değeri değil sağındaki değeri kullanır yani. bu normal kullanımı. ama şyle bişey var parantezsiz yazarsa bu işlemi atıyorum ;a = 2,3 derse 3ü değil 2 yi alır çünkü operatrler arasındaki ncelik sıralamasında operatrü operatrünün nceliğinden yüksektir. Bu yüzden nce = işlemini yapar ve direk soldaki sayıyı a ya atar. virgülden sonrasının bi manası kalmaz. şu konuda en güzel cvp bu ben fizikçi olduğum halde c de ondalık kısmın nokta ile yazıldığını biliyorum i=j=2,3; bu satırı i=j=(2,3); yapsak mavi gzlü devin haklı olduğunu grüoz :D |sadece aptalların başarısı ders notu ile lçülür|

int den dolayı tam kısmını alır i=2; j =2; birini bir azaltıyor yani i=1; birini de bir artırıyor yani j =3 bu yüzden çıktı bu şekilde

Ya ısrarla niye herkes tam kısmı alır diyo ya.. Orda küsüratlı bir sayı yok küsürat nokta ile yazılır. i=j=2,3,4,5,6; yazılmış olsa ne yapacaktınız merak ediyorum :) dostum nokta da yapsan virgül de yapsan farketmiyor. sadece ilk sayıyı alıyor goo. gl/qBNZmW

NmC bunu yazdı Ya ısrarla niye herkes tam kısmı alır diyo ya.. Orda küsüratlı bir sayı yok küsürat nokta ile yazılır. i=j=2,3,4,5,6; yazılmış olsa ne yapacaktınız merak ediyorum :) NmC"Sonuç olarak soldaki değeri aldığı için i ve j ye 2 atıyor" yine 2 yi alırdık ama orda müridin hocası muhtemelen nokta kullanmak istemiş ama virgül koymuş. byle bir line zaten hata verir? sen sonuç olarak soldakini alır yazmışsın ne içtin? hocam niye hata versin; x=2,3 yazarsan 2 yi alır işleme devam eder. hata felan vermez yani. nokta kullanmaya çalıştığından değil virgülün bi işlevi olduğundan kullanmıştır, ğrenciler bilmiyodur azcık kafası karışsın demiştir muhtemelen :) .

NmC bunu yazdı Ya ısrarla niye herkes tam kısmı alır diyo ya.. Orda küsüratlı bir sayı yok küsürat nokta ile yazılır. i=j=2,3,4,5,6; yazılmış olsa ne yapacaktınız merak ediyorum :) NmC"Sonuç olarak soldaki değeri aldığı için i ve j ye 2 atıyor" yine 2 yi alırdık ama orda müridin hocası muhtemelen nokta kullanmak istemiş ama virgül koymuş. byle bir line zaten hata verir? sen sonuç olarak soldakini alır yazmışsın ne içtin? Hocam elinde compiler varsa bi derle yukardaki programı. Bak bakalım çalışıyo mu çalışmıyo mu? :) Mühendislik blümünde operatrlerin çalışma mantıklarını anlatmak için byle abuk subuk sorular çok sorulur, hocası yanlış falan yazmamış yani :) Ayrıca C grüp grebileceğin en esnek dillerden biridir aklına gelebilecek çoğu saçmalığı kabul eder, java veya C# ile karşılaştırmayın :) There are 10 types of people in the world. Those who knows binary and those who dont...

hocam int i=j=2,3 dediğin zaman. integer yani tam sayı olarak i ve j tanımlamış, bu iki değişkeni de küsüratlı bi sayıya eşitlemiş oluyosun. yani sonuç olarak i de j de 2 oluyor. while dngüsünde --i yaptığı için i değişkeni 2 yerine 1 den başlıyor, j için de j++ dediğinden dolayı j değeri de 3 olarak başlıyor. && bağlacı olduğu için ikisinin de sağlanması lazım. bu şekilde olması gerekir die düşünüyorum. goo. gl/qBNZmW

DrKill bunu yazdı ilk girişte j ve i int olduğu için 2.3 ün tam sayı kısmı olan 2 olurlar. Dngüye girmeden dngü kontrolünde i kontrol yapılmadan 1 eksiltilir yani 1 olur. J ise dngü kontrolü yapıldıktan sonra 1 arttırılır ve 3 olur. Daha sonra bunlar dngü içinde yazdırılır. Tekrar dngü kontrolüne gelinmeden nce i 1 azaltılır ve 0 olur. Dngü kontrolü yapıldığında i 0 olduğu için mantıksal FALSE değeri alır ve dngüye girmeden çıkar. Olay bundan ibaret. şu ilk girişte 2.3 ondalık olarak mı aldınız?i'ye 2 j'ye 3 değerini atamak değil midir ordaki? Kalınla yazdıklarınızı anladım onda sıkıntı yok zaten ama şu dngünün durmasını anlamış değilim. Bu arada saol yardımın için. @HeadBanger Diyecek lafım yok... integer yani tam sayı olarak aldığın için değişkenleri bkz: int i, j; küsürlü sayı yazsanda 2,3 gibi sadece tam sayı kısmını alır derleyici. Küsürlü şekilde almak istersen float veya benzer bir şekilde tanımlayacaksın i ve j değişkenlerini. havalı bir şeyler yazdığımı hayal edin

Ya ısrarla niye herkes tam kısmı alır diyo ya.. Orda küsüratlı bir sayı yok küsürat nokta ile yazılır. i=j=2,3,4,5,6; yazılmış olsa ne yapacaktınız merak ediyorum :) NmC"Sonuç olarak soldaki değeri aldığı için i ve j ye 2 atıyor" yine 2 yi alırdık ama orda müridin hocası muhtemelen nokta kullanmak istemiş ama virgül koymuş. byle bir line zaten hata verir? sen sonuç olarak soldakini alır yazmışsın ne içtin? BerkayCit tarafından 25/Nis/13 12:30 tarihinde düzenlenmiştir havalı bir şeyler yazdığımı hayal edin

ilk girişte j ve i int olduğu için 2.3 ün tam sayı kısmı olan 2 olurlar. Dngüye girmeden dngü kontrolünde i kontrol yapılmadan 1 eksiltilir yani 1 olur. J ise dngü kontrolü yapıldıktan sonra 1 arttırılır ve 3 olur. Daha sonra bunlar dngü içinde yazdırılır. Tekrar dngü kontrolüne gelinmeden nce i 1 azaltılır ve 0 olur. Dngü kontrolü yapıldığında i 0 olduğu için mantıksal FALSE değeri alır ve dngüye girmeden çıkar. Olay bundan ibaret. Ekleme: 2,3'ü 2.3 olarak yanlış grmüşüm o yüzden açıklamam tam olarak doğru değil. 2,3 olunca soldaki değeri alıyor virgül operatründen dolayı. Diğer açıklamalarımdaki gibi işlemler devam ediyor. @NMC açıklamış aşağıda. DrKill tarafından 25/Nis/13 13:19 tarihinde düzenlenmiştir Bu imzayı her grdüğünüzde 4gb kotanızın 0,00000358559191226959228515625 azalmaktadır. Bilerek ve istenerek bu imza yapılmıştır. Amaç kotanızı smürmektir

mt93 bunu yazdı DrKill bunu yazdı ilk girişte j ve i int olduğu için 2.3 ün tam sayı kısmı olan 2 olurlar. Dngüye girmeden dngü kontrolünde i kontrol yapılmadan 1 eksiltilir yani 1 olur. J ise dngü kontrolü yapıldıktan sonra 1 arttırılır ve 3 olur. Daha sonra bunlar dngü içinde yazdırılır. Tekrar dngü kontrolüne gelinmeden nce i 1 azaltılır ve 0 olur. Dngü kontrolü yapıldığında i 0 olduğu için mantıksal FALSE değeri alır ve dngüye girmeden çıkar. Olay bundan ibaret. şu ilk girişte 2.3 ondalık olarak mı aldınız?i'ye 2 j'ye 3 değerini atamak değil midir ordaki? Kalınla yazdıklarınızı anladım onda sıkıntı yok zaten ama şu dngünün durmasını anlamış değilim. Bu arada saol yardımın için. @HeadBanger Diyecek lafım yok... integer yani tam sayı olarak aldığın için değişkenleri bkz: int i, j; küsürlü sayı yazsanda 2,3 gibi sadece tam sayı kısmını alır derleyici. Küsürlü şekilde almak istersen float veya benzer bir şekilde tanımlayacaksın i ve j değişkenlerini. i=j=2,3; Bu şekilde atama değerini ilk defa grdüm. Sınavda da nasıl düşündüysem yani hiç o şekil düşünemedim sıralı şekilde atamadır diye düşündüm. i=2, j=3 diye... Daha nce atamaların byle yapıldığını biliyodum bu farklı bi gsterimdir diye düşündüm. Saolun...

ilk girişte j ve i int olduğu için 2.3 ün tam sayı kısmı olan 2 olurlar. Dngüye girmeden dngü kontrolünde i kontrol yapılmadan 1 eksiltilir yani 1 olur. J ise dngü kontrolü yapıldıktan sonra 1 arttırılır ve 3 olur. Daha sonra bunlar dngü içinde yazdırılır. Tekrar dngü kontrolüne gelinmeden nce i 1 azaltılır ve 0 olur. Dngü kontrolü yapıldığında i 0 olduğu için mantıksal FALSE değeri alır ve dngüye girmeden çıkar. Olay bundan ibaret. şu ilk girişte 2.3 ondalık olarak mı aldınız?i'ye 2 j'ye 3 değerini atamak değil midir ordaki? Kalınla yazdıklarınızı anladım onda sıkıntı yok zaten ama şu dngünün durmasını anlamış değilim. Bu arada saol yardımın için. @HeadBanger Diyecek lafım yok... mt93 tarafından 25/Nis/13 00:30 tarihinde düzenlenmiştir

#include <stdio. h> #include <conio. h> main Ekrana verilen çıktıyı, while'ın kaç kere dndüğünü, kaç kere doğruyu gsterdiğini sordu hoca. Ben sonsuz dngü diye düşündüm ama çıktı 1 3 şeklide çıkıyor. Nedenini açıklayabilen var mı?

mRBerkay bunu yazdı NmC bunu yazdı Ya ısrarla niye herkes tam kısmı alır diyo ya.. Orda küsüratlı bir sayı yok küsürat nokta ile yazılır. i=j=2,3,4,5,6; yazılmış olsa ne yapacaktınız merak ediyorum :) NmC"Sonuç olarak soldaki değeri aldığı için i ve j ye 2 atıyor" yine 2 yi alırdık ama orda müridin hocası muhtemelen nokta kullanmak istemiş ama virgül koymuş. byle bir line zaten hata verir? sen sonuç olarak soldakini alır yazmışsın ne içtin? hocam niye hata versin; x=2,3 yazarsan 2 yi alır işleme devam eder. hata felan vermez yani. nokta kullanmaya çalıştığından değil virgülün bi işlevi olduğundan kullanmıştır, ğrenciler bilmiyodur azcık kafası karışsın demiştir muhtemelen :) tamam hocam doğru benimde kafam karıştı :D kusura bakmayın havalı bir şeyler yazdığımı hayal edin

Ya ısrarla niye herkes tam kısmı alır diyo ya.. Orda küsüratlı bir sayı yok küsürat nokta ile yazılır. i=j=2,3,4,5,6; yazılmış olsa ne yapacaktınız merak ediyorum :) There are 10 types of people in the world. Those who knows binary and those who dont...

kpoya vermeyinb bırakın ğrensin çabalasın ibiş Boş İşler Uzmanı..