Arama butonu
Bu konudaki kullanıcılar: 2 misafir
42
Cevap
49108
Tıklama
0
Öne Çıkarma
Cevap: Temel Algoritma Bilgisi ve Programlamaya Giriş (2. sayfa)
A
13 yıl
Er

A
13 yıl
Er

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


Bu mesaja 1 cevap geldi.
S
13 yıl
Binbaşı

quote:

Orijinalden alıntı: anılmrt

nereye ekledınız

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


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

siz cevaplarmısınız o zaman .



C
13 yıl
Yüzbaşı

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;
}



B
13 yıl
Teğmen
Konu Sahibi

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.


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

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ı?


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

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 ?


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

hocam yavas yavas hareketlendirebiliriz demissiniz yardımcı olursanız sevinirim ..


Bu mesaja 1 cevap geldi.
B
13 yıl
Teğmen
Konu Sahibi

 
#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;
}



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

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 ?


Bu mesaja 1 cevap geldi.
B
13 yıl
Teğmen
Konu Sahibi

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.


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

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 ..


Bu mesaja 1 cevap geldi.
B
13 yıl
Teğmen
Konu Sahibi

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.


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

#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 .


Bu mesaja 1 cevap geldi.
B
13 yıl
Teğmen
Konu Sahibi

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


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

oleyyy çalıstıı çok tesekür ederim..



O
13 yıl
Binbaşı

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



< Bu ileti mobil sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
B
13 yıl
Teğmen
Konu Sahibi

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



O
13 yıl
Binbaşı

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.


Bu mesaja 1 cevap geldi.