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

Anasayfa Programlama C++ Builder Şiir Yazan Program


Şiir Yazan Program

Bu Program C++ Builder 5 ile uyumludur.

AÇIKLAMA

Bu program genel olarak Türkçenin edebiyat bakımından düzgün bir yapıda cümle kurma ve redif uyak gibi özellikleri barındırması açısından bir örnek teşkil eder.Klasör içindeki fiil,zarf,isim ve sıfat dosyalarından kelimeler çekilerek uygun yapıda cümle kurduktan sonra kurulan cümleye uyak oluşturacak yeni cümleler kurar. Eğer yapıya göre uyaklı bir kelime bulamazsa bu durumda random bir cümle kurar.

Örnek cümle yapısı:

Kurallı Cümle örnekleri vb.

Sıfat isim zarf fiil
İsim zarf fiil
Sıfat isim fiil
Zarf sıfat isim fiil
Zart sıfat isim zarf fiil

Devrik Cümle örnekleri vb.

Zarf fiil isim
Zarf fiil sifat isim

Yukarıda verilen tiplerden random bir tanesini seçer ve dörtlüğü tamamen aynı cümle yapısından oluşturur.
Yeni dörtlükte başka bir tip seçebilir.Seçilen tipe göre uyaklı cümleler kurarak dörtlüğü tamamlar.

