HERSEY BURDA
Would you like to react to this message? Create an account in a few clicks or log in to continue.

HERSEY BURDA

HERSEYİ BULABİLDECEĞİN TEK ADRES
 
AnasayfaLatest imagesAramaKayıt OlGiriş yap
Arama
 
 

Sonuç :
 
Rechercher çıkıntı araştırma
En son konular
» free slot machines win cash
C/C++ ile Programlama - II Icon_minitimeÇarş. Ağus. 03, 2011 3:57 am tarafından Misafir

» watch naruto hentai watch naruto hentai free
C/C++ ile Programlama - II Icon_minitimeÇarş. Ağus. 03, 2011 3:52 am tarafından Misafir

» major fish oil
C/C++ ile Programlama - II Icon_minitimeSalı Ağus. 02, 2011 10:26 pm tarafından Misafir

» hentai about hentai academy
C/C++ ile Programlama - II Icon_minitimeSalı Ağus. 02, 2011 10:10 am tarafından Misafir

» гинекология ответы
C/C++ ile Programlama - II Icon_minitimePtsi Ağus. 01, 2011 9:18 am tarafından Misafir

» x-Hack hack you
C/C++ ile Programlama - II Icon_minitimePtsi Ağus. 01, 2011 8:00 am tarafından Misafir

» When the first Whirlpool Duet album was released in December 2001
C/C++ ile Programlama - II Icon_minitimePtsi Ağus. 01, 2011 3:05 am tarafından Misafir

» women at work hentai online women at work hentai stream
C/C++ ile Programlama - II Icon_minitimePtsi Ağus. 01, 2011 2:56 am tarafından Misafir

» facebook likes xb
C/C++ ile Programlama - II Icon_minitimePaz Tem. 31, 2011 9:22 am tarafından Misafir

Tarıyıcı
 Kapı
 Indeks
 Üye Listesi
 Profil
 SSS
 Arama
Forum
HABERLER
Fikri Türkel köşe yazıları

 

 C/C++ ile Programlama - II

Aşağa gitmek 
YazarMesaj
Admin
Admin



Mesaj Sayısı : 3361
KULLANICI PUANLARI : 9918
Kayıt tarihi : 16/05/10

C/C++ ile Programlama - II Empty
MesajKonu: C/C++ ile Programlama - II   C/C++ ile Programlama - II Icon_minitimeSalı Haz. 29, 2010 4:42 pm

C/C++ ile Programlama - II

Tarih: 21.03.2003 > Kaç kez okundu? 12251
C/C++ yazı dizisinin ikinci bölümünde değişkenler konusu ayrıntılı olarak işleniyor. Değişken nedir? Nasıl tanımlanır? Değişken tipleri nelerdir.





Merhaba;

Geçen hafta bilgisayar ve programlamaya dair temel bilgileri ve printf(); fonksiyonunu öğrendik. Bu hafta, kaldığımız yerden devam edeceğiz. Başlamadan önce, henüz C derleyicisi bulamayanlar, buraya tıklayıp programı indirebilirler. Yükleyeceğiniz 2.88 Mb boyutunda tc.zip dosyasını, direkt c:\ ye açın. Açtıktan sonra, c:\tc\bin\ klasörünün içersinde, tc.exe dosyasını göreceksiniz. Derleyicinizi tc.exe ile çalıştıracaksınız. Yanlış klasöre açarsanız veya farklı bir yere kopyalarsanız, programın klasör ayarlarını değiştirmeniz gerekiyor. Bunun için, programı açtığınız yeri bulun ve programı çalıştırın. Daha sonra menülerden options’a basıp, directiories’e gelin. Oradaki klasör adreslerini, dosyaları kopyaladığınız yere göre değiştirmeniz lâzım. Örneğin, c:\windows\desktop adresine açtıysanız, oradaki adresleri, c:\windows\desktop\tc\include ve c:\windows\desktop\tc\lib şeklinde yeniden yazacaksınız. Eğer bunları yapmazsanız, derleyiciniz çalışsa da, gerekli dosyaları göremediği için uyarı verip, görevini yerine getirmeyecektir. Herhangi bir yerde problem yaşar veya takılırsanız, bana cagataycebi@hotmail.com adresinden ulaşabilirsiniz. Bu ufak bilgiden sonra, kaldığımız yerden devam edelim.

