Kayıtlar

void etiketine sahip yayınlar gösteriliyor

31 : Fonksiyonda Struct Kullanımı

Struct tipini fonksiyonlarda parametre ya da dönüş değeri olarak kullanabiliriz. Struct için fonksiyonda ekstra özel bir konu yok. Bir önceki yazıda kullandığımız özellikler ile fonksiyonlarda struct tipli değişkenleri kullanabiliriz. Bir fonksiyon ile mainde oluşturduğum bir ogrencinin bilgilerini dolduracağım. Daha sonra bir fonksiyon ile bu ogrencinin adını ve soyadını yazdıracağım. Başka bir fonksiyon ile de numarasını ve not ortalamasını yazdıracağım. Adını yazdırdığım fonksiyona parametre olarak structı verirken numarasını yazdırdığım fonksiyona parametre olarak structın adresini vereceğim. Bu iki kullanım arasında farklar var. Bu farkları başka bir yazıda açıklamaya çalışacağım. Bu yazıda sadece bu farkların sözdiziminde nasıl görüldüğünü göstereceğim. #include <stdio.h> #include <string.h> typedef struct ogrenci { char ad[50]; char soyad[50]; int numara; float not; }ogrenci; ogrenci bilgiDoldur(); void adSoyadYazdir(ogrenci bilgi); void notNumaraYa...

25 : Pointer ile Dizi Elemanlarına Ulaşma

Bir dizi, bellekte aynı tip verilerden oluşan bloğu ifade eder. Önceki örnekte bir işaretçinin bellekte verinin tutulduğu bir adresi ifade ettiğini söylemiştik. Aynı şekilde dizinin ismi de bu veri bloğunun başlangıç adresini ifade eder. Bir dizi değişkeni ile bir pointer değişkeni arasında benzerlikler bulunur. Aşağıdaki örnekte bir dizi tanımlayacağız ve bunu print ettireceğiz. Daha sonra tekrar pointer kullanarak ulaşıp print ettireceğiz ki fark olmadığını görelim. dizi_pointer.c #include <stdio.h> int main() { int data[7] = {12, 2, 4, 55, 132, 1567, 43}; int i = 0; printf("-- Girilen sayilar -- \n"); printf("Dizi ile: \n"); for(i = 0; i < 7; ++i) { printf("%d ", data[i]); } printf("\nPointer ile: \n"); for(i = 0; i < 7; ++i) { printf("%d ", *(data + i)); } printf("\n"); return 0; } Burada dikkat edilmesi gereken nokta *data ifadesinin data dizisinin i...

Diziler - 19 : Bir pikselin renk kodları nasıl belirtilir.

Önceki örneklerde bir sürü değişken tanımladık, kullanıcıdan değerler atamasını istedik. Bunların hepsi tek bir sayıyla yada karakterle tanımlanmıştı. Bir resme baktığımızda üzerinde binlerce farklı renkli noktalar görürüz. Bu her bir nokta pixel ismiyle ifade edilir ve her birinin farklı uzaylarda farklı değerleri vardır. En çok bildiğimiz RGB uzayını düşünürsek bir pixelin değerini belirtmek için R(kırmızı), G(yeşil) ve B(mavi) olarak 3 ayrı değer belirtmemiz gerekir. Örneğin 8 bitlik RGB uzayında 3 ana renk şöyle tanımlanır: Kırmızı  : 255, 0 , 0 Yeşil      : 0, 255, 0 Mavi     : 0, 0, 255 Bu değerleri kullanırken her bir pixel için 3 ayrı değişken mi tutmamız gerekir. Bir resimde alt sol pixele p1 dersem ve kodumda kullanmak istersem; varsayalım değerini değiştirmek istiyorum: p1_r , p1_g ve p1_b olarak 3 ayrı değişken mi oluşturmam gerekir. Ya da bir fonksiyona parametre olarak geçireceğim. Şu şekilde mi yazarım: renk_degistir(p1_r, ...

18 : Sayi Pozitif mi? Fonksiyonda enum döndürme

Fonksiyonların bir sayı döndürdüğünü görmüştük. Ya da bir fonksiyon bir değer döndürmeyip void şeklinde de tanımlanabilir. Dönüş değeri bunların yanında yapısal tipte de olabilir. Sayısal tiplerin haricinde şuana kadarki örneklerde sadece enumeration kullandığım için yine bu şekilde örnekleyeceğim. Daha sonra struct gibi tiplerin örneklerini verdiğimizde fonksiyonlarda da nasıl kullanıldığından bahsedebiliriz. Bu örnekte bir enumeration oluşturacağız. Bu enumeration sayının pozitif, negatif ya da sıfır olduğunu gösterecek. Yine kullanıcıdan bir sayı girmesini isteyeceğiz. Bu sayıyı doğrudan fonksiyona göndereceğiz. Bu sayıyı fonksiyonda kontrol edip hangi durumda olduğunu enumeration ile döndürüp bir switch case yapısı ile yazdıracağız. kontrol.c #include <stdio.h> enum sayi_durumu { sifir = 0, negatif, pozitif }; enum sayi_durumu kontrol (int val); int main() { int val1 = 0; int val2 = 0; printf("Ilk degeri giriniz: "); scanf("%d", &val1); ...

16 : Asal Sayı Kontrolü - void fonksiyon

Bir önceki örnekte fonksiyonlar bir iş yapıp bize bir değer dönüyordu. Biz bu değerleri bir dğeişkene atayıp bu değişken ile yeni bir iş yapıyorduk. Ancak bazı durumda bi iş yaptıktan sonra bizim geri dönüşe ihtiyacımız olmayabilir. Bir örnek ile görelim. Bir sayi isteyeceğiz ve bu sayi asal mi kontrol edeceğiz. asalmi.c #include<stdio.h> void asalmi(int param); int main() { int sayi; printf("Bir sayi giriniz: "); scanf("%d", &sayi); asalmi(sayi); return 0; } void asalmi(int param) { int i, asal = 1; for(i=2; i <= param/2; ++i) { if(param % i == 0) { asal = 0; break; } } if (asal == 1) printf("%d asaldir.\n", param); else printf("%d asal degildir.\n", param); } Burada fonksiyon bir sayi alacak ve kontrol edip bize sonucu yazdıracak. Bize herhangi bir değer dönmesine gerek kalmayacak. Bu sebeple fonksiyonun dönüş değer...