Fiil sıfat zarf ve isim dosyaları zenginleştirilerek daha zengin kelime grupları elde edilebilir.

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. #include <vcl.h>
  4. #pragma hdrstop
  5.  
  6. #include "Unit1.h"
  7. //---------------------------------------------------------------------------
  8. #pragma package(smart_init)
  9. #pragma resource "*.dfm"
  10. TForm1 *Form1;         int genel;   int indis=-1;
  11. //---------------------------------------------------------------------------
  12. __fastcall TForm1::TForm1(TComponent* Owner)
  13.         : TForm(Owner)
  14. {
  15. }
  16. //---------------------------------------------------------------------------
  17.  
  18.  
  19. void sifirla()
  20. {
  21. Form1->ListBox1->Items->LoadFromFile("fiil.txt");
  22. Form1->ListBox2->Items->LoadFromFile("isim.txt");
  23. Form1->ListBox3->Items->LoadFromFile("sıfat.txt");
  24. Form1->ListBox4->Items->LoadFromFile("zarf.txt");
  25. genel=0;
  26.  
  27.  
  28. }
  29. //---------------------------------------------------------------------------
  30.  void cumleolustur(String durum,String gelen)
  31.  {
  32.  
  33.  Sleep(100);
  34.  String zarf1="",sifat="",isim="",fiil="",zarf2="";   int kontrol=0;  String olustur="";
  35.  if(durum=="fiil")
  36.  {
  37.  int x=random(3);
  38.  if(x==2)
  39.  {
  40.  int z=random(Form1->ListBox4->Items->Count);
  41.  zarf1=Form1->ListBox4->Items->Strings[z];   kontrol=1;
  42.  Form1->ListBox4->Items->Delete(z);
  43.  }
  44.  int i=random(Form1->ListBox2->Items->Count);
  45.  isim=Form1->ListBox2->Items->Strings[i];
  46.  Form1->ListBox2->Items->Delete(i);
  47.  x=random(2);
  48.  if((x==1)||(kontrol==1))
  49.  {
  50.  int s=random(Form1->ListBox3->Items->Count);
  51.  sifat=Form1->ListBox3->Items->Strings[s];
  52.  Form1->ListBox3->Items->Delete(s);
  53.  }
  54.  x=random(4);
  55.  if(x==3)
  56.  {
  57.   int z=random(Form1->ListBox4->Items->Count);
  58.   zarf2=Form1->ListBox4->Items->Strings[z];
  59.   Form1->ListBox4->Items->Delete(z);
  60.   }
  61.  
  62.  if(zarf1!="")
  63.  {olustur+=zarf1; olustur+=" ";}
  64.  if(sifat!="")
  65.  {olustur+=sifat;  olustur+=" ";}
  66.  olustur+=isim;   olustur+=" ";
  67.  if(zarf2!="")
  68.  {olustur+=zarf2; olustur+=" ";}
  69.  olustur+=gelen;
  70.  Form1->Memo1->Lines->Add(olustur);
  71.   int tut;
  72.  
  73.  for(int k=0;k<Form1->ListBox1->Items->Count;k++)
  74.  {
  75.   if(gelen==Form1->ListBox1->Items->Strings[k])
  76.   {
  77.   tut=k;
  78.   break;
  79.   }
  80.  }
  81.  Form1->ListBox1->Items->Delete(tut);
  82.  
  83.  indis=-1;
  84.  int saydir=0;
  85.  while(saydir<4)
  86.  {
  87.  saydir++;
  88.  String gelenilk=gelen;
  89.  if(saydir==1)
  90.  gelenilk.Delete(1,gelenilk.Length()-3);
  91.  if(saydir==2)
  92.  gelenilk.Delete(1,gelenilk.Length()-2);
  93.  if(saydir==3)
  94.  gelenilk.Delete(1,gelenilk.Length()-1);
  95.  
  96.  for(int j=0;j<Form1->ListBox1->Items->Count;j++)
  97.  {
  98.   String of=Form1->ListBox1->Items->Strings[j];
  99.   if(saydir==1)
  100.   of.Delete(1,of.Length()-3);
  101.   if(saydir==2)
  102.   of.Delete(1,of.Length()-2);
  103.   if(saydir==3)
  104.   of.Delete(1,of.Length()-1);
  105.   if(gelenilk==of)
  106.   {
  107.    indis=j; saydir=4;
  108.    break;
  109.    }
  110.  }
  111.  
  112.   }
  113.   if(indis==-1)
  114.   {
  115.   indis=random(Form1->ListBox1->Items->Count);
  116.   }
  117.   }
  118.   if(durum=="isim")
  119.   {
  120.   int x=random(3);
  121.  if(x==2)
  122.  {
  123.  int z=random(Form1->ListBox4->Items->Count);
  124.  zarf1=Form1->ListBox4->Items->Strings[z];
  125.  Form1->ListBox4->Items->Delete(z);
  126.  }
  127.  int i=random(Form1->ListBox1->Items->Count);
  128.  fiil=Form1->ListBox1->Items->Strings[i];
  129.  Form1->ListBox1->Items->Delete(i);
  130.  x=random(4);
  131.  if(x==3)
  132.  {
  133.   int z=random(Form1->ListBox4->Items->Count);
  134.   zarf2=Form1->ListBox4->Items->Strings[z];
  135.   Form1->ListBox4->Items->Delete(z);   kontrol=1;
  136.   }
  137.  x=random(2);
  138.  if((x==1)||(kontrol==1))
  139.  {
  140.  int s=random(Form1->ListBox3->Items->Count);
  141.  sifat=Form1->ListBox3->Items->Strings[s];
  142.  Form1->ListBox3->Items->Delete(s);
  143.  }
  144.  
  145.  
  146.    if(zarf2!="")
  147.  {olustur+=zarf2; olustur+=" ";}
  148.  if(fiil!="")
  149.  {olustur+=fiil;  olustur+=" ";}
  150.  if(zarf2!="")
  151.  {olustur+=zarf2; olustur+=" ";}
  152.  if(sifat!="")
  153.  {olustur+=sifat; olustur+=" ";}
  154.  olustur+=gelen;
  155.  Form1->Memo1->Lines->Add(olustur);
  156.  
  157.  
  158.  
  159.    int tut;
  160.  
  161.  for(int k=0;k<Form1->ListBox2->Items->Count;k++)
  162.  {
  163.   if(gelen==Form1->ListBox2->Items->Strings[k])
  164.   {
  165.   tut=k;
  166.   break;
  167.   }
  168.  }
  169.  Form1->ListBox2->Items->Delete(tut);
  170.  
  171.  indis=-1;
  172.  int saydir=0;
  173.  while(saydir<4)
  174.  {
  175.  saydir++;
  176.  String gelenilk=gelen;
  177.  if(saydir==1)
  178.  gelenilk.Delete(1,gelenilk.Length()-3);
  179.  if(saydir==2)
  180.  gelenilk.Delete(1,gelenilk.Length()-2);
  181.  if(saydir==3)
  182.  gelenilk.Delete(1,gelenilk.Length()-1);
  183.  
  184.  for(int j=0;j<Form1->ListBox2->Items->Count;j++)
  185.  {
  186.   String of=Form1->ListBox2->Items->Strings[j];
  187.   if(saydir==1)
  188.   of.Delete(1,of.Length()-3);
  189.   if(saydir==2)
  190.   of.Delete(1,of.Length()-2);
  191.   if(saydir==3)
  192.   of.Delete(1,of.Length()-1);
  193.   if(gelenilk==of)
  194.   {
  195.    indis=j; saydir=4;
  196.    break;
  197.    }
  198.  }
  199.  
  200.   }
  201.   if(indis==-1)
  202.   {
  203.   indis=random(Form1->ListBox2->Items->Count);
  204.   }
  205.   }
  206.  
  207.  
  208.  
  209.  }
  210. //---------------------------------------------------------------------------
  211.  
  212. void __fastcall TForm1::Button1Click(TObject *Sender)
  213. {
  214.  
  215. sifirla();
  216. Memo1->Lines->Clear();
  217. for(int l=0;l<3;l++)
  218. {
  219. Sleep(2000);
  220. randomize();
  221. int x=random(2);
  222. if(x==0)
  223.  {
  224.   int p=random(ListBox1->Items->Count);
  225.   indis=p;
  226.   for(int i=0;i<5;i++)
  227.   cumleolustur("fiil",ListBox1->Items->Strings[indis]);
  228.   sifirla();
  229.   }
  230. if(x==1)
  231. {
  232.   int p=random(ListBox2->Items->Count);
  233.   indis=p;
  234.   for(int i=0;i<5;i++)
  235.   cumleolustur("isim",ListBox2->Items->Strings[indis]);
  236.   sifirla();
  237.   }
  238.   Memo1->Lines->Add("");
  239. }
  240.  
  241. }
  242. //---------------------------------------------------------------------------
  243.  

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