Skip to content

Commit e872df6

Browse files
committed
Yeni sorular eklendi ✨
1 parent 56445a3 commit e872df6

File tree

8 files changed

+430
-0
lines changed

8 files changed

+430
-0
lines changed
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
# Yüzler Basamağı Üzerinde İşlemler Yapmak
2+
3+
## ❓ Soru
4+
Tam kısmındaki değeri en fazla 4 haneli girilen bir rasyonel sayının tam kısmının yüzler hanesindeki değeri çift ise bu değerin küpünün bir tam kare olup olmadığını bulan algoritmayı yazınız.
5+
6+
## ⛓ Program Kısımları
7+
1. Sayı girmek.
8+
2. Koşulun sağlanıp sağlanmadığını kontrol etmek.
9+
3. Sonucu ekrana yazdırmak.
10+
11+
12+
## 👓 Çözüm Yöntemi
13+
- Ondalık kısmını yok etmek için sayı `int`e dönüştürürüz.
14+
- Yüzleri bulduktan sonra koşulu kontrol ederiz.
15+
16+
## 👩‍🔧 Çözüm Adımları
17+
1. Değişkenlerin tanımlanması.
18+
2. `sayı`nın girilmesi.
19+
3. `sayı`nın `int`’e dönüştürülmesi.
20+
4. Yüzler basamağının bulunması.
21+
5. Koşulun kontrol edilmesi.
22+
6. Sonuçların yazdırılması.
23+
24+
## 🤖 Kod
25+
<details>
26+
<summary>Tıkla</summary>
27+
28+
```java
29+
import java.util.*;
30+
public class onaltinci_Program {
31+
public static void main(String arg[]) {
32+
Scanner input = new Scanner(System.in);
33+
int tam_sayi, kalan = 0; // 1. adım
34+
float sayi;
35+
sayi = input.nextFloat(); // 2. adım
36+
tam_sayi = (int) sayi; // 3. adım
37+
tam_sayi = tam_sayi / 100; // 4. adım
38+
kalan = tam_sayi % 10;
39+
if (kalan % 2 == 0) { // 5. adım
40+
kalan = kalan * kalan * kalan;
41+
is_tam_kare(kalan);
42+
} else
43+
System.out.println("cift degil"); // 6. adım
44+
input.close();
45+
}
46+
private static void is_tam_kare(int x) { // I. nota bak
47+
int i, t = 0;
48+
for (i = 0; i <= x / 2 + 1; i++) {
49+
if (x == i * i) {
50+
t = 1;
51+
break;
52+
}
53+
}
54+
if (t == 1)
55+
System.out.println("tam kare"); // 6. adım
56+
else
57+
System.out.println("tam kare degil");
58+
}
59+
}
60+
```
61+
</details>
62+
63+
64+
## 🎉 Ekran Çıktısı
65+
66+
```
67+
68+
```
69+
70+
## 💡 Notlar
71+
1. [Önceki](../C-TamKareSayılar) Sorunun yöntemini kullanarak sayının tam kare olup olmadığını kontrol eden bir fonksiyon oluşturduk.
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
import java.util.*;
2+
public class YuzlerIslemleri {
3+
public static void main(String arg[]) {
4+
Scanner input = new Scanner(System.in);
5+
6+
// Değişkenlerin tanımlanması
7+
int tam_sayi, kalan = 0;
8+
float sayi;
9+
10+
// “sayı”nın girilmesi
11+
sayi = input.nextFloat();
12+
13+
// “sayı”nın int’e dönüştürülmesi
14+
tam_sayi = (int) sayi;
15+
16+
// Yüzler basamağının bulunması
17+
tam_sayi = tam_sayi / 100;
18+
kalan = tam_sayi % 10;
19+
20+
// Koşulun kontrol edilmesi
21+
if (kalan % 2 == 0) {
22+
kalan = kalan * kalan * kalan;
23+
is_tam_kare(kalan);
24+
} else
25+
// Sonuçların yazdırılması
26+
System.out.println("cift degil");
27+
input.close();
28+
}
29+
30+
private static void is_tam_kare(int x) {
31+
int i, t = 0;
32+
for (i = 0; i <= x / 2 + 1; i++) {
33+
if (x == i * i) {
34+
t = 1;
35+
break;
36+
}
37+
}
38+
if (t == 1)
39+
// Sonuçların yazdırılması
40+
System.out.println("tam kare");
41+
else
42+
System.out.println("tam kare degil");
43+
}
44+
}

