Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
21
Cevap
2415
Tıklama
0
Öne Çıkarma
C PROGRAMLAMA DiLi
S
21 yıl
Er
Konu Sahibi

C konusunda bilgisi olan varsa benim takıldıgım konularda soru sormam icin bana yardımcı olabilecek biri varmiydi acaba??

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



L
21 yıl
Er

Slm Eğer bildiğim bir konuda yardım istersen elimden geleni yaparım....bye

Ümit GÜLER
Computer Engineering
Girne American University of Cyprus...


Bu mesaja 1 cevap geldi.
S
21 yıl
Er
Konu Sahibi

ben ibrahim SÜRMEGÖZLÜER
İZMİR YÜKSEK TEKNOLOJİ ENSTİTÜSÜ
COMPUTER ENGINEERING I.TERM
pardon kacıncı sınıftasın?
ilgi ve alakan icin cok tesekkür ederim
peki bana en basitinden BUBLE SORT ve SELECTION SORT örnekleri yollayabilir misin?
anlaması kolay ve olabildigince basit olursa cok sevinirim...


Bu mesaja 1 cevap geldi.
W
21 yıl
Binbaşı

elinde dev c++ veya borland c++ builder e-book ları olan varsa..
verebilirmi?

(mimkinse TR)


Bu mesaja 1 cevap geldi.
İ
21 yıl
Yarbay

msn den veya icqdan irtibata geç 25 milyon veripte aldiğim kitabin word halini(ki satin aldiğim gun bulmuştum :) ve diğer dokumanlari yollayabilirm


Bu mesaja 2 cevap geldi.
İ
21 yıl
Yarbay

quote:

Orjinalden alıntı: iRoNMaSTeR

msn den veya icqdan irtibata geç 25 milyon veripte aldiğim kitabin word halini(ki satin aldiğim gun bulmuştum :) ve diğer dokumanlari yollayabilirm

dostum bana linkini verebilir misin.



W
21 yıl
Binbaşı

taam.. msnden geliom
quote:

Orjinalden alıntı: iRoNMaSTeR

msn den veya icqdan irtibata geç 25 milyon veripte aldiğim kitabin word halini(ki satin aldiğim gun bulmuştum :) ve diğer dokumanlari yollayabilirm


Bu mesaja 1 cevap geldi.
S
21 yıl
Er
Konu Sahibi

iste msn'im: surmegozluer@hotmail.com cok tesekkür ederim yardımlarınız icin beyler


Bu mesaja 1 cevap geldi.
S
21 yıl
Er
Konu Sahibi

iste c BUDUR:

C PROGRAMLAMA DERS NOTLARI
C PROGRAMLAMA DİLİ
Programlamaya Giriş:
Belli bir problemi çözmek için bilgisayar dili kullanarak yazılmış deyimler dizisidir.

Bir problemi bilgisayar ile çözmek için geliştireceğimiz program yazımında izleyeceğimiz adımlar
1-) Problemin ne olduğunu kavra. Çözüm için gereksinimleri belirle.
2-) Problemin girdilerini çıktılarını ve diğer kısıtlama gereksinimlerini belirle.
3-) Problemin çözümünü veren algoritmayı yaz.
4-) Algoritmayı bir program diline çevir.
5-) Programı test et.

Örnek:
#include<stdio.h>
#include<conio.h>
main() /* Program Ana Başlangıcı */
{ /* Başlangıç */
int a=10; /* Tanımlamalar */
printf("A'nın Değeri = %d",a); /* Gövde Kısım */
getch();
} /* Bitiş */

Veri Türleri Ve Değişkenlerin Tanımlanması
Tip İsmi :Kullanılacak verinin tipini belirleyen isimdir.
Tip İsmi Uzunluğu (Byte) Sayı Aralığı
char 1 -128 , +127
int 2 -32768 , +32767
longint 4 -2147483648 , +2147483647
float 4 -3.4e-38 , +3.4e38
shortint 2 -32768 , +32767
unsigned char 1 0 , 255

Örnek:
#include<stdio.h>
#include<conio.h>
main()
{
char ad[30];
printf("Adını Gir :");
scanf("%s",&ad);
printf("%s",ad);
getch();
}
Ekran:
Adını Gir : RESUL
RESUL

Örnek: X=22 sayısını 16'lık sistemde yaz.
#include<stdio.h>
#include<conio.h>
main()
{
int x=22;
printf("%x",x);
getch();
}
NOT : %x 16'lık sisteme, %o 8'lik sisteme çevirir.


Değer Atamaları:
#include<stdio.h>
#include<conio.h>
main()
{
int x=3;
float y=5.2;
float z;
z=x+y;
printf("y nin değeri : %f\n",y);
printf("z nin değeri : %f\n",z);
getch();
}
Ekran:
Y nin değeri : 5.200000
Z nin değeri : 8.200000

Not:Mod un sonucu her zaman tam sayıdır.

Artım ve Azaltım Operatörleri: Bu operatörler değişkenin değerini bir artırmak ve bir azaltmak için kullanılır. Bir değişkenin değerini bir artırmak için x=x+1, ++x veya x++ Kullanılır.
Örnek:
{
int a,b;
a=5; b=9;
printf("%d\n",++a);
printf("%d\n",a);
printf("%d\n",b++);
printf("%d\n",a);
getch();
}
Ekran:
6
5
10
9

Karşılaştırma Operatörleri : Bu operatörler çoğunlukla kontrol ve döngü ifadeleri ile birlikte kullanılırlar. Bu operatörler iki değeri karşılaştırır. Değer doğru ise 1, yanlış ise 0 değeri üretilir.
< Küçüktür
> Büyüktür
<= Küçük Eşit
>= Büyük Eşit
== Eşittir
!= Eşit Değildir
İşlem Karşılaştırma Sonucu
10>3 1
10>3 0
10==10 1

Karşılaştırmaları Birleştirme Operatörleri: Birden fazla şartın birleştirilmesi gerektiğinde örneğin birden fazla şartın birleştirilmesi isteniyorsa bu durumda şartların birleştirme operatörleri ile yazılması gerekir. Şartlar iki şekilde birleştirilebilir.
• VE (&&) Operatörü
• VEYA (||) Operatörü

