Filozof Problemi Programı

DrogbA

Forum Üyesi
Katılım
27 Ara 2020
Mesajlar
3,440
Tepkime puanı
0
Puanları
36
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.

Kod:
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
int dizi[5]={0,0,0,0,0};
int yeme[5]={0,0,0,0,0};
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
String durum;
int catalsay=0;
if(CheckBox6->Checked)
catalsay++;
if(CheckBox7->Checked)
catalsay++;
if(CheckBox8->Checked)
catalsay++;
if(CheckBox9->Checked)
catalsay++;
if(CheckBox10->Checked)
catalsay++;
 
if(catalsay==4)
durum="tamam";
else
{
durum="hayir";
Application->MessageBoxA("Çatal Sayısı Dört Olmalıdır","UYARI",MB_ICONINFORMATION);
}
if((CheckBox1->Checked)||(CheckBox2->Checked)||(CheckBox3->Checked)||(CheckBox4->Checked)||(CheckBox5->Checked))
{
durum="hayir";
Application->MessageBoxA("Filozoflar Tıklanamaz","UYARI",MB_ICONINFORMATION);
}
 
if(Edit1->Text=="")
{
durum="hayir";
Application->MessageBoxA("Yemek Sayısı Giriniz","UYARI",MB_ICONINFORMATION);
}
 
if((Edit2->Text=="")||(Edit3->Text=="")||(Edit4->Text=="")||(Edit5->Text=="")||(Edit6->Text==""))
{
durum="hayir";
Application->MessageBoxA("Bekleme Sürelerini Giriniz","UYARI",MB_ICONINFORMATION);
}
if(durum=="tamam")
Timer1->Enabled=true;
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
Timer2->Enabled=true;
int sira;
 
 
 
if(CheckBox6->Checked)
{
 if(dizi[0]>=dizi[1])
 sira=0;
 else
 sira=1;
 
if(sira==0)
{
 if(CheckBox1->Checked==false && dizi[0]>=StrToInt(Edit2->Text))
 {
  CheckBox1->Checked=true;
  CheckBox6->Checked=false;
  dizi[0]=0;
  Edit1->Text=IntToStr((StrToInt(Edit1->Text)-1));
 }
 else if(CheckBox2->Checked==false && dizi[1]>=StrToInt(Edit3->Text))
 {
  CheckBox2->Checked=true;
  CheckBox6->Checked=false;
  dizi[1]=0;
   Edit1->Text=IntToStr((StrToInt(Edit1->Text)-1));
 }
 
}
 
else if(sira==1)
{
  if(CheckBox2->Checked==false && dizi[1]>=StrToInt(Edit3->Text))
 {
  CheckBox2->Checked=true;
  CheckBox6->Checked=false;
  dizi[1]=0;
   Edit1->Text=IntToStr((StrToInt(Edit1->Text)-1));
 }
 else  if(CheckBox1->Checked==false && dizi[0]>=StrToInt(Edit2->Text))
 {
  CheckBox1->Checked=true;
  CheckBox6->Checked=false;
  dizi[0]=0;
   Edit1->Text=IntToStr((StrToInt(Edit1->Text)-1));
 }
 
}
 
 
}
 
 
 
 
 
 
 
