An open API service indexing awesome lists of open source software.

https://github.com/gusanmaz/bmb212_algorithms

NKÜ Bilgisayar Mühendisliği BMB212 Veri Yapıları Dersi Uygulama Notları, Projeleri ve Ödevleri
https://github.com/gusanmaz/bmb212_algorithms

algorithms algorithms-and-data-structures course homework-assignments homework-project java programming

Last synced: 2 months ago
JSON representation

NKÜ Bilgisayar Mühendisliği BMB212 Veri Yapıları Dersi Uygulama Notları, Projeleri ve Ödevleri

Awesome Lists containing this project

README

          

# NKÜ Bilgisayar Mühendisliği Veri Yapıları (BMB212) Dersi Uygulamalarının Not ve Duyuruları

Bu repo'da uygulama derslerine ait materyallere (ders notlari, odev bilgileri, proje bilgileri, duyurular vb.) ulasabilirsiniz.

# DUYURU

**Final sınavında tüm proje ve ödev soruları ile bağlantılı soru sorulabilir**

## 1. Uygulama (22 Mart 2022)

### Instructor

Ars. Gor. Güvenç Usanmaz

Oda: B207

Bolum: Bilgisayar Muhendisligi

Email: gusanmaz intList = new ArrayList();
Scanner sc;
try {
sc = new Scanner(new FileReader(path)).useDelimiter("\\s+");
}
catch(Exception ex){
return null;
}

while (sc.hasNext()) {
String token = sc.next();
int num = Integer.parseInt(token);
intList.add(num);
}

int[] intArray = new int[intList.size()];
int ind = 0;
for (Integer v:intList){
intArray[ind++] = v.intValue();
}
return intArray;
}

}
```

Yukaridaki programin ciktisi:

```bash
Dosyadaki 1. tam sayi 5'dir.
Dosyadaki 2. tam sayi 6'dir.
Dosyadaki 3. tam sayi 7'dir.
Dosyadaki 4. tam sayi 8'dir.
Dosyadaki 5. tam sayi 9'dir.
Dosyadaki 6. tam sayi 4'dir.
Dosyadaki 7. tam sayi 3'dir.
Dosyadaki 8. tam sayi 5'dir.
Dosyadaki 9. tam sayi 4'dir.
Dosyadaki 10. tam sayi 3'dir.
```

Asagida bu metodu kullanan baska bir kod ve bu kodun terminal ciktisi verilmektedir. Verilen kod komut satiri argumani olarak alinan dosyadaki sayilarin toplamini ekrana yazdirmaktadir.

```java
import java.io.FileReader;
import java.util.*;

