Excel'le Adım Adım Program Yazma

Çevrimdışı yunushocam

  • Bilge Meclis Üyesi
  • *****
  • 1.645
  • 46.374
  • 3. Sınıf Öğretmeni
  • 1.645
  • 46.374
  • 3. Sınıf Öğretmeni
# 15 Nis 2017 16:59:35
Çengel bulmaca veya kelime avı hazırlama programına başladım. Eğer güzel bir şeyler ortaya çıkarsa buradan paylaşacağım.

Çevrimdışı yunushocam

  • Bilge Meclis Üyesi
  • *****
  • 1.645
  • 46.374
  • 3. Sınıf Öğretmeni
  • 1.645
  • 46.374
  • 3. Sınıf Öğretmeni
# 15 Nis 2017 19:34:32
[linkler sadece üyelerimize görünmektedir.]
Çengel bulmaca veya kelime avı hazırlama programına başladım. Eğer güzel bir şeyler ortaya çıkarsa buradan paylaşacağım.

Çengel bulmaca programı hazırlamaya karar verdim.
Programın hedefi
1)Girilen sorulardan istenilen sayıda seçip otomatik olarak kullanacak
2)Bir soru datası oluşursa (1000 soruya kadar) Bu sorularda her seferinde farklı çalışma oluşacak

Şimdi program ilk soru ve cevabı rastgele yazıyor. Bu bir başlangıç ilk soru sonrası fonksiyonlarla ilerlemeyi düşünüyorum.

'temizlik
Range("a2:p25") = ""

sorusayisi = Range("ae1")
sorulacakss = Range("ae2")
ReDim sorular(sorusayisi)
ReDim cevaplar(sorusayisi)
ReDim soruisaret(sorusayisi)
ReDim yazilansorular(sorulacakss)
ReDim yazilancevaplar(sorulacakss)

For a = 1 To sorusayisi
sorular(a) = Cells(a + 3, 18)
cevaplar(a) = Cells(a + 3, 29)
Next a




''ilk sorumuz
yeniden:
Randomize
yataydikey = Int(Rnd() * 2 + 1)
soru = Int(Rnd() * sorusayisi + 1)
cevaplar(1) = cevaplar(soru)
soruisaret(1) = 1

 

If yataydikey = 1 Then  'dikey
kelime = cevaplar(1)
kelimeuzunluk = Len(kelime)
If kelimeuzunluk >= 11 Then GoTo yeniden
ymin = 4
ymax = 13 - (kelimeuzunluk)
xmin = 2
xmax = 15
x = aradasayi(xmax, xmin)
y = aradasayi(ymax, ymin)

For a = 1 To kelimeuzunluk
Cells(y + a - 1, x) = Mid(kelime, a, 1)
Next a
Cells(y - 1, x) = 1
End If




If yataydikey = 2 Then 'yatay
kelime = cevaplar(1)
kelimeuzunluk = Len(kelime)
If kelimeuzunluk >= 13 Then GoTo yeniden
xmin = 4
xmax = 15 - (kelimeuzunluk)
ymin = 2
ymax = 13
x = aradasayi(xmax, xmin)
y = aradasayi(ymax, ymin)

For a = 1 To kelimeuzunluk
Cells(y, x + a - 1) = Mid(kelime, a, 1)
Next a
Cells(y, x - 1) = 1


End If



Cells(15, 1) = sorular(soru)

Çevrimdışı yunushocam

  • Bilge Meclis Üyesi
  • *****
  • 1.645
  • 46.374
  • 3. Sınıf Öğretmeni
  • 1.645
  • 46.374
  • 3. Sınıf Öğretmeni
# 15 Nis 2017 19:34:51
Kullanılan ilk fonksiyon

Function aradasayi(buyuk, kucuk)
Randomize
aradasayi = Int(Rnd() * (buyuk - kucuk + 1) + kucuk)
End Function

Çevrimdışı yunushocam

  • Bilge Meclis Üyesi
  • *****
  • 1.645
  • 46.374
  • 3. Sınıf Öğretmeni
  • 1.645
  • 46.374
  • 3. Sınıf Öğretmeni
# 15 Nis 2017 20:32:52
Çengel bulmacanın şimdiki ekran görüntüsü

 

Çevrimdışı gokselgursu

  • Bilge Meclis Üyesi
  • *****
  • 3.992
  • 13.317
  • 3. Sınıf Öğretmeni
  • 3.992
  • 13.317
  • 3. Sınıf Öğretmeni
# 15 Nis 2017 20:59:51
[linkler sadece üyelerimize görünmektedir.]
Çengel bulmacanın şimdiki ekran görüntüsü

 
Son halini merakla bekliyorum. Nasıl bir görünümü olacak acaba? Çalışmalarınızda başarılar dilerim.

Çevrimdışı yunushocam

  • Bilge Meclis Üyesi
  • *****
  • 1.645
  • 46.374
  • 3. Sınıf Öğretmeni
  • 1.645
  • 46.374
  • 3. Sınıf Öğretmeni
