Merhaba arkadaşlar. Gece 24.00' e kadar yetiştirmem gereken bir ödev söz konusu. Kısacası hemen konuya gireyim. C' de array kullanarak dizi yaratıcam. Öncelikle kullanıcıya dizinin kaç elemanlı olacağını soracağım. Mesela 5 diyecek. Declare edilen array[SIZE] 5 elementli olucak. Ama SIZE önceden define olarak belirli herhangi bir eleman sayısı olduğu için, kullanıcıdan ne alırsam alayım define edilen SIZE 10 o da olabilir. Her şekilde 10 elemanlı olacak. Yani burada kullanıcıya bağlı eleman sayısı ona göre değişen bir dizi (array) yapmak istiyorum. Fikri olan var mı acaba?
< Bu mesaj bu kişi tarafından değiştirildi saxahan -- 25 Şubat 2010; 17:45:45 >
T olusturArray(int arrayDegeri) { T[arrayDegeri] = new T[arrayDegeri]; return T; }
main() { int userSecim; printf("Bir sayi giriniz: "); // Sayi girdisi alinir... T olusturArray(userSecim); }
Tipi birşey düşünün derim. C bilmiyorum, C++ biliyorum o yüzden printf kullandım, printf veya diğer komutları bilmiyorum çünkü cin,cout streamleri ile çalışırım output, input değerlerinde. T ise ne tür değer istediğine bağlı olarak değişebilecek bir değişken tipi olmalı ( int, float, double, unsigned long vb.vb. )
Kod yanlış olabilir ama umarım aklında birşeyler oluşturmuştur...
T olusturArray(int arrayDegeri) { T[arrayDegeri] = new T[arrayDegeri]; return T; }
main() { int userSecim; printf("Bir sayi giriniz: "); // Sayi girdisi alinir... T olusturArray(userSecim); }
Tipi birşey düşünün derim. C bilmiyorum, C++ biliyorum o yüzden printf kullandım, printf veya diğer komutları bilmiyorum çünkü cin,cout streamleri ile çalışırım output, input değerlerinde. T ise ne tür değer istediğine bağlı olarak değişebilecek bir değişken tipi olmalı ( int, float, double, unsigned long vb.vb. )
Kod yanlış olabilir ama umarım aklında birşeyler oluşturmuştur...
bu şekilde olmaz arkadaşlar. array size constant olup copile anında belirlenmesi gerekir.
bunun için 2 yol öneririm, 2.si tercih edilir.
1. yol sen normal arrayini tanımlarsın mesela 10luk, daha sonra kullanıcıdan bi sayı alırsın (10dan küçük olmalı bu örnek için) ve oluşturmuş olduğun arrayin sadece bu sayı kadarki kısmını kullanırsın.
2. yol dinamik array kullanmak, pointer biliyosan yaz açıklamaya çalışayım yoksa mecburen 1.sini yapıcaksın
pointer biliyosan 2.si daha mantıklı hem gereksiz ram kullanmazsın(tabiki bu aşamada görünmez bu fark) ama esas olarak kullanıcaya bi limit koymamış olursun(mesela sen yazarken 10luk bişey oluşturdun) ben 11lik kullanmak istersem sorun olur.
2. yolun kodu
main(){ int size; cin<<size; int *arr = new int[size]; ...... delete arr; }
C' de array kullanarak dizi yaratıcam. Öncelikle kullanıcıya dizinin kaç elemanlı olacağını soracağım. Mesela 5 diyecek.
Declare edilen array[SIZE] 5 elementli olucak. Ama SIZE önceden define olarak belirli herhangi bir eleman sayısı olduğu için, kullanıcıdan ne alırsam alayım define edilen SIZE 10 o da olabilir. Her şekilde 10 elemanlı olacak. Yani burada kullanıcıya bağlı eleman sayısı ona göre değişen bir dizi (array) yapmak istiyorum. Fikri olan var mı acaba?
< Bu mesaj bu kişi tarafından değiştirildi saxahan -- 25 Şubat 2010; 17:45:45 >