E-TabanÇevirme/README.md

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# Onluk Tabanından İkilik Tabana Çevirme
2+
3+
## ❓ Soru
4+
10’luk sayı sistemindeki bir sayıyı 2’lik sayı sistemine çeviren algoritmayı yazınız.
5+
6+
## ⛓ Program Kısımları
7+
1. Sayı girmek.
8+
2. Çevirme işlemini yapmak.
9+
3. Sonucu ekrana yazdırmak.
10+
11+
## 👓 Çözüm Yöntemi
12+
- 10’luk sayı sisteminden 2’lik sayı sistemine bir sayı dönüştürmek için basamak değerlerini tek tek hesaplarız. Her basamak değerini hesaplamak için döngümüzde iki adım var:
13+
- `Sayı%2`yi hesaplayıp 10(i) ile çarparız; `i` 0’dan başlayıp basamağa göre artar.
14+
- Sayıyı 2’ye böleriz.
15+
- Çevrilen sayıyı bulmak için her basamak değerinin hesaplandığında önceki hesaplanana ekleriz.
16+
17+
## 👩‍🔧 Çözüm Adımları
18+
1. Değişkenlerin tanımlanması.
19+
2. Sayının girilmesi.
20+
3. `sayi>0` iken:
21+
- Çevirme işleminin yapılması.
22+
4. Çevrilen sayının ekrana yazdırılması.
23+
24+
## 🤖 Kod
25+
<details>
26+
<summary>Tıkla</summary>
27+
28+
29+
```java
30+
import java.util.*;
31+
public class TabanCevirme {
32+
public static void main(String arg[]) {
33+
Scanner input = new Scanner(System.in);
34+
int sayi, s = 0, i = 0, basamak; // 1. adım
35+
sayi = input.nextInt(); // 2. adım
36+
while (sayi > 0) // 3. adım
37+
{
38+
basamak = (int)((sayi % 2) * Math.pow(10, i)); // 3. adım (a), I. nota bak
39+
i++;
40+
sayi = sayi / 2;
41+
s = s + basamak;
42+
}
43+
System.out.println(s); // 4. adım
44+
input.close();
45+
}
46+
}
47+
```
48+
</details>
49+
50+
51+
## 🎉 Ekran Çıktısı
52+
53+
```
54+
67
55+
1000011
56+
```
57+
58+
## 💡 Notlar
59+
1. Sayının kuvvetini almak için `Math.pow(taban, kuvvet)` hazır fonksiyonunu kullandık.

E-TabanÇevirme/TabanCevirme.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import java.util.*;
2+
public class TabanCevirme {
3+
public static void main(String arg[]) {
4+
Scanner input = new Scanner(System.in);
5+
6+
// Değişkenlerin tanımlanması
7+
int sayi, s = 0, i = 0, basamak;
8+
9+
// Sayının girilmesi
10+
sayi = input.nextInt();
11+
12+
while (sayi > 0)
13+
{
14+
15+
// Çevirme işleminin yapılması
16+
basamak = (int)((sayi % 2) * Math.pow(10, i));
17+
i++;
18+
sayi = sayi / 2;
19+
s = s + basamak;
20+
}
21+
22+
// Çevrilen sayının ekrana yazdırılması
23+
System.out.println(s);
24+
input.close();
25+
}
26+
}

F-HaneSayısı/HaneSayisi.java

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
import java.util.*;
2+
public class HaneSayisi {
3+
public static void main(String arg[]) {
4+
Scanner input = new Scanner(System.in);
5+
// Değişkenlerin tanımlanması
6+
int ondalik_h = 0, tam_h = 0, t_sayi;
7+
float sayi, sayi1;
8+
9+
// “sayi”nın girilmesi
10+
sayi = input.nextFloat();
11+
sayi1 = sayi;
12+
13+
// “t_sayi”ya sayının tam değerinin atanması
14+
t_sayi = (int) sayi;
15+
16+
while (t_sayi != 0) {
17+
// “t_sayi” 10’a bölüp “tam_h”nın artırılması
18+
t_sayi = t_sayi / 10;
19+
tam_h++;
20+
}
21+
22+
while (sayi % 10 != 0)
23+
{
24+
// “sayi” 10’la çarpıp “ondalik_h”nın artırılması
25+
sayi = sayi * 10;
26+
ondalik_h++;
27+
}
28+
29+
// Sonuçların ekrana yazdırılması
30+
System.out.println("Tam kisminin hane sayisi= " + tam_h);
31+
if (sayi1 % 10 != 0)
32+
// `sayı%10=0` olması için birlerin 0 olması lazım ama hane
33+
// sayısına bir fazla eklemiş olduğumuzdan yazdırmadan önce sayıyı 1 azaltırız.
34+
System.out.println("Ondalik kisminin hane sayisi= " + (ondalik_h - 1));
35+
else
36+
System.out.println("Ondalik kisminin hane sayisi= " + (ondalik_h));
37+
input.close();
38+
}
39+
}

