27 Kasım 2018 Salı

Dizilerle Örnek Çalışmalar


********************************************
DİZİDEKİ EN BUYUK SAYIYI BULMA PROGRAMI
********************************************
#include <stdio.h>

void main(){
int n,i,enbuyuk,min;
printf("Dizinin eleman sayisi :");
scanf("%d",&n);
int a[n];
printf("Dizinin elemanlarini tek tek giriniz \n");

for (i=0;i<n;i++){

printf("Dizinin %d. elemanini giriniz:",i+1);
scanf("%d",&a[i]);
}
enbuyuk=a[0];
for(i=1;i<=n-1;i++)
if(a[i]>enbuyuk) enbuyuk=a[i];

printf("Dizinin en buyuk elemani %d dir.",enbuyuk);
getch();
}
********************************************
DİZİDEKİ EN MINIK SAYIYI BULMA PROGRAMI
********************************************
#include <stdio.h>

void main(){
int n,i,enbuyuk,min;
printf("Dizinin eleman sayisi :");
scanf("%d",&n);
int a[n];
printf("Dizinin elemanlarini tek tek giriniz \n");

for (i=0;i<n;i++){

printf("Dizinin %d. elemanini giriniz:",i+1);
scanf("%d",&a[i]);
}
min=a[0];
for(i=1;i<=n-1;i++)
if(a[i]<min) min=a[i];

printf("Dizinin en minik elemani %d dir.",min);
getch();
}
********************************************
DİZİDEKİ EN MINIK SAYIYI BULMA PROGRAMI(TERSENTEN SAYDIRMA)
********************************************
#include <stdio.h>

void main(){
int n,i,enbuyuk,enkucuk;
printf("Dizinin eleman sayisi :");
scanf("%d",&n);
int a[n];
printf("Dizinin elemanlarini tek tek giriniz \n");

for (i=0;i<n;i++){

printf("Dizinin %d. elemanini giriniz:",i+1);
scanf("%d",&a[i]);
}
enkucuk=a[n-1];
for(i=n-2;i>=0;i--) // DİZİNİN SONDAN İKİNCİ ELEMANINDAN BAŞLAYARAK, ilk elemana(ilk eleman dahil) kadar birer azaltarak
if(a[i]<enkucuk) enkucuk=a[i];// eger ilgili eleman en küçükten küçükse artık en kuçuk eleman budur.

printf("Dizinin en minik elemani %d dir.",enkucuk);
getch();
}
********************************************
BİR DİZİNİN BİRİNCİ VE İKİNCİ BÜYÜK ELEMANINI BULAN PROGRAM
********************************************
#include <stdio.h>

void main(){
int i,n,buyuk1,buyuk2;

int a[10]={12,24,36,11,1,48,65,98,1200,1000};

if(a[0]>a[1]){

buyuk1=a[0]; buyuk2=a[1]; }
else {buyuk1=a[1]; buyuk2=a[0];
n=1;
for(i=2;i<10;i++){

if(a[i]>buyuk2)
if(a[i]>buyuk1) {buyuk2=buyuk1 ;buyuk1=a[i]; }
else buyuk2=a[i];
printf("%d. adimda 1. enbuyuk eleman %d  ikinci en buyuk eleman %d dir.\n",n,buyuk1,buyuk2);
n++;
}
}
getch();
}
********************************************
 BİR DİZİNİN BİRİNCİ VE İKİNCİ BÜYÜK ELEMANINI BULAN PROGRAM (TERSTEN)
********************************************
#include <stdio.h>

void main(){
int i,n=10,m,buyuk1,buyuk2;

int a[10]={12,24,1000,11,1,48,65,98,1200,36};

if(a[n-1]>a[n-2]){

buyuk1=a[n-1]; buyuk2=a[n-2]; }
else {buyuk1=a[n-2]; buyuk2=a[n-1];
m=1;
for(i=n-3;i>=0;i--){

if(a[i]>buyuk2)
if(a[i]>buyuk1) {buyuk2=buyuk1 ;buyuk1=a[i]; }
else buyuk2=a[i];
printf("%d. adimda 1. enbuyuk eleman %d  ikinci en buyuk eleman %d dir.\n",n,buyuk1,buyuk2);
n++;
}
}
getch();
}
********************************************
 BİR DİZİNİN BİRİNCİ VE İKİNCİ KUCUK ELEMANINI BULAN PROGRAM
********************************************
#include <stdio.h>