Seçim Operatörü: Bu operatör 3 kısımdan oluşur. Şart Kısmı ve Değer Kısımları.
(şart)?(değer_1):(değer_2)

Bit Seviyesinde İşlem Operatörleri : C Dili assembly dilinde yapılabilen bit seviyesindeki işlemlerin tamamını destekler.

X Y Ve Veya Özel Veya
1 0 0 1 1
0 1 0 1 1
1 1 1 1 0
0 0 0 0 0
Bu tabloya göre:
a=24 =00011000
b=12 =00001100

ve =00001000=8
veya =00011100=28
ö.veya =00010100=20

Örnek:
#include<stdio.h>
#include<conio.h>
main()
{
int a=24, b=12;
int c,d,e;
c=a & b;
d=a ^ b;
e=a | b;
printf("a & b = %d\n",c);
printf("a ^ b = %d\n",d);
printf("a | b = %d\n",e);
getch();
}
Ekran:
a & b = 8
a ^ b = 28
a | b = 20


Printf Bildirimi : Değişkenlerin içeriğini veya mir mesajı istenen bir düzende(formatta) Standart çıkışa yazmak için kullanılır. Bu komutta kullanılan en önemli 2 karakter; \ (ters slaş) ve % (yüzde) dir.
Printf("Kontrol Dizisi, Format Tanımlayıcısı",argıman1,argıman2,....,argıman N);
Kodu Anlamı____________________
\b İmleci sola kaydırır (Backspace)
\n Satır atla.
\r Satır başına al.
\t Yatay tab.
\" Çift tırnak.


Örnek:
#include<stdio.h>
#include<conio.h>
main()
{
clrscr();
printf(" \"Turbo\" \n\"C\" \"Dersi\" ");
getch();
}
Ekran:
"Turbo"
"C" "Dersi"


Scanf Bildirimi : Bu fonksiyon klavyeden değer okumakta kullanılan formatlı giriş fonksiyonudur. Bu fonksiyonda formatlı sayıların, karakterlerin ya da karakter katarlarının programla bilgisayara girilmesi gerçekleştirilebilir.

scanf("Kontrol Dizisi",argıman1,argıman2,...,argımanN);

printf fonksiyonunda gerçek değişkenler listelenmektedir. Scanf fonksiyonunda ise değişkenin adresi argıman olarak kullanılır. Argıman olarak gösterilen & işareti ile değişkenin ismi değil de değişkenin adresini gösteririz.

Örnek: Girilen iki sayının ortalamasını yapan C programı:
#include<stdio.h>
#include<conio.h>
main()
{
float s1,s2,ort;
printf("Birinci Sayıyı Giriniz : "); scanf("%f",&s1);
printf("İkinci Sayıyı Giriniz : "); scanf("%f",&s2);
ort=(s1+s2)/2;
printf("İki Sayının Ortalaması : %0.1f",ort);
getch();
}
Ekran:
Birinci Sayıyı Giriniz : 15
İkinci Sayıyı Giriniz : 10
İki Sayının Ortalaması : 12,5

Örnek: Girilen iki sayının 8'lik ve 16'lık karşılığı:
#include<stdio.h>
#include<conio.h>
main()
{
int s1,s2;
printf("Birinci Sayıyı Giriniz : "); scanf("%d",&s1);
printf("İkinci Sayıyı Giriniz : "); scanf("%d",&s2);
printf("Birinci Sayının 8'lik Karşılığı : %o\n",s1);
printf("Birinci Sayının 16'lık Karşılığı : %x\n",s1);
printf("İkinci Sayının 8'lik Karşılığı : %o\n",s2);
printf("İkinci Sayının 16'lık Karşılığı : %x\n",s2);
getch();
}
Ekran:
Birinci Sayıyı Giriniz : 15
İkinci Sayıyı Giriniz : 10

Birinci Sayının 8'lik Karşılığı : 17
Birinci Sayının 16'lık Karşılığı : F
İkinci Sayının 8'lik Karşılığı : 12
İkinci Sayının 16'lık Karşılığı : A

Örnek: Girilen iki sayının ve veya yöntemi ile 8'lik ve 16'lık karşılığı:
#include<stdio.h>
#include<conio.h>
main()
{
int s1,s2,c,d;
printf("Birinci Sayıyı Giriniz : "); scanf("%d",&s1);
printf("İkinci Sayıyı Giriniz : "); scanf("%d",&s2);
c=s1&s2;
d=s1^s2;
printf("s1 & s2 :%d\n",c);
printf("s1 ^ s2 :%d\n",d);
getch();
}
Ekran:
Birinci Sayıyı Giriniz : 24
İkinci Sayıyı Giriniz : 12

S1 & s2 :20
S1 ^ s2 : 8

Program Denetim Deyimleri:
Karşılaştırma Deyimleri: İf ve Switch olmak üzere 2 tip karşılaştırma deyimi vardır.

if - else Kullanımı:
if(koşul)
{
:
deyim_1;
}
else { deyim_2; }

Örnek: Klavyeden girilen sayının tek veya çift olduğunu hesaplayan program:
{
int sayi;
printf("Sayı Gir : ");scanf("%d",&sayi);
if(sayi%2==0) printf("%d Çifttir",sayi);
else printf("%d Tektir",sayi);
grtch();
}
Ekran:
Sayı Gir : 5
5 Tektir

if-else-if Kullanımı: 2 den fazla koşulun olduğu durumlarda kullanılır.
if(kontrol_ifadesi_1)
deyim_1;
if(kontrol_ifadesi_2)
deyim_2;
:
:
else if(kontrol_ifadesi_N)
deyim_N;
Örnek : Notlar: 0-25=E, 26-44=D, 45-54=C, 55-84=B, 85-100=A olan program
{
int not;
char sonuc;
printf("Notu Gir : ");scanf("%d",&not);
if (not>=0 && not<=25) sonuc='E'
else if (not>=26 && not<=44) sonuc='D'
else if (not>=45 && not<=54) sonuc='C'
else if (not>=55 && not<=84) sonuc='B'
else sonuc='A'
printf("Sonuç = %c",sonuc);
getch();
}
Ekran:
Notu Gir : 75
Sonuç = B

