Kaç saniyedir yaşıyorsunuz? // C

Başlatan sem, 01 Temmuz 2010 - 02:46:16

« önceki - sonraki »

0 Üyeler ve 2 Ziyaretçi konuyu incelemekte.

sem

Kaç saniyedir yaşadığınızı gösteren program... Yaş sınırı 1950 diyelim... =)=)... Aylar 30 gün  olarak kabul edildi...
#include <stdio.h>
#include <time.h>
#include <stdlib.h>

int main()
{
   struct tm *bugun,dogum_gunu;
   unsigned long t,x1,x2,x3;
   char secim;
   int k;

   dogum_gunu.tm_sec  = 0;
   dogum_gunu.tm_min  = 0;
   dogum_gunu.tm_hour = 0;
   dogum_gunu.tm_mday = 0;
   dogum_gunu.tm_mon  = 0;
   dogum_gunu.tm_year = 0;

   while(1)
   {
      fprintf(stdout,"Doğdunuz saati biliyor musunuz?[e/h]");
      fscanf(stdin,"%c",&secim);
      if(isalpha(secim))
      {
         if(secim == 'h')
         {
            fprintf(stdout,"Doğdunuz saat,dakika ve saniye 0 olarak hesaplanacak. (00:00:00)\n");
            break;
         }
         if(secim == 'e')
         {
            fprintf(stdout,"Doğum saati (SS dd ss):");
            fscanf(stdin,"%d%d%d",&dogum_gunu.tm_hour, &dogum_gunu.tm_min, &dogum_gunu.tm_sec);
            break;
         }
         else
         {
            fprintf(stdout,"Yanlış bir seçim yaptınız. \'e\' ya da \'h\' tuşlarını kullanın");
            continue;
         }
      }
      else
      {
         fprintf(stdout,"Yanlış bir tuşa bastınız\n");
         continue;
      }
   }

   fprintf(stdout,"Doğum tarihinizi girin (gg aa yyyy):");
   fscanf(stdin,"%d%d%d",&dogum_gunu.tm_mday, &dogum_gunu.tm_mon, &dogum_gunu.tm_year);

   dogum_gunu.tm_min  *= 60;
   dogum_gunu.tm_hour *= 60*60;
   dogum_gunu.tm_mday *= 24*60*60;
   dogum_gunu.tm_mon  *= 30*24*60*60;


   t = time(NULL);
   bugun = localtime(&t);
   bugun->tm_year += 1900;


   bugun->tm_mon  += 1;
   bugun->tm_min  *= 60;
   bugun->tm_hour *= 60*60;
   bugun->tm_mday *= 24*60*60;
   bugun->tm_mon  *= 30*24*60*60;


   x1 = bugun->tm_sec + bugun->tm_min + bugun->tm_hour + bugun->tm_mday + bugun->tm_mon;
   x2 = dogum_gunu.tm_sec + dogum_gunu.tm_min + dogum_gunu.tm_hour + dogum_gunu.tm_mday + dogum_gunu.tm_mon;

   x3 = (bugun->tm_year - dogum_gunu.tm_year) * 12 * 30 * 24 * 60 * 60;
   x3 = x3 + (x1 - x2);



  for(k = 0;; ++k)
  {
     fprintf(stdout,"%ld\r", x3 + k);
     fflush(stdout);
     sleep(1);
  }


}

".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

eribol

- ile başlayan ve gittikçe azalan bir sayı var. Bu şekilde doğru mu acaba? Gittikçe artan pozitif bir sayı olması gerekiyor sanırım.

sem

@eribol, sanırım tarihi yanlış girdiniz? Dediğiniz gibi artan pozitif bir sayı olması lazım... Ben de öyle çıkıyor... Doğum tarihini ilerki bir şey girilmesi lazım öyle bir çıktı vermesi için?
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

eribol

Alıntı YapDoğum tarihinizi girin (gg aa yyyy):23 04 1982
-418165507
Bu şekilde yanlış girmiş olmuyorum sanırım ama çıktı böyle. Gittikçe azalan bir sayı.

sem

Doğum tarihinizi girin (gg aa yyyy):25 03 1986
754805343


