Eastern Mediterranean University Faculty of Arts & Sciences -- Department Of Mathematics BİLG213 BİLGİSAYAR PROGRAMLAMAYA GİRİŞ DÖNEM SONU SINAVI GÜZ 2009-2010 13 Ocak 2010, Sınav Süresi: 120 dakika. İsim Öğrenci Numarası Soyisim Grup 1 Soru 1 2 3 4 5 6 Toplam Puanlama /20 /25 /15 /15 /12 /31 /118 1-Aşağıdaki görüntüyü elde edebileceğiniz bir C++ program kodu yazınız. (20 puan) x xx xxx xxxx xxxxx... ( klavyeden gireceğiniz sayı kadar).. xxxx xxx xx x int i,k; // donguler icin tam sayi degiskenleri int max; // en fazla kac tane X yazilacagini belirtmek icin cout <<" en fazla kac tane x yazilacak--->"; cin >> max; // en fazla kac tane X yazilacagini belirtmek icin max değerini klavyeden alır. for (i=1; i<= max ; i++) // kac tane X yazilacagini belirten dongu // k degiskeni kullanilarak i tane X yazilacak k=i; // while dongüsü X yazma islemini kontrol edecek while (k >0) cout << "X "; k--; // her i kadar X yazildiktan sonra satir atlanacak cout << "\n"; // bir satir atladiktan sonra 1 X az olmak üzere for (i=(max-1); i>=0 ; i--) // azalarak i kadar X yazdiracak dongu. // kac tane X yazilacagini belirten dongu k=i; // k degiskeni kullanilarak i tane X yazilacak while (k >0) cout << "X "; k--; // while dongüsü X yazma islemini kontrol edecek cout << "\n"; // her i kadar X yazildiktan sonra satir atlanacak return 0; // isletim sistemine tam sayi donulmesi.
2-500 öğrencinin final sınav notlarını klavyeden girmemizi sağlayan bir C++ program kodu yazınız ve bu girilen final sınav notlarını büyükten küçüğe doğru sıralatınız. Ekrana çıktı olarak en yüksek final sınav notu ile en küçük final sınav notu arasındaki farkı yansıtınız. Not1: Sınav notları girilirken DEVAM edilip edilmeyeceği de sorulmalı. E/H cevabına göre ve 500 sınır sayısına göre not girilme işlemi durdurulabilecek!.. (Ders notlarımızda buna benzer bir örnek vardır!..) Not2: İlk önce notların girişi sonra da sıralama işlemi yapılabilir. En sonunda ise çıktı ekrana yansıtılabilir. (25 puan) #define max 500 int Final_notlari[max],i,k; // i ve k döngülerde kullanilacak değişkenler int elemansayisi; // Final_notu bir dizi (ARRAY). elemansayisi ise kaç char devam; // tane sayi girildiğini tutacak olan değişken int gecici; // devam ise sayi girişini denetleyecek olan değişken. // sayilarin yer değişmesinde kullanilacak değişken. for (i=0;i<max;i++) Final_notlari[i]=0; // tüm dizi değerlerine 0 degeri ata. i=0; while ((i<max) && (devam!='h')) // biz dur diyene kadar Final_notlari dizisine cout << (i+1) << ". sayiyi giriniz > "; // değerler girilmesi için hazirlanan cin >> Final_notlari[i]; cout << "\n"; // döngü modülü. i=i+1; cout << " DEVAM ETMEK ISTIYORMUSUNUZ? >E/H "; cin >> devam; cout << " \n"; elemansayisi = i; // tüm girilen notlari BÜYÜKTEN KÜÇÜĞE doğru sıralayacak olan modül. for (i=1;i<elemansayisi;i++) // donguyu 1. elemandan baslattik k=i; // hangi elemani kiyasliyorsak onun yerini while ((Final_notlari[k]>Final_notlari[k 1]) && (k>0)) // kaybetmemek icin k değişkenini kullandik // while döngüsü, doğru olduğu süre sayilarin gecici=final_notlari[k]; // yerleri değismeye devam edecek. Final_notlari[k]=Final_notlari[k 1]; // 0 pozisyonu kontrol edildikten sonra duracak Final_notlari[k 1]=gecici; // ve onceden siralanmislara dokunmayacak k ; // tabii ki kıyaslanan sayi küçük olduğu sürece // yer değişimi devam edecek. cout << Final_notlari[0] Final_notlari[elemansayisi 1] <<" \n"; // Farkın ekrana aktarilmasi. return 0; // isletim sistemine tam sayi donulmesi.
3- Klavyeden girilecek olan matrixlerini toplayabilen bir program yazınız. Not: Matrisler içerisine bilgi girişini yaptırmanıza gerek yok. Bilgiler girilmiş, yani A ve B matrislerinin içlerinde değerler var diye kabul ediniz. Sadece toplama işlemini yaptırınız. (15 puan) int A[2][2], B[2][2], C[2][2]; int i,j; /* matris değerlerinin matrislere girilmesi for(j=0;j<2;j++) cin >> A[i][j]; cin >> B[i][j]; /* TOPLAMA İŞLEMİNİN YAPILMASI for(j=0;j<2;j++) C[i][j]=A[i][j]+B[i][j]; /*Toplam matrisinin ekrana yansıtılması for(j=0;j<2;j++) cout << C[i][j]<<"\n"; return 0; // isletim sistemine tam sayi donulmesi.
4- Aşağıda verilen program kodu, yarıçapı klavyeden girilen bir kürenin hacimini hesaplıyor. Sizler gerekli değişiklikleri yaparak, klavyeden girilecek olan ÇAP (yarıçap değil!.. ) için bir kürenin hacimini hesaplayınız. Programı, döngü/kıyas veya gerekli olan herhangi bildiğiniz bir yöntem yardımı ile eğer ÇAP 1 den küçük ise hacim hesaplama yapılmasın, büyük ise hesaplama yapılsın, şeklinde değiştiriniz. Döngü 500 kere çalışsın. (15 puan) #include <iostream.h> # define pi 3.14 void main() float r; float hacim; cout<<" kürenin yari capini giriniz > "; cin>>r; cout <<"\n "; #include <iostream.h> # define pi 3.14 void main() float r; float hacim; int i; for (i=0;i<500;i++) cout<<" kürenin capini giriniz > "; cin>>r; cout <<"\n "; hacim=(4/3)*pi*r*r*r; cout << hacim; if (r>1) hacim=(4/3)*pi*r*r*r/8; cout << hacim; 5- Yukarıda değişiklik yaptığınız programın (değişiklik yapılmış halinin) Algoritmasını yazınız. (12 puan) A1: BAŞLA A2: ÇAP gir A3: sayaç=0 A4: ÇAP < 1 git A7 A5: hacim=(4/3)*pi*r*r*r/8; A6: Yaz hacim A7: sayaç=sayaç+1; A8: Eğer sayaç <500 git A2 A9: DUR.
6- Aşağıdakileri kısaca açıklayınız. i-algoritma (3 puan): Algoritma verilerin bilgisayara hangi çevre biriminden girileceğinin, problemin nasıl çözüleceğinin, hangi basamaklardan geçirilerek sonuç alınacağının, sonucun nasıl ve nereye yazılacağının sözel olarak ifade edilmesi biçiminde tanımlanabilir. ii-donanım(2 puan): Bilgisayarların elle tutulur gözle görülür fiziksel olan kısımına donanım denilmektedir. iii-yazılım (2 puan): Bir problemin bilgisayar yardımıyla çözümünü sağlayan, çizim yapan, yazı yazan, Internet te gezinme işlemini gerçekleştiren her türlü programa, bu programları hazırlayan programlara ve bunların ürettikleri veri veya belgelere, hepsine birden yazılım denir. C++ Programlama dili ile ilgili iv-kaç çeşit döngü öğrendik: (isimlerini yazınız) (4 puan) FOR, WHILE v-kaç çeşit Kıyaslama Öğrendik: (isimlerini yazınız) (4 puan) IF, CASE vi- Ders notlarınızda olan ve dönem içerisinde yazıp size verdiğim, sizlerin de bunları yazıp bana iletmiş olduğunuz programlardan 16 tanesini kısaca anlatınız. (Paskal üçgeni hariç) (16 puan)