Arama butonu
Bu konudaki kullanıcılar: 2 misafir, 1 mobil kullanıcı
4171
Cevap
169707
Tıklama
3
Öne Çıkarma
Cevap: C/C++/C# Sorularınız Buraya. . .(GÜNCEL) (52. sayfa)
E
13 yıl
Yüzbaşı

quote:

Orijinalden alıntı: crshr

quote:

Orijinalden alıntı: _JamesCarter_

Programdaki hatayi cozemedim yardim edecek birisi olursa sevinirim ..

#include <stdio.h>
#include <conio.h>

float faktoriyel(int x)
{
int y;
float z=1;
for(y=1 ;y<=z ;y++)
z *= y;
return z;
}
void main(void)
{
int n,r;
float f1,f2,f3,sonuc;
printf("n =");
scanf("%d",&n);
printf("r =");
scanf("%d",&r);
f1 = faktoriyel(n);
f2 = faktoriyel(r);
f3 = faktoriyel(n-r);
sonuc = f1/(f2*f3);
printf("\nsonuc =%0.2f\n\n",sonuc);
system("PAUSE");
return 0;
}


main in return türü void ama programın sonunda return 0; var.
"void main(void)" satırını "int main(void)" ile değiştir.

system("PAUSE"); kullanabilmen için #include <stdlib.h> eklemen gerekir. Sen #include <conio.h> eklemişsin burada da getch() ı kullanabilirsin aynı iş için.
"system("PAUSE");" satırını "getch();" ile değiştir.


asıl sıkıntı faktoriyel fonksiyonunda sen girdiyi x e atıyorsun fakat fonksiyon içinde x i hiç kullanmıyorsun. bence o kısmı düzeltmelisin


Bu mesaja 1 cevap geldi.
_
13 yıl
Er

quote:

Orijinalden alıntı: eebm38

quote:

Orijinalden alıntı: crshr

quote:

Orijinalden alıntı: _JamesCarter_

Programdaki hatayi cozemedim yardim edecek birisi olursa sevinirim ..

#include <stdio.h>
#include <conio.h>

float faktoriyel(int x)
{
int y;
float z=1;
for(y=1 ;y<=z ;y++)
z *= y;
return z;
}
void main(void)
{
int n,r;
float f1,f2,f3,sonuc;
printf("n =");
scanf("%d",&n);
printf("r =");
scanf("%d",&r);
f1 = faktoriyel(n);
f2 = faktoriyel(r);
f3 = faktoriyel(n-r);
sonuc = f1/(f2*f3);
printf("\nsonuc =%0.2f\n\n",sonuc);
system("PAUSE");
return 0;
}


main in return türü void ama programın sonunda return 0; var.
"void main(void)" satırını "int main(void)" ile değiştir.

system("PAUSE"); kullanabilmen için #include <stdlib.h> eklemen gerekir. Sen #include <conio.h> eklemişsin burada da getch() ı kullanabilirsin aynı iş için.
"system("PAUSE");" satırını "getch();" ile değiştir.


asıl sıkıntı faktoriyel fonksiyonunda sen girdiyi x e atıyorsun fakat fonksiyon içinde x i hiç kullanmıyorsun. bence o kısmı düzeltmelisin

oncelikle tesekkurler tavsiyeleriniz icin fakat x'in yerine ne yazmam gerek ? o parcayi bi duzenleyip yollarsaniz sevinirim


Bu mesaja 2 cevap geldi.
M
13 yıl
Yüzbaşı

quote:

Orijinalden alıntı: _JamesCarter_

quote:

Orijinalden alıntı: eebm38

quote:

Orijinalden alıntı: crshr

quote:

Orijinalden alıntı: _JamesCarter_

Programdaki hatayi cozemedim yardim edecek birisi olursa sevinirim ..

#include <stdio.h>
#include <conio.h>