F-HaneSayısı/README.md

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
# Tam ve Ondalık Hane Sayısı
2+
3+
## ❓ Soru
4+
Rastgele girilen bir rasyonel sayının ondalık kısmının ve tam kısmının hane sayısını bulan algoritmayı yazınız.
5+
6+
## ⛓ Program Kısımları
7+
1. Sayı girmek.
8+
2. Tam ve ondalık hane sayısını bulmak.
9+
3. Sonuçları ekrana yazdırmak.
10+
11+
12+
## 👓 Çözüm Yöntemi
13+
- Sayının tam kısmını elde etmek için rasyonel sayının değerini tam sayıya dönüştürerek yeni int değişkene atarız. `150.25 ---int---> 150`
14+
- Sayının ondalık kısmını elde etmek için `sayi%10` sıfır olmadığı sürece hane sayacını artırıp sayıyı 10’la çarparız.
15+
`32.46``sayi%10!=0``32.46*10` (1)
16+
`324.6``sayi%10!=0``324.6*10` (2)
17+
`3246``sayi%10!=0``3246*10` (3)
18+
`32460``sayi%10=0`
19+
20+
## 👩‍🔧 Çözüm Adımları
21+
1. Değişkenlerin tanımlanması.
22+
2. `sayi`nın girilmesi.
23+
3. `t_sayi`ya sayının tam değerinin atanması.
24+
4. `t_sayi!=0` iken:
25+
- `t_sayi` 10’a bölüp `tam_h`nın artırılması
26+
5. `sayi%10!=0` iken:
27+
- `sayi` 10’la çarpıp `ondalik_h`nın artırılması.
28+
6. Sonuçların ekrana yazdırılması.
29+
30+
## 🤖 Kod
31+
<details>
32+
<summary>Tıkla</summary>
33+
34+
35+
```java
36+
import java.util.*;
37+
public class HaneSayisi {
38+
public static void main(String arg[]) {
39+
Scanner input = new Scanner(System.in);
40+
int ondalik_h = 0, tam_h = 0, t_sayi; // 1. adım
41+
float sayi, sayi1;
42+
sayi = input.nextFloat(); // 2. adım
43+
sayi1 = sayi;
44+
t_sayi = (int) sayi; // 3. adım
45+
while (t_sayi != 0) { // 4. adım
46+
t_sayi = t_sayi / 10; // 4. adım (a)
47+
tam_h++; // 4. adım (a)
48+
}
49+
while (sayi % 10 != 0) // 5. adım
50+
{
51+
sayi = sayi * 10; // 5. adım (a)
52+
ondalik_h++; // 5. adım (a)
53+
}
54+
System.out.println("Tam kisminin hane sayisi= " + tam_h); // 6. adım
55+
if (sayi1 % 10 != 0)
56+
System.out.println("Ondalik kisminin hane sayisi= " + (ondalik_h - 1));
57+
else
58+
System.out.println("Ondalik kisminin hane sayisi= " + (ondalik_h)); // I. nota bak
59+
input.close();
60+
}
61+
}
62+
```
63+
</details>
64+
65+
66+
## 🎉 Ekran Çıktısı
67+
68+
```
69+
150.25
70+
Tam kisminin hane sayisi= 3
71+
Ondalik kisminin hane sayisi= 2
72+
```
73+
74+
## 💡 Notlar
75+
1. `sayı%10=0` olması için birlerin 0 olması lazım ama hane sayısına bir fazla eklemiş olduğumuzdan yazdırmadan önce sayıyı 1 azaltırız.

0 commit comments

Comments
 (0)