Değişken nedir? Tanıtımı nasıl yapılır?

Değişkenler, girdiğimiz değerleri alan veya programın çalışmasıyla bazı değerlerin atandığı, veri tutucularıdır. Değişken tanıtımıysa, gelecek veya girilecek verilerin ne olduğuna bağlı olarak, değişken tipinin belirlenmesidir. Yani a isimli bir değişkeniniz varsa ve buna tamsayı bir değer atamak istiyorsanız, a değişkenini tamsayı olarak tanıtmanız gerekir. Keza, a’ya girilecek değer eğer bir karakter veya virgüllü sayı olsaydı, değişken tipinizin ona göre olması gerekirdi. Sanırım bir örnekle açıklamak daha iyi olacaktır.

#include<stdio.h>

#include<conio.h>

main()

{

int a;

a=25;

clrscr();

printf(“a sayısı %d”,a);

return 0;

}

Şimdi yukarıdaki programı anlamaya çalışalım. En baş satıra, int a -int, İngilizce de integer’ın kısaltmasıdır- dedik. Bunun anlamı, tamsayı tipinde, a isimli bir değişkenim var demektir. a=25 ise, a değişkenine 25 değerini ata anlamına geliyor. Yani, a artık 25 sayısını içinde taşımaktadır. Onu bir yerlerde kullandığınız zaman program, a’nın değeri olan 25’i işleme alacaktır. printf(); fonksiyonunun içersine yazdığımız %d ise, ekranda tamsayı bir değişken değeri gözükecek anlamındadır. Çift tırnaktan sonra koyacağımız a değeri ise, görüntülenecek değişkenin a olduğunu belirtir. Yalnız dikkat etmeniz gereken, çift tırnaktan sonra, virgül koyup sonra değişkenin adını yazdığımızdır. Daha gelişmiş bir örnek yaparsak;

#include<stdio.h>

#include<conio.h>

main()

{

int a;

int b;

int toplam;

a=25;

b=18;

clrscr();

toplam=a+b;

printf(“a sayısı %d ve b sayısı %d, Toplamı %d.”,a,b,toplam);

return 0;

}

Bu programın ekran çıktısı şöyle olur; a sayısı 25 ve b sayısı 18, Toplamı 43. Yazdığımız bu programda, a, sonra b, üçüncü olarakta toplam ismiyle 3 adet tamsayı değişken tanıttık. Daha sonra a’ya 25, b’ye 18 değerlerini atadık. Sonraki satırdaysa, a ile b’nin değerlerini toplayarak, toplam ismindeki değişkenimizin içersine atadık. Ekrana yazdırma kısmı ise şöyle oldu: üç tane %d koyduk ve çift tırnağı kapattıktan sonra, ekranda gözükme sırasına göre, değişkenlerimizin adını yazdık. printf(); fonksiyonu içersinde kullanılan %d’nin anlamı, bir tamsayı değişkenin ekranda görüntüleneceğidir. Değişkenlerin yazılma sırasındaki olaya gelince, hangisini önce görmek istiyorsak onu başa koyar sonra virgül koyup, diğer değişkenleri yazarız. Yani önce a değerinin gözükmesini istediğimiz için a, sonra b değerinin gözükmesi için b, ve en sonda toplam değerinin gözükmesi için toplam yazdık.

Bu arada belirtmekte fayda var, elimizdeki 3 tamsayı değişkeni, her seferinde int yazıp, belirtmek zorunda değiliz. int a,b,toplam; yazarsakta aynı işlemi tek satırda yapabiliriz.

Şimdi, elimizdeki programı bir adım öteye taşıyalım.

#include<stdio.h>

#include<conio.h>

main()

