Skip to content

Commit aaa047d

Browse files
committed
Temel sorular derlendi ✈️
1 parent e872df6 commit aaa047d

File tree

8 files changed

+442
-0
lines changed

8 files changed

+442
-0
lines changed
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import java.util.Scanner;
2+
public class KesirSadelestirme {
3+
public static void main(String[] args) {
4+
Scanner input = new Scanner(System.in);
5+
6+
// Değişkenlerin tanımlanması
7+
int pay, payda, i = 2, kucuk;
8+
System.out.print("Payi gir:");
9+
10+
// Pay ve paydanın girilmesi
11+
pay = input.nextInt();
12+
System.out.print("Paydayi gir:");
13+
payda = input.nextInt();
14+
15+
// Pay ve paydanın küçüğünün tespit edilmesi
16+
if (pay > payda)
17+
kucuk = Math.abs(payda);
18+
else kucuk = Math.abs(pay);
19+
while (i <= kucuk)
20+
{
21+
22+
if (pay % i == 0 && payda % i == 0)
23+
{
24+
// pay, payda ve “kucuk” “i”ye bölünmesi
25+
pay /= i;
26+
payda /= i;
27+
kucuk /= i;
28+
i = 2;
29+
} else i++;
30+
}
31+
32+
// Kesrin son halinin yazdırılması
33+
System.out.printf("%d / %d", pay, payda);
34+
input.close();
35+
}
36+
}

H-KesirSadeleştirme/README.md

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
# Kesir Sadeleştirme
2+
3+
## ❓ Soru
4+
Girilen bir kesri sadeleştiren programı yazınız.
5+
6+
## ⛓ Program Kısımları
7+
1. Pay ve payda değerlerini girmek.
8+
2. Sadeleştirme işlemini gerçekleştirmek.
9+
3. Kesrin sadeleştirilmiş halini yazdırmak.
10+
11+
## 👓 Çözüm Yöntemi
12+
- Başlangıç değeri 2 olan `i` adlı bir sayaç oluşturulur, pay ve paydanın sayaca bölünemediği durumlarda sayaç artırılır. Pay ve paydanın sayaca bölünebildiği durumlarda pay ve payda sayaca bölünüp sayaç yine 2’ye eşitlenir.
13+
- `i`, pay veya paydanın en küçüğünden büyük olmadığı surece bu işlem devam ettirilir.
14+
15+
## 👩‍🔧 Çözüm Adımları
16+
1. Değişkenlerin tanımlanması.
17+
2. Pay ve paydanın girilmesi.
18+
3. Pay ve paydanın küçüğünün tespit edilmesi.
19+
4. `i` `kucuk`ten büyük olmadığı sürece:
20+
- Pay ve payda `i`ye bölünebilirse:
21+
- İkisi ve `kucuk` `i`ye bölünür.
22+
- `i` 2’ye eşitlenir.
23+
- Pay ve payda `i`ye bölünemezse:
24+
- `i` artırılır.
25+
5. Kesrin son halinin yazdırılması.
26+
27+
## 🤖 Kod
28+
<details>
29+
<summary>Tıkla</summary>
30+
31+
32+
```java
33+
import java.util.Scanner;
34+
public class KesirSadelestirme {
35+
public static void main(String[] args) {
36+
Scanner input = new Scanner(System.in);
37+
int pay, payda, i = 2, kucuk; //1. adim
38+
System.out.print("Payi gir:");
39+
pay = input.nextInt(); //2. adim
40+
System.out.print("Paydayi gir:");
41+
payda = input.nextInt(); //2. adim
42+
if (pay > payda) //3. adim
43+
kucuk = Math.abs(payda);
44+
else kucuk = Math.abs(pay);
45+
while (i <= kucuk) //4. adim
46+
{
47+
if (pay % i == 0 && payda % i == 0) //4. adim (a)
48+
{
49+
pay /= i; //4. adim (a)(*)
50+
payda /= i;
51+
kucuk /= i;
52+
i = 2; //4. adim (a)(**)
53+
} else i++; //4. adim (b)
54+
}
55+
System.out.printf("%d / %d", pay, payda); //5. adim
56+
input.close();
57+
}
58+
}
59+
```
60+
</details>
61+
62+
63+
## 🎉 Ekran Çıktısı
64+
65+
```
66+
Payi gir:172
67+
Paydayi gir:36
68+
43 / 9
69+
```
70+
71+
## 💡 Notlar
72+
1. II. Yol: Pay ve paydanın OBEB’i bulunur, ikisi ona bölünerek sadeleştirilmiş haline getirebiliriz.