switch ifadeleri: Her ne kadar if-else-if yapısında kontrol ifadeleri sıra ile işletiliyorsa da bu yapının kullanılması programın anlaşılır olmasını güçleştirir. Switch yapısı kullanılarak programın okunurluğu artmaktadır.
switch(seçici)
{
case seçenek_1 : Deyim_1;
case seçenek_2 : Deyim_2;
:
case seçenek_N : Deyim_N;


DÖNGÜ DEYİMLERİ:
Bu tip deyimler bir kümenin belirli bir koşul altında yinelenmesi için kullanılır. while, do while ve for olmak üzere 3 tip döngü deyimi vardır.

for: Diğer döngü deyimleri gibi bir öbeği birçok kez tekrarlamakta kullanılır.
for(başlangıç;koşul;artırım)
{
deyimler
}

while: Mantıksal ifade doğru olduğu sürece deyim yürütülür. Eğer yanlış ise kontrol bir sonraki deyime geçer.
while(Mantıksal İfade)
{ deyim }

do while: Bir gurup deyimi işlediği zaman kontrol ifadesini test eder. Eğer kontrol ifadesi doğru ise deyim gruba tekrar işletilir. Yanlış ise döngüden çıkar. do while döngüsünün while döngüsünden farkı, kontrol ifadesinin döngünün sonunda olması.
do
{
deyim
} while(Kontrol İfadesi);

DİZİLER
Tek Boyutlu Diziler: Tüm programlama dillerinde olduğu gibi C dilinde de Dizi(Array) yapısı son derece önemli veri yapısıdır.
Dizi: Bilgisayar belleğinde aynı isim altında genellikle aynı tipte çok sayıda veriyi bir arada saklayan veri yapısıdır.

X Dizisinin mantıksal görünümü;
4 2 3 5 7
0 1 2 3 4
X[0] =4
X[1] =2
X[2] =3
X[3] =5
X[4] =7

Tanımlama:
X[3]=5 x: Dizinin Adı, [3]: Dizinin indisi...

C dilinde bir dizinin ilk eleman indisi daima 0 dır. Son eleman indisi ise diziye ayrılan yer sayısının bir eksiğine eşittir.

C Programı İçinde Dizinin Bildirilmesi:
Bir C programı içinde diziyi tanıtmak için değişken bildirimine benzer bir yol izlenir.

Tip Dizi_Adı[Eleman_Sayısı];
İn i[6];

Dizinin Gerekliliği:
Dizi Kullanılmayan Versiyon Dizi Kullanılan Versiyon
#include<stdio.h>
main()
{
int sayi,t;
int i;
t=0;
for(i=1;i<=5;i++)
{
printf("Bir Sayı Giriniz");
scanf("%d",&sayi);
t=t+sayi;
}
printf("Toplam = %d",t);
printf("Sayi = %d",sayi);
getch();
} #include<stdio.h>
main()
{
int sayi[5],t;
int i;
t=0;
for(i=0;i<=4;i++)
{
printf("Bir Sayı Giriniz");
scanf("%d",&sayi);
t=t+sayi;
}
printf("Toplam = %d",t);
printf("Sayi = %d",sayi[2]);
getch();
}

Dizilere İsimlendirilmiş Bir Sabit İle Yer Ayrılması:
Daha önceden kendisine bir değer atanmış olacağı için dizilerin tanımında dizinin eleman sayısı isimlendirilmiş bir sabit yardımı ile de belirtilebilir.

Örnek: 1 İle 10 Arasındaki Sayıların Karesini Dizi Elemanına Aktarıp Ekrana Yazan Program:
#include<stdio.h>
int i;
int s[11];
main()
{
clrscr();
for(i=1;i<=11;i++)
{
s=i*i;
printf("%d nin Karesi : %d\n",i,s);
}
getch();
}

Stringlerin Bir Karakter Dizisi Olarak Tanımlanması:
C Dilinde bir karakter zincirini ya da stringini oluşturmak için tek yol karakter dizisinin her karakterini char türü ile diziye yükleyerek bir karakter dizisi oluşturmaktadır.

Kullanımı:
char ad[7]={'B','i','l','g','i','s','\0'};
char ad[7]="Bilgis";
printf("%s",ad);

Örnek:
#include<stdio.h>
main()
{
int i;
char c[6]={'a','b','c','d','e','\0'};
for(i=0;c!='\0';i++)
printf("\n %c",c);
getch();
}
İKİ BOYUTLU DİZİLER
Uygulamada karşılaşılan pek çok problem, tablo halindeki verinin bilgisayarda saklanması, ve tablo üzerinde çeşitli işlemlerin gerçekleştirilmesi (Tablonun satır toplamları, sütun toplamları gibi hesaplamalar) söz konusudur. Örneğin aşağıdaki gibi bir veri mevcut olsun

1999 Yılı Otomobil Satışları
Ocak Şubat Mart
VW 500 500 500
Reno 600 650 700
Fiat 700 600 650
Ferrari 50 60 70
Porshe 50 60 80

Örneğin her marka için 3 aylık satışlar toplamını bulmak için;

0 1 2
0 500 500 500
1 600 650 700
2 700 600 650
3 50 60 70
4 50 60 80

Tanımlama: int satis[5][3];
Satis :Dizi Adı
5 :Satır Sayısı
3 :Sütun Sayısı

İki Boyutlu Dizilere Değer Okutmak;
İki boyutlu dizinin elemanları C Programı icrası esnasında klavyeden girmek için aşağıdaki gibi program kullanılır.

Örnek: Satış adlı tabloyu bilgisayar belleğine yükleyip yüklenen tabloyu ekrana yazdıran c programını yapınız.

#include<stdio.h>
main()
{
int satis[5][3];
int i,j;
printf(“Bilgi Girişi\n”);
for(i=0;i<=4;i++)
{
for(j=0;j<=2;j++)
{
printf(“Satış [%d][%d] = “,i,j);
scanf(“%d”,%satis[j]);
}
printf(“\n”);
}
printf(“Satış Adlı Tanlo : \n”);
for(i=0;i<=4;i++)
{
for(j=0;j<=2;j++)
{
printf(“%d ”,satis[j]);
}
printf(“\n”);
}
getch();
}

İki Boyutlu Dizi Elemanlarına İlk Değer Atama:
İki boyutlu dizinin elemanları statik karakterde ise yani programın her icra edilişinde değerler değişmiyorsa bu durumda iki boyutlu dizi elemanlarına program içinde değer ataması yapılabilir.

Örnek:
#include<stdio.h>
main()
{
int satis[5][3]={{70,60,50},{65,75,25},{30,40,45},{40,40,40},{25,10,60}};
int i,j;
printf(“\n\n”);
printf(“Satış Adlı Tanlo : \n”);
for(i=0;i<=4;i++)
{
for(j=0;j<=2;j++)
{
printf(“%d ”,satis[j]);
}
printf(“\n”);
}
getch();
}

C DİLİNDE FONKSİYON YAPISI
C dilinde bir program kesinlikle en az bir fonksiyondan oluşur.

Fonksiyonların Tanımlanması:
1. Başlık
2. Gövde
Başlık kısmı fonksiyonun göndereceği değere göre belirlenen tipini bildiren bir tip bildirisi ya da fonksiyon adı ve varsa parametre listesi ister. Fonksiyon adı değer gönderemeyecekse void sözcüğü ile başlar. Parametre listesinde parametrelerin tipi ve isimleri belirtilir. Her parametreye ilişkin tip bildirimleri arasında virgül (,) sembolleri kullanılır.

Örnek: int topla(int x, int y)

Burada topla adlı fonksiyon int tipinde tanımlanmıştır. İki tane parametresi vardır x ve y. Bu parametreler int tipindedir.

Örnek: int deger(void)

Burada değer int tipinde bir değer gönderecek olan fonksiyondur. Herhangi bir parametresi olmadığından void yerleştirilmiştir.

Fonksiyon Bildirimleri:
Bir fonksiyon hangi fonksiyon içinden çağrılacaksa çağrılacağı fonksiyon içinde bir bildirim deyimi formunda tanımlanmalıdır. Buna fonksiyon bildirimi adı verilir.
Not:Fonksiyon bildirimleri daima noktalı virgülle (;) sona erer.

Örnek:
#include<stdio.h>
main()
{
int toplam(int n);
int m;
}
Burada main (ana program) içinde çağrılacak olan toplam adlı fonksiyonun bildiri deyimleri kümesi içinde bir bildiri deyimi formunda programa tanıtmaktadır.

Örnek:
#include<stdio.h>
main()
{
int toplam(int n);
int m;
printf("Ust Limit :");
scanf("%d",&m);
printf("\n1+2+3+ ... + %d = %d",m,toplam(m));
}
int toplam(int n)
{
int i,s;
s=0;
for(i=1;i<=n;i++)
s=s+i;
return s;
}
Örnek: c(n,r)=n!/(r!*(n-r)!) Kombinasyon formülünü hesaplayan C programı

#include<stdio.h>
main()
{
float cnr;
int n,r;
float fakt(int n);
printf("n = ");
scanf("%d",&r);
cnr=fakt(n)/fakt(r)*fakt(n-r));
printf("c(%d,%d) = %0.8f",n,r,cnr);
}
float fakt(int n)
{
float f;
int i;
f=1;
for(i=1;i<=n;i++)
f=f*i;
return f;
}