Çok ilginç... İki farklı bilgisayarda denedim sizde hata çıkınca ikisinde de olması gereken sonucu alıyorum...
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

eribol

İlginç. Bende x1 x2 den küçük olduğu için öyle görünüyor. Zaten negatiften azalmıyor aslında, sayı azalsa da değer artıyor. Yerleri değiştirince artmaya başaldı :)

sem

#6
Ben kendi yaşım ile denemeden yapmıştım programı, sistemi yakalamaya çalışıyorum... Mesela saat 04 32 00 olunca basıyorum hemen, tam 0 1 2 3 4 5 gibi olması gerektiği şekilde gidiyor... Yaşımı saniye cinsinden habire hesaplayıp kontrol etmektense bu şekilde kontrol daha kolay... Fakat sizde hata vermesi ilginç, sizin tarihi girdim:

Doğum tarihinizi girin (gg aa yyyy):23 04 1982
876803599
Dedi bana


Siteye girmeden sıkıntı yaşıyorum, eribol bit kayması olduğunu düşünüyorum... Düzelteyeceğim...
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

heartsmagic

Bende her türlü azalan bir sayı çıkıyor, başında da - var :)
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

eribol

Ben aslında  yoğom ondan negatif çıkıyor :)

sem

#9
=)=)=)=)=) Ay güldüm gece gece =), Sabaha karşı pardon =)... Düzelttim kodu artık herkeste pozitif çıkacak... Çok güldüm gece gece, açayım da izleyeyim biraz =) Ben aslında yoğom =)=)=)


EK: Herkeste + çıkacak diye umuyorum tabi ki =) Annemin iddialarına göre ben sabaha karşı doğmuşum, şöyle çıkıyor ben de;
Alıntı YapDoğum saati (SS dd ss):03 00 00
Doğum tarihinizi girin (gg aa yyyy):25 03 1986
754799612

Yaş sınırı var ama, yoksa long türüne sığmıyor saniye sayısı =)
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

heartsmagic

Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

eribol

Bende de tamamdır. Doğmuş bulundum :D

BELLEROPHONTES

Bu programı nasıl çalıştırıcaz?
Yeniden sevdalandım bir yazılıma, bağlandım doyasıya... :D :D :D

eribol

#13
Dosyayı ev dizininde .c uzantılı olarak kaydedin. Ardından terminalden;gcc -o ~/dosyaadı.c ~/dosyaadıkomutu ile derleyin. Hata vermezse çalıştırmak için terminaldencd ~ && ./dosyaadışeklinde çalıştırın.

BELLEROPHONTES

ozan@ozan-laptop:~$ gcc ~/ab.c ~/ab
gcc: /home/ozan/ab: No such file or directory


hatası veriyor sorun ne?

ozan@ozan-laptop:~$ ls
2.30                                             Müziğim
ab.c                                             Müzik
Belgeler                                         photos-20100503-0.db
dwhelper                                         Resimler
examples.desktop                                 Resimlerim
Genel                                            Şablonlar
İndirilenler                                     TranscodedWallpaper.jpg
Komodo-Edit-5                                    Ubuntu One
Komodo-Edit-5.2.4-4343-linux-libcpp6-x86_64      Videolar
libflashplayer-10.0.45.2.linux-x86_64.so.tar.gz  Vidyolarım
Masaüstü                                         workspace


gördüğün gibi dosya yerli yerinde
Yeniden sevdalandım bir yazılıma, bağlandım doyasıya... :D :D :D

hitokiri

sürükle bırak uçbirime dosyayı
gcc bıraktığın.c  -o ~/abc.c
belki sonunda fazladan boşluk vardır ?

BELLEROPHONTES

ozan@ozan-laptop:~$ gcc'/home/ozan/abcdefg.c' -o ~/abc.c
bash: gcc/home/ozan/abcdefg.c: No such file or directory


sürükle bırakla bile dosya yok diyor :D


Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 01 Temmuz 2010 - 10:10:49

dosyanın adını değiştirdim bu arada(karakter kısalığı sorunu falan mı diye merak ettim de)

abcdefg.c yaptım
Yeniden sevdalandım bir yazılıma, bağlandım doyasıya... :D :D :D

