Şimdi Ara

C/C++/C# Sorularınız Buraya. . .(GÜNCEL) (123. sayfa)

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
4.172
Cevap
118
Favori
170.054
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
3 oy
Öne Çıkar
Sayfa: önceki 121122123124125
Sayfaya Git
Git
sonraki
Giriş
Mesaj
  • Seikatsu kullanıcısına yanıt
    recursive ile olan fonksiyonu netten bulmuştum yaptım fakat mantığını tam olarak bilmiyorum onuda yazar mısın ?
  • quote:

    Orijinalden alıntı: El nino9

    recursive ile olan fonksiyonu netten bulmuştum yaptım fakat mantığını tam olarak bilmiyorum onuda yazar mısın ?

    fonksiyon kendini bosluk karakterini bulana kadar tekrar cagırıyor boylece harf harf karakterleri almıs oluyor(bufferdan)
    daha sonra icten dışa doğru yazdırıyor
  • kullanıcı pozitif tamsayı girecek, program bu sayının bütün asal çarpanlarını bulup, diziye atayacak
    SORUMA YARDIMCI OLABİLİR MİSİNİZ? :((
  • quote:

    Orijinalden alıntı: mntkrstknt

    kullanıcı pozitif tamsayı girecek, program bu sayının bütün asal çarpanlarını bulup, diziye atayacak
    SORUMA YARDIMCI OLABİLİR MİSİNİZ? :((

    Merhaba,

    Yapamadığınız kısım neresi, orayı yazarsanız o şekilde yardımcı olalım. Yoksa direkt bizim yapıp size kod vermemiz size bi'şey kazandırmaz.
  • Kardeşim burada senin sorunun python ile gerçeklemesi var. Fikir edinmek için bakabilirsin.

     
    class Stack():
    def __init__(self):
    self.items=[]

    def isEmpty(self):
    return self.items==[]

    def push(self,item):
    self.items.append(item)

    def pop(self,n=None):
    if self.isEmpty():
    return None
    if n==None:
    return self.items.pop()
    else:
    return self.items.pop(n)

    def peek(self,n=None):
    if self.isEmpty():
    return None
    if n==None:
    return self.items[len(self.items)-1]
    else:
    return self.items[n]

    def size(self):
    return len(self.items)

    def show(self, title=""):
    print title,
    for i in self.items:
    print i,
    print


    def postfixEval(postfixExpr):

    operandStack = Stack()

    tokenList = postfixExpr.split()

    for token in tokenList:
    if token in "0123456789":
    operandStack.push(int(token))
    else:
    operand2 = operandStack.pop()
    operand1 = operandStack.pop()
    result = doMath(token,operand1,operand2)
    operandStack.push(result)

    return operandStack.pop()

    def doMath(op, op1, op2):
    if op == "*":
    return op1 * op2
    else:
    if op == "/":
    return op1 / op2
    else:
    if op == "+":
    return op1 + op2
    else:
    return op1 - op2




  • integera atadığımız sayıyı geçersiz kılıp tekrar scanf ile değer almak için ne önerirsiniz ?

    bir menü yazıyorum c ile 0 1 2 3 4 den birini girecek kullanıcı switch case kullanıyorum. default içine goto ile döndürme yapıyorum ama sürekli yazıyor çünkü en başta girilen değeri silmeden o satıra geliyor ne önerirsiniz?
  • quote:

    Orijinalden alıntı: hayvan arkadas

    integera atadığımız sayıyı geçersiz kılıp tekrar scanf ile değer almak için ne önerirsiniz ?

    bir menü yazıyorum c ile 0 1 2 3 4 den birini girecek kullanıcı switch case kullanıyorum. default içine goto ile döndürme yapıyorum ama sürekli yazıyor çünkü en başta girilen değeri silmeden o satıra geliyor ne önerirsiniz?

    Oncelikle goto kullanmayin, 1970 yilindan once kullanilan birsey o.

    Onun yerine while kullan.

    Atiyorum
    char girdi;
    while(1) {
    girdi = getchar();
    //Switch burda

    if (girdi == CIKIS) { break;}
    }

    CIKIS ile bahsettigim cikis yapilcak girdi yani atiyorum 0 ile cikis yapiyorsan '0' yazmalisin.
  • quote:

    Orijinalden alıntı: ThisisaNightmare

    quote:

    Orijinalden alıntı: hayvan arkadas

    integera atadığımız sayıyı geçersiz kılıp tekrar scanf ile değer almak için ne önerirsiniz ?

    bir menü yazıyorum c ile 0 1 2 3 4 den birini girecek kullanıcı switch case kullanıyorum. default içine goto ile döndürme yapıyorum ama sürekli yazıyor çünkü en başta girilen değeri silmeden o satıra geliyor ne önerirsiniz?

    Oncelikle goto kullanmayin, 1970 yilindan once kullanilan birsey o.

    Onun yerine while kullan.

    Atiyorum
    char girdi;
    while(1) {
    girdi = getchar();
    //Switch burda

    if (girdi == CIKIS) { break;}
    }

    CIKIS ile bahsettigim cikis yapilcak girdi yani atiyorum 0 ile cikis yapiyorsan '0' yazmalisin.

    fflush() ile yaptim orayi ama su anda vaska bir sorunum var

    case icinde case yazarak yes or no y/n ile cikis veya devam etme yapmam lazim yes dersem cikacak no dersem goto ile donecek, goto yerine naparim burda

    case icinde case surekli hata veriyor


    mobilim yarin detaylica sorucam sagolun

    < Bu ileti mobil sürüm kullanılarak atıldı >




  • quote:

    Orijinalden alıntı: hayvan arkadas


    quote:

    Orijinalden alıntı: ThisisaNightmare

    quote:

    Orijinalden alıntı: hayvan arkadas

    integera atadığımız sayıyı geçersiz kılıp tekrar scanf ile değer almak için ne önerirsiniz ?

    bir menü yazıyorum c ile 0 1 2 3 4 den birini girecek kullanıcı switch case kullanıyorum. default içine goto ile döndürme yapıyorum ama sürekli yazıyor çünkü en başta girilen değeri silmeden o satıra geliyor ne önerirsiniz?

    Oncelikle goto kullanmayin, 1970 yilindan once kullanilan birsey o.

    Onun yerine while kullan.

    Atiyorum
    char girdi;
    while(1) {
    girdi = getchar();
    //Switch burda

    if (girdi == CIKIS) { break;}
    }

    CIKIS ile bahsettigim cikis yapilcak girdi yani atiyorum 0 ile cikis yapiyorsan '0' yazmalisin.

    fflush() ile yaptim orayi ama su anda vaska bir sorunum var

    case icinde case yazarak yes or no y/n ile cikis veya devam etme yapmam lazim yes dersem cikacak no dersem goto ile donecek, goto yerine naparim burda

    case icinde case surekli hata veriyor


    mobilim yarin detaylica sorucam sagolun

    Ilk mesajimda yazdigim gibi, goto yerine while loop kullanabilirsin.

    case icinde case yazilmaz. Switch kullaniyorsan caseler sade birsey olmali. Eger sade degilse, if else vs kullanmalisin.




  • ThisisaNightmare T kullanıcısına yanıt
    goto hala kullanılıyor, ve kullanılması gereken yerde sırf kulaktan doğma "goto kullanmayın" dendiği için kullanmamak saçma.
    Tamam mümkün olduğunca kullanmamak gerekir ama "goto kullanmayin, 1970 lerden önce kullanılan birşey" demek de yanlış.

    for (;;)
    for (;;)
    for(;;)
    if (....)
    break; // Bütün döngülerden çıkmak istiyorum. Bir sürü flag mi tutacağım?


    if (p1 = malloc...) {
    ...
    if (p2 = malloc...)
    goto BIR;
    if (p3 = malloc...)
    goto IKI;
    if (p4 = malloc...)
    goto UC;
    .
    .
    .
    //en son yer tahsisi başarısız olursa öncekileri free etmek gerekir. Tipik go to nun kullanıldığı durumlardan bir başkası.

    UC:
    free p3;
    IKI:
    free p2;
    BIR:
    free p1;



    < Bu mesaj bu kişi tarafından değiştirildi 4kalan -- 11 Aralık 2013; 13:26:07 >
  • quote:

    Orijinalden alıntı: m3RsiN´´

    quote:

    Orijinalden alıntı: -Source-

    quote:

    Orijinalden alıntı: m3RsiN´´

    Arkadaslar ben su anda yurd disinda okuyorum ve grafik programlama dersinden donem odevi aldim. Benden istenilen

    C++ ta basit bir kus cizip bu kus u ekranda capraz sekilde sag ust koseden sol atl koseye dogru gidip gelmesi..

    Yardimci olabilcek arkadaslar bi yonlendirme yaparsa sevinirm cunku anlayamiyorum dersleri ve nasil yapicagim konusunda bi fikrim yok...

    Grafik programlama için hangi api kullanıyorsunuz OpenGL mi? Direct3D mi?
    Kuş 2d sprite mı olacak yoksa 3d model mi?

    Soru sorarken lütfen tüm ayrıntıları yazın tekrar sormak zorunda kalmayalım. Burada soru soranların çoğu aynı şeyi yapıyor yarım yamalak soru sorup cevap bekliyorlar.

    Dev C grafik kutuphanesi ile yaziyoruz 2d olucak OpenGL Kusuruma bakmayin ilk kez bi soru soruyorum.. Tekrar tesekkurler

    Yardim edebilcek yol gosterebilicek kimse yok mu arkadaslar ?




  • goto hala kullanılıyor olabilir ama bu hatalı olduğu gerçeğini değiştirmez. Çok ilkel kodlarda kullanılmış ve günümüze kadar gelmiş ama şu anda tam bir acemi işi goto.

    O içiçe for örneğinde o kısmın ayrı bir işlem olduğu ve başka bir fonksiyona taşınması gerektiği anlaşılıyor. Yani çıkma işini return ile yapacaksın.
    Bellek tahsisi olayında da eminim daha iyi yöntemler bulunur. Tabi isteyen kullansın ama ben her zaman alternatif yöntemlerden yanayım.
  • Vandenesse V kullanıcısına yanıt
    goto kullanmanın hata olduğunu düşünmüyorum. Yeni yazılan kodlarda da gördüm eskilerde de. Başka örnekler verilebilir ama yazdığım örneklere cevap verdiğiniz için bana da söz hakkı doğdu
    Döngülerde ayrı bir işlem olsa bile döngü çıkışında başka işlemler yapılabilir, ayrı fonksiyona taşınmayabilir... gibi gibi

    Tekrar söylemek gerekir örneklerden de anlaşılacağı gibi kullanımı kısıtlı ama kullanılmasının tavsiye edildiği ya da okunabilirlik açısından yanlış kabul edilmediği yerler de var.
    Kullanmamak gerekir ama kullanılmasının gerektiği yerlerde de kullanmamak bana göre yanlış.



    < Bu mesaj bu kişi tarafından değiştirildi 4kalan -- 11 Aralık 2013; 14:21:20 >
  • quote:

    Orijinalden alıntı: 4kalan

    goto hala kullanılıyor, ve kullanılması gereken yerde sırf kulaktan doğma "goto kullanmayın" dendiği için kullanmamak saçma.
    Tamam mümkün olduğunca kullanmamak gerekir ama "goto kullanmayin, 1970 lerden önce kullanılan birşey" demek de yanlış.

    for (;;)
    for (;;)
    for(;;)
    if (....)
    break; // Bütün döngülerden çıkmak istiyorum. Bir sürü flag mi tutacağım?


    if (p1 = malloc...) {
    ...
    if (p2 = malloc...)
    goto BIR;
    if (p3 = malloc...)
    goto IKI;
    if (p4 = malloc...)
    goto UC;
    .
    .
    .
    //en son yer tahsisi başarısız olursa öncekileri free etmek gerekir. Tipik go to nun kullanıldığı durumlardan bir başkası.

    UC:
    free p3;
    IKI:
    free p2;
    BIR:
    free p1;



    for (;;) 
    for (;;)
    for(;;)
    if (....)
    break; // Bütün döngülerden çıkmak istiyorum. Bir sürü flag mi tutacağım?


    Hayir, hatta bazi kod style larinda break bile yasak olabilir. Ben her zaman sunu yaparim:

    for (i=0;i<5;i++) 
    for (j=0;j<10;j++)
    for(k=10;k>0;k--)
    if (....)
    i=5;j=10;k=0


    gordugun gibi flaga falan gerek yok, e kodun geri kalaninin calismasini istemiyorum dersen ardina bir tane else koyarsin olur biter.

    Ikinci ornegini tam anlamadim, if in icindeki malloc hata donerse, geriden mi free ederiz mantigi var? Eger durum boyleyse bunlari en basitinden bir arrayde tutup en son eklenenden geriye free ederiz(aklima ilk gelen bu)




  • ThisisaNightmare T kullanıcısına yanıt
    Yazdıklarınız doğru ama zaten bildiğiniz gibi birşey in programlama da tek yöntemi yok, birden fazla seçenekle yapılabilir, benim de demek istediğim özel bir neden (mesela bazı code stillerinde yasak demişsiniz, burda kullanmazsınız) yoksa goto okunabilirliği bozar ama "kodumda hiç goto kullanmayacağım" diye düşünmekte biraz yanlış geliyor bana. Belirli yerlerde kullanılır.



    < Bu mesaj bu kişi tarafından değiştirildi 4kalan -- 11 Aralık 2013; 17:36:35 >
  • Arkadaşlar aşağıdaki ufak eurodan tlye tlden euroya dönüştüren program çalışıyor tek bir sorunla oda işlemleri yaptıktan sonra en son siyah ekranda değerler çıkar çıkarmaz kapanıyor direk kapanmaması için kullanılan kod cin.get(); değilmiydi teşekkürler şimdiden

    #include <iostream>
    #include <iomanip>
    #include "locale.h"

    using namespace std;

    int main()
    {
    double a=0,b=0;
    setlocale(LC_ALL,"turkish");
    cout<<"liradan Euroya dönüştürülecek sayıyı girin";
    cin>>a;
    double c=a/2.79;
    cout<<a<<' '<<"lira"<<' '<<c<<' '<<"Euro eder"<<endl<<endl;
    cout<<"Eurodan Liraya dönüştürülecek sayıyı girin : ";
    cin>>b;
    double d=b*2.79;
    cout<<b<<' '<<"Euro"<<' '<<d<<' '<<"Lira eder";
    cin.get();
    return 0;
    }




  • programlama konusunda acemiyim. yaptığım bazı programlarda switch döngüsünün seçim değişkenine, kullanıcı birden fazla kez aynı karakteri girse dahi çalışsın istiyorum. bu bir hata mesajı da olabilir. fakat beceremedim bir türlü.
    yani aslında 5+5 yazınca =10 yazan program 5+++5 yazınca sonsuz döngüye girmesin, hatalı girdin arkadaşım desin ve olayı tekrar başa alsın istiyorum. Bu şekilde bir taşma durumunda ne yapabilirim? veya bir reset komutu verebilir miyim? birçok şey denedim çözemedim.
    //örnek kod: 
    #include<iostream>
    using namespace std;
    int main(){
    cout << "isleminizi yaziniz:\n";
    for(;;)//ana döngü
    {
    double x,z;
    char y;
    cout<<endl;
    cin >> x;//1. sayı
    cin >> y;//işlem
    cin >> z;//2. sayı

    switch(y){
    case'+': cout << "=" << x+z; break;
    case'-': cout << "=" << x-z; break;
    case'x':
    case'*': cout << "=" << x*z; break;
    case'/': cout << "=" << x/z; break;
    default: cout<<"hata."; break;
    }//end switch
    }//end for
    }//end main


    program üzerinden açıklarsanız daha iyi anlarım. teşekküreler




  • 4kalan kullanıcısına yanıt
    İyi günler. Goto komutu ile ilgili ödevim var ama pek bilgim yok. Goto işlevini gören farklı yöntemler oldugu için pek kaynakta edinemedim. Acaba kullanımı hakkında bilgi verir misiniz?
    Ödevim şu:
    1- Klavyeden girilen 10 sayının toplamını ve ortalamasını bulan program + akış diyagramı…
    2- 1-50 arasındaki tek sayıları ekrana listeleyen ve toplamını bulan program + akış diyagramı…
    Ödevin çözümünü istemiyorum. Sadece çözümünde katkısı olacak goto komutu hakkında bilgi. Goto komutunu kullnarak belirli sayıda sayı girmeyi beceremiyorum. Hep sonsuz oluyor. Yardımcı olursanız çok iyi olur. Şimdiden teşekkürler.
  • madiba072 M kullanıcısına yanıt
    Yanlış anlaşılma volume 1

    goto kullanmayacaksınız döngülerden yararlanacaksınız.
    1 - 50 arasındaki tek sayılar.

    for (i = 1; i < 50; i += 2)
    printf("%d ", i);

    gibi
  • mhk_mhk kullanıcısına yanıt
    switch i döngü içine alırsınız. Gerekli koşullara bakarsınız ona göre çıkmak istediğinizde break; dersiniz.
  • 
Sayfa: önceki 121122123124125
Sayfaya Git
Git
sonraki
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.