Elektrotekno.com Ana Sayfa || Bilgisayar || Bilgisayar Programlama


C de Bir değişkene erişim için hem numara hem değer kullanımı Nasıl Yapılır

Kayıt: 07 Şub 2008
Mesajlar: 47

Offline
EXELANS
Tarih: 28 07 2011 13:24

konuyu biraz açayım. 10 tane değişkenimiz olsun bunların herbirin farklı değerlere sahip olsunlar bu değişkenlere yeri geldiğinde sadece sıralı olarak 1....10'a kadar sayılarla erişebilmeliyim hem de gerektirğinde sadece degerleriine erişebilmeliyim . Nasıl bir tanımlama yapabiliriz...

sırası - değişken ismi - değeri
0 - aaaaa1 = 0xf1
1 - aaaaa2 = 0xf2
2 - aaaaa3 = 0xf3
3 - aaaaa4 = 0xf4
4 - aaaaa5 = 0xf5
5 - aaaaa6 = 0xf6
6 - aaaaa7 = 0xf7
7 - aaaaa8 = 0xf8
8 - aaaaa9 = 0xf9
9 - aaaaa0 = 0xff

(gibi bir yapı olduğunu varsayılım)..


Reklamlar
Kayıt: 30 Tem 2011
Mesajlar: 1

Offline
osman_boyaci
Tarih: 30 07 2011 11:48

istedigin sey sanirim bir dizi, yanlis mi anliyorum?
eger oyleyse su sekilde bir tanimlama olacak : (dizinin elemanlarinin tamsayi olacagi kabuluyle)
int aaaa[10];

artik 10 tane ardisik degiskene sahipsin. Indisleriyle soyle erisebilirsin.
aaaaa[0]
aaaaa[1]
aaaaa[2]
.
.
aaaaa[9]
Başa dön
Kayıt: 02 Ksm 2009
Mesajlar: 764
Konum: Kocaeli
Offline
senoleker
Tarih: 30 07 2011 14:30

Kimi derleyicilerde de
int aaaa[10];
int bbbb[10];
deyip "nasılsa 10'a kadar" diyerek
aaaa[1]
aaaa[2]
aaaa[3]
....
aaaa[9]
aaaa[10]
yapınca hata vermez; amma ve lakin aaaa[10] dediğin şey aslında bbbb[0]'dır, bunun farkına varmazsan çok saç baş yolarsın.
Buna azami dikkat edin.
Başa dön
Kayıt: 07 Şub 2008
Mesajlar: 47

Offline
EXELANS
Tarih: 01 08 2011 15:59

Hayır dizi değil dizi kullanmadan erişebilmemizin bir yolunu arıyorum aslında, şimdi şöyle düşünün saat isimli değişken yerine ben bir dizi elemanı kullansam bu seferde her defasında hangi eleman saat elemanı olarak tanımlamıştım diye kod içinde bocalayıp duracaz ve kesin hata yaparız veya kodu birinin okuduğunu düşünün deger[3] yazıyor bunu okuyan kişi bu degerin aslında saat değerine karşılık geldiğini anlamayacaktır. Farklı bir yöntem arıyorum yani..
Başa dön
Kayıt: 02 Ksm 2009
Mesajlar: 764
Konum: Kocaeli
Offline
senoleker
Tarih: 01 08 2011 16:38

EXELANS yazmış
bunu okuyan kişi bu degerin aslında saat değerine karşılık geldiğini anlamayacaktır.

Yazdığınız kodu bakan birisi anlamasın mı istiyorsunuz anlasın mı istiyorsunuz? Bunu bile anlamadım Sad
Başa dön
Kayıt: 07 Şub 2008
Mesajlar: 47

Offline
EXELANS
Tarih: 01 08 2011 16:51

kodun anlaşılır ve dinamik olmasını istiyorum bu yüzden dizi gibi kullanılabilecek bir yapı yazmaya çalışıyorum.. (Önceki mesajımı dikkatli okursanız bazı kelimeler devrik olmuş olabilir ama gayet açık olduğunu düşünüyorum.)
Başa dön
Kayıt: 02 Ksm 2009
Mesajlar: 764
Konum: Kocaeli
Offline
senoleker
Tarih: 01 08 2011 19:04

