Arama butonu
Bu konudaki kullanıcılar: 4 misafir, 2 mobil kullanıcı
4171
Cevap
168409
Tıklama
3
Öne Çıkarma
Cevap: C/C++/C# Sorularınız Buraya. . .(GÜNCEL) (24. sayfa)
£
13 yıl
Yüzbaşı
Konu Sahibi

quote:

Orijinalden alıntı: knksmile

Sorum şu:
bir internet sitesini nasıl açtırabiliriz ve içinde belirli butonu nasıl tıklattırabiliriz?
derleyicim DEV C++.

Bilmiyorum belkide size göre basit bir soru ancak şuanda c++ derslerinin tamamını bitirmedim 10 ders falan gördüm 30 ders kaldı hemen hemen.
MS-Dos'da basit bir proje yapacaktımda onun için giriştim ders öğrenimine ancak biraz kastı beni zor geliyor doğrusu :)


İnternet işlemleri için C++ Socket programlama öğrenmek gerekirki, öncelikle C++'a hakim olman gerekiyor. Acele etme derim.



£
13 yıl
Yüzbaşı
Konu Sahibi

quote:

Orijinalden alıntı: Bay_HaKaN

Merhaba arkadaşlar

C# dilinde küçük çaplı bir kayıt defteri oluşturdum ve iyice süslerinide yaptım access 2007 Db li olarak sorunsuz çalışıyor ve parolalı girişinide ihmal etmedim

yapmak istediğimi bir türlü nette bulamadım,

benim şuan var olan kullanıcı girişimi denetleyen satır;

if (textBox1.Text.Trim().Tolower() == "admin" && textBox2.Text.Trim() == "root")


şimdi yukarıdaki kodda kullanıcı adı yani textbox 1 deki isim değişken olsa ve mesela admin yerine hakan yazsam ve şifremde hakan' a karşılık gelen parola olsa hem admın hemde hakan kullanıcı adı ıle farklı şifreler kullanarak giriş yapsam diye düşünüyorum. Acaba böyle birşey yapmak mümkünmü?


Bugun gördüğüm bir örnekten esinlenerek if satırını iki kez yazdım ama program bu sefer yanıt bile vermedi yani demek istediğim

if (textBox1.Text.Trim().ToLower() == "admin" && textBox2.Text.Trim() == "root")
if (textBox1.Text.Trim().ToLower() == "hakan" && textBox2.Text.Trim() == "1234")


{
kullanıcı = textBox1.Text;
this.Hide();
frm5.labEl2.Text = "Hoşgeldiniz Sayın " + kullanıcı;
frm13.Show();
}
else
{
MessageBox.Show(" Kullanıcı Adınızı Veya Şifrenizi kontrol ediniz ", " Uyarı ", MessageBoxButtons.OK, MessageBoxIcon.Error);
textBox1.Clear();
textBox2.Clear();
}

}

bu yapmak istediğim elementi nasıl uydurabilirim kitabına ?


ilgi ve alakanız için teşekkür ederim

if (textBox1.Text.Trim().ToLower() == "admin" && textBox2.Text.Trim() == "root")
if (textBox1.Text.Trim().ToLower() == "hakan" && textBox2.Text.Trim() == "1234")

yerine, parantezler kullanarak sorunu çözmeye çalışabilirsin veya bağlaç kullanabilirsin şu şekilde.

if (textBox1.Text.Trim().ToLower() == "admin" && textBox2.Text.Trim() == "root") || (textBox1.Text.Trim().ToLower() == "hakan" && textBox2.Text.Trim() == "1234")



£
13 yıl
Yüzbaşı
Konu Sahibi

quote:

Orijinalden alıntı: veliusta

Herkeze Merhaba Arkadaşlar.
Visual Basic 6.0 öğrenmeye karar verdim. ama istediğim gibi uygulamaları bir türlü internette bulamadım.İnşallah burada sizin yardımınız ile öğreneceğim.

Yapmak istediğim tam olarak şu arkadaşlar;

< Resime gitmek için tıklayın >
http://img2.ressim.net/out.php/i6205019_lamba.jpg

Programı yaptım sadece komutları yazmak kalıyor, nasıl yazıldığını bilmediğim için buraya yazıyorum.Bir arkadaş yaparsa çok mutlu olurum...