hitokiri

gcc boşluk dosyayolu boşluk-oboşluk çıktıyolu .)

ironic

@sem, teşekürler.
Alıntı yapılan: BELLEROPHONTES - 01 Temmuz 2010 - 10:10:04
ozan@ozan-laptop:~$ gcc'/home/ozan/abcdefg.c' -o ~/abc.c
bash: gcc/home/ozan/abcdefg.c: No such file or directory


sürükle bırakla bile dosya yok diyor :D


Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 01 Temmuz 2010 - 10:10:49

dosyanın adını değiştirdim bu arada(karakter kısalığı sorunu falan mı diye merak ettim de)

abcdefg.c yaptım
gcc dosya.c -o dosya

şeklinde ver komutu.

Çalıştırmak için

./dosya


BELLEROPHONTES

Şimdi işe yaradı. Herkese teşekkürler

651881922




Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 01 Temmuz 2010 - 10:44:20

Bu arada bu gcc olayı ne işe yarıyor?
Yeniden sevdalandım bir yazılıma, bağlandım doyasıya... :D :D :D

eribol

Bir parametre eksikliği nelere kadirmiş :) Gcc=Gnu C Compiler(buradaki C aslında artık komple anlamında diye duymuştum en son). C komutlarını derlemeye yarıyor. C kodlarını bash dosyaları gibi sürükl-ebırak yapamazsınız. Kodları bir dosyaya yazarsınız(dosyaadı.c) sonra gcc ile bu dosyayı derlersiniz ve en sonda da makine diline çevrilmiş yeni bir dosya(dosyaadı) elde edersiniz. İşte bu dosya çalışan dosyamız :)

BELLEROPHONTES

Alıntı yapılan: eribol - 01 Temmuz 2010 - 10:52:21
Bir parametre eksikliği nelere kadirmiş :) Gcc=Gnu C Compiler(buradaki C aslında artık komple anlamında diye duymuştum en son). C komutlarını derlemeye yarıyor. C kodlarını bash dosyaları gibi sürükl-ebırak yapamazsınız. Kodları bir dosyaya yazarsınız(dosyaadı.c) sonra gcc ile bu dosyayı derlersiniz ve en sonda da makine diline çevrilmiş yeni bir dosya(dosyaadı) elde edersiniz. İşte bu dosya çalışan dosyamız :)

Dün unix ile ilgili 40 sayfa falan yazı okudum öğrenmek için yazının sonunda yav ben baya öğrendim dedim.

Şimdi ise şunu öğrendim ben daha bir halt öğrenememişim.

3 aydır windows-ubuntu (ağırlıklı olarak win) kullanıyorum. Sürekli yeni birşeyler çıkıyor. Bayılıyorum bu olaya :D
Herhalde bir 3 sene sonra da yav ben birşey bilmiyorum dicem :D
Yeniden sevdalandım bir yazılıma, bağlandım doyasıya... :D :D :D

sem

@eribol evet o anlama geliyor artık, C++,C,fortran gibi bir kaç dil derlediği için... Bu arada ek yapayım, sizde azalmıyor aslında sayı, artıyor fakat - olduğu için öyle bir izlenim doğuyordu... Gerçi düzeldi sorun sanırım herkeste...

Programcı arkadaşlar için daha doğrusu yeni başlayanlar için...
Anekdot:Sorun dediğim gibi long sayının sınırlarından kaynaklanıyor... Bir tür  (int,long...) diyelim en fazla X kadar artabiliyor dersek, X+1 negatif sayıya dönüşüyor. Sayıların en soldaki biti işaret biti. Negatif sayıyı ayıt edebilmek için ikilik sistemde, en soldaki bitin 0 ya da 1 olmasına göre sayının işareti belli oluyor, maksimum değere bir ekleyince en haliyle soldaki bite kadar etkiliyor, bu da sayının   negatifliği ile sonuçlanıyor...
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

ironic

@sem, yılda 5-6 gün eksik hesaplamadan,   20 küsür yılda bayağı bir sapma yapıyor..   :)

sem

Anlamadım tam olarak, 20 yıldan fazla hesaplarda sapma mı oluyor?
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?