public class Main {
public static void main(String[] args){
int[] arr = ReadIntArrayFromFile(args[0]);
int sum = 0;
for (int i = 0; i < arr.length; i++){
sum += arr[i];
}
System.out.println(sum);
}

public static int[] ReadIntArrayFromFile(String path){
List intList = new ArrayList();
Scanner sc;
try {
sc = new Scanner(new FileReader(path)).useDelimiter("\\s+");
}
catch(Exception ex){
return null;
}

while (sc.hasNext()) {
String token = sc.next();
int num = Integer.parseInt(token);
intList.add(num);
}

int[] intArray = new int[intList.size()];
int ind = 0;
for (Integer v:intList){
intArray[ind++] = v.intValue();
}
return intArray;
}
}
```

```bash
cat listem.txt #cat komutu ile dosya icerigini ekrana yazdirabilirsiniz
1 3 5 89 -9 87 34
javac Main.java #Yukaridaki kodu derlemek icin terminale yazdigimiz komut
java Main.class listem.txt #Derlenmis programi listem.txt argumani ile calistirma
210 #Calistirdigimiz programin ciktisi
```

### Yeni Odevler (Odev Verilme Tarihi: 28 Mart 2022)

Bu odevleri kodlayabilmeniz icin `ReadIntArrayFromFile` metodunu kullanmaniz gerekmektedir. Sablon kodlarda size hazir verilen bu metodun kodlari ile oynamayiniz ve herhangi bir degisiklik yapmayiniz!

* [Odev4 DiziCarpim](https://classroom.github.com/a/Y5yCjGxG) Arguman olarak icinde tamsayilarin saklandigi ve bu sayilarin bosluk karakteri ile birbirlerin ayrildigi bir metin dosyasinin konumunu (path, yol, dosya ismi) alan ve bu dosyadaki sayilarin carpimini ekrana yazdiran bir program yaziniz. Metin dosyasi bos bir dosya ise (icinde hic tamsayi bulunmazsa program ekrana 1 (carpma isleminin etkisiz elemani) yazdirmalidir. ***Son gonderim tarihi: 3 Nisan 2022 23:00***

```bash
cat list.txt
1 5 6 9 9 -3
javac Main.java
java Main list.txt
-7290
```

```bash
cat deneme.txt
1 1 1 -1 1 1 8 -4 9 2 2 1
javac Main.java
java Main deneme.txt
1152
```

```bash
cat deneme3.txt
#deneme3.txt dosyasinda sadece bosluk karakterleri var.
javac Main.java
java Main deneme3.txt
1 # 1 carpma isleminin etkisiz elemanidir.
```

* [Odev5 DiziCiftOrtalama](https://classroom.github.com/a/hpXYd1dN) Arguman olarak icinde tamsayilarin saklandigi ve bu sayilarin bosluk karakteri ile birbirlerin ayrildigi bir metin dosyasinin konumunu (path, yol, dosya ismi) alan ve bu dosyadaki sayilardan cift olanlarin ortalamasini ekrana yazdiran bir program yaziniz. Listede cift sayi yoksa ortalama 0 olacagi icin ekrana sifir yazdirilmalidir. Tam sayilarin ortalamasi rasyonel sayi (double) cikabilir. Programiniz kodlarken bu durumu goz onunde bulundurunuz! ***Son gonderim tarihi: 3 Nisan 2022 23:00***

```bash
cat a.txt
1 4 6 9 9 -3
javac Main.java
java Main a.txt
5
```

```bash
cat deneme.txt
0 0 0 0 1 1 8 -4 9 2 0 0
javac Main.java
java Main deneme.txt
0.666
```

```bash
cat cift.txt
1 6 4 4
javac Main.java
java Main cift.txt
4.666
```

* [Odev6 DiziFark](https://classroom.github.com/a/Kw0B3ymL) Arguman olarak icinde tamsayilarin saklandigi ve bu sayilarin bosluk karakteri ile birbirlerin ayrildigi bir metin dosyasinin konumunu (path, yol, dosya ismi) alan ve bu dosyadaki sayilardan en buyugu ile en kucugu arasindaki farki `max - min` ekran yazdiran bir program yaziniz. Dosyadaki en kucuk ve en buyuk sayi ayni sayi program ekrana 0 yazdirmalidir. Ayni sekilde arguman olarak alinan dosyada herhangi bir sayi bulunmuyorsa program ekrana 0 yazdirmalidir. ***Son gonderim tarihi: 3 Nisan 2022 23:00***

```bash
cat a.txt
1 4 6 9 9 -3
javac Main.java
java Main a.txt
12 #9 - (-3)
```

```bash
cat deneme.txt
1 1 6 7 5 8 8 8 1
javac Main.java
java Main deneme.txt
7 # 8 - 1
```

```bash
cat cift.txt
4 4 4 4 4
javac Main.java
java Main cift.txt
0 #4 - 4
```

### Vize Uygulama Sorulari ve Cozumleri

* [Gunduz Sorusu](https://gist.github.com/gusanmaz/1d113e4ce797bd9504531e3621fbef76)
* [Gunduz Cozumu](https://gist.github.com/gusanmaz/848659b167877875ed00c931e0e7fc95)
* [Gece Sorusu](https://gist.github.com/gusanmaz/b930c94bc2170bc2a78719054b6e81c2)
* [Gece Cozumu](https://gist.github.com/gusanmaz/5c2ca4dfd2e4da377dbb44ae33519b40)

### 9 Mayis 2022 (Odev ve Proje Degerlendirmeleri)

* 4., 5. ve 5. odev ile 1. 2. proje gonderimleriniz degerlendirilmistir.
* 1., 2. ve 3. odev ile ilgili not degerlendirme tablolari guncellenmistir.
* [Notlariniz gormek icin tiklayiniz!](https://github.com/gusanmaz/BMB212_Algorithms/blob/main/grades.md)

## Trafik (22 Mayis 2022)

![trafik_22_mayis](images/trafik_22_mayis.png)