You are on page 1of 20

Son Güncelleme : 15/01/2010

Sorun :
Windows Vista ‘da program kurulmuyor.

Çözüm :
UAC (User Account Control) (Kullanıcı Hesap Denetimi) Pasif Yapılmalı.
Sorun :
Windows Vista ‘da kurduğum program çalışmıyor.

Çözüm :
Başlat→Programlar→Sağ Tuş (Admin Yetkisiyle Çalıştır)

Sorun :
Windows Vista işletim sisteminde Turbo PASCAL & Borland C++ Türkçe Karakter
Yazmıyor !

Çözüm :
c:\windows\system32\autoexec.nt dosyasını açıp, dosyanın sonuna kb16 tr,857 /id:179
satırını ilave ediniz. Burada tr ülke kodu, 857 klavye dil kodu, 179 q klavye kodu, 440 f
klavye kodu. Dosyayı kaydedip, bilgisayarı yeniden başlatınız. İşlem tamam.

Sorun :
Windows Vista işletim sisteminde Turbo PASCAL & Borland C++ Tam Ekran Olmuyor !

Çözüm :
Görüntü Özellikleri→Ayarlar→Gelişmiş→Bağdaştırıcı→Özellikler→Sürücü→
Sürücü Güncelleştir→● Hayır, bu kez değil→● Listeden yada belirli bir konumdan yükle
● Arama, yüklenecek sürücüyü ben seçeceğim→Standart VGA seçilip TAMAM tıklanır.
Bilgisayarı yeniden başlatınız. İşlem tamam.

05.10.2009

Girilen 3 tamsayının aritmetik ortalamasını bulduran C


programı

#include<stdio.h>

void main()
{

int s1,s2,s3;
printf("3 tamsayi giriniz : ");
scanf("%d %d %d",&s1,&s2,&s3);
printf("%f \n",(s1+s2+s3)/3.0);
//veya
printf("%f \n",(float) (s1+s2+s3)/3);
}

12.10.2009

Lokal ve Global değişken tanımlanması...

#include<stdio.h>
int globali=0;

void fonksiyon()
{
int lokalj=0;
}

void main()
{
int lokali=0;
}

Static değişken kullanımı...

#include<stdio.h>

int fibonacci()
{
static int f1=1,f2=1;
int g;

g=f1+f2;
f1=f2;
f2=g;
return g;
}

