Programlama | Programlama Dilleri | C Programlama Dili |C++

Anasayfa Programlama C++ Builder Filozof Problemi Programı


Filozof Problemi Programı

Bu Program C++ Builder 6 ile uyumludur.

AÇIKLAMA

Filozof problemi genel olarak ; 5 kişinin 4 adet çatal kullanarak yemeklerini yemesi problemidir.

Her kişinin yemeği ne kadar sürede yediğide belirtildikten sonra yemek sayısı girilerek yemeği yiyen kişi daha sonra çatalı bırakır çatal boşta kalan kişi tarafından kullanılır. Burada önemli problemlerden bir tanesi sürekli olarak bir kişinin aç kalmasını önlemektir.

Programın Tamamını Aşağıdaki Linkten İndirebilirsiniz

Linki Görebilmeniz İçin Üye Olmanız Gerekmektedir...

Üye Kayıt

Program Kodu:

  1.  
  2. //---------------------------------------------------------------------------
  3.  
  4. #include <vcl.h>
  5. #pragma hdrstop
  6.  
  7. #include "Unit1.h"
  8. int dizi[5]={0,0,0,0,0};
  9. int yeme[5]={0,0,0,0,0};
  10. //---------------------------------------------------------------------------
  11. #pragma package(smart_init)
  12. #pragma resource "*.dfm"
  13. TForm1 *Form1;
  14. //---------------------------------------------------------------------------
  15. __fastcall TForm1::TForm1(TComponent* Owner)
  16.         : TForm(Owner)
  17. {
  18. }
  19. //---------------------------------------------------------------------------
  20.  
  21. void __fastcall TForm1::Button1Click(TObject *Sender)
  22. {
  23. String durum;
  24. int catalsay=0;
  25. if(CheckBox6->Checked)
  26. catalsay++;
  27. if(CheckBox7->Checked)
  28. catalsay++;
  29. if(CheckBox8->Checked)
  30. catalsay++;
  31. if(CheckBox9->Checked)
  32. catalsay++;
  33. if(CheckBox10->Checked)
  34. catalsay++;
  35.  
  36. if(catalsay==4)
  37. durum="tamam";
  38. else
  39. {
  40. durum="hayir";
  41. Application->MessageBoxA("Çatal Sayısı Dört Olmalıdır","UYARI",MB_ICONINFORMATION);
  42. }
  43. if((CheckBox1->Checked)||(CheckBox2->Checked)||(CheckBox3->Checked)||(CheckBox4->Checked)||(CheckBox5->Checked))
  44. {
  45. durum="hayir";
  46. Application->MessageBoxA("Filozoflar Tıklanamaz","UYARI",MB_ICONINFORMATION);
  47. }
  48.  
  49. if(Edit1->Text=="")
  50. {
  51. durum="hayir";
  52. Application->MessageBoxA("Yemek Sayısı Giriniz","UYARI",MB_ICONINFORMATION);
  53. }
  54.  
  55. if((Edit2->Text=="")||(Edit3->Text=="")||(Edit4->Text=="")||(Edit5->Text=="")||(Edit6->Text==""))
  56. {
  57. durum="hayir";
  58. Application->MessageBoxA("Bekleme Sürelerini Giriniz","UYARI",MB_ICONINFORMATION);
  59. }
  60. if(durum=="tamam")
  61. Timer1->Enabled=true;
  62. }
  63. //---------------------------------------------------------------------------
  64.  
  65. void __fastcall TForm1::Timer1Timer(TObject *Sender)
  66. {
  67. Timer2->Enabled=true;
  68. int sira;
  69.  
  70.  
  71.  
  72. if(CheckBox6->Checked)
  73. {
  74.  if(dizi[0]>=dizi[1])
  75.  sira=0;
  76.  else
  77.  sira=1;
  78.  
  79. if(sira==0)
  80. {
  81.  if(CheckBox1->Checked==false && dizi[0]>=StrToInt(Edit2->Text))
  82.  {
  83.   CheckBox1->Checked=true;
  84.   CheckBox6->Checked=false;
  85.   dizi[0]=0;
  86.   Edit1->Text=IntToStr((StrToInt(Edit1->Text)-1));
  87.  }
  88.  else if(CheckBox2->Checked==false && dizi[1]>=StrToInt(Edit3->Text))
  89.  {
  90.   CheckBox2->Checked=true;
  91.   CheckBox6->Checked=false;
  92.   dizi[1]=0;
  93.    Edit1->Text=IntToStr((StrToInt(Edit1->Text)-1));
  94.  }
  95.  
  96. }
  97.  
  98. else if(sira==1)
  99. {
  100.   if(CheckBox2->Checked==false && dizi[1]>=StrToInt(Edit3->Text))
  101.  {
  102.   CheckBox2->Checked=true;
  103.   CheckBox6->Checked=false;
  104.   dizi[1]=0;
  105.    Edit1->Text=IntToStr((StrToInt(Edit1->Text)-1));
  106.  }
  107.  else  if(CheckBox1->Checked==false && dizi[0]>=StrToInt(Edit2->Text))
  108.  {
  109.   CheckBox1->Checked=true;
  110.   CheckBox6->Checked=false;
  111.   dizi[0]=0;
  112.    Edit1->Text=IntToStr((StrToInt(Edit1->Text)-1));
  113.  }
  114.  
  115. }
  116.  
  117.  
  118. }
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126. if(CheckBox7->Checked)
  127. {
  128.  if(dizi[1]>=dizi[2])
  129.  sira=1;
  130.  else
  131.  sira=2;
  132.  
  133. if(sira==1)
  134. {
  135.  if(CheckBox2->Checked==false && dizi[1]>=StrToInt(Edit3->Text))
  136.  {
  137.   CheckBox2->Checked=true;
  138.   CheckBox7->Checked=false;
  139.   dizi[1]=0;
  140.    Edit1->Text=IntToStr((StrToInt(Edit1->Text)-1));
  141.  }
  142.  else if(CheckBox3->Checked==false && dizi[2]>=StrToInt(Edit4->Text))
  143.  {
  144.   CheckBox3->Checked=true;
  145.   CheckBox7->Checked=false;
  146.   dizi[2]=0;
  147.    Edit1->Text=IntToStr((StrToInt(Edit1->Text)-1));
  148.  }
  149.  
  150. }
  151.  
  152. else if(sira==2)
  153. {
  154.   if(CheckBox3->Checked==false && dizi[2]>=StrToInt(Edit4->Text))
  155.  {
  156.   CheckBox3->Checked=true;
  157.   CheckBox7->Checked=false;
  158.   dizi[2]=0;
  159.    Edit1->Text=IntToStr((StrToInt(Edit1->Text)-1));
  160.  }
  161.  else  if(CheckBox2->Checked==false && dizi[1]>=StrToInt(Edit3->Text))
  162.  {
  163.   CheckBox2->Checked=true;
  164.   CheckBox7->Checked=false;
  165.   dizi[1]=0;
  166.    Edit1->Text=IntToStr((StrToInt(Edit1->Text)-1));
  167.  }
  168.  
  169. }
  170.  
  171.  
  172. }
  173.  
  174.  
  175.  
  176.  
  177. if(CheckBox8->Checked)
  178. {
  179.  if(dizi[2]>=dizi[3])
  180.  sira=2;
  181.  else
  182.  sira=3;
  183.  
  184. if(sira==2)
  185. {
  186.  if(CheckBox3->Checked==false && dizi[2]>=StrToInt(Edit4->Text))
  187.  {
  188.   CheckBox3->Checked=true;
  189.   CheckBox8->Checked=false;
  190.   dizi[2]=0;
  191.    Edit1->Text=IntToStr((StrToInt(Edit1->Text)-1));
  192.  }
  193.  else if(CheckBox4->Checked==false && dizi[3]>=StrToInt(Edit5->Text))
  194.  {
  195.   CheckBox4->Checked=true;
  196.   CheckBox8->Checked=false;
  197.   dizi[3]=0;
  198.    Edit1->Text=IntToStr((StrToInt(Edit1->Text)-1));
  199.  }
  200.  
  201. }
  202.  
  203. else if(sira==3)
  204. {
  205.   if(CheckBox4->Checked==false && dizi[3]>=StrToInt(Edit5->Text))
  206.  {
  207.   CheckBox4->Checked=true;
  208.   CheckBox8->Checked=false;
  209.   dizi[3]=0;
  210.    Edit1->Text=IntToStr((StrToInt(Edit1->Text)-1));
  211.  }
  212.  else  if(CheckBox3->Checked==false && dizi[2]>=StrToInt(Edit4->Text))
  213.  {
  214.   CheckBox3->Checked=true;
  215.   CheckBox8->Checked=false;
  216.   dizi[2]=0;
  217.    Edit1->Text=IntToStr((StrToInt(Edit1->Text)-1));
  218.  }
  219.  
  220. }
  221.  
  222.  
  223. }
  224.  
  225.  
  226.  
  227. if(CheckBox9->Checked)
  228. {
  229.  if(dizi[3]>=dizi[4])
  230.  sira=3;
  231.  else
  232.  sira=4;
  233.  
  234. if(sira==3)
  235. {
  236.  if(CheckBox4->Checked==false && dizi[3]>=StrToInt(Edit5->Text))
  237.  {
  238.   CheckBox4->Checked=true;
  239.   CheckBox9->Checked=false;
  240.   dizi[3]=0;
  241.    Edit1->Text=IntToStr((StrToInt(Edit1->Text)-1));
  242.  }
  243.  else if(CheckBox5->Checked==false && dizi[4]>=StrToInt(Edit6->Text))
  244.  {
  245.   CheckBox5->Checked=true;
  246.   CheckBox9->Checked=false;
  247.   dizi[4]=0;
  248.    Edit1->Text=IntToStr((StrToInt(Edit1->Text)-1));
  249.  }
  250.  
  251. }
  252.  
  253. else if(sira==4)
  254. {
  255.   if(CheckBox5->Checked==false && dizi[4]>=StrToInt(Edit6->Text))
  256.  {
  257.   CheckBox5->Checked=true;
  258.   CheckBox9->Checked=false;
  259.   dizi[4]=0;
  260.    Edit1->Text=IntToStr((StrToInt(Edit1->Text)-1));
  261.  }
  262.  else  if(CheckBox4->Checked==false && dizi[3]>=StrToInt(Edit5->Text))
  263.  {
  264.   CheckBox4->Checked=true;
  265.   CheckBox9->Checked=false;
  266.   dizi[3]=0;
  267.    Edit1->Text=IntToStr((StrToInt(Edit1->Text)-1));
  268.  }
  269.  
  270. }
  271.  
  272.  
  273. }
  274.  
  275.  
  276.  
  277. if(CheckBox10->Checked)
  278. {
  279.  if(dizi[0]>=dizi[4])
  280.  sira=0;
  281.  else
  282.  sira=4;
  283.  
  284. if(sira==0)
  285. {
  286.  if(CheckBox1->Checked==false && dizi[0]>=StrToInt(Edit2->Text))
  287.  {
  288.   CheckBox1->Checked=true;
  289.   CheckBox10->Checked=false;
  290.   dizi[0]=0;
  291.    Edit1->Text=IntToStr((StrToInt(Edit1->Text)-1));
  292.  }
  293.  else if(CheckBox5->Checked==false && dizi[4]>=StrToInt(Edit6->Text))
  294.  {
  295.   CheckBox5->Checked=true;
  296.   CheckBox10->Checked=false;
  297.   dizi[4]=0;
  298.    Edit1->Text=IntToStr((StrToInt(Edit1->Text)-1));
  299.  }
  300.  
  301. }
  302.  
  303. else if(sira==4)
  304. {
  305.   if(CheckBox5->Checked==false && dizi[4]>=StrToInt(Edit6->Text))
  306.  {
  307.   CheckBox5->Checked=true;
  308.   CheckBox10->Checked=false;
  309.   dizi[4]=0;
  310.    Edit1->Text=IntToStr((StrToInt(Edit1->Text)-1));
  311.  }
  312.  else  if(CheckBox1->Checked==false && dizi[0]>=StrToInt(Edit2->Text))
  313.  {
  314.   CheckBox1->Checked=true;
  315.   CheckBox10->Checked=false;
  316.   dizi[0]=0;
  317.    Edit1->Text=IntToStr((StrToInt(Edit1->Text)-1));
  318.  }
  319.  
  320. }
  321.  
  322.  
  323. }
  324. if(StrToInt(Edit1->Text)==0)
  325. {
  326. Timer1->Enabled=false;
  327. Application->MessageBoxA("Yemek Bitti :))","UYARI",MB_ICONINFORMATION);
  328. }
  329.  
  330. }
  331. //---------------------------------------------------------------------------
  332. void __fastcall TForm1::Timer2Timer(TObject *Sender)
  333. {
  334.  
  335. if(!CheckBox1->Checked)
  336. dizi[0]+=1;
  337. else
  338. yeme[0]+=1;
  339. if(!CheckBox2->Checked)
  340. dizi[1]+=1;
  341. else
  342. yeme[1]+=1;
  343. if(!CheckBox3->Checked)
  344. dizi[2]+=1;
  345. else
  346. yeme[2]+=1;
  347. if(!CheckBox4->Checked)
  348. dizi[3]+=1;
  349. else
  350. yeme[3]+=1;
  351. if(!CheckBox5->Checked)
  352. dizi[4]+=1;
  353. else
  354. yeme[4]+=1;
  355.  
  356.  
  357.  
  358. if(yeme[0]>=5)
  359. {
  360. if(CheckBox6->Checked==false)
  361. {
  362. yeme[0]=0;
  363. CheckBox1->Checked=false;
  364. CheckBox6->Checked=true;
  365. }
  366. else if(CheckBox10->Checked==false)
  367. {
  368. yeme[0]=0;
  369. CheckBox1->Checked=false;
  370. CheckBox10->Checked=true;
  371. }
  372. }
  373.  
  374.  
  375.  
  376.  
  377.  
  378. if(yeme[1]>=5)
  379. {
  380. if(CheckBox6->Checked==false)
  381. {
  382. yeme[1]=0;
  383. CheckBox2->Checked=false;
  384. CheckBox6->Checked=true;
  385. }
  386. else if(CheckBox7->Checked==false)
  387. {
  388. yeme[1]=0;
  389. CheckBox2->Checked=false;
  390. CheckBox7->Checked=true;
  391. }
  392. }
  393.  
  394. if(yeme[2]>=5)
  395. {
  396. if(CheckBox7->Checked==false)
  397. {
  398. yeme[2]=0;
  399. CheckBox3->Checked=false;
  400. CheckBox7->Checked=true;
  401. }
  402. else if(CheckBox8->Checked==false)
  403. {
  404. yeme[2]=0;
  405. CheckBox3->Checked=false;
  406. CheckBox8->Checked=true;
  407. }
  408. }
  409.  
  410. if(yeme[3]>=5)
  411. {
  412. if(CheckBox8->Checked==false)
  413. {
  414. yeme[3]=0;
  415. CheckBox4->Checked=false;
  416. CheckBox8->Checked=true;
  417. }
  418. else if(CheckBox9->Checked==false)
  419. {
  420. yeme[3]=0;
  421. CheckBox4->Checked=false;
  422. CheckBox9->Checked=true;
  423. }
  424. }
  425.  
  426.  
  427. if(yeme[4]>=5)
  428. {
  429. if(CheckBox9->Checked==false)
  430. {
  431. yeme[4]=0;
  432. CheckBox5->Checked=false;
  433. CheckBox9->Checked=true;
  434. }
  435. else if(CheckBox10->Checked==false)
  436. {
  437. yeme[4]=0;
  438. CheckBox5->Checked=false;
  439. CheckBox10->Checked=true;
  440. }
  441. }
  442.  
  443. if(Timer1->Enabled==false)
  444. Timer2->Enabled=false;
  445. }
  446. //---------------------------------------------------------------------------
  447.  

Yorumlar (0)
Sadece kayıtlı kullanıcılar yorum yazabilir!
Son Güncelleme ( Perşembe, 07 Nisan 2011 23:33 )