Bu mesaja 2 cevap geldi.
S
21 yıl
Er
Konu Sahibi

C NEDIR ?
C programlama dili, Dennis Ritchie tarafindan Bell laboratuarlarinda yaratilmistir. PDP-11 ile Unix altinda calismak icin yaratilmis olmasina ragmen, ilgi uzerine MS-DOS altinda calisacak hale getirilmistir. Basitligi, olusan kodun kucuklugu, ve her cesit programlamada kullanilabilmesi, C yi populer bir dil yapmistir. C, cok kestirme olmasi nedeni ile, yeni bilgisayarlara baslayanlar icin ogrenmesi zordur. Bir programci, C ile ust seviyelerden, assebly'ye yaklasan alt seviyelere kadar programlama yapabilir. C nin sagladigi bu rahatligin yaninda, tehlikeleride de vardir. Ornegin, makineyi kilitleyebilecek bir program yazmak, Pascal yada BASIC de yazmaktan cok daha kolaydir. Bir Pascal derleyicisinin fark edip uyaracagi bir hatayi, C derleyicileri fark etmeyebilir. C de, kendi basinizasiniz..

NIYE C?
Bu gun IBM-PC icin yazilan piyasadaki yeni programlarin yuzde 75'i, C ile yaziliyor. MicroSoft, Macro Assembler 4.0 i cikardiktan sonra, onu C ile yazdiklarini acikladi. Herhalde icinde birkac assembler rutin vardir ama, cogunlugu C ile yazilmistir.
C, bir komite degilde, bir kisi tarafindan yazilmis oldugundan, cok kullanisli bir lisandir, fakat cok iyi tanimlanmamistir. C icin bir standart yoktur, ama ANSI grubu, bu konuda calismaktadir. Isin ilgincligi, bir standart olmamasina ragmen, degisiklikleri cok azdir. Halbuki iyi tanimi olan Pascal dilinin, derleyicileri birbirinden cok farklidir, ve bir Pascal programini bir bilgisayardan digerine gecirmek zordur..
C nin Tasinabilirlik referanslari iyi olmasina ragmen, derleyiciler arasinda farkliliklar vardir. Bu degisiklikler genellikle BIOS fonksiyonlari gibi standart olmayan seyler kullanildiginda kendini gosterir.


Bu mesaja 1 cevap geldi.
W
21 yıl
Binbaşı