if(CheckBox7->Checked)
{
 if(dizi[1]>=dizi[2])
 sira=1;
 else
 sira=2;
 
if(sira==1)
{
 if(CheckBox2->Checked==false && dizi[1]>=StrToInt(Edit3->Text))
 {
  CheckBox2->Checked=true;
  CheckBox7->Checked=false;
  dizi[1]=0;
   Edit1->Text=IntToStr((StrToInt(Edit1->Text)-1));
 }
 else if(CheckBox3->Checked==false && dizi[2]>=StrToInt(Edit4->Text))
 {
  CheckBox3->Checked=true;
  CheckBox7->Checked=false;
  dizi[2]=0;
   Edit1->Text=IntToStr((StrToInt(Edit1->Text)-1));
 }
 
}
 
else if(sira==2)
{
  if(CheckBox3->Checked==false && dizi[2]>=StrToInt(Edit4->Text))
 {
  CheckBox3->Checked=true;
  CheckBox7->Checked=false;
  dizi[2]=0;
   Edit1->Text=IntToStr((StrToInt(Edit1->Text)-1));
 }
 else  if(CheckBox2->Checked==false && dizi[1]>=StrToInt(Edit3->Text))
 {
  CheckBox2->Checked=true;
  CheckBox7->Checked=false;
  dizi[1]=0;
   Edit1->Text=IntToStr((StrToInt(Edit1->Text)-1));
 }
 
}
 
 
}
 
 
 
 
if(CheckBox8->Checked)
{
 if(dizi[2]>=dizi[3])
 sira=2;
 else
 sira=3;
 
if(sira==2)
{
 if(CheckBox3->Checked==false && dizi[2]>=StrToInt(Edit4->Text))
 {
  CheckBox3->Checked=true;
  CheckBox8->Checked=false;
  dizi[2]=0;
   Edit1->Text=IntToStr((StrToInt(Edit1->Text)-1));
 }
 else if(CheckBox4->Checked==false && dizi[3]>=StrToInt(Edit5->Text))
 {
  CheckBox4->Checked=true;
  CheckBox8->Checked=false;
  dizi[3]=0;
   Edit1->Text=IntToStr((StrToInt(Edit1->Text)-1));
 }
 
}
 
else if(sira==3)
{
  if(CheckBox4->Checked==false && dizi[3]>=StrToInt(Edit5->Text))
 {
  CheckBox4->Checked=true;
  CheckBox8->Checked=false;
  dizi[3]=0;
   Edit1->Text=IntToStr((StrToInt(Edit1->Text)-1));
 }
 else  if(CheckBox3->Checked==false && dizi[2]>=StrToInt(Edit4->Text))
 {
  CheckBox3->Checked=true;
  CheckBox8->Checked=false;
  dizi[2]=0;
   Edit1->Text=IntToStr((StrToInt(Edit1->Text)-1));
 }
 
}
 
 
}
 
 
 
if(CheckBox9->Checked)
{
 if(dizi[3]>=dizi[4])
 sira=3;
 else
 sira=4;
 
if(sira==3)
{
 if(CheckBox4->Checked==false && dizi[3]>=StrToInt(Edit5->Text))
 {
  CheckBox4->Checked=true;
  CheckBox9->Checked=false;
  dizi[3]=0;
   Edit1->Text=IntToStr((StrToInt(Edit1->Text)-1));
 }
 else if(CheckBox5->Checked==false && dizi[4]>=StrToInt(Edit6->Text))
 {
  CheckBox5->Checked=true;
  CheckBox9->Checked=false;
  dizi[4]=0;
   Edit1->Text=IntToStr((StrToInt(Edit1->Text)-1));
 }
 
}
 
else if(sira==4)
{
  if(CheckBox5->Checked==false && dizi[4]>=StrToInt(Edit6->Text))
 {
  CheckBox5->Checked=true;
  CheckBox9->Checked=false;
  dizi[4]=0;
   Edit1->Text=IntToStr((StrToInt(Edit1->Text)-1));
 }
 else  if(CheckBox4->Checked==false && dizi[3]>=StrToInt(Edit5->Text))
 {
  CheckBox4->Checked=true;
  CheckBox9->Checked=false;
  dizi[3]=0;
   Edit1->Text=IntToStr((StrToInt(Edit1->Text)-1));
 }
 
}
 
 
}
 
 
 
