C ile C++ Arasındaki Farklar

  • C fonksiyon tabanlı yapısal bir programlama dilidir, C++ ise OOP (Nesne Yönelimli) bir programlama dilidir.
  • C++, C’ nin bir üst düzeyi olarak düşünülebilir.
  • C düşük seviyeli sistemler için yazılabildiği gibi yüksek sistemlilerde de kullanılabilir. Makine diline daha yakındır.
  • C++ daha kolay ve hızlıdır.
  • C, en popüler yapısal programlama dilidir.
  • C++, en popüler nesne temelli programlama dilidir.

C Dilinde Matrisler

Geldik çok boyutlu diziler olan matrislere.

Öncelikle dizi, belirli sayıdaki değişkeni bir sıra içinde tutmak için kullanılır. Diziler, tek boyutlu ve çok boyutlu olabilir. Örneğin; matrisler, iki boyutlu dizilerdir. Satır ve sutün olmak üzere iki boyuttan oluşurlar.

Aşağıdaki örnekte matrisin kaça kaçlık bir matris olduğu ve elemanları kullanıcı tarafından girilecektir.

#include<stdio.h>
#include<conio.h>
 int main()
{
  int melis[50][50];
  int i,j,satir,sutun;

  printf("Satir sayisini giriniz:"); 
  scanf("%d",&satir);
  printf("Sutun sayisini giriniz:");
  scanf("%d",&sutun);

  printf("\nDizinin degerlerini giriniz:\n");
  for(i=0;i<satir;i++)
  {
   for(j=0;j<sutun;j++)
   {
    printf("\nmelis[%d][%d] icin deger: ",i,j);
    scanf("%d",&melis[i][j]); 
   }
  } 
    printf("\ndizi %d Satir ve %d Sutundan olusan=melis[%d][%d] cok boyutlu dizi:\n",satir,sutun,i,j);
    for(i=0;i<satir;i++)
  {
    for(j=0;j<sutun;j++)
   {
   printf("%2d",melis[i][j]); 
   } 
    printf("\n\n"); 
  }
   getch(); 
}

C Dilinde Gelin ‘H’ Harfi Yapalım!

♣For’ları öğrendiğimize göre bunu yapmak oldukça basit olmalı:

#include <stdio.h>
int main()
{
 int i,j;
 for(i=0;i<=0;i++)
 {
   for(j=0;j<=3;j++)
   printf("*\t*\n");
   printf("---------\n");
 
   for(int a=0;a<=0;a++)
  {
    for(int b=0;b<=3;b++)
    printf("*\t*\n");
  }
 }
}

C Dilinde Sayıları Büyükten Küçüğe Sıralama

Scanf’ten bahsetmemişiz bahsedelim hemen. Scanf fonksiyonunun prototip bildirimi de printf fonksiyonu gibi stdio.h başlık dosyasında yer alır. Yazdığımız programda karşı taraftan veri almak istediğimizde adreslerle iş yapan sevgili ‘scanf’i kullanırız.

Puts() ise scanf() gibi bizden bilgiyi alır. Aslında ‘puts’ un asıl görevi, ileride göreceğimiz katarları alıp, atamak için kullanmaktır. Şöyle ki; sevgili scanf() bizden şu cümleyi almak için yetersizdir: “Programlamayı ögrenmek istiyorum”. Çünkü boşluk gördüğü anda, veriyi almayı keser ve sadece “Programlamayı” kelimesinin atamasını yapar. Boşluk içeren böyle cümleler için puts( ) ve gets( ) fonksiyonları kullanılır.

Bu bilgiler ışığında şimdi gelin programa bakalım. Burada görüldüğü gibi bir sayı dizimiz var x[5]; i ve j ise if yardımıyla 2 sayı arasında kıyaslama yapmak için kullanılacak. ‘Gec’ değişkeni kıyaslama için verilen gecici bir değer. Şimdi gelin sıralamaya başlayalım:

#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
 main()
 {
   int x[5],i,j,gec; puts("5 tane sayi gir:");
   for(i=0;i<5;i++)
  {
    printf("%d Sayi: ",i);
    scanf("%d",&x[i]);
  }

   for(i=0;i<4;i++)
  {
   for(j=i+1;j<5;j++)
   {
     if( x[j]<x[i] )
    {
      gec = x[i];
      x[i] = x[j];
      x[j] = gec;
    }
   }
  }
   for(i=0;i<5;i++)
   printf("\n %d",x[i]);
   getch();
 }

C Dilinde Mod Alarak 1’den 20’ye kadar Tek Sayıları Yazdırma (Continue ile)

C dilinde mod almak istersek bunu nasıl yaparız? Tek sayıları nasıl yazarız?

Aşağıda gördüğünüz gibi ‘i’ değişkenini integer tipinde ‘for’un içinde tanımlayabiliyoruz.

Şimdi gelelim nasıl çalıştığına:

‘i’ nin 2’ye göre modu 0 ise (yani bir sayı 2’ye bölündüğünde kalan 0’sa) bu bir çift sayıdır. Bu durumda ekrana yazdırılmaması için döngü bir sonraki adıma geçip ekrana tek sayıları basar. (‘continue‘ ile bu sağlanır.)

#include <stdio.h>
#include <conio.h>  // getch() fonksiyonun kütüphanesi. Bu fonksiyon programın durmasını sağlar.

int main()
{
 for(int i=0; i<20; i++)
 {
   if(i%2 == 0) continue;
   printf("%d \n",i);
 }
   getch();
}

C Dilinde 1’den 20’ye Sayıları yazdır ama 18 ile 28 arasındakiler olmasın!

Evet geldik şimdi başka bir örneğe. Başlıktan da gördüğünüz gibi şimdi 1’den 40’a kadar olan rakamları yazdıracağız. Ancak 18 ile 28 arasındaki sayılar olmayacak. Gördüğünüz gibi bunun için continue diye bir komut kullandık. Gövdenin içindeki continue komutu döngüyü devam ettirmek için kullanılır. Nasıl kullanıldığını görmeniz için burada kullandım yani bunu illa burada kullanmak gibi bir zorunluluğunuz yok.

#include <stdio.h>

int main()
{
 int x;
 for(x=1;x<=40;x++)
 {
  if(x>18 && x<28)
  continue;
  printf("%d \n",x);
 }
}

C Dilinde For Döngüsü ile Yıldızlarla Üçgen Yapımı

For Döngüsü, döngünün (loop) kontrol degişkenine başlangıç değerinin atanması ile başlar. Daha sonra koşulumuzu yazar, son olarak kaçar arttırmak (veya azaltmak) istiyorsak onu yazarız.

Sol tarafta gördüğünüz i++ demek i=i+1 demektir yani sayıyı 1 arttırır ve ekrana normal üçgen basar. Sağ tarafta gördüğünüz ise ters üçgendir. Orada da üçgeni tersten elde etmek için i- – diyerek birer azaltıyoruz.  Bunu yapmak için de iç içe for kullanıyoruz.

#include <stdio.h>          #include <stdio.h>
int main()                  int main()
{                            {
 int i,j;                      int i,j;
 int sayi=5;                   int sayi=0;
 for(i=0;i<=sayi;i++)          for(i=10;i>=sayi;i--)
 {                              {
  for(j=0;j<=i;j++)               for(j=0;j<=i;j++)
  printf("*");                    printf("*");
  printf("\n");                   printf("\n");
 }                              }
}                             }