void main(){
int i,n,kucuk1,kucuk2;

int a[10]={12,24,36,11,1,48,65,98,1200,1000};

if(a[0]<a[1]){

kucuk1=a[0]; kucuk2=a[1]; }
else {kucuk1=a[1]; kucuk2=a[0];}
for(i=2;i<10;i++)

if(a[i]<kucuk2)
if(a[i]<kucuk1) {kucuk2=kucuk1; kucuk1=a[i]; }
else kucuk2=a[i];


printf("1. en kucuk eleman %d  2. en kucuk eleman %d dir.\n",kucuk1,kucuk2);

getch();
}

********************************************
 BİR DİZİNİN BİRİNCİ VE İKİNCİ KUCUK ELEMANINI BULAN PROGRAM
********************************************

12 Kasım 2018 Pazartesi

Nasıl Bir Ücgen C Program


#include <stdio.h>

int main(){
int a,b,c,i;
bas:
printf("\n\aucgen kenarlar olculerini giriniz");
scanf("%d%d%d",&a,&b,&c);
if(a==b)
 if(b==c)
 printf("Eskenar");
else
printf("Ikizkenar");
else if(a==c)
printf("Ikizlkenar");
else if(b==c)
printf("Ikizler");
else
printf("Cesitkenar");
          goto bas;
getch();
}

7 Kasım 2018 Çarşamba

Yıldızlarla Kumsaati Şekli yapan C Programı

 #include <stdio.h>
int main(){
   
    int satir, boslukSayisi, yildizSayisi, i, j;
    satir = 23;
    boslukSayisi = 0;
    yildizSayisi = satir;
    for(i=0; i<satir; i++){
        for(j=0; j<yildizSayisi;j++)
            printf("*");       
        if( i < (satir / 2) ){
            yildizSayisi-=2;
            boslukSayisi++;
        }
        else{
            yildizSayisi+=2;
            boslukSayisi--;
        }
        printf("\n");
        for(j=0; j<boslukSayisi;j++)   
            printf(" ");
    }
    getch();
    return 0;
   
}

6 Kasım 2018 Salı

Fibbonaci Program C(Fonksiyonlu) Recursion Tekniği

#include<stdio.h>
int fibonacci(int n);
int main(){
int sayi,deger,i;
printf("Fibonacci dizisinin kacinci elemani esaplanacak");
scanf("%d",&sayi);
for(i=0;i<=sayi;i++){

deger=fibonacci(i);

printf("Fibonacci Dizisinin %d.elemani %d dir.\n",i ,deger);}
return 0;


}
int fibonacci(int n){
if(n==0) return 0;
else
if(n==1) return 1;
else return (fibonacci(n-1)+fibonacci(n-2));


}

Diziler

**Dizi elemanları ardışık hucrelerde saklanmaz**
Dizi,ayni tipteli verilere tek bir isimle erişmek için kullanılan bir kümedir.
Bir dizi bildirildikten sonra dizinin bütün elemanları bellekte ardışık olarak saklarnır.Buna göre bir diziyi dizi yapan ii temel özellik vardir.
1-Dizi elemanların bellekte (program çalıştığı sürece) sürekli biçimde bulunur
2-Dizi elemanların ayni türden değişikler olması
Dizilerin Bildirimi
Bir Dizi çok sayida değişken barındırdığından bunlari birbirinden ayırtetmek için indis adi verilerin bir bilgiye ihtiyaç vardır
c programlama dilinde başlangıç indisi her zaman 0'dır
Bir dizinin bildirim işlemin genel biçimi söyledir.


veritipidizi_adı[Eleman_sayisi];

 int notlar[50];
 notlar[0]=100
 notlar[1]=75
 notlar[2]=80
 Dizilerin eleman sayılarını aşağıdaki gibi sembolik sabitlere belirtmek mümkündür
 #define n 100
 Bir dizinin bellekte kapladıgı alanın bayt cinsinden karşılığı sizeof operetörü ile öğrenilebilir

 int a[5],b,c;
 b=sizeof(a);  /*Bellekte Kapladıgı alan:b=4*5=20 bayt*/
 c=sizeof(a) /sizeof(int);/*Dizinin boyutu c=20/4=5 */
 Diziler
 dizilere başlangıç degeri verme
 bir dizie başlangıç degerleri aşagıdaki gibi kısa atanabilir :
  float kutla[5]= {8.471,3.683,9.107,4.739,3918};
  int maliyrt[3]= { 25,72,94};
 
  gelişmiş compilerlar [x] x'i ister .
  ms dos gibi düşük kompaylırlar istemez.
  bir diziin uzunluğu belirtilmeden de başlangıç değeri atamak mümkündür
  int[] = {100,200,300,400};
 
  derleyici bu şekilde bir atama ile karşılaştığında , küme parantezi içindeki eleman sayısını hesaplar ve dizinin
  o uzunlukta açıldığını varsayar.
  ----------------
  #include <stdio.h>

