Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
4171
Cevap
168259
Tıklama
3
Öne Çıkarma
Cevap: C/C++/C# Sorularınız Buraya. . .(GÜNCEL) (110. sayfa)
K
12 yıl
Yarbay

quote:

Orijinalden alıntı: uozgu

Yaklaşım methodlarıyla verilen fonksiyonun belirtilen parametrelere göre integralinin alınması istenilmiş.

Bunu yaparken farklı yaklaşım methodları için farklı fonksiyolar oluşturup alacağı parametreler belirlenecek.

iç içe(recursive) veya (for yada while) döngleriyle yine belirtilen küçüklükte kesitleri toplamı cinsinden integral alınacak. Tavsiyem for yada while kullanımı iç içe yapılırsa sorun çıktığında zahmet doğurur.

Burda esas açıklığa kavuşturulması gereken kullanıcı tanımlı fonksiyon programa nereden girecek? tahminim ekrandan alınacağı yönünde. o zaman girilen bu stringin fonksiyona dönüştürülmesi gerekmekte ki en zor kısımlarından biri burası. hem kullanıcı nasıl şeyler girebileceği hakkında sınırlanmalı hemde bunları programda nasıl anlayacağımızı bilmemiz lazım çünkü iç içe parantezler olabilir yine. Burada yakınsama için kullanılacak parametreler kolaylıkla ekrandan alınabilir.

sonrası döngünün çalışması ve sonucun ekrana yazılması. Yukarıdakiler çözldükten sonra onlara nazaran kolay bi kısım.


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
E
12 yıl
Çavuş

Merhaba. Ben yazdığım koddan anlayamadığım bir hata alıyorum. Önce kodları vereyim:

 
#include <iostream>

#include <string>

#include <stdlib.h>

using namespace std;

class tnode{

private:

string content;

tnode *prev;

tnode *next;

friend class d_linked_list;

};

class d_linked_list{

private:





public:

tnode head,tail;

tnode *head_ptr,*tail_ptr;

d_linked_list(){/*constructor*/

head_ptr=&head;

tail_ptr=&tail;

head_ptr->next=&tail;

tail_ptr->prev=&head;

}

bool is_empty(){

if(head_ptr->next==tail_ptr)
return true;
else
return false;

}

void insert_newnode(tnode *ptr,string text){

tnode *temp;

temp=new tnode();//yeni nodumuz oluşu ancak şuanda listemizle bir alakası yok

temp->content=text;// veri kısmını hemen yazıp aradan çıkaralım

temp->next=ptr->next; //ilk bağ kuruldu

temp->prev=ptr;// artık nodumuz kendisini listeye bağladık ancak liste henüz kendisini almadı

ptr->next=temp;//listeden ilk bag geldi

(temp->next)->prev=temp;// ekleme işlemi tamamlandı

}

void delete_node(tnode *ptr){

(ptr->prev)->next=ptr->next;

(ptr->next)->prev=ptr->prev;

delete ptr;

}

void show(){

tnode *ptr;

ptr=head_ptr->next;

while(ptr!=tail_ptr){

cout<< ptr->content << endl; ptr=ptr->next;

}
}
};

int main(){

d_linked_list list1;
int a;
string b;
cout << "Bir giris yapiniz:" << endl;
cin >> b;
d_linked_list::insert_newnode(*head_ptr,b);
system("cls");
d_linked_list::show();
cin >> a;


return 0;
}


head_ptr yi tanımlamadığımı söylüyor. aşağıya da hata mesajını yazayım:
 
C:\Users\ebubekir414\Desktop\deneme.cpp In function 'int main()':
107 32 C:\Users\ebubekir414\Desktop\deneme.cpp [Error] 'head_ptr' was not declared in this scope
109 21 C:\Users\ebubekir414\Desktop\deneme.cpp [Error] cannot call member function 'void d_linked_list::show()' without object


Yardımınız gerekiyor. Şimdiden teşekkür ederim.


Bu mesaja 1 cevap geldi.
G
12 yıl
Yarbay

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.




Bu mesajda bahsedilenler: @ebubekir.s
U
12 yıl
Yüzbaşı

quote:

Orijinalden alıntı: Mtntk

quote:

Orijinalden alıntı: uchiha69

Beyler programlamada yeniyim.Asal sayı bulma programı yaptım.Ama biraz verimsiz gibi geldi.Burada bu bilgilerle veya ek olarak for,do while,switch case kullanarak bunu nasıl daha verimli hale getirebilirim.8 basamaklı bir asal sayı girdim kastı çalışırken
Bir de önerebileceğiniz algoritma kitabı varsa söylerseniz sevinirim

#include<stdio.h> 
int main (void)

