Arama butonu
Bu konudaki kullanıcılar: 2 misafir
4171
Cevap
167914
Tıklama
3
Öne Çıkarma
Cevap: C/C++/C# Sorularınız Buraya. . .(GÜNCEL) (2. sayfa)
G
10 yıl
Yüzbaşı

quote:

Orijinalden alıntı: OyunSandigi

Bildiğim kadarıyla bu şekilde yapmak gerekiyor.

 
int Secim;

do
{
Console.Clear();
Secim = Int32.Parse(Console.ReadLine());

if(!(Secim>0))
{
Console.WriteLine("Hatalı giriş.");
Console.ReadKey();
}
}while(!(Secim>0));


Benim sormak istediğim soru da C++'taki setw()'e alternatif olarak C#'ta neyi nasıl kullanmak gerekiyor?

Secim'i döngü içinde tanımladığımız için while'da parantez içine yazdırtmıyor dostum.Bide clear sayfayı komple temizler burada sanırım.Tam olarak istediğim şu tarz

Öncesi;
Bir sayı giriniz:-3
Hatalı giriş tekrar deneyin.

Entera bastıktan sonra;
Bir sayı giriniz:


Bu mesaja 1 cevap geldi.
P
10 yıl
Çavuş

 
main()
{
int yas,yil;

printf("Yasinizi Giriniz:");
scanf("%d",&yas);

printf("Bulungumuz Yili Giriniz:");
scanf("%d",&yil);

int dogumyili;

dogumyili=yil-yas;
int i=0;
while(dogumyili<=yil)
{

printf("%d Yilinda Yasiniz:%d",dogumyili,i);
printf("\n");
i=i+1;
dogumyili=dogumyili+1;

}

getch();



}


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @RingThalion
S
10 yıl
Teğmen

Selamlar,

Bir sorun olmaması lazım. Ama birşey var.

int top = 0 olarak tanımla. ilk değer atamamışsın. Hata veriyo olması lazım zaten bu haliyle.


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @Itatsu
G
10 yıl
Binbaşı

Eğer ki döngünüz uzadıkça bir hata belirmezse döngü sonuçlanana kadar(break) çalışır. Yani döngü iptal edilmiyor. Sonuç geç çıkıyor. Kodun içine yapılan işlemi ya da işlemin tamamlanma yüzdesini ekranda gösteren bikaç komut eklersen programın çalıştığından emin olabilirsin.




Bu mesajda bahsedilenler: @uchiha69
G
10 yıl
Yarbay

tools ta compile program var


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @Jetzt Oder Nie
A
10 yıl
Binbaşı

quote:

Orijinalden alıntı: RandomT


quote:

Orijinalden alıntı: mementopolis

Kullanicidan 2 sayi girmesini isteyin. Bu sayilarin tek mi cift mi oldugunu bulun.
Eger ikisi de tek ise "ikisi de tek", eger ikiside cift ise " ikiside cift" , eger birisi cift birisi tek ise "farkli sonuc" ifadelerini yazsin.

Not : if yapisi kullanmayin.

---- Ben cözemedim ya :).

Switch yapisiyla dene.
switch((a & 2) + (b & 2))
{
case 0: //ikiside cift
break;
case 1: //farkli sonuc
break;
case 2: //ikiside tek
break;

}

A&1 + B&1 OLMAYACAK MI?

SWITCH DE YASAKSA 2D BİR ARRAY AÇARSIN

ARRAY[0] ="İKİ ÇİFT"
ARRAY[1] = "FARKLI"
ARRAY[2] = "İKİ TEK"

printf("%s", ARRAY[A&1 + B&1]);

YAPARSIN Kİ EN MAKULU BU GÖZÜKÜYOR TERNARY ZATEN IF ELSE İLE AYNI ŞEY KEZA SWITCH DE.





< Bu mesaj bu kişi tarafından değiştirildi affiliation -- 10 Ağustos 2015; 1:11:39 >

< Bu ileti mobil sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
B
10 yıl
Yüzbaşı

quote:

Orijinalden alıntı: ilkrplt

quote:

Orijinalden alıntı: Buzz Lightyear

quote:

Orijinalden alıntı: ilkrplt

merbaha c++ la kısa bir zamandır uğraşıyorum ve öğrenirken her adımı sindirerek öğrenmeye çalışıyorum. Sorum yapılarla ilgili çok küçük bir detay.