I-ŞansOyunu/README.md

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
# Şans Oyunu
2+
3+
## ❓ Soru
4+
Şans oyunundaki sayılar iki farklı kutudan rastgele seçilmektedir. 49 adet beyaz top bulunan kutudan 5 farklı top, 42 adet kırmızı top bulunan kutudan bir top seçilmektedir.
5+
`Math.random()` komutunu kullanarak rastgele seçimle şans toplarını belirleyin.
6+
7+
> Not: İlk kutudaki sayılar tekrar edemez, 5 beyaz top 1-49 arasında farklı değerlere sahip olacaktır. Kırmızı top ise 30-72 arasında bir değer alacaktır.
8+
9+
## ⛓ Program Kısımları
10+
1. Farklı rastgele sayılar üretmek.
11+
2. Sayıları ekrana yazdırmak.
12+
13+
## 👓 Çözüm Yöntemi
14+
- İki sayı arasında rastgele tam sayı üretmek için aşağıdaki komut kullanılır:
15+
```
16+
rastgele = (int)(Math.random()*(Max-Min=1)+Min); (Max ve Min değerleri dahil)
17+
```
18+
- Üretilen sayıların tekrarlanmasını engellemek için:
19+
1. `N+1`’lik boolean tipinden `A` dizisi oluşturulur.
20+
2. Sayı üretildikten sonra `A[sayı] == false` sayı ilk defa üretiliyor anlamına gelir. Bu sayının kullanıldığını belirtmek için `A[sayı] = true` yapılır. `A[sayı] == false` değilse sayı önceden üretilmiş anlamına gelir o yüzden tekrar `rastgele` komutu verilir.
21+
22+
## 👩‍🔧 Çözüm Adımları
23+
1. Değişkenlerin tanımlanması.
24+
2. 5 kere dönen döngünün oluşturulması.
25+
a- `b=0`
26+
b- `b=0` olduğu sürece:
27+
- `beyaz` üretilip yazdırılır.
28+
3. `kirmizi`nın üretilip yazdırılması.
29+
30+
## 🤖 Kod
31+
<details>
32+
<summary>Tıkla</summary>
33+
34+
```java
35+
public class SansOyunu {
36+
public static void main(String arg[]) {
37+
boolean beyaz_top[] = new boolean[50];
38+
int beyaz, kirmizi, i, b;
39+
System.out.print("Beyaz Toplar: ");
40+
for (i = 0; i < 5; i++) {
41+
b = 0;
42+
while (b == 0) {
43+
beyaz = (int)(Math.random() * 48 + 1);
44+
if (beyaz_top[beyaz] == false) {
45+
System.out.print(beyaz + "\t");
46+
b = 1;
47+
beyaz_top[beyaz] = true;
48+
}
49+
}
50+
}
51+
kirmizi = (int)(Math.random() * 42 + 30);
52+
System.out.print("\nKirmizi Top: " + kirmizi);
53+
}
54+
}
55+
```
56+
</details>
57+
58+
59+
## 🎉 Ekran Çıktısı
60+
61+
```
62+
Beyaz Toplar: 37 19 16 3 20
63+
Kirmizi Top: 54
64+
```
65+
66+
## 💡 Notlar
67+
1. Hafızada fazla yer kaplamamak için kontrol dizisini boolean tipinden tanımladık.

I-ŞansOyunu/SansOyunu.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
public class SansOyunu {
2+
public static void main(String arg[]) {
3+
boolean beyaz_top[] = new boolean[50];
4+
int beyaz, kirmizi, i, b;
5+
System.out.print("Beyaz Toplar: ");
6+
for (i = 0; i < 5; i++) {
7+
b = 0;
8+
while (b == 0) {
9+
beyaz = (int)(Math.random() * 48 + 1);
10+
if (beyaz_top[beyaz] == false) {
11+
System.out.print(beyaz + "\t");
12+
b = 1;
13+
beyaz_top[beyaz] = true;
14+
}
15+
}
16+
}
17+
kirmizi = (int)(Math.random() * 42 + 30);
18+
System.out.print("\nKirmizi Top: " + kirmizi);
19+
}
20+
}

