You are on page 1of 2

İR

Soru 2.'ye ait C programını bu kutuya kodlayınız. Erciyes Üniversitesi, Mühendislik Fakültesi, Bilgisayar Mühendisliği Bölümü
Bilgisayar Programlama-I Dersi, Yıl İçi Sınavı, 21.11.2012

Ad Soyad: Numara:1030 1.Ö 2.Ö

T
Sorular

1. Aşağıda akış diyagramı verilen programın görevini diyagramın sağındaki küçük kutucuğa yazınız. Akış
diyagramına karşılık gelen programı C programlama dilini kullanarak aşağıdaki büyük kutuya kodlayınız.N=10.
Soru 1.'deki programın görevini bu kutucuğa yazınız
Başla

K
..................................................................
..................................................................
i=0,···,N-1
..................................................................
j=0,···,N-1 A[i,j]=? ..................................................................
..................................................................

E
F=1

Soru 1.'e ait C programını bu kutuya kodlayınız.

i=0,···,N-1 F=F*A[i,N-1-i]

Bitir

N
----------------------------

2. Tamsayı değerler ile oluşturulacak


10 uzunluklu A dizisinin elemanları ile, yine
tamsayı değerler ile oluşturulacak 10

R
uzunluklu B dizisinin aynı yerleşimindeki
elemanlar arasında kombinasyon hesabı
yapılacaktır. Programda bulunması gereken
fonksiyonlara ait prototipler aşağıda
verilmiştir.
int faktoriyel(int k)
int kombinasyon(int n, int r)

Ö
Yapılacak işlem kombinasyon(a[i],b[i])
* Sınav süresi 110 dakikadır.
* 1. soru 25, 2. soru 35, 3. soru 40 puandır.
şeklindedir. A dizisinin elemanları, B
dizisindeki aynı yerleşimdeki elemanlardan
Başarılar dileklerimle... büyük eşit olma şartını sağlamalıdır.

n!
C  n, r   ile verilmektedir.
r ! n  r  !

Yrd. Doç. Dr. Alper BAŞTÜRK Soru 2'yi son sayfadaki kutuya kodlayınız.
İR
3. 64 karakter uzunluklu bir dizgi önce kodlanacak, daha sonra kodlanmış dizginin tekrar kodu çözülecektir. char dzg2[64],dzg3[64];
Aşağıda kodlama işlemine ait işlem basamakları anlatılmaktadır. char mat1[8][8],mat2[8][8];
kodlaveyacoz(_______,mat1,mat2,_______,satir,sutun); // veri kodlaniyor
i. Önce 64 uzunluklu giriş dizgisi, satır yönünde ilerlenerek 8x8'lik bir dizgi puts(_______);

T
matrisine yerleştirilecektir. kodlaveyacoz(_______,mat2,mat1,dzg3,satir,sutun); // kodlanmis verinin kodu cozuluyor
ii. Daha sonra oluşturulan 8x8'lik bu dizgi matrisinin transpozu alınacaktır.
puts(_______);
iii. Transpoz sonucu yeni elde edilen 8x8'lik dizgi matrisi, satır yönünde
system("PAUSE");
ilerlenerek tekrar 64 uzunluklu bir dizgiye çevirilecektir.
return 0;
Yukarıda anlatılan işlemler aşağıda örneklerle tarif edilmiştir. }

K
giriş dizgisi = "Erciyes Universitesi a.b.1978 tarihinde Kayseri'de kurulmustur." olsun. void ___________(char mat1[8][8],char mat2[8][8],int satir,int sutun)
{
i. işlem sonrası ii. işlem sonrası // dizgi matrisinin transpozesi alınacak
E r c i y e s E U t .
r K d m int i,j;
U n i v e r s i r n e 1
i a e u for(_____________________)
t e s i a . b c i s 9
h y s for(_____________________)

E
. 1 9 7 8 t a i v i 7
i s k t ______________ = ______________;
r i h i n d e y e 8
n e u u
}
K a y s e r i ' e r a d r r r
d e k u r u l s s . t e i u .
m u s t u r . \0 i b a ' l \0 void ___________(char mat2[8][8],char dzg2[],int satir,int sutun)
{
// 8x8 boyutundaki dizgi matrisi, 64 uzunluklu dizgiye cevirilecek

N
iii. işlem sonrası int i,j;
for(_____________________)
kodlanmış dizgi = "EUt.rKdmrne1iaeucis9hy sivi7isktye 8neuuera drrrss.teiu. iba 'l"
for(_____________________)
olarak elde edilecektir. Kodlanmış dizginin kodunun çözülebilmesi için aynı işlemler yine aynı ______________ = ______________;
sırada tekrarlanmalıdır. }

Yukarıda anlatılan işlemi gerçekleştiren C programına ait kaynak kod, bazı kısımlar boş bırakılarak void ____________(char Dzg1[],char Mat1[8][8],char Mat2[8][8],char Dzg2[],int satir,int sutun)

R
aşağıda verilmiştir. Buna göre: {
arr2mat(Dzg1,Mat1,satir,sutun); // Dzg1->Mat1
BOŞ BIRAKILAN ALANLARI UYGUN BİÇİMDE DOLDURUNUZ.
trnsmat(Mat1,Mat2,satir,sutun); // Mat1->devrik Mat2
#include <stdio.h> mat2arr(Mat2,Dzg2,satir,sutun); // devrik Mat2->Dzg2
#include <stdlib.h> }
#include <___________>
void ___________(char dzg1[],char mat1[8][8],int satir,int sutun)

Ö
void ____________(char dzg1[],char mat1[][],int satir,int sutun); {
void ____________(char mat1[][],char mat2[][],int satir,int sutun); // 64 uzunluklu dizgi, 8x8 boyutunda dizgi matrisine cevirilecek
void mat2arr(char mat2[][],char dzg2[],int satir,int sutun); int i,j;
void ______________(char Dzg1[],char Mat1[][],char Mat2[][],char Dzg2[],int satir,int sutun); for(_____________________)
for(_____________________)
int main(void) ______________ = ______________;
{ }
int satir=____,sutun=____; // programın sonu
char dzg1[64]="Erciyes Universitesi a.b.1978 tarihinde Kayseri'de kurulmustur.";

You might also like