float faktoriyel(int x)
{
int y;
float z=1;
for(y=1 ;y<=z ;y++)
z *= y;
return z;
}
void main(void)
{
int n,r;
float f1,f2,f3,sonuc;
printf("n =");
scanf("%d",&n);
printf("r =");
scanf("%d",&r);
f1 = faktoriyel(n);
f2 = faktoriyel(r);
f3 = faktoriyel(n-r);
sonuc = f1/(f2*f3);
printf("\nsonuc =%0.2f\n\n",sonuc);
system("PAUSE");
return 0;
}


main in return türü void ama programın sonunda return 0; var.
"void main(void)" satırını "int main(void)" ile değiştir.

system("PAUSE"); kullanabilmen için #include <stdlib.h> eklemen gerekir. Sen #include <conio.h> eklemişsin burada da getch() ı kullanabilirsin aynı iş için.
"system("PAUSE");" satırını "getch();" ile değiştir.


asıl sıkıntı faktoriyel fonksiyonunda sen girdiyi x e atıyorsun fakat fonksiyon içinde x i hiç kullanmıyorsun. bence o kısmı düzeltmelisin

oncelikle tesekkurler tavsiyeleriniz icin fakat x'in yerine ne yazmam gerek ? o parcayi bi duzenleyip yollarsaniz sevinirim

Programın ne yaptığını anlayamadım, önce onu bilirsek daha iyi olur.

For döngüsü işlem yapmıyor, y 1 z 1... Değişken tanımları yanlış.

Programın amacını söylersen çözüm üretebiliriz.



< Bu ileti mobil sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
T
13 yıl
Er

SORU1: Kullanıcının girdiği iki sayının OBEB ve OKEK değerlerini bulan aynı isimlerde iki fonksiyon
yazınız. OBEB ve OKEK fonksiyonları iki tane değer alacak sonucu geri dönecektir.

Allah razı olsun şimdiden :):)


Bu mesaja 2 cevap geldi.
T
13 yıl
Er

SORU1: Kullanıcının girdiği iki sayının OBEB ve OKEK değerlerini bulan aynı isimlerde iki fonksiyon
yazınız. OBEB ve OKEK fonksiyonları iki tane değer alacak sonucu geri dönecektir.

SORU2: Parametre olarak gönderilen iki sayının ikinciyi birincinin üssü olacak şekilde hesaplayan
fonksiyonu kendini çağıran yöntemle(Recursive) yapınız.

SORU3: S=-1+2-3+4-5.. serisinin toplamını n’ninci eleman için bulan fonksiyonu kendini çağıran
yöntemle(Recursive) yapınız.

SORU4: Parametre olarak aldığı sayının tersini geri dönen fonksiyonu yazınız.

SORU5: Girilen saatin akrep ve yelkovan değerine göre akrep ve yelkovan arasındaki acıyı bulan
fonksiyonu yazınız. Fonksiyon saat ve dakika değerlerini parametre olarak alacak, açıyı geri
dönecektir.

SORU6: 20 elemanlı bir dizi tanımlayın. Dizeye rasgele değerler atayan ve dizinin değerlerini ekrana
yazdıran iki ayrı fonksiyon yazınız.

SORU7: Parametre olarak aldığı dizinin elemanlarını tersten yazdıran fonksiyonu yazınız.

SORU8: Parametre olarak aldığı diziyi istenilen kadar sağa kaydıran fonksiyonu yazınız. Fonksiyon n
elemanlı bir dizi ve kayma adedini parametre olarak alacak ve istenilen miktarda dizi elemanlarını
sağa kaydıracaktır.

SORU9: 10x10 bir dizi tanımlayın. Diziye rasgele değer atayan ve dizi değerlerini ekrana yazdıran iki
ayrı fonksiyon yazınız. Fonksiyonlar dizileri parametre olarak alacaklardır.

SORU10: Soru9 da rasgele değerler atanan iki boyutlu dizinin istenilen iki satırının yerlerini değişen
fonksiyonu yazınız. Fonksiyon diziyi ve istenilen iki satırının numaralarını alacak ve bu satırların
yerlerini değiştirecektir.

