Programlamdan Anlayanlar
-
bi program yazmaya calisiyorum ve ne kadar ugrassam o kadar komplike oluyor her sey karisiyor
program su:
program bizden bi numara isteyecek N>3 sonra bitun 1 den N e kadar toplamlarin 0 olma olasiligini bulucak numaralara + yada - ekleyerek 1 haric
ornegin:
N=3
1+2-3=0
yada
N=7
girdigimizde ekran boyle gozukucek
1-2+3+4-5+6-7=0
1+2-3-4+5+6-7=0
1+2-3+4-5-6+7=0
1-2-3-4-5+6+7=0bu programi nasil yazabilecegim hakkinda fikirlerinizi paylasirsaniz cok sevinirim
simdiden tesekurler
not: konu sadece uyelere gozuksun seceneginin secme nedenim bunu birisi yapabilirmisin demesi sonucunda yapmaya karar verdim ve eger yapabilirsem netten yardim aldigimi gormesini istemiyorum iumarim adminler anlayisla karsilarlar..
-
hangi dilde yazıcaksın hocam ?
-
Programlamadan gerçekten anlayan değil de, matematiği gerçekten iyi olan birisi önce bunun mantığını açıklayacak. Sonra programcı koda dökecek.
-
Hocam recursive olarak yaparsın bunu...
çok da kasmaması lazım.
Birazdan deneyeyim...
-
gerçekten sağlam soruymuş arkadaşlarını teprik etmek gerek.
-
house bunu yazdı:
-----------------------------
hangi dilde yazıcaksın hocam ?
-----------------------------hocam dil onemli degil wking dedigi gibimi onemli olan mantik yoksa bi dilde yazildiginda bitun diger dilerde yazmasida kolay olur bence, bu arada ben C# de yazmayi denedim bi yere kadar geldim ama yinede dedigim gibi bi noktadan sonra cok karisiyor
bu arada wking sadece matematik yetmiyor gercekten matematikten de ote bi sey
-
#include <stdio.h>
void hesapla(char string[100],int array[50],int size,int pos,int is);
int main(){
int array[50];
int sayi = 0;
int counter;
char yazi[100] = "";
printf("Sayi giriniz:\n");
scanf("%d",&sayi);
for(counter = 1; counter <= sayi; counter++){
array[counter-1] = counter;
}
hesapla(yazi,array,sayi,0,0);
hesapla(yazi,array,sayi,0,1);
return 0;
}
void hesapla(char yazi[100],int array[50],int size,int pos,int is){
// 0 toplama 1 cikarma..
char newyazi[100];
strcpy(newyazi,yazi);
if(pos == size){
if(is == 0)
printf("%s\n",newyazi);
return;
}
if(is == 0){
sprintf(newyazi,"%s+%d",newyazi,array[pos]);
hesapla(newyazi,array,size,pos+1,0);
hesapla(newyazi,array,size,pos+1,1);
}
if(is == 1){
sprintf(newyazi,"%s-%d",newyazi,array[pos]);
hesapla(newyazi,array,size,pos+1,0);
hesapla(newyazi,array,size,pos+1,1);
}
}
Al hocam, yazı olarak yazdım sadece...Yanında hesaplamalarını da yapman mümkün :) Fikir versin sana biraz... :) -
hocam gercekten cok sagol sabirsizlikla incelemeyi bekliyorum hele bi uyuyim yarin kalkiyim : ), yalniz bi sey var 1 de isaretini degistiriyor neyse bunu da istemek cok olurdu heralde, gercekten iyi is cikarmisin sagol
-
geniuss bunu yazdı:
-----------------------------
hocam gercekten cok sagol sabirsizlikla incelemeyi bekliyorum hele bi uyuyim yarin kalkiyim : ), yalniz bi sey var 1 de isaretini degistiriyor neyse bunu da istemek cok olurdu heralde, gercekten iyi is cikarmisin sagol
-----------------------------Başlangıç değerini falan değiştirip halledersin onu... çok kastırmaz :)
Ben bütün sayılar için deneyecek diye düşünmüştüm.
Bu arada kodda saçma sapan amelelikler olabilir dalga geçmeyin gecenin 4ünde bu kadar oluyo :D
-
Zoktrip in kodunun üstünden gidersek
http://pastebin.com/MwbjA2pf
bu tarz bir şey işini görür. Algoritmayı nasıl daha efektif hale getirebilirsin, onun üstüne yoğunlaş.
-
adminlerden rica ediyorum ilk mesajimi editleyebilirmisiniz orda not kisminda uyelere gozukmesin ozeligini secme sebebimi soylemistim yani en azindan ilk mesajimi editlerseniz sorum googlede cikmaz ve gercekten bana cok buyuk bi iyilik yapmis olursunuz