İndirmek için: http://www.mediafire.com/?xuckci0hs921wai

Not: Arkadaşlar bu program ödev filan değildir. Sadece öğrenmek istiyorum nasıl yapıldığını. Kodları nasıl olduğuna bakarak programı geliştirmek istiyorum. Şimdiden teşekkürler. :)
KONUYU BURAYA TAŞIDIM.. hhttp://forum.donanimhaber.com/m_66047252/tm.htm

Hazır kod yazmıyoruz. Bunu yaparsak size yararımızdan çok zararımız olacaktır.



£
13 yıl
Yüzbaşı
Konu Sahibi

quote:

Orijinalden alıntı: Bay_HaKaN

Merhaba Arkadaşlar

C# projemde "Kullanıcı adı + Parola" girişi oluşturdum. Yanlız deneme halinde olduğundan iki adet kullanıcı adını ve şifresini ekledim

kullanıcı adı 1 : admin
Şifresi : root

Kullanıcı adı 2: hakan
şifresi : 1234


şimdi yapmak istediğim bu programı setup haline getirdikten sonra kullanılmaya başlandığında kullanıcı istediği zaman kendi şifresini değiştirebilmeli

misal bir form acılacak ve

eski şifre
yeni şifre
yeni şifre tekrar

tamam vazgeç

şeklinde ve bundan sonra yeni giriği şifreyi kullanmasını istiyorum.

bunu nasıl sağlarım? öncelikle login formuna ait bir Db mı oluşturmalıyım ?

İlginiz için şimdiden teşşekkür ederim

Evet. OleDb ile yapılabilir. Kullanıcıadı1|Şifre1, Kullanıcıadı2|Şifre2 diye 4 tane sütun koyarsın. Textbox'larda yani kullanıcının gireceği bilgileri, Sql komutları ile Database'ye aktarabilirsin. Ardından if-else kontrolüyle sadece yeni şifre ile girilmeyi sağlayabilirsin.



N
13 yıl
Yüzbaşı

quote:

Orijinalden alıntı: £XE

quote:

Orijinalden alıntı: invertal

arkadaşlar merhaba bir sorum olacak ?

Bu yıl derslerde c++ ve c# görcez .

Kitap olarak ne önerirsiniz ? , yada videolu anlatım izleyebileceğim ?

çünkü hoca derslere başlamadan bir aşinalığım olsun yeter .

Ayrıca c bilgim var bu diller zor mudur ?

C bilgin varsa C++ Ve C# 'ı rahatça öğrenirsin.

C++ için Muhammet Mastar-Süha Eriş'in kitabını öneririm. C# içinse Volkan Aktaş'ın kitapları olabilir.

kardeş teşekkür ederim cevaınız için.

Cevap gelmeyince bende gittim Sefer Algan'ın kitabını aldım .İyiki'de almışım herşeyi temelden anlatıyor.

Kodlara baktığımda gerçekten c ye benzer demeyim ama c bilen birisi zorlanmaz bence


Bu mesaja 1 cevap geldi.
£
13 yıl
Yüzbaşı
Konu Sahibi

S
13 yıl
Binbaşı

quote:

Orijinalden alıntı: £XE

Rica ederim. Kolay gelsin.

Hocam aşağıdaki kodda nerede hata var ucrethesaplaya undifened reference diyor , nedenini bir türlü çözemedim .

#include <stdio.h> 
#include <stdlib.h>

float ucrethesapla(float); //fonksiyon prototipi

int main()
{
float asilsaat,ucret;
float saat1,saat2,saat3;
int sayac;

printf("park saatini giriniz");
scanf("%f%f%f",&saat1,&saat2,&saat3);

printf("%2s%10s%15s\n","Araba","Saat","Ucret");

for(sayac=1;sayac<=3;sayac++){

if(sayac==1){
asilsaat=saat1;}

else if(sayac==2){
asilsaat=saat2;}

else{
asilsaat=saat3;}

printf("%2.d%10.1f%15.2f\n",sayac,asilsaat,ucrethesapla(asilsaat));

}

float ucrethesapla(float n){

if(n<3){
ucret=2;
return ucret; }
else if(n==24){
ucret=10;
return ucret;}
else{
ucret=(n-3)*0.5+2;
return ucret;}

}

return 0;
}


