C’de 10 Tabanından 2’lik Tabana Çevirme

Karşınızda fonksiyon, mod, while ve for döngüsü kullanarak C dilinde 10’luk tabandan 2’lik tabana geçiş programı.  Güle güle çevirin.

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

int ikilik(int x)
 {
 int i,k[20];
 i=0;
 while(x>=1)
 {
 i++;
 k[i]=x%2;
 x=x/2;
 }

printf("\nIkilik tabandaki sayi karsiligi:");
 for(i=i;i>0;i--)
 printf("%d",k[i]);
 }

int main()
 {
 int a;
 printf("Bir sayi giriniz:");
 scanf("%d",&a);
 ikilik(a);

getch();
 return (0);
 }
Reklamlar

C’de Dosyalama

Arkadaşlar C’de dosyalamanın C++’tan oldukça farklı olduğundan bahsetmiştim şimdi gelin nasıl olduğuna bir bakalım. Ayrıca dosya fonksiyonlarını da sizinle paylaşmak isterim ve tabii ki mod ile açılacak dosyaların ne amaçla açıldığını.

          r    (read only) yalnızca okuma için açar. 
          w    (write only) yalnızca yazma için açar.
          a    (append) ekleme yapmak için açar.
          r+   Okuma/yazma için açar.
          w+   Okuma/yazma için açar.
          a+   Okuma/yazma için açar.

Dosya Fonksiyonları

  Fonksiyon      Görevi
  fopen()       Dosya oluşturur, açar
  fclose()      Dosyayı kapatır
  putc()        Dosyaya karakter yazar
  getc()        Dosyadan karakter okur
  feof()        Dosya sonuna gelindiğini sorgular
  fprintf()     Dosyaya formatlı veri yazar
  fscanf()      Dosyadan formatlı veri okur
  fputs()       Dosyaya katar yazar
  fgets()       Dosyadan katar okur
  fwrite()      Dosyaya dizi yazar
  fread()       Dosyadan dizi okur
#include <stdio.h>
#include<stdlib.h>

int main()
{
 char str[50];
 FILE *f;
 
 f=fopen("hello.txt","w"); //dosyayı açıp içine yazıyor
 if(f==NULL)
 printf("File did not open");
 
 else
 printf("Everything was alright\n\n");
 fputs("HELLO\n",f);
 fprintf(f,"It is my first experience!");
 fclose(f);
 
 
 f=fopen("hello.txt","r"); //kelime kelime yazdırıyor
 while(!feof(f))
 {
 printf("%s \n",str);
 fscanf(f,"%s",str);
 }
 fclose(f);
 
 // while(fgets(str,sizeof str,f)!=NULL) Dosya bitinceye kadar bu işlemi yapıyor
 
 f=fopen("hello.txt","w");
 fseek(f,9,SEEK_SET); //fseek 9 byte imleci hareket ettirmek bişiler eklemek için
 fputs("New",f); //fputs("....",f);
 
 fclose(f);
 system("PAUSE");
}

C++ Dosyalama

  • fstream (Okuma ve Yazma)
  • ifstream (Okuma)
  • ofstream (Yazma)
    (C++ da dosyalama işlemleri C den oldukça farklıdır.) C++’ta dosyalama işlemleri için kullandığımız yukarıdaki komutlar aslında sınıf diye geçer. Kullanım şeklimiz bu şekilde: (“Dosyaİsmi”, Mod)

    • ios::in (Veri okuma modu)
    • ios::out (Veri yazma modu)
    • ios::app (Veri ekleme modu)    bunlar da modlarımız arkadaşlar.
      Şimdi aşağıdaki örneği inceleyelim.
#include <fstream>
#include <string>
#include <windows.h>
#include <iomanip>   //setw için
using namespace std;
int main()
{
 fstream dosya;
 
 dosya.open("melis.txt",ios::out|ios::in|ios::app);
 dosya<<"Benim Dosyam."; //dosyaya veri yazdırıyoruz
 
 dosya.setf(ios::left); //sola yaslamak için
 dosya<<setw(20)<<"aaa"<<setw(20)<<"bbbb"<<setw(20)<<"36786"<<endl; 
 // 20+20+20 karakterlik yer alsın setw(20)
 
 dosya.close();
}

C++ Dilinde Kalıtım ve Kurucu Fonksiyonlar

C++’ta yazılan kodun yeniden kullanılabilmesini sağlayan mekanizmaya kalıtım diyoruz. Yani katılım, bir sınıfın alınıp, başka bir sınıfın içerisinde bilgilerinin kullanabilmesidir. Bu özellik yazılım yaparken işimizi oldukça kolaylaştırıyor. Burada kurucu fonksiyonlardan da bahsetmek istiyorum. Öncelikle, kurucu fonksiyonlar (Constructors) üyesi oldukları sınıf ile aynı ismi taşırlar ve üyesi oldukları sınıftan bir nesne yaratılırken kendiliğinden canlanırlar. Ayrıca kurucular parametre alırlar ama geri dönüş değerleri yoktur.

