C'de Akrep ile Yelkovan Arasındaki Açıyı Bulmak

C programlama dilinde analog bir saatte akrep ile yelkovan arasındaki açıyı iki farklı yoldan hesaplatan programlar yazıyoruz. Bol algoritma, bol örnek iyi bir programcı olmanızı sağlayacaktır.

C programlama dilinde bol miktarda algoritma öğrenmek bol miktarda alıştırma yapmak bu programlama dilini en iyi şekilde öğrenmenizi sağlayacaktır. Bu örneğimizde analog bir saatte Akrep ile yelkovan arasındaki açıyı bulan bir program yazacağız. Bunu sizlere 2 farklı yoldan çözen 2 farklı programla göstermek istiyorum, çünkü programcı demek bir programı birden fazla yoldan çözmeye çalışan, daha çok algoritma geliştirebilen demektir. Siz farklı bir yol bulduysanız lütfen bizimle paylaşın.

İlk yolumuz matematiksel formülü kullanmak olacaktır. Gayet basit bir formül ve algoritma.

Aradaki açı = Saat x 30 - Dakika x 11/2 aslında bölü 2 hepsinin altındadır ancak 60/2 yaparak o kısmı 30 diye direk aldım..


#include<stdio.h>

      int main()

      {

      double saat,dakika,aci;

      printf("Acisini bulmak istediginiz Saat(0-12) ve Dakikayi giriniz: ");

      scanf("%lf%lf",&saat,&dakika);



      aci = (saat*30)-(dakika*5.5);  /*bu kısımda aciyi az önce verdiğimiz formule göre hesaplattık*/

      if(aci<0)  /*aradaki açının negatif çıkma olasılıgını burada engellemiş olduk*/

      {

      aci = (dakika*5.5)-(saat*30);

      }



      printf("Saat %2.f : %2.f iken akrep ile yelkovan arasindaki aci %2.f'dir",saat,dakika,aci);





      getchar();getchar();

      return 0;

      }



İkinci yolumuza gelince, ikinci yol tamamen mantık üzerine kurulmuştur.

Mantığımız tam olarak şöyle olmalıdır. Bir analog saatin tümü 360 derecedir. Ve 12 parçaya ayrılmıştır. 12 saat olduğu için ve her bir saat arasında 30 derecelik parçalar vardır. Bundan yararlanarak saatin kaç derece ilerleyeceğini bulduktan sonra bir de yelkovanın ne kadar ilerleyeceğini bulup ekleyerek ikisi arasındaki açıyı bulabiliriz..


#include<stdio.h>



int main()

{

int saat,dakika;

int x,y,akrep,yelkovan;

double sonuc;



printf("Saat ve dakika degerlerini giriniz:n");

scanf("%d %d",&saat,&dakika);



x=saat*30;

y=30*dakika/60;

akrep=x+y;

yelkovan=6*dakika;

if(akrep>yelkovan)

{

sonuc=akrep-yelkovan;



}

else {

sonuc=yelkovan-akrep;



}

printf("Saat %d : %d iken akrep ile yelkovan arasindaki aci %2.f'dir",saat,dakika,sonuc);

getchar();getchar();

return 0;

}

  • Etiketler;
Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

Selamlar bır program yazıcam ama tıkanıp kaldıgım yer var yardımcı olabılırmısınız acaba.programı yazdım ama sorunum su bı serverdan il içindeki bayılerı knotrol edecek program yazdım karşı taraftakı yanı bayılerde LCD ekran olacak server guncelleme yaptıgında otomatık olarak butun ekranlar depişecek. bu programı yazdım ama ınternetten yapacagım için bu bılgı gonderme işini programdan nasıl nete bılıglerı atıcam nete nasıl baglıcam yolu nedır. Delpi yada c++ dışında hangı programda yazabılırım
cok ozur dilerim burdan yazıyorum.daha yeni uye olduuum.sizden bişey rica edecektiim.benim birr odevim var.00:00:00 başlangıç olacak şekilde girilen saate gore akrepin yelkovanın ve saniyenin kaç dercelik acı yaptıgını veren program yazabilirseniz cok memnun olurum...benim için çok onemli...ornegin saat 2:10:50 akrep 2*30 yelkovan 2*360+10*6 saniyede 2*60*360+10*360+50*6 acı yapıyorr.bole bi program yazarsanız cok memnun olurum.borland c de yazılacakk.lutfen yardımcı olun bana hayat mamak meselesi:uzul:
enissel senın odevın ıcın bu olabılır ... //akrep ile yelkovanın belırtılen zamandakı acılarını bulma... #include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]) { float yelkovan,akrep, st,dk,sn; cout<<"Baslangic saati 00.00.00"<<endl; cout<<"Saat ,Dakika , Saniye..."; cin>>st>>dk>>sn; //aralarında bosluk yapark gir ... yelkovan=(dk+(sn/60))*6; //yelkovanın derecsini bulma akrep=(st+(dk/60)+(sn/360))*30; //akrep in derecesini bulma cout<<"akrep =>"<<akrep<<" derece...nyelkovan =>"<<yelkovan<<" derece ..."; system("PAUSE"); return EXIT_SUCCESS; }

Yukarı Git