Académique Documents
Professionnel Documents
Culture Documents
1 0 0 3 4 7 8 6 7 8 3 5 9 7 4
1 0 0 2 2 4 4 6 4 4 7 3 8 5 3
1 0 0 5 7 7 5 8 8 7 6 8 1 8 6
..........
..........
..........
..........
.......
..........
..........
.......... .......
..........
1 0 0 0 19 5 8 9 8 7 7 8 8 5
Cevap 1)
Soru 2) Aşağıdaki matrislere benzer şekilde bütün elemanları birbirinden farklı (1’ den 9’ a kadar tam sayılar)
olan 3× 3 boyutlu rasgele matrisler üreten bir programın akış diyagramını çiziniz (15 puan) ve programı C
kodları ile yazınız (10 puan).
Program:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
int A[9], M[3][3];
void main(void)
{int i,j,t,k;
clrscr();
Sakarya Üniversitesi Bilgisayar Mühendisliği
Algoritmalar – Final Sınavı
randomize();
do{
for(i=0;i<9;i++) A[i]=random(9)+1;
t=0;
for(i=0;i<9;i++)
{ for(j=0;j<9;j++)
{ if((i!=j)&&(A[i]==A[j])) t++; }}
}while(t!=0);
k=0;
for(i=0;i<3;i++)
{ for(j=0;j<3;j++)
{M[i][j]=A[k];k++;
printf("%d ",M[i][j]); }
printf(" \n"); }
getch(); }
Cevap 3)
a) Satırlarını kendi içlerinde birbirinden bağımsız bir şekilde küçükten büyüğe sıralayan;
Sakarya Üniversitesi Bilgisayar Mühendisliği
Algoritmalar – Final Sınavı
c) Program:
#include <stdio.h>
#include <conio.h>
int n;
int B[200],A[2][100];
void oku(void);
void sirala(void);
void birles(void);
void yaz (void);
void main(void)
{ oku();
sirala();
birles();
yaz();
Sakarya Üniversitesi Bilgisayar Mühendisliği
Algoritmalar – Final Sınavı
}
void oku(void)
{ int i,j;
clrscr();
printf("matrisin sutun sayisini giriniz: ");
scanf("%d",&n);
for(i=0;i<2;i++)
{for(j=0;j<n;j++)
{printf("A[%d][%d]: ",i,j);
scanf("%d",&A[i][j]);
printf(" \n"); }}
}
void sirala(void)
{ int i,j,k,g;
for(k=0;k<2;k++)
{for(i=0;i<n-1;i++)
{for(j=i+1;j<n;j++)
{if(A[k][j]<A[k][i])
{g=A[k][i]; A[k][i]=A[k][j]; A[k][j]=g;}}}}
}
void birles(void)
{ int i=0,alt1=0,alt2=0;
while (i<2*n)
{ if ((alt1<n)&&(alt2<n))
{ if (A[0][alt1]<=A[1][alt2])
{B[i]=A[0][alt1]; i++; alt1++;}
else
{B[i]=A[1][alt2]; i++; alt2++;}}
else if (alt1<n)
{B[i]=A[0][alt1]; i++; alt1++;}
else if (alt2<n)
{B[i]=A[1][alt2]; i++; alt2++;}
}
}
void yaz(void)
{int i;
for(i=0;i<2*n;i++) printf("%d ",B[i]);
printf(" \n");
getch();
}
Soru 4) B matrisi, 128× 128 boyutlu bir A matrisinin sıfırdan farklı elemanlarını ve bunların yerlerini
saklayan p× 3 boyutlu bir matris olsun (p: A matrisindeki 0’ dan farklı değer sayısı). Girilen bu özellikteki bir
B matrisini kullanarak A matrisini oluşturan bir programın akış diyagramını çiziniz (20 puan).
Not: A matrisinin 0’ dan farklı fark değerlerinin B matrisinde 3. sütunda ve bu değerin yer indislerinin de B
matrisinde 1. ve 2. sütunlarda tutulduğunu varsayınız.
Cevap 4)
Sakarya Üniversitesi Bilgisayar Mühendisliği
Algoritmalar – Final Sınavı