Orijinalden alıntı: garui İkinize de çok teşekkür ederim kitapta nasıl ilerlemem gerektiğini de anladım sağolun ![]() Rica ederim. Burada önemli olan algoritma mantığı. Bu tip küçük programlarda koddan çok algoritma önemlidir. Algoritmayı düşünüp bunu koda aktarıcaksın. Mesela verdiğim kodun son halinde algoritma hatalı.
Genel programlama mantığını öğrendikten sonra daha iyi algoritmalar çıkartabilirsin. Bir şeyi yapmak için birden çok metod olabilir. Aşağıdaki link anlatmak istediğimi fikir olarak gösterebilir. http://mathbits.com/MathBits/CompSci/Arrays/Sorting.htm Anladım ben de kitaba göre konuyu bitirdikten sonra alıştırmalara geçiyordum ama şimdi kitabı bitirip alıştırmaları en son yapıcam hem tek tip algoritma yerine farklı farklı algroitmalar kullanmış olurum |
Arkadaşlar bu yıl C dersi görmeye başladık. Elimde iki tane kaynak var: http://www.kadifeli.com/fedon/stdcprtr.php?k_1 http://www1.gantep.edu.tr/~bingul/c/ Hiç birşey bilmiyoruz daha, yeni başladık. Hangisini okuyayım? Ya da sizin bir tavsiyeniz var mı? |
Sadece 3x3 ve 2x2 matris ile işlem yapacaksın. İki class oluştur sarrus2C ve sarrus3C
sarrus2C::determinant() //Yukarıdakine göre yazabilirsin sanırım ve kodu C++ syntaxine uydurmak kaldı. Toparla da sonucu görelim. |
Bence alıştırmalara yine de göz at. En azından bak hıı şunu iki for a soksam buna bir while koysam onu ekrandam alsam şeklinde. Olmadı birini ikisini yaz; compile et; sonucu ekranda gör (zevk de alırsın böylece). Elin kod yazmaya alışşın. En iyi yazarken sindiriliyor bu iş. Tabi benim fikrim. |
Ucundan bakarım artık ![]() ![]() |
GMP kütüphanesine bakabilirsin http://gmplib.org/ . Bunlar la baya çıkabilirsin. veya unsigned long long int = uint64_t kadardır yani 8byte. unsigned long long int = 18446744073709551615ULL; kadar rakama çıkabilirsin. veya kendin yazıcaksın. Carry Flag sanırım duymussundur. Buna benzer davranişta bira kod yazabilirsin. http://stackoverflow.com/questions/6659414/efficient-128-bit-addition-using-carry-flag
Mesela,
Ayrıca linki okursan gcc'nin direl uint128_t desteği varmiş. Sanırım bu microsoft compiler için de varmış. veya string yoluyla bu işi yapmış biri var. http://ideamonk.blogspot.com/2008/10/adding-large-numbers-in-c.html |
![]() |
P2. By using a while loop calculate the value of π from the infinite series : Pi = 4 - (4/3) + (4/5) - (4/7) + (4/9) - (4/11) + . Your program should ask for an iteration value and do the calculation of iterations. A sample output should be as follows for input value 30: for that number Enter your iteration number:30 iteration 0=4.000000 iteration 1=2.666667 iteration 2=3.466667 iteration 3=2.895238 iteration 4=3.339683 iteration 5=2.976046 iteration 6=3.283738 iteration 7=3.017072 iteration 8=3.252366 iteration 9=3.041840 iteration 10=3.232316 iteration 11=3.058403 iteration 12=3.218403 iteration 13=3.070255 iteration 14=3.208186 iteration 15=3.079153 iteration 16=3.200366 iteration 17=3.086080 iteration 18=3.194188 iteration 19=3.091624 iteration 20=3.189185 iteration 21=3.096162 iteration 22=3.185050 iteration 23=3.099944 iteration 24=3.181577 iteration 25=3.103145 iteration 26=3.178617 iteration 27=3.105890 iteration 28=3.176065 iteration 29=3.108269 iteration 30=3.173842 benden istenen şey bu hocam benim yaptığım şeyde #include<stdio.h> #include<conio.h> int main() { int m,n; float a,b; a=0.0; b=0.0; float pi; int tekrarsayisi; scanf("%d",&tekrarsayisi); for(m=1;m<=tekrarsayisi;m+=4){ a+=4*(1/m); } for(n=3;n<=tekrarsayisi;n+=4){ b+=4*(1/n); } pi=a-b; printf("%f is about pi\n",pi); return 0; } işte buuu ama sürekli 4 çıkarıyor sonucu yardımmmm |
getch(); komutunun <conio.h> ile eklenince çalıştığını söylüyorlar. Ben eklemesem de getch(); çalışıyor. Neden? |
Hangi derleyiciyi kullanıyorsun ? |
Dev C++ kullanıyorum. |
Dev-c++ içindeki derleyici antika da ondan. Şu açtığım konuda hem güncel bir geliştirme ortamı hem de gmp kütüphanesinin kurulumunu anlattım.http://forum.donanimhaber.com/m_66567895/tm.htm Ben getch metch kullanmayı önermem. Onun yerine programı cmd den çalıştırmanız daha iyi. |
for larda 1/n ve 1/m yaparsan bölümün sonucu integer çıkar. 1.0f/n ve 1.0f/m olarak değiştirirsen onları düzelir. Ayrıca değişken isimlerine yaptığı işle alakalı isim ver ayrıca ilklendir. |
hocam sağolun çalıştı :) başka bir yolunu bularak yaptım while if if ile gittim :)) |
bilgiler için tşk. konuyu da okudum ama cevabımı tam alamadım. getch() komutunun <conio.h> ya mı ait olup olmadığını öğrenmek istemiştim. bi kitapta da getch komutunu conio.h eklemeden kullanmış. İnternette heryerde conio eklemiş de yapmışlar. conio.h'ı eklemelerinin sebebi ne? |
getch, conio bunlar standart değil. Derleyiciye keyfe keder ekleniyor. Dev-c++ ta conio gerekmiyorsa stdio nun içine koymuşlardır. Fakat sonradan conio içine yerleştirildi. Linux ta ise komple kaldırıldı. Güncel derleyici tavsiye etmemin sebebi de bu zaten, güncel kod yazmak. |
Konuda anlattığınız gibi yaptım. Codeblocks'ta da getch() komutu çalışıyor. çalışmaması mı lazım acaba biyerde yanlış mı yaptım. sizin dediğinize göre çalışmaması gerekiyor. yazdığım program şu; getch() ile girilen karakteri alıyor ASCII kodunu yazdırıyor. stdio.h'tan başka bişey de ekli değil. bu getch() komutu stdio.h'ya mı ait ? #include <stdio.h> |
class içerisinde bir char oluşturuyorum ancak ona main fonksiyonda isim girmek istediğimde ismin sadece ilk harfini alıp yazıdırıyor. bunun çözümü nasıldır, bir kaç yol denedim ama sonuca ulaşamadım. |
char sadece bir karakter tutabilir, kelime veya cümle için string class ını kullanmalısın veya char array. |
Rica ederim. Burada önemli olan algoritma mantığı. Bu tip küçük programlarda koddan çok algoritma önemlidir. Algoritmayı düşünüp bunu koda aktarıcaksın. Mesela verdiğim kodun son halinde algoritma hatalı.
Genel programlama mantığını öğrendikten sonra daha iyi algoritmalar çıkartabilirsin. Bir şeyi yapmak için birden çok metod olabilir. Aşağıdaki link anlatmak istediğimi fikir olarak gösterebilir.
http://mathbits.com/MathBits/CompSci/Arrays/Sorting.htm
< Bu mesaj bu kişi tarafından değiştirildi garui -- 12 Ekim 2012; 1:08:52 >
Bu mesaja 1 cevap geldi. Cevapları Gizle