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

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





< Bu mesaj bu kişi tarafından değiştirildi fastcoder -- 6 Ekim 2012; 17:45:10 >

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

N
13 yıl
Yüzbaşı

#include <cstdlib>
#include <iostream>
using namespace std;

int main(int argc, char *argv[])
{
int a , b;
char karakter;
cout<<" :-: DORT ISLEM PROGRAMI :-: "<<endl;
cout<<"=> 1.SAYIYI GIRINIZ : ";
cin>>a;
cout<<"=> 2.SAYIYI GIRINIZ : ";
cin>>b;
cout<<"YAPMAK ISTEDIGINIZ ISLEMI SECIN (( + , - , * , / ))";
switch(karakter)
{
case '+':cout<<"SONUC TOPLAM : "<<a+b;
case '-':cout<<"SONUC ÇIKARMA : "<<a-b;
case '*':cout<<"SONUC ÇARPMA : "<<a*b;
case '/':cout<<"SONUC BOLME : "<<a/b;
default:cout<<"(( + , - , * , / )) BIRISINI SECINIZ ";
}
system("PAUSE");
return EXIT_SUCCESS;
}


arkadaşlar nerde hata yapıyorum bakarmısınız rica etsem


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

quote:

Orijinalden alıntı: invertal

#include <cstdlib>
#include <iostream>
using namespace std;

int main(int argc, char *argv[])
{
int a , b;
char karakter;
cout<<" :-: DORT ISLEM PROGRAMI :-: "<<endl;
cout<<"=> 1.SAYIYI GIRINIZ : ";
cin>>a;
cout<<"=> 2.SAYIYI GIRINIZ : ";
cin>>b;
cout<<"YAPMAK ISTEDIGINIZ ISLEMI SECIN (( + , - , * , / ))";
switch(karakter)
{
case '+':cout<<"SONUC TOPLAM : "<<a+b;
case '-':cout<<"SONUC ÇIKARMA : "<<a-b;
case '*':cout<<"SONUC ÇARPMA : "<<a*b;
case '/':cout<<"SONUC BOLME : "<<a/b;
default:cout<<"(( + , - , * , / )) BIRISINI SECINIZ ";
}
system("PAUSE");
return EXIT_SUCCESS;
}


arkadaşlar nerde hata yapıyorum bakarmısınız rica etsem

Hocam c++ bilgim pek yoktur ama switch e girmeden önce karakter değişkenine işlem sembolünü tanımlamıyorsun. switchten önce "cin >> karakter;" gibi bişey olmagı gerek miyo mu?

edit. defaulta da yanlış karakter seçtiniz gibi bişey yazdırırsan daha doğru olur sanırım





< Bu mesaj bu kişi tarafından değiştirildi Mtntk -- 7 Ekim 2012; 17:16:50 >

C
13 yıl
Yarbay

quote:

Orijinalden alıntı: invertal

#include <cstdlib>
#include <iostream>
using namespace std;

int main(int argc, char *argv[])
{
int a , b;
char karakter;
cout<<" :-: DORT ISLEM PROGRAMI :-: "<<endl;
cout<<"=> 1.SAYIYI GIRINIZ : ";
cin>>a;
cout<<"=> 2.SAYIYI GIRINIZ : ";
cin>>b;
cout<<"YAPMAK ISTEDIGINIZ ISLEMI SECIN (( + , - , * , / ))";
switch(karakter)
{
case '+':cout<<"SONUC TOPLAM : "<<a+b;
case '-':cout<<"SONUC ÇIKARMA : "<<a-b;
case '*':cout<<"SONUC ÇARPMA : "<<a*b;
case '/':cout<<"SONUC BOLME : "<<a/b;
default:cout<<"(( + , - , * , / )) BIRISINI SECINIZ ";
}
system("PAUSE");
return EXIT_SUCCESS;
}


arkadaşlar nerde hata yapıyorum bakarmısınız rica etsem