Bu mesaja 2 cevap geldi.
£
13 yıl
Yüzbaşı
Konu Sahibi

quote:

Orijinalden alıntı: strahd_von_zarovich

quote:

Orijinalden alıntı: £XE

Rica ederim. Kolay gelsin.

Hocam aşağıdaki kodda nerede hata var ucrethesaplaya undifened reference diyor , nedenini bir türlü çözemedim .

#include <stdio.h> 
#include <stdlib.h>

float ucrethesapla(float); //fonksiyon prototipi

int main()
{
float asilsaat,ucret;
float saat1,saat2,saat3;
int sayac;

printf("park saatini giriniz");
scanf("%f%f%f",&saat1,&saat2,&saat3);

printf("%2s%10s%15s\n","Araba","Saat","Ucret");

for(sayac=1;sayac<=3;sayac++){

if(sayac==1){
asilsaat=saat1;}

else if(sayac==2){
asilsaat=saat2;}

else{
asilsaat=saat3;}

printf("%2.d%10.1f%15.2f\n",sayac,asilsaat,ucrethesapla(asilsaat));

}

float ucrethesapla(float n){

if(n<3){
ucret=2;
return ucret; }
else if(n==24){
ucret=10;
return ucret;}
else{
ucret=(n-3)*0.5+2;
return ucret;}

}

return 0;
}


Herşeye bakmadım zamanım yoktu ama fonksiyonlar şu şekilde tanımlanmalı

int fonksiyon(){};

float ucrethesapla(){}; şeklinde denermisin



C
13 yıl
Yüzbaşı

quote:

Orijinalden alıntı: strahd_von_zarovich

quote:

Orijinalden alıntı: £XE

Rica ederim. Kolay gelsin.

Hocam aşağıdaki kodda nerede hata var ucrethesaplaya undifened reference diyor , nedenini bir türlü çözemedim .

#include <stdio.h> 
#include <stdlib.h>

float ucrethesapla(float); //fonksiyon prototipi

int main()
{
float asilsaat,ucret;
float saat1,saat2,saat3;
int sayac;

printf("park saatini giriniz");
scanf("%f%f%f",&saat1,&saat2,&saat3);

printf("%2s%10s%15s\n","Araba","Saat","Ucret");

for(sayac=1;sayac<=3;sayac++){

if(sayac==1){
asilsaat=saat1;}

else if(sayac==2){
asilsaat=saat2;}

else{
asilsaat=saat3;}

printf("%2.d%10.1f%15.2f\n",sayac,asilsaat,ucrethesapla(asilsaat));

}

float ucrethesapla(float n){

if(n<3){
ucret=2;
return ucret; }
else if(n==24){
ucret=10;
return ucret;}
else{
ucret=(n-3)*0.5+2;
return ucret;}

}

return 0;
}


Parantezleri ve boşlukları düzenli koymadığından kaynaklanıyor. Ayrıca ucret değişkenini fonksiyon içinde değil main de tanımlamışsın. onu fonksiyona taşıman gerek. Ama "ucret" olmadan da yapabilirsin şu şekilde:
Forumda boşluklar biraz farklı çıkıyor, kopyalayıp programa yapıştırınca düzgün oluyor.
 
#include <stdio.h>

float ucrethesapla(float); //fonksiyon prototipi

int main()
{
float asilsaat;
float saat1, saat2, saat3;
int sayac;

printf("park saatini giriniz\n");
scanf("%f%f%f",&saat1, &saat2, &saat3);

printf("%2s%10s%15s\n","Araba","Saat","Ucret");

for(sayac=1;sayac<=3;sayac++)
{
if(sayac==1)
{
asilsaat=saat1;
}
else if(sayac==2)
{
asilsaat=saat2;
}
else
{
asilsaat=saat3;
}
printf("%2.d%10.1f%15.2f\n",sayac, asilsaat, ucrethesapla(asilsaat));
}

return 0;
}

float ucrethesapla(float n)
{
if(n<3)
{
return 2;
}
else if(n==24)
{
return 10;
}
else
{
return (n-3)*0.5+2;
}
}






< Bu mesaj bu kişi tarafından değiştirildi crshr -- 24 Eylül 2012; 12:34:57 >
Bu mesaja 2 cevap geldi.
V
13 yıl
Yüzbaşı

