ALTER TABLE TABLO_ADI
ALTER COLUMN KOLON_1 VERI_TIPI COLLATE DIL_DEGERI(COLLACTION_NAME)
ALTER TABLE TABLO_ADI
ALTER COLUMN KOLON_2 VERI_TIPI COLLATE DIL_DEGERI(COLLACTION_NAME)
Gönderen i zaman: 13:33
Etiketler: ms sql, stored procedure
Şimdi bir structure oluşturalım ve bu structureın üyelerini 5 elemanlı bir dizi olsun daha sonra bu dizinin elemanlarını pointer kullanarak kullanıcıdan alalım.
#include "stdio.h"
struct yapi_turu{ int yas;};
struct yapi_turu insanlar[5];
int main(){
struct yapi_turu* pointer;
pointer=insanlar; int i=0;
for(i=0;i<5;i++) {
printf("gir:");
scanf("%d",pointer->yas);
printf("%d degerini girdin!\n",(*pointer).yas);
pointer++;
}
return 0;
}
Yukarıda pointerı tanımlarken türüne dikkat edin. elemanları kullanıcıdan alma işlemini bir fonksiyonla yapabilirsiniz.
Gönderen i zaman: 12:16
Etiketler: c dili, c pointer ve structurelar, c program geliştirmek, C Programlama, c structures, c veri yapıları
Bu yapı paralel dizi oluşturmamıza gerek kalmadan birden fazla değişken türüyle yeni bir değişken türü oluşturmamıza yarayan yapıdır.
Kullanılışı aşağıdaki gibidir. integer ve char değişken türlerinden yeni bir değişken türü oluşturdum.
struct kitap_turu{
int fiyat;
char isim[100];
char yazar[100];
};
Yukarıda yeni bir struct kitap_turu adında değişken türü oluşturduk. Şimdi bu türden bir kitap adında bir değişken oluşturalım.
struct kitap_turu kitap;
//hatta dizi değişken bile oluşturabiliriz.
struct kitap_turu kitap_dizisi[10];
Şimdi bir değişken daha oluşturalım ve değer atayalım.
#include "stdio.h"
struct kitap_turu{
int fiyat;
char isim[100];
char yazar[100];
};
struct kitap_turu kitap2={10,"Define Adasi","Robert Louis Stevenson"};
int main(){
printf("Kitap ismi: %s\n",kitap2.isim);
printf("Kitap fiyat: %d TL\n",kitap2.fiyat);
printf("Kitap yazar: %s\n",kitap2.yazar);
return 0;
}
Structurelara değer atarken içerisindeki değişkenlerin sıralamasına uymalısınız.
Gönderen i zaman: 04:27
Etiketler: c programlamada structurelar, c programlamada yapılar, c veri yapıları, structurelar
Örneğin bir kitap listesi tutacak bir veri yapısı olulşturmak istedik. Veri yapısı kitap isimlerini ve fiyatlarını tutacak, fakat isimler char türünde fiyatlar ise integer türünde olacak, biz bunu tek bir değişken türü olarak tanımlayamayız. Bunun için paralel dizi yöntemini kullanacağız.
İlk olarak fiyatları tutacak dizimizi tanımlayalım.
int fiyat[10];
Şimdi kitap isimlerini tutacak diziyi tanımlayalım.
char isim[10][100];
Programın tamamını yazalım şimdi.
#include "stdio.h"
int main(){
int fiyat[10];
char isim[10][100];
int i=0;
while(i<10){
printf("kitap ismi gir:");
scanf("%s",isim[i]);
printf("fiyat gir:");
scanf("%d",fiyat[i]);
i++;
}
return 0;
}
Bu yapıyı daha sonra göreceğimiz structure yapılarını kullanarak oluşturabiliriz.
Gönderen i zaman: 04:09
Etiketler: c dili, c proggraming, c veri yapıları
Bu dersimizde hafızdan ayırdığımız bölümü işimiz bittiğinde serbest hale getirmeyi göreceğiz.
Bu işlemi free fonksiyonu ile yapıyoruz. Aşağıda görüldüğü gibi.
#include "stdio.h"
#include "stdlib.h"
int main()
{
int* pointer=(int *)malloc(sizeof(int));
*pointer=6;
printf("Deger: %d - Adres: %d\n",(*pointer),pointer);
free(pointer);
return 0;
}
Gönderen i zaman: 15:17
Etiketler: c dili, C Programlama, dinamik dizi, pointer
C dilinde pointerları başka pointerlarda gösterebilir. Aşağıdaki kodda p pointerını q pointerı gösteriyor ve p pointerı da x değişkenini gösteriyor.
#include "stdio.h"
#include "stdlib.h"
int main()
{
int x, *p, **q;
x = 10;
p = &x;
q = &p;
printf("%d\n", **q);
printf("%d\n", q);
printf("%d\n", p);
printf("%d\n", *q);
printf("%d\n", *p);
return 0;
}
Gönderen i zaman: 11:30
Etiketler: c dili, c proggraming, dizi ve pointerlaripointer aritmetiği, gösterici, göstericiler
Bu dersimizde hafızadan nasıl yer ayrılır(allocate) ve ayrılan yer nasıl tekrar boşaltılır onu göreceğiz. Biz bunun için malloc (memory allocate) fonksiyonunu kullanıyoruz.
int *pointer=null; pointer=malloc( sizeof(int) );
yukarıdaki kodda en başta bir pointer tanımlıyoruz. Daha sonra malloc ile hafızadan yer ayırıyoruz. Ve hafızanın baş adresini pointera atıyoruz. malloc fonksşyonunu kullanırken içine ayırmak istediğimiz hafıza miktarını yazıyoruz.
2 integer değişkeni tutacağımız kadar hafıza ayıralım ve hafızaların içini dolduralım.
#include "stdio.h"
#include "stdlib.h"
int main()
{
int *pointer=(int *)malloc((2*sizeof(int)));
*pointer=10;
printf("Adres: %d , Deger: %d\n",pointer,*pointer);
pointer++;
*pointer=9;
printf("Adres: %d , Deger: %d\n",pointer,*pointer);
return 0;
}
Bu fonksiyonu kullanabilmek için stdlib.h kütüphanesini include etmeniz lazım. Daha karışık bir örnek dinamik dizi oluşturmak yazısında var.
Gönderen i zaman: 10:25
Etiketler: alloc, allocate, c dizi değişkenler, c programı, hafıza ile çalışmak, malloc
Stringler çok boyutlu char dizileridir. örneğin aşağıda.
char kelime[10]="merhaba";
Bu tek boyutlu bir dizi bunda sadece bir kelime yada bir satır bilgi tutabiliriz. peki çok satırlı bir yazımız var ise onu çok boyutlu char dizisinde tutmalıyız.
char metin[5][10]={
"csharp","assembly","fortran","pascal","java"
};
printf("ilk dilimiz %s",metin[0]);
Bu dersimizde pointerlarla fonksiyonlar nasıl kullanılır onu görecez. Örneğin dışarıda bir dizi tanımlayalım ve dizisirala adında bir fonksiyonumuz olsun. fonksiyona dizinin ilk adresini ve boyutunu gönderelim ve dizi elemanlarını ekrana sıralayalım.
#include "stdio.h"
#include "stdlib.h"
void dizisirala(int *pointer,int boy){
int i=0;
while(i<boy){
printf("%d\n",*pointer);
pointer++;
i++;
}
}
int main()
{
int dizi[10]={1,2,3,4,5,6,7,8,9,0};
dizisirala(dizi,10);
return 0;
}
Gönderen i zaman: 13:45
Etiketler: dizi adresi göndermek, dizi göndermek, dizi ve pointerlaripointer aritmetiği, pointer ve fonksiyonlar, zor konu
bu yazımızda pointer aritmetik konusuna değineceğiz. Pointerlar bildiğiniz gibi adresleri gösterir. integer türünde bir pointer 1002 adresini gösteriyorsa; pointerın adresini bir artırırsak (pointer++) 1006 adresini göstercektir. Sebebi integer türünün 4 byte alan kaplamasıdır. Şimdi Bunu bir örnekle görelim.
int degisken=10;
int* p=°isken;
printf("%d\n",p);
p++;
printf("%d\n",p);
p++;
printf("%d\n",p);
p++;
Yukarıdaki örneği bir de char ve float türleriyle deneyin.
Yukarıda yaptığımız adresleri bir arttırmaktı. Pointerın gösterdiği değişkeni bir artıralım.
*p++;
printf("Degiskenin degeri:%d\n",*p);
Pointerları biraz daha işe yarar bir şeyde kullanalım. Bir dizi oluşturalım ve dizinin ilk elemanının adresini pointer göstersin. Daha sonra pointer ile dizinin bütün elemanlarını ekrana yazdıralım.
#include "stdio.h"
#include "stdlib.h"
int main()
{
int dizi[5]={1,2,3,4,5};
int* pointer=dizi; //dizinin ilk elemaninin adresi
int i=0;
while(i<5)
{
printf("eleman %d:%d - Adresi:%d\n",i,*pointer,pointer);
pointer++;
i++;
}
return 0;
}
Gönderen i zaman: 10:29
Etiketler: dizi ve pointerlaripointer aritmetiği, gösterici, pointerlar
Yazacağımız program önce kullanıcıdan dizinin kaç elemanlı olacağını sorsun. Daha sonra dizinin elemanlarını kendi atayarak ekrana yazdırsın.
#include "stdio.h"
#include "stdlib.h"
int main()
{
int boyut=0;
printf("Dizi boyutunu girin:");
scanf("%d",&boyut);
int* dizi;
dizi=(int *)malloc((boyut*sizeof(int)));
int i=0;
for(i=0;i<boyut;i++)
{
*dizi=i;
printf("%d",*dizi);
dizi++;
}
return 0;
}
Gönderen i zaman: 09:19
Etiketler: dinamik, dinamik dizi, dinamik dizi uygulaması, pointer
C programlama denilince akla ilk gelenler arasında pointer meselesi vardır. Aslında en zorlanılan konudur. Ama aslında süper bişeydir
Kısaca Pointerlar oluşturduğumuz değişkenlerin adreslerini gösterirler. Peki bu nasıl olur.
int a=5; //temel değişken tanımı.
şimdi bu değişkenin adresini ekrana yazdıralım.
printf("\na degiskenin adresi : %d",&a);
şimdi bir pointer tanımlayalım ve bu pointer a değişkenini göstersin.
int* pointer=&a;
Yukarıda görüldüğü gibi pointer tanımlarken *(yıldız) karakterini kullanıyoruz.
printf("\npointerin gostedigi adres : %d",pointer);
printf("\npointerin gosterdigi adresteki deger : %d",*pointer);
Yukarıdaki konuyu anlamışsınızdır umarım.Bu ilk bölümdü. Pointerlar daha bitmedi.
Gönderen i zaman: 09:07
Etiketler: c algoritmalar, c dili, C Programlama, pointer
Faktoriyel alan rekürsif bir fonksiyon.
#include "stdio.h"
int faktoriyel(int x);
int main(){
int deger=1;
int sonuc=faktoriyel(deger);
printf("Sonuc=%d",sonuc);
return 0;
}
int faktoriyel(int x){
int birim;
if(x>0){
birim=faktoriyel(x-1);
return x*birim;
}else{
return 1;
}
}
Gönderen i zaman: 02:07
Etiketler: c dili, c fonksiyonları, faktoriyel programı, fonksiyon, rekürsif fonk
Değişkenler herbirinin hafızda saklandıkları yerlerin adresleri vardır. Bu adresleri & (adresse of) operatörüyle görebiliriz. Örneğin;
int a=10;
printf("a degiskeninin adresi:%d",&a);
float b=56;
printf("b degiskenin adresi:%d",&b);
char harf='d';
printf("harf degiskenin adresi:%d",&harf);
Bu bilgi ileride pointerlar konusunda yardımcı olacak
Aşağıdaki kod decimal(onluk) tabandaki sayıyı ikilik tabandaki sayıya dönüştürür.
#include "stdio.h"
void fonk(int sayi){
if(sayi==1 || sayi==0){
printf("%d",sayi);
}else {
fonk(sayi/2);
printf("%d",sayi%2);
}
}
int main(int argc, char **argv)
{
fonk(9);
return 0;
}
Gönderen i zaman: 04:18
Etiketler: fonksiyon, recursif fonk
Tek parametre alan ve parametreye göre 4 işlemden herhangi birini yapan program.
#include "stdio.h"
void fonksiyon(int x);
int main(){
//toplama
fonksiyon(1);
//çıkarma
fonksiyon(2);
//çarpma
fonksiyon(3);
//bölme
fonksiyon(4);
}
void fonksiyon(int x){
switch(x){
case 1:
printf("%d",3+6);
break;
case 2:
printf("%d",3-6);
break;
case 3:
printf("%d",3*6);
break;
case 4:
printf("%d",3/6);
break;
}
}
Fonksiyon tanımalaması yukarıdaki gibide yapılabilir. Önemli olan o fonksiyonu kullanacağımız fonksiyondan önce (bu genellikle ana fonksiyon olur) ne girdiğini ve ne çıktığını tanımlamaktır.
Gönderen i zaman: 03:47
Etiketler: c örnek, c uygulama, fonksiyon
Fonksiyonlar programlama da önemli bir konudur. Büyük programlar yazarken programı fonksiyonlara ayırırız daha sonra bunların herbirini ana fonksiyonumuzda birleştiririz. Örnek fonksiyon tanımlaması aşağıda gösterildiği gibidir.
#include "stdio.h"
int toplama(int x,int y){
int toplam=x+y;
return sonuc;
}
int main(){
int islem=toplama(3,6);
printf("%d",islem);
return 0;
}
Yukarıdaki kodu açıklamak gerekirse fonksiyon bir toplama fonksiyonu iki parametre alıyor. ve daha sonra bunları toplamyıp ana fonksiyonu geri döndürüyor. Bizim programımızda gönderdiğimiz parametreler 3 ve 6 bunlar sırasıyla x ve y yerel değişkenlerine aktarılıyor. daha sonra bu değişkenler toplanıyor ve toplam değişkenine aktarılıyor ve toplam değişkeni fonksiyonun sonunda geri döndürülüyor(return). Bundan sonra işlemler ana(main) fonksiyonunda devam ediyor. Fonksiyondan dönen değer islem değişkenine aktarılıyor ve islem değişkeni ekrana yazılıyor. Program son buluyor.
Arkadaşlar fonksiyonu tanımlarken başındaki int ibaresine dikkat edin. Bunu koymamızın sebebi fonksiyondan dönen değerin integer türünden olması. Eğere float türünden olsaydı float koyacaktık. Prki fonksiyon bir değer döndürmeseydi. O zaman ne koyacaktık. Aşağıda bunun örneği verilmiş.Ayrıca hiç parametre almayan fonksiyonada bir örnek.
#include "stdio.h"
void toplama(){
int toplam=3+6;
printf("%d",toplam);
}
int main(){
toplama();
return 0;
}
Yukarıdaki kodda fonksiyonun ana fonksiyonda kullanılışına da dikkat edin. Şimdi siz birşeyler yapın gelen bir parametreye göre 4 işlemden birini yapan ve geri değer döndürmeyen bir fonksiyon yazın ve kullanın.
Gönderen i zaman: 03:39
Etiketler: c de kullanıcı, c dili, c programı, cprogramlama, fonksiyon, fonksiyonlar
C dilinde rastgele sayı üretmek için rand() fonksiyonunu kullanırız. Aşağıda kullanılışını görelim
#include <stdio.h>
/*Kütüphaneleri unutmayın.*/
#include <time.h>
#include <stdlib.>
int main()
{
srand(time(null));
int rastgele=rand()%20; //0-19 arasında sayı üretir.
printf("%d",rastgele);
return 0;
}
Yukarıdaki örnekte üreteceği sayılar sıfırdan başlar. Peki bir 5 ile 19 arasında sayı üretmesini istersek.
#include <stdio.h>
/*Kütüphaneleri unutmayın.*/
#include <time.h>
#include <stdlib.>
int main()
{
srand(time(null)); //bu her zaman olacak.
int rastgele=5+rand()%15;
printf("%d",rastgele);
return 0;
}
Yukarıdakini anladıysanız sizde -5 ve 5 arasında sayı üreten kodu yazın.
Gönderen i zaman: 11:27
Etiketler: C dersleri, c dili, C Programlama, c rand, c++, random, rastgele sayı üretmek
Kullanıcıdan sürekli karakter alıyoruz. karakterin ascii kodunu ekrana yazdırıyoruz eğer karakter sıfır ise programı sonlandırıyoruz.
#include <stdio.h>
#include <conio.h>
int main(){
char c;
printf("\nBir karakter Girin:");
while((ch=getch())!=0){
printf("%d",c);
printf("Bir karakter daha girin:");
}
printf("gule gule");
return 0;
}
Gönderen i zaman: 12:19
Etiketler: c dili, c uygulama, cprogramlama, getch