ÇOK TEŞEKKÜR EDERİM :):)


Bu mesaja 1 cevap geldi.
M
13 yıl
Yüzbaşı

O okulu biz mi okuyoruz siz mi okuyorsunuz? Bu ne rahatlık...



E
13 yıl
Yüzbaşı

quote:

Orijinalden alıntı: _JamesCarter_

quote:

Orijinalden alıntı: eebm38

quote:

Orijinalden alıntı: crshr

quote:

Orijinalden alıntı: _JamesCarter_

Programdaki hatayi cozemedim yardim edecek birisi olursa sevinirim ..

#include <stdio.h>
#include <conio.h>

float faktoriyel(int x)
{
int y;
float z=1;
for(y=1 ;y<=z ;y++)
z *= y;
return z;
}
void main(void)
{
int n,r;
float f1,f2,f3,sonuc;
printf("n =");
scanf("%d",&n);
printf("r =");
scanf("%d",&r);
f1 = faktoriyel(n);
f2 = faktoriyel(r);
f3 = faktoriyel(n-r);
sonuc = f1/(f2*f3);
printf("\nsonuc =%0.2f\n\n",sonuc);
system("PAUSE");
return 0;
}


main in return türü void ama programın sonunda return 0; var.
"void main(void)" satırını "int main(void)" ile değiştir.

system("PAUSE"); kullanabilmen için #include <stdlib.h> eklemen gerekir. Sen #include <conio.h> eklemişsin burada da getch() ı kullanabilirsin aynı iş için.
"system("PAUSE");" satırını "getch();" ile değiştir.


asıl sıkıntı faktoriyel fonksiyonunda sen girdiyi x e atıyorsun fakat fonksiyon içinde x i hiç kullanmıyorsun. bence o kısmı düzeltmelisin

oncelikle tesekkurler tavsiyeleriniz icin fakat x'in yerine ne yazmam gerek ? o parcayi bi duzenleyip yollarsaniz sevinirim

#include <stdio.h>  

float faktoriyel(int);

int main() {
int n,r;
float f1,f2,f3,sonuc;
printf("n =");
scanf("%d",&n);
printf("r =");
scanf("%d",&r);
f1 = faktoriyel(n);
f2 = faktoriyel(r);
f3 = faktoriyel(n-r);
sonuc = f1/(f2*f3);
printf("\nsonuc =%0.2f\n\n",sonuc);
getch();
return 0;
}

float faktoriyel(int x){
float y,z=1;
for(y=1 ;y<=x ;y++)
z*=y;
return z;
}


tmmdırayrıca fonsiyonu bu şekilde yukarıya prototipini yazıp aşağıda kendisini yazarsan daha kullanışlı olur





< Bu mesaj bu kişi tarafından değiştirildi eebm38 -- 25 Aralık 2012; 18:59:34 >

E
13 yıl
Yüzbaşı

quote:

Orijinalden alıntı: THGop

SORU1: Kullanıcının girdiği iki sayının OBEB ve OKEK değerlerini bulan aynı isimlerde iki fonksiyon
yazınız. OBEB ve OKEK fonksiyonları iki tane değer alacak sonucu geri dönecektir.

Allah razı olsun şimdiden :):)

#include <stdio.h>  

int okek(int,int);
int obeb(int,int);

int main() {
int sayi1,sayi2;
printf("1.Sayi:");
scanf("%d",&sayi1);
printf("\n2.Sayi:");
scanf("%d",&sayi2);
printf("\n\nOkek(%d,%d)=%d",sayi1,sayi2,okek(sayi1,sayi2));
printf("\n\nObeb(%d,%d)=%d",sayi1,sayi2,obeb(sayi1,sayi2));
getch();
return 0;
}

int okek(int x,int y){
int deger=1;
while(1){
if(deger%x==0 && deger%y==0)
return deger;
deger++;
}
}

int obeb(int x,int y){
int deger=1000;
while(1){
if(x%deger==0 && y%deger==0)
return deger;
deger--;
}
}