# 15 Nis 2017 21:18:15
[linkler sadece üyelerimize görünmektedir.]
Son halini merakla bekliyorum. Nasıl bir görünümü olacak acaba? Çalışmalarınızda başarılar dilerim.

Sağolun, inşallah iyi bir ürün ortaya çıkar ve herkes faydalanır.

Çevrimdışı yunushocam

  • Bilge Meclis Üyesi
  • *****
  • 1.645
  • 46.374
  • 3. Sınıf Öğretmeni
  • 1.645
  • 46.374
  • 3. Sınıf Öğretmeni
# 16 Nis 2017 02:22:34
[linkler sadece üyelerimize görünmektedir.]
Son halini merakla bekliyorum. Nasıl bir görünümü olacak acaba? Çalışmalarınızda başarılar dilerim.

Program çok yavaş çalışıyor ama şimdilik ekran görüntüsündeki çalışma hazırlanabildi. Bu çalışmayı 1 dakikada hazırladı. Bilgisayar hızına ve hazırlamış olduğunuz soru datasına göre bu süre kısalır.
Ekran görüntüsünü paylaşıyorum.


Çevrimdışı yunushocam

  • Bilge Meclis Üyesi
  • *****
  • 1.645
  • 46.374
  • 3. Sınıf Öğretmeni
  • 1.645
  • 46.374
  • 3. Sınıf Öğretmeni
# 16 Nis 2017 02:25:33
Bunu ise 2 saniyede hazırladı, yani hızı değişken

Çevrimdışı yunushocam

  • Bilge Meclis Üyesi
  • *****
  • 1.645
  • 46.374
  • 3. Sınıf Öğretmeni
  • 1.645
  • 46.374
  • 3. Sınıf Öğretmeni
# 16 Nis 2017 02:58:53
Bu da son hali (şimdilik)

Çevrimdışı yunushocam

  • Bilge Meclis Üyesi
  • *****
  • 1.645
  • 46.374
  • 3. Sınıf Öğretmeni
  • 1.645
  • 46.374
  • 3. Sınıf Öğretmeni
# 16 Nis 2017 02:59:51
Sırada sayılara ok veya işaret koyma var.

Çevrimdışı yunushocam

  • Bilge Meclis Üyesi
  • *****
  • 1.645
  • 46.374
  • 3. Sınıf Öğretmeni
  • 1.645
  • 46.374
  • 3. Sınıf Öğretmeni
# 16 Nis 2017 03:43:52
Çalışmanın son hali

Çevrimdışı gokselgursu

  • Bilge Meclis Üyesi
  • *****
  • 3.992
  • 13.317
  • 3. Sınıf Öğretmeni
  • 3.992
  • 13.317
  • 3. Sınıf Öğretmeni
# 16 Nis 2017 07:55:11
[linkler sadece üyelerimize görünmektedir.]
Çalışmanın son hali

Excel programlamayı bilmiyorum ama yardıma ihtiyacınız olursa yapabildiğim kadarıyla yardım etmeye çalışırım.

Çevrimdışı yunushocam

  • Bilge Meclis Üyesi
  • *****
  • 1.645
  • 46.374
  • 3. Sınıf Öğretmeni
  • 1.645
  • 46.374
  • 3. Sınıf Öğretmeni
# 16 Nis 2017 08:51:17
[linkler sadece üyelerimize görünmektedir.]
Excel programlamayı bilmiyorum ama yardıma ihtiyacınız olursa yapabildiğim kadarıyla yardım etmeye çalışırım.

programın çalışma mantığı (daha pratik diye bu yolu seçtim)
1)ilk cevap ekrana yazılıyor
2)Sonra ikinci cevap ilk cevapla ortak harfi olacak şekilde yazılıyor, eğer ortak harf yoksa en basa dönülüyor
3)Bu şekilde her kelime yazılıyor
4)Sonra kelimeler silinip hücrelerin kalması sağlanıyor
5)Numaralara yön oku ekleniyor

Algoritma zenginleştirilebilse her şey daha kısa sürecek ama beni aşıyor herhalde.

Not: Süre kısaltılınca program paylaşılacak

Çevrimdışı yunushocam

  • Bilge Meclis Üyesi
  • *****
  • 1.645
  • 46.374
  • 3. Sınıf Öğretmeni
  • 1.645
  • 46.374
  • 3. Sınıf Öğretmeni
# 16 Nis 2017 08:54:15
Alan küçük olmasıyla da alakalı, 10'dan fazla soru yazınca program kilitleniyor ve cevap alamıyor.

Çevrimdışı yunushocam

  • Bilge Meclis Üyesi
  • *****
  • 1.645
  • 46.374
  • 3. Sınıf Öğretmeni
  • 1.645
  • 46.374
  • 3. Sınıf Öğretmeni
# 16 Nis 2017 09:47:01
Algoritmayı değiştirdim. Artık rastgele bakmak yerine sırayla bütün hücrelere bakıyor kelime yazılabiliyor mu diye, bu süreyi kısalttı.

 


Egitimhane.Com ©2006-2023 KVKK