Thursday, July 12, 2012
Bool kullanımı (C#)
bool ifadesi yapılan işlemler sonucunda programın doğru(true) veya yanlış(false) sonucunu vermesidir.
bool türünden tanımlanan değişken parentez içersindeki koşulun durumuna göre doğru veya yanlış değerini alır.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace boolkullanımı
{
class Program
{
static void Main(string[] args)
{
bool x; // bool türüyle bize doğru, true(1) veya yanlış,false(0) değeri üretecek x tanımladık.
int b;
Console.Write("bir sayi giriniz: ");
b= Convert.ToInt32(Console.ReadLine());
x= ( b> 10 ); /* eğer klavyeden girilen sayı 10dan büyükse x değişkeni doğru (1) değerini
alacak, klavyeden girilen sayı 10dan küçükse x değişkeni yanlış(0) değerini
alacak.*/
Console.WriteLine(x); /*ekrana b>10 durumuna göre 1 veya 0 yazacak. */
Console.ReadLine(); // programın açık kalması için klavyeden değer girilmesini bekleyecek.
}
}
}
Toplama işlemi (C#)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Toplama
{
class Program
{
static void Main(string[] args)
{
int x,y, toplam=0; /*int türünde x , y ve toplam adında 3 değişken tanımladık. toplam değeri
üzerinde yeni değişkenler ile işlem yapacağımız için sıfırladık*/
Console.Write("1nci sayiyi giriniz: "); /*ekrana 1.nci sayiyi giriniz yazdırdık. */
x=Convert.ToInt32(Console.ReadLine()); /* klavyeden girilen değeri int türüne çevirdik ve x değişkenine
atadık */
Console.Write("2nci sayiyi giriniz: ");
y=Convert.ToInt32(Console.ReadLine());
toplam= x + y; /* klavyeden girilen ilk sayiyi(x) ve ikinci
sayiyi(y) toplatıp toplam adlı değişkenimize atadık. */
Console.WriteLine("toplam= " + toplam); /* ekrana toplam değişkeninin değerini yazdırdık. sayılar 3
ve 8 ise ekrana 11 yazacak. */
Console.ReadLine(); /* klavyeden enter tuşuna basılasıya kadar programın
açık kalmasını sağlar. */
}
}
}
bu program ekrana kullanıcı tarafından girilen 2 sayının toplamını yazdıracak.
Convert ve ToString ile tür dönüşümü (C#)
Convert.ToInt32() ve ToString() methodları ile değişkenlerin türlerini deşitirebiliriz.
ConverToInt32() parantez içersindeki değişkeni int türüne çevirir. Kullanıcıdan alınan değerler string türünden alındığı için
bu method genellikle kullanıcıdan alınan sayıların int türüne çevrilmesinde kullanır.
x.ToString() methodu ise x değişkenini string türüne çevirir.
örnek olarak;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace turdonusumu
{
class Program
{
static void Main(string[] args)
{
int a;
string x;
Console.Write("bir sayi giriniz: "); /* kullanıcıdan girmesi istedigimiz değer string türünden olucaktır */
a = Convert.ToInt32(Console.ReadLine()); /* kullanıcıdan aldığımız string değerini int türüne
çevirdik ve a değişkenine atadık. */
Console.WriteLine("int: "+ a);
x = a.ToString(); /* int türündeki a değerini string olarak x değişkenine atadık */
Console.Write("string: " + x); /* string türündeki x i ekrana yazdırdık */
Console.ReadLine();
}
}
}
İlk Program (C#)
using System; /* using ile başlayan kodlar programın kütüphanelerini çağırır */
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Ilkprogram /* isim uzayı adı verilen bölüm programın ismini barındırır. */
{
class Program
{
static void Main(string[] args) /* main adlı programı çalıştıran ana methodtur. */
{
Console.WriteLine("Merhaba Dunya"); /* Console.WriteLine() methodu parentez içersindeki kısmı
ekrana yazdırır. */
Console.ReadLine(); /* Console.ReadLine() methodu klavyeden enter tuşuna kadar
basılan değerleri tutar, programın enter tuşuna kadar açık kalmasına sağlar. */
} /* açılan her süslü parantez kapatılmalıdır. */
}
}
Monday, May 21, 2012
Fonksiyonlar;
Fonksiyonlar tekrar tekrar aynı kodların yazılmasını önlemek için kullanılır.Bir fonsiyonun çalışması için başka bir fonksiyon tarafından çağrılması gerekir.
Fonksiyon içinde tanımladığımız kod parçacığını ana fonksiyon içinde çağırdığımız takdirde o fonksiyonun sahip olduğu deyimleride çalıştırmış oluruz. böylece
sürekli aynı kod parçacıklarını kullanmamız gereken durumlarda bize kolaylık sağlar.
fonksiyonlar ; tür fonksiyon_adı (parametreler) { deyimler.. } şeklinde tanımlanır.
kullandığımız main fonksiyonuda buna örnektir.
deneme adlı fonksiyon int deneme(int x, int y) {} şeklinde tanımlanır.
1.Örnek; merhaba yazdıran fonksiyon.
#include <iostream>
#include <conio.h>
using namespace std;
int deneme(){
cout<<"merhaba"; // deneme adındaki fonksiyonda ekrana merhaba yazdırmasını söyledik.
}
int main(){
deneme(); // deneme fonksiyonunu deneme() ile çağırdık. burada deneme adlı fonksiyondaki deyimler
çalıştırılacak.
getch();
return 0;
}
2.örnek; tanımlanan fonksiyonda klavyeden girilen 2sayının toplamını ve çarpımını tutan ve bunu main fonksiyonunda çağıran program.
#include <iostream>
#include <conio.h>
using namespace std;
int islemler(){
int a,b;
cout<<" ilk sayiyi giriniz: ";
cin>>a;
cout<<"ikinci sayiyi giriniz: ";
cin>>b;
cout<<"toplamlari" << a+b <<endl;
cout<<"carpimi" << a*b;
}
int main(){
islemler();
getch();
return 0;
}
3.Örnek; topla ve çarpım adında 2 fonskiyonu olan bu fonksiyonlarda main fonksiyonundan alınan değerleri işletip sonucu geri gönderen program;
#include <iostream>
#include <conio.h>
using namespace std;
int topla(int ilk, int son) {
return ilk+son;
}
int carpim(int ilk, int son) {
return ilk*son;
}
int main(){
int a,b;
cout<< "birinci sayiyi giriniz: ";
cin>>a;
cout<< "ikinci sayiyi giriniz: ";
cin>>b;
cout<< "toplamlari: " << topla(a,b) << endl;
cout<< "carpimlari: " << carpim(a,b);
cin>>a;
}
4.Örnek; main fonksiyonundan alınan değerler ile fonksiyonda üssünü alan program;
#include <iostream>
#include <conio.h>
using namespace std;
int usalma(int taban, int us){
int sonuc=1, i;
for(i=1; i<=us; i++){
sonuc= sonuc * taban;
}
return sonuc;
}
int main(){
int a,b;
cout<< " tabani giriniz: ";
cin>>a;
cout<< " ussu giriniz: ";
cin>>b;
cout<< "sonuc: " << usalma(a,b);
getch();
return 0;
}
5.örnek; fonksiyona dizi yi parametre olarak gönderen program.
#include <iostream>
#include <conio.h>
using namespace std;
int deneme(int sayi[]) {
int i;
for(i=0; i<5; i++){
cout<< sayi[i];
}
}
int main(){
int sayilar[5]={2,3,5,4,2};
deneme(sayilar);
getch();
}
Random sayı üretme
random kodu ile program kendiliğinden rasgele bir sayi üretir.
random kodu; baslangıç değeri + rand()%100 seklinde kullanılır.
1 ile 100 arasında sayı üretmek için 1+ rand()%100 (1+ 100= 101 1-100 dahil arası sayı üretir.
100 ile 200 arasında sayi üretmek için 100 + rand()%101; (100+101= 201 100-200 dahil arası sayi üretir.
5ile 15 arasında sayi üretmek için 5 + rand()% 11 ; (5 + 11=16 5-15 dahil arası sayi üretir.
random sayi üretmeden önce bilgisayarın sürekli aynı sayıları üretmemesi için srand(time(0)) kodunu yazmamız gerekir.
#include <conio.h>
using namespace std;
int main ()
{
srand(time(NULL)); //kodlar her calistiginde ayni sayilari uretmemesi icin yazılır.
int dizi[10];
int i;
for (i=0;i<10;i++)
{
dizi[i] = 0+rand()%100; // 0 ile 100 arasinda sayi üretir.
cout<< dizi[i] << endl;
}
getch();
}
Örnek; 6 kerede rasgele üretilen bir sayıyı tahmin etme oyunu.
#include<iostream>
#include <conio.h>
using namespace std;
int main () {
int x,a;
srand (time(0)); //aynı sayılar üretilmemesi için yazdık.
x=1+rand()%100; //1-100 arasında rastgele bir sayıyı x değişkenine atadık.
cout<< "1-100arasindaki sayiyi 6 hakkinda bul..."<< endl;
for (int i=0;i<6;i++) { //6 tane hak verdik yani döngü 6kez dönücek.
cout<<"tahminin nedir ? : ";
cin>>a;
if (a>100 || a<0) // girilen tahmin 100den büyük ve 0dan küçük ise uyarı verecek.
{
cout<<"sayi 1-100 arasi olmalı!!";
}
if (a==x){
cout<<"Tebrikler doğru tahmin ettin."<<endl;
}
if(a!=x){
cout<<"Yanlis cevap."<<endl;
}
}
cout<<endl<<endl<<"Hakkin doldu"<<endl;
cout<<"sayi " << x << " idi";
getch();
return 0;
}
Karakter(katar) dizileri
Katar dizileri char türden dizilerdir. Katar dizileri özellik olarak diğer dizelere benzerlik gösterir. Char türden diziler daha çok içlerinde yazı tutmak için
tanımlanırlar.char türden bir dizinin içinde bir yazı tutmanın dışında küçük tamsayıları tutmak amacıyla da kullanılabilinir.
char katar[100];
şeklinde tanımlanan katar dizisi bütün elemanları char türden olan 100 elemanlı bir dizidir.
char türden bir dizi içinde bir yazı tutmak demek, dizinin her bir elemanına sırayla yazının bir karakterini atamak anlamına gelir.
galatasaray kelimesinin karakterlerini dizi adli bir katar dizisine tutulması;
char dizi[100]; ise
0.index g
1.index a
2.index l
..
11.index y şeklinde tutulur.
Null (\0) Karekteri;
'\0' karakteri karakter dizileri üzerinde yapılan işlemleri hızlandırmak için kullanılır. Örneğin int türden bir dizi kullanıldığında dizi elemanları üzerinde
döngüleri kullanarak işlem yaparken dizi uzunluğunun mutlaka bilinmesi gerekmektedir. Ama char türden diziler söz konusu olduğunda artık dizi uzunluğunu
bilmemiz gerekmez, çünkü yazının sonunda '\0' karakter bulunacağından, kontrol ifadelerinde budurum test edilerek yazının sonuna gelinip gelinmediği anlaşılır. Ancak '\0' karakterin, karakter dizilerinde yazıların son elemanı olarak kullanılmasının dezavantajı da diziye fazladan bir karakter yani
'\0' karakteri eklemek zorunluluğudur. Bu nedenle 10 elemanlı bir diziye en fazla 10 – 1 tane karakter girilebilinir.
char dizi[3] =”Ali”; C++'da hata verir. nedeni ise;
1. 'A' dizi[0]
2. 'l' dizi[1]
3. 'i' dizi[2]
... buraya bu durumda null karakteryerleştirilmiyor.(sonuncu index dolu.)
Şimdi dizi adlı katar dizisinin elemanlarını ekrana yazdırmak istersek ne yapmalıyız?
char dizi[100]="galatasaray";
for(i=0; i<100; i++)
cout<<dizi[i];
ifadesini kullanırsak program galatasaray harflerini yazdırdıktan sonraki indexleri boş olarak ekrana yazdırmaya devam eder. bu boş indexleri \0 simgeler.
yani;
char dizi[4]= "ali" olsun 1.index a, 2.index l, 3.index i, 4.index ise \0 olur . '\o' null değeri olarak ifade edilir. belli bir karekteri ifade etmez.
örnek; dizi uzunluğunu bulan program;
#include <iostream>
#include <conio.h>
using namespace std;
int main(){
int i=0;
char dizi[20] = "galatasaray";
while(dizi[i] != '\0') //0 dan baslayan dizinin index teki sayi null değerine eşit olmadığı sürece döngüye gir
ve i yi 1 arttır.\0 ' ' içine yazılır.
i++;
cout<<"uzunluk: " << i;
getch();
}
örnek; çok boyutlu karakter dizisi kullanımı;
#include <iostream>
#include <conio.h>
using namespace std;
int main(){
char dizi[][8] = {"ali","veli","mesut","adem"};
cout<<dizi[1]; //ekrana veli yazar.
getch();
}
örnek; klavyeden girilen kelimeyi tersten yazdıran program;
#include <iostream>
#include <conio.h>
using namespace std;
int main(){
int i=0;
int k;
char dizi[20];
cout<<"kelime giriniz: ";
gets(dizi);
while(dizi[i] != '\0') //dizinin uzunluğunu bulmak için 0dan başlayan dizi index inin Null olmadığı kontrol
ettirdik. Null değerine ulaşınca döngü bitecek.
i++;
for(k=i; k>=0; k--)//k değerini dizi uzunluğuna atadık. dizi uzunluğu 0 a eşitlenesiye kadar teker teker
değeri düşecek. uzunluğun numarasındaki indexte yer alan karekter ilk olarak
devamında 0ncı indexteki karaktere kadar tek tek ekrana yazılacak. kelime mal ise
ilk olarak 2.indexteki l ardından 1.endexteki a son olarak 0.indexteki m yazılacak
kelime lam olacak.
cout<< dizi[k];
getch();
return 0;
}
String olarak dizi tanımlama;
#include <iostream>
#include <conio.h>
using namespace std;
int main(){
string dizi[10]={"sifir","bir","iki","uc","dort"}; //index numarası ile dizideki elemanların satırlarına ulaşılabilir.
cout<< dizi[3];
getch();
return 0;
}
Katarları Kopyalama;
#include <iostream>
#include <conio.h>
using namespace std;
int main(){
char dizi[30];
strcpy(dizi,"sampiyon");
puts(dizi);
getch();
return 0;
}
katarları birleştirme;
#include <iostream>
#include <conio.h>
using namespace std;
int main(){
char dizi[30]="galatasaray";
strcat(dizi,"sampiyon");
puts(dizi);
getch();
return 0;
}
Puts ve Gets İfadeleri;
#include <iostream>
#include <conio.h>
using namespace std;
int main(){
char dizi[30];
//cin>>dizi; //yerine ;
gets(dizi); //kullanabiliriz fark olarak imlec alt satırdan başlar.
//cout<<dizi; // yerinede
puts(dizi); //kullanılabilinir.
getch();
return 0;
}
Dizinin uzunluğunu bulma;
strlen(dizi) kodu ile dizi adlı dizinin uzunluğunu bulabiliriz.
#include <iostream>
#include <conio.h>
using namespace std;
int main(){
char dizi[30];
gets(dizi); //klavyeden değer girdirdik.
cout<<"dizininin boyutu" << strlen(dizi) << endl;
puts(dizi); //değerleri okuttuk.
getch();
return 0;
}
Çok boyutlu diziler
Çok boyutlu diziler dizi[][] şeklinde tanımlanır. 1. index dizinin satır sayısını 2. index ise dizinin sütun sayısını gösterir.
mesela dizi[4][2] şeklinde biri dizi tanımlarsak bu dizi 4 satırdan oluşur ve dizinin her satırı 2 eleman içerir.
çok boyutlu dizilerde elemanlar {{},{}...} şeklinde tanımlanır. satır sayısı kadar {} açılır ve {} içinde sutun sayısı kadar eleman yer alır.
dizi[4][2]= {{3,2},{8,2}{7,3}{6,1}} şeklinde tanımlanır.
örnek olarak;
#include <iostream>
#include <conio.h>
using namespace std;
int main(){
int i,k;
int dizi[4][2]={{3,2},{8,2},{7,3},{6,1}};
for (i=0; i<4; i++)
for (k=0; k<2; k++){ //iç içe açtığımız for lardan ilki satırları ikinci ise sutunları kontrol edicek.
cout<<"dizi ["<<i << "] [" << k <<"]: ";
cout<<dizi[i][k] << endl;
}
getch();
return 0;
}
ekran çıktısı olarak;
dizi [0] [0]: 3
dizi [0] [1]: 2
dizi [1] [0]: 8
dizi [1] [1]: 2
dizi [2] [0]: 7
dizi [2] [1]: 3
dizi [3] [0]: 6
dizi [3] [1]: 1
Diziler
Diziler belirle sayıda veriyi içinde barından değişken listesidir. Program içersinde dizi, değişken türü dizinin_adı[dizinin boyutu] şeklinde tanımlanır.
dizi içersindeki verilerin indexi(sıra konumu) 0 dan başlar. yani ilk sıradaki dizinin indexi 0 dır. int türünden deneme adında 10 eleman içeren bir dizi
tanımlamamız gerekirse, int deneme[9] şeklinde tanımlamalıyız. index numarası 0 dan başlıyacağı için deneme[9] içersinde 10 adet veri barındırır.
Dizi elamanlarını belirtmek için veriler {} süslü parentezin içine yazılır.
Dizi kullanımda 2 önemli özellik vardır bunlar;
1. Dizi elemanları bellekte ardışıl olarak bulunurlar
2. Dizi elemanları aynı türden nesnelerdir.
Dizi elemanlarına ilk değer verme işleminde dizi uzunluğu belirtilmeyebilir, bu durumda derleyici dizi uzunluğunu verilen ilk değerleri sayarak kendi hesaplar
ve dizinin o uzunlukta açıldığını kabul eder.
int sayilar[] = {10, 20, 30, 40, 50};
Dizi elemanlarına index operatörüyle [] ulaşılabilir.
int sayilar[5]= {10,20,30,40,50} 5 adet eleman içeren sayilar adlı dizinin 0. indexte bulunan elemanı 10, 1.indexte bulunan elamanı 20, 4.indexte ki ise 50dir.
sayilar[0] deyimi 10 değerini ifade eder.
1.örnek; 5elamanlı bir sayı dizisinin index numarasına göre değerini yazan program.
#include <iostream>
#include <conio.h>
using namespace std;
int main() {
int sayilar[5]={10,20,30,40,50}; //dizinin elaman sayısı 5olduğu için {]kısmına en fazla 5 adet eleman
yazılabilinir.
cout<< sayilar[0] << endl; //10 yazar.
cout<< sayilar[1] << endl; //20 yazar.
cout<< sayilar[2] << endl; //30 yazar.
cout<< sayilar[3] << endl; //40 yazar.
cout<< sayilar[4] << endl; //50 yazar.
cout<< sayilar[5]; // 5.index boş olduğu için bellekten herhangi bir sayı atar ve atadığı sayıyı yazar.
getch();
}
2.örnek; klavyeden 5tane değer girilen 5 değeri diziye atan ve bu dizideki değerlerin ortalamasını alan program.
#include <iostream>
#include <conio.h>
using namespace std;
int main() {
int dizi[10];
int i;
float toplam=0;
float ortalama=0;
for (i=0; i<5; i++) {
cout<< i+1 << "degeri giriniz"; //1-5e kadar 5 adet elman girdirdik ve bunları diziye attık.
cin>>dizi[i];
toplam += dizi [i]; // dizideki elamanları başta 0 olan toplam değeri ile topladık.
}
ortalama = toplam /5; // dizideki elemanların toplamı olan toplam değerini dizinin eleman sayısına
bölerek ortalamayı elde ettik.
cout<< "ortalama: " << ortalama;
getch();
return 0;
}
3.örnek; 10elamanlı bir sayı dizisinin en küçük elemanını ve index numarasını bulan program.
#include <iostream>
#include <conio.h>
using namespace std;
int main() {
int dizi[10] = {51, 44, 88, 3, 44, 78, 94, 61, 9, 210};
int min=0, k,indis;
min = dizi[0]; //dizinin ilk elamanını en kucuk olarak varsaydık.
for (k = 0; k < 10; ++k) {
if ( dizi[k]<min ){ //0 ve daha soran gelen indexteki değer min değerinden küçük ise ;
min = dizi[k]; //yeni min değerine onu atadık.
indis = k; // en küçük olan index in index numarasınıda index değişkenine atadık.
}
}
cout<<"dizideki en kucuk eleman = " << min <<endl;
cout<<"indisi = "<< indis << endl;
getch();
return 0;
}
4.örnek; sınıf ortalamasını bulan program.
#include <iostream>
#include <conio.h>
#define mevcut 55 // #define ile tanımlanan mevcut değerine 55 i atadık. mevcut yazdığımızda 55 değeri
baz alınacak. böylece ilerde mevcut değişikliği olursa tüm 55 değerlerini tek tek
değiştirmemiz yerine baştaki mevcudu değiştirmemiz yeterli olacak.
using namespace std;
int main(){
int dizi[mevcut], k, toplam=0; // mevcut değeri 55 ti 55elemanlı bir dizi tanımladık
float ortalama=0; // ortalama kusuratlı olabileceği için ortalama yı float türünden tanımladık.
for(k=0; k<mevcut; k++){
cout<<k+1<<".ogrencinin notu= ";//index 0dan başladiği için ilk 1.öğrenci olması gerektiğinden k+1
cin>>dizi[k]; //klaveyeden tek tek öğrencilerin notlarını girdirdik ve bunları diziye attık.
toplam = toplam + dizi[k]; //dizideki tüm elamanları topladık ve toplam değerine atadık.
ortalama = toplam / (k+1); //toplamı dizideki eleman sayısına böldük.1.öğrenciden başlattığımız için k+1
}
cout<< "sinif ortalamasi= " << ortalama << "endl";
getch();
return 0;
}
5.örnek; 10 elemanlı bir sayı dizisine 1-10arası puan girilen ve hangi puandan kaç adet bulunduğunu gösteren program.
#include <iostream>
#include <conio.h>
using namespace std;
int main() {
int i, dizi[10], Puansayisinitut[11]; //klavyeden girilen 10adet puan ı saklayacak 10 elamanlı bir dizi
tanımladık ve girilen puan değerinden dizide kaç adet bulunduğunu
tutacak Puansayisinitut adında 11elemanlı bir dizi tanımladık(puanlama
0-10 olacağı için 11elemanlı)
for(i=0; i<=10; i++){
Puansayisinitut[i]=0; //Puansayisinitut dizisindeki elamanları ilk başta 0ladık. ilerde her gelen puan değeri
0dan 1arttırılacak.
}
for(i=0; i<10; i++) {
cout<< i+1 <<". puanı giriniz(0-10 arasi hesaplanacak); "; // klavyeden 10adet puan girdirdik.(0 ve 10
arası puanlar hesaplanacak)
cin>> dizi[i];
Puansayisinitut[ dizi[i] ]++; // bu kısımda girilen puanın adet sayisi arttırılıyor. eğer dizi dizisinin 0. elamanı
5 ise Puansayisinitut dizisindeki 5. index teki 0 değeri 1 artırılacak.( başta
değerleri 0 lamıştık.) dizi dizisinin 1. elemanıda 5 ise 1 olan puansayisitut
dizisinin 5. indexi 2 ye çıkacak. yani puansayisitut dizisindeki 5. index
5değerinden kaç adet olduğunu gösterecek.
}
for(i=0; i<=10; i++){
cout<< i<< "'den" <<Puansayisinitut[i] << "adet var" << endl; //en sonunda 0dan 10 a kadar hangi puandan kaç adet olduğunu gösterecek. hiç 0 puan 0indexten girilmediyse 0ncı index 0 olarak kalmış olacak. 5puandan 3kere girilmisse 5index in değeri 3 olacak ve 5'den 3 adet var diyecek.
}
getch();
return 0;
}
}
6.örnek; 10 elamanlı bir sayı dizisinin elamanlarını büyükten küçüğe sıralayan program.
#include <iostream>
#include <conio.h>
using namespace std;
int main() {
int dizi[10]={0,52,31,24,2,45,78,14,65,99};
int buyuk, i, k;
for(i=0; i<10; i++){ //for döngümüz 0 dan başlayacak 1.for 0 değerinde iken; içindeki for döngüsü
çalışacak.
for(k=0; k<10; k++){ // içindeki for döngüsü ilk for değeri 0da iken 10 kere dönecek döngüler
tamamlandığında ikinci for toplam 100kere dönmüş olacak.
if(dizi[i] > dizi[k]){ // birinci for değerindeki i. indexteki sayi, ikinci for daki k. indexteki değerden büyük
olduğunda if deyimine girecek.
buyuk= dizi[i]; //öncelikli olarak büyük olan dizi[i] değerini elde tutmak için buyuk değerine atadık.
buyuk değeri dizi[i] nin değeriyle aynı oldu.
dizi[i]= dizi[k]; //şimdi büyük olan dizi[i] değerini küçük olan dizi[k] değerine eşitledik, şuan elimizdeki
dizi[k] ve dizi[i] değeri eşitlendi.
dizi[k] = buyuk; //küçük olan dizi [k] değeri aynı zamanda dizi[i] ye atanmıştı . bu kısımda dizi[k] değeri
dizi[i] nin ilk değeri olan buyuk'le eşitlendi.
}
} }
for(i=0; i<10; i++) {
cout<< dizi[i] << endl;
}
getch();
return 0;
}
İç içe For döngüsü;
iç içe for döngüsünde 0.indexteki eleman ilk for da diğer tüm elemanlar ile karşılaştırılıyor. büyük olan değer öncelikle elde
tutulması için buyuk'e atanıyor. ardından buyuk değer kendinden küçük olan değerin index ine atanıyor. küçük olanın indexi yani önde kalacak index ede
buyuk değeri atanıyor böylece buyuk değer başa geçmiş oluyor.
mesela dizi elemanlarımız 10 20 30 olsun. ilk for da 0 index ikinci for sayesinde 0,1 ve 2. index ile karşılaştırılıyor. if durumunu sağlayan durum
mevcut değil. if döngüsüne girilmiyor. ardından ilk for daki 1.index e bakılıyor (20değeri) 2.for sayesinde 0. indexteki 10 ile karşılaştırılıyor ve
if döngüsüne giriliyor. şimdi 20 değeri buyuk değerine atanıyor. buyuk 20 oldu. ardından dizi[i] yani dizi[1] =20 ve dizi[k] yani dizi[0]=10 ile
eşitleniyor dizi[1] 10 oldu fakat dizi[0] da 10 oldu ardından dizi[k]= 10 değerine buyuk (20)atanıyor ve dizi[0]=20 dizi[1]=10 dizi[2]=30oluyor.
döngüler tamamlandığında 0,1,2 indexler 30 20 10 oluyor, elamanlar büyükten küçüğe sıralanıyor.
Sunday, May 20, 2012
Break ve Continue ifadeleri
Break deyimi döngünün tamamlanmadan belirtilen durumlarda döngüden çıkılmasını sağlar. break deyiminden sonra gelen tüm deyimler atlanır.
Continue deyimi ise döngüden çıkılmadan belirtilen durumlarda döngüdeki adımların atlanmasını sağlar. continue belirtilen aralıktaki deyimleri atlar.
örnek ; 1-100 arasındaki sayıları ekrana yazdıran ve sayı 50 değerine ulaşınca döngünün sonlanmasını sağlayan program.
#include <iostream>
#include <conio.h>
using namespace std;
int main() {
int a;
for (a=1; a<100; a++) {
cout << a << endl;
if(a==50){
break; //döngü içersinde a sayısı 50 ye eşit olduğu durumda döngüden çıkar.
}
}
getch();
}
örnek; 1-100 arasındaki sayıları yazdıran ancak 40 ile 60 arasındaki sayıları dahil etmeyen program.
#include <iostream>
#include <conio.h>
using namespace std;
int main() {
int a;
for (a=1; a<100; a++) {
if(a>40 && a<60) {
continue; //döngü içersinde sayı 40tan büyük ve 60tan küçük olduğu durumlarda ardından
gelen deyimleri işletmez.
}
cout << a << endl;
}
getch();
}
Sunday, May 13, 2012
For döngüsü
For döngüsü içinde bulunduğu deyimleri belirli bir başlangıç değerinden başlatarak belirlenen koşulun sağlandığu sürece değerin artırım değeri baz alınarak
döndürülmesini sağlar. For döngüsünün yapısı for(baslangıc_degeri; kosul; artırım değeri) { ..deyimler... } şeklindedir.
1.örnek; 1-100e kadar olan sayıların toplamını bulan program;
#include <iostream>
#include <conio.h>
using namespace std;
int main() {
int sayi, toplam=0;
for(sayi=1; sayi<100; sayi++){ //1-100e kadar olan sayıları toplatacağımız için sayi değerini 1den
başlattık, sayı değer 100e kadar dönücek her döndüğünde sayı bir
artırılacak. (1 + 2 + 3 .. + 99)
toplam= toplam + sayi; //1-100e kadar dönücek olan döngü içersinde toplam değeri 0 iken döngü
her döndüğünde sayının 1 artırılmış değeri toplam değerine eklenecek.
( toplam = 0+ 1) ikincide (toplam = 1 + 2) üçüncüde (toplam = 3 + 3)
sonuncuda (toplam = 4851 + 99).
}
cout<< toplam;
getch();
}
2.örnek; klavyeden girilen sayıyın üssünü bulan program;
#include <iostream>
#include <conio.h>
using namespace std;
int main() {
int us, taban, i, sonuc= 1; //sonuc değişkenini çarpımda kullanacağımız için 1 değerini verdik.
cout<< "tabani giriniz: ";
cin>> taban;
cout<< "ussu giriniz: ";
cin>> us;
for (i=1; i<=us; i++){ //i başlangıç değerinini 1 olarak atadık, döngü klavyeden girilen us değerinden
küçük ve eşit olduğu sürece dönecek. döngü her döndüğün 1 olan başlangıç
değeri 1 artırılacak. böylece tabanı 2 üssü 5 olan işlemde 2 değeri 1den 5e
kadar olan sayılarla çarpılarak sonuc elde edilecek.
sonuc= sonuc * taban; // başlangıçta 1 olan sonuc değeri döngü her döndüğünde taban ile çarpılarak
yeni bir değer elde edecek. 2 üssü 4için; 1.(taban= 1 * 2) 2.(taban= 2 * 2)
3.(taban= 4 * 2) 4.(taban= 8 * 2) sonuc = 16
}
cout<< "sonuc: " << sonuc;
getch();
}
3.örnek ; klaveyeden girilen sayının faktoriyelini bulan program;
#include <iostream>
#include <conio.h>
using namespace std;
int main() {
int sayi, faktoriyel=1, i;
cout<< " sayiyi giriniz: ";
cin>> sayi;
for (i= sayi; i>0; i--){ // i başlangıç değerini klavyeden girilen faktoriyeli alınacak sayıya eşitledik.
döngü sayı 0dan büyük olduğu sürece dönecek ve her döngü her döndüğünde
i değerine atanan sayı 1 azaltacak. sayı 4 ise 4 3 2 1 olarak devam edicek.
faktoriyel= faktoriyel * i; // başlangıç değeri 1 olan faktoriyel döngü her döndüğünde birer azaltılan sayı
(i) değeri ile çarpılacak. ( 5*4*3*2*1 )
}
cout<< "sonuc: " << faktoriyel;
getch();
}
Do While döngüsü
Do while döngüsünde while döngüsünden farklı olarak program koşul sağlansa da sağlanmasa da bir kez döngüye girer. do while döngüsünün kullanımı while den farklı
olarak do(){ .... } while(); şeklinde olur. program ilk çalıştırıldığında do bölümündeki deyimler okunur ardından while'ın içindeki koşul kontrol edilir koşul
sağlanıyorsa do ' nun içine tekrar dönülür koşul sağlanmıyorsa döngüden çıkılır.
1.örnek; 1-100 arasındaki tek sayıların toplamı:
#include <iostream>
#include <conio.h>
using namespace std;
main(){
int sayi=1; //tek sayıların toplamı alınacağı için sayıyı 1den başlattık.
int toplam=0; //toplam değerini başta 0 olarak atadık.
do{ //do while döngüsünü açtık. program ilk olarak bu kısmı bir kez çalıştıracaktır.
toplam=toplam+sayi; //sayi her döngü her döndüğünde bir önceki toplam değerine eklenecek.
sayi=sayi+2; //sadece tek sayıların toplanması için 1den başlattığımız sayıyı 2 ile toplattık böylece
toplam 1 + 3+ 5 şeklinde ilerleyecek.
cout<<sayi;
}while(sayi<=100); //while kısmının içine sayı 100den küçük oluncaya kadar koşulunu ekledik. do-
while döngüsünde while kısmı while(koşul); şeklinde kullanılır.
cout<<"1-100 arasindaki tek sayilarin toplami : "<<toplam; // 1-100e kadar olan sayıların
toplamını ekrana yazdırdık.
getch();
}
2.örnek; kullanıcı veri giricek, istediğinde programdan çıkabilicek.
#include<iostream>
#include <conio.h>
#include <string> //veri girişinin harflerden oluşturacağımız için string kutuphanesini çağırdık.
using namespace std;
main(){
string a; //isim girilmesini istediğimiz için string türünden a tanımladık.
do { // do kısmında kullanıcan isim girmesini istedik , döngüden çıkması için C ye basmasını
söyledik.
cout<< "isim giriniz giriniz: ";
cin>>a;
cout<<"(cikmak icin C'ye basiniz)"<<endl<<endl;
}while(a!="c"); // kullanıcının klavyeden girdiği değer c değil ise do bloğundaki deyimler tekrar
çalıştırılacak. eğer girilen değer c ise döngüden çıkılacak.
getch();
}
Saturday, May 12, 2012
While döngüsü
while döngüsü içerdiği bloğun koşul sağlandığı sürece çalışmasını sağlar. mesela bloğun şartı sayı<10 ise döngü sayı 10dan küçük olduğu müddetçe çalışacaktır.
if döngüsünden farkı olarak, if döngüsü kullanıyor olsaydık if(sayı<10) sayı 10'dan kücüktür yazdır deseydik if döngüsü ekrana 1 kez sayı 10'dan küçüktür
yazacaktır ancak while döngüsünde while(sayı<10) sayı 10'dan kücüktür yazdır deseydik sayı 10'dan küçük olduğu sürece ekrana sayı 10'dan küçüktür yazdırıcaktır.
1. Örnek; 1'den 100'e kadar sayıların toplamını yazan program.
#include <iostream>
#include <conio.h>
using namespace std;
int main(){
int toplam=0, x=1;
while(x<100){ // x 100den küçük olduğu sürece bloğun içindeki deyimler çalıştırılacaktır.
toplam=toplam + x; // toplam değeri ve x başta 0 dır. daha sonra okunacak x=x+1 deyimi ile x 1er
kez artılarak tekrardan döngü çalışacaktır bu durum x 100den küçük olduğu
sürece devam edecektir.
cout<<toplam<<"..";
x=x+1; //x değerini 100den küçük olduğu sürece her okumada 1 sayı artıracaktır.
}
cout<<"\n"<< "1'den 100e kadar sayilarin toplami "<<toplam<< " olarak bulundu."; // yapılan işlemleri
ve sonucu ekrana yazdırır.
getch();
}
2.Örnek; Klaveyeden girelen 2 sayıyı karşılaştıran ve durumlarına göre bu sayıları eşitleyen program.
#include <iostream>
#include <conio.h>
using namespace std;
int main(){
int a, b;
cout<< "1.sayiyi giriniz: ";
cin>>a;
cout<< "2.sayiyi giriniz: ";
cin>>b;
if (a>b){ // ilk sayının ikinci sayıdan büyük ise,
while (a>b){ // ilk sayı ikinciden büyük olduğu sürece,
cout<< "ilk sayi: " <<a<<" ikinci sayi: " << b << "\n"; //ilk ve ikinci sayının önceki değererini yazdır.
a=a-1; // her seferinde a'yı 1 azalt.
}
cout<< "ilk sayi: " <<a<<" ikinci sayi: " << b << "\n"; // ilk ve ikinci sayının son değerlerini yaz.
cout<< "sayilar birbirine esitlendi"<<"\n"; //sayılar birbirine eşit olduğunda döngüden çıkar
ve deyimleri yazar.
}
if (a<b) { // ilk sayi ikinci sayıdan küçük ise,
while (a<b) { // ilk sayi ikinciden küçük olduğu sürece,
cout<< "ilk sayi: " <<a<<" ikinci sayi: " << b << "\n"; //ilk ve ikinci sayının önceki değererini yazdır.
a=a+1; // her seferinde a'yı bir arttır.
}
cout<< "ilk sayi: " <<a<<" ikinci sayi: " << b << "\n"; //sayılar birbirine eşit olduğunda döngüden
çıkar ve deyimleri yazar.
cout<< "sayilar birbirine esitlendi.";
}
getch();
}
Veri tipleri ve String kullanımı
1-Byte
1 Baytlık işaretsiz tamsayı tipidir. 0 ile 255 arasında değer alabilir.
3-Integer
2 Baytlık işaretli tamsayı tipidir. -32.768 ile 32.767 arasında değer alabilir.
3-Long
4 Baytlık işaretli tamsayı tipidir. -2.147.483.648 ile 2.147.483.647 arasında değer alabilir.
4-Float
4 Baytlık ondalık sayı tipidir. +- 3.402923 X 10 38 ile +- 1.401298 X 10-45 arasında değer alabilir.
5-Double
8 Byte lık ondalık sayı tipidir. +- 1.79769313486232 X 10308 ile +-4.94065645841247 X 10-324 arasında değer alabilir.
6-String
sayısal olmayan veri tipidir. Bu tip karakter sayısı +10 byte değer alabilir.
String bir veri tipi oluşturmak için değişkene atanacak değer ” ” işaretleri içerisinde yer almalıdır.
Adi=”türkiye”
7-Boolean
2 byte lık bir veri tipi olmasına rağmen sadece True veya False değerleri alabilir. Sayısal değerde atanabilir.
Atanan sayı 0 ise False, değilse True kabul edilir.
string kullanımı;
#include <iostream>
#include <conio.h>
#include <string>
using namespace std;
int main () {
string x;
x= " galatasaray.."; // string tipi veri oluşturmak için değişkene atanacak değer ” ” işaretleri içerisinde yer
almalıdır.
cout<< "sampiyon" << x; // ekrana sampiyon galatasaray yazdırır.
getch ();
}
Operatörler
Operatörler
== // eşittir.
< // küçüktür.
> // büyüktür.
<= // küçük eşittir.
>= // büyük eşittir.
!= // eşit değildir.
&& // ve.
|| // veya.
! // değil.
\n // alt satıra geçme.
// // yorum satırı.
örnek olarak;
#include <iostream>
#include <conio.h>
using namespace std;
int main() {
int a=10, b=20, c=10;
if (a==c){
cout<< a << " esittir " << c << "\n" ;
}
if(a!= b){
cout<< a << " esit degildir " << b << "\n";
}
if(a==c && b>a) {
cout<< a << " esittir "<< b << " ve " << b << " buyuktur " << a << "\n";
}
if(a==b || c<b){
cout<< a << " esittir "<< b << " veya " << c << " kucuktur " << b << "\n";
}
getch();
}
Azaltma ve arttırma operatörleri;
a++ = a'yı okuduktan sonra 1 arttır.
a-- = a'yı okuduktan 1 arttır.
++a = a'yı okumadan önce 1arttır.
--a = a'yı okumadan önce bir azalt.
örnek olarak;
#include <iostream>
#include <conio.h>
using namespace std;
int main() {
int a= 10;
//ekran çıktısı
cout<< a << "\n"; //10
cout<< a++ << "\n"; //10
cout<< a << "\n"; //11
cout<< a-- << "\n"; //11
cout<< a << "\n"; //10
cout<< ++a << "\n"; //11
cout<< a << "\n"; //11
cout<< --a << "\n"; //10
cout<< a << "\n"; //10
getch();
}
Friday, May 11, 2012
Switch case yapısı
switch case yapısı programda seçenekler içersinden seçilen işlemi çalıştırmaya yarar.
#include <iostream>
#include <conio.h>
using namespace std;
main(){
int a;
cout<< " islem numarasi giriniz: "; //çalıştırılmasını istediğimiz seçeneğin numarasını isteniyor.
cin>> a;
switch(a){ // switch case yapısını açtık. girilen numara (a) değerinin içine atılcak ve yalnızca o
kısım çalıştırılacak.
case 1:
cout<< "1.secenek"; //girilen sayı 1 ise ekrana 1.secenek yazdıracak.
break; // case bloğundan çıkmak için break ifadesi kullanılır.
case 2:
cout<< "2.secenek";
break;
case 3:
cout<< "3.secenek";
break;
default:
cout<< "diger secenek"; //girilen sayı 1,2 veya 3ten biri değil ise diger secenek yazdıracak.
break;
}
getch(); // daha önce kullanmadığımız getch() ifadesi programın ekranda açık kalmasını
sağlar. bu komutun çalışması için conio.h kütüphanesini çağırmamız gerekmektedir.
}
Wednesday, April 25, 2012
İf - else kullanımı
merhaba arkadaşlar. bu yazımda if-else kullanımını anlatmaya çalışacağım. if deyimini içersindeki durumu kontrol etmeye yarar. if( x>y) ise x'değerinin y değerinden büyük olduğu durumda yani koşul sağlandığında program deyimin içini çalıştırır. Koşul sağlanmıyorsa bir sonra ki koşulu "if else" deyimini kontrol eder.koşul yine sağlanmadıysa else(diğer tüm koşullar sağlanmama durumu) deyimini çalıştırır. #include <iostream> #include <conio.h> using namespace std; int main() { int x; cout<<"bir sayi giriniz: "; //kullanıcıdan bir sayı girdirdik. cin>>x; if(x > 10) { // eğer klavyeden girilen sayı 10dan büyükse;
cout<<"girdiginiz sayi 10'dan buyuk"; // girdiğiniz sayı 10dan büyük
yazdırmasını, } (eğer if bloğunun içindeki koşul sağlanmıyorsa aşağıdaki
koşula geçer.) (koşul sağlanıyorsa aşağıdaki if else, else durumlarını
kontrol etmez.) else if (x==10) { // yada klavyeden girilen sayı 10a eşit ise;
cout<<"girdiginiz sayi 10'a esit"; // girdiğiniz sayı 10a eşit
yazdırmasını,
}
else { // diğer koşullar sağlanmazsa;
cout<<" girdiginiz sayi 10'dan kucuk"; // girdiğiniz sayi 10'dan kucuk
yazdırmasını sağlar. } cin>> x; // klavyeden bir değer girilesiye kadar programın açık kalmasını
sağlar.
}
program kullanıcıdan alınan sayının değerini 10 ile karşılaştırır ve duruma göre büyüktür, eşittir ve küçüktür yazar.
Sunday, April 8, 2012
C++ Bool ifadesi
Merhaba arkadaşlar bu yazımda bool ifadesini anlatmaya çalışacağım.
bool ifadesi yapılan işlemler sonucunda programın doğru(true) veya yanlış(false) sonucunu vermesidir.
#include <iostream>
#include <conio.h>
using namespace std; // kütüphanelerimizi çağırdık.
main() {
bool x; // bool türüyle bize doğru, true(1) veya yanlış,false(0) değeri üretecek x tanımladık.
int b;
cout<< "bir sayi giriniz: ";
cin>> b;
x= ( b> 10 ); // eğer klavyeden girilen sayı 10dan büyükse x değişkeni doğru (1) değerini alacak,
klavyeden girilen sayı 10dan küçükse x değişkeni yanlış(0) değerini alacak.
cout << x; // ekrana b>10 durumuna göre 1 veya 0 yazacak.
cin >> b; // programın açık kalması için klavyeden değer girilmesini bekleyecek.
}
bu program b>10 durumuna göre ekrana 1 veya 0 yazdıracaktır.
bool ifadesi yapılan işlemler sonucunda programın doğru(true) veya yanlış(false) sonucunu vermesidir.
#include <iostream>
#include <conio.h>
using namespace std; // kütüphanelerimizi çağırdık.
main() {
bool x; // bool türüyle bize doğru, true(1) veya yanlış,false(0) değeri üretecek x tanımladık.
int b;
cout<< "bir sayi giriniz: ";
cin>> b;
x= ( b> 10 ); // eğer klavyeden girilen sayı 10dan büyükse x değişkeni doğru (1) değerini alacak,
klavyeden girilen sayı 10dan küçükse x değişkeni yanlış(0) değerini alacak.
cout << x; // ekrana b>10 durumuna göre 1 veya 0 yazacak.
cin >> b; // programın açık kalması için klavyeden değer girilmesini bekleyecek.
}
bu program b>10 durumuna göre ekrana 1 veya 0 yazdıracaktır.
C++ Toplama işlemi
basit bir toplama işlemi yapan programı anlatmaya çalışacağım. #include <iostream> #include <conio.h> using namespace std; // adet kütüphanemizi çağırdık. int main() { // int adında ana fonksiyonumuzu tanımladık. int x,y, toplam; //int türünde x , y ve toplam adında 3
değişken tanımladık. cout<< "1.nci sayiyi giriniz: "; //ekrana 1.nci sayiyi giriniz yazdırdık.
cin>> x; // klavyeden girilen değeri x değişkenine atadık.
cout<< "2.nci sayiyi giriniz: ";
cin>>y;
toplam= x + y; // klavyeden girilen ilk sayiyi(x) ve ikinci
sayiyi(y) toplatıp toplam adlı değişkenimize atadık.
cout<< toplam; // ekrana toplam değişkeninin değerini yazdırdık. sayılar 3
ve 8 ise ekrana 11 yazacak. cin>> x; // klavyeden bir x değeri girilmesini bekleyecek.(programın
açık kalması için.)
}
bu program ekrana kullanıcı tarafından girilen 2 sayının toplamını yazdıracak.
Saturday, April 7, 2012
C++ İlk Program
Merhaba arkadaşlar... ilk yazımda c++'a girişi anlatmaya çalışacağım. basit bir programın yapısı:
// açıklama satırı olduğunu ifade eder. sadece bulunduğu satır için geçerlidir.
#include <iostream> //bu kod kütüphaneyi çağırır her program yazılması
mecburdur.
#include <conio.h> // bu kod kütüphaneyi çağırır bazı kodların çalışması
için yazılması mecburdur.
using namespace std; //bu kod std komutunu çağırır bu kodu yazmasaydık cout,
cin komutları için ayrı ayrı using std: cout, using stdcin; tanımlamamız gerekecekti.int main() { // main adlı ana fonksiyonumuzu yarattık. her programda
bir main yani ana fonksiyon bulunmak zorundadır.
fonksiyonumuzu int türü ile tanımladık. int x; // x adında int türüyle bir değişken tanımladık. cout<< "merhaba dünya.."; // cout komutu ekrana yazdır anlamına gelir.
cout'tan sonra dışa(out) doğru << konur.
ekrana yazdırılacak yazı " " içinde yazılır.
cin>>x; // cin komutu kullanıcının klavyeden bir değer girmesini
ister.klavyeden girilecek ilk değer x değişkenine
atanacaktır.
cin'den sonra içe(in) doğru >> konur.
bu kodu programın açık kalması için yazdık program
klavyeden herhangi bir değer girilmesini
bekleyecektir. bir değer girildikten sonra enter tuşu
ile kapanır.
}
ilk programımızı yaptık. bu program çalıştırıldığında ekrana merhaba dünya... yazacaktır.
Subscribe to:
Posts (Atom)