void main()
{
printf("Fibonacci serisinin 3. elemanı : %d
\n",fibonacci());
printf("Fibonacci serisinin 4. elemanı : %d
\n",fibonacci());
printf("Fibonacci serisinin 5. elemanı : %d
\n",fibonacci());
printf("Fibonacci serisinin 6. elemanı : %d
\n",fibonacci());
}

19.10.2009

Sabitler, decimal, octal, hexadecimal, mantıksal ve bit


operatörleri...
#include<stdio.h>

const double pi=3.14; //Sabit Bildirimi

void main()
{
int i=16;
printf("%d \n",i); //10'luk tabanda yazım
printf("%o \n",i); // 8'lik tabanda yazım
printf("%x \n",i); //16'lık tabanda yazım

//Mantıksal Operatörler && , || , !


printf("%d \n",1 && 2);
printf("%d \n",1 || 2);
printf("%d \n",!2);

//bit üstünde işlem yapan Operatörler & , |


printf("%d \n",1 & 2);
printf("%d \n",1 | 2);
}

Belirsiz sayıda girilen tamsayıların ortalamasını hesaplayan


program...

#include<stdio.h>

void main()
{
int sayi,top=0,adet=0;
char cevap;

bas:
printf("Bir tamsayi giriniz : ");
scanf("%d",&sayi);
top+=sayi;
adet++;
printf("Baska tamsayi var mi ? (e/h) ");
scanf("\n%c",&cevap);
if (cevap=='e' || cevap=='E' ) goto bas;
printf("Ortalama : %f \n",(float) top/adet);
}

VEYA

#include<stdio.h>
void main()
{
int sayi,top=0,adet=0;
char cevap,enter;

bas:
printf("Bir tamsayi giriniz : ");
scanf("%d",&sayi);
top+=sayi;
adet++;
printf("Baska tamsayi var mi ? (e/h) ");
scanf("%c%c",&enter,&cevap);
if (cevap=='e' || cevap=='E' ) goto bas;
printf("Ortalama : %f \n",(float) top/adet);
}

VEYA

#include<stdio.h>

void main()
{
int sayi,top=0,adet=0;
char cevap[1];

bas:
printf("Bir tamsayi giriniz : ");
scanf("%d",&sayi);
top+=sayi;
adet++;
printf("Baska tamsayi var mi ? (e/h) ");
scanf("%s",&cevap);
if (cevap[0]=='e' || cevap[0]=='E' ) goto bas;
printf("Ortalama : %f \n",(float) top/adet);
}

VEYA

#include<stdio.h>
#include<conio.h>

void main()
{
int sayi,top=0,adet=0;
char cevap;

bas:
printf("\nBir tamsayi giriniz : ");
scanf("%d",&sayi);
top+=sayi;
adet++;
printf("Baska tamsayi var mi ? (e/h) ");
cevap=getch();
if (cevap=='e' || cevap=='E' ) goto bas;
printf("\nOrtalama : %f \n",(float) top/adet);
}

26.10.2009

Kullanıcının 0-100 arasında seçtiği bir sayıyı klavyeden


girilen <,=,> yönlendirmeleriyle tahmin eden C programını
yazınız.

#include<stdio.h>

void main()
{
int a=0,b=101,c;
char cevap=' ';

do
{
if (cevap=='<')
b=c;
else if (cevap=='>')
a=c;
c=(a+b)/2;
printf("Sayı : %d <,=,>",c);
scanf("\n%c",&cevap);
}while (cevap!='=');
}

Girilen sayının asal olup olmadığını test eden ve ASAL ve ASAL


DEĞİL şeklinde yazdıran C programını yazınız.

#include<stdio.h>

void main()
{
int s,bs=0,i=0;

scanf("%d",&s);
i=1;
while(i<=s)
{
if (s % i==0) bs++;
i++;
}

if (bs==2) printf("%d ASAL",s);


else printf("%d ASAL DEGIL.",s);
}

02.11.2009

Pointer değişken tanımlanması ve tamsayı bir değişkenin


değerini onun adresini tutan pointer değişken aracılığıyla
değiştirmek.

#include<stdio.h>

void main()
{
int i=0; //tamsayı değişken

printf("%d\n",i);

int *ip=NULL; //tamsayı tipte değişkenlerin adresini tutan


pointer değişken

printf("%p\n",ip);

ip=&i;

*ip=2;

printf("%d\n",i);

}
09.11.2009

Ara Sınav soruları ve çözümleri;

1) (35 puan) Belirsiz sayıda (a, b) pozitif tamsayı ikilileri giriliyor.

i) Her (a, b) ikilisi için obeb(a, b) ’yi obeb isimli fonksiyonda hesaplayan ve bu
değeri geri döndüren,

ii) a değerleri içinde en büyük ve en küçüğünü ana programda bulduran,

iii) b değerlerinin aritmetik ortalamasını ana programda hesaplayan,

ve sonuçları ekrana yazdıran C programını yazınız.

#include<stdio.h>
#include<conio.h>
int obeb(int a,int b)
{
int c;
if (a<b)
{
c=a;
a=b;
b=c;
}
if (a % b == 0)
return b;
else
return obeb(b,a % b);
}

void main()
{
int a,b,maxa,mina,btop=0,bs=0;
char c;

bas:
printf("\na ve b degerlerini giriniz :");
scanf("%d %d",&a,&b);
printf("obeb(%d,%d)=%d\n",a,b,obeb(a,b));
if (btop==0)
{
maxa=a;
mina=a;
}
if (a>maxa)
maxa=a;
if (a<mina)
mina=a;
btop+=b;
bs++;
printf("Baska veri var mi ? E/H");
c=getch();
if (c=='e' || c=='E') goto bas;
printf("\nMax a : %d",maxa);
printf("\nmin a : %d",mina);
printf("\nb aritmetik ort : %f",btop/(bs*1.0));
}

