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.
|
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 |
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. |
Tamam buldum hocam main in süslü parentezini garip bir şekilde en sona koyup görmemişim. ![]() |
Konu canlansın biraz ![]() #include <stdio.h> |
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 ![]() ![]() |
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. ![]() |
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ı ? |
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. |
Ya zaten sorunum bu gibi gözüküyor unsigned int , double falan hepsini denedim ancak o sayılarıda aşıyor anlaşılan. Bu sorunu nasıl çözebileceğimi bilmiyorum. |
Bu tür büyük sayılar için özel kütüphaneler var onları kullanabilirsin. Arama motorlarına BigInteger yazarsan çıkarlar. Eğer derleyicin c++11 desteklilyorsa unsigned long long kullabilirsin. Onda da en fazla tutabileceğin sayı 18446744073709551615 dir. |
Başka bir siteden bir kütüphane buldum ama onu nasıl ekleyeceğimi anlayamadım visual studio 2010 kullanıyorum. |
Küme dediğin dizi herhalde. Dizi 10 elemanlı olsun." int sayi = rand() % 10 " diyerek 0,..,9 arasında sayı üretir ve onu " sayi " değişkenine atar. " dizi[sayi] " diyerekde dizinin o elemanını yazdırabilirsin. main'in içinde srand(time(0)) kullanmayı unutma. |
Şu an dışarı çıkmam gerek siz sitenin linkini atın geldiğim zaman yardımcı olurum. Eğer C# kullanma imkanınız varsa orada hazır olarak BigInteger sınıfı mevcut. |
http://gmplib.org/ . Yardımın için teşekkürler kendimde halletmeye çalışıcam. |
Dizi değil , dizi kullanamıyorum , rasgele bana 0 2 4 6 8 dan birini verecek. |
Herşeye bakmadım zamanım yoktu ama fonksiyonlar şu şekilde tanımlanmalı
int fonksiyon(){};
float ucrethesapla(){}; şeklinde denermisin