Yapmak istediğin işlemden sonra cin ile onu alman gerekir. Birde case'lerden sonra break koydum ben. Şu halde çalışıyor.
#include <iostream>  

using namespace std;

int main()
{
int a , b;
char karakter;
cout<<" :-: DORT ISLEM PROGRAMI :-: "<<endl;
cout<<"=> 1.SAYIYI GIRINIZ : ";
cin>>a;
cout<<"=> 2.SAYIYI GIRINIZ : ";
cin>>b;
cout<<"YAPMAK ISTEDIGINIZ ISLEMI SECIN (( + , - , * , / ))";
cin>>karakter;
switch(karakter)
{
case '+':cout<<"SONUC TOPLAM : "<<a+b;
break;
case '-':cout<<"SONUC ÇIKARMA : "<<a-b;
break;
case '*':cout<<"SONUC ÇARPMA : "<<a*b;
break;
case '/':cout<<"SONUC BOLME : "<<a/b;
break;
default:cout<<"(( + , - , * , / )) BIRISINI SECINIZ ";
}
cout<<endl;
}





< Bu mesaj bu kişi tarafından değiştirildi cllyldrm -- 7 Ekim 2012; 18:30:48 >
Bu mesaja 1 cevap geldi.
M
13 yıl
Yüzbaşı

Üçgenin açılarını girdi olarak alan ve bu üçgenin eşkenar, ikizkenar veya çeşitkenar olduğunu belirleyen program yazınız. Kolay bi soru biliyorum ama nerde hata yaptığımı söylerseniz sevinirim çünkü complie ettiğimde bana [Linker error] undefined reference to `WinMain@16' diyor

#include<stdio.h> 
#include<conio.h>
int mian (void)
{
int a,b,c;
printf("Uc aci giriniz: ");
scanf("%d%d%d",&a,&b,&c);
if (a+b+c!=180)
printf("Yanlis girdiniz");
else if (a==60 && b==60 && c==60)
printf("Eskenar ucgen");
else if (a==b || a==c || b==c )
printf("Ikizkenar ucgen");
else if (a!=b && b!=c && c!=a)
printf("Cesitkenar ucgen");
getch();
return (0);
}



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

quote:

Orijinalden alıntı: mertov

Üçgenin açılarını girdi olarak alan ve bu üçgenin eşkenar, ikizkenar veya çeşitkenar olduğunu belirleyen program yazınız. Kolay bi soru biliyorum ama nerde hata yaptığımı söylerseniz sevinirim çünkü complie ettiğimde bana [Linker error] undefined reference to `WinMain@16' diyor

#include<stdio.h> 
#include<conio.h>
int mian (void)
{
int a,b,c;
printf("Uc aci giriniz: ");
scanf("%d%d%d",&a,&b,&c);
if (a+b+c!=180)
printf("Yanlis girdiniz");
else if (a==60 && b==60 && c==60)
printf("Eskenar ucgen");
else if (a==b || a==c || b==c )
printf("Ikizkenar ucgen");
else if (a!=b && b!=c && c!=a)
printf("Cesitkenar ucgen");
getch();
return (0);
}




int mian (void)
sanırım bundan


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

quote:

Orijinalden alıntı: Mtntk

quote:

Orijinalden alıntı: mertov