2) (35 puan) main fonksiyonunda 50 adet pozitif tamsayı veriliyor. Bu sayılardan bazılarının
3 basamaklı olduğu biliniyor. Verilen sayının 3 basamaklı olup olmadığını main
fonksiyonunda araştıran ve
a) sayı 3 basamaklı ise bu sayıyı ayır() isimli bir fonksiyona gönderip, orada sayının
basamaklarını buldurup, çağıran fonksiyonda yazdıran,
b) bu rakamları esitsizlik() isimli bir fonksiyona gönderip, bu rakamları sırasıyla x,y,z
şeklinde isimlendirdiğimizde (örneğin sayı 512 ise x=5,y=1, z=2) , kaç tanesinin
x+4y+5z ≤ 5
2x+3y-z ≤ 6
3x+2y+2z ≤ 4
eşitsizliğini sağladığını ve bu eşitsizliği sağlayan sayıların ortalamasını bulup, sonuçları ana
fonksiyonda yazdıran bir C programı yazınız.

#include<stdio.h>

int es=0,top=0;

void ayir(int sayi,int *x,int *y,int *z)


{
*x=sayi/100;
*y=(sayi-(*x)*100)/10;
*z=sayi%10;
}

void esitsizlik(int x,int y,int z)


{
if (x+4*y+5*z<=5 && 2*x+3*y-z<=6 && 3*x+2*y-2*z<=4)
{
es++;
top+=x*100+y*10+z;
}
}

void main()
{
int i,sayi,x,y,z;

for (i=1;i<=3;i++)
{
printf("\n%d. tamsayiyi giriniz : ",i);
scanf("%d",&sayi);
if (sayi>=100 && sayi<=999)
{
ayir(sayi,&x,&y,&z);
printf("%d 'nin basamaklari : yuzler:%d, onlar:
%d, birler:%d",sayi,x,y,z);
esitsizlik(x,y,z);
}
}
if (es!=0)
printf("\n%d adet sayi esitsizligi sagliyor ve
ortalamalari : %f",es,top/(es*1.0));
else
printf("\n0 adet adet sayi esitsizligi sagliyor");
}
3) (30 puan)

a) C dilinde Fonksiyon nasıl tanımlanır?. Fonksiyonlara parametre aktarımı kaç türlü


yapılır. Açıklayınız.

b) İşaretçi değişken nedir? Nasıl tanımlanır? Bir işaretçi değişkene nasıl değer aktarılır?
Örnek vererek açıklayınız.

07.12.2009

Örnek) Yazacağınız C programı komut satırından 3 veya 4 tamsayı veri ile çalıştırılacaktır.
3 tamsayı girilirse bir üçgenin kenarlarının girildiği , 4 tamsayı girilirse iç açılarının her biri
90 derece olan bir dörtgenin kenarlarının girildiği anlaşılacaktır.

a) Eğer üçgen girildiyse öncelikle kenarların üçgen oluşturma koşulunu sağlayıp sağlamadığı
kontrol edilmeli ve sağlıyorsa üçgenin türünü, İKİZKENAR, EŞKENAR, DİK,
İKİZKENARDİK veya ÇEŞİTKENAR şeklinde yazmalıdır.

b) Eğer dörtgen girildiyse dörtgenin türünü, KARE veya DİKDÖRTGEN şeklinde ekrana
yazan C programını yazınız.

#include<stdio.h>
#include<stdlib.h>
#include<math.h>

void main(int argsay, char *argvek[])


