Bilgisayar Programlama Vize Soruları - Bilecik OBS

advertisement
BİLECİK ŞEYH EDEBALİ ÜNİVERSİTESİ
BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ
PROGRAMLAMA DİLLERİ II
FİNAL SINAVI
1 (30p)
2 (10p)
Sınav Tarihi:
A.S. İlk Harfleri:
No:
3 (30p)
4 (30p)
T(100p)
2 OCAK 2013, 11.00
/
İmza:
SORU VE CEVAP KÂĞIDINA ADINIZIN VE SOYADINIZIN BAġ HARFLERĠNĠ YAZINIZ.
SINAV SÜRESĠNCE DERSLE ĠLGĠLĠ TÜM NOTLAR KAPALIDIR.
ĠLK 30 DK. SINAVDAN ÇIKMAK YASAKTIR.
SORULAR
1. Aşağıda arayüzü verilen Hafıza kartı oyunu için verilen soruları yanıtlayınız.
Hafıza kartı oyun kuralları:











//--------------------------------------------------------------------------#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//--------------------------------------------------------------------------1
Oyuna başlandığında tüm butonlar (Buttonxxx)
pasif halde olacaktır.
Başla BitBtn1 basıldığında butonlar aktif
olacaktır.
Herhangi iki butona basıldığında butonların
Caption kısımlarında rastgele {'X', 'Y', 'Z', 'T',
'O', 'M', 'E', 'D'} harflerinden birisi görünecektir.
Eğer seçilen iki buton Caption kısımları aynı ise
butonlar kaybolacaktır.
Eğer iki buton Caption kısımları farklı ise belirli
bir süre ekranda görünen iki harf ortadan
kaybolacaktır. (Caption kısmından)
Her iki butona basılma bir deneme hakkıdır.
Deneme hakkında sınır yoktur. (Başarana kadar
devam…)
Her denemeniz sonrası (doğru veya yanlış
denemeler) deneme sayınız LabeledEdit1’de
gözükecektir.
Oyunda tüm butonlar kaybolduğunda bir
ShowMessage ile “KAZANDINIZ” yazısı
gözükecektir.
Başla BitBtn1 ile tekrar oyuna başlanabilecektir.
Close BitBtn2 ile oyundan çıkılacaktır.
BİLECİK ŞEYH EDEBALİ ÜNİVERSİTESİ
BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ
PROGRAMLAMA DİLLERİ II
FİNAL SINAVI
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
/*Kullanılacak değiĢkenlerin tutulduğu Global d isimli dizi tanımlanıyor…*/
char d[16]={'X','X','O','O','M','M','Z','Z','T','T','E','E','D','D','Y','Y'};
/*Oyun isimli sınıf içerinde değiĢkenler ve fonksiyonlar var, bunları kullanacaksınız DĠKKAT!!!*/
class oyun{
private:
public:
/*basma değiĢkeni ile butonların basılma durumları kontrol edilecektir. Oyunda butonlar ya ilk ya da ikinci kez
basılabilir. Ġlk basıldığında ve ikinci basıldığında farklı durumlar olacaktır. DĠKKAT!!!*/
/*sayac değiĢkeni ile oyun sonuna gelinip gelinmediği test edilecektir. Her doğru tahminde sayacınızı
arttırmayı/azaltmayı unutmayınız ;-)*/
/*deneme değiĢkeni ile yapılan baĢarılı/baĢarısız tahminler sayılacaktır. Oyuna her baĢlandığında deneme
değiĢkenini sıfırlamayı unutmayın!!!*/
int basma, sayac, deneme;
/*Butona ilk bastığınız da butona ait d[x] değerini tutmanız gerekiyor. Bunun için gec değiĢkenini
kullanabilirsiniz…*/
char gec;
/*Ġkinci butona basıldığında ilk buton ile ilgili iĢlemi nasıl yapacaksınız. Ġlk basılan butonun bilgisi Buttonptr
göstericisinde tutulacaktır.*/
TButton *Buttonptr;
/*Oyun baĢlangıcında d dizisinin karıĢtırılması iĢlemi basla_dagit iĢlevi ile gerçekleĢtirilecektir.*/
void basla_dagit(char *cptr);
/*Oyunda ikinci butona basıldığında iki butona ait dizi elemanları aynı olmadığında belirli bir süre gecikme (2e8
yeterli gibi) ile butonlardaki caption bilgileri silinmelidir.*/
void gecikme(void);
/*Oyun sonuna gelinip gelinmediği bilgisi (0/1) sayac değiĢken değeri ile bu iĢlevde gerçekleĢtirilecektir.*/
int test(int a);
};
/* SORU 1. oyun sınıfına ait iĢlev bildirimleri verilmiĢ olan 3 fonksiyonun kodunu yazınız. 30PUAN*/
/*oyun sınıfı türünden memorygame burada tanımlanıyor. DĠKKAT sınıfımızın ismi oyun değil, memorygame */
class oyun memorygame;
//--------------------------------------------------------------------------__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
srand(time(0));
}
//--------------------------------------------------------------------------2
BİLECİK ŞEYH EDEBALİ ÜNİVERSİTESİ
BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ
PROGRAMLAMA DİLLERİ II
FİNAL SINAVI
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Button1->Enabled=False; Button2->Enabled=False; Button3->Enabled=False; Button4->Enabled=False;
Button5->Enabled=False; Button6->Enabled=False; Button7->Enabled=False; Button8->Enabled=False;
Button9->Enabled=False; Button10->Enabled=False; Button11->Enabled=False; Button12->Enabled=False;
Button13->Enabled=False; Button14->Enabled=False; Button15->Enabled=False; Button16->Enabled=False;
}
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
/* SORU 2. Oyuna baĢlangıç iĢlevi kodunu oyun kuralları doğrultusunda yazınız.10PUAN*/
}
//--------------------------------------------------------------------------void __fastcall TForm1::Button1Click(TObject *Sender)
{
/* SORU 3. Oyundaki 16 butondan biri olan Button1Click iĢlevi kodunu oyun kuralları doğrultusunda yazınız.
30PUAN*/
}
//--------------------------------------------------------------------------void __fastcall TForm1::Button13Click(TObject *Sender)
{
/* SORU 4. Oyundaki 16 butondan biri olan Button13Click iĢlev kodunu oyun kuralları doğrultusunda yazınız.
30PUAN*/
}
//--------------------------------------------------------------------------Sınav Süresi : 90 dk’dır.
Basarılar
U.Y.
3
BİLECİK ŞEYH EDEBALİ ÜNİVERSİTESİ
BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ
PROGRAMLAMA DİLLERİ II
FİNAL SINAVI
EKRAN GÖRÜNTÜLERĠ
Şekil 1. İlk açılış ekran görüntüsü
Şekil 2. Başla butonu sonrası
Şekil 4. İkinci butona basılma anı
Şekil 5. Oyunun ilerleyişi
4
Şekil 3. Butona ilk basılma anı
Şekil 6. Oyun sonu
Download