Filozof Problemi Programı

Ahbap

Harbi Üye
Forum Üyesi
Katılım
29 Mayıs 2019
Mesajlar
8,562
Tepkime puanı
2
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;
}
//---------------------------------------------------------------------------
 
Benzer konular Forum Tarih
Ahbap C ve C++ 4 412

Benzer konular

DarK

< MasaLFM.Net >
Forum Üyesi
Katılım
1 Nisan 2019
Mesajlar
622
Tepkime puanı
0
emeğine yüreğine sağlık
 

Nutella

Harbi Üye
Bayan Üye
Özel Üye
Katılım
2 Ocak 2021
Mesajlar
9,432
Tepkime puanı
8
Cinsiyet
  1. Bayan
Takım
Galatasaray
Paylaşım için teşekkürler.
 
İçerik sağlayıcı "paylaşım" sitelerinden biri olan Harbimekan.Com Forum, Eğlence ve Güncel Paylaşım Platformu Adresimizde 5651 Sayılı Kanun’un 8. Maddesine ve T.C.K’nın 125. Maddesine göre TÜM ÜYELERİMİZ yaptıkları paylaşımlardan sorumludur. Harbimekan.Com sitesindeki konular yada mesajlar hakkında yapılacak tüm hukuksal Şikayetler için info@harbimekan.com yada iletişim sayfası üzerinden iletişime geçilmesi halinde ilgili kanunlar ve yönetmelikler çerçevesinde en geç 3 Gün (72 Saat) içerisinde Forum yönetimi olarak tarafımızdan gereken işlemler yapılacaktır.

Bu Site, Bilim ve Sağlık Haber Ajansı Üyesidir.

Yığıntı - 8kez - kaynak mağazam - Uğur Ağdaş - genel forum - webp converter