c++ yoqmu yaw
he bişe daha sorucam.. c++ için win ortamında DEV C++ ile program yazabiliyorum... C için böyle bi editör/compiler varmı?


Bu mesaja 1 cevap geldi.
S
21 yıl
Er
Konu Sahibi

W
21 yıl
Binbaşı

visual C++ ı netten indirebilirmiyim?
bildiğiniz bi link varmı?
quote:

Orjinalden alıntı: surmegozluer

visual C++ ı dene bence


Bu mesaja 1 cevap geldi.
S
21 yıl
Yüzbaşı

Notorious ne deseler netten indiresin geliyor walla


Bu mesaja 1 cevap geldi.
İ
21 yıl
Yarbay

quote:

Orjinalden alıntı: surmegozluer

iste c BUDUR:

C PROGRAMLAMA DERS NOTLARI
C PROGRAMLAMA DİLİ
Programlamaya Giriş:
Belli bir problemi çözmek için bilgisayar dili kullanarak yazılmış deyimler dizisidir.

Bir problemi bilgisayar ile çözmek için geliştireceğimiz program yazımında izleyeceğimiz adımlar
1-) Problemin ne olduğunu kavra. Çözüm için gereksinimleri belirle.
2-) Problemin girdilerini çıktılarını ve diğer kısıtlama gereksinimlerini belirle.
3-) Problemin çözümünü veren algoritmayı yaz.
4-) Algoritmayı bir program diline çevir.
5-) Programı test et.

Örnek:
#include<stdio.h>
#include<conio.h>
main() /* Program Ana Başlangıcı */
{ /* Başlangıç */
int a=10; /* Tanımlamalar */
printf("A'nın Değeri = %d",a); /* Gövde Kısım */
getch();
} /* Bitiş */

Veri Türleri Ve Değişkenlerin Tanımlanması
Tip İsmi :Kullanılacak verinin tipini belirleyen isimdir.
Tip İsmi Uzunluğu (Byte) Sayı Aralığı
char 1 -128 , +127
int 2 -32768 , +32767
longint 4 -2147483648 , +2147483647
float 4 -3.4e-38 , +3.4e38
shortint 2 -32768 , +32767
unsigned char 1 0 , 255

Örnek:
#include<stdio.h>
#include<conio.h>
main()
{
char ad[30];
printf("Adını Gir :");
scanf("%s",&ad);
printf("%s",ad);
getch();
}
Ekran:
Adını Gir : RESUL
RESUL

Örnek: X=22 sayısını 16'lık sistemde yaz.
#include<stdio.h>
#include<conio.h>
main()
{
int x=22;
printf("%x",x);
getch();
}
NOT : %x 16'lık sisteme, %o 8'lik sisteme çevirir.


Değer Atamaları:
#include<stdio.h>
#include<conio.h>
main()
{
int x=3;
float y=5.2;
float z;
z=x+y;
printf("y nin değeri : %f\n",y);
printf("z nin değeri : %f\n",z);
getch();
}
Ekran:
Y nin değeri : 5.200000
Z nin değeri : 8.200000

Not:Mod un sonucu her zaman tam sayıdır.

Artım ve Azaltım Operatörleri: Bu operatörler değişkenin değerini bir artırmak ve bir azaltmak için kullanılır. Bir değişkenin değerini bir artırmak için x=x+1, ++x veya x++ Kullanılır.
Örnek:
{
int a,b;
a=5; b=9;
printf("%d\n",++a);
printf("%d\n",a);
printf("%d\n",b++);
printf("%d\n",a);
getch();
}
Ekran:
6
5
10
9

Karşılaştırma Operatörleri : Bu operatörler çoğunlukla kontrol ve döngü ifadeleri ile birlikte kullanılırlar. Bu operatörler iki değeri karşılaştırır. Değer doğru ise 1, yanlış ise 0 değeri üretilir.
< Küçüktür
> Büyüktür
<= Küçük Eşit
>= Büyük Eşit
== Eşittir
!= Eşit Değildir
İşlem Karşılaştırma Sonucu
10>3 1
10>3 0
10==10 1

Karşılaştırmaları Birleştirme Operatörleri: Birden fazla şartın birleştirilmesi gerektiğinde örneğin birden fazla şartın birleştirilmesi isteniyorsa bu durumda şartların birleştirme operatörleri ile yazılması gerekir. Şartlar iki şekilde birleştirilebilir.
• VE (&&) Operatörü
• VEYA (||) Operatörü

Seçim Operatörü: Bu operatör 3 kısımdan oluşur. Şart Kısmı ve Değer Kısımları.
(şart)?(değer_1):(değer_2)

Bit Seviyesinde İşlem Operatörleri : C Dili assembly dilinde yapılabilen bit seviyesindeki işlemlerin tamamını destekler.

X Y Ve Veya Özel Veya
1 0 0 1 1
0 1 0 1 1
1 1 1 1 0
0 0 0 0 0
Bu tabloya göre:
a=24 =00011000
b=12 =00001100

ve =00001000=8
veya =00011100=28
ö.veya =00010100=20

Örnek:
#include<stdio.h>
#include<conio.h>
main()
{
int a=24, b=12;
int c,d,e;
c=a & b;
d=a ^ b;
e=a | b;
printf("a & b = %d\n",c);
printf("a ^ b = %d\n",d);
printf("a | b = %d\n",e);
getch();
}
Ekran:
a & b = 8
a ^ b = 28
a | b = 20


Printf Bildirimi : Değişkenlerin içeriğini veya mir mesajı istenen bir düzende(formatta) Standart çıkışa yazmak için kullanılır. Bu komutta kullanılan en önemli 2 karakter; \ (ters slaş) ve % (yüzde) dir.
Printf("Kontrol Dizisi, Format Tanımlayıcısı",argıman1,argıman2,....,argıman N);
Kodu Anlamı____________________
\b İmleci sola kaydırır (Backspace)
\n Satır atla.
\r Satır başına al.
\t Yatay tab.
\" Çift tırnak.