Üçgenin açılarını girdi olarak alan ve bu üçgenin eşkenar, ikizkenar veya çeşitkenar olduğunu belirleyen program yazınız. Kolay bi soru biliyorum ama nerde hata yaptığımı söylerseniz sevinirim çünkü complie ettiğimde bana [Linker error] undefined reference to `WinMain@16' diyor

#include<stdio.h> 
#include<conio.h>
int mian (void)
{
int a,b,c;
printf("Uc aci giriniz: ");
scanf("%d%d%d",&a,&b,&c);
if (a+b+c!=180)
printf("Yanlis girdiniz");
else if (a==60 && b==60 && c==60)
printf("Eskenar ucgen");
else if (a==b || a==c || b==c )
printf("Ikizkenar ucgen");
else if (a!=b && b!=c && c!=a)
printf("Cesitkenar ucgen");
getch();
return (0);
}




int mian (void)
sanırım bundan

Hocam çok teşekkürler çatlıyacaktım artık 1 saattir kontrol ediyorum hata görmüyodum.


Bu mesaja 1 cevap geldi.
E
13 yıl
Er

Merhaba arkadaşlar, benim yapmak istediğim şey listboxa bazı programları eklemek istiyorum (winrar, nero, office 2007, nod32, vlc player gibi). bu programları nasıl eklicem. ve seçtiğim programları bir program bittiği zaman diğerinin de başlamasını istiyorum. programın bittiğini nasıl anlicam ?



B
13 yıl
Er

Merhaba arkadaşlar c++ da sarrus kuralını yazmam lazım bana bi fikir sunabilir misiniz acaba teşekkürler şimdiden


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

Benim de bir sorum var daha önce 10 sayı içinden en büyük sayıyı bulmayı burda öğrenmiştim şimdi 10 sayı içinden en büyük 2 sayıyı bulmam gerekli (c dilinde for kısmına kadar biliyorum -kitaptaki soru-) Yardım ederseniz çok iyi olur çok uğraştım ama beceremedim


Bu mesaja 2 cevap geldi.
Y
13 yıl
Er

quote:

Orijinalden alıntı: Bilim Hayvanı

Benim de bir sorum var daha önce 10 sayı içinden en büyük sayıyı bulmayı burda öğrenmiştim şimdi 10 sayı içinden en büyük 2 sayıyı bulmam gerekli (c dilinde for kısmına kadar biliyorum -kitaptaki soru-) Yardım ederseniz çok iyi olur çok uğraştım ama beceremedim

Benim tavsiyem;
Bu 10 sayıyı(N olarak genelleyebiliriz) diziye attıktan sonra en büyük sayıyı bul.
Bu sayıyı ekrana yazdır ya da farklı bir değişkenle tut ve dizideki sayıyı 0 yap ki tekrar aynı dizideki en büyük sayıyı buldurduğunda orijinal dizinin en büyük ikinci elemanı bulunsun.
Yani arama işlemini 2 kere yap.



G
13 yıl
Yüzbaşı

quote:

Orijinalden alıntı: Bilim Hayvanı

Benim de bir sorum var daha önce 10 sayı içinden en büyük sayıyı bulmayı burda öğrenmiştim şimdi 10 sayı içinden en büyük 2 sayıyı bulmam gerekli (c dilinde for kısmına kadar biliyorum -kitaptaki soru-) Yardım ederseniz çok iyi olur çok uğraştım ama beceremedim

Yukaridaki yonteme ek olarak tek geciste de yapabilirsin.

for icine bir 2 tampon koyucaksin. karsilastirdigin sayilarin tam sayi oldugunu dusunuyorum. O yuzden tamponlari 0'a esitledim.
 
unsigned int en_buyuk=0 ; unsigned int en_buyuk_ikinci=0;
unsigned int array[15] = { 1 , 19 , 4 , 250 , 93457 ,355 , 2344 , 3 , 823 , 2904, 34874, 4, 357, 34534 , 2948 };


for (int i=0;i<15;i++)
{
if(en_buyuk < array[i])
{
en_buyuk_ikinci = en_buyuk;
en_buyuk = array[i];
}
else if(en_buyuk_ikinci < array[i])
{
en_buyuk_ikinci = array[i];
}
}

printf("En Buyuk : %u , En Buyuk Ikinci : %u\n",en_buyuk,en_buyuk_ikinci);



"En Buyuk : 93457 , En Buyuk Ikinci : 34874"

Ekleme :

Burada birbirine esit iki sayi en buyuk olsaydi mesela iki tane 93457; cikti,
"En Buyuk : 93457 , En Buyuk Ikinci : 93457 selkinde olacakti"
Eger boyle olmasin istersen for loopunun icinie ekleme yapacaksin. Mesela,

 
for (int i=0;i<15;i++)
{
if(array[i] == en_buyuk ||array[i] == en_buyuk_ikinci)
{
continue;
}
else if(en_buyuk < array[i])
{
en_buyuk_ikinci = en_buyuk;
en_buyuk = array[i];
}
else if(en_buyuk_ikinci < array[i])
{
en_buyuk_ikinci = array[i];
}
}


ekliyceksin.





< Bu mesaj bu kişi tarafından değiştirildi garui -- 11 Ekim 2012; 17:23:40 >
Bu mesaja 1 cevap geldi.
B
13 yıl
Yüzbaşı

quote:

Orijinalden alıntı: YılmazAskar

quote:

Orijinalden alıntı: Bilim Hayvanı

Benim de bir sorum var daha önce 10 sayı içinden en büyük sayıyı bulmayı burda öğrenmiştim şimdi 10 sayı içinden en büyük 2 sayıyı bulmam gerekli (c dilinde for kısmına kadar biliyorum -kitaptaki soru-) Yardım ederseniz çok iyi olur çok uğraştım ama beceremedim

Benim tavsiyem;
Bu 10 sayıyı(N olarak genelleyebiliriz) diziye attıktan sonra en büyük sayıyı bul.
Bu sayıyı ekrana yazdır ya da farklı bir değişkenle tut ve dizideki sayıyı 0 yap ki tekrar aynı dizideki en büyük sayıyı buldurduğunda orijinal dizinin en büyük ikinci elemanı bulunsun.
Yani arama işlemini 2 kere yap.



quote:

Orijinalden alıntı: garui

quote:

Orijinalden alıntı: Bilim Hayvanı

Benim de bir sorum var daha önce 10 sayı içinden en büyük sayıyı bulmayı burda öğrenmiştim şimdi 10 sayı içinden en büyük 2 sayıyı bulmam gerekli (c dilinde for kısmına kadar biliyorum -kitaptaki soru-) Yardım ederseniz çok iyi olur çok uğraştım ama beceremedim

Yukaridaki yonteme ek olarak tek geciste de yapabilirsin.

for icine bir 2 tampon koyucaksin. karsilastirdigin sayilarin tam sayi oldugunu dusunuyorum. O yuzden tamponlari 0'a esitledim.
 
unsigned int en_buyuk=0 ; unsigned int en_buyuk_ikinci=0;
unsigned int array[15] = { 1 , 19 , 4 , 250 , 93457 ,355 , 2344 , 3 , 823 , 2904, 34874, 4, 357, 34534 , 2948 };


for (int i=0;i<15;i++)
{
if(en_buyuk < array[i])
{
en_buyuk_ikinci = en_buyuk;
en_buyuk = array[i];
}
else if(en_buyuk_ikinci < array[i])
{
en_buyuk_ikinci = array[i];
}
}

printf("En Buyuk : %u , En Buyuk Ikinci : %u\n",en_buyuk,en_buyuk_ikinci);



"En Buyuk : 93457 , En Buyuk Ikinci : 34874"

Ekleme :

Burada birbirine esit iki sayi en buyuk olsaydi mesela iki tane 93457; cikti,
"En Buyuk : 93457 , En Buyuk Ikinci : 93457 selkinde olacakti"
Eger boyle olmasin istersen for loopunun icinie ekleme yapacaksin. Mesela,

 
for (int i=0;i<15;i++)
{
if(array[i] == en_buyuk ||array[i] == en_buyuk_ikinci)
{
continue;
}
else if(en_buyuk < array[i])
{
en_buyuk_ikinci = en_buyuk;
en_buyuk = array[i];
}
else if(en_buyuk_ikinci < array[i])
{
en_buyuk_ikinci = array[i];
}
}


ekliyceksin.




İkinize de çok teşekkür ederim kitapta nasıl ilerlemem gerektiğini de anladım sağolun


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

quote:

Orijinalden alıntı: Bilim Hayvanı

quote:

Orijinalden alıntı: YılmazAskar

quote:

Orijinalden alıntı: Bilim Hayvanı

Benim de bir sorum var daha önce 10 sayı içinden en büyük sayıyı bulmayı burda öğrenmiştim şimdi 10 sayı içinden en büyük 2 sayıyı bulmam gerekli (c dilinde for kısmına kadar biliyorum -kitaptaki soru-) Yardım ederseniz çok iyi olur çok uğraştım ama beceremedim

Benim tavsiyem;
Bu 10 sayıyı(N olarak genelleyebiliriz) diziye attıktan sonra en büyük sayıyı bul.
Bu sayıyı ekrana yazdır ya da farklı bir değişkenle tut ve dizideki sayıyı 0 yap ki tekrar aynı dizideki en büyük sayıyı buldurduğunda orijinal dizinin en büyük ikinci elemanı bulunsun.
Yani arama işlemini 2 kere yap.



quote:

Orijinalden alıntı: garui

quote:

Orijinalden alıntı: Bilim Hayvanı

Benim de bir sorum var daha önce 10 sayı içinden en büyük sayıyı bulmayı burda öğrenmiştim şimdi 10 sayı içinden en büyük 2 sayıyı bulmam gerekli (c dilinde for kısmına kadar biliyorum -kitaptaki soru-) Yardım ederseniz çok iyi olur çok uğraştım ama beceremedim

Yukaridaki yonteme ek olarak tek geciste de yapabilirsin.

for icine bir 2 tampon koyucaksin. karsilastirdigin sayilarin tam sayi oldugunu dusunuyorum. O yuzden tamponlari 0'a esitledim.
 
unsigned int en_buyuk=0 ; unsigned int en_buyuk_ikinci=0;
unsigned int array[15] = { 1 , 19 , 4 , 250 , 93457 ,355 , 2344 , 3 , 823 , 2904, 34874, 4, 357, 34534 , 2948 };


for (int i=0;i<15;i++)
{
if(en_buyuk < array[i])
{
en_buyuk_ikinci = en_buyuk;
en_buyuk = array[i];
}
else if(en_buyuk_ikinci < array[i])
{
en_buyuk_ikinci = array[i];
}
}

printf("En Buyuk : %u , En Buyuk Ikinci : %u\n",en_buyuk,en_buyuk_ikinci);



"En Buyuk : 93457 , En Buyuk Ikinci : 34874"

Ekleme :

Burada birbirine esit iki sayi en buyuk olsaydi mesela iki tane 93457; cikti,
"En Buyuk : 93457 , En Buyuk Ikinci : 93457 selkinde olacakti"
Eger boyle olmasin istersen for loopunun icinie ekleme yapacaksin. Mesela,

 
for (int i=0;i<15;i++)
{
if(array[i] == en_buyuk ||array[i] == en_buyuk_ikinci)
{
continue;
}
else if(en_buyuk < array[i])
{
en_buyuk_ikinci = en_buyuk;
en_buyuk = array[i];
}
else if(en_buyuk_ikinci < array[i])
{
en_buyuk_ikinci = array[i];
}
}


ekliyceksin.




İkinize de çok teşekkür ederim kitapta nasıl ilerlemem gerektiğini de anladım sağolun

Alıntıları Göster
quote:


İkinize de çok teşekkür ederim kitapta nasıl ilerlemem gerektiğini de anladım sağolun

Rica ederim. Burada önemli olan algoritma mantığı. Bu tip küçük programlarda koddan çok algoritma önemlidir. Algoritmayı düşünüp bunu koda aktarıcaksın. Mesela verdiğim kodun son halinde algoritma hatalı.

 
if(array[i] == en_buyuk ||array[i] == en_buyuk_ikinci)

yerine

if(array[i] == en_buyuk)

yazılırsa kod tamamen aynı işlemi yapıcak. (array[i] == en_buyuk_ikinci) kontrolü işlemciye fazladan gereksiz işlem yaptırmaktan öteye gitmez.



Genel programlama mantığını öğrendikten sonra daha iyi algoritmalar çıkartabilirsin. Bir şeyi yapmak için birden çok metod olabilir. Aşağıdaki link anlatmak istediğimi fikir olarak gösterebilir.

http://mathbits.com/MathBits/CompSci/Arrays/Sorting.htm





< Bu mesaj bu kişi tarafından değiştirildi garui -- 12 Ekim 2012; 1:08:52 >
Bu mesaja 1 cevap geldi.
B
13 yıl
Yüzbaşı

Orijinalden alıntı: garui


İkinize de çok teşekkür ederim kitapta nasıl ilerlemem gerektiğini de anladım sağolun

Rica ederim. Burada önemli olan algoritma mantığı. Bu tip küçük programlarda koddan çok algoritma önemlidir. Algoritmayı düşünüp bunu koda aktarıcaksın. Mesela verdiğim kodun son halinde algoritma hatalı.

 
if(array[i] == en_buyuk ||array[i] == en_buyuk_ikinci)

yerine

if(array[i] == en_buyuk)

yazılırsa kod tamamen aynı işlemi yapıcak. (array[i] == en_buyuk_ikinci) kontrolü işlemciye fazladan gereksiz işlem yaptırmaktan öteye gitmez.



Genel programlama mantığını öğrendikten sonra daha iyi algoritmalar çıkartabilirsin. Bir şeyi yapmak için birden çok metod olabilir. Aşağıdaki link anlatmak istediğimi fikir olarak gösterebilir.

http://mathbits.com/MathBits/CompSci/Arrays/Sorting.htm

Anladım ben de kitaba göre konuyu bitirdikten sonra alıştırmalara geçiyordum ama şimdi kitabı bitirip alıştırmaları en son yapıcam hem tek tip algoritma yerine farklı farklı algroitmalar kullanmış olurum


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

Arkadaşlar bu yıl C dersi görmeye başladık.

Elimde iki tane kaynak var:
http://www.kadifeli.com/fedon/stdcprtr.php?k_1
http://www1.gantep.edu.tr/~bingul/c/

Hiç birşey bilmiyoruz daha, yeni başladık. Hangisini okuyayım? Ya da sizin bir tavsiyeniz var mı?


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

quote:

Orijinalden alıntı: b111210004

Merhaba arkadaşlar c++ da sarrus kuralını yazmam lazım bana bi fikir sunabilir misiniz acaba teşekkürler şimdiden

Sadece 3x3 ve 2x2 matris ile işlem yapacaksın.

İki class oluştur sarrus2C ve sarrus3C

 
sarrus2C için protected int a[2][2]; public int determinant() { sarrus 2x2 formulu ; return result; }
sarrus3C için protected int a[3][3]; public int determinant() { sarrus 5x5 formulu ; return result }

contructor
sarruc2C::sarrus2C ( int a00, int a01 , a10, a11)
sarruc3C::sarrus3C ( int a00, int a01 , .. , int a21, int a22)

int sarrus3c::determinant ()
{
int i,j,determinant=0,carpim=1;

for(j=0;j<3;j++) {
for(i=0;i<3;i++) {
carpim*= a[i][(i+j)%3];
}

determinant+=carpim; carpim=1;
} //Artı tarafı topladık. Aşağıya eksi taraf kaldı ;)

for(j=5;j>=3;j--) {
for(i=0;i<3;i++) {
carpim*= a[i][(j-i)%3];
}
determinant-=carpim; carpim=1;
} //Eksi tarafı çıkardık. Bitti.
return determinant;
}

cout << "Sonuc " << sarrus3C.determinant << endl;


sarrus2C::determinant() //Yukarıdakine göre yazabilirsin sanırım ve kodu C++ syntaxine uydurmak kaldı. Toparla da sonucu görelim.





< Bu mesaj bu kişi tarafından değiştirildi garui -- 12 Ekim 2012; 1:03:14 >

G
13 yıl
Yüzbaşı

quote:

Orijinalden alıntı: Bilim Hayvanı

Orijinalden alıntı: garui


İkinize de çok teşekkür ederim kitapta nasıl ilerlemem gerektiğini de anladım sağolun

Rica ederim. Burada önemli olan algoritma mantığı. Bu tip küçük programlarda koddan çok algoritma önemlidir. Algoritmayı düşünüp bunu koda aktarıcaksın. Mesela verdiğim kodun son halinde algoritma hatalı.

 
if(array[i] == en_buyuk ||array[i] == en_buyuk_ikinci)

yerine

if(array[i] == en_buyuk)

yazılırsa kod tamamen aynı işlemi yapıcak. (array[i] == en_buyuk_ikinci) kontrolü işlemciye fazladan gereksiz işlem yaptırmaktan öteye gitmez.



Genel programlama mantığını öğrendikten sonra daha iyi algoritmalar çıkartabilirsin. Bir şeyi yapmak için birden çok metod olabilir. Aşağıdaki link anlatmak istediğimi fikir olarak gösterebilir.

http://mathbits.com/MathBits/CompSci/Arrays/Sorting.htm

Anladım ben de kitaba göre konuyu bitirdikten sonra alıştırmalara geçiyordum ama şimdi kitabı bitirip alıştırmaları en son yapıcam hem tek tip algoritma yerine farklı farklı algroitmalar kullanmış olurum

Alıntıları Göster
quote:


Anladım ben de kitaba göre konuyu bitirdikten sonra alıştırmalara geçiyordum ama şimdi kitabı bitirip alıştırmaları en son yapıcam hem tek tip algoritma yerine farklı farklı algroitmalar kullanmış olurum

Bence alıştırmalara yine de göz at. En azından bak hıı şunu iki for a soksam buna bir while koysam onu ekrandam alsam şeklinde. Olmadı birini ikisini yaz; compile et; sonucu ekranda gör (zevk de alırsın böylece). Elin kod yazmaya alışşın. En iyi yazarken sindiriliyor bu iş. Tabi benim fikrim.





< Bu mesaj bu kişi tarafından değiştirildi garui -- 12 Ekim 2012; 1:02:07 >
Bu mesaja 1 cevap geldi.
B
13 yıl
Yüzbaşı

quote:

Orijinalden alıntı: garui

quote:


Anladım ben de kitaba göre konuyu bitirdikten sonra alıştırmalara geçiyordum ama şimdi kitabı bitirip alıştırmaları en son yapıcam hem tek tip algoritma yerine farklı farklı algroitmalar kullanmış olurum

Bence alıştırmalara yine de göz at. En azından bak hıı şunu iki for a soksam buna bir while koysam onu ekrandam alsam şeklinde. Olmadı birini ikisini yaz; compile et; sonucu ekranda gör (zevk de alırsın böylece). Elin kod yazmaya alışşın. En iyi yazarken sindiriliyor bu iş. Tabi benim fikrim.

Ucundan bakarım artık Şimdi amacım kitabın c bölümünü kabataslak üstünden geçip daha sonra ayrıntılara girmek 1-2 haftada for, while gibi şeylerin hepsini öğrenirim sonrası alıştırma problem çözmeye dayalı olur diye düşünüyorum. Ayrıca kod yazıp bitirdikten sonra çalışıp hiç hata vermemesi çok güzel bi' his



G
13 yıl
Yüzbaşı

quote:

Orijinalden alıntı: gokhanyigit

quote:

Orijinalden alıntı: £XE

quote:

Orijinalden alıntı: gokhanyigit

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.



Hoca pascal üçgeni ile ilgili ödev verdi. Ben c++ ile yapmaya çalıştım. Program çalışıyor gibi ama hoca bize 1000. sıradaki rakamları yazdırın diyor. Haliyle o sıradaki rakamlar 30-40 basamaktanda fazladır sanırım. Ben c++ ile unsigned long tipini kullanıp 9 basamaklı sayılara kadar çıktım. Ama 10. basamak ve üzerinde bocalıyor program.

Sizin bu konuda bilginiz var mı? 40-50 basamaklı değişken tipi oluşturamaz mıyım?


http://drzeki.com/degiskenler-degiskenlerin-tanimlanmasi-ve-sabitler.html şuraya bakarmısın bi


Değişkenlerin tanımlanması, tipleri falan araştırdım ama bu verdğiniz sayfadaki tipler 9-10 basamağa kadar sayı tutuyor galiba. Çok çok daha büyük basamaklar için olmuyor.

GMP kütüphanesine bakabilirsin http://gmplib.org/ . Bunlar la baya çıkabilirsin.


veya

unsigned long long int = uint64_t kadardır yani 8byte.

unsigned long long int = 18446744073709551615ULL; kadar rakama çıkabilirsin.

veya kendin yazıcaksın. Carry Flag sanırım duymussundur. Buna benzer davranişta bira kod yazabilirsin.

http://stackoverflow.com/questions/6659414/efficient-128-bit-addition-using-carry-flag

quote:


http://stackoverflow.com/questions/6659414/efficient-128-bit-addition-using-carry-flag

struct my_uint128_t {
unsigned long hi;
unsigned long lo;
};

my_uint128_t increment128_3(my_uint128_t x)
{
const unsigned long hiAdd=0x0000062DE49B5241;
const unsigned long loAdd=0x85DC198BCDD714BA;

x.lo += loAdd;
x.hi += hiAdd + (x.lo < loAdd); <-- Burası carry flag işlemi oluyor. Eğer x.hi limiti aşarsa 3 ve ya 4 lü structlar kullanıcaksın.
return x;
}
http://stackoverflow.com/questions/6659414/efficient-128-bit-addition-using-carry-flag


Mesela,

 
/* Aslında 257_t çünkü toplama fonsiyonunda last_caryy 1 veya 0 olabilir. */
struct my_uint264_t {
uint64_t hhi;
uint64_t hlo;
uint64_t hi;
uint64_t lo;
uint8_t last_carry;
};

my_uint264_t increment264(my_uint264_t x)
{
const uint64_t hhiAdd=0x0000062DE49B5241;
const uint64_t hloAdd=0x85DC198BCDD714BA;
const uint64_t hiAdd=0x0000062DE49B5241;
const uint64_t loAdd=0x85DC198BCDD714BA;

x.lo += loAdd;
x.hi += hiAdd + (x.lo < loAdd);
x.hlo += hloAdd + (x.hi < hiAdd);
x.hhi += hhiAdd + (x.hlo < hloAdd);
x.last_carry = (x.hhi < hhiAdd);
return x;
}

.
.
.
cout << "Toplam sonuc : " << x.last_carry << x.hhi << x.hlo << x.hi << x.lo << endl;



Ayrıca linki okursan gcc'nin direl uint128_t desteği varmiş. Sanırım bu microsoft compiler için de varmış.

veya string yoluyla bu işi yapmış biri var.

http://ideamonk.blogspot.com/2008/10/adding-large-numbers-in-c.html





< Bu mesaj bu kişi tarafından değiştirildi garui -- 12 Ekim 2012; 2:57:29 >