obebi en fazla 1000 bulabiliyor istersen orayı artırabilirsin, kolay gelsin





< Bu mesaj bu kişi tarafından değiştirildi eebm38 -- 25 Aralık 2012; 10:44:37 >
Bu mesaja 1 cevap geldi.
T
13 yıl
Er

Çok teşekkür ederim hemen deneyeceğim :)


Bu mesaja 1 cevap geldi.
T
13 yıl
Er

Ama sanırım bu C dilinde yazılmış. ben bunu C++ nasıl çevirebilirim?


Bu mesaja 2 cevap geldi.
M
13 yıl
Er

Sa usta.Abi bana balık oyununun kodları lazım c++ ta ya daha doğrusu kız arkadaşıma lazım ben c++ almıyorum.hareket ettirdiğimiz balık küçük olanları yedikçe büyüyor ve büyük balık bizimkini yerse bizimki ölüyor.Balık da yön tuşları ile hareket edecekmiş.Balıklar sadece sağ veya sadece soldan gelebilirmiş.Çok lazım usta ya yardımcı olabilirsen çok sevinirim ya kodlarmış sadece gerekli olan.Bir de bunlar visual basic 2010 kullanıyorlarmış.Yardımların için şimdiden teşekkürler usta



C
13 yıl
Onbaşı

quote:

Orijinalden alıntı: MrOwl

quote:

Orijinalden alıntı: chipagat

quote:

Orijinalden alıntı: MrOwl

quote:

Orijinalden alıntı: chipagat

quote:

Orijinalden alıntı: MrOwl

quote:

Orijinalden alıntı: chipagat

bir sayı tahmin oyunu progamladım c de dogru sayı dogru yer için +1 dogru sayı yanlış yer için -1 koyacak 4 basamaklı sayılar için ancak -,+l degerler 5,6,7 gibi degerler geliyo napabilirim
edit :

#include <stdio.h>

void diziyeAktar(int sayi,int dizi[]);

int main(void)
{
int gizliSayi[3],tahmin[3],sayi1,sayi2,i,dogruTahmin=0,yanlisTahmin=1;

printf("Gizli Sayiyi Giriniz X=?\n");
scanf("%d",&sayi1);

if(sayi1<1000 || sayi1>9999)
{
printf("Girdi Uygun Degil\n");
return -1;
}

diziyeAktar(sayi1,gizliSayi);

while(sayi1 != sayi2)
{
printf("Tahmininizi Giriniz Y=?\n");
scanf("%d",&sayi2);

if(sayi2<1000 || sayi2>9999)
{
printf("Girdi Uygun Degil\n");
return -1;
}

diziyeAktar(sayi2,tahmin);

for(i=0;i<3;i++)
{
if(gizliSayi == tahmin)
{
dogruTahmin += 1;
}
else if(gizliSayi != tahmin)
{
yanlisTahmin += 1;
}


}
if(sayi1 == sayi2)
{
printf("Tebrikler Sayiyi Buldunuz\n");
scanf("%d",&i); /* programin hemen kapanmasini onler */
return -1;
}
printf("+%d\n",dogruTahmin);
printf("-%d\n",yanlisTahmin);
dogruTahmin = 0;
yanlisTahmin = 1;


}


scanf("%d",&i); /* Derleyici olarak Dev C++ ý kullanarak yazdým bu scanfin amaci programin hemen kapanmasini onlemek */

return 0;



}


/* Bu fonksiyon gelen integer sayiyi uzunluðu 4 olan bir boyutlu bir diziye atar */

void diziyeAktar(int sayi,int dizi[])
{
int temp=0,bolen=10,i=0,carpan=1;



for(i=0;i<4;i++)
{
temp = (sayi%bolen) / carpan;
sayi = sayi - (temp*carpan);
dizi[3-i] = temp;
bolen *= 10;
carpan *= 10;
}





}