Büyük ihtimal yardım etmiceksiniz veya böyle bir kod yok.

< Resime gitmek için tıklayın >

Bir haftadır bir proje üzerinde çalışıyorum. Öğrenmek açısından sorunu küçük bir projeye aktardım.

Öğrenmek istediklerim;

1-Formda 2 Buton var görüyorsunuz, projeyi çalıştırdığımızda butonlar arası geçiş yapabiliriyoruz; tab tuşu veya up, down tuşları ile. bunu nasıl kapatabiliriz..
Kapatma nedenim ise; Butonun birine basılı tutulup (Space veya mause ile) diğer butona geşiş (tab veya yön tuşları) yaptığımzda lamba sönmüyor...

2-Birde 1. ve 2. Tuşlar lambları yakıyor. Bu tuşlara bastığımızda butona basılmış gibi olsun (gömülsün.)

örnek:
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKey1 Then Buton1.Click = True
End Sub

Kırmızı yere uygun kod varmıdır?

Projenin son hali :http://www.mediafire.com/download.php?nhs1c5gn6cil810





< Bu mesaj bu kişi tarafından değiştirildi veliusta -- 24 Eylül 2012; 23:14:54 >

S
13 yıl
Binbaşı

quote:

Orijinalden alıntı: crshr

quote:

Orijinalden alıntı: strahd_von_zarovich

quote:

Orijinalden alıntı: £XE

Rica ederim. Kolay gelsin.

Hocam aşağıdaki kodda nerede hata var ucrethesaplaya undifened reference diyor , nedenini bir türlü çözemedim .

#include <stdio.h> 
#include <stdlib.h>

float ucrethesapla(float); //fonksiyon prototipi

int main()
{
float asilsaat,ucret;
float saat1,saat2,saat3;
int sayac;

printf("park saatini giriniz");
scanf("%f%f%f",&saat1,&saat2,&saat3);

printf("%2s%10s%15s\n","Araba","Saat","Ucret");

for(sayac=1;sayac<=3;sayac++){

if(sayac==1){
asilsaat=saat1;}

else if(sayac==2){
asilsaat=saat2;}

else{
asilsaat=saat3;}

printf("%2.d%10.1f%15.2f\n",sayac,asilsaat,ucrethesapla(asilsaat));

}

float ucrethesapla(float n){

if(n<3){
ucret=2;
return ucret; }
else if(n==24){
ucret=10;
return ucret;}
else{
ucret=(n-3)*0.5+2;
return ucret;}

}

return 0;
}


Parantezleri ve boşlukları düzenli koymadığından kaynaklanıyor. Ayrıca ucret değişkenini fonksiyon içinde değil main de tanımlamışsın. onu fonksiyona taşıman gerek. Ama "ucret" olmadan da yapabilirsin şu şekilde:
Forumda boşluklar biraz farklı çıkıyor, kopyalayıp programa yapıştırınca düzgün oluyor.
 
#include <stdio.h>

float ucrethesapla(float); //fonksiyon prototipi

int main()
{
float asilsaat;
float saat1, saat2, saat3;
int sayac;

printf("park saatini giriniz\n");
scanf("%f%f%f",&saat1, &saat2, &saat3);

printf("%2s%10s%15s\n","Araba","Saat","Ucret");

for(sayac=1;sayac<=3;sayac++)
{
if(sayac==1)
{
asilsaat=saat1;
}
else if(sayac==2)
{
asilsaat=saat2;
}
else
{
asilsaat=saat3;
}
printf("%2.d%10.1f%15.2f\n",sayac, asilsaat, ucrethesapla(asilsaat));
}

return 0;
}

float ucrethesapla(float n)
{
if(n<3)
{
return 2;
}
else if(n==24)
{
return 10;
}
else
{
return (n-3)*0.5+2;
}
}



Ucreti global yaptım sonradan değiştirmeyi unutmuşum burada , parantez ve boşlukları anlamadım ? böyle bir şey mi var C de ? aynı şeyi yazmışız.


Bu mesaja 1 cevap geldi.
S
13 yıl
Binbaşı

quote:

Orijinalden alıntı: crshr

