-
Notifications
You must be signed in to change notification settings - Fork 2
/
12-hesap-makinesi-v2.htm
235 lines (173 loc) · 8.06 KB
/
12-hesap-makinesi-v2.htm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
<!DOCTYPE html>
<html>
<head>
<title>Hesap Makinesi V2</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" type="text/css" href="kutuphane/basic.css">
<script src="kutuphane/basic.js" type="text/javascript" charset="utf-8"></script>
<script>
/*
ALGORİTMA:
- 4 işlem yapabilen, klasik bir hesap makinesi uygulaması.
*/
// DEĞİŞKENLER
// İşlem sonuçlarının görüneceği metin kutusu. (Label)
var lblEkran
// İşlem yapılacak 1. sayı.
var sayi1 = ""
// İşlem yapılacak 2. sayı.
var sayi2 = ""
// İşlem yapılacak matematik operatörü +, -, * veya / olabilir.
var isaret = ""
// İşlem sonucunu taşıyan değişken.
var sonuc = ""
// FONKSİYONLAR
// İlk çalışan fonksiyon.
var start = function() {
// Sayfanın arka plan rengini belirle.
page.color = "whitesmoke"
// EKRAN Parametreler: left, top, width, height
lblEkran = createLabel(50, 50, 435, "auto")
lblEkran.text = "0"
//metin boyutunu belile (pixel cinsinden)
lblEkran.fontSize = 40
// DÜĞMELER
for (var i = 0; i <= 3; i++) {
for (var k = 0; k <= 2; k++) {
// Yeni düğme (Button) nesnesi oluştur.
var btnDugme = createButton()
// Düğmnin metnini belirle 1 den 12 ye kadar.
// Font boyutu.
btnDugme.fontSize = 50
// Metin
btnDugme.text = (i * 3) + (k + 1)
// genişlik: 100px, yükseklik: 100px olarak belirle.
btnDugme.width = 100
btnDugme.height = 100
// Üst boşluk: 150px, button yüksekliği: 100px, button arası boşluk: 10px
btnDugme.top = 150 + (110 * i)
// Sol boşluk: 50px, button genişliği: 100px, button arası boşluk: 10px
btnDugme.left = 50 + (110 * k)
// Düğmenin arka plan rengini gri olarak belirle.
btnDugme.color = "lightgray"
// Eğer düğme metni, 10 dan küçük ise,
if (btnDugme.text < 10) {
//1 den 9 a kadar olan sayılar için,
btnDugme.onClick(sayiEkle)
// Eğer düğme metni 10 ise,
} else if (btnDugme.text == 10) {
// Düğmenin metnini 0 olarak belirle.
btnDugme.text = 0
// Düğmeye basıldığında, sayiEkle fonksiyonunu çalıştır.
btnDugme.onClick(sayiEkle)
// Eğer düğme metni 11 ise,
} else if (btnDugme.text == 11) {
// Düğmenin yazısını "C" olarak belirle.
btnDugme.text = "C"
// Düğmeye basıldığında temizle fonksiyonunu çalıştır.
btnDugme.onClick(temizle)
// Eğer düğme metni 12 ise,
} else if (btnDugme.text == 12) {
// Düğmenin yazısını "=" olarak belirle.
btnDugme.text = "="
// Düğmenin rengini turuncu olarak belirle.
btnDugme.color = "orange"
// Düğmeye basıldığında sonucuHesapla fonksiyonunu çalıştır.
btnDugme.onClick(sonucuHesapla)
}
}
}
// OPERATÖR DÜĞMELERİ
for (var i = 0; i <= 3; i++) {
// Yeni düğme (Button) nesnesi oluştur
var btnDugme = createButton()
// Font boyutu.
btnDugme.fontSize = 50
// Genişlik: 150px, yükseklik: 100px olarak belirle
btnDugme.width = 150
btnDugme.height = 100
// Üst boşluk: 150px, button yüksekliği: 100px, button arası boşluk: 10px
btnDugme.top = 150 + (110 * i)
// Sol boşluk: 390px
btnDugme.left = 390
// Düğmenin arka plan rengini belirle.
btnDugme.backgroundColor = "default"
// Düğmeye basıldığında isaretSec fonksiyonunu çalıştır.
btnDugme.onClick(isaretSec)
// Duğme nesnelerinin metinlerini ayarla.
if (i == 0) {
btnDugme.text = "+"
} else if (i == 1) {
btnDugme.text = "-"
} else if (i == 2) {
btnDugme.text = "*"
} else {
btnDugme.text = "/"
}
}
}
// DİĞER FONKSİYONLAR
// Yeni bir sayının girişini yapan fonksiyon.
var sayiEkle = function(basilanDugme) {
// Eğer isaret değişkeninin içeriği boş ise,
if (isaret == "") {
// İlk sayı giriliyor.
sayi1 = sayi1 + basilanDugme.text
// Ekranı güncelle.
lblEkran.text = sayi1
} else {
// İkinci sayı giriliyor.
sayi2 = sayi2 + basilanDugme.text
// Ekranı güncelle.
lblEkran.text = sayi2
}
}
// İşareti seçen fonksiyon.
var isaretSec = function(basilanDugme) {
// Hangi işlemin seçildiğini değişkene aktar.
isaret = basilanDugme.text
// Ekranda bu işlemin işaretini göster.
lblEkran.text = basilanDugme.text
}
// Tüm işlemleri temizleyen fonksiyon.
var temizle = function(basilanDugme) {
// Değişkenlerin içeriklerini temizle.
sayi1 = ""
sayi2 = ""
isaret = ""
// Ekranı 0 yap.
lblEkran.text = "0"
}
// Sonucu hesaplayıp, ekranda gösteren fonksiyon.
var sonucuHesapla = function(basilanDugme) {
// İsaret değişkeninin içeriğine göre işlem yap.
if(isaret == "+") {
// TOPLAMA
sonuc = num(sayi1) + num(sayi2)
// Not: num(metin) fonksiyonu,
// metin olarak gönderilen parametrenin,
// sayıya çevrilmiş halini cevap verir.
} else if (isaret == "-") {
// ÇIKARMA
sonuc = num(sayi1) - num(sayi2)
} else if (isaret == "*") {
// ÇARMA
sonuc = num(sayi1) * num(sayi2)
} else if (isaret == "/") {
// BÖLME
sonuc = num(sayi1) / num(sayi2)
}
// Değişkenlerin içeriklerini temizele.
temizle()
// İşlem sonucunu ekranda göster.
lblEkran.text = "= " + sonuc
}
/*
GELİŞTİRME ÖNERİSİ:
- Uygulamanın görünümünü özelleştirin.
*/
</script>
</head>
<body></body>
</html>