{
int a;
int b=2;
printf("Bir sayi giriniz:");
scanf("%d",&a);
while(a>=b)
{

if(a==b)
{
printf("\nGirdiginiz sayi asaldir.");
b++;
}

else
{ switch(a%b)

{case 0:printf("\nGirdiginiz sayi asal degildir.");
b=a+1;break;
default:b++;}

}
}

}


Hocam bildiğim kadarıyla switch case'in kullanımı çok fazla sabit durum olduğunda faydalı oluyo. Kodu hızlandırmak için benim aklıma ilk gelenler, döngüye girmeden 2ye bölünüyo mu onu kontrol et bölünüyo ve girilen sayı 2 değilse asal değildir desin. Döngünü 3ten başlat ve ikişer ikişer artır böylelikle sayıya daha hızlı yaklaşırsın. Ve yanlış hatırlamıyosam asal kontrolünde döngüyü girilen sayı/2 ye kadar döndürmen yeterli (hatta başta bunu kontrol ettiğin için /3 bile denenebilir) Benim aklıma gelenler bunlar. Kolay gelsin

Ş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.


Bu mesaja 1 cevap geldi.
M
12 yıl
Binbaşı

quote:

Orijinalden alıntı: uchiha69

quote:

Orijinalden alıntı: Mtntk

quote:

Orijinalden alıntı: uchiha69

Beyler programlamada yeniyim.Asal sayı bulma programı yaptım.Ama biraz verimsiz gibi geldi.Burada bu bilgilerle veya ek olarak for,do while,switch case kullanarak bunu nasıl daha verimli hale getirebilirim.8 basamaklı bir asal sayı girdim kastı çalışırken
Bir de önerebileceğiniz algoritma kitabı varsa söylerseniz sevinirim

#include<stdio.h> 
int main (void)

{
int a;
int b=2;
printf("Bir sayi giriniz:");
scanf("%d",&a);
while(a>=b)
{

if(a==b)
{
printf("\nGirdiginiz sayi asaldir.");
b++;
}

else
{ switch(a%b)

{case 0:printf("\nGirdiginiz sayi asal degildir.");
b=a+1;break;
default:b++;}

}
}

}


Hocam bildiğim kadarıyla switch case'in kullanımı çok fazla sabit durum olduğunda faydalı oluyo. Kodu hızlandırmak için benim aklıma ilk gelenler, döngüye girmeden 2ye bölünüyo mu onu kontrol et bölünüyo ve girilen sayı 2 değilse asal değildir desin. Döngünü 3ten başlat ve ikişer ikişer artır böylelikle sayıya daha hızlı yaklaşırsın. Ve yanlış hatırlamıyosam asal kontrolünde döngüyü girilen sayı/2 ye kadar döndürmen yeterli (hatta başta bunu kontrol ettiğin için /3 bile denenebilir) Benim aklıma gelenler bunlar. Kolay gelsin

Ş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



L
12 yıl
Yarbay

#define'in amaci nedir? Mesela #define SIZE 100 gibi kullanim var. Bunu değişken olarakta yapabiliriz. Neden define? Birde ifndef gordum o nedir?



< Bu ileti mobil sürüm kullanılarak atıldı >
Bu mesaja 2 cevap geldi.
M
12 yıl
Binbaşı

quote:

Orijinalden alıntı: GhilleintheMist

#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



K
12 yıl
Yüzbaşı

quote:

Orijinalden alıntı: GhilleintheMist

#define'in amaci nedir? Mesela #define SIZE 100 gibi kullanim var. Bunu değişken olarakta yapabiliriz. Neden define? Birde ifndef gordum o nedir?

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.


Bu mesaja 1 cevap geldi.
4
12 yıl
Teğmen

quote:

Orijinalden alıntı: kirmik

quote:

Orijinalden alıntı: GhilleintheMist

#define'in amaci nedir? Mesela #define SIZE 100 gibi kullanim var. Bunu değişken olarakta yapabiliriz. Neden define? Birde ifndef gordum o nedir?

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.





< Bu mesaj bu kişi tarafından değiştirildi 4kalan -- 31 Ekim 2013; 17:47:51 >

A
12 yıl
Teğmen

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);
}



A
12 yıl
Teğmen

quote:

Orijinalden alıntı: £XE

Arkadaşlar buraya böyle bir konu açma ihtiyacı duydum. C/C++/C# da takıldığınız yerler olursa bu konu altında paylaşın. Ben ve diğer arkadaşlar elimizden geldikçe yardımcı olalım.

[size=3]NOT : Bana şu programı yazabilir misiniz ? Tarzında sorulara cevap vermeyeceğim. Önce kendiniz yapabildiğiniz kadar yapın, takıldığınız yerlerde kodu koyup sorun yardımcı olalım..





İyi Çalışmalar.

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);
}
}
}
}