Tamam buldum hocam main in süslü parentezini garip bir şekilde en sona koyup görmemişim.


Bu mesaja 1 cevap geldi.
S
13 yıl
Binbaşı

Konu canlansın biraz , mükemmel sayıları(kendisi hariç çarpanlarının toplamı kendisine eşit olan sayı) yazan bir program yazdım iki tane sorum var , birincisi çağırdığım fonksiyonda toplam bolunene eşit değilse boş göndermemim yolu var mı , bilmediğimden 0 döndürüp bir daha eleme işlemi yapmak zorunda kaldım . İkinci sorum int in uzunluğu mu yetmiyor yoksa cidden işlemciyi zorlayabilir mi? Sınırı 1milyar yaptım, en son 8128 i yazdırıyor sonraki değer 35milyon lu bir değer işlemci harıl harıl çalışıyor ama bir şey yazdırmıyor en azından ilk 5 dakikada yazdırmadı.

#include <stdio.h> 
#include <stdlib.h>

int mukemmel(int);
int sinir,sayi,bolunen=0,sonuc;

int main()
{
printf("sayiyi giriniz\n");
scanf("%d",&sinir);

for(sayi=2;sayi<sinir;sayi++)
{
sonuc=mukemmel(sayi);
if(sonuc!=0)
printf("%d\n",sonuc);
}

fflush(stdin);
getchar();
return 0;
}

long int mukemmel(long int bolunen){

long int sayac,toplam;

toplam=0;

for(sayac=1;sayac<bolunen;sayac++){
if((bolunen%sayac)==0)
{
toplam+=sayac;
}
}
if(toplam==bolunen)
{
return bolunen;
}
else
{
return 0;
}
}





< Bu mesaj bu kişi tarafından değiştirildi strahd_von_zarovich -- 27 Eylül 2012; 22:05:15 >
Bu mesaja 1 cevap geldi.
C
13 yıl
Yüzbaşı

quote:

Orijinalden alıntı: strahd_von_zarovich

Konu canlansın biraz , mükemmel sayıları(kendisi hariç çarpanlarının toplamı kendisine eşit olan sayı) yazan bir program yazdım iki tane sorum var , birincisi çağırdığım fonksiyonda toplam bolunene eşit değilse boş göndermemim yolu var mı , bilmediğimden 0 döndürüp bir daha eleme işlemi yapmak zorunda kaldım . İkinci sorum int in uzunluğu mu yetmiyor yoksa cidden işlemciyi zorlayabilir mi? Sınırı 1milyar yaptım, en son 8128 i yazdırıyor sonraki değer 35milyon lu bir değer işlemci harıl harıl çalışıyor ama bir şey yazdırmıyor en azından ilk 5 dakikada yazdırmadı.

Boş gönderme diye bir şey yok, int dönüyorsan mutlaka bir int dönmelisin. Yaptığın gibi 0 dönmek en mantıklısı.

"int" ile "long int" aynı (4 byte) neredeyse tüm günümüz bilgisayarlarında. Hatta "long int" ile "long" da aynı şey. 8 byte yer için "long long" kullanabilirsin ama sorun bundan kaynaklanmıyor çünkü "int" zaten 2 milyara kadar doğru sonuç verir. Sorun yavaşlık, bunu da daha iyi bir algoritma ile çözebilirsin ancak. Fonksiyon kullanmamak da işi biraz hızlandırır.

Fonksiyon prototipini "int" olarak unutmuşsun. Ayrıca "sayi" bir "int" olduğundan fonksiyon "long int" beklese de ona bir "int" gönderdiğinden "long int" in bir avantajı kalmıyor. "sayi", "sonuc", "bolunen" bunların hepsi "long int" olmalı. Ama dediğim gibi "long int" ile "int" çoğu zaman aynı zaten.

"fflush(stdin);" bu fonksiyonun yaptığı iş tanımlı olmadığından kullanmaman daha iyi. Hafızada kalanları temizlemek için "while ((sayi = getchar()) != EOF && sayi != '\n');" bu satırı kullanabilirsin. "sayi" değişkeninin char olması şart değil. int de olabilir.

"if(sonuc!=0)" ile "if(sonuc)" aynı şey.

"sonuc" değişkeni gereksiz. "if(mukemmel(sayi)) printf("%d\n", sayi);"