#include <iostream>

using namespace std;

struct id{
char *ad,*soyad;
int dogumyili;
};
int main(){
id id1,id2;

id1.ad="ilker";
id1.soyad="polat";
id1.dogumyili=1990;

cout<<id1.ad<<id1.soyad<<id1.dogumyili;

return 0;

}

burada kırmızı ile gösterdiğim yerde neden * kullanmak zorundayım.(ne işe yaradığını biliyorum).
şimdiden teşekkürler







  

#include <iostream>
#include <string> // <--- Buraya Dikkat !

using namespace std;

struct id{

string ad; // <--- Buraya Dikkat !
string soyad; // <--- Buraya Dikkat !
int dogumyili;
};
int main(){
id id1,id2;

id1.ad="ilker";
id1.soyad="polat";
id1.dogumyili=1990;

cout<<id1.ad<<id1.soyad<<id1.dogumyili;

return 0;

}



sayende string yapısını öğrenmiş oldum teşekkür ederim ama istediğim cevap bu değildi malesef

"char* ad;" ifadesi herhangi bir karakter dizisinin başlangıç adresinin değerini tutar. Bunun sayesinde ad[0], ad[1], ad[2]...ad[karaktersayisi - 1] şeklinde karakter dizisindeki her bir karaktere matematiksel tamsayı değer kullanarak ulaşılabilinir.

Yani:

char* p = "ILKER"; örneğinde 5 adet harf var:

p[0] ---> I
p[1] ---> L
p[2] ---> K
p[3] ---> E
p[4] ---> R

şeklinde ayrı ayrı harflere ulaşılabilinir.


Halbuki "char ad;" ifadesi tek başına sadece tek bir karakterlik bilgi tutar.

Fakat "char* dizi;" şeklinde kelimeleri işlemlemek C'de yapılan eski ve ilkel bir yöntem. Bunun için aynı zamanda hususi hafıza ayırma ve yoketme işlemleri külfetini de beraberinde getiriyor bu yaklaşım.
Onun yerine kelimeler, yazılar için C++ da "string" kütüphanesini kullanmak lazım. O otomatikman hafıza yönetimi işini de tabıyatıyle üstlenecektir.

Dinamik hafızayla ilgili; yeni yer ayırma ve geri verme/yok etme işlemlerini yaparken de karakter dizileri için değil de başka objeler için bunu yapın. Onu yaparken de daha öğrenmediyseniz "new" ve "delete" ve "delete []" keywordlerini kullanmak gerekir özellikle C++ da.


Bu mesaja 1 cevap geldi.
H
6 yıl
Binbaşı

scanf("%s", renk);
if(renk.compare("mavi")==0)

bu satirlar degisince calisacaktir.




Bu mesajda bahsedilenler: @kanvoldo
T
6 yıl
Yarbay

Konu sahibi, for ile üçgen bastırma sorusuna bakın ne kod yazmış.
https://forum.donanimhaber.com/mesaj/yonlen/63966038
C++ klası oluşturmuş ve klas oluşturmak gereksiz, aldığı 5 argüman daha da gereksiz. Başlangıç düzeyinde kod bilgisi olan birinden yardım bekliyorsunuz.

Konu zaten forumun çakma rönesans dönemi olan 2009-2013 arasında açılmış. Onun gazıyla 200 sayfa dolmuş. Kodlama işinde nicelik değil, nitelik önemlidir.



< Bu ileti mini sürüm kullanılarak atıldı >

F
6 yıl
Yarbay

quote:

Orijinalden alıntı: yanumthe

Müsait olduğunuzda ilgilenirseniz çok memnun kalırım hocam

Alıntıları Göster
Hocam merhaba. Anca yetiştirebildim. Sizin için ufak bir form uygulaması üzerinden örnek bir veri üzerinden açıklamaya çalıştım. Bazı detaylar kod satırlarında yorum olarak mevcut. Amacım özellikle içerisinde karışık ifadeler bulunduran durumlarda ne yapılabilir bunu göstermek. Mesela yan yana 2 tane boşluk olursa veyahut da daha fazla sayıda boşluk olursa, verinin başında sonunda boşluk olursa, içerisinde özel karakterler-sayılar olursa... vs gibi durumları düşünerekten yapmaya çalıştım.

