Numarası : CEVAP Adı Soyadı : ANAHTARI Açıklamalar: 1. 2. 3. 4. 5. 6. Toplam 12 16 20 16 16 20 100 Bu alanı boş bırakınız. Sınavda ders notlarının kullanımı serbest ancak alış-verişi yasaktır. Sınav esnasında cep telefonu, bilgisayar, hesap makinası, vb. araçların kullanılması yasaktır. Cep telefonları kapalı konumda olmalıdır. Cep telefonu açık durumda olanların sınavları geçersiz sayılacaktır. Sınav süresi 90 dakikadır. Başarılar dilerim. SORULAR 1. Aşağıdaki satırlar çalıştırılınca elde edilecek çıktıları yandaki boşluklara yazınız. int N=16; for (int i=1;i<=n;i++) if (N%i==0) System.out.format("%3d",i); 1 2 4 8 16 int N=50; for(int i=1;i<n;i++) if( (int) Math.sqrt(i) == Math.sqrt(i) ) System.out.println(i); 1 4 9 16 25 36 49 int N=20; for(int i=2;i<n;i++){ boolean ok=true; for(int j=2;j<i;j++) if ( i % j ==0) ok=false; if (ok) System.out.format("%3d",i); 2 3 5 7 11 13 17 19 for(int i=2;i<4;i++){ for(int j=2;j<5;j++) System.out.format("%dPi/%d ",i,j); System.out.println(); 2Pi/2 2Pi/3 2Pi/4 3Pi/2 3Pi/3 3Pi/4 1
2. x+2y+3z = 100 denkleminin pozitif tamsayılarda kaç farklı çözümünü olduğunu bulup, ekranda görüntüleyen programı Java programlama dilinin yazım kurallarına dikkat ederek aşağıya yazınız. Açıklamalar: Örneğin, x = 25,y = 30,z = 5 ve x = 13,y = 6,z = 25 bu çözümlerden sadece ikisidir. Çözümlerin ekrana yazdırılmasına gerek yoktur. Sadece kaç çözüm olduğu istenmektedir. int say=0; for(int x=1;x<=100;x++) for(int y=1;y<=100;y++) for(int z=1;z<=100;z++) if(x+2*y+3*z == 100) say++; System.out.println("Çözüm sayısı=" + say); 3. 0 ile 9 arasında 100 kez rastgele bir tamsayı tutup, herbir sayının kaçar kez tutulduğunu ekrana yazan programı java programlama dilinin yazım kurallarına dikkat ederek aşağıya yazınız. Programınızın vereceği çıktı aşağıdakine benzer olmalıdır. 0 1 2 3 4 5 6 7 8 9 ---------------------------------------- 8 10 10 7 15 10 11 9 8 12 int[] sayilar = new int[10]; for(int i=0; i<10; i++) sayilar[i] = 0; for(int i=0; i<100; i++) sayilar[ (int) (Math.random()*10) ]++; for(int i=0;i<10;i++) System.out.format("%4d",i); System.out.format("%n----------------------------------------%n"); for(int i=0;i<10;i++) System.out.format("%4d",sayilar[i]); 2
4. x ve y bileşenleri [ 3, 3] aralığından rastgele tamsayılar olan 40 tane (x, y) noktası belirleyip, bu (x, y) noktalarının düzlemin kaçıncı bölgesinde olduğunu ekranda görüntüleyen programı java programlama dilinin yazım kurallarına dikkat ederek aşağıya yazınız. Not: Eğer (x,y) noktası eksenlerden birinin üzerinde ise o zaman noktanın bir bölgede değil, ilgili eksenin üzerinde olduğu yazdırılmalıdır. Programınızın çıktısı aşağıdakine benzer olmalıdır. ( 1, 0) x-ekseni üzerindedir. ( 0, 0) orijindedir. ( 1,-1) IV. Bölgededir. (-1, 2) II. Bölgededir.. II. Bölge y I. Bölge x III. Bölge IV. Bölge for(int i=0;i<40;i++) { int x= (int) (Math.random()*8-4); int y= (int) (Math.random()*8-4); if (x==0 && y==0) System.out.format("(%2d,%2d) orijindedir.%n",x,y); else if (y==0) System.out.format("(%2d,%2d) x-ekseni üzerindedir.%n",x,y); else if (x==0) System.out.format("(%2d,%2d) y-ekseni üzerindedir.%n",x,y); else if (x>0 && y>0) System.out.format("(%2d,%2d) I. Bölgededir.%n",x,y); else if (x<0 && y>0) System.out.format("(%2d,%2d) II. Bölgededir.%n",x,y); else if (x<0 && y<0) System.out.format("(%2d,%2d) III. Bölgededir.%n",x,y); else if (x>0 && y<0) System.out.format("(%2d,%2d) IV. Bölgededir.%n",x,y); 3
5. Aşağıdaki satırlar çalıştırıldığında elde edilecek çıktıları tablonun 2. sütununda gösteriniz. Benzer şekilde verilen çıktıyı elde etmek için gerekli satırları da 1. sütuna yazınız. StdDraw.setXscale(-5,5); StdDraw.setYscale(-5,5); double x0=0.0; double y0=0.0; double aci=-math.pi/4; for(int i=0;i<6;i++){ aci = -1.0 * aci; double x1= x0 + Math.cos(aci); double y1= y0 + Math.sin(aci); StdDraw.line(x0, y0, x1, y1); x0=x1; y0=y1; int r=5; while(r>0){ StdDraw.circle(x0, y0, r); x0++; r--; for(int i=-5;i<6;i++) StdDraw.line(-5, i, 5, -i); for(int i=5;i>0;i--){ if (i%2 == 0) StdDraw.setPenColor(StdDraw.BLACK); else StdDraw.setPenColor(StdDraw.GRAY); StdDraw.filledSquare(x0, y0, i); 4
6. Elemanları rastgele pozitif tamsayılar ve herbir satırındaki elemanların toplamı 20 olan 4 4 boyutlarında rastgele bir matris oluşturup, ekranda matris formunda görüntüleyen programı java programlama dilinin yazım kurallarına dikkat ederek aşağıya yazınız. int N = 4; int M = 20; int[][] A = new int[n][n]; boolean ok=true; do { ok=true; for(int i=0;i<n;i++){ int toplam=0; for(int j=0;j<n;j++){ int sayi = (int) (Math.random()*(M-toplam) + 1); A[i][j] = sayi; toplam += sayi; if (toplam>m) {ok=false;break; if (toplam!=m) {ok=false;break; while(!ok); for(int i=0;i<n;i++) { for(int j=0;j<n;j++) System.out.format("%3d",A[i][j]); System.out.println(); 5