Olabildiğince global değişken kullanmamaya çalış, hatalara sebep olabilir.

Daha iyi algoritma için bakıcam akşam


Bu mesaja 1 cevap geldi.
S
13 yıl
Binbaşı

quote:

Orijinalden alıntı: crshr

quote:

Orijinalden alıntı: strahd_von_zarovich

Konu canlansın biraz , mükemmel sayıları(kendisi hariç çarpanlarının toplamı kendisine eşit olan sayı) yazan bir program yazdım iki tane sorum var , birincisi çağırdığım fonksiyonda toplam bolunene eşit değilse boş göndermemim yolu var mı , bilmediğimden 0 döndürüp bir daha eleme işlemi yapmak zorunda kaldım . İkinci sorum int in uzunluğu mu yetmiyor yoksa cidden işlemciyi zorlayabilir mi? Sınırı 1milyar yaptım, en son 8128 i yazdırıyor sonraki değer 35milyon lu bir değer işlemci harıl harıl çalışıyor ama bir şey yazdırmıyor en azından ilk 5 dakikada yazdırmadı.

Boş gönderme diye bir şey yok, int dönüyorsan mutlaka bir int dönmelisin. Yaptığın gibi 0 dönmek en mantıklısı.

"int" ile "long int" aynı (4 byte) neredeyse tüm günümüz bilgisayarlarında. Hatta "long int" ile "long" da aynı şey. 8 byte yer için "long long" kullanabilirsin ama sorun bundan kaynaklanmıyor çünkü "int" zaten 2 milyara kadar doğru sonuç verir. Sorun yavaşlık, bunu da daha iyi bir algoritma ile çözebilirsin ancak. Fonksiyon kullanmamak da işi biraz hızlandırır.

Fonksiyon prototipini "int" olarak unutmuşsun. Ayrıca "sayi" bir "int" olduğundan fonksiyon "long int" beklese de ona bir "int" gönderdiğinden "long int" in bir avantajı kalmıyor. "sayi", "sonuc", "bolunen" bunların hepsi "long int" olmalı. Ama dediğim gibi "long int" ile "int" çoğu zaman aynı zaten.

"fflush(stdin);" bu fonksiyonun yaptığı iş tanımlı olmadığından kullanmaman daha iyi. Hafızada kalanları temizlemek için "while ((sayi = getchar()) != EOF && sayi != '\n');" bu satırı kullanabilirsin. "sayi" değişkeninin char olması şart değil. int de olabilir.

"if(sonuc!=0)" ile "if(sonuc)" aynı şey.

"sonuc" değişkeni gereksiz. "if(mukemmel(sayi)) printf("%d\n", sayi);"

Olabildiğince global değişken kullanmamaya çalış, hatalara sebep olabilir.

Daha iyi algoritma için bakıcam akşam

Teşekkürler hocam , normalde prototipte long int di ama bir şey farketmeyince int lere çevirdim hepsini burada düzeltmeyi unutmuşum. Pause yaptırsam taşınabilirlik azalıyor , getchar yapsam ayrı dert , söylediğiniz şekilde kullanıyım bundan sonra, kitap zaten fonksiyon ile yapın demiş ondan dolayı pek hızlandırma şansı da yok heralde .


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

quote:

Orijinalden alıntı: strahd_von_zarovich


Global değişkenleri unutmanı öneririm. Fonksiyonları tek başına çalışacak şekilde yazmalısın. Bir fonksiyon global değişkene erişiyorsa ona bağımlı hale gelir. Bir değişkeni (nesneyi) fonksiyonlar arasında paylaştırmak için parametre olarak gönder.

Her koda prototip ekliyorsun, buna gerek yok. Çağrılan fonksiyonu çağıranın üzerine koyman yeterli. Hatta yeni derleyiciler için bu da gereksiz.

Bir algoritma ne kadar basit (düz mantık) ise o kadar yavaş çalışır. Matematikçiler her zaman bir problemin en kısa çözümünü bulmaya çalışırlar. Araştırırsan problemin en verimli algoritmasını bulabilirsin. Bu şekilde alıştırma yaparken önemli değil ama gerçek hayatta düz mantık olmaz. Yoksa basit bir muhasebe türü program bile 1000 müşteride yavaşlar hale gelebilir. Örnek olarak diyelim ki 1 milyon nesnen var. Bunların arasında doğrusal arama yaparsan ortalama 500.000 karşılaştırma yapman gerekir. Fakat ikili aramada en fazla 20.