#include <iostream>
#include <conio.h>
using namespace std;

class sekil
{
 public:
 int alan;
 string birim;
 string sekilturu; 
 void alanyazdir()
 {
 cout<<sekilturu<<" "<<alan<<" "<<birim<<" "<<endl;
 } 
 sekil()
 {
 birim="cm2";
 }
};

class ucgen:public sekil
{
 public:
 int yukseklik,taban;
 ucgen()
 {
 sekilturu="ucgen";
 }
 
};

class dikdortgen:public sekil
{
 public:
 int en,boy;
 dikdortgen()
 {
 sekilturu="dikdortgen";
 }
};

class kare:public sekil
{
 public:
 int kenar;
 kare()
 {
 sekilturu="kare";
 }
};

class daire:public sekil
{
 public:
 int yaricap;
 daire()
 {
 sekilturu="daire";
 }
};

int main()
{
 kare k1;
 k1.kenar=10;
 k1.alan=k1.kenar*k1.kenar;
 k1.alanyazdir();
 
 daire d1;
 d1.yaricap=10;
 d1.alan=3.14*d1.yaricap*d1.yaricap;
 d1.alanyazdir();
 
}

C++ Dilinde Class Yapısı

Sınıf yapısı ile birlikte OOP (object oriented programming) yani nesneye dayalı programlamaya başladık arkadaşlar.

Bu yapı struct (yapı) ile oldukça benzerdir ve kullanımı aynıdır. struct ile class arasındaki fark:

“Sınıfların referans türünde, yapıların ise değer türünden olmasıdır. Bundan dolayı yapılar stack (yığın) alanı üzerinde, sınıflar ise heap (öbek) alanı üzerinde tutulurlar. Sınıflara referans aracılığıyla ulaşılırken yığınlara ise doğrudan ulaşabiliriz. Bu nedenle yapı kullanımı sınıf kullanımına göre daha az maliyetlidir ve erişim hızı yüksektir.”

Şimdi gelelim aşağıdaki örneğimize. Burada bir daire sınıfı tanımladık ve elemanlarını public yaptık (yani dışarıdan erişilebilir). Sınıfın dışında bir hesap fonksiyonu oluşturduk ve main() fonksiyonunun içine çevre ve alanı yazdırdık. Bunu daire tipinde bir nesne oluşturarak ve hesap() fonksiyonu ile gerçekleştirdik.

#include <iostream>
#include <conio.h>
using namespace std;
class daire
{ 
 public:
 float cevre,alan;
 int hesap();
};

int daire::hesap()
{
 int yaricap;
 cout<<"Yaricapi giriniz:"<<endl;
 cin>>yaricap;
 cevre=2*3.14*yaricap;
 alan=3*yaricap^2;
 cout<<"Cevre:"<<cevre<<endl<<"Alan:"<<alan<<endl;
 return 0;
}
int main()
{
 daire nesne;
 cout<<nesne.hesap();
 getch();
}

C++ Dilinde Struct Yapısı

Selam,
Struct, integer gibi bir veri tipidir.

Öncelikle, main() fonksiyonunun üstünde struct yapısını oluşturuyoruz. Yani struct tipinde bir ‘kişi’ değişkeni tanımlıyoruz. {Süslü parantezleri unutmayınız.}

Bir farklılık olarak struct yapısında süslü parantezden sonra “;” kullanılıyor. Gerisini daha önce gördüğümüz şekilde oluşturuyoruz.

#include <iostream>
#include <conio.h>
#include <string.h>
using namespace std;

struct kisi
{
 char ad[30];
 char soyad[25];
 int yas;
}deneme;

main()
{
 strcpy(deneme.ad,"Melis");
 strcpy(deneme.soyad,"Turkoglu");
 deneme.yas=20;
 cout<<"Adi:"<<deneme.ad<<endl;
 cout<<"Soyadi:"<<deneme.soyad<<endl;
 cout<<"Yasi:"<<deneme.yas<<endl; 
}

C++ Dilinde Fonksiyonlar

Fonksiyonumuzu tanımlayıp main()’in içine tanımladığımız fonksiyonu yazıyoruz.

#include <iostream>
using namespace std;

void topla(int a, int b)
{
 short c[]={12,55};
 char d[]={'S','E','L'};
 cout<<a+b;
}

int main()
{
 int a=15;
 char d[]={'S','E','L'};
 {
 int b=10;
 topla(12,55);
 short c[]={12,55};
 } 
}