if(CheckBox10->Checked)
{
 if(dizi[0]>=dizi[4])
 sira=0;
 else
 sira=4;
 
if(sira==0)
{
 if(CheckBox1->Checked==false && dizi[0]>=StrToInt(Edit2->Text))
 {
  CheckBox1->Checked=true;
  CheckBox10->Checked=false;
  dizi[0]=0;
   Edit1->Text=IntToStr((StrToInt(Edit1->Text)-1));
 }
 else if(CheckBox5->Checked==false && dizi[4]>=StrToInt(Edit6->Text))
 {
  CheckBox5->Checked=true;
  CheckBox10->Checked=false;
  dizi[4]=0;
   Edit1->Text=IntToStr((StrToInt(Edit1->Text)-1));
 }
 
}
 
else if(sira==4)
{
  if(CheckBox5->Checked==false && dizi[4]>=StrToInt(Edit6->Text))
 {
  CheckBox5->Checked=true;
  CheckBox10->Checked=false;
  dizi[4]=0;
   Edit1->Text=IntToStr((StrToInt(Edit1->Text)-1));
 }
 else  if(CheckBox1->Checked==false && dizi[0]>=StrToInt(Edit2->Text))
 {
  CheckBox1->Checked=true;
  CheckBox10->Checked=false;
  dizi[0]=0;
   Edit1->Text=IntToStr((StrToInt(Edit1->Text)-1));
 }
 
}
 
 
}
if(StrToInt(Edit1->Text)==0)
{
Timer1->Enabled=false;
Application->MessageBoxA("Yemek Bitti :))","UYARI",MB_ICONINFORMATION);
}
 
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer2Timer(TObject *Sender)
{
 
if(!CheckBox1->Checked)
dizi[0]+=1;
else
yeme[0]+=1;
if(!CheckBox2->Checked)
dizi[1]+=1;
else
yeme[1]+=1;
if(!CheckBox3->Checked)
dizi[2]+=1;
else
yeme[2]+=1;
if(!CheckBox4->Checked)
dizi[3]+=1;
else
yeme[3]+=1;
if(!CheckBox5->Checked)
dizi[4]+=1;
else
yeme[4]+=1;
 
 
 
if(yeme[0]>=5)
{
if(CheckBox6->Checked==false)
{
yeme[0]=0;
CheckBox1->Checked=false;
CheckBox6->Checked=true;
}
else if(CheckBox10->Checked==false)
{
yeme[0]=0;
CheckBox1->Checked=false;
CheckBox10->Checked=true;
}
}
 
 
 
 
 
if(yeme[1]>=5)
{
if(CheckBox6->Checked==false)
{
yeme[1]=0;
CheckBox2->Checked=false;
CheckBox6->Checked=true;
}
else if(CheckBox7->Checked==false)
{
yeme[1]=0;
CheckBox2->Checked=false;
CheckBox7->Checked=true;
}
}
 
if(yeme[2]>=5)
{
if(CheckBox7->Checked==false)
{
yeme[2]=0;
CheckBox3->Checked=false;
CheckBox7->Checked=true;
}
else if(CheckBox8->Checked==false)
{
yeme[2]=0;
CheckBox3->Checked=false;
CheckBox8->Checked=true;
}
}
 
if(yeme[3]>=5)
{
if(CheckBox8->Checked==false)
{
yeme[3]=0;
CheckBox4->Checked=false;
CheckBox8->Checked=true;
}
else if(CheckBox9->Checked==false)
{
yeme[3]=0;
CheckBox4->Checked=false;
CheckBox9->Checked=true;
}
}
 
 
if(yeme[4]>=5)
{
if(CheckBox9->Checked==false)
{
yeme[4]=0;
CheckBox5->Checked=false;
CheckBox9->Checked=true;
}
else if(CheckBox10->Checked==false)
{
yeme[4]=0;
CheckBox5->Checked=false;
CheckBox10->Checked=true;
}
}
 
if(Timer1->Enabled==false)
Timer2->Enabled=false;
}
//---------------------------------------------------------------------------
 

Nutella

Bayan Üye
Özel Üye
Katılım
2 Ocak 2021
Mesajlar
3,559
Tepkime puanı
0
Puanları
36
Cinsiyet
  1. Bayan
Takım
Galatasaray
Paylaşım için teşekkürler.
 
metal işleme
Üst