#include <stdio.h>
#include <conio.h>
int main(){
int mat1[4][4]={{2,3,6,3},{1,2,5,7},{4,7,1,2},{3,2,1,6}},mat2[4][4]={{1,3,2,1},{2,2,2,3},{5,1,4,2},{1,3,2,6}},i,j;
int mat3[4][4],topla=0,k;
// Matris 1 in gösterilmesi
printf("1. Matris \n\n");
for(i=0;i<4;i++){
printf("\t");
for(j=0;j<4;j++){
printf("%d ",mat1[i][j]);
}
printf("\n");
}
C Örnekleri etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
C Örnekleri etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
10 Haziran 2015 Çarşamba
26 Nisan 2015 Pazar
Rastgele Erişimli Dosya - Müşteri Bilgileri
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <io.h>
#include <string.h>
struct musteri{
char kayit;
int hesapno;
char musadi[20];
int gelir;
int gider;
}kisi;
FILE *dosya,*yedek;
void musteriKaydi(void);
void listele(void);
void gelirGider(void);
#include <stdlib.h>
#include <conio.h>
#include <io.h>
#include <string.h>
struct musteri{
char kayit;
int hesapno;
char musadi[20];
int gelir;
int gider;
}kisi;
FILE *dosya,*yedek;
void musteriKaydi(void);
void listele(void);
void gelirGider(void);
14 Nisan 2015 Salı
C dosyalama öğrenci kaydı
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
FILE *dosya,*yedek; // foknsiyonlarda dosya islemleri yapılacağından global tanımladım
struct ogrenci{
char ad[10];
int no, Not;
};
struct ogrenci kisi;
void kayitGirisi(void);
void kayitListele(void);
void kayitSilme(void);
#include <conio.h>
#include <stdlib.h>
#include <string.h>
FILE *dosya,*yedek; // foknsiyonlarda dosya islemleri yapılacağından global tanımladım
struct ogrenci{
char ad[10];
int no, Not;
};
struct ogrenci kisi;
void kayitGirisi(void);
void kayitListele(void);
void kayitSilme(void);
28 Şubat 2015 Cumartesi
3 Basamaklı Rastgele Sayıların Fonksiyona Gönderilip Adetinin Döndürülmesi
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
int fonk(int *);
int main(){
int sayi[20],i,adet;
srand(time(NULL));
for(i=0;i<20;i++){
sayi[i]=100+rand()%899;
}
adet=fonk(&sayi[0]);
printf("%d sayi 3 e tam bolunur.\n\n",adet);
for(i=0;i<20;i++){
printf("%d\n",sayi[i]);
}
getch();
return 0;
}
int fonk(int *ptr){
int n=0,i;
for(i=0;i<20;i++){
if(ptr[i]%3==0){
n++;
}
}
return n;
}
n adet int sayiya yer ayıran program (malloc)
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
int main(){
int *ptr,n,i;
printf("Kac rastgele sayi uretilsin : ");
scanf("%d",&n);
ptr=(int*)malloc(sizeof(int)*n);
srand(time(NULL));
for(i=0;i<n;i++){
*ptr=rand()%20;
ptr++;
}
for(i=0;i<n;i++){
printf("%d\n",*ptr);
ptr--;
}
getch();
return 0;
}
24 Şubat 2015 Salı
Bir cümlenin harf sayısını veren program
#include <stdio.h>
#include <conio.h>
#include <string.h>
int hesapla(char*,char [250],int*,int [52],char[52],int);
int main(){
char cumle[250],harf[52],*ptr;
int cumleUzunluk,i,deger[52]={0},a=65,*ptr2;
printf(" *Turkce Karakter Kullanmayiniz\n *Buyuk ve kucuk harf girilebilir.\n\n Bir cumle giriniz : ");
gets(cumle);
cumleUzunluk=strlen(cumle);
ptr=cumle;
ptr2=deger;
for(i=0;i<52;i++){
if(i>=26){
harf[i]=a;
}
if(i<26){
harf[i]=a;
if(i==25){
a=96;
}
}
a++;
}
hesapla(ptr,cumle,ptr2,deger,harf,cumleUzunluk);
for(i=0;i<26;i++){
if(deger[i]!=0){
printf(" %c : %d \n",harf[i],deger[i]);
}
}
getch();
return 0;
}
int hesapla(char* ptr,char cum[250],int* ptr2,int deg[52],char har[52],int cumleUzun){
int k;
cum=ptr;
deg=ptr2;
for(k=0;k<cumleUzun;k++){
int d;
for(d=0;d<52;d++){
if(cum[k]==har[d]){
if(d>=0 && d<26){
deg[d]+=1;
}
if(d>=26){
deg[d-26]+=1;
}
}
}
}
}
19 Ocak 2015 Pazartesi
Bir cümledeki sesli ve sessiz harf sayısını bulan program
#include <stdio.h>
#include <conio.h>
#include <string.h>
void main(void)
{
char cumle[100];
int uzunluk,i;
char harf;
int sayac_sesli=0,sayac_sessiz=0;
printf("Bir cumle giriniz (Turkce karakter kullanmayin , buyuk harf kullanabilirsiniz)\n");
gets(cumle);
uzunluk=strlen(cumle);
for(i=0;i<uzunluk;i++){
harf=cumle[i];
if(harf=='a'||harf=='A'||harf=='e'||harf=='E'||harf=='i'||harf=='I'||harf=='o'||harf=='O'||harf=='u'||harf=='U'){
sayac_sesli+=1;
}
else if(harf!=' '){
sayac_sessiz+=1;
}
}
printf(" Sesli Harf Sayisi = %d\n Sessiz Harf Sayisi = %d",sayac_sesli,sayac_sessiz);
getch();
}
Büyük Ünlü Uyumu
#include <stdio.h>
#include <conio.h>
#include <string.h>
void main(void)
{
char kelime[15];
int uzunluk,i,kalinSesli=0,inceSesli=0;
printf("Bir kelime girin: ");
gets(kelime);
uzunluk=strlen(kelime);
for(i=0;i<uzunluk;i++){
if(kelime[i]=='a'||kelime[i]=='o'||kelime[i]=='u'||kelime[i]=='ı'){
kalinSesli+=1;
}
if(kelime[i]=='e'||kelime[i]=='i'||kelime[i]=='ü'||kelime[i]=='ö'){
inceSesli+=1;
}
}
if(kalinSesli==0||inceSesli==0){
printf("%s Kelimesi Buyuk Unlu Uyumuna Uyuyor.",kelime);
}
else{
printf("%s Kelimesi Buyuk Unlu Uyumuna Uymuyor.",kelime);
}
getch();
}
Kucuk Unlu Uyumu
#include <stdio.h>
#include <conio.h>
#include <string.h>
void main(void)
{
char kelime[15];
int uzunluk,i,duzUnlu=0,yuvarlakUnlu=0,duzgenisUnlu=0,yuvarlakdarUnlu=0,yuvarlakgenisUnlu=0;
printf("Bir kelime girin: ");
gets(kelime);
uzunluk=strlen(kelime);
for(i=0;i<uzunluk;i++){
if(kelime[i]=='a'||kelime[i]=='e'||kelime[i]=='ı'||kelime[i]=='i'){
duzUnlu+=1;
if(kelime[i]=='a'||kelime[i]=='e'&&yuvarlakUnlu!=0){
duzgenisUnlu+=1;
duzUnlu-=1;
}
}
if(kelime[i]=='o'||kelime[i]=='ö'||kelime[i]=='u'||kelime[i]=='ü'){
yuvarlakUnlu+=1;
if(kelime[i]=='u'||kelime[i]=='ü'){
yuvarlakdarUnlu+=1;
}
else{
yuvarlakgenisUnlu+=1;
}
}
}
if(duzUnlu!=0&&yuvarlakUnlu==0){
printf("%s Kelimesi Kucuk Unlu Uyumuna Uyuyor.",kelime);
}
else if(yuvarlakUnlu!=0&&duzUnlu==0&&duzgenisUnlu!=0){
printf("%s Kelimesi Kucuk Unlu Uyumuna Uyuyor.",kelime);
}
else if(yuvarlakdarUnlu!=0&&duzUnlu==0&&yuvarlakgenisUnlu!=0){
printf("%s Kelimesi Kucuk Unlu Uyumuna Uyuyor.",kelime);
}
else{
printf("%s Kelimesi Kucuk Unlu Uyumuna Uymuyor.",kelime);
}
getch();
}
21 Kasım 2014 Cuma
Rastgele Sayı Yazdıran ve Yazdırma Süresini Bulan Program
17 Kasım 2014 Pazartesi
2 Sayı Arasındaki Çift ve Tek Sayıların Ortalamasını Bulan Program
1-Girilen sayılardan küçüğünü ek , büyüğünü eb değişkenine aktarıyoruz.
2-ek+2<=eb kontrol ettiriyoruz. Bunun anlamı ek=10 olsun eb=11 olsun ek+1=eb olmuş olur. Arada sayı bulunmaz . Bu yüzden ek+2<=eb dediğimizde 10+2<=13 olmak zorundadır.Yani eb en küçük 13 olmalı.
3-ek nın 2 ye göre moduna bakılır mod=1 ise tek, mod=0 ise çiftir.
4-Toplamlar işlem sayısına bölünür ve ekrana yazdırılır.
#include <stdio.h>
#include <conio.h>
int main(){
int x,y,eb,ek,ToplamTek=0,ToplamCift=0,islem1=0,islem2=0;
float sonuc1,sonuc2;
printf("Ilk pozitif tam sayiyi giriniz : ");
scanf("%d",&x);
printf("Ikinci pozitif tam sayiyi giriniz : ");
scanf("%d",&y);
if(x>y){
eb=x;
ek=y;
}
else if(x<y){
eb=y;
ek=x;
}
else{
printf("Girilen sayilar birbirine esit oldugundan arada sayi bulunmaz..");
}
if(ek+2<=eb){
ek=ek+1;
while(ek<eb){
int mod;
mod=ek%2;
if(mod==1){
ToplamTek+=ek;
islem1+=1;
ek+=1;
}
else{
ToplamCift+=ek;
islem2+=1;
ek+=1;
}
}
sonuc1= ToplamTek/islem1;
sonuc2= ToplamCift/islem2;
printf("Girdiginiz pozitif tam sayilar arasindaki tek sayilarin ortalamasi : %f\n\n",sonuc1);
printf("Girdiginiz pozitif tam sayilar arasindaki çift sayilarin ortalamasi : %f\n\n",sonuc2);
}
else if(ek+1==eb){
printf("%d ile %d arasinda sayi yoktur.",ek,eb);
}
getch();
return 0;
}
4 Basamaklı Bir Sayının Rakamları Toplamı
1-Programda girilen sayının kontrolünü yapıyoruz.Eğer sayı dört basamaklı ise 2. adım
2-Burada sayıdan sayıdan 1000 çıkarıyoruz ve işlem kadar a yı arttırıyoruz.Aynı şekilde 100 çıkarıp b ye 10 çıkarıp c ye ve 1 çıkarıp d ye aktarıyoruz.
3- Ekrana yazdır.
Mantık şu dört basamaklı bir sayı girilsin bu sayı = 1000a+100b+10c+1d dir. O halde kaç tane a varsa o kadar 1000 olur bu yüzden çıkarma yapıyoruz.
2-Burada sayıdan sayıdan 1000 çıkarıyoruz ve işlem kadar a yı arttırıyoruz.Aynı şekilde 100 çıkarıp b ye 10 çıkarıp c ye ve 1 çıkarıp d ye aktarıyoruz.
3- Ekrana yazdır.
Mantık şu dört basamaklı bir sayı girilsin bu sayı = 1000a+100b+10c+1d dir. O halde kaç tane a varsa o kadar 1000 olur bu yüzden çıkarma yapıyoruz.
#include
#include
int main(){
int a=0,b=0,c=0,d=0,sayi,k;
do{
printf("4 Basamakli pozitif bir sayi giriniz:");
scanf("%d",&sayi);
if(sayi>999&&sayi<10000 data-blogger-escaped-sayi="" data-blogger-escaped-while="">999){
sayi-=1000;
a+=1;
}
while(sayi>99){
sayi-=100;
b+=1;
}
while(sayi>9){
sayi-=10;
c+=1;
}
while(sayi>0){
sayi-=1;
d+=1;
}
k=0;
}
else{
printf("Girdiginiz sayi dort basamakli degildir.\n\n");
k=1;
}
}while(k==1);
printf("Rakamlari toplami: %d",a+b+c+d);
getch();
return 0;
}
4 Eylül 2014 Perşembe
Dosya Komutları ile veri depolama ve kayıt programı
KODLAR:
#include <stdio.h>
#include <conio.h>
#define yapiboyutu sizeof(struct kayit)
struct kayit{
char isim[20];
char soyisim[20];
char adres[20];
char telefon[20];
char yapiyeri;
};
void yenikayit(FILE*);
12 Temmuz 2014 Cumartesi
İç içe yapı(struct) örneği
#include <stdio.h>
struct Kirtasiye {
int toplam_urun;
struct defter{
int defter_sayisi;
int cizgili_defter;
int kareli_defter;
}def;
struct kalem{
int kalem_sayisi;
int uclu_kalem;
int kursun_kalem;
}kal;
};
main(){
struct Kirtasiye urun;
urun.toplam_urun = 1000;
urun.def.defter_sayisi = 500;
urun.def.cizgili_defter = 250;
urun.def.kareli_defter = 250;
urun.kal.kalem_sayisi = 500;
urun.kal.kursun_kalem = 250;
urun.kal.uclu_kalem = 250;
printf("Toplam urun sayisi = %d\n\n",urun.toplam_urun);
printf("Toplam defter sayisi = %d\n",urun.def.defter_sayisi);
printf("Toplam cizgili defter sayisi = %d\n",urun.def.cizgili_defter);
printf("Toplam kareli defter sayisi = %d\n\n",urun.def.kareli_defter);
printf("Toplam kalem sayisi = %d\n",urun.kal.kalem_sayisi);
printf("Toplam uclu kalem sayisi = %d\n",urun.kal.uclu_kalem);
printf("Toplam kursun kalem sayisi = %d\n",urun.kal.kursun_kalem);
return 0;
}
10 Temmuz 2014 Perşembe
Pointerlarda takas(geçiş) örneği
#include <stdio.h>
void degis(int *a,int *b){
int z;
z=*a;
*a=*b;
*b=z;
}
main(){
int x=10,y=32;
printf("x : %d\n",x);
printf("y : %d\n\n",y);
degis(&x,&y);
printf("x : %d\n",x);
printf("y : %d\n",y);
}
Bunu yapmak için x in adresini başka bir değişkende saklamak gerekiyor. z değişkeninde x in adresini saklamak için bir fonksiyon(degis(int *a,int *b)) oluşturuyoruz.Bu fonksiyonda a ve b yi pointer olarak veriyoruz. Çünkü y nin adresini x e aktaracağız. Ama bunu &x=&y şeklinde yapamayız. Pointer olması gerekir bu yüzden . *a=*b şeklinde yapıyoruz. Fonksiyonda degis(&x , &y) dediğimizde *a=&x *b=&y olur. Böylece a ve b nin pointerleri x in adresine eşit olmuş olur. Biz *a = *b eşitlediğimizde x in adresi y nin adresi olmuş olur. *b=z; dediğimizdede z de sakladığımız x in adresini y nin adresine aktarmıs oluruz . Böylece takas olmuş olur.
Pointerin pointeri örneği yeni başlayanlar için
#include<stdio.h>
#include<conio.h>
int main()
{
int x=2500,*y,**z;
y=&x;
z=&y;
printf(" x in degeri : %d\n\n",x);
printf(" x in adresi : %d\n\n",&x);
printf(" y nin degeri : %d\n\n",y);
printf(" y nin adresi : %d\n\n",&y);
printf(" y nin pointeri : %d\n\n",*y);
printf(" z nin degeri : %d\n\n",z);
printf(" z nin adresi : %d\n\n",&z);
printf(" z nin pointeri : %d\n\n",*z);
printf(" z nin pointerinin pointeri : %d\n\n",**z);
getch();
}
Pointerlara yeni başlayanlar için bir örnek
#include<stdio.h>
#include<conio.h>
int main()
{
int x=500,*y;
y=&x;
printf("%d\n",x);
printf("%d\n",&x);
printf("%d\n",y);
printf("%d\n",&y);
printf("%d\n",*y);
getch();
}
Yukarıdaki örneği resimle birlikte açıklayalım...
Programda bir değişken tanımladığımızda bu değişken RAM de kendine bir yer ayırır.Örneğin programda
int x=500; şeklinde bir değişken tanımladık. Bu yukardaki resimde olduğu gibi bir adreste kendine yer ayırır.A burada x in adresi olur. A değerini bilgisayar kendi atar.
Bize y=&x ifadesi verilmiştir. Bu bize x in adresinin y ye eşit olduğunu gösterir. "& " bu işaret x değerinin adresini ifade eder. Yani böylece y 2. resimdeki gibi A nın adresine eşit olmuş olur.
printf("%d\n",x); Bu ifadede x in değerini yazdırdık.
printf("%d\n",&x); Bu ifadede x in adresini yazdırdık.
printf("%d\n",y); Bu ifadede y nin değerini yazdırdık.
printf("%d\n",&y); Bu ifadede y nin adresini yazdırdık.
printf("%d\n",*y); Bu ifadede y nin pointer değerini yazdırdık. Peki bu denir? y en başta int *y; olarak tanımlandı. " * " işareti y nin pointer olduğunu gösterir. Bu değer y nin değerinin (A nın) RAM deki bir adresin değeridir. Yani A adresindeki değer 500 olduğundan *y de 500 olur.
NOT: x in pointerini bulamayız çünkü x pointer olarak tanımlanmamıştır.
9 Temmuz 2014 Çarşamba
Öğrenci kayıt -bilgi ve silme işlemleri yapan program
Bu programda çok fazla dizi kullandım. Programda hata almamak için telefon numarası yerine sayı girmeniz gerekmektedir. Çok fazla sayı girerseniz de program hata verebilir.Programda main kısmında bir switch oluşturularak menü seçenekleri belirlendi. Bu seçeneklerden de ilgili fonksiyonlara bağlantı kuruldu.
Bu programda " i " değişkeni çok önemlidir. Çünkü dizileri o yönlendiriyor.
isim[i] dizisi olarak isimler dizi elemanlarında depolandı. Ahmet girildiğinde " i " ilk başta 0 olduğundan isim[0] da Ahmet ismi depolanmış oldu. Öğrenci kaydına girdiğimizde :
1- Öğrenci kaydı
Burada kaydı olacak kişinin bilgileri istendi. Sonrada bu bilgilerin hepsi i=0 da depolandı. Sonunda i=i+1; yaparak i yi 1 artırdım. Böylece bir daha ki kayıt da i=1 olacak ve kullanıcının girdiği isim isim[1] de depolanacaktır. Bu şekilde bir devamlılık sağladım.
Bu programda " i " değişkeni çok önemlidir. Çünkü dizileri o yönlendiriyor.
isim[i] dizisi olarak isimler dizi elemanlarında depolandı. Ahmet girildiğinde " i " ilk başta 0 olduğundan isim[0] da Ahmet ismi depolanmış oldu. Öğrenci kaydına girdiğimizde :
1- Öğrenci kaydı
Burada kaydı olacak kişinin bilgileri istendi. Sonrada bu bilgilerin hepsi i=0 da depolandı. Sonunda i=i+1; yaparak i yi 1 artırdım. Böylece bir daha ki kayıt da i=1 olacak ve kullanıcının girdiği isim isim[1] de depolanacaktır. Bu şekilde bir devamlılık sağladım.
8 Temmuz 2014 Salı
Dizi elemanlarını string olarak girmek
Kodlar:
#include
main(){
char isim[50][50];
printf("Adinizi girin: ");
scanf("%s",&isim[0]);
printf("Adinizi girin: ");
scanf("%s",&isim[1]);
printf("Adinizi girin: ");
scanf("%s",&isim[2]);
printf("Adinizi girin: ");
scanf("%s",&isim[3]);
printf("%s\n",isim[0]);
printf("%s\n",isim[1]);
printf("%s\n",isim[2]);
printf("%s\n",isim[3]);
return 0;
}
For döngüsü kullanılarak ekranda çizim
Ekran çıktısı :
Kodlar :
Kodlar :
#include
void main(){
int x,y;
for(x=2;x<6;x++){
for(y=1;yx;y--){
printf("1");
}
printf("\n");
}
printf("\n");
for(x=2;x<6;x++){
for(y=6;y>2;y--){
printf("1");
}
printf("\n");
}
getch();
}
Kaydol:
Kayıtlar (Atom)