Uygulamadan ekran görüntüsü:

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

Butonlara basınca altlarında ait oldukları durumla ilgili sayı bilgisi ve text alanlarında da verinin son hali yazacak şekilde kodlanmıştır.

Kelime Sayısı Butonu kodları:
NOT: Şu kütüphaneyi en başta ekleyin öncelikle "using System.Text.RegularExpressions;"


string Veri = labelVeri.Text;

Veri = Veri.Trim(); //En baştaki ve en sondaki -varsa- boşlukları siler.
Veri = Regex.Replace(Veri, @"[\d-]", string.Empty); //Verideki sayıları siler. NOT: Silinen sayıların yerine 1 fazla boşluk eklenir.
string[] dizi = Veri.Split(' ');
int sayi = 0;
foreach (string item in dizi)
{
if (String.IsNullOrWhiteSpace(item))
{
; //Fazladan olan boşluk/boşluklar diziye eleman olarak altılır
//burada o boşluk elemanlarını ayırdık,
//kalanları sadece harflerden oluşan (kelime) eleman olacaktır.
}
else if (item.All(char.IsLetter)) //Eleman kelime ise (hepsi harften oluşuyorsa)
{
sayi++;
richTextBox1.Text = richTextBox1.Text + item + "
";
}
}
labelKelimeSayisi.Text = sayi.ToString();



Harf Sayısı Butonu kodları:


string Veri = labelVeri.Text;

Veri = Veri.Trim(); //En baştaki ve en sondaki -varsa- boşlukları siler.
Veri = Regex.Replace(Veri, "[^a-zA-Z0-9]", ""); //Verideki harf ve sayı dışındaki tüm karakterleri siler. Boşluklar dahildir.
Veri = Regex.Replace(Veri, @"[\d-]", string.Empty); //Verideki sayıları siler.
char[] dizi = Veri.ToCharArray();

foreach (char item in dizi)
{
richTextBox2.Text = richTextBox2.Text + item + "
";
}

labelHarfSayisi.Text = dizi.Length.ToString();



Boşluk Sayısı Butonu kodları:


string Veri = labelVeri.Text;

int sayi = Veri.Count(Char.IsWhiteSpace); //Direk string bir ifadedeki boşluk sayısını verir.

richTextBox3.Text = Veri;
labelBoslukSayisi.Text = sayi.ToString();





< Bu mesaj bu kişi tarafından değiştirildi Fulton -- 30 Aralık 2019; 17:57:54 >
Bu mesaja 1 cevap geldi.
£
13 yıl
Yüzbaşı
Konu Sahibi

quote:

Orijinalden alıntı: ot

quote:

Orijinalden alıntı: £XE

Arkadaşlar buraya böyle bir konu açma ihtiyacı duydum. 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.



Merhaba

C dilinde Procedures konusunu bol örnekli şekilde anlatabilir misiniz ?

Aslına bakarsak şahsen C++ ilgili sorularla ilgilenmek istiyordum. C diliyle alakalı değilim. Fakat C/C++ yakın diller olduğu için başka arkadaşlarda yardım ederler diye düşündüm. Ben c++ da procedures diye bir konu görmedim maalesef . Ama bulduğum birkaç örneği paylaşayım :

 

// Fonksiyon ve Prosedür arasındaki fark.
#include<iostream>

using namespace std;

//fonksiyon
bool checkIfPositive(int x)
{
if(x >= 0)
return true;
return false;
}

//procedure
void printIfPositive(int x)
{
bool isPositive = checkIfPositive(x);
if(isPositive)
cout<<"x is positive and its value is "<<x<<endl;
}

int main()
{
printIfPositive(3);
printIfPositive(-54);
printIfPositive(710);
system("PAUSE");
return 0;
}





Ayrıca buradaki örneği incele bi..

http://en.wikibooks.org/wiki/C_Programming/Procedures_and_functions



Örneğin sende şunu yazmaya çalış :
Bir sayının ekrana tek veya çift olduğunu bulup yazdıran prosedür.

Saygılarımla.


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

Güzel başlık olmuş bence hocam forumun C ye olan ilgisi mi azaldı ne yaptı pek göremiyoruz. Şu sınavımı atlatıyım bende başlığı canlı tutacağım çok sorum olacak benimde , elektro_gadget hocamın da uğraması yakındır


