Mike Mesaj tarihi: Nisan 18, 2009 Mesaj tarihi: Nisan 18, 2009 kullanıcı 1 den 100 e kadar bı sayı giricek, islem = A+A^2+A^3 ... A^k girdiği sayıya kadar a nın üstü devam edicek bunun sonucunu nası yazdırabilirim
Mum_Chamber Mesaj tarihi: Nisan 18, 2009 Mesaj tarihi: Nisan 18, 2009 hazirladigin kodu yaz, biz yardimci olmaya calisalim
reyou Mesaj tarihi: Nisan 18, 2009 Mesaj tarihi: Nisan 18, 2009 bende bi araya yabanci bi forumda C++ icin bu tarzda sormustum, ne kod var ne bisi. lan git donem odevlerini baslakarina yaptir, kodunu goster bizde yardimci olalim deyip kovmuslardi beni :)
Penthesilea Mesaj tarihi: Nisan 18, 2009 Mesaj tarihi: Nisan 18, 2009 2 satir bisi be uzmeyin insanlari :) int getPower(int base, int power) { if(power == 0) return 1; return base * getPower(base, power -1); } int main() { int A, k; cout << "Enter A and k, respectively bla bla: " cin >> A >> k; int sum = 0; for(int i=1; i<=k; i++) { sum += getPower(A, i); } cout << "Result: " << sum << endl; return 0; } Tabi eger farkettiysen mesela A^m i hesaplamak icin A^0'dan A^m-1 'e kadar tekrar hesapliyosun daha onceden hesapladigin seyleri. Bunu hizlandirmak icin dynamic programming kullanabilirsin, yani bir arraye (k size'inda) hesapladigin A^m leri atabilirsin, eger arrayin o bolumu doluysa direk onu dondurursun yoksa hesaplar hem dondurur hem arraye yazarsin. Ama baslangic icin bu isini gorur.
di Mesaj tarihi: Nisan 18, 2009 Mesaj tarihi: Nisan 18, 2009 Mike said: kullanıcı 1 den 100 e kadar bı sayı giricek, islem = A+A^2+A^3 ... A^k girdiği sayıya kadar a nın üstü devam edicek bunun sonucunu nası yazdırabilirim A'nin belli oldugunu varsayiyorum. * kullanicidan k sayisini girmesini iste * girilen k sayisi 1 ile 100 arasinda bir sayi mi diye kontrol et * for(sayac=1;sayac<=k;sayac++) seklinde bir dongu baslat * toplam = toplam + pow(A,k) seklinde ussu hesaplayip onceki toplama ekle * ekrana yazdir c++ da us alan fonksiyon pow mu bilmiyorum. aklima o geldi onu yazdim o yuzden. bir de toplam'i double olarak tanimla ki karsina eksi deger cikmasin, apisip kalma =)
aquila Mesaj tarihi: Nisan 18, 2009 Mesaj tarihi: Nisan 18, 2009 ya ilke sana kac kere direk kod verme dedik, ayip lan.
di Mesaj tarihi: Nisan 18, 2009 Mesaj tarihi: Nisan 18, 2009 Penthesilea said: Tabi eger farkettiysen mesela A^m i hesaplamak icin A^0'dan A^m-1 'e kadar tekrar hesapliyosun daha onceden hesapladigin seyleri. Bunu hizlandirmak icin dynamic programming kullanabilirsin, yani bir arraye (k size'inda) hesapladigin A^m leri atabilirsin, eger arrayin o bolumu doluysa direk onu dondurursun yoksa hesaplar hem dondurur hem arraye yazarsin. Ama baslangic icin bu isini gorur. Kafasini karistirma elemanin =)
di Mesaj tarihi: Nisan 18, 2009 Mesaj tarihi: Nisan 18, 2009 aquila said: ya ilke sana kac kere direk kod verme dedik, ayip lan. Sirf hava.
Penthesilea Mesaj tarihi: Nisan 18, 2009 Mesaj tarihi: Nisan 18, 2009 aquila said: ya ilke sana kac kere direk kod verme dedik, ayip lan.valla ben kod soruyosam bi yere, kod gormek istedigimden soruyorumdur ben de sorulara o sekilde cevap veriyorum aciklayarak. SEN MISIN LAN BURALARIN AGASI???/ di: aga intro to cs'le hava mi atilir akila: recursive is the new iterative hadi ben ise doneyim
Mirage Mesaj tarihi: Nisan 18, 2009 Mesaj tarihi: Nisan 18, 2009 Millet ödevini yapmasın da kendine rakip çıkmasın diye kod veriyor Penth. :p
aquila Mesaj tarihi: Nisan 18, 2009 Mesaj tarihi: Nisan 18, 2009 microsoft ruhuna islemis imzayi attiginda.
NeroWarden Mesaj tarihi: Nisan 18, 2009 Mesaj tarihi: Nisan 18, 2009 Arkadaşlar C yi yeni öğreniyorum ödevimi yapmaya çalışıyorum. Açıkçası ödevim elemanın adını soyadını borcunu girmeni isteyecek sonra borcu belirli bir aralığa denk gelirse faiz uygulayıp girilen bilgileri topluca ekrana verecek. #include using namespace std; int main() { cout <<"musterinin adini airiniz: " ; int musteriadi; //musterinin adi girildi cin >> musteriadi; cout <<"musterinin borcunu giriniz: " < int musteriborcu; //musterinin Borcu Girildi cin >> musteriborcu; system("pause"); } Edit : Değiştirdim bunu yazdım ama borcunu girmeme izin vermiyor neden acaba?
Penthesilea Mesaj tarihi: Nisan 18, 2009 Mesaj tarihi: Nisan 18, 2009 int, yani integer, memory'de bir sayi tutmani saglar. musteri adi olarak bir karakter dizisi, yani isim soyad gibi birsey giriyorsan, orada string kullanman gerekir. string kullanmak icin ilk olarak library'si olan string i include etmen lazim #include seklinde, ayni iostream gibi string musteriadi; yapar ve cin ile buna input istersen programin calisir tahminen. sondaki pause falan ogrenirken kullanilmasi saglikli seyler degil ama (gerci terminal kapanmasin diye koyduysan mantikli visual studio falan kullaniyorsan) pause oncesine bir cout << "musteri adi: " << musteriadi <<", musteri borcu : " << musteriborcu << endl; gibi bi satir eklersen dogru almis misin falan gorursun. P.S. ogrendigin C degil C++
Penthesilea Mesaj tarihi: Nisan 18, 2009 Mesaj tarihi: Nisan 18, 2009 Bu arada borcu girdirtmemesinin sebebi buyuk ihtimalle senin string inputunu intler seklinde dusunerek 1'den fazla input girdin gibi gormesi, diger cin ine siradaki karakter degerini direk atamasi.
Mike Mesaj tarihi: Nisan 18, 2009 Konuyu açan Mesaj tarihi: Nisan 18, 2009 penth saol, normal C ve matriks olcakmış , math.h kullanmadan bide =)
Penthesilea Mesaj tarihi: Nisan 18, 2009 Mesaj tarihi: Nisan 18, 2009 Mike said: penth saol, normal C ve matriks olcakmış , math.h kullanmadan bide =)math.h kullanmadan power i oraya yazdigim gibi aliyorsun, C, C++ farketmez o getpower fonksiyonu. recursive ogrenmediyseniz iterative yazican onu for loopuyla. hatta buna gerek kalmicak matrix kullanicagin icin. C olunca output veris ve input alis degisecek, matrix kullanmanin sebebi de iste dedigim gibi gereksiz hesaplarin onune gecmen. soyle yapicaksin kisaca. (bu arada matrixe gerek yok ya array ile hallolur eger istedigin sadece A degeri icinse) array[0] a 1 i koyucaksin. Sonra A^i icin yapacagin array[i] yi hesaplamak, o da array[i-1] * A. bu degeri array[i] ye koyucaksin sonra A^i icin array[i] i kullanicaksin.
Mike Mesaj tarihi: Nisan 20, 2009 Konuyu açan Mesaj tarihi: Nisan 20, 2009 biraz geç oldu ama, A dediğim kullanıcı tarafından belirlenen bir kare matrismiş, elemanlarınıda kullanıcı giriyor. Recursive görmemişler daha. 2 tane matrisi böyle mult[i][j] += m1[i][r]*m1[r][j] çarpabilirken 3 tane olunca 3. matrisi bu işleme nasıl katıcaz? Orda dediğin şekilde array[i] gibi yazıp for içinde i yimi arttırmak gerek yani?
Mirage Mesaj tarihi: Nisan 20, 2009 Mesaj tarihi: Nisan 20, 2009 Matriks çarpması için bir fonksiyon yazıp iki kere ard arda kullanarak üç matriksi çarpabilirsin. Anladığım kadarıyla iki matriksi çarpıp, sonucu ilk matriksin üstüne yazıyorsun. Şöyle bir fonksiyon yazabilirsin mesela: void mult(matrix1, matrix2) { // matrix1 = matrix1 * matrix2; } m1, m2 ve m3 diye üç tane matrix'i çarpmak istiyorsan sırayla iki kere çağırabilirsin: mult(m1, m2); mult(m1, m3); (m1 x m2) x m3 yapmış oluyorsun yani. Fonksiyon sonucu matrix olarak döndürse daha mantıklı olurdu ama C'de array döndürmek biraz karışık ve riskli bir iş diye hiç girmedim o işe.
Penthesilea Mesaj tarihi: Nisan 20, 2009 Mesaj tarihi: Nisan 20, 2009 ohoo abi 5 gun sonra matrixmis diyosun ya :) bu arada potansiyel soruna cevap olaraktan, mirage'in dedigini yapicaksan ilk matrixi reference ile passlamayi unutma :)
Mike Mesaj tarihi: Nisan 20, 2009 Konuyu açan Mesaj tarihi: Nisan 20, 2009 olayı anladım gayet basit gibi duruyorda işin içinde matrix yani 2D dizi olunca fonksiyonda onu nasıl belirticeğim konusunda pek bi fikrim yok
Mirage Mesaj tarihi: Nisan 20, 2009 Mesaj tarihi: Nisan 20, 2009 Şuraya bir bakıver: http://www.eskimo.com/~scs/cclass/int/sx9a.html
Mike Mesaj tarihi: Nisan 20, 2009 Konuyu açan Mesaj tarihi: Nisan 20, 2009 verdiğin kaynaktan anlayabildiğim kadarıyla şöyle kurdum fonksiyonu; int mult(int x, int y, int m1[x][y]) { int i,j,r,n = 2, mult[2][2]; for(x=0;x { for(j=0;j { mult[i][j]=0; for(y=0;y { mult[x][y] += m1[x][y]*m1[y][j]; } } } } pek bi doğru gözükmedi bana zaten program crash verdi
Mike Mesaj tarihi: Nisan 20, 2009 Konuyu açan Mesaj tarihi: Nisan 20, 2009 fonksiyon kullanmadan sadece for ile yapamazmıyım gene aynı mantıkla ?
Öne çıkan mesajlar