Örnek:
#include<stdio.h>
#include<conio.h>
main()
{
clrscr();
printf(" \"Turbo\" \n\"C\" \"Dersi\" ");
getch();
}
Ekran:
"Turbo"
"C" "Dersi"


Scanf Bildirimi : Bu fonksiyon klavyeden değer okumakta kullanılan formatlı giriş fonksiyonudur. Bu fonksiyonda formatlı sayıların, karakterlerin ya da karakter katarlarının programla bilgisayara girilmesi gerçekleştirilebilir.

scanf("Kontrol Dizisi",argıman1,argıman2,...,argımanN);

printf fonksiyonunda gerçek değişkenler listelenmektedir. Scanf fonksiyonunda ise değişkenin adresi argıman olarak kullanılır. Argıman olarak gösterilen & işareti ile değişkenin ismi değil de değişkenin adresini gösteririz.

Örnek: Girilen iki sayının ortalamasını yapan C programı:
#include<stdio.h>
#include<conio.h>
main()
{
float s1,s2,ort;
printf("Birinci Sayıyı Giriniz : "); scanf("%f",&s1);
printf("İkinci Sayıyı Giriniz : "); scanf("%f",&s2);
ort=(s1+s2)/2;
printf("İki Sayının Ortalaması : %0.1f",ort);
getch();
}
Ekran:
Birinci Sayıyı Giriniz : 15
İkinci Sayıyı Giriniz : 10
İki Sayının Ortalaması : 12,5

Örnek: Girilen iki sayının 8'lik ve 16'lık karşılığı:
#include<stdio.h>
#include<conio.h>
main()
{
int s1,s2;
printf("Birinci Sayıyı Giriniz : "); scanf("%d",&s1);
printf("İkinci Sayıyı Giriniz : "); scanf("%d",&s2);
printf("Birinci Sayının 8'lik Karşılığı : %o\n",s1);
printf("Birinci Sayının 16'lık Karşılığı : %x\n",s1);
printf("İkinci Sayının 8'lik Karşılığı : %o\n",s2);
printf("İkinci Sayının 16'lık Karşılığı : %x\n",s2);
getch();
}
Ekran:
Birinci Sayıyı Giriniz : 15
İkinci Sayıyı Giriniz : 10

Birinci Sayının 8'lik Karşılığı : 17
Birinci Sayının 16'lık Karşılığı : F
İkinci Sayının 8'lik Karşılığı : 12
İkinci Sayının 16'lık Karşılığı : A

Örnek: Girilen iki sayının ve veya yöntemi ile 8'lik ve 16'lık karşılığı:
#include<stdio.h>
#include<conio.h>
main()
{
int s1,s2,c,d;
printf("Birinci Sayıyı Giriniz : "); scanf("%d",&s1);
printf("İkinci Sayıyı Giriniz : "); scanf("%d",&s2);
c=s1&s2;
d=s1^s2;
printf("s1 & s2 :%d\n",c);
printf("s1 ^ s2 :%d\n",d);
getch();
}
Ekran:
Birinci Sayıyı Giriniz : 24
İkinci Sayıyı Giriniz : 12

S1 & s2 :20
S1 ^ s2 : 8

Program Denetim Deyimleri:
Karşılaştırma Deyimleri: İf ve Switch olmak üzere 2 tip karşılaştırma deyimi vardır.

if - else Kullanımı:
if(koşul)
{
:
deyim_1;
}
else { deyim_2; }

Örnek: Klavyeden girilen sayının tek veya çift olduğunu hesaplayan program:
{
int sayi;
printf("Sayı Gir : ");scanf("%d",&sayi);
if(sayi%2==0) printf("%d Çifttir",sayi);
else printf("%d Tektir",sayi);
grtch();
}
Ekran:
Sayı Gir : 5
5 Tektir

if-else-if Kullanımı: 2 den fazla koşulun olduğu durumlarda kullanılır.
if(kontrol_ifadesi_1)
deyim_1;
if(kontrol_ifadesi_2)
deyim_2;
:
:
else if(kontrol_ifadesi_N)
deyim_N;
Örnek : Notlar: 0-25=E, 26-44=D, 45-54=C, 55-84=B, 85-100=A olan program
{
int not;
char sonuc;
printf("Notu Gir : ");scanf("%d",¬);
if (not>=0 && not<=25) sonuc='E'
else if (not>=26 && not<=44) sonuc='D'
else if (not>=45 && not<=54) sonuc='C'
else if (not>=55 && not<=84) sonuc='B'
else sonuc='A'
printf("Sonuç = %c",sonuc);
getch();
}
Ekran:
Notu Gir : 75
Sonuç = B

