Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

C++ yardım


Mike

Öne çıkan mesajlar

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.
Link to comment
Sosyal ağlarda paylaş

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 =)
Link to comment
Sosyal ağlarda paylaş

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 =)
Link to comment
Sosyal ağlarda paylaş

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
Link to comment
Sosyal ağlarda paylaş

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?
Link to comment
Sosyal ağlarda paylaş

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++
Link to comment
Sosyal ağlarda paylaş

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.
Link to comment
Sosyal ağlarda paylaş

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?
Link to comment
Sosyal ağlarda paylaş

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.
Link to comment
Sosyal ağlarda paylaş

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
Link to comment
Sosyal ağlarda paylaş

×
×
  • Yeni Oluştur...