Bu mesaja 1 cevap geldi.
O
13 yıl
Yüzbaşı

wiki linki için ingilizcem az yanlız :/

fonksiyonlarla beraber almışlar, benim öğrendiğim kaynaktaki fonksiyonlar kısmında görürüm belki.

zaten şu an lazım olan birşey değildi.


birde register değişkenleri açıklayabilir misiniz ?





< Bu mesaj bu kişi tarafından değiştirildi ot -- 29 Temmuz 2012; 4:16:52 >
Bu mesaja 3 cevap geldi.
S
13 yıl
Binbaşı

Forumdan bir arkadaş sormuştu sayısı istenen yıldızlarla nasıl eşkenar üçgen yapılabilir diye yaptım ama pek temiz ve kısa olmadı , nerelerden nasıl kısaltılabilir ? Veya en baştan nasıl bir kod yazılabilir ?



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

int main(int argc, char *argv[])
{

int yildiz,sayac=0,fark=2,bosluk=0,sayac2,sayac3,sayac4=2,sayac5;
printf("lutfen istediginiz es kenar ucgen icin yildiz sayisini giriniz");
scanf("%d",&yildiz);

while(sayac!=yildiz) // ust kenarın yapımı
{
sayac++;
printf("* "); }

printf("\n");

while(bosluk!=1)
{
bosluk=(((yildiz-2)*2)+1)-fark; // ilk satır icin yıldızlar arasındaki boslugun hesaplanması
fark=fark+2; // her satırdaki boslugun 2 er azaltılması
sayac4++;
for(sayac3=2;sayac3<sayac4;sayac3++) // her satırdaki ilk yıldız icin bosluk bırakılması
{printf(" ");}
printf("*");

for(sayac2=0;sayac2<bosluk;sayac2++)
{ printf(" ");}
printf("*\n"); }

for(sayac3=1;sayac3<sayac4;sayac3++) //sondaki tek yıldız icin bosluk bırakılması
{printf(" ");}
printf("*\n\n\n\n");


system("PAUSE");
return 0;
}



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

quote:

Orijinalden alıntı: ot

wiki linki için ingilizcem az yanlız :/

fonksiyonlarla beraber almışlar, benim öğrendiğim kaynaktaki fonksiyonlar kısmında görürüm belki.

zaten şu an lazım olan birşey değildi.


birde register değişkenleri açıklayabilir misiniz ?

Fakat açıkcası ben 1 Kere bile kullanmadım o prosedürleri bana daha çok işin teknik kısmı gibi geldi.
-------------------------------
Register Değişkenler.

Eğer bir değişken register sınıfından tanımlanmışsa, derleyici onu makinenin hızlı bellek yazmaçlarına yerleştirmeye çalışır. Bu tür yazmaçlardan sınırlı sayıda olduğu için, sadece ilk birkaç register değişkeni gerçekten yazmaçlarda saklanır, diğerleri otomatik değişkenler gibi işlem görürler. Yani, bir register bildirimi derleyiciye sadece bir öneri özelliği taşır. Böylece, eğer bir önceki alt kısımda tanımlanmış değişkenlere gerçekten hızlı erişmeyi istiyorsak.. Ayrıca Register değişkenlerin önüne & işaretçi operatörü koyularak kullanılamaz; işlemci saklayıcısının adresi olmaz.

(Bu açıklama yeterli diye düşünüyorum.)



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

quote:

Orijinalden alıntı: strahd_von_zarovich

Forumdan bir arkadaş sormuştu sayısı istenen yıldızlarla nasıl eşkenar üçgen yapılabilir diye yaptım ama pek temiz ve kısa olmadı , nerelerden nasıl kısaltılabilir ? Veya en baştan nasıl bir kod yazılabilir ?



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

int main(int argc, char *argv[])
{

int yildiz,sayac=0,fark=2,bosluk=0,sayac2,sayac3,sayac4=2,sayac5;
printf("lutfen istediginiz es kenar ucgen icin yildiz sayisini giriniz");
scanf("%d",&yildiz);

while(sayac!=yildiz) // ust kenarın yapımı
{
sayac++;
printf("* "); }

printf("\n");

while(bosluk!=1)
{
bosluk=(((yildiz-2)*2)+1)-fark; // ilk satır icin yıldızlar arasındaki boslugun hesaplanması
fark=fark+2; // her satırdaki boslugun 2 er azaltılması
sayac4++;
for(sayac3=2;sayac3<sayac4;sayac3++) // her satırdaki ilk yıldız icin bosluk bırakılması
{printf(" ");}
printf("*");

for(sayac2=0;sayac2<bosluk;sayac2++)
{ printf(" ");}
printf("*\n"); }

for(sayac3=1;sayac3<sayac4;sayac3++) //sondaki tek yıldız icin bosluk bırakılması
{printf(" ");}
printf("*\n\n\n\n");


system("PAUSE");
return 0;
}



Bana kalırsa temiz olmuş. Yani herhangi bir düzenlemeye gerek görmedim. Fakat mesela
for()
prinf(); Bu kısımları alt alta yazmak yerine aralarında birer boşluk bırakırsan kodlar daha rahat anlaşılır.



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

quote:

Orijinalden alıntı: ot

wiki linki için ingilizcem az yanlız :/

fonksiyonlarla beraber almışlar, benim öğrendiğim kaynaktaki fonksiyonlar kısmında görürüm belki.

zaten şu an lazım olan birşey değildi.


birde register değişkenleri açıklayabilir misiniz ?

Açıklamaya basit bir örnek ile devam edelim. Ama tekrar belirteyim bunlar bana işin sözel kısmı gibi geliyor. Yani pek kullanıldığını düşünmüyorum.

 

#include <iostream>
using namespace std;

main()
{

register int a,b; // register'lar ile performans sağlamış oluyoruz biraz daha.
cout << "2 say giriniz : ";
cin >> a >> b;

cout << "Sayilarin toplami : " << a+b << endl;

system("PAUSE");
return 0;


}




Bu mesaja 3 cevap geldi.
O
13 yıl
Yüzbaşı

quote:

Orijinalden alıntı: £XE

quote:

Orijinalden alıntı: ot

wiki linki için ingilizcem az yanlız :/

fonksiyonlarla beraber almışlar, benim öğrendiğim kaynaktaki fonksiyonlar kısmında görürüm belki.

zaten şu an lazım olan birşey değildi.


birde register değişkenleri açıklayabilir misiniz ?

Açıklamaya basit bir örnek ile devam edelim. Ama tekrar belirteyim bunlar bana işin sözel kısmı gibi geliyor. Yani pek kullanıldığını düşünmüyorum.

 

#include <iostream>
using namespace std;

main()
{

register int a,b; // register'lar ile performans sağlamış oluyoruz biraz daha.
cout << "2 say giriniz : ";
cin >> a >> b;

cout << "Sayilarin toplami : " << a+b << endl;

system("PAUSE");
return 0;


}




Bu c++ herhalde :)

cevaplar için teşekkür ederim.birde kritik bir örnek varsa verebilir misiniz ? Tam register kullanmalik



< Bu ileti tablet sürüm kullanılarak atıldı >

O
13 yıl
Yüzbaşı

quote:

Orijinalden alıntı: £XE





quote:

Orijinalden alıntı: salto?fb


arkadaşlar acil bir konu var :

öğrendiğim yerde
Basit Veri Giriş Çıkışlarının altındaki

Standart Çıkış Birimine Yapılacak Çıkışlar
İşareti ile Başlayan Kontroller
Klavyeden Veri Girişleri

bu dosyalar bozulmuş. yardımcı olabilir misiniz bu konuda da


internete de bakıyorum şimdi


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

quote:

Orijinalden alıntı: ot

quote:

Orijinalden alıntı: £XE





quote:

Orijinalden alıntı: salto?fb


arkadaşlar acil bir konu var :

öğrendiğim yerde
Basit Veri Giriş Çıkışlarının altındaki

Standart Çıkış Birimine Yapılacak Çıkışlar
İşareti ile Başlayan Kontroller
Klavyeden Veri Girişleri

bu dosyalar bozulmuş. yardımcı olabilir misiniz bu konuda da


internete de bakıyorum şimdi


Biraz daha açarmısın.. #include bölümünde mi bir eksikliğin var ?





< Bu mesaj bu kişi tarafından değiştirildi £XE -- 29 Temmuz 2012; 18:50:28 >
Bu mesaja 1 cevap geldi.