You are on page 1of 5

MUH106 – Bilgisayar Programlama

2020-2021 Bahar Dönemi


Final Ödevi - 3

Veriliş Tarihi: 17 Mayıs 2021


Teslim Tarihi: 26 Mayıs 2021 (saat 23:59’a kadar)
Öğretim Üyesi: Prof. Dr. Hasan OCAK
Yardımcı Öğretim Elemanı: Arş. Gör. Orkun YILMAZ

ÖNEMLİ DUYURU: 3 adet final ödevinin ortalaması yarıyıl sonu sınav notunuz
olarak girilecektir. Bu nedenle ödevlerinizi eksiksiz yapmaya özen gösteriniz.
Final ödevleri sınav yerine geçeceği için kopya konusunda kesinlikle müsamaha
gösterilmeyecektir. Kopya tespit edilen final ödevleri sıfır olarak
değerlendirilecektir.

1-) (25 p.) İki değişkenli iki denklemden oluşan bir doğru denklem sisteminin ortak çözümünü bulan bir C
programı yazınız. Programınızda aşağıda verilen prototiple uyumlu bir fonksiyon yazmanız gerekmektedir.

void FindSolution(double line1_params[], double line2_params[], double intersect_point[])


{
// Line1:
// a1 = line1_params[0];
// b1 = line1_params[1];
// c1 = line1_params[2];
// a1x + b1y + c1 = 0
// Line2:
// a2 = line2_params[0];
// b2 = line2_params[1];
// c2 = line2_params[2];
// a2x + b2y + c2 = 0
// intersect_point: 2 elemanlı output dizisi.
// Kesişim noktasının x ve y koordinatları bu diziye yazılacaktır.
}

Örnek program çıktısı 1:


Örnek program çıktısı 2:

Örnek program çıktısı 3:

Öngörülen hatalar:

1. Hatalı sonuçların bulunduğu durumların tespit edilmesi: -15 puan


2. Programı FindSolution fonksiyonu olmadan gerçeklemek: -15 puan
3. Fonksiyon prototipine uymamak: -10 puan
4. Program çıktısının örnek program çıktıları ile şekilsel olarak uyumlu olmaması: -5 puan
5. Programda açıklama satırlarının olmaması: -5 puan
6. Diğer hatalar için düşülecek puan duruma göre belirlenecektir.
2-) (25 p.) Kullanıcının klavyeden girmiş olduğu N adet gerçek sayının küçükten büyüğe doğru sıralı olup
olmadığını kontrol eden bir C programı yazınız. Programınızda, verilen bir double dizisinin küçükten büyüğe
doğru sıralı olup olmadığını kontrol eden, sıralı diziler için 1, sırasız diziler için 0 değerine dönüş yapan ve
aşağıda verilen prototiple uyumlu bir fonksiyon yazmanız gerekmektedir. Fonksiyon özyineli (recursive)
olmalı ve fonksiyon içerisinde döngü kullanılmamalıdır.

int IsSorted(double x[], int N)


{
}

Örnek program çıktısı 1:

Örnek program çıktısı 2:

Öngörülen hatalar:

1. Hatalı sonuçların bulunduğu durumların tespit edilmesi: -15 puan


2. Fonksiyonun özyineli olmaması: -15 puan
3. Fonksiyon içerisinde döngü kullanmak: -15 puan
4. Programı IsSorted fonksiyonu olmadan gerçeklemek: -15 puan
5. Program çıktısının örnek program çıktıları ile şekilsel olarak uyumlu olmaması: -5 puan
6. Programda açıklama satırlarının olmaması: -5 puan
7. Diğer hatalar için düşülecek puan duruma göre belirlenecektir.
3-) (25 p.) Kullanıcının klavyeden girmiş olduğu bir metnin içerisindeki istenilen karakteri silen bir C
programı yazınız. Programınızda, verilen bir karakter dizisinin içindeki istenilen karakteri silen, aşağıda
verilen prototiple uyumlu bir C fonksiyonu yazmanız gerekmektedir.

void KarakterSil(char str[], char silinecek_karakter)


{
}

Örnek program çıktısı 1:

Bir metin giriniz: Bilgisayar Programlama


Silinecek karakteri giriniz: ?
Sonuc : Bilgisayar Programlama

Örnek program çıktısı 2:

Bir metin giriniz: Programlama FINAL odevi


Silinecek karakteri giriniz: a
Sonuc : Progrmlm FINAL odevi

Öngörülen hatalar:

1. Hatalı sonuçların bulunduğu durumların tespit edilmesi: -15 puan


2. String işlemleri için kütüphane fonksiyonu kullanmak: -15 puan
3. Programı KarakterSil fonksiyonu olmadan gerçeklemek: -15 puan
4. Fonksiyon prototipine uymamak: -10 puan
5. Program çıktısının örnek program çıktıları ile şekilsel olarak uyumlu olmaması: -5 puan
6. Programda açıklama satırlarının olmaması: -5 puan
7. Diğer hatalar için düşülecek puan duruma göre belirlenecektir.

4-) (25p.) Kullanıcının klavyeden girmiş olduğu kartezyen koordinat sistemindeki noktalardan birbirine en
uzak olan nokta çiftini ve bu noktaların arasındaki mesafeyi bulan bir C programı yazınız. Kullanıcının girmiş
olduğu noktaları Nokta_2D dizisinde saklayınız. Nokta_2D yapısını aşağıdaki gibi tanımlayınız.
typedef struct
{
double x, y;
} Nokta_2D;

Örnek program çıktısı:

Nokta sayısı: 4
1. Nokta : 1 1
2. Nokta : 1 4
3. Nokta : 4 1
4. Nokta : 4 4

Birbirine en uzak olan noktalar : (1, 1) – (4, 4)


Noktalar arasındaki Euclid mesafesi: 4.243

Öngörülen hatalar:

1. Hatalı sonuçların bulunduğu durumların tespit edilmesi: -15 puan


2. Yapı kullanmamak veya girilen noktaları yapı dizisinde saklamamak: -10 puan
3. Program çıktısının örnek program çıktıları ile şekilsel olarak uyumlu olmaması: -5 puan
4. Programda açıklama satırlarının olmaması: -5 puan
5. Diğer hatalar için düşülecek puan duruma göre belirlenecektir.
Açıklamalar:

 Ödevler E-destek sistemine tek bir PDF veya Word dosyası


olarak yüklendikten sonra ayrıca
mekatronik.orkun@gmail.com adresine e-posta yoluyla
gönderilmelidir.
 Ödevlerinizi tek bir e-posta olarak gönderiniz. Her biri soruya karşılık gelen .c kaynak kodunu e-postanıza
ayrı ayrı eklemeniz (attachment) gerekmektedir. Eklentileri öğrenci numarası_sorusayısı şeklinde
isimlendiriniz.

ÖRNEK: 070223001_1.c / 070223001_2.c

 .c dosyasının en üst satırına açıklama satırı olarak adınızı soyadınızı ekleyiniz.

 Programlarınızda açıklama satırlarına da yer veriniz. Sizden beklenen her bir satır kodunu açıklamanız
değil, temel işlemlerin açıklamalarını yazmanızdır.

 Kopya ödevler değerlendirilmeye alınmayacaktır.

 Ödevi dersi alan bütün öğrenciler (dersi alttan alıp devam mecburiyeti olmayanlar dâhil) yapmak
zorundadır.

You might also like