{

int saat;

float ucret,toplamucret;

char basharf;

clrscr();

printf(“Çalışanın baş harfini giriniz> ”);

scanf(“%c”,&basharf);

printf(“Çalışma saatini giriniz> ”);

scanf(“%d”,&saat);

printf(“Saat ücretini giriniz> ”);

scanf(“%f”,&saatucret);

toplamucret=saat*saatucret;

printf(“%c başharfli çalışanın, alacağı ücret: %f”,basharf,toplamucret);

return 0;

}

Bu yazdığımız program basit bir çarpım işlemini yerine getirerek sonucu ekrana yazdırıyor. Yazılanların hepsini bir anda anlamaya çalışmayın, çünkü adım adım hepsinin üzerinde duracağız. Programı incelemeye başlarsak; değişken tanıtımını programımızın başında yapıyoruz. Gördüğünüz gibi bu sefer farklı tiplerde değişkenler kullandık. Biri int, diğer ikisi float ve sonuncusunu da char. int’ın tamsayı anlamına geldiğini az evvel gördük. float ise 2.54667 gibi virgüllü sayılar için kullanılır. char tipindeki değişkenler, a,H,q,... şeklinde tek bir karakter saklarlar. Konu biraz karmaşık gözükse de, değişken tanıtımında bütün yapmanız gereken, değişkeninizin taşıyacağı veriye göre programın başında onun tipini belirtmektir. Bunun için de tıpkı yukarıdaki programda olduğu gibi, önce tipi belirtir, sonra da adını yazarsınız.

Programımıza dönersek, çalışma saati bir tamsayı olacağından, onu saat isminde bir int olarak tanıttık.Ücret virgüllü bir sayı olabilirdi. O nedenle onu float (yani virgüllü sayı) olarak bildirdik. Adını da saatucret koyduk. Farkettiğiniz gibi, toplamucret isimli değişkenimiz de bir float. Çünkü bir tamsayı (int) ile virgüllü sayının (float) çarpımı virgüllü bir sayı olmaktadır. Tabii 3.5x2=7 gibi tam sayı olduğu durumlarda olabilir. Ancak hatadan sakınmak için toplamucret isimli değişkenimizi bir float olarak belirtmek daha doğrudur.

Üsteki programımızda olmasına karşın, şuana kadar scanf(); fonksiyonunun kullanımına değinmedik. scanf(); geçen haftaki yazımızdan da öğrendiğimiz gibi bir giriş fonksiyonudur. Peki nasıl kullanılır, tam olarak ne işe yarar? scanf(); kabaca klavyeden girdiğiniz sayıyı veya karakteri almaya yarar. Kullanımı ise şöyledir: önce scanf yazar, sonra parantez ve ardından çift tırnak açar, daha sonra alınacak değişkene göre, %d, %f veya %c yazılır. %d int, %f float, %c char tipindeki değişkenler için kullanılır.Bundan sonra çift tırnağı kapatıp, virgül koyarsınız. Hemen ardından & işareti ve atanacak değişken adını yazarsınız. Son olarak, parantezi kapatıp noktalı virgül koyarsınız. Hepsi budur.

Yukarıdaki programda da scanf(); fonksiyonu gördüğünüz gibi bu şekilde kullanılmıştır. Sanırım gereğinden çok lâf oldu ve konu basit olduğu hâlde zor gibi gözüktü. Yukardaki sıkıntıdan kurtulmak için çok basit bir program yazalım. Bu programın amacı, klavyeden girilen bir sayıyı, ekrana aynen bastırmak olsun.

#include<stdio.h>

#include<conio.h>

main()

{

int sayi;

printf(“Değer giriniz> ”);

scanf(“%d”,&sayi);

printf(“Girilen değer: %d ”,sayi);

return 0;

}