J-Şifreleme/README.md

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
# Şifreleme Mantığı
2+
3+
## ❓ Soru
4+
Girilen bir metin üzerinde aşağıdaki işlemleri yapan programı yazınız:
5+
1. Metindeki harf sayısı ve rakam sayısını bulma.
6+
2. Küçük harfleri büyük harflere ve rakamları `(yeni_rakam = 9 - rakam)`e göre çevirme.
7+
3. Metnin son halini tersten yazdırma.
8+
9+
## ⛓ Program Kısımları
10+
1. Metni girmek.
11+
2. Metin üzerinde işlemleri yapmak.
12+
3. Sonuçları yazdırmak.
13+
14+
## 👓 Çözüm Yöntemi
15+
- Büyük harfi küçük harfe çevirmek için `küçük_ch = ch – 'A' + 'a'` eşitliği kullanılır
16+
- ASCII sayısal örnek:
17+
```
18+
'h' = 'H' – 'A' + 'a'
19+
104 = 72 – 65 + 97
20+
```
21+
22+
- Küçük harfi büyük harfe çevirmek için `büyük_ch = ch – 'a' + 'A'` eşitliği kullanılır.
23+
- ASCII sayısal örnek:
24+
```
25+
'H' = 'h' – 'a' + 'A'
26+
72 = 104 – 97 + 65
27+
```
28+
- Bir dizinin tersten yazdırılması için, `for`un sayacı `dizinin uzunluğu-1`den başlar 0’a eşit olana kadar sürer.
29+
30+
## 👩‍🔧 Çözüm Adımları
31+
1. Değişkenlerin tanımlanması.
32+
2. Metnin girilmesi.
33+
3. Harfler dizisinin oluşturulması.
34+
4. Metnin `string` den `char` dizisine çevrilmesi.
35+
5. Metnin uzunluğu kadar dönen döngünün oluşturulması.
36+
- Karakterlerin kontrol edilmesi.
37+
6. Sonuçların yazdırılması.
38+
39+
## 🤖 Kod
40+
<details>
41+
<summary>Tıkla</summary>
42+
43+
44+
```java
45+
import java.util.*;
46+
public class Sifreleme {
47+
public static void main(String arg[]) {
48+
public static void main(String arg[]) {
49+
Scanner input = new Scanner(System.in);
50+
int i, harf_sayi = 0, rakam_sayi = 0; // 1. Adım
51+
String metin;
52+
metin = input.nextLine(); // 2. Adım
53+
char harfler[] = new char[metin.length()]; // 3. Adım
54+
harfler = metin.toCharArray(); // 4. Adım
55+
for (i = 0; i < metin.length(); i++) { // 5. Adım
56+
if (harfler[i] >= 'a' && harfler[i] <= 'z') { // 5. Adım (a)
57+
harfler[i] = (char)(harfler[i] - 'a' + 'A');
58+
harf_sayi++;
59+
} else
60+
if (harfler[i] >= 'A' && harfler[i] <= 'Z')
61+
harf_sayi++;
62+
else if (harfler[i] >= '0' && harfler[i] <= '9') {
63+
harfler[i] = (char)('9' - harfler[i] + '0');
64+
rakam_sayi++;
65+
}
66+
}
67+
System.out.println("Harf sayisi= " + harf_sayi); // 6. Adım
68+
System.out.println("Rakam sayisi= " + rakam_sayi);
69+
System.out.print(harfler[i]);
70+
}
71+
}
72+
```
73+
</details>
74+
75+
76+
## 🎉 Ekran Çıktısı
77+
78+
```
79+
Harf sayisi= 4
80+
Rakam sayisi= 3
81+
$651 %^R ANQ
82+
```
83+
84+
## 💡 Notlar
85+
1. Dizinin uzunluğunu `.legnth()` fonksiyonunun yardımıyla elde ettik.
86+
2. Metnin harflerini tek tek kontrol etmek için metni `char` dizisine atadık.
87+
3. `char` tipi üzerinde yapılan matematiksel işlemlerin sonuçları `int` tipindedir, bu yüzden sonucu `char`a dönüştürdük.

J-Şifreleme/Sifreleme.java

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
import java.util.*;
2+
public class Sifreleme {
3+
public static void main(String arg[]) {
4+
public static void main(String arg[]) {
5+
Scanner input = new Scanner(System.in);
6+
7+
// Değişkenlerin tanımlanması
8+
int i, harf_sayi = 0, rakam_sayi = 0;
9+
String metin;
10+
11+
// Metnin girilmesi
12+
metin = input.nextLine();
13+
14+
// Harfler dizisinin oluşturulması
15+
char harfler[] = new char[metin.length()];
16+
17+
// Metnin string’den char dizisine çevrilmesi
18+
harfler = metin.toCharArray();
19+
20+
// Metnin uzunluğu kadar dönen döngünün oluşturulması
21+
for (i = 0; i < metin.length(); i++) {
22+
23+
// Karakterlerin kontrol edilmesi.
24+
if (harfler[i] >= 'a' && harfler[i] <= 'z') {
25+
harfler[i] = (char)(harfler[i] - 'a' + 'A');
26+
harf_sayi++;
27+
} else
28+
if (harfler[i] >= 'A' && harfler[i] <= 'Z')
29+
harf_sayi++;
30+
else if (harfler[i] >= '0' && harfler[i] <= '9') {
31+
harfler[i] = (char)('9' - harfler[i] + '0');
32+
rakam_sayi++;
33+
}
34+
}
35+
// Sonuçların yazdırılması
36+
System.out.println("Harf sayisi= " + harf_sayi);
37+
System.out.println("Rakam sayisi= " + rakam_sayi);
38+
System.out.print(harfler[i]);
39+
}
40+
}

0 commit comments

Comments
 (0)