DEV C++ İLE ATIŞLAR

Dev C++ editörünü kullanarak aşağıdan yukarı doğru düşey atış ve yukarıdan aşağıya doğru düşey atış uygulama örneği.


Fizikteki uygulamaları bilgisayar programlama dillerine dökmek hem zevkli hem de anlık ve sağlam sonuçları hemen görebilmemiz açısından faydalı bir iştir. Burada hem fizikteki formül ve denklemleri bilgisayarın anlayacağı bir dil ile ifade edeceğiz, hem de çok büyük değerli atışları bilgisayara yaptırarak sonucu bulabileceğiz.



Aşağıdan Yukarı Düşey Atış Hareketi

Bu atışla ilgili denklemler şunlardır;

V = V0  – gt

h = V0 .t - g.t2/2

V2  = V02  – 2.g.h


Yukarıdan Aşağıya Düşey Atış Hareketi

Bu atışla ilgili denklemler ise aşağıda yer alıyor.

V = V0  + g.t

h = V0 .t - gt2/2

V2  = V02  – 2.g.h



Programın Yazılması ve Çalıştırılması

Program en başta kullanıcıdan “yukarı yönlü düşey atış” ve “aşağı yönlü düşey atış” seçeneklerinden birini girmesini ister. Kullanıcı seçimini yaptıktan sonra hesaplamayı yapabilmek için parametreleri ister. Bilinen parametrelerin değeri girilirken, bilinmeyen parametreler için 0 girilir.

Program cismin her saniyedeki hızını ve yerden yüksekliğini hesaplayarak verir. Aynı zamanda maksimum yüksekliğe çıkış süresi, düşme süresi, yere çarpma hızını da hesaplayarak ekrana yazar.


Programın tüm kodları aşağıdadır.

Kolay gelsin.

      #include <iostream>
#include <math.h>

