bu soru ne demek istiyor??? (c)

sakin_insan
09-11-2007, 17:48   |  #1  
OP Yıllanmış Üye
Teşekkür Sayısı: 0
508 mesaj
Kayıt Tarihi:Kayıt: Oca 2007

aşağıdaki sorunun tam olarak ne demek istediğini anlatırmısınız???
yani hangi bilgilaeri kullanıcıdan alıcam, yoksa bilgisayarmı random sayilar üretecek en mi onları saate çevireceğim??

saati,üç argümanla(saat, dakida ve saniye) alan ve saat 12 den girilen saate kadar geçen zamanı saniye cinsinden hesaplayıp döndüren bir program yazınız. Daha sonra bu fonksiyonu kullanarak girilen iki saat arasındaki farkı 12'lik saat dilimine göre hesaplayan bir program yazınız.


bu programın kodlarını İSTEMİYORUM....
sadece farkı bulacağım iki saati de kullanıcı mı girecek yok sa birini bilgisayar random mı üretecek, ya da bilgisayarın o anki saatini mi kullanacağız???

bunu anlatabilir misiniz???

genesis
10-11-2007, 01:32   |  #2  
Yeni Üye
Teşekkür Sayısı: 0
36 mesaj
Kayıt Tarihi:Kayıt: Ağu 2006

sen sadece bu işi yapan fonksiyonu yaz bence. yani o argümanları kullanıcıdan alman ya da random üretmen arasında fark yok. burda önemli olan böyle bir fonksiyonu yazabiliyor olmak. yani soru verilerin nerden geleceği üzerinde durmamış ama yine de dışardan almak mantıklı. işini kolaylaştırırsın. dediğim gibi burda fonk u yazabilmek ve işlemi tamamlayabilmek daha önemli tutulmuş verilerin nerden geleceği değil. bu bi görüş tabii ki..

sakin_insan
10-11-2007, 13:23   |  #3  
OP Yıllanmış Üye
Teşekkür Sayısı: 0
508 mesaj
Kayıt Tarihi:Kayıt: Oca 2007

ya ödev olmasa ben kullanıcıdan alacam tüm girdileri ama ödev olunca işler değişiyor. sadece programın çalışıyor ve işi yapıyor olması yetmiyor. soruyu aynen yansıtması hatta biraz daha gelişmiş olması gerekiyor...

genesis
10-11-2007, 13:35   |  #4  
Yeni Üye
Teşekkür Sayısı: 0
36 mesaj
Kayıt Tarihi:Kayıt: Ağu 2006

ben hala girilen gibi bir ifade de kullandıldığı için ve aksi de belirtilmediği için kullanıcıdan alınması taraftarıyım bu soruda :) ama en güzeli git sor hocalarına :) madem böyle bi çelişkide kalıyosun...

sakin_insan
10-11-2007, 14:18   |  #5  
OP Yıllanmış Üye
Teşekkür Sayısı: 0
508 mesaj
Kayıt Tarihi:Kayıt: Oca 2007

şöyle yazmaya karar verdim;
bi fonksiyon yazacağım, 00.00.00 ile 12 arasında girilen bir saatin 00.00.00 ile arasındaki saniye farkını geri döndürecek,

bu fonksiyonu kullanarak girilen iki saat arasındaki farkı (saniye olarak ) bulan programı yazacağım..

değilmi????

(aynı soruyla karşılaşanlar olursa yardımcı olsun diye yazdım.)

ama  
şimdi 12lik sistemde saat kullanıyoruzya, girilen saatin öğleden sonra ya da sabah olmasını hesaba katmayacağım soru ne derse desin....

genesis
10-11-2007, 19:48   |  #6  
Yeni Üye
Teşekkür Sayısı: 0
36 mesaj
Kayıt Tarihi:Kayıt: Ağu 2006

evet ve şöle bişi var.. çıkarma işlemine gerek olmayacağı için direkt olarak verilan saati 60,3600 değerleriyle çarpıp saniye bulunabilir galba :) bi de çıkarma işlemi de zaten saniyeler arasında olcak. çünkü fonk saniye döndürecek. sonra sen 60 ve 3600 e böleceksin çıkanı saat formatına uyduracaksın.
ve evet öğleden sonra da öğleden önce farketmemesi lazım teoride... :)

sakin_insan
15-11-2007, 19:58   |  #7  
OP Yıllanmış Üye
Teşekkür Sayısı: 0
508 mesaj
Kayıt Tarihi:Kayıt: Oca 2007

soruyu sordum yukarıda, örnek olsun diye cevabıda yazıyorum;
#include<stdio.h>
#include<conio.h>
#include<math.h>

int sifir_saat_farki(int,int,int);
double saat_saat_farki(int,int,int,int,int,int);

int main()
{
    int secim,saat,dakika,saniye,saat2,dakika2,saniye2;
    printf("\tSaatlerin arasindaki saat farkini bulma\n\n");
    printf("1. 00.00.00 ile girilen saat arasindaki saniye farkini bulmak\n");
    printf("2. Girilen iki saat arasindaki farki bulmak\n\n");
    printf("UYARI=Girilen saat 12 lik saat sistemine gore olmalidir...\n\n");
    printf("Seciminizi yapiniz(1,2);\n");
    scanf("%d",&secim);
    switch(secim){
        case 1:
             printf("Saati giriniz(saat,dakika,saniye):");
             scanf("%d%d%d",&saat,&dakika,&saniye);
             printf("00.00.00 ile %d.%d.%d arasindaki saat farki %d saniyedir.",saat,dakika,saniye,sifir_saat_farki(saat,dakika,saniye));
             break;
        case 2:
             printf("\n1.Saati giriniz(saat,dakika,saniye):");
             scanf("%d%d%d",&saat,&dakika,&saniye);
             printf("\n2.Saati giriniz(saat,dakika,saniye):");
             scanf("%d%d%d",&saat2,&dakika2,&saniye2);
             printf("\nIki saat arasindaki fark %.0lf saniyedir.",saat_saat_farki(saat,dakika,saniye,saat2,dakika2,saniye2));
             break;   
    }        
    getch();
    return 0;
}

int sifir_saat_farki(int saat,int dakika,int saniye)
{
    if(saat>12 || dakika>60 || saniye>60 || saat<0 || dakika<0 || saniye<0){
               printf("\n\nyanlis saat degeri!!\n\n");
               return 0;
    }
     return (saat*3600)+(dakika*60)+saniye;
}

double saat_saat_farki(int saat,int dakika,int saniye,int saat2,int dakika2, int saniye2)
{
    if(saat>12 || dakika>60 || saniye>60 || saat2>12 || dakika2>60 || saniye2>60){
               printf("\n\nyanlis saat degeri!!\n\n");
               return 0;
    }
    printf("\n\ngirilen iki saat arasi fark %.0f.%.0f.%.0f\n",fabs(saat-saat2),fabs(dakika-dakika2),fabs(saniye-saniye2));
    return fabs(saat-saat2)*3600+fabs(dakika-dakika2)*60+fabs(saniye-saniye2);
}

okan_balci
26-11-2017, 16:13   |  #8  
Taze Üye
Teşekkür Sayısı: 0
1 mesaj
Kayıt Tarihi:Kayıt: Kas 2017

sorunu çözebildinizmi?