int main(){
    int notlar[10],i;
    for(i=0;i<=10;i++){
    printf("notlar dizisinin %d.elemanini giriniz:",i) ;
scanf("%d",&notlar[i-1]);
  }
for(i=1;i<=10;i++)
printf("notlar dizisinin %d.elemani %d dir\n",i,notlar[i-1]);
return 0;
}
------------------------
#include <stdio.h>

int main(){
    int boyut,i;
    printf("dizinin kac elemanli olacagini giriniz");
    scanf("%d",&boyut);
   
    int notlar[boyut];
    for(i=0;i<=boyut-1;i++){
    printf("notlar dizisinin %d.elemanini giriniz:",i) ;
scanf("%d",&notlar[i-1]);
  }
for(i=1;i<=boyut-1;i++)
printf("notlar dizisinin %d.elemani %d dir\n",i,notlar[i-1]);
return 0;
}
-------------------------
#include <stdio.h>

int main(){
    int boyut,i;
    printf("dizinin kac elemanli olacagini giriniz");
    scanf("%d",&boyut);
   
    int notlar[boyut];
    i=1;
    while (i<=boyut){

    printf("notlar dizisinin %d.elemanini giriniz:",i) ;
scanf("%d",&notlar[i-1]);
i++;
  }
  i--;
while (i>=1){
printf("notlar dizisinin %d.elemani %d dir\n",i,notlar[i-1]);
i--;
return 0;}

}
---------------------

Recursion (Yineleme) C

Recursion (Yineleme)
Bir problrmin aynı türden alt problemlere bölünmesi tekniğidir.
örneğin faktoriyel hesabı
5! = 1*2*3*4*5=120
faktoriyelin hesaplanması için yinelenmeli bir fonksiyon kullanılabilir.
5! = 4!*5
n!=(n-1)!*n
(n-1)!=(n-2)!*(n-1)

int factorial(int n){
if(n<= 1)
return 1;
else return *factorial(n-1);
}
#include <stdio.h>
int factorial(int n){
int main(){
int sayi,sonuc;
scanf("%d",&sayi);
sonuc=factorial(sayi);
printf("%d!",sonuc);

}
int factorial (int n){

if(n<= 1) return 1;
else
return n*factorial(n-1);
}
}

██████████████
#include <stdio.h>
int factorial(int n);
int main()
{
int sayi,sonuc;
scanf("%d",&sayi);
if(sayi%2==0){

sonuc=factorial(sayi);
printf("%d!",sonuc);
}
else
printf("ksuur bakmayin");

}
int factorial (int n)
{

if(n<= 1) return 1;
else
return n*factorial(n-1);
}                               

4 Kasım 2018 Pazar

Fonksiyonlar

FONKSİYONLAR

C programlama dili fonsiyon olarak adlandırılan alt programların birleştirilmesi kavramına dayanır. Bir C programı yada daha çok fonksiyonun bir araya gelmesi ile oluşur.Her fonksiyonun bir adı ve fonksiyona gelen değerleri gösteren argumanları(bağımsız değişkenleri) vardır. C dilinde hazırlanan bir fonksiyonun genel yapısı şöyledir:

FonksiyonTipi FonksiyonAdı(arguman listesi)
argumanların tip bildirimleri
{
 Yerel değişkenlerin bildirimi
 ...
 fonsikyon içindeki deyimler veya diğer fonksiyonlar
 ...
}

Örnek Fonksiyon: İki tamsayıyı toplayıp sonucu sonuc adlı değişkene aktarır. /*Bu foksiyonun iki tamsayıyı toplar ve sonucu sonuc değişkenine aktarır*/
int tamsayi_topla(int x, int y)
{
  int sonuc;
  sonuc=x+y;
  return sonuc;
}

Yukarıdaki program parçası şu şekilde de yazılabilir:
/*Bu fonksiyon iki tamsayıyı yoplar*/
int tamsayi_topla(int x, int y)
{
  return(x+y);
}

3 Kasım 2018 Cumartesi

Girilen sayının basamaklarını toplayıp Çift oldugunu söyleyen Program C

