Bittus Mesaj tarihi: Temmuz 14, 2010 Konuyu açan Paylaş Mesaj tarihi: Temmuz 14, 2010 ahahaha Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
kgns Mesaj tarihi: Temmuz 14, 2010 Paylaş Mesaj tarihi: Temmuz 14, 2010 son mesajları çok okuyamadım ama Arrays.copyOf kullanmak yerine, System.arraycopy methodu kullanırsan daha hızlı çalışır. http://www.javapractices.com/topic/TopicAction.do?Id=3 şurde örneklere bakabilirsin Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Mirage Mesaj tarihi: Temmuz 14, 2010 Paylaş Mesaj tarihi: Temmuz 14, 2010 Bittus said: said: copy metodunda yeni bir küme oluşturup geri vermen gerekiyor. Sen argüman olarak verilen kümeyi değiştirmişsin. Orayı da düzeltmen lazım. burada bir sorun yok ya. amaç zaten o. yani A=B yapmak olay. SetOfIntegers C = new SetOfIntegers(); System.out.println(A.copy(C)); demişim zaten. aldığı küme boş küme yani. Mantık hatası var. Argüman olarak verdiğin kümenin içeriğini değiştirmek doğru bir yaklaşım değil. Düzeltmek için bir iki tavsiye: 1) Copy metodunu parametresiz tanımla. Hangi kümede copy metodunu çağırırsan o kümenin bir kopyasını yaratıp geri ver. 2) Parametreyi aynı bırak ama metodu statik tanımla. Argüman olarak verdiğin kümenin kopyasını bırakıp geri ver. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Bittus Mesaj tarihi: Temmuz 14, 2010 Konuyu açan Paylaş Mesaj tarihi: Temmuz 14, 2010 ok parametreyi silip, kopyalayıp yolladım sonra. bu tür mantık hatalarını da görmüş oluyorum eyvallah. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Mirage Mesaj tarihi: Temmuz 14, 2010 Paylaş Mesaj tarihi: Temmuz 14, 2010 Bir tavsiye daha vereyim ama bu biraz daha gelişmiş sayılır. public SetOfIntegers(int element) { aSet = new int[1]; aSet[0] = element; //singletone } public SetOfIntegers(int element,int size) { theSize = size; aSet = new int; //a set with the first element aSet[0] = element; } Yukardaki iki constructor'a bakarsan ilkinin ikincisinin daha genel bir hali olduğunu görüyorsun (size 1). İlk constructor'u şu şekilde değiştirip diğer constructor'dan yararlanabilirsin: public SetOfIntegers(int element) { this(element, 1); } Bu şekilde başka bir constructor çağıracaksan bunu ilk satırda yapman gerekiyor. Birden fazla constructor olduğu zaman çok yararlı bir yöntem. Değişik metodlar yazarken bir çok yerde benzer bir mantık ve aynı satırları kullanıyorsun. Bu tür yerlerde kodu kopyalamak yerine ortak metod kullanmak tavsiye edilir. Yukardaki örnekte çok bir kazancın yok belki ama mantığı anlamana yardımcı olur belki. Onun dışında aSet[0] = element; //singletone singleton yanlış anlamda kullanılmış. Bence şimdilik singleton ile kafanı kurcalama. Bu tür basit şeyler için comment yazmaya gerek yok, özellikle bir kaç satırlık metodlar kullanıyorsan. Karışık bir algoritma yazıyorsan ya da yazdığın şeyin ne olduğu belli olmuyorsa ne yaptığını anlatan kısa bir comment yazman yeterli. Onun dışında comment yazmış olmak için comment yazmak gereksiz olduğu kadar komik de oluyor. Metod için bu tür yorumlar yazmak yerine metodun/class'ın ne yaptığını anlatan Javadoc yazmak çok daha mantıklı. İlgini çekerse: http://java.sun.com/j2se/javadoc/writingdoccomments/ Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği… Bittus Mesaj tarihi: Temmuz 15, 2010 Konuyu açan Paylaş Mesaj tarihi: Temmuz 15, 2010 Evet sonunda bitti... Son halleri böyle oldu: SetOfIntegers class import java.util.Arrays; public class SetOfIntegers { boolean temp = false; private int capacity; private int set[]; private int MAX_VALUE = 100; public SetOfIntegers() { set = new int[0]; } public SetOfIntegers(int element) { set = new int[1]; set[0] = element; } public SetOfIntegers(int element,int size) { capacity = size; set = new int[capacity]; set[0] = element; } public void addElement(int index,int e) { if(Arrays.binarySearch(set, e) <0){ set[index-1] = e; } } public SetOfIntegers copy(SetOfIntegers copied) { //returns a copy of the given set copied.set = Arrays.copyOf(set.clone(), set.length); return copied; } public SetOfIntegers union(SetOfIntegers otherSet) { //returns the union of two given set of integers SetOfIntegers union = new SetOfIntegers(); union.set = Arrays.copyOf(set.clone(), set.length+otherSet.capacity); for(int i=0; i<otherSet.capacity; i++){ union.addElement(set.length+i+1, otherSet.set[i]); } return union; } public SetOfIntegers intersection(SetOfIntegers otherSet) { //return the intersection of two given set of integers int[] temp = new int[MAX_VALUE]; int j=0; for(int i=0;i<=otherSet.capacity-1;i++){ if(Arrays.binarySearch(set, otherSet.set[i]) >0){ temp[j] = otherSet.set[i]; j++; } } SetOfIntegers intersection = new SetOfIntegers(); intersection.set = Arrays.copyOf(temp.clone(), j); return intersection; } public void inTheSet(int e) { //checks if the given element is in the specified set if(Arrays.binarySearch(set, e) >0){ System.out.println(e+" is in the Set"); } else System.out.println(e+" is NOT in the Set"); } public void isSubset(SetOfIntegers otherSet){ //checks if the given set is a subset of the specified set for(int i=0;i<=set.length-1;i++){ if(Arrays.binarySearch(otherSet.set, set[i]) <0){ temp = false; } else { temp = true; } } if(temp == true) System.out.println("It is a Subset"); else System.out.println("It is NOT a Subset"); } public void isSuperset(SetOfIntegers otherSet){ //checks if the given set is a superset of the specified set for(int i=0;i<=otherSet.capacity-1;i++){ if(Arrays.binarySearch(set, otherSet.set[i]) <0){ temp = false; } else { temp = true; } } if(temp == true) System.out.println("It is a Superset"); else System.out.println("It is NOT a Superset"); } public void isEqual(SetOfIntegers otherSet){ //checks if the two given sets are equal if(Arrays.equals(set, otherSet.set) == true){ System.out.println("Two Sets Are Equal"); } else System.out.println("Two Sets Are NOT Equal"); } public String toString() { return Arrays.toString(set); } } SetTest (Main) public class SetTest { public static void main(String[] args ) { SetOfIntegers A = new SetOfIntegers(1, 5); A.addElement(2, 3); A.addElement(3, 11); A.addElement(4, 22); A.addElement(5, 13); SetOfIntegers B = new SetOfIntegers(5, 4); B.addElement(2, 7); B.addElement(3, 11); B.addElement(4, 33); SetOfIntegers C = new SetOfIntegers(); SetOfIntegers D = new SetOfIntegers(); SetOfIntegers E = new SetOfIntegers(); C = A.union(B); D = A.intersection(B); A.copy(E); A.isSubset(C); A.isSuperset(D); A.isEqual(E); A.isEqual(C); } biliyorum mükemmel değil kodlar, hatta çok kötü ama en azından hocanın istediklerini veriyor diye düşünüyorum. daha fazla geliştirmek için zamanım kalmadı 23:59:59 dan önce yollamam lazım yoksa 5 puandan olcam hehe Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği… Mirage Mesaj tarihi: Temmuz 15, 2010 Paylaş Mesaj tarihi: Temmuz 15, 2010 Hala hatalar var ama yeni başlayan için gelişmeler iyi sayılır. Kalanları da hoca düzeltsin. :) Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği… Bittus Mesaj tarihi: Temmuz 15, 2010 Konuyu açan Paylaş Mesaj tarihi: Temmuz 15, 2010 Hatalarımı biliyorum ama işte zaman biraz kısıtlı. mesela addElement methodunda eğer aynı elemandan varsa eklemiyor ama array size aynı kalıyor. o yüzden de fazladan sıfır oluyo arrayde. orada set[j] = set[j+1] diye kaydırıp element sayısı kadar büyüklükteki bir arraye kopyalayabilrdim. ama dediğim gibi kodun properly çalışması gerekmiyor. hocanın istediği encapsulation olduğu için pek sorun olacağını zannetmiyorum. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği… Önceki 1 2 Sonraki 2.sayfa (Toplam 2 sayfa) Paylaş Daha fazla paylaşım seçeneği… Takipçiler 0 Konu listesine dön Paticik Tum Konular Paticik - Pati Tech Paticik - Pati Zone Paticik - Ilgi Alanlari Paticik - Yasam Paticik - Pati Do Paticik - Spor Paticik - Oyunlar Paticik - MMORPG turleri Paticik - Garbage Son Mesajlar Ana Sayfa Pati Tech Donanım & Yazılım Run Time'da Array Size arttırmaca (Java) × Üye misin? Giriş yap Kaydol Bağış Hedesi Yönetim Kurallar × Yeni Oluştur...
Bittus Mesaj tarihi: Temmuz 15, 2010 Konuyu açan Paylaş Mesaj tarihi: Temmuz 15, 2010 Evet sonunda bitti... Son halleri böyle oldu: SetOfIntegers class import java.util.Arrays; public class SetOfIntegers { boolean temp = false; private int capacity; private int set[]; private int MAX_VALUE = 100; public SetOfIntegers() { set = new int[0]; } public SetOfIntegers(int element) { set = new int[1]; set[0] = element; } public SetOfIntegers(int element,int size) { capacity = size; set = new int[capacity]; set[0] = element; } public void addElement(int index,int e) { if(Arrays.binarySearch(set, e) <0){ set[index-1] = e; } } public SetOfIntegers copy(SetOfIntegers copied) { //returns a copy of the given set copied.set = Arrays.copyOf(set.clone(), set.length); return copied; } public SetOfIntegers union(SetOfIntegers otherSet) { //returns the union of two given set of integers SetOfIntegers union = new SetOfIntegers(); union.set = Arrays.copyOf(set.clone(), set.length+otherSet.capacity); for(int i=0; i<otherSet.capacity; i++){ union.addElement(set.length+i+1, otherSet.set[i]); } return union; } public SetOfIntegers intersection(SetOfIntegers otherSet) { //return the intersection of two given set of integers int[] temp = new int[MAX_VALUE]; int j=0; for(int i=0;i<=otherSet.capacity-1;i++){ if(Arrays.binarySearch(set, otherSet.set[i]) >0){ temp[j] = otherSet.set[i]; j++; } } SetOfIntegers intersection = new SetOfIntegers(); intersection.set = Arrays.copyOf(temp.clone(), j); return intersection; } public void inTheSet(int e) { //checks if the given element is in the specified set if(Arrays.binarySearch(set, e) >0){ System.out.println(e+" is in the Set"); } else System.out.println(e+" is NOT in the Set"); } public void isSubset(SetOfIntegers otherSet){ //checks if the given set is a subset of the specified set for(int i=0;i<=set.length-1;i++){ if(Arrays.binarySearch(otherSet.set, set[i]) <0){ temp = false; } else { temp = true; } } if(temp == true) System.out.println("It is a Subset"); else System.out.println("It is NOT a Subset"); } public void isSuperset(SetOfIntegers otherSet){ //checks if the given set is a superset of the specified set for(int i=0;i<=otherSet.capacity-1;i++){ if(Arrays.binarySearch(set, otherSet.set[i]) <0){ temp = false; } else { temp = true; } } if(temp == true) System.out.println("It is a Superset"); else System.out.println("It is NOT a Superset"); } public void isEqual(SetOfIntegers otherSet){ //checks if the two given sets are equal if(Arrays.equals(set, otherSet.set) == true){ System.out.println("Two Sets Are Equal"); } else System.out.println("Two Sets Are NOT Equal"); } public String toString() { return Arrays.toString(set); } } SetTest (Main) public class SetTest { public static void main(String[] args ) { SetOfIntegers A = new SetOfIntegers(1, 5); A.addElement(2, 3); A.addElement(3, 11); A.addElement(4, 22); A.addElement(5, 13); SetOfIntegers B = new SetOfIntegers(5, 4); B.addElement(2, 7); B.addElement(3, 11); B.addElement(4, 33); SetOfIntegers C = new SetOfIntegers(); SetOfIntegers D = new SetOfIntegers(); SetOfIntegers E = new SetOfIntegers(); C = A.union(B); D = A.intersection(B); A.copy(E); A.isSubset(C); A.isSuperset(D); A.isEqual(E); A.isEqual(C); } biliyorum mükemmel değil kodlar, hatta çok kötü ama en azından hocanın istediklerini veriyor diye düşünüyorum. daha fazla geliştirmek için zamanım kalmadı 23:59:59 dan önce yollamam lazım yoksa 5 puandan olcam hehe Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Mirage Mesaj tarihi: Temmuz 15, 2010 Paylaş Mesaj tarihi: Temmuz 15, 2010 Hala hatalar var ama yeni başlayan için gelişmeler iyi sayılır. Kalanları da hoca düzeltsin. :) Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Bittus Mesaj tarihi: Temmuz 15, 2010 Konuyu açan Paylaş Mesaj tarihi: Temmuz 15, 2010 Hatalarımı biliyorum ama işte zaman biraz kısıtlı. mesela addElement methodunda eğer aynı elemandan varsa eklemiyor ama array size aynı kalıyor. o yüzden de fazladan sıfır oluyo arrayde. orada set[j] = set[j+1] diye kaydırıp element sayısı kadar büyüklükteki bir arraye kopyalayabilrdim. ama dediğim gibi kodun properly çalışması gerekmiyor. hocanın istediği encapsulation olduğu için pek sorun olacağını zannetmiyorum. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Öne çıkan mesajlar