Bu oyunu çok severim, çocukluğumdan beri hala daha oynarım :) Her basamak için olanını yazmıştım(seçenekli değil, algoritma otomatik olarak ayarlıyor). Yarın müsait vaktim olursa paylaşacağım.

bir arkadaş else yerine else if kullan dedi ama zaten else if li problem başka bi yerde ama bulamadım bi turlu

Bir şey fark etmiyor ki else, else if. Sadece yapıları farklı. Aynı işlemleri ikisiyle de yaparsınız.

Sorunuza gelince, bugün cevaplayacağım.

Ek: Yalnız gizli sayı girdisini bizim girmemizin bir anlamı yok. Random fonksiyonu ile PC'ye seçtirelim.

odevi verdim çalışmayan haliyle ama merak ediyourm

bir de istenen kendi sayımızdı ama random olması daha iyi olur :D

Dosyayı bulamadım tekrardan yazacağım. Grip geçsin, bu baş ağrısıyla bir şeyler yapamıyorum. Pseuducode ları ekleyeyim, yazacağım bugün dedim. Boş geçmek istemiyorum.

Aşağıda sayının basamaklara ayırma işlemi var. Gizli sayıya bu işlemi yapıp bir diziye aktarıyoruz. Tahmini sayıya da her girişte bu işlemi yapıp onu da bir diziye aktarıyoruz. Ve bu iki dizi elemanları arasında kıyaslama yapıyoruz. Eğer dizinin aynı basamağındaki elemanlar aynı ise artılara bir değer ekliyor, eğer dizinin bir basamağındaki eleman diğer basamağındaki elemanlarla aynı ise eksilere bir ekliyoruz(tercihe göre çıkartadabilirsin, ben artı yaptıydım değeri gösterirken -%d şeklinde print ediyordum).


//a= basamak sayısı-1 için: 

for(i=0;i<=a;i++)
{
gb[i]=gizli_sayi%10; // Burada elde ettiğimiz sonuç sayının en son rakamı
gizli_sayi=gizli_sayi/10; // Sayıdan bir basamak atıyoruz ve sonraki mod işleminde sondaki rakamı alıyoruz
}

// Yukarıda yapılan işlem 1234 sayısı için:
// 1234%10=4 dizi[0}=4;
// 1234/10=123 * küsürat alınmıyor int tipi olduğu için, bundan faydalanıyoruz
// 123%10=3 dizi[1]=3;
// 123/10=12
// 12%10=2 dizi[2]=2;
// 12/10=1
// 1 dizi[3]


Bu oyunda şöyle bir olay var. Rakamları farklı veya aynı olma durumu. Buna göre farklı algoritma yazalım, bendeki rakamları farklı için olandı fakat bulamadım. Ona göre karşılaştırmaları da algoritma haline dökeriz. Eğer basamak sayısı kişinin tercihine göre belirlenecekse algoritma halinde yapılmalı misal:

//gsb[i] gizli sayının basamaklarını tutan dizi, tsk[i] tahmin edilen sayının basamaklarını tutan dizi olsun. 
//a yine basamak sayısı-1 için:

for(i=0;i<=a;i++)
{
if(gsb[i]==tsk[i])
artı++;
}



Gibi... Burada da ek olarak

if(gsb==tsk[i+1])

gibi bir ifade ekleyebiliriz. Burada sorun bunu bir döngüye halletmek. Basamak sayısının kullanıcı tercihine göre belirlenmesi olayı biraz sıkıntıya sokuyor. Halledilemeyecek bir şey değil elbette, imkan olursa yarın onu da ekleyeceğim :)

Keşke yetişmesi gerektiğine dikkat etseydim, hasta masta daha iyi sonuç verirdik.

yok canım onemli değil emeğne ilgine sağlık bu arda geçmiş olsun tekrar



E
13 yıl
Yüzbaşı

quote:

Orijinalden alıntı: THGop

Ama sanırım bu C dilinde yazılmış. ben bunu C++ nasıl çevirebilirim?

