folder Tahribat.com Forumları
linefolder C - C++
linefolder Sayısı Belli Olmayan İnput Almak ??



Sayısı Belli Olmayan İnput Almak ??

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    uLtRaLoVeR
    uLtRaLoVeR's avatar
    Kayıt Tarihi: 25/Haziran/2007
    Erkek

    Ödev için 4 fonksiyon yapmam gerekiyor bu fonksiyonların çağrılması için de kullancının bilgi vermesi gerekiyor.
    fonksiyonlardan üçü

    operator sayı

    şeklinde çağrılıyor. Bir tanesi ise

    operator sayı sayı

    şeklinde. bu inputu nasıl alabilirim. yani hepsini tek satırda verecekler arada boşlukla. dolayısıyla hangi şu operatorse 2 say al diyemiyorum. aklıma da başka birşey gelmiyor.

     

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SerYolcu
    SerYolcu's avatar
    Kayıt Tarihi: 14/Ocak/2010
    Erkek

    Girilen sayıları bir Array ile dizilere atmak çözüm olabilir...


    Ondan çocuk olmamıştır (Kimsenin babası değildir). Kendisi de doğmamıştır (kimsenin çocuğu değildir). İhlas Suresi 3 üncü ayette bunlar yazar.
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    uLtRaLoVeR
    uLtRaLoVeR's avatar
    Kayıt Tarihi: 25/Haziran/2007
    Erkek

    SerYolcu bunu yazdı:
    -----------------------------

    Girilen sayıları bir Array ile dizilere atmak çözüm olabilir...


    -----------------------------

     

    Hocam düşünemedim şimdi :S

    Eğer müsaitsen scanf ile bir yazabilir misin?

  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SinusX
    SinusX's avatar
    Kayıt Tarihi: 14/Aralık/2010
    Erkek

    Şimdi sonsuz döngüyle alırsın belirsiz girişi ama operator kısmını anlamadım mesela

     

    for(;;)

    {

    scanf("%d",&a);

    if(a==0)

         break;

    }

     

    Şeklinde ama operator kısmını biraz daha açarsan pek bişey anlayamadım çünkü :)

     

    topla 2 3

    kareal 4

    gibi mi ?


    Si vis pacem para bellum.
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    uLtRaLoVeR
    uLtRaLoVeR's avatar
    Kayıt Tarihi: 25/Haziran/2007
    Erkek

    SinusX bunu yazdı:
    -----------------------------

    Şimdi sonsuz döngüyle alırsın belirsiz girişi ama operator kısmını anlamadım mesela

     

    for(;;)

    {

    scanf("%d",&a);

    if(a==0)

         break;

    }

     

    Şeklinde ama operator kısmını biraz daha açarsan pek bişey anlayamadım çünkü :)

     

    topla 2 3

    kareal 4

    gibi mi ?


    -----------------------------

    tam olarak aynısı hocam

    4 operator var A,I,P,S

    biri mantıksal And yapıyor inputlar üzerinde A 1.sayi 2.sayi şeklinde input var

    Diğerleri Print Bitwise shift ve binary inverse operatorleri bunları kendimiz tanımlayarak yapmamız ya da uzun bi inputta gezerek hazır tanımlıları tektek uygulamamız isteniyor. Dolayısıyla ben de fonksiyon yaptım hepsini. A 1. 2. deyince and fonksiyonunu P 1. deyince print fonksiyonunu I 1. deyince inverse fonksiyonunu çağıracağım ama dediğim gibi hangi operatoru vereceği belli olmadığı için scanf'le hepsini ayrı değişkenlere alamıyorum

  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    wasd
    wasd's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    Hesap makinelerindeki gibi mi? Yani sen bir işlem yapıyorsun sonra adam bunla şunu topla diyor sonra birde çarpma ekliyor gibimi?

    Tek bir fonksiyona sonsuz input nasıl yapılır bilmem ama overloadin ile atıyorum 1taneden 100taneye kadar input girilmesini sağlayabilirsin ki aynı fonksiyonu 100defa yazmak işkence :D vardır kısa bi yolu araştır...

     

    Eğer istediğin bankamatiklerdeki gibi "başka işlem yapacakmısınız" gibi birşey ise o zamanda yapacağın tek şey do while :) bi çıkış karakteri belirleyeceksin,kullanıcıya sorcaksın devam etmek için e çıkmak için h ye basın diye adam h girmedikçe döngün işlem yapıcak bu kadar basit.


    :)
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    uLtRaLoVeR
    uLtRaLoVeR's avatar
    Kayıt Tarihi: 25/Haziran/2007
    Erkek

    hocam örnek inputlar veriyorum ödev olduğu için ben ayarlayamıyorum inputlar şöyle.

     

    P 110011
    A 10110110101 0101011011010110001111
    I 101101
    S 101010101001011

    görüldüğü gibi P I ve S işlemleri tek bir operand alıyor ama A işlem 2 operand alıyor.
    Bu inputu bir şekilde işleyip P I S A ya göre farklı fonksiyon çağırmam ve yanındakileri argüman olarak vermem gerekiyor.
    scanf("%s %s %s", operator, arguman1, arguman2 );
    şeklinde alsam tek argümanlı işlemlerde ikinci argümanın girilmesini bekliyor.
    Tek argüman istesem 2.yi alamıyorum.
    bunu nasıl yapabilirim.
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Tugberk
    Tugberk's avatar
    Kayıt Tarihi: 04/Ekim/2009
    Erkek

    Yazdığı pm'e cevaben yazıyorum, açıkçası nerde takıldığını anlamadım, soruyu yanlıs mı anladım acaba diye düşünüyorum. 

    Operatoru scanf ile alacaksın, operatore göre alınacak parametreyi belirleyeceksin. 

    scanf(operator)

    if (operator)

    islem 1

    else if (operator)

    islem 2

    ...

    aşağıdaki kodu , topla 55 66, ya da kare 25 şeklinde girdi ile çalıştırabilirsin.

    #include <stdio.h>
    #include <string.h>
    
    int main()
    {
    	char op[16] = {0};
    	int s1, s2;
    	
    	scanf("%s", op);
    	
    	if (!strcmp("topla", op)) {
    		scanf("%d%d", &s1, &s2);
    		printf("Toplam : %d\n", s1 + s2);
    	}
    	else if (!strcmp("kare", op)) {
    		scanf("%d",&s1);
    		printf("Karesi : %d\n", s1 * s1);
    	}
    	else {
    		printf("Hatali operator\n");
    	}
    	
    	return 0;
    }
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    uLtRaLoVeR
    uLtRaLoVeR's avatar
    Kayıt Tarihi: 25/Haziran/2007
    Erkek

    Tugberk bunu yazdı:
    -----------------------------

    Yazdığı pm'e cevaben yazıyorum, açıkçası nerde takıldığını anlamadım, soruyu yanlıs mı anladım acaba diye düşünüyorum. 

    Operatoru scanf ile alacaksın, operatore göre alınacak parametreyi belirleyeceksin. 

    scanf(operator)

    if (operator)

    islem 1

    else if (operator)

    islem 2

    ...

    aşağıdaki kodu , topla 55 66, ya da kare 25 şeklinde girdi ile çalıştırabilirsin.

    #include 
    #include 
    
    int main()
    {
    	char op[16] = {0};
    	int s1, s2;
    	
    	scanf("%s", op);
    	
    	if (!strcmp("topla", op)) {
    		scanf("%d%d", &s1, &s2);
    		printf("Toplam : %d\n", s1 + s2);
    	}
    	else if (!strcmp("kare", op)) {
    		scanf("%d",&s1);
    		printf("Karesi : %d\n", s1 * s1);
    	}
    	else {
    		printf("Hatali operator\n");
    	}
    	
    	return 0;
    }


    -----------------------------

     

    Hocam önce operatoru alma şansım yok yani operator ve sayılar aynı satırda aralarında bir boşluk bırakılarak girilecek. Herşeyim tamam birtek inputu alamıyorum.

  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Tugberk
    Tugberk's avatar
    Kayıt Tarihi: 04/Ekim/2009
    Erkek

    uLtRaLoVeR bunu yazdı:
    -----------------------------

    Tugberk bunu yazdı:
    -----------------------------

    Yazdığı pm'e cevaben yazıyorum, açıkçası nerde takıldığını anlamadım, soruyu yanlıs mı anladım acaba diye düşünüyorum. 

    Operatoru scanf ile alacaksın, operatore göre alınacak parametreyi belirleyeceksin. 

    scanf(operator)

    if (operator)

    islem 1

    else if (operator)

    islem 2

    ...

    aşağıdaki kodu , topla 55 66, ya da kare 25 şeklinde girdi ile çalıştırabilirsin.

    #include 
    #include 
    
    int main()
    {
    	char op[16] = {0};
    	int s1, s2;
    	
    	scanf("%s", op);
    	
    	if (!strcmp("topla", op)) {
    		scanf("%d%d", &s1, &s2);
    		printf("Toplam : %d\n", s1 + s2);
    	}
    	else if (!strcmp("kare", op)) {
    		scanf("%d",&s1);
    		printf("Karesi : %d\n", s1 * s1);
    	}
    	else {
    		printf("Hatali operator\n");
    	}
    	
    	return 0;
    }


    -----------------------------

     

    Hocam önce operatoru alma şansım yok yani operator ve sayılar aynı satırda aralarında bir boşluk bırakılarak girilecek. Herşeyim tamam birtek inputu alamıyorum.


    -----------------------------

    hoca zaten aynı satırda alıyorsun bir deneseydin programı

Toplam Hit: 2418 Toplam Mesaj: 13