switch ifadeleri: Her ne kadar if-else-if yapısında kontrol ifadeleri sıra ile işletiliyorsa da bu yapının kullanılması programın anlaşılır olmasını güçleştirir. Switch yapısı kullanılarak programın okunurluğu artmaktadır.
switch(seçici)
{
case seçenek_1 : Deyim_1;
case seçenek_2 : Deyim_2;
:
case seçenek_N : Deyim_N;


DÖNGÜ DEYİMLERİ:
Bu tip deyimler bir kümenin belirli bir koşul altında yinelenmesi için kullanılır. while, do while ve for olmak üzere 3 tip döngü deyimi vardır.

for: Diğer döngü deyimleri gibi bir öbeği birçok kez tekrarlamakta kullanılır.
for(başlangıç;koşul;artırım)
{
deyimler
}

while: Mantıksal ifade doğru olduğu sürece deyim yürütülür. Eğer yanlış ise kontrol bir sonraki deyime geçer.
while(Mantıksal İfade)
{ deyim }

do while: Bir gurup deyimi işlediği zaman kontrol ifadesini test eder. Eğer kontrol ifadesi doğru ise deyim gruba tekrar işletilir. Yanlış ise döngüden çıkar. do while döngüsünün while döngüsünden farkı, kontrol ifadesinin döngünün sonunda olması.
do
{
deyim
} while(Kontrol İfadesi);

DİZİLER
Tek Boyutlu Diziler: Tüm programlama dillerinde olduğu gibi C dilinde de Dizi(Array) yapısı son derece önemli veri yapısıdır.
Dizi: Bilgisayar belleğinde aynı isim altında genellikle aynı tipte çok sayıda veriyi bir arada saklayan veri yapısıdır.

X Dizisinin mantıksal görünümü;
4 2 3 5 7
0 1 2 3 4
X[0] =4
X[1] =2
X[2] =3
X[3] =5
X[4] =7

Tanımlama:
X[3]=5 x: Dizinin Adı, [3]: Dizinin indisi...

C dilinde bir dizinin ilk eleman indisi daima 0 dır. Son eleman indisi ise diziye ayrılan yer sayısının bir eksiğine eşittir.

C Programı İçinde Dizinin Bildirilmesi:
Bir C programı içinde diziyi tanıtmak için değişken bildirimine benzer bir yol izlenir.

Tip Dizi_Adı[Eleman_Sayısı];
İn i[6];

Dizinin Gerekliliği:
Dizi Kullanılmayan Versiyon Dizi Kullanılan Versiyon
#include<stdio.h>
main()
{
int sayi,t;
int i;
t=0;
for(i=1;i<=5;i++)
{
printf("Bir Sayı Giriniz");
scanf("%d",&sayi);
t=t+sayi;
}
printf("Toplam = %d",t);
printf("Sayi = %d",sayi);
getch();
} #include<stdio.h>
main()
{
int sayi[5],t;
int i;
t=0;
for(i=0;i<=4;i++)
{
printf("Bir Sayı Giriniz");
scanf("%d",&sayi);
t=t+sayi;
}
printf("Toplam = %d",t);
printf("Sayi = %d",sayi[2]);
getch();
}

Dizilere İsimlendirilmiş Bir Sabit İle Yer Ayrılması:
Daha önceden kendisine bir değer atanmış olacağı için dizilerin tanımında dizinin eleman sayısı isimlendirilmiş bir sabit yardımı ile de belirtilebilir.

Örnek: 1 İle 10 Arasındaki Sayıların Karesini Dizi Elemanına Aktarıp Ekrana Yazan Program:
#include<stdio.h>
int i;
int s[11];
main()
{
clrscr();
for(i=1;i<=11;i++)
{
s=i*i;
printf("%d nin Karesi : %d\n",i,s);
}
getch();
}

Stringlerin Bir Karakter Dizisi Olarak Tanımlanması:
C Dilinde bir karakter zincirini ya da stringini oluşturmak için tek yol karakter dizisinin her karakterini char türü ile diziye yükleyerek bir karakter dizisi oluşturmaktadır.

Kullanımı:
char ad[7]={'B','i','l','g','i','s','\0'};
char ad[7]="Bilgis";
printf("%s",ad);

Örnek:
#include<stdio.h>
main()
{
int i;
char c[6]={'a','b','c','d','e','\0'};
for(i=0;c!='\0';i++)
printf("\n %c",c);
getch();
}
İKİ BOYUTLU DİZİLER
Uygulamada karşılaşılan pek çok problem, tablo halindeki verinin bilgisayarda saklanması, ve tablo üzerinde çeşitli işlemlerin gerçekleştirilmesi (Tablonun satır toplamları, sütun toplamları gibi hesaplamalar) söz konusudur. Örneğin aşağıdaki gibi bir veri mevcut olsun

1999 Yılı Otomobil Satışları
Ocak Şubat Mart
VW 500 500 500
Reno 600 650 700
Fiat 700 600 650
Ferrari 50 60 70
Porshe 50 60 80

Örneğin her marka için 3 aylık satışlar toplamını bulmak için;

0 1 2
0 500 500 500
1 600 650 700
2 700 600 650
3 50 60 70
4 50 60 80

Tanımlama: int satis[5][3];
Satis :Dizi Adı
5 :Satır Sayısı
3 :Sütun Sayısı

İki Boyutlu Dizilere Değer Okutmak;
İki boyutlu dizinin elemanları C Programı icrası esnasında klavyeden girmek için aşağıdaki gibi program kullanılır.

Örnek: Satış adlı tabloyu bilgisayar belleğine yükleyip yüklenen tabloyu ekrana yazdıran c programını yapınız.

#include<stdio.h>
main()
{
int satis[5][3];
int i,j;
printf(“Bilgi Girişi\n”);
for(i=0;i<=4;i++)
{
for(j=0;j<=2;j++)
{
printf(“Satış [%d][%d] = “,i,j);
scanf(“%d”,%satis[j]);
}
printf(“\n”);
}
printf(“Satış Adlı Tanlo : \n”);
for(i=0;i<=4;i++)
{
for(j=0;j<=2;j++)
{
printf(“%d ”,satis[j]);
}
printf(“\n”);
}
getch();
}

İki Boyutlu Dizi Elemanlarına İlk Değer Atama:
İki boyutlu dizinin elemanları statik karakterde ise yani programın her icra edilişinde değerler değişmiyorsa bu durumda iki boyutlu dizi elemanlarına program içinde değer ataması yapılabilir.

Örnek:
#include<stdio.h>
main()
{
int satis[5][3]={{70,60,50},{65,75,25},{30,40,45},{40,40,40},{25,10,60}};
int i,j;
printf(“\n\n”);
printf(“Satış Adlı Tanlo : \n”);
for(i=0;i<=4;i++)
{
for(j=0;j<=2;j++)
{
printf(“%d ”,satis[j]);
}
printf(“\n”);
}
getch();
}

C DİLİNDE FONKSİYON YAPISI
C dilinde bir program kesinlikle en az bir fonksiyondan oluşur.

Fonksiyonların Tanımlanması:
1. Başlık
2. Gövde
Başlık kısmı fonksiyonun göndereceği değere göre belirlenen tipini bildiren bir tip bildirisi ya da fonksiyon adı ve varsa parametre listesi ister. Fonksiyon adı değer gönderemeyecekse void sözcüğü ile başlar. Parametre listesinde parametrelerin tipi ve isimleri belirtilir. Her parametreye ilişkin tip bildirimleri arasında virgül (,) sembolleri kullanılır.

Örnek: int topla(int x, int y)

Burada topla adlı fonksiyon int tipinde tanımlanmıştır. İki tane parametresi vardır x ve y. Bu parametreler int tipindedir.

Örnek: int deger(void)

Burada değer int tipinde bir değer gönderecek olan fonksiyondur. Herhangi bir parametresi olmadığından void yerleştirilmiştir.

Fonksiyon Bildirimleri:
Bir fonksiyon hangi fonksiyon içinden çağrılacaksa çağrılacağı fonksiyon içinde bir bildirim deyimi formunda tanımlanmalıdır. Buna fonksiyon bildirimi adı verilir.
Not:Fonksiyon bildirimleri daima noktalı virgülle (;) sona erer.

Örnek:
#include<stdio.h>
main()
{
int toplam(int n);
int m;
}
Burada main (ana program) içinde çağrılacak olan toplam adlı fonksiyonun bildiri deyimleri kümesi içinde bir bildiri deyimi formunda programa tanıtmaktadır.

Örnek:
#include<stdio.h>
main()
{
int toplam(int n);
int m;
printf("Ust Limit :");
scanf("%d",&m);
printf("\n1+2+3+ ... + %d = %d",m,toplam(m));
}
int toplam(int n)
{
int i,s;
s=0;
for(i=1;i<=n;i++)
s=s+i;
return s;
}
Örnek: c(n,r)=n!/(r!*(n-r)!) Kombinasyon formülünü hesaplayan C programı

#include<stdio.h>
main()
{
float cnr;
int n,r;
float fakt(int n);
printf("n = ");
scanf("%d",&r);
cnr=fakt(n)/fakt(r)*fakt(n-r));
printf("c(%d,%d) = %0.8f",n,r,cnr);
}
float fakt(int n)
{
float f;
int i;
f=1;
for(i=1;i<=n;i++)
f=f*i;
return f;
}