henüz c++ ta kodların karşılığını bilmiyorum forumda bilen biri çevirir heralde



S
13 yıl
Yarbay

quote:

Orijinalden alıntı: THGop

Ama sanırım bu C dilinde yazılmış. ben bunu C++ nasıl çevirebilirim?

prirntf için yapı cout<<"yazılacak uyarı";
scanf yapısı cin>>x;

stdio.h yerine ... #include<iostream>

ve << >> operatörleri için using namespace std;

komutunu kullanıyorsun


Bu mesaja 1 cevap geldi.
S
13 yıl
Yüzbaşı

çözüldü





< Bu mesaj bu kişi tarafından değiştirildi scaryscreen -- 26 Aralık 2012; 19:00:20 >
Bu mesaja 1 cevap geldi.
L
13 yıl
Er

Sorum satır sayısıyla doğru orantılı iç içe üçgen çizmek. NOT1:Bayağı uğraştım ama kodları bir türlü toparlayamadım yardımcı olursanız sevinirim. NOT2:Soruda dizi olmayacak iç içe döngülerle yapılacak.Şimdiden teşekkürler!

< Resime gitmek için tıklayın >


Bu mesaja 1 cevap geldi.
T
13 yıl
Yüzbaşı

Beyler switch case yapısı içinde kullanılan contiue; komutu ne işe yarar. caselerin birinin sonunda break yerine continue olduğunu farz edin o case işletilirse ne olur?


Bu mesaja 1 cevap geldi.
C
13 yıl
Yüzbaşı

quote:

Orijinalden alıntı: TeaTone

Beyler switch case yapısı içinde kullanılan contiue; komutu ne işe yarar. caselerin birinin sonunda break yerine continue olduğunu farz edin o case işletilirse ne olur?

switch aslında döngü gibi çalışıyor ama döngü değil. Bu yüzden continue kullanamazsın. Kullansan da bu switch i değil switchin içinde bulunduğu while veya for döngüsüne etki eder.


Bu mesaja 1 cevap geldi.
T
13 yıl
Yüzbaşı

quote:

Orijinalden alıntı: crshr

quote:

Orijinalden alıntı: TeaTone

Beyler switch case yapısı içinde kullanılan contiue; komutu ne işe yarar. caselerin birinin sonunda break yerine continue olduğunu farz edin o case işletilirse ne olur?

switch aslında döngü gibi çalışıyor ama döngü değil. Bu yüzden continue kullanamazsın. Kullansan da bu switch i değil switchin içinde bulunduğu while veya for döngüsüne etki eder.

finalde şaşırtma amaçlı böyle bir soru geldi. 4 tane case vardı 2. casein sonunda continue vardı 3 casete break yoktu. 4. casete break vardı. Garip bir soruydu. continue'nun amacını anlayamadım o soruda.


Bu mesaja 2 cevap geldi.
C
13 yıl
Yüzbaşı

quote:

Orijinalden alıntı: TeaTone

quote:

Orijinalden alıntı: crshr

quote:

Orijinalden alıntı: TeaTone

Beyler switch case yapısı içinde kullanılan contiue; komutu ne işe yarar. caselerin birinin sonunda break yerine continue olduğunu farz edin o case işletilirse ne olur?

switch aslında döngü gibi çalışıyor ama döngü değil. Bu yüzden continue kullanamazsın. Kullansan da bu switch i değil switchin içinde bulunduğu while veya for döngüsüne etki eder.

finalde şaşırtma amaçlı böyle bir soru geldi. 4 tane case vardı 2. casein sonunda continue vardı 3 casete break yoktu. 4. casete break vardı. Garip bir soruydu. continue'nun amacını anlayamadım o soruda.

switch içinde continue varsa ve switch bir while veya for döngüsü içinde değilse zaten derlenmez hata verir. Oradaki continuelarda while veya for döngüsünün başına atlıycaktın. switch içindeki break de ise sadece switchden çıkıcak, while veya for dan değil.


Bu mesaja 4 cevap geldi.