Bu mesaja 1 cevap geldi.
E
12 yıl
Çavuş

Çok teşekkür ederim.




Bu mesajda bahsedilenler: @elektro_gadget
F
12 yıl
Binbaşı

quote:

Orijinalden alıntı: ebubekir.s

Merhaba. Ben yazdığım koddan anlayamadığım bir hata alıyorum. Önce kodları vereyim:

 
#include <iostream>

#include <string>

#include <stdlib.h>

using namespace std;

class tnode{

private:

string content;

tnode *prev;

tnode *next;

friend class d_linked_list;

};

class d_linked_list{

private:





public:

tnode head,tail;

tnode *head_ptr,*tail_ptr;

d_linked_list(){/*constructor*/

head_ptr=&head;

tail_ptr=&tail;

head_ptr->next=&tail;

tail_ptr->prev=&head;

}

bool is_empty(){

if(head_ptr->next==tail_ptr)
return true;
else
return false;

}

void insert_newnode(tnode *ptr,string text){

tnode *temp;

temp=new tnode();//yeni nodumuz oluşu ancak şuanda listemizle bir alakası yok

temp->content=text;// veri kısmını hemen yazıp aradan çıkaralım

temp->next=ptr->next; //ilk bağ kuruldu

temp->prev=ptr;// artık nodumuz kendisini listeye bağladık ancak liste henüz kendisini almadı

ptr->next=temp;//listeden ilk bag geldi

(temp->next)->prev=temp;// ekleme işlemi tamamlandı

}

void delete_node(tnode *ptr){

(ptr->prev)->next=ptr->next;

(ptr->next)->prev=ptr->prev;

delete ptr;

}

void show(){

tnode *ptr;

ptr=head_ptr->next;

while(ptr!=tail_ptr){

cout<< ptr->content << endl; ptr=ptr->next;

}
}
};

int main(){

d_linked_list list1;
int a;
string b;
cout << "Bir giris yapiniz:" << endl;
cin >> b;
d_linked_list::insert_newnode(*head_ptr,b);
system("cls");
d_linked_list::show();
cin >> a;


return 0;
}


head_ptr yi tanımlamadığımı söylüyor. aşağıya da hata mesajını yazayım:
 
C:\Users\ebubekir414\Desktop\deneme.cpp In function 'int main()':
107 32 C:\Users\ebubekir414\Desktop\deneme.cpp [Error] 'head_ptr' was not declared in this scope
109 21 C:\Users\ebubekir414\Desktop\deneme.cpp [Error] cannot call member function 'void d_linked_list::show()' without object


Yardımınız gerekiyor. Şimdiden 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;


Bu mesaja 3 cevap geldi.
R
12 yıl
Yarbay

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));





< Bu mesaj bu kişi tarafından değiştirildi RapscallioN -- 31 Ekim 2013; 22:27:28 >
Bu mesaja 1 cevap geldi.
M
12 yıl
Yarbay

Hangi gün dogdugunuzu merak edenlere gelsin bu programi kendim yazdim.
using System; 

namespace Dogum
{
class App
{
public static void Main()
{
int day, month, year;

Console.Write("Gün:");
day = int.Parse(Console.ReadLine());
Console.Write("Ay:");
month = int.Parse(Console.ReadLine());
Console.Write("Yıl:");
year = int.Parse(Console.ReadLine());

DateTime dt = new DateTime(year, month, day);
string[] days = { "Pazar", "Pazartesi", "Salı", "Çarşamba", "Perşembe", "Cuma", "Cumartesi" };

Console.WriteLine(days[(int)dt.DayOfWeek]);
}
}
}


Bu mesaja 1 cevap geldi.
A
12 yıl
Onbaşı

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> 
#include<stdlib.h>

int main()
{
char krt[100];
int i,j;
printf("Karakter dizisini giriniz..:");
scanf("%s",krt);

for(i=0; krt[i];i++){
if(krt[i]=='a'||krt[i]=='A')


}

printf("%s",krt);
system("pause");
return 0;




}



E
12 yıl
Çavuş

İşe yaradı teşekkür ederim.


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @Fatih54102
G
12 yıl
Yarbay

quote:

Orijinalden alıntı: Fatih54102

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;

Yanlış bilgiler verip öğrenmeye çalışanları da yanlışa sürüklüyorsun. Yapma bunu.


Bu mesaja 1 cevap geldi.
F
12 yıl
Binbaşı

quote:

Orijinalden alıntı: elektro_gadget

quote:

Orijinalden alıntı: Fatih54102

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;

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.



F
12 yıl
Binbaşı

quote:

Orijinalden alıntı: ebubekir.s

İşe yaradı teşekkür ederim.

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.





< Bu mesaj bu kişi tarafından değiştirildi Fatih54102 -- 1 Kasım 2013; 16:50:54 >