ya bu c değil ki turbo c.



W
21 yıl
Binbaşı

quote:

Orjinalden alıntı: skyjack

Notorious ne deseler netten indiresin geliyor walla

kadıköye gidip para vermek istemiom ..öğrenci olmak kolay deil kılı kırk yarmam lazım


Bu mesaja 1 cevap geldi.
Z
21 yıl
Teğmen

quote:

kadıköye gidip para vermek istemiom ..öğrenci olmak kolay deil kılı kırk yarmam lazım

dev c++ veya mingw ile yazabilirsin
mesela www.nergin.com'da bu programlar war
visual studio'dan daha iiler


Bu mesaja 1 cevap geldi.
B
21 yıl
Teğmen

Using the data in the following table, create a two dimensional array of students. Then write a search function that uses the sequential search to find a student in the array and prints the student’s scores, average score, grade based on an absolute scale (≥90 is AA, ≥85 and <90 is BA, ≥80 and <85 is BB, ≥75 and <80 is CB, ≥70 and <75 is CC, ≥60 and <70 is DC, ≥50 and <60 is DD, and <50 is F), medians and modes of each quiz. After the each printout, give the user the opportunity to continue or stop. Your code should also check the student numbers that not found in the table list.







Student ID# ----- Quiz1------Quiz2------Quiz3

1100 ------------- 52 ----------7---------100

1120 ------------- 90 --------- 36--------90

1117 ------------- 100 ---------45--------20

1123 ------------- 45 ---------17---------81

1136-------------20----------12----------45

1108 -------------34 ---------80---------55

1115 -------------60---------100---------56

1134-------------70--------- 11 --------- 66

1105 ------------- 34---------9 ---------77

1142------------- 45---------40---------88

1127------------- 55---------50--------- 99

1130-------------22---------70---------100

1138-------------89 ---------50---------91

1145-------------11---------11----------0

1150--------------0---------98---------89



arkadaşlar biliyorum işiniz çok ama ben zaten kıt olan c bilgi(sizliği)m le bu işin içinden çıkamadım...yardım ederseniz çok teşekkür ederim..etmezsenizde canınız saolsun


Bu mesaja 1 cevap geldi.
B
21 yıl
Teğmen

arkadaşlar bide ben microsoft visiual c++ 6.0 kullanıyorum ve programları derlerken sorun çıkıyo..
programı yazıyorum derliyorum hata yok uyarı yok build yapıyorum 1. programda exe sini yapıyo ama başka program yazdığımda programdan tamamen çıkmadan exe sini yapamıyorum...execute edemiyo diye hata veriyo


Bu mesaja 1 cevap geldi.
W
21 yıl
Binbaşı

@bojo
şu öğrenci prg. c++ da yazmıştım.. arşvimde var.. belki işine yarar




***************************************************************************



#include <iostream.h>
#include <stdlib.h>
#include <math.h>

int main()
{

//Degisken tanimlamalari
int n; //id
int ogrsay[n]; //ogrenci sayisi
int on[n]; //ogrenci no
int s1[n]; //vize
int s2[n]; //final
float ort[n]; //ortalama


cout << "-------------------------------------";

//not girisi icin ogrenci sayisi: max-> 20, min--> 1
while (n<0 || n>20)
{
cout << endl << " Ogrenci sayisi : ";
cin >> n;
}

int nn=n;

//not girisi
while (n>0)
{

cout << endl << endl<< " Ogrenci no: ";
cin >> on[n];
cout << endl << " 1.Vize : ";
cin >> s1[n];
cout << endl << " 2.Final : ";
cin >> s2[n];
cout << "-------------------------------------" ;
n = n-- ;
}


//not cikti
cout << endl << endl << endl;
for (n=nn; n<=nn && n>0 ; n--)
{
ort[n] = s1[n]*0.4 + s2[n]*0.6; //ortalama hesabi
cout << endl << " [Ogrenci no: " << on[n] << " [Ortalama : " << ort[n]<<endl;
cout << "-------------------------------------\a" ;
}

//program sonu
cout <<endl<<"PROGRAM SONA ERDI" << endl;
system("pause");
return 0;
}

***************************************************************************