using namespace std;
void UpwardShoots();
void DownwardShoots();
int main()
{

 int atis=1;
 char secim = 'A';

 while(secim == 'A')
 {
  
  cout<<"Asagidan Yukari Dogru Atis Icin 1, Yukaridan Asagi Dogru Atis Icin 2 Giriniz : ";
  cin>>atis;
  
  if(atis==1)
  {
   UpwardShoots();
  }
  if(atis ==2)
  {
   DownwardShoots();
  }
  
  cout<<"Devam Etmek Icin A, Cikmak Icin B giriniz :";
  cin>>secim;
  
 }
}
void UpwardShoots()
{
 float y_yuk=0;
 float max_yuk =0;
 float V_ilk = 0;
 float V_anlik=0;
 float h_anlik;
 float t_anlik;
 float t_cikma=0;
 float g_ivme;
 float t_donus=0;

 cout<<"Cismin Atildigi Hizi Giriniz Bilinmiyorsa 0 Giriniz: ";
 cin>>V_ilk;
 cout<<endl;
 cout<<"Cismin Cikabildigi Maksimum Yuksekligi Giriniz Bilinmiyorsa 0 Giriniz: ";
 cin>>max_yuk;
 cout<<endl;
 cout<<"Yerçekimi Ivmesinin Degerini Giriniz :";
 cin>>g_ivme;
 cout<<endl;
 if(V_ilk ==0 &&max_yuk==0)
 {
  cout<<"Ilk Hiz ve Maksimum Yukseklik Degerlerinden En Az Biri 0'dan Farkli Olmali";
  
 }
 else if(V_ilk<0||max_yuk<0)
 {
  cout<<"İlk Hiz ve Maksimum Yukseklik Degerleri 0'dan Kucuk Bir Deger Alamaz";
  
 }
 else
 {
  if(max_yuk>0)
  {
   float Vg;
   Vg=2*g_ivme*max_yuk;
   V_ilk = sqrt(Vg);
   
   t_cikma = V_ilk/g_ivme;
   t_donus=2*V_ilk/g_ivme; 
  }
  else if(max_yuk<=0&&V_ilk>0)
  {
   float hg;
   hg=(V_ilk*V_ilk);
   max_yuk=hg/(2*g_ivme);
   t_cikma=V_ilk/g_ivme;
   t_donus=2*V_ilk/g_ivme;
  }
  else
  {
   cout<<"Girdiginiz Degerleri Gozden Geciriniz"<<endl;
  }
  
  for(int i=1;i<=t_donus+1;i++)
  {
   if(i>t_donus)
   {
    V_anlik = V_ilk - 10*t_donus;
    y_yuk=(V_ilk*t_donus)-(g_ivme*t_donus*t_donus)/2;
    cout<<"Cismin "<<t_donus<<". saniyedeki hizi = "<<V_anlik<<" m/s "<<" Yerden Yuksekligi ="<<y_yuk<<" m"<<endl;
    break;
   }
   else
   {
    V_anlik = V_ilk - 10*i;
    y_yuk=(V_ilk*i)-(g_ivme*i*i)/2;
    cout<<"Cismin "<<i<<". saniyedeki hizi = "<<V_anlik<<" m/s "<<" Yerden Yuksekligi ="<<y_yuk<<" m"<<endl;
   }
  
  }
 }


 cout<<"Cismin Ilk Hizi = "<<V_ilk<<" m/s";
 cout<<endl;
 cout<<"Cismin Cikabildigi Maximum Yukseklik = "<<max_yuk<<" m";
 cout<<endl;
 cout<<"Cismin Maximum Yukseklige Cikma Suresi = "<<t_cikma<<" s";
 cout<<endl;
 cout<<"Cismin Atildigi Yukseklige Donus Suresi = "<<t_donus<<" s";
 cout<<endl;
}
void DownwardShoots()
{
 float V_ilk =0;
 float t_dusme=0;
 float V_anlik;
 float V_carpma=0;
 float h_yuk;
 float g_ivme = 0;
 float yer_yuk=0;
 float h_anlik=0;
 float h1 =0;

 cout<<"Cismin Ilk Hizini Giriniz :";
 cin>>V_ilk;
 cout<<endl;

 cout<<"Cismin Atildigi Yerin Yerden Yuksekligini Giriniz :";
 cin>>h_yuk;
 cout<<endl;

 cout<<"Yercekimi Ivmesini Giriniz :";
 cin>>g_ivme;
 cout<<endl;

 if(h_yuk>0&&V_ilk>0)
 {
  float Vg=0;
  Vg = V_ilk*V_ilk + 2*g_ivme*h_yuk;
  
  V_carpma = sqrt(Vg);
  
  t_dusme = (V_carpma - V_ilk)/g_ivme;
  
  for(int i=1; i<=t_dusme+1; i++)
  {
   
   if(i>t_dusme)
   {
    V_anlik = V_ilk+(g_ivme*t_dusme);
     
    h1 = (g_ivme*t_dusme*t_dusme)/2;
   
    h_anlik=V_ilk*t_dusme + h1;
    yer_yuk = h_yuk - h_anlik;
   
    cout<<"Cismin "<<t_dusme<<". Saniyede Hizi = "<<V_anlik<<" m/s Aldigi Yol = "<<h_anlik<<" Yerden Yuksekligi = "<<yer_yuk<<" m"<<endl;
    break;
   }
   else
   {
    V_anlik = V_ilk + (g_ivme*i);
   
    h1 = (g_ivme*i*i)/2;
   
    h_anlik=V_ilk*i + h1;
    yer_yuk = h_yuk - h_anlik;
   
    cout<<"Cismin "<<i<<". Saniyede Hizi = "<<V_anlik<<" m/s Aldigi Yol = "<<h_anlik<<" Yerden Yuksekligi = "<<yer_yuk<<" m"<<endl;
  
   }
    
   
  }
 }

 cout<<" Cismin Yere Dusme Suresi = "<<t_dusme<<" s"<<endl;
 cout<<"Cismin Yere Carpma Hizi = "<<V_carpma<<" m/s"<<endl;

}





SANATSAL BİLGİ

20/01/2017

  • YORUM YAZ
  • ADI SOYADI(veya nick)
  • YORUM

COPYRIGHT© HER HAKKI SAKLIDIR
Sitede Yer Alan Bilgi Belge Ve Materyallerin İzinsiz olarak Kopyalanması ve Alıntılanması Yasaktır

SANATSAL BILGI