Şimdi Ara

Temel Algoritma Bilgisi ve Programlamaya Giriş (2. sayfa)

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
43
Cevap
5
Favori
48.989
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: önceki 123
Sayfaya Git
Git
sonraki
Giriş
Mesaj
  • nereye ekledınız
  • bu sorunun cevabını arıyorum yardımcı olurmusunuz.ekledıklerınız arasında var gozukuyor.

    Bir odada bulunan kişi sayısına göre, odadaki herhangi iki kişinin doğum günlerinin aynı olma ihtimali aşağıdaki gibi hesaplanır:

    N = odadaki kişi sayısı olmak üzere

    Olasılık =1-(365/366)*(364/366)*(363/366)*.....*(366-N+1)/366

    Klavyeden girilen kişi sayısına göre olasılığı hesaplayıp ekrana yazdıran bir C programı geliştiriniz
  • quote:

    Orijinalden alıntı: anılmrt

    nereye ekledınız

    10-15 sene daha beklerseniz belki koyar. O zaman bir daha sorun.
  • siz cevaplarmısınız o zaman .
  • quote:

    Orijinalden alıntı: anılmrt

    bu sorunun cevabını arıyorum yardımcı olurmusunuz.ekledıklerınız arasında var gozukuyor.

    Bir odada bulunan kişi sayısına göre, odadaki herhangi iki kişinin doğum günlerinin aynı olma ihtimali aşağıdaki gibi hesaplanır:

    N = odadaki kişi sayısı olmak üzere

    Olasılık =1-(365/366)*(364/366)*(363/366)*.....*(366-N+1)/366

    Klavyeden girilen kişi sayısına göre olasılığı hesaplayıp ekrana yazdıran bir C programı geliştiriniz




    Sağlamasını yapmadım ama doğru sonuçtur umarım. 99 dan fazla kişi varsa olasılık 1 oluyordu o yüzden eğer sayi 99 dan büyükse hiç hesaplamadan cevabı yazıyor.
     
    #include <stdio.h>

    int main()
    {
    int n;
    double o = 1, i = 365;

    while (1)
    {
    printf("Kisi sayisini girin: ");
    scanf("%d", &n);
    if(n > 99)
    {
    printf("\nOlasilik = 1\n");
    return 0;
    }
    else if(n > 1) break;
    printf("hata: kisi sayisi 1 den buyuk bir tam sayi olmalidir.\n\n");
    }

    n = 367 - n;
    while (i > n) o *= (i-- / 366);
    o = 1 - o;

    printf("\nOlasilik = %f\n", o);

    return 0;
    }




  • quote:

    Orijinalden alıntı: strahd_von_zarovich

    quote:

    Orijinalden alıntı: anılmrt

    nereye ekledınız

    10-15 sene daha beklerseniz belki koyar. O zaman bir daha sorun.

    Arkadaşlar bahsedilen kısım yukarıda var. Konu bütünlüğünün bozulmaması açısından ilk yazılan 5-6 mesajı düzeltme amaçlı olarak kendime ayırmıştım.
    Yeteri kadar ilgi olmadığını görünce bu kısımda paylaşım yapmayı bırakmıştım. Ama yavaş yavaş hareketlendirebiliriz isterseniz.
  • program için çok tesekür ederim . eğer 99 dan büyük girerse kullanıcı bunun için düşündüğünüz baska bir algoritma yapısı war mı?
  • Klavyeden sıfır (0) girilene kadar okunan her sayısının tersini ekrana yazan bir C programı geliştiriniz.
    NOT: Girilen sayıların basamak sayıları farklı olabilir! İç-içe döngü kullanmak zorunludur!

    Örnek Çıktı:
    Bir sayı giriniz (Çıkmak için 0 giriniz): 172
    Sayının tersi = 271
    Bir sayı giriniz (Çıkmak için 0 giriniz): 6721
    Sayının tersi = 1276
    Bir sayı giriniz (Çıkmak için 0 giriniz): -83
    Sayının tersi = -38
    Bir sayı giriniz (Çıkmak için 0 giriniz): 0
    Program sonlandı!

    bu program hakkında da bana yardım edebilir misiniz ?
  • hocam yavas yavas hareketlendirebiliriz demissiniz yardımcı olursanız sevinirim ..
  •  
    #include <cstdlib>
    #include <iostream>

    using namespace std;

    int main(int argc, char *argv[])
    {
    int sayi;

    while (true)
    {
    cout << "Lutfen bir sayi giriniz: ";
    cin >> sayi;

    if (sayi == 0)
    break;

    int sayininTersi = 0;

    while (sayi != 0)
    {
    if (sayininTersi != 0)
    sayininTersi *= 10;
    sayininTersi += sayi % 10;
    sayi /= 10;
    }

    if (sayi < 0)
    sayininTersi *= -1;

    cout << "Sayının tersi: " << sayininTersi << endl;
    }

    system("PAUSE");
    return EXIT_SUCCESS;
    }

  • hocam siz bunu sanırım c++ ile yazmıssınız ben çok fazla bilmiyorum daha c diline yeni basladım .bu programı c dili ile yazmam mümkün mü .orada bazı terimlerin c dilindeki karsılıklarına baktım çalıştırmayı denedim ama olmuyo .bu konuda bana bir yol gösterebilir misiniz ?
  • cout << "Lutfen bir sayi giriniz: ";
    cin >> sayi

    yerine

    print("Lütfen bir sayi giriniz");
    scanf("%d", &sayi);

    yeterli olur

    tabi baş tarafa include <stdio.h> vb. eklemen gerekiyor. birde sonda return EXIT_SUCCESS; bunun yerine return 0; yazman gerekiyor. EXIT_SUCCESS c de yoktu herhalde.
    çoktandır c/c++ da kod yazmıyorum. biraz unutmuşum.
  • tesekür ederim dediğiniz gibi yazdım program çalışıyor ama sayıların tersini vermiyor tekrar kullanıcıdan sayı istiyor.. genede ilginizden dolayı tekrar tesekür ederim ..
  • quote:

    Orijinalden alıntı: anılmrt

    tesekür ederim dediğiniz gibi yazdım program çalışıyor ama sayıların tersini vermiyor tekrar kullanıcıdan sayı istiyor.. genede ilginizden dolayı tekrar tesekür ederim ..

    alttaki cout kısmını da printf ile yazdırman gerekiyor belki onu düzeltmemişsindir

    yani

    cout << "Sayının tersi: " << sayininTersi << endl;

    yerine

    printf("Sayinin tersi: %d", sayininTersi);

    şeklinde yazdırman gerekiyor.

    sorularda C kullanacaksan en azından printf ve scanf fonksiyonlarının kullanımını öğrenmen gerekiyor. C++ da %d, %f gibi kullanımlar gerekmediğinden daha kolay olur diye kullandım.
  • #include <stdio.h>



    int main( )
    {
    int sayi;

    while (1)
    {
    printf( "Lutfen bir sayi giriniz:");
    scanf("%d",&sayi);

    if (sayi == 0)
    break;

    int sayininTersi = 0;

    while (sayi != 0)
    {
    if (sayininTersi != 0)
    sayininTersi *= 10;
    sayininTersi += sayi % 10;
    sayi /= 10;
    }

    if (sayi < 0)
    sayininTersi *= -1;

    printf( "Sayının tersi: ",sayininTersi);
    }

    system("PAUSE");
    return 0;
    }




    bu şekilde yazdım programda sorun yok çalışıyor ama tersini vermiyor .sürekli kullanıcıdan sayi istiyor .
  • printf( "Sayının tersi: %d \n", sayininTersi);

    printf de %d kısmını unutmuşsun birde \n koyduğun zaman bir alt satıra geçirir. program çıktısını daha rahat okuyabilirsin
  • oleyyy çalıstıı çok tesekür ederim..
  • Bu sayının tersini yazma mantığı nasıl oluyor. ?Pythonda yapmayı deniyecem .

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

    Orijinalden alıntı: OMéR

    Bu sayının tersini yazma mantığı nasıl oluyor. ?Pythonda yapmayı deniyecem .

    örneğin elimide 123 sayısı var bu sayının 10 göre modunu alırsan 3 ü elde edersin. sonrasında bu sayıyı 10'a bölersen elinde 12 sayısı kalır. aynı şekilde bununda 10' a göre modunu alırsan 2 yi elde edersin ve sonrada aynı şekilde 1 i elde edersin.

    sırası ile elinde 3 2 ve 1 numaraları var.
    sayının tersi ilk başta 0 olmalı
    her ekleyeceğn numara sayının değerini hem kendi değeri kadar arttırır sonrasında da 10 katına çıkarır.
    (bu arada if (sayininTersi != 0) kısmı fazla olmuş gibi görünüyor yazdığım kodda :)) )
    sayinin tersi:0
    3 elde edildi
    0*10 = 0, 0+3=3
    sayinin tersi:3
    2 elde edildi
    3*10 = 30, 30+2=32
    sayinin tersi: 32
    1 elde edildi
    32*10=320, 320+1=321
    sayini tersi: 321




  • Hocam oldukça amatörüm Üstte dediklerinizin karşılığı altta nasıl oluyor kavrayamadım. Yardımcı olabilir misiniz?
    if (sayi == 0)
    break; int sayininTersi = 0; while (sayi != 0)
    {
    if (sayininTersi != 0)
    sayininTersi *= 10;
    sayininTersi += sayi % 10;
    sayi /= 10; } if (sayi < 0)
    sayininTersi *= -1;

    Kodların yanına # ile açıklama yaparsanız sevinirim.
  • 
Sayfa: önceki 123
Sayfaya Git
Git
sonraki
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.