Gördüğünüz gibi hiçbir zor tarafı yok. Klavyeden girilecek bir tamsayınız varsa, yapmanız gereken önce değişkenin tipini ve adını belirtmek, sonra scanf(); fonksiyonunu kullanmak. Bu fonksiyonu kullanmaya gelince, scanf(“ yazdıktan sonra değişken tipine göre %d, %c, veya %f, yazıp, ardından & işaretini kullanarak atanacak değişkenin adını belirtmekten ibaret. Fark etmişsinizdir, printf(); ve scanf(); fonksiyonlarının her ikisinde de %d koyduk. Çünkü scanf(); ve printf(); fonksiyonların değişken tipi simgeleri aynıdır. Aşağıdaki tablodan hangi değişken tipinin nasıl deklare edileceğini, kaç byte yer kapladığını, maksimum/minimum alabileceği değerleri ve giriş/çıkış fonksiyonlarıyla nasıl kullanılabileceğini bulabilirsiniz. Tanıtımlar ve fonksiyon uygulamaları, degisken isimli bir değişken için yapılmıştır.

TİP
DEKLARASYON

printf();

scanf();

Minimum

Değer

Maksimum

Değer

Byte

Karakter
char degisken;

printf(“%c”,degisken);

Scanf(“%c”,&degisken);

-128

127

1

Tamsayı
int degisken;

printf(“%d”,degisken);

Scanf(“%d”,&degisken);

-32768

32767

2

Uzun Tamsayı
long int degisken;

printf(“%ld”,degisken);

Scanf(“%ld”,&degisken);

-2147483648

2147483647

4

İşaretsiz Tamsayı
unsigned int degisken;

printf(“%u”,degisken);

Scanf(“%u”,&degisken);

0

65535

2

İşaretsiz Uzun Tamsayı
long unsigned degisken;

printf(“%lu”,degisken);

scanf(“%lu”,&degisken);

0

4294967295

4

Virgüllü Sayı
float degisken;

printf(“%f”,degisken);

Scanf(“%f”,&degisken);

1,17549e-38

3,40282e+38

4

Uzun Virgüllü Sayı
double degisken;

printf(“%lf”,degisken);

Scanf(“%lf”,&degisken);

2,22504e-308

1,79769e+308

8

Tabloda sunulan ekstrem değerleri ve tiplerin byte olarak tuttuğu alanı şimdilik önemsemeyelim. Bunlar ileriye dönük bilgiler olarak bir kenarda dursunlar.

Şuana kadar öğrendiklerimizle girilen herhangi iki sayısının ortalamasını hesaplayan bir program yazalım. Başlamadan önce, değişkenlerimizin kaç tane ve nasıl olacağını düşünelim. Şurası kesin ki, alacağımız iki sayı için 2 farklı değişkenimiz olmalı. Bir de ortalamayı hesapladığımızda bulduğumuz değeri ona atayabileceğimiz bir başka değişkene ihtiyacımız var. Peki değişkenlerimizin tipleri ne olacak? Başında belirttiğimiz gibi yazmamız gereken program herhangi iki sayı için kullanılabilmeli. Sadece tamsayı demiyoruz, yani virgüllü bir sayı da girilebilir. O hâlde, girilecek iki sayının değişken tipi float olmalı. Bunu double da yapabilirsiniz, fakat büyüklüğü açısından gereksiz olacaktır. Ortalamaların atanacağı üçüncü değişkene gelince, o da bir float olmalı. İki virgüllü sayının ortalamasının tamsayı çıkması düşünülemez. Oluşturduğumuz bu önbilgilerle programımızı artık yazabiliriz.

#include<stdio.h>

#include<conio.h>

main()

{

float sayi1,sayi2,ortalama;

clrscr();

printf(“İki sayı giriniz> ”);

scanf(“%f%f”,&sayi1,&sayi2);

ortalama=(sayi1+sayi2)/2;

printf(“Ortalama sonucu: %f’dir”,ortalama);

return 0;

}

Yukarıda yazılı programda, bilmediğimiz hiçbir şey yok. Gayet basit şekilde izah edersek, 2 sayı alınıp, bunlar toplanıyor ve ikiye bölünüyor. Bulunan değerde ortalama isminde bir başka değişkene atanıyor. Burada yabancı olduğumuz, sadece scanf(); kullanımındaki değişiklik. scanf(); fonksiyonuna bakın. Dikkat edeceğiniz gibi, değişkenlerden ikisine de tek satırda değer atadık. Ayrı ayrı yazmamız da mümkündü, ancak kullanım açısından böyle yazmak açık şekilde daha pratiktir. Bu konuda bir başka örnek verelim. Diyelim ki, biri int, diğeri float, sonuncusuysa char tipinde 3 değişkeni birden tek scanf(); ile almak istiyorum. Değişkenlerin isimleri, d1,d2 ve d3 olsun. Nasıl yaparız?

scanf(“%d%f%c”,&d1,&d2,&d3);

Peki aldığımız bu değişkenleri ekrana tek printf(); ile nasıl yazdırabiliriz?

printf(“%d %f %c”,d1,d2,d3);

Görüldüğü gibi bu işin öyle aman aman bir tarafı yok. Fonksiyonların kullanımları zaten birbirine benziyor. Tek yapmanız gereken biraz pratik, el alışkanlığı.

Aritmetik Operatör ve İfadeleri

Üste yazdığımız programların hemen hemen hepsinde aritmetik bir işlem kullandık. Ama aritmetik işlemleri tam olarak anlatmadık. Kısaca;

( + ) : Artı

( – ) : Eksi

( / ) : Bölme

( * ) : Çarpma

( % ) : Modül

Burada bilinmeyen olsa olsa modül işlemidir. Modül kalanları bulmaya yarar. Yani diyelim ki 15’in 6’ya olan bölümünden kalanını bulmak istiyorsunuz. O hâlde 15%6 = 3 demektir. Veya, 7’nin 3’e bölümünden kalanı bulacaksanız, o zamanda 7%3 = 1 elde edilir. Bu C’de sıkça kullanacağımız bir aritmetik operatör olacak.

İşlem sırasına gelince, o da şöyle olur. En önce yapılan işlem parantez ( ) içidir. Sonra * / % gelir. Çarpma, bölme ve modül için, soldan sağa hangisi daha önce geliyorsa o yapılır. En son yapılanlarsa artı ve eksidir. Keza, bu ikisi arasında, önce olan solda bulunandır.

Bölme işlemine dair, bir iki ufak olay daha var. 4/5 normalde 0.8 etmektedir. Ancak C için 4/5 sıfır eder. Çünkü program, iki tamsayının bölünmesiyle, sonucu tamsayı elde etmeyi bekler. İleride tipleri birbiri arasında değiştirmeye değineceğiz. Ama şimdilik bu konuda bir iki örnek yapalım.

¡ 8/4+2 => 2 + 2 => 4

¡ 8-4*2+-12 => 8 - 8 + -12 => -12

¡ 15*4/2%4*7 => 60/2%4*7 => 30%4*7 => 2*7 => 14

¡ 31+7/2-83%5*2-2 => 31+ 3 –3*2-2 => 31 + 3 – 6 –2 => 26

¡ (31-7)*2+83/(5%2) => 24 * 2 + 83 / 1 => 48 + 83 => 131

Bu aritmetik ifadeleri henüz bir C programı için derlemedik. Ancak burada keselim. Bunu yapmayı diğer yazımıza saklayalım. Eğer uğraşmak isterseniz klavyeden alınacak 3 sayının ortalamasını bulan bir program yazabilirsiniz. Yada girilecek 2 tamsayı arasında bütün aritmetik işlemleri -ikisin çarpımını, toplamını, birbirine bölümünü ve farkını- bulan ve sonuçları ekrana yazdıran bir program da yazmanız mümkün. Herhangi bir yerde takılır ve bana ulaşmak isterseniz mail adresime yazmanız kâfi. Haftaya görüşürüz.

Çağatay ÇEBİ


Sayfa başına dön Aşağa gitmek
http://dessas.yetkinforum.com
 
C/C++ ile Programlama - II
Sayfa başına dön 
1 sayfadaki 1 sayfası
 Similar topics
-
» C/C++ ile Programlama
» Java 3D PROGRAMLAMA
» C# Programlama Dili
» XNA Oyun Programlama
» Oyun Programlama

Bu forumun müsaadesi var:Bu forumdaki mesajlara cevap veremezsiniz
HERSEY BURDA :: PROGRAMLAMA DİLLERİ :: (C/C++)-
Buraya geçin: