Merhaba. Ben yazdığım koddan anlayamadığım bir hata alıyorum. Önce kodları vereyim:
head_ptr yi tanımlamadığımı söylüyor. aşağıya da hata mesajını yazayım:
Yardımınız gerekiyor. Şimdiden teşekkür ederim. |
Gördüğüm kadarıyla insert_newnode ve show fonksiyonları sınıfın üyesi. Bu durumda fonksiyon çağırma biçimi hatalı oluyor. Doğrusu list1.insert_newnode() ve list1.show() şeklinde olacak. Diğer hatada evet o scope ta headptr yok. Ama hata sadece o değil. insert_newnode ya pointer almalı ya data. İkisi birden olması anlamsız görünüyor. Madem ki delete_node, düğümü sadece listeden çıkarmayıp aynı zamanda siliyor, öyleyse eklerken de veriyi alıp düğümü içerde oluşturması daha mantıklı. Bu dediklerime göre insert_newnode şöyle birşey olabilir kabaca; void insert_newnode(const string &data) { tnode *temp = new tnode; temp->content = data; temp->next = nullptr; temp->prev = tail_ptr; tail_ptr = tail_ptr->next = temp; } Ama bu kod c++ ça olmadı. tnode a bir constructor eklersen daha şık olur. tnode(const string &data) : content(data), next(nullptr) { } Bundan sonra yukarıdaki insert işleminin ilk 3 ifadesi tek ifadeye iner. tnode *temp = new tnode(data); Son olarak friend class lardan mümkün olduğu kadar kaçın. En son çare olsun. |
Şu önce 2'yi dene sonra da 3ten itibaren 2 artır çok iyi.Aklıma gelmemişti hiç deneyim onu çok saol. Bir de bu sayının kareköküne kadar denediğimizde asal sayı olup olmadığı anlaşılıyor.Ama karekök alma nasıl oluyor onu bilmiyorum.Bir de karekök aldıktan sonra en yakın tek tamsayıya da çevirmem gerekecek. |
Kare kök muhabbetini math.h kütüphanesini ekledikten sonra sqrt() la alabiliyosun, kullanımına gogıldan bakarsın. Dediğin diğer işlemleri de döngüye girmeden bir kaç satırda yaparsın, kolay gelsin |
#define'in amaci nedir? Mesela #define SIZE 100 gibi kullanim var. Bunu değişken olarakta yapabiliriz. Neden define? Birde ifndef gordum o nedir? |
Hocam #define'ın tam olarak ne farkı var bilmiyorum. Bişeyler desem de desteksiz söyleyecem kafa karışmasına sebep olabilir. #ifndef X eğer X define edilmemişse demek aynı header'ı birden fazla define etmemek için kullanılıyor bu muhabbet. Ayrıca diğer pre-processorlar için şurayı siyaret edebilirsin http://www.phanderson.com/C/preprocess.html |
değişken bellekte yer kaplar, adı üzerinde değiştirilebilir vs. macroda ise keyword'ü gördüğü yere karşılığını compile aşamasında koyar. yani #define SIZE = 100 deyip sonra int a = SIZE + 5 yazdığınızda, bu compilera int a = 100 + 5 olarak gidecektir. |
Tamamen yanlış bilgi. Bir kere #define ile bildirilen ifade ye keyword diyemeyiz. O bir identifier dır. İkincisi iş compiler a gelmeden önişlemci devreye girdiği için; #define SIZE 100 gibi bir ifade olduğunu varsayalım. Önişlemci kaynak dosya içinde bütün SIZE gördüğü yere 100 yazar. İş compiler a geldiğinde compiler ın bunların hiç birinden haberi bile yoktur. Makrolar ve compiler çok alakasız şeyler. Makroları gerçekleştiren önişlemcidir. |
merhabalar hoca bi ödev verdi yarım yamalak yapıyom ama bir türlü olmuyor 25kişilk bir grup düşünün o grup içerisinden rasgele birileri çıkacak ve o cıkacaklarında ismi ayrı bir yere yazılacak dedi hoca stringle tanımladım dizeleri oluşturdum şimdi yapmam gerekn ne yardım edebilirmisiniz izce çözüme çokmu uzagım ne eksık var hata olarak convert int diyo galiba Random rastgele = new Random(); rastgele.Next(0,5); string[] ad = new string[5]; ad[1] = "ali"; ad[2] = "serhan"; ad[3] = "rıdvan"; ad[4] = "mustafa"; ad[5] = "sabri"; for (int i = 0; i < 25; i++) { ad = rastgele.Next(0, 6); Console.WriteLine(ad); } |
merhabalar hoca bi ödev verdi yarım yamalak yapıyom ama bir türlü olmuyor 25kişilk bir grup düşünün o grup içerisinden rasgele birileri çıkacak ve o cıkacaklarında ismi ayrı bir yere yazılacak dedi hoca stringle tanımladım dizeleri oluşturdum şimdi yapmam gerekn ne yardım edebilirmisiniz izce çözüme çokmu uzagım ne eksık var hata olarak convert int diyo galiba @using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication7 { class Program { static void Main(string[] args) { Random rastgele = new Random(); rastgele.Next(0,5); string[] ad = new string[5]; ad[1] = ("ali"); ad[2] = "serhan"; ad[3] = "rıdvan"; ad[4] = "mustafa"; ad[5] = "sabri"; for (int i = 0; i < 6; i++) { ad = rastgele.Next(0, 6); Console.WriteLine(ad); } } } } |
Çok teşekkür ederim. |
kalıtım hakkında pek bilgim yok fakat bunu dene: d_linked_list *list1 = new d_linked_list(); int a; string b; cout << "Bir giris yapiniz:" << endl; cin >> b; list1->insert_newnode(list1->head_ptr,b); system("cls"); list1->show(); cin >> a; return 0; |
Arkadaslar perl konusu degil ama yeni konu acmaktansa bilenler olur diye burada soruyorum: Basit bir perl koduna ihtiyacim var ve daha önce hic perl kullanmadim. Elimdeki bir dosyada mesela 2. satirin 33-64 (33 ve 64 dahil yani toplam 32 karakter) arasindaki karakterlerini, 4. satirin 17-48 arasindaki 32 karakter ile degistirmem gerekiyor. Bunu yapmak icin bu belirli araliklardaki karakterlere nasil ulasacagimi ve degistirmek icin kullanacagim fonksiyonu bulamadim. Cevaplarinizi bekliyorum. Yardimci olursaniz sevinirim. Edit: substr() ile kolaylikla yapiliyormus... substr($lines[$i],16,32,substr($lines[$i+2],0,32)); |
Hangi gün dogdugunuzu merak edenlere gelsin bu programi kendim yazdim. using System; |
Arkadaşlar küçük bir yardım lütfen.... arkadaşlar klavyeden girdiğim karakter dizisinde ki tüm 'a'ları yok edip tekrar yazmasını istiyorum.. Mesela: 'bcadbhab' dizimiz ekranda 'bcdbhb' şeklinde yazılacak... ama benim yazdığım kodda 'bcddbhbb' şeklinde bir çıktı veriyor... atamadan önce bir for daha kullandım ama fayda etmedi.. ne yapmam gerekiyor.. #include<stdio.h> |
İşe yaradı teşekkür ederim. |
Yanlış bilgiler verip öğrenmeye çalışanları da yanlışa sürüklüyorsun. Yapma bunu. |
ben zaten c++ bilmiyorum sadece sorun olan yeri düzeltmeye çalıştım (diğer yerlere bakmadım, ve delete i bilerek yazmadım) kendi bilgilerime göre, eğer sen biliyorsan bana da öğretirsen memnun olurum. |
işe yarasa da bir bilene danışsan en iyisi olur. benim c++ hakkındaki bilgim az.Kodlarda da destructor a delete komutunu ilgili parametre ile gereken yere(genelde destructor) yazarsan iyi olur. |
Hocam orada örnek vermiş sinx şeklinde onu kullanabiliriz sanırım. Çünkü henüz string vb gibi yapıları görmedik. Pm attım özel mesajlarınıza bakarsanız sevinirim.
Bu mesajda bahsedilenler: @uozgu