{
int a,b,c,d;

if (argsay==4)
{
a=atoi(argvek[1]);
b=atoi(argvek[2]);
c=atoi(argvek[3]);
if (a+b>c && abs(a-b)<c && a+c>b && abs(a-c)<b && b+c>a &&
abs(b-c)<a)
{
if (a==b && b==c) printf("Eskenar Ucgen\n");
else if (a==b || a==c || b==c) printf("Ikizkenar
Ucgen\n");
else if (pow(a,2)+pow(b,2)==pow(c,2) ||
pow(a,2)+pow(c,2)==pow(b,2) || pow(b,2)+pow(c,2)==pow(a,2))
{
if (a==b || a==c || b==c) printf("Ikizkenar
Dik Ucgen\n");
else printf("Dik Ucgen");
}
else printf("Cesitkenar Ucgen\n");
}
else printf("Ucgen sartini saglamiyor !\n");
}

else if (argsay==5)
{
a=atoi(argvek[1]);
b=atoi(argvek[2]);
c=atoi(argvek[3]);
d=atoi(argvek[4]);
if (a==b && b==c && c==d) printf("Kare");
else printf("Dikdortgen");
}
else printf("3 veya 4 adet parametre giriniz !");
}

14.12.2009

Örnek : Bir fonksiyona farklı sayıda parametre aktarımı özelliğini kullanarak belirsiz sayıda
girilen bir grup tamsayıdan en büyüğünü bulan ve sonucu çağırana geri döndüren C
programını yazınız.

#include<stdio.h>
#include<stdarg.h>

int maxf(int n,...)


{

int i,j,max;

va_list ai;

va_start(ai,n);

for(i=1;i<=n;i++)
{
j=va_arg(ai,int);
if (i==1 || j>max) max=j;
}

va_end(ai);
return max;

void main()
{
int maxe;
maxe=maxf(4,10,50,30,40);
printf("%d\n",maxe);
}

23.12.2009

Klavyeden girilen 1-999 arası bir tamsayıyı yazıyla ekrana yazdıran C programını yazınız.

#include<stdio.h>

void main()
{
char birler[10]
[6]={"","bir","iki","uc","dort","bes","alti","yedi","sekiz","d
okuz"};
char onlar[10]
[7]={"","on","yirmi","otuz","kirk","elli","altmis","yetmis","s
eksen","doksan"};

int i,j;

printf("Bir tamsayi giriniz 1..999 : ");

scanf("%d",&i);

if (i>=100 && i<=999)


{
j=i/100;
if (j==1) printf("yuz ");
else printf("%s yuz ",birler[j]);
i=i-j*100;
}

if (i>=10 && i<=99)


{
j=i/10;
printf("%s ",onlar[j]);
i=i-j*10;
}

if (i>=1 && i<=9)


{
printf("%s ",birler[i]);
}

printf("\n");

30.12.2009

1) Klavyeden girilen n sayısı kadar aşağıdaki özellikleri sağlayan rasgele xi sayılarını üreten C
programını yazınız.
n

∑x
i =1
i =1 0 < xi < 1

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

int obeb(int a,int b)


{
if (a%b==0) return b;
else return obeb(b,a%b);
}

void main()
{
int n,*id,i,top=0,obebab;
float f=0.0;

printf("Sayi adedini giriniz : ");


scanf("%d",&n);

srand(time(NULL));

id=(int *) malloc(n*sizeof(int));

for (i=0;i<n;i++)
{
id[i]=(rand()%10)+1;
top+=id[i];
}

for (i=0;i<n;i++)
{
printf("%f",id[i]/(top*1.0));
obebab=obeb(top,id[i]);
printf(" %d/%d \n",id[i]/obebab,top/obebab);
f=f+(id[i]/(top*1.0));
}
printf("%f",f);
}

2) String (karakter katarı) bilgileri alfabetik olarak küçükten büyüğe sıralayan C programını
yazınız.

#include<stdio.h>
#include<string.h>

void main()
{
char liste[5][5]={"veli","ali","ayse","asli","sule"};
char gecici[5];

int i,j;

for (i=0;i<5;i++)
for (j=0;j<5;j++)
if (strcmp(liste[i],liste[j])<0)
{
strcpy(gecici,liste[i]);
strcpy(liste[i],liste[j]);
strcpy(liste[j],gecici);
}

for(i=0;i<5;i++)
printf("%s\n",liste[i]);

3) 2 Boyutlu dinamik dizi (matris) tanımlanan bir C Programı yazınız.

#include<stdio.h>
#include<stdlib.h>

void main()
{
int **m,rows=3,cols=4,i,j;

m=(int **) malloc(rows * sizeof(int));

for(i=0;i<=cols;i++)
m[i]=(int *) malloc(cols * sizeof(int));

for(i=0;i<rows;i++)
for (j=0;j<cols;j++)
m[i][j]=i*10+j;

for(i=0;i<rows;i++)
{
for (j=0;j<cols;j++)
printf("%2d ",m[i][j]);
printf("\n");
}

06.01.2010

1) Bir string içinde başka bir stringi arayan ve bulduğu pozisyonları aksi halde “yok” yazan C
programını yazınız.

#include<stdio.h>

int uzun(char *s)


{
int i=0;
for (i=0;s[i];i++);
return i;
}

void main()
{
char metin[256],ara[10];
int mu,au,i,j,k,m=0;

printf("Ana metni giriniz : ");


scanf("%s",&metin);

printf("Alt metni giriniz : ");


scanf("%s",&ara);

mu=uzun(metin);
au=uzun(ara);

for (i=0;i<mu;i++)
{
k=0;
for (j=0;j<au;j++)
if (metin[i+j]==ara[j]) k++;
if (k==au)
{
m++;
printf("%d.kez %d pozisyonunda %s
var.\n",m,i+1,ara);
}
}
printf("\n");
if (m==0) printf("%s ana metinde yer almiyor !\n",ara);
}

Son Örnek

Eleman sayısı n kullanıcıdan öğrenildikten sonra 0 ve 1 karakterlerinden oluşan bir dizi


klavyeden giriliyor.

a) Bu dizinin ardışık 4 elemanlı alt dizilerinin kaçar defa görüldüğünü yazdıran,

Örneğin n=5 ve 00010 dizisi girilseydi, bu diziden 0001 ve 0010 alt dizileri elde edilecekti.

b) Ardışık 4 elemanlı alt dizilerinin görülme adetleri büyükten küçüğe sıralı olacak şekilde
yazdıran C programını yazınız.

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>

char *a,c;
int n,i,j,k,b,h[16][2];

void bin(int n)
{
if (n<2) printf("%d",n);
else
{
bin(n/2);
printf("%d",n%2);
}
}

void yaz()
{
for(i=0;i<16;i++)
if (h[i][1]>0)
{
if (h[i][0]<=1) printf("000");
if (h[i][0]>=2 && h[i][0]<=3) printf("00");
if (h[i][0]>=4 && h[i][0]<=7) printf("0");
bin(h[i][0]);
printf(" %2d\n",h[i][1]);
}
}

void main()
{

for(i=0;i<16;i++)
{
h[i][0]=i;
h[i][1]=0;
}

printf("Dizinin uzunlugu : ");


scanf("%d",&n);

a=(char *) malloc(n*sizeof(char));

printf("0/1 dizisini giriniz : ");


for(i=0;i<n;i++)
{
c=getch();
a[i]=c;
putch(c);
}

for(i=0;i<=n-4;i++)
{
k=8;
b=0;
for(j=0;j<4;j++)
{
b+=k*(a[i+j]-48);
k/=2;
}
h[b][1]++;
}

printf("\na) SIKKI\n");
yaz();

for(i=0;i<16;i++)
for(j=0;j<16;j++)
if (h[i][1]>h[j][1])
{
k=h[i][0];
h[i][0]=h[j][0];
h[j][0]=k;
k=h[i][1];
h[i][1]=h[j][1];
h[j][1]=k;
}

printf("\nb) SIKKI\n");
yaz();

quiz

-O-

You might also like