Bu mesaja 1 cevap geldi.
S
13 yıl
Binbaşı

quote:

Orijinalden alıntı: elektro_gadget

quote:

Orijinalden alıntı: strahd_von_zarovich


Global değişkenleri unutmanı öneririm. Fonksiyonları tek başına çalışacak şekilde yazmalısın. Bir fonksiyon global değişkene erişiyorsa ona bağımlı hale gelir. Bir değişkeni (nesneyi) fonksiyonlar arasında paylaştırmak için parametre olarak gönder.

Her koda prototip ekliyorsun, buna gerek yok. Çağrılan fonksiyonu çağıranın üzerine koyman yeterli. Hatta yeni derleyiciler için bu da gereksiz.

Bir algoritma ne kadar basit (düz mantık) ise o kadar yavaş çalışır. Matematikçiler her zaman bir problemin en kısa çözümünü bulmaya çalışırlar. Araştırırsan problemin en verimli algoritmasını bulabilirsin. Bu şekilde alıştırma yaparken önemli değil ama gerçek hayatta düz mantık olmaz. Yoksa basit bir muhasebe türü program bile 1000 müşteride yavaşlar hale gelebilir. Örnek olarak diyelim ki 1 milyon nesnen var. Bunların arasında doğrusal arama yaparsan ortalama 500.000 karşılaştırma yapman gerekir. Fakat ikili aramada en fazla 20.

Koduma bakınca gerçekten çok gereksiz kullanmışım , hiç gerek yokmuş , global kullanmamın nedeni aslında daha güvenilir olduğunu düşünmemdi istediğim gibi fonksiyonlar arasında hata almadan kullanabilirim şeklinde düşünmüştüm. Bundan sonra kullanmıyım , prototip eklemek bana da garip geliyor ama kitap kontrol etmeye yardımcı olduğu için kullanmayı önermiş.

Çok teşekkür ederim hocam gene güzel önerileriniz için.


Bu mesaja 1 cevap geldi.
S
13 yıl
Binbaşı

Kümeden rasgele sayı seçen ve ekrana yazdıran bir fonksiyon yazın demiş , sayılar 0 2 4 6 8 , ben bunu algoritmayla mı yapıcam , yoksa rand ın bir özelliğini kullanarak mı ?


Bu mesaja 2 cevap geldi.
T
13 yıl
Yüzbaşı

Beyler pascal üçgeni yapma üzerine bir ödevim var. Kodu genel olarak yazıyorum ancak benim ihtiyacım olan satırı verene kadar program kafayı yiyor. max 50. satırı falan istediğimde düzgün sonuç alabiliyorum. İhtiyacım olan 1500-2000 gibi satırlardaki değerleri almak.
( C++ )





< Bu mesaj bu kişi tarafından değiştirildi TeaTone -- 30 Eylül 2012; 15:26:10 >
Bu mesaja 1 cevap geldi.
-
13 yıl
Yüzbaşı

quote:

Orijinalden alıntı: TeaTone

Beyler pascal üçgeni yapma üzerine bir ödevim var. Kodu genel olarak yazıyorum ancak benim ihtiyacım olan satırı verene kadar program kafayı yiyor. max 50. satırı falan istediğimde düzgün sonuç alabiliyorum. İhtiyacım olan 1500-2000 gibi satırlardaki değerleri almak.
( C++ )

Kodu yazarsan buraya yardımcı olabiliriz. Hatanın nerede olduğunu kodu görmeden tahmin edemeyiz.
Ama şöyle bir cevap vereyim. 1500. satırı istersen program 1500'ün faktöriyelini alacak bu da büyük bir sayı eder.
Senin tanımladığın değişken tipi int ise bunu tutamaz. Ona göre değişken tipi kullanman gerekiyor.
Galiba burada da hazır kod vermek yasak bence de en doğrusu bu.





< Bu mesaj bu kişi tarafından değiştirildi -Source- -- 30 Eylül 2012; 16:08:59 >
Bu mesaja 1 cevap geldi.