#include<stdio.h>
int main()
{
      int sayi,yuzler,onlar,birler,binler;
      int y,o,b,bi,sonuc,yu,i,j;
      printf("Dort basamakli bir sayi giriniz \n(cikis icin 0 a basin) :");
      scanf("%d",&sayi);
      while (sayi!=0)
      {
            if(sayi>=1000 && sayi<=9999)
            {
         
            binler=(sayi/1000);  printf("%d \n",binler);
                yuzler=(sayi/100);
if(yuzler>10){

            yu=yuzler%10;
            y=yu;
        };   printf("%d \n",yu);
                onlar=(sayi%100)/10; printf("%d  \n",onlar);
                birler=(sayi%10);    printf("%d  \n",birler);
             
               
   
             
                o=onlar;
                b=birler;
                bi=binler;
                sonuc=bi+b+o+yu;
                printf("Basamaklardaki sayilarin toplami %d dir  \n",sonuc);
                if(sonuc%2==0)
                printf("Toplamlari %d chift sayidir\n",sonuc);
                else
                printf("Toplamlari %d chift sayi degildir \n",sonuc);
             
                               
            }
            else
            {   printf("yanlis giris yaptiniz !.. \n");
             
            } 
            printf("\n****** Dort basamakli bir sayi giriniz ******\n(cikis icin 0 a basin) :");
            scanf("%d",&sayi);
      } 
     
      printf("program sonlaniyor...");
      getch();   
         
     
}   

obeb okek bulan program C/döngü/switchcase

#include <stdio.h>

int main() {

    int sayi1, sayi2, kucukSayi,secim;
    int i, obeb = 1, sonuc;

    printf("Birinci Sayiyi Giriniz: ");
    scanf("%d", &sayi1);
    printf("Ikinci Sayiyi Giriniz: ");
    scanf("%d", &sayi2);

    if (sayi1 < sayi2)
        kucukSayi = sayi1;                      //Hangi sayının küçük olduğu saptanılıyor.
    else
        kucukSayi = sayi2;


    for (i = 2; i <= kucukSayi; i++) {                //i kücük sayıya ulaşana kadar sayi 1 ve sayi 2 i ye bölünüyor 
        if (sayi1 % i == 0 && sayi2 % i == 0)           // ikiside kalansız bölününce bu ebob a eşit oluyor
            obeb = i;
    }
    sonuc = (sayi1 * sayi2) / obeb;           //sayilarin carpimi obebe bölünürse buda ekoka denk gelir
printf("Hangi islemi yapmak istersiniz \n");
printf("press [1] for okek \n");
printf("press [2] for obeb \n");
scanf("%d",&secim);
switch ( secim ){

case 1:
printf("\aokek = %d",sonuc); getch(); break ;




case 2:
printf("\aobeb = %d",obeb); getch(); break ;
default : printf("Hatali secenek girdiniz..."); getch(); break;

     getch();
    return 0;

}

Sayıya Göre Gün bulan Program C/Switch Case

#include <stdio.h>

int main(){
int x;
printf("Bir sayi giriniz (1-7)");

    scanf("%d",&x);
    printf("Sayiniz %d\n",x);
   
    switch(x){
    case 1: printf("Pazartesi\n"); break;
    case 2: printf("Sali\n"); break;
    case 3: printf("Carsamba"); break;
    case 4: printf("Persembe\n"); break;
    case 5: printf("Cuma\n"); break;
    case 6: printf("Cumartesi\n"); break;
    case 7: printf("Pazar\n"); break;
    default:printf("HATA ! Sayi 1-7 arasinda degil");
   
}
getch();
return 0;
}

Aritmetik Ortalama Bulan Program C

/* Aritmetik Ortalama Bulan Program*/
#include <stdio.h>
int main(){
    int a,b,c,d,e;
   
float aritmetiko;

printf("Aritmetik ortalamasini alinacak bes \n");
printf("sayiyi teker teker enter basarak giriniz\n");

scanf("%d%d%d%d%d",&a,&b,&c,&d,&e) ;
aritmetiko=(a+b+c+d+e)/5.0;
printf("\ Girdiginiz degerlerin aritmetik ortalamasi %.2f dir..",aritmetiko);
system("pause");
}

Faktöriyel Programı C

#include <stdio.h>
int main(void){

 double fact=1;       // 1 facta atanıyor
 int n,i;            // n ve i belirleniyor

 printf("sayi giriniz\a"); //ekrana yazdırılıyor
 scanf("%d",&n);       //kulanıcının girişi taranıyor
 for(i=n;i>1;i--){    //kullanıcının yazdığı sayi 1 e gelene kadar azaltılarak fact i ile çarpılıyor

  fact *=i;
 }
 printf("%d ! = %20f\a",n,fact);
     getch();
    return 0;
}