Sizin açınızdan anlaşılır olduğu muhakkak zaten. Ama önemli olan cevaplayacak olanın anlaması Smile
Okuyan kişinin yazıyı anlamak için çok fazla efor göstermesi gerekirse, cevaplamak için harcayacak kudreti azalacağından soruyu; okuyanın minimum eforla anlaybileceği şekilde yazmak çok önemlidir diye düşünüyorum.
Neyse, konumuz bu değil.

Programların anlaşılır olması için, kodun uygun yerlerine, o kod parçasının ne iş yaptığını anlatan remark'lar konur. Bu bildiğimiz sıradan yöntem.

Değişkenlerin kolay takibi için mümkün mertebe anlaşılır; gerekirse uzun değişken isimleri vermek gerekir.
Değişkenlere uzun ve anlaşılır isimler vermek yerine dizi benzeri bir yapıda toplamak tam tersine anlaşılırlığı düşürecektir. Bu dabildiğimiz sıradan bilgi.

Eğer düşündüğünüz şeyi tam olarak anlayabilirsem, size yol gösterebileceğimi zannediyorum.
Uzun değişken isimleri kullanmaktan daha iyi olduğunu düşündüğünüz bu yöntemi biraz daha açabilir misimniz?
Anlamadım gerçekten Sad
Başa dön
Kayıt: 07 Şub 2008
Mesajlar: 47

Offline
EXELANS
Tarih: 02 08 2011 15:09

şimdi neyi düşündüğümü biraz daha farklı ifade edelim o zaman.

enum yapısı içerinde elemanların sayısal birer karşılığı varken aynı zamanda isimlerini de kullabiliriz değilmi.

struct içerisinde ise yapının elemanlarına isimlerle erişebileceğimiz gibi bir bütün olarak tüm elemanlara da değer yükleyebiliriz.

Aslında bu iki yapının özelliklerini nasıl birleştirebiliriz soru buydu.
Başa dön
Kayıt: 25 Hzr 2008
Mesajlar: 18

Offline
vertigo
Tarih: 05 08 2011 12:29

Ne istediğinizi ben de tam olarak anlayamadım, ancak yine de cevap vermeye çalışacağım.

Kod


int foo[5];
foo[index] /* şeklinde erişebilirsiniz */

/* ya da */
int *ptr = &foo[3]; /* şeklinde de erişebilirsiniz */

/* hatta ++ptr yaptiginde foo[4]'e erişebilirsin */


Tabi bu işlemi dinamik olarak heap'de ayırdıgınız bolgeler icin de yapabilirsiniz.
Başa dön



C de Bir değişkene erişim için hem numara hem değer kullanımı Nasıl Yapılır


Benzer Konular
- Aydınlatma projeleri için ayrı bölüm açılmıştır
- Topraklama ve Paratoner projeleri için ayrı bölüm açılmıştır
- İstekleriniz için bu bölümü kullanının.

- Autocad proje istekleriniz için bu başlığı kullanın.

- Dosya paylaşmak için yukarıdaki alt forumları kullanınız
- Citroen ve peugeot için cam kaldırma modülü
- Fiat Tipomuz için Yaptığım iç ve Dış sıcaklık sensörü-pic16f628a ve DS18B20
- rn171 wifi modul 802.11 bg pic,avr,arm, kontrol devreleri icin
- PARSIC Programı Kullanımı ve Uygulamalar

- PLC Hafızası nasıl silinir videolu anlatım?

- PLC ile Vinç Otomasyonu Nasıl yapılır

Sitemize üyelik ve içeriğin indirilmesi tamamen ücretsizdir. Sitemizde paylaşılan tüm dokümanlar (Tezler, makaleler, ders notları, sınav soru cevaplar, projeler) paylaşımcıların bireysel çalışmaları olup telif hakları kendilerine aittir ya da açık bir şekilde kamusal alana yerleştirilmiş dokümanların birer kopyalarıdır. Kişilerin bireysel çalışmalarını sitemizde yüklemesinde, sitemizde paylaşıma teşvik eden puanlama sisteminin de etkisi büyüktür. Bunlara rağmen hala size ait olan ve burada bulunmasına izin vermediğiniz dokümanlar varsa iletişim bölümünden yöneticilere bildirmeniz durumunda derhal silineceklerdir.
Powered by phpBB | Translated by phpBB Turkiye | Ads by Google Adsense | Design by Crazy Bat based