Arama butonu
Bu konudaki kullanıcılar: 2 misafir
4171
Cevap
168062
Tıklama
3
Öne Çıkarma
Cevap: C/C++/C# Sorularınız Buraya. . .(GÜNCEL) (110. sayfa)
F
12 yıl
Binbaşı

quote:

Orijinalden alıntı: neselihayalet

#include <cstdlib>
#include <iostream>

using namespace std;

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


{
int x, asallik,y = 0;


cout << "Lutfen sifirdan buyuk bir sayi giriniz ";
cin >> x;


for(asallik = 1;asallik <=x; asallik++){
if(x%asallik == 0)
y++;

}
if(y == 2)
cout << "sayi asaldir"<<endl;
else
cout << "sayi asal degildir." <<endl;
y = 0;




system("PAUSE");
return EXIT_SUCCESS;
}

Merhabalar,
Bu kodda y = 0 ı ne anlamda kullandık biz, neden y = 0 dedik ? Doğru yanlış anlamında mı kullandık ?

Teşekkürler

1. asla system() fonksiyonunu kullanma, ne olursa olsun!
2. y = 0 ı başta yapmanın sebebi hafızada 0 değerini atamak. ayrıca sadece 2 ve 0 arasında değer olacağı için int kullanmak çok aptalca bir davranıştır. char y = 0; şeklinde kullanın
3. y++; yı da kullanma ++y; kullan hafızayı boşu boşuna meşgul etme.
3. x % asallik da x yani girilen sayıyı asallik a bölüp kalanı buluyor. kalan 0 ise tam bölünüyor demek. asal sayı bire ve kendisine tam bölünür sadece, bu yüzden x % asallik,asal sayılarda asallik = 1 olduğunda veya asallik = x olduğunda 0 a eşit olur yani asal sayılarda y döngüden 2 olarak çıkar. altta da y = 2 ise sayı asaldır demiş zaten.
4. kodlama tarzı berbat sadece ödevlerde böyle kodlama yap. ayrıca preprocessor constant larını header veya kod dosyasının başında #ifdef şeklinde sorgulat ve gerekirse tanımlat, bunu yapmazsan kod sadece constant lerin önceden tanımlandığı platformlarda derlenebilir.


Bu mesaja 1 cevap geldi.
M
12 yıl
Yüzbaşı

Turbo C dili ile sayıyı basamaklarına nasıl ayırabiliriz, kafayı yemek üzereyim lütgen bilen ustalar bi yardımcı olabilirmisiniz ?


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

Lütfen cevabı biliyorsan yardım et.




Bu mesajda bahsedilenler: @-Source-
-
12 yıl
Yüzbaşı

@ebubekir.s

" için gerekli tanımlamayı bulamadım. Onun için VK_OEM_7 yazılmış dökümanda ama bu da US klavyeler için geçerli. Bizim klavyelerde i olarak geçiyor. Bende nokta ve virgüle ayarladım. Ayrıca bu kod sadece windowsta çalışır maalesef. Eğer crossplatform istersen glfw, sdl2 gibi kütüphaneler var bunların sadece input fonksiyonlarını kullanabilirsin.
Virtual Key Codes(Windows)
 
#include <iostream>
#include <Windows.h>
using namespace std;

int main()
{
while(1)
{
if((GetKeyState(VK_OEM_COMMA) & 0x8000) && (GetKeyState(VK_OEM_PERIOD) & 0x8000))
cout << ". ve ," << endl;
}
system("PAUSE");
return 0;
}




Bu mesajda bahsedilenler: @ebubekir.s
E
12 yıl
Çavuş

peki çok teşekkür ederim.




Bu mesajda bahsedilenler: @-Source-
S
12 yıl
Yüzbaşı

Merhaba arkadaşlar C++ da eksiğim olduğu için buraya sorayım dedım. ve okulda hocamız bize bir ödev verdi.


Bir ögrenciye ait; adı,soyadı,doğum günü(gun ay yıl) bilgilerinin tutulması istenmektedır. Bu bılgılerı içerebilen bırer
sınıf tasarlayınız. Ornek olarak, bır ögrencının bılgılerını baslangıc deger olarak kabul edecek bır nesne olusturun . daha sonra bu sınıf ıcerısınde öyle bır fonkısyon ekleyınız ki bu bılgılerı ekrana yazdırsın. bu fonksıyonu kullanarak ornek olarak olusturdugunuz nesne içerisnde ögrencıye aıt bılgılerı ekrana yazdırsın.

Bana yardımcı olursanız cok sevinirim


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

Arkadaşlar proğram güzel çalışıyor ama en sonunda bir bütün olarak 2 katını almasını istiyorum...nasıl yapabilirim? /manyak bir hocanın ödevi/
#include<stdio.h> 
#include<stdlib.h>

main(){
int i;
char a[3];
int b[10],c;


printf("gir..:");
scanf("%s",a);

for(i=0;a[i]!='\0';i++){
b[i]=a[i]-'0';
printf("%d",b[i]);
}

printf("\n");
system("pause");
return 0;
}



-
12 yıl
Yüzbaşı

@Saintvictims
Oluşturacağın basit bir sınıf örneği bu. Eğer burada takılıyorsan baştan notlarını incelemen lazım.
 
#include <iostream>
#include <string>
using std::cout;
using std::string;
using std::endl;

class Ogrenci
{
public:
Ogrenci(string _ad, string _soyad, int _gun, int _ay, int _yil)
{
ad = _ad;
soyad = _soyad;
dogumTarihi.gun = _gun;
dogumTarihi.ay = _ay;
dogumTarihi.yil = _yil;
}
void ekranaYazdir()
{
cout << "Ad: " << ad << "\tSoyad: " << soyad;
cout << "\tDogum tarihi: " << dogumTarihi.gun << "/" << dogumTarihi.ay << "/" << dogumTarihi.yil <<endl;
}
private:
string ad, soyad;
struct DogumTarihi
{
int ay, gun, yil;
}dogumTarihi;
};

int main()
{
Ogrenci ogrenci("Ad", "Soyad", 1, 1, 2013);
ogrenci.ekranaYazdir();
}




@ahmet_k06
Hiç soru üzerinde düşünmeden direk buraya yazıyorsun herhalde.
Sayıları bir bütüm olarak nasıl 2 ile çarparsın?
İlk önce sayıları toplarsın sonra topladığın sayıyı 2 ile çarpsın. Kodda ilk önce
yapman gereken for döngüsünden önce c = 0 yazmak olmalıdır. Sonra
for içinde b=a-'0'; deyiminden sonra c += b yazacaksın. Böylece sorunun ilk aşaması olan sayıların toplanması kısmını halletmiş oldun.
Sonraki aşamada ise for döngüsünden çıktıktan sonra c *= 2; yapacaksın böylecede sayıların toplanmış halini 2 ile çarptın. c'i ekrana yazdırdıktan sonra işlem bitiyor. Yapacağın işlem bu kadardı.





< Bu mesaj bu kişi tarafından değiştirildi -Source- -- 7 Kasım 2013; 0:39:51 >
Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @Saintvictims , @ahmet_k06
A
12 yıl
Onbaşı

quote:

Orijinalden alıntı: -Source-


@ahmet_k06
Hiç soru üzerinde düşünmeden direk buraya yazıyorsun herhalde.
Sayıları bir bütüm olarak nasıl 2 ile çarparsın?
İlk önce sayıları toplarsın sonra topladığın sayıyı 2 ile çarpsın. Kodda ilk önce
yapman gereken for döngüsünden önce c = 0 yazmak olmalıdır. Sonra
for içinde b=a-'0'; deyiminden sonra c += b yazacaksın. Böylece sorunun ilk aşaması olan sayıların toplanması kısmını halletmiş oldun.
Sonraki aşamada ise for döngüsünden çıktıktan sonra c *= 2; yapacaksın böylecede sayıların toplanmış halini 2 ile çarptın. c'i ekrana yazdırdıktan sonra işlem bitiyor. Yapacağın işlem bu kadardı.


tam senin dediğin gibi yaptım ama olmadı.....
#include<stdio.h> 
#include<stdlib.h>

main(){
int i;
char a[3];
int b[10],c;


printf("gir..:");
scanf("%s",a);
c=0;
for(i=0;a[i]!='\0';i++){
b[i]=a[i]-'0';
c+=b[i];

}
c*=2;
printf("%d",c);
printf("\n");
system("pause");
return 0;
}



-
12 yıl
Yüzbaşı

@ahmet_k06
Bir bütün olarak 2 katını biraz açar mısın?
Sen 123 girdin diyelim.
1 + 2 + 3 = 6 'nın 2 katı olacak. Yoksa 123 * 2 = 246 mı olacak?
Ayrıca döngüleri a != '\0' olarak kullanma.
İlk dediğim şeklin kodu aşağıdaki gibi.
 
#include<stdio.h>
#include <string.h>
#include<stdlib.h>

int main(){
int i;
char a[3];
int b[10], c = 0, u = 0;


printf("gir..:");
scanf("%s",a);
u = strlen(a);
for(i = 0; i < u; i++)
{
b[i] = a[i] - '0';
printf("%d %d\n",i, b[i]);
c += b[i];
}
c*=2;
printf("%d\n",c);
system("pause");
return 0;
}



İkinci dediğimin ise kodu:
 
#include<stdio.h>
#include <string.h>
#include <math.h>
#include<stdlib.h>

int main(){
int i;
char a[3];
int b[10], c = 0, u = 0;


printf("gir..:");
scanf("%s",a);
u = strlen(a);

for(i = 0; i < u; i++)
{
b[i] = a[i] - '0';
c += b[i] * ceil(pow(10, u - i -1));
}
c *= 2;
printf("%d\n",c);
system("pause");
return 0;
}


ceil kullanmazsam 10^2'i 99 olarak gösteriyordu :s





< Bu mesaj bu kişi tarafından değiştirildi -Source- -- 7 Kasım 2013; 1:53:29 >
Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @ahmet_k06
A
12 yıl
Er

merhaba arkadaşlar. Aşağıda yazmış olduğum bu program, girmek istediğiniz kadar sayıların tek veya çift olanlarının ortalamasını almakta fakat eğer sadece çift veya tek girerseniz hata veriyor. yardımcı olur musunuz? Teşekkürler.

#include<iostream>
#include<conio.h>

using namespace std;

int main()

{
int n, number, i = 1;

int sum_even = 0, sum_odd = 0;

int sum;

long double nodd = 0, neven = 0;

double aodd, aeven;

cin >> n;

for (i = 1; i <= n; i++)


{

cin >> number;

if (number % 2 == 0)

{
neven++;

sum_even += number;

}

else

{

nodd++;

sum_odd += number;

}


}

aodd = sum_odd / nodd ;

aeven = sum_even / neven;

cout << aodd << " " << aeven;


getch ();
return 0;
}


Bu mesaja 1 cevap geldi.
-
12 yıl
Yüzbaşı

@alikemalozgumus
Aldığın hata nedir? Bende hata vermedi. Ama kodda mantıksal bir hatan var. Sadece tek veya çift girdiğin zaman nodd veya neven değişkenlerinden biri 0 oluyor.
Böyle oluncuda
aodd = sum_odd / nodd ;
aeven = sum_even / neven; kısmında bir sayıyı 0'a bölmeye çalışıyorsun. Aldığın bundan kaynaklı olabilir. Basit if ifadeleri ile bu sorunu çözebilirsin.


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @alikemalozgumus
A
12 yıl
Er

-1.#ind hatası veriyor. teşekkür ederim yardımın için biliyorum 0'a bölündüğü için hata verdiğini ama çözemiyorum daha yeni başladım bu programı kullanmaya


Bu mesaja 1 cevap geldi.
-
12 yıl
Yüzbaşı

quote:

Orijinalden alıntı: alikemalozgumus

-1.#ind hatası veriyor. teşekkür ederim yardımın için biliyorum 0'a bölündüğü için hata verdiğini ama çözemiyorum daha yeni başladım bu programı kullanmaya

if(nodd != 0)
{
aodd = sum_odd / nodd ;
cout << aodd << " ";
}
if(neven != 0)
{
aeven = sum_even / neven;
cout << aeven;
}


Bu mesaja 1 cevap geldi.
A
12 yıl
Er

Çok teşekkür ederim. iyi günler diliyorum :)


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

Arkadaşlar bana bir fikir verebilir misiniz ?sizden sadece bir fikir istiyorum . ödevi yaptırma gibi niyetim yok.

Bu soruyu return 'le mi yapacağız ?(return hakkında bir bilgim yok.ipucu verebilirmisiniz ?) yoksa if else yapısıyla da yapabilirmiyim ? (if else hakkında bilgim var)


Bir fonksiyon yazın. bu fonksiyon girilen değerin büyük harf olup olmadığını kontrol etsin. büyük harf ise sıfırdan farklı bir değere dönsün. eğer küçük harf ise sıfıra gitsin.
örnek eğer değer A ise fonksiyon 1 'e dönsün

int BüyükHarfmi (char değer)
{


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

--“Enter” tuşuna basılana kadar klavyeden girilen karakterlerin her birinden kaç tane kullanıldığını, toplam kaç karakter girildiğini veren bir programın çözümü için
Gerekli sözde kodu ve akış diyagramını gerçekleştiriniz.

Ödev bu arkadaşlar.Yardımlarınızı bekliyorum...


Not: C de yazılması gerekiyor.
Paylaş


Bu mesaja 1 cevap geldi.
M
12 yıl
Yüzbaşı

Fonksiyon için çeşitli fikirler verebilirim. En pratiği ASCII tablosunu kullanmak olacaktır. Atıyorum büyük harflerin ASCII değeri 0-26 arasındaysa ve küçüklerin 27-52 arasındaysa girilen karakteri ASCII değerine çevirip hangi aralıkta olduğuna bakılabilir.

fn. büyük mü küçük mü
char girdisi
charı ASCII çevir

eğer(if) aralık 0-26 ise büyük, değilse veya 27-52 ise küçüktür.

Şimdi return(geri dönüş) değeri için.

eğer 0-26 ise return 1;
değilse(else return 0);

Hangi dili kullandığınızı bilmediğim için return değeri hakkında detaylı bilgi vermedim. Geri dönüş değeri olarak aratırsanız birçok bilgi bulabilirsiniz.

İyi çalışmalar





< Bu mesaj bu kişi tarafından değiştirildi MrOwl -- 9 Kasım 2013; 16:22:33 >
Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @Ön Libero
M
12 yıl
Yüzbaşı

quote:

Orijinalden alıntı: hdcn09

--“Enter” tuşuna basılana kadar klavyeden girilen karakterlerin her birinden kaç tane kullanıldığını, toplam kaç karakter girildiğini veren bir programın çözümü için
Gerekli sözde kodu ve akış diyagramını gerçekleştiriniz.

Ödev bu arkadaşlar.Yardımlarınızı bekliyorum...


Not: C de yazılması gerekiyor.
Paylaş

Yardım ederiz, sorunuzu sorun.


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

quote:

Orijinalden alıntı: MrOwl

quote:

Orijinalden alıntı: hdcn09

--“Enter” tuşuna basılana kadar klavyeden girilen karakterlerin her birinden kaç tane kullanıldığını, toplam kaç karakter girildiğini veren bir programın çözümü için
Gerekli sözde kodu ve akış diyagramını gerçekleştiriniz.

Ödev bu arkadaşlar.Yardımlarınızı bekliyorum...


Not: C de yazılması gerekiyor.
Paylaş

Yardım ederiz, sorunuzu sorun.

Soru yazılı bro.Kodlar lazım ve akış diyagramı ama kodları versen yeter :D


Bu mesaja 1 cevap geldi.