Linux Mint Türkiye
Diğer => Konu Dışı => Konuyu başlatan: Quaoar - 22 Haziran 2014, 12:30:09
-
Merhaba, bir kaç gün önce c++ öğrenmeye başladım. Basit programcıklar yazarak kendimi geliştirmeye çalıştırıyorum. Yazdığım kodları benim gibi yeni başlayanlara yararlı olması için paylaşıyorum. Eğer sizdede örnek programlar varsa bana çok yararı olacaktır. Teşekkürler.
Asal Sayı Bulma Programı
#include <iostream>
using namespace std;
int main() {
int i,a,sayi;
cout<<"Asal Sayı Bulma Aracı"
"\nİlk sütun sırayı, ikinci sütun asal sayıyı belirtir.\n";
cin>>sayi;
for (i=2;i<sayi;i+=1)
{
a=i;
if (a==2)
{
cout<<"\n1- ";
cout<<a;
}
else if (a==3)
{
cout<<"\n2- ";
cout<<a;
}
else if (a==5)
{
cout<<"\n3- ";
cout<<a;
}
else if (a==7)
{
cout<<"\n4- ";
cout<<a;
}
if (a%2!=0 && a%3!=0 && a%5!=0 && a%7!=0)
{
int sira;
cout<<"\n";
sira=sira+1;
cout<<sira;
cout<<"- ";
cout<<a;
}
}
return 0;
}
Selsiyus Fahrenayt Dönüştürücü
#include <iostream>
using namespace std;
int main() {
int secenek,cderece,fderece,cfdere,fcdere;
cout << "Celcius-Fahrenait Dönüştürücü" << endl;
cout<<"\n1-Fahrenait'ı Celcius'a dönüştür.\n"
"2-Celcius'u Fahrenait'a dönüştür.\n"
"Seçim: ";
cin>>secenek;
if (secenek==1)
{
cout<<"Fahrenait birimindeki sıcaklığı girin: ";
cin>>cderece;
fcdere=(cderece-32)/1.8;
cout<<fcdere;
}
else if (secenek==2)
{
cout<<"Celcius birimindeki sıcaklığı girin: ";
cin>>fderece;
cfdere=fderece*1.8+32;
cout<<cfdere;
}
else
cout<<"Geçerli bir seçenek girin.";
return 0;
}
Hesap Makinesi
#include <cstdlib>
#include <iostream>
using namespace std;
int main()
{
cout<<"*******************************************************************************"<<endl;
cout<<"* *"<<endl;
cout<<"* HESAP MAKINESI *"<<endl;
cout<<"* *"<<endl;
cout<<"* *"<<endl;
cout<<"*Toplama icin: + *"<<endl;
cout<<"*Cikarma icin: - *"<<endl;
cout<<"*Bolme icin: / *"<<endl;
cout<<"*Carpma icin: * *"<<endl;
cout<<"*Ondalik sayilar icin '.' kullanin. *"<<endl;
cout<<"* *"<<endl;
cout<<"* *"<<endl;
cout<<"*******************************************************************************"<<endl;
float sayi1,sayi2,sonuc;
char tur;
cout<<" "<<endl;
cout<<"1. Sayiyi girin:"<<endl;
cin>>sayi1;
cout<<"Islem turunu girin:"<<endl;
cin>>tur;
cout<<"2. Sayiyi girin:"<<endl;
cin>>sayi2;
switch(tur)
{
case '+':
sonuc=(sayi1 + sayi2);
cout<<" = "<<sonuc<<endl;break;
case '-':
sonuc=(sayi1 - sayi2);
cout<<" = "<<sonuc<<endl;break;
case '/':
sonuc=(sayi1 / sayi2);
cout<<" = "<<sonuc<<endl;break;
case '*':
sonuc=(sayi1 * sayi2);
cout<<" = "<<sonuc<<endl;break;
}
return 0;
}
Dik Üçgende Hipotenüsü Bulma
#include <iostream>
#include <math.h>
using namespace std;
int main() {
int yukseklik,taban,hipokare,hipo;
cout << "Hipotenüsü Bulma\n"
"1- Yükseklik(1. dik kenar) girin: ";
cin>>yukseklik;
cout<<"2-Taban uzunluğunu girin: ";
cin>>taban;
hipokare=(taban*taban)+(yukseklik*yukseklik);
cout<<"Hipotenüs uzunluğu: ";
cout<<(hipo=sqrt(hipokare));
return 0;
}
Plakanın Hangi İle Ait Olduğunu Bulma
#include <iostream>
#include <string>
using namespace std;
int main() {
int secenek1;
std::string strIl;
cout << "İl Plaka Kodu Bulma" << endl;
cout<<"Bu uygulama ile plaka kodlarının hangi ile ait olduğunu bulabilirsiniz.\n";
cout<<"Bir plaka girin: ";
cin>>secenek1;
switch(secenek1)
{
case 1:
strIl= "Adana";
break;
case 2:
strIl= "Adıyaman";
break;
case 3:
strIl= "Afyon";
break;
case 4:
strIl= "Ağrı";
break;
case 5:
strIl= "Amasya";
break;
case 6:
strIl= "Ankara";
break;
case 7:
strIl= "Antalya";
break;
case 8:
strIl= "Artvin";
break;
case 9:
strIl= "Aydın" ;
break;
case 10:
strIl= "Balıkesir";
break;
case 11:
strIl= "Bilecik";
break;
case 12:
strIl= "Bingöl";
break;
case 13:
strIl= "Bitlis";
break;
case 14:
strIl= "Bolu";
break;
case 15:
strIl= "Burdur";
break;
case 16:
strIl= "Bursa";
break;
case 17:
strIl= "Çanakkale";
break;
case 18:
strIl= "Çankırı";
break;
case 19:
strIl= "Çorum";
break;
case 20:
strIl= "Denizli";
break;
case 21:
strIl= "Diyarbakır";
break;
case 22:
strIl= "Edirne";
break;
case 23:
strIl= "Elazığ";
break;
case 24:
strIl= "Erzincan";
break;
case 25:
strIl= "Erzurum";
break;
case 26:
strIl= "Eskişehir";
break;
case 27:
strIl= "Gaziantep";
break;
case 28:
strIl= "Giresun";
break;
case 29:
strIl= "Gümüşhane";
break;
case 30:
strIl= "Hakkari";
break;
case 31:
strIl= "Hatay";
break;
case 32:
strIl= "Isparta";
break;
case 33:
strIl= "İçel";
break;
case 34:
strIl= "İstanbul";
break;
case 35:
strIl= "İzmir";
break;
case 36:
strIl= "Kars";
break;
case 37:
strIl= "Kastamonu";
break;
case 38:
strIl= "Kayseri";
break;
case 39:
strIl= "Kırklareli";
break;
case 40:
strIl= "Kırşehir";
break;
case 41:
strIl= "Kocaeli";
break;
case 42:
strIl= "Konya";
break;
case 43:
strIl= "Kütahya";
break;
case 44:
strIl= "Malatya";
break;
case 45:
strIl= "Manisa";
break;
case 46:
strIl= "Kahramanmaras";
break;
case 47:
strIl= "Mardin";
break;
case 48:
strIl= "Muğla";
break;
case 49:
strIl= "Muş";
break;
case 50:
strIl= "Nevşehir";
break;
case 51:
strIl= "Niğde";
break;
case 52:
strIl= "Ordu";
break;
case 53:
strIl= "Rize";
break;
case 54:
strIl= "Sakarya";
break;
case 55:
strIl= "Samsun";
break;
case 56:
strIl= "Siirt";
break;
case 57:
strIl= "Sinop";
break;
case 58:
strIl= "Sivas";
break;
case 59:
strIl= "Tekirdağ";
break;
case 60:
strIl= "Tokat";
break;
case 61:
strIl= "Trabzon";
break;
case 62:
strIl= "Tunceli";
break;
case 63:
strIl= "Şanlıurfa";
break;
case 64:
strIl= "Uşak";
break;
case 65:
strIl= "Van";
break;
case 66:
strIl= "Yozgat";
break;
case 67:
strIl= "Zonguldak";
break;
case 68:
strIl= "Aksaray";
break;
case 69:
strIl= "Bayburt";
break;
case 70:
strIl= "Karaman";
break;
case 71:
strIl= "Kırıkkale";
break;
case 72:
strIl= "Batman";
break;
case 73:
strIl= "Şırnak";
break;
case 74:
strIl= "Bartın";
break;
case 75:
strIl= "Ardahan";
break;
case 76:
strIl= "Iğdır";
break;
case 77:
strIl= "Yalova";
break;
case 78:
strIl= "Karabük";
break;
case 79:
strIl= "Kilis";
break;
case 80:
strIl= "Osmaniye";
break;
case 81:
strIl= "Düzce";
break;
}
cout<<strIl;
return 0;
}
Sayının bölünebilme özelliklerin gösteren program
#include <iostream>
using namespace std;
int main() {
int sayi;
cout << "Sayı Özellikleri" << endl;
cout<<"\nSayı girin: ";
cin>>sayi;
cout<<(sayi%2 == 1 ? "Sayı tek." : "Sayı çift.")<<endl;
cout<<(sayi>0 ? "Sayı pozitif." : "Sayı negatif.")<<endl;
cout<<(sayi%2 == 1 ? "Sayı ikiye kalansız bölünemez." : "Sayı ikiye kalansız bölünebilir.")<<endl;
cout<<(sayi%3 == 0 ? "Sayı üçe kalansız bölünebilir." : "Sayı üçe kalansız bölünemez")<<endl;
cout<<(sayi%5 == 0 ? "Sayı beşe kalansız bölünebilir." : "Sayı beşe kalansız bölünemez.")<<endl;
cout<<(sayi%7 == 0 ? "Sayı yediye kalansız bölünebilir." : "Sayı yediye kalansız bölünemez.")<<endl;
return 0;
}
Sayı tahmin oyunu
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
int tahmin=0,sayi=0,secenek=0,sayac=6,denemesayisi;
cout << "Sayı Tahmin" << endl; // prints Sayı Tahmin
cout<<"1-100 arası bir sayı girin:(6 canınız var)\n";
srand ( time(NULL) );
sayi=rand()%100;
sor:
cin>>tahmin;
if(tahmin>100 || tahmin<0)
{
cout<<"Tahmininiz 0-100 aralığında değil.\n";
goto sor;
}
else if(tahmin<sayi)
{
sayac=sayac-1;
if (sayac==0)
{
cout<<"Kaybettiniz. Çıkmak için 1'e, yeniden oynamak için ise 2'ye basın.";
cin>>secenek;
if (secenek==1)
{
return 0;
}
else if(secenek==2)
{
cout<<"1-100 arası bir sayı girin:\n";
sayi=rand()%100;
goto sor;
}
}
else if(sayac>0)
{
cout<<"Tahmininiz doğru sayıdan küçük.";
cout<<sayac;
cout<<" canınız kaldı.\n";
goto sor;
}
}
else if(tahmin>sayi)
{
if (sayac==0)
{
cout<<"Kaybettiniz. Çıkmak için 1'e, yeniden oynamak için ise 2'ye basın.";
cin>>secenek;
if (secenek==1)
{
return 0;
}
else if(secenek==2)
{
cout<<"1-100 arası bir sayı girin:\n";
sayi=rand()%100;
goto sor;
}
}
else if(sayac>0)
{
cout<<"Tahmininiz doğru sayıdan büyük.";
sayac=sayac-1;
cout<<sayac;
cout<<" canınız kaldı.\n";
goto sor;
}
}
else if(tahmin==sayi)
{
denemesayisi=6-sayac;
cout<<"Cevabı ";
cout<<denemesayisi;
cout<<" denemede buldunuz. Çıkmak için 1'e, yeniden oynamak için ise 2'ye basın.\n";
cin>>secenek;
if (secenek==1)
{
return 0;
}
else if(secenek==2)
{
cout<<"1-100 arası bir sayı girin:\n";
sayi=rand()%100;
goto sor;
}
}
}
Faktoriyel alma
#include <iostream>
using namespace std;
int main()
{
int sayi;
int faktoriyel=1;
int i;
cout<<"Faktöriyel Alma Programı\n";
cout<<"Faktöriyeli alınacak sayıyı girin: ";
cin>>sayi;
for (i=sayi;i>0;i--)
{
faktoriyel=faktoriyel*i;
}
cout<<faktoriyel;
return 0;
}
Belirlenen bir sayıya kadar çift sayıları bulma
#include <iostream>
using namespace std;
int main() {
int sayi,i,a;
cout<<"Çift Sayıları Bulma\n";
cout<<"Kaça kadar olan çift sayılar bulunsun: ";
cin>>sayi;
for (i=2;i>=1;i+=2)
{
a=i;
if (a>sayi)
{
return 0;
}
cout<<"\n";
cout<<a;
}
}
-
Bende başlangıç seviyesindeyim elimde bir sürü pdf var. Seninle istersen iletişime geçebilirim. [member=56]Quaoar[/member]
Küçük bir tavsiye: Dik üçgan hesaplamalarında "int" yerine "double" kullanmanı tavsiye ederim. Çünkü virgüllü çıkar sonuçlar genelde.(Özel üçgenler hariç.)
-
Bende başlangıç seviyesindeyim elimde bir sürü pdf var. Seninle istersen iletişime geçebilirim. [member=56]Quaoar[/member]
Küçük bir tavsiye: Dik üçgan hesaplamalarında "int" yerine "double" kullanmanı tavsiye ederim. Çünkü virgüllü çıkar sonuçlar genelde.(Özel üçgenler hariç.)
Çok memnun olurum şuan kaynak sıkıntısı yaşıyorum doğrusu :). Bu aradaa tavsiyeniz için teşekkürler. Hipotenüsü tam sayı olanlar dışında hepsi yanlış çıkıyordu. Bende neden oluyor diyordum :D
-
Ben de bir kod paylaşayım:
/* Arkadaslar ben burda deneme amacli bir program yazdim. Ve sizinle paylasmak istedim.
* program pek kafa karistirmasin diye cout komutunu fazla yazdim. Bu programda katar dizilerini kullandım
* Umarim faydali olur. Ayrıca puts komutunu oylesine yazdim.Bir acik kaynak sevdalisi olarak kodları
* paylasiyorum.Komutları derledim.Hicbir hata cikmadi.Baslangıcta oldugum icin karısık olabilir fonksiyonlari ogrendikten
* sonra daha guzelini yapacagimi dusunuyorum.Biraz reklam yaptim ama sanirim sorun olmaz.*/
#include <iostream>
#include <conio.h>
using namespace std;
main(){
// Baslangıctaki gorsel. Yapmasi 5 dakikami aldi. Guzel dursun diye fazla komut yazdim.
cout << " ___________________________________________" << endl;
cout << "| |" << endl;
cout << "| --Mehmet Program Kilitleyici-- |" << endl;
cout << "| |" << endl;
cout << "| --metrekup-- |" << endl;
cout << "| |" << endl;
cout << "| Web Adresi: |" << endl;
cout << "| --metrekup.host22.com-- |" << endl;
cout << "|___________________________________________|" << endl;
// Sifre sorma komutu
char sifre[40]; //Sifrenin kac hane olacagını degistirebilirsiniz.
int sonuc,hak=3; //Kisinin kac tane hakka sahip olacagını ayarlayabilirsiniz.
while(hak-- > 0){
cout << "Sifreyi giriniz:(3 hakkiniz vardir.)\n";
gets(sifre);
sonuc= strcmp(sifre,"1234"); //Sifre karsılastıma icin strcmp kullandim. 1234 yazan yer sifre yeridir.
if( sonuc==0){
puts("Sifre Dogru.");
cout << "----------------------\n";
cout << "Program cozuluyor....\nProgram basariyla cozuldu.\n"; // Sus olsun diye ekledim.
cout << "*****************************************\n\n\n\n";
//Komutların baslayacagı bolum
//****************************************************************
//****************************************************************
//Program komutlarını bitir.
break;
}
else
puts("Sifre Yanlis.Tekrar deneyin.");
}
cout << "\n\n\n***********************************************\n";
cout << "Program sonlandirilmistir. Iyi gunler dileriz.\n";
cout << "------------------------------------------------\n";
cout << "Web Adresi: \nmetrekup.host22.com\n"; //Bence Reklam yapmak onemlidir.:)
getch();
return 0;
}
Eni boyu girilen bir dikdörtgeni '*' ile çizen program:
#include <iostream>
#include <conio.h>
using namespace std;
void dikdortgen(int en, int boy){
for(int y=1;y<=boy;y++){
for(int x=1;x<=en;x++){
cout << "*";
}
cout << endl;
}
}
main() {
int e,b;
cout << "Dikdortgen'in enini giriniz.";
cin >> e;
cout << "Dikdortgen'in boyunu giriniz.";
cin >> b;
dikdortgen(e,b);
getch();
return 0;
}
-
Örnekler için teşekkürler. Dün C++ Temel Öğrenim Kılavuzu'nu(Herbert Schildt) aldım. En baştan başladım tekrar. Ayrıca ikinci kod örneğinizi anlayamadım. Conio.h sadece windowsda olduğundan dolayıda test edemedim. x'in nasıl yatay, y'nin nasıl dikey olarak çiziliceğini nasıl belirlediniz? Teşekkürler.
-
Conio.h nasıl linux'te kullanılır özelden anlatabilirim. İkinci örnekte içi dolu bir dikdörtgen çiziyor. Bu sayede algoritma daha kolay oluyor. Mesela 3x4 çizerken alt alta 3 satıra 4 tane '*' koyuyor.
-
Ben içi boş olarak düşünmüştüm. Anladım şimdi :) Bu arada Googledan buldum nasıl yapıldığını tekrar teşekkürler
-
Bugünün tarihi ve doğum tarihini girdikten sonra ne kadar süre yaşadığını gösteren program:
#include <iostream>
using namespace std;
struct tarih{
int gun,ay,yil;
};
struct tarih yas(struct tarih,struct tarih);
int main(){
struct tarih bugun,dogum,sonuc;
cout << "Bugunun tarihini girin(gun,ay,yil):" << endl;
cin >> bugun.gun >> bugun.ay >> bugun.yil;
cout << "Dogum tarihinizi girin(gun,ay,yil):" << endl;
cin >> dogum.gun >> dogum.ay >> dogum.yil;
sonuc=yas(bugun,dogum);
cout << sonuc.yil<<" yil " <<sonuc.ay << " ay " <<sonuc.gun << " gundur. Hayattasin\nYasamaya ";
system("PAUSE");
return 0;
}
struct tarih yas(struct tarih x,struct tarih y){
struct tarih sonuc={0,0,0};
if(x.gun<y.gun){
x.ay-=1;
sonuc.gun=30+x.gun-y.gun;
}else sonuc.gun=x.gun-y.gun;
if(x.ay<y.ay){
x.yil-=1;
sonuc.ay+=12+x.ay-y.ay;
} else sonuc.ay+=x.ay-y.ay;
sonuc.yil+=x.yil-y.yil;
return sonuc;
}
-
Kod örneği için teşekkür ederim. Fakat program doğum tarihini istemeden direk geçiyor. Bende ki çıktı bu:
Bugunun tarihini girin(gun,ay,yil):
17,07,2014
Dogum tarihinizi girin(gun,ay,yil):
4196384 yil 0 ay 16 gundur. Hayattasin
-
Bende hiç sorun çıkartmıyor. Bir kez daha denedin mi?
-
Bende hiç sorun çıkartmıyor. Bir kez daha denedin mi?
Denedim tekrardan sonuç aynı belki derleyicide hata vardır.
-
Ben buradaki (http://forum.linuxmint.net.tr/index.php?topic=1313.0) şekilde derledim ve sorun çıkartmadı.
-
Teşekkürler deneyeceğim.
-
Evet bir sayı tahmin oyununun kodları :D:
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
int menu();
int sayi_ur();
int incele(int);
int oyun();
int menu(){
int a;
cout << "Sayi tahmin oyununa hosgeldiniz." << endl
<< "Oyunda bilgisayar 1 ile 100 arasinda bir sayi uretecek" << endl
<< "ve siz bilmeye calisacaksiniz."<<endl
<< "Dikkat !! Lutfen programa harf girmeyiniz.!!" <<endl
<< "Oynamak icin 1'e Cikis icin 2'ye basiniz";
cin >> a;
if(a==1){
oyun();
}
else if(a==2){
return 2;
}
else {
cout << "\n\nHatali Giris !!! \n";
menu();
}
return 3;
}
int sayi_ur(){
int a;
srand(time(NULL));
a = rand() %100 +1;
return a;
}
int incele(int a){
if(a<1 || a>100){
cout << "\nHatali Giris !!! \n";
return 0;
}
else {
return a;
}
}
int main(){
menu();
system("PAUSE");
return 0;
}
int oyun(){
int rastsayi,sayac=0,puan=100;
int tahmin;
rastsayi = sayi_ur();
while(tahmin != -1){
cout << "\n1 ile 100 arasinda tahmin yapiniz:";
cin >> tahmin;
tahmin = incele(tahmin);
if(tahmin==0){
continue;
}
sayac ++;
if(tahmin== rastsayi) {
cout << "Tebrikler " << sayac << " seferde bildiniz.";
break;
}
else if(tahmin > rastsayi){
cout << "Daha kucuk tahmin yapmalisiniz.";
puan -=10;
}
else {
cout << "Daha buyuk tahmin yapmalisiniz.";
puan -=10;
}
}
cout << "Puaniniz 100 uzerinden " << puan << endl
<< "Tekrar oynamak icin 1'e Cikis icin 2'ye basiniz." << endl;
int a;
cin >> a;
if(a==1){
menu();
}
else{
return 0;
}
return 2;
}
-
Evet bir sayı tahmin oyununun kodları :D:
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
int menu();
int sayi_ur();
int incele(int);
int oyun();
int menu(){
int a;
cout << "Sayi tahmin oyununa hosgeldiniz." << endl
<< "Oyunda bilgisayar 1 ile 100 arasinda bir sayi uretecek" << endl
<< "ve siz bilmeye calisacaksiniz."<<endl
<< "Dikkat !! Lutfen programa harf girmeyiniz.!!" <<endl
<< "Oynamak icin 1'e Cikis icin 2'ye basiniz";
cin >> a;
if(a==1){
oyun();
}
else if(a==2){
return 2;
}
else {
cout << "\n\nHatali Giris !!! \n";
menu();
}
return 3;
}
int sayi_ur(){
int a;
srand(time(NULL));
a = rand() %100 +1;
return a;
}
int incele(int a){
if(a<1 || a>100){
cout << "\nHatali Giris !!! \n";
return 0;
}
else {
return a;
}
}
int main(){
menu();
system("PAUSE");
return 0;
}
int oyun(){
int rastsayi,sayac=0,puan=100;
int tahmin;
rastsayi = sayi_ur();
while(tahmin != -1){
cout << "\n1 ile 100 arasinda tahmin yapiniz:";
cin >> tahmin;
tahmin = incele(tahmin);
if(tahmin==0){
continue;
}
sayac ++;
if(tahmin== rastsayi) {
cout << "Tebrikler " << sayac << " seferde bildiniz.";
break;
}
else if(tahmin > rastsayi){
cout << "Daha kucuk tahmin yapmalisiniz.";
puan -=10;
}
else {
cout << "Daha buyuk tahmin yapmalisiniz.";
puan -=10;
}
}
cout << "Puaniniz 100 uzerinden " << puan << endl
<< "Tekrar oynamak icin 1'e Cikis icin 2'ye basiniz." << endl;
int a;
cin >> a;
if(a==1){
menu();
}
else{
return 0;
}
return 2;
}
Çok güzel bir örnek teşekkürler metreküp. :) C++'da yazdığım Qt Web Browser:https://www.dropbox.com/s/ddnggtbzp1ed6s7/webbrowser.tar.gz
Şu anda notepad uygulaması yapmaya çalışıyorum. Dosya açma ve kaydetmeyi halledebilirsem paylaşırım ;D
-
Vayy. Sen QT'ye mi başladın? Peki kaynak nerden buldun ? Ben internette aradım ama pek bulamamıştım
-
Kaynak olarak Qt Creator IDE'sinin(Visual Studio gibi tamamlama özelliği var) kendisini QT'nun websitesini (http://qt-project.org/doc/) ve tabiki stack overflow'u kullandım. :D
-
Ben de Türkçe kaynak arıyordum. Ama hala bulamadım. Malum ingilizcem o kadar iyi değil de. O yüzden hiç başlamadım.
-
Şimdi vereceğim kodun amacı kullanıcıdan sayı istediğimizde harf girerse programın çökmesini önlemekti. Ama kodlar şimdilik hatalı çalışıyor. İsteyen düzeltip kullansın diye paylaşıyorum. En azından basit bir temel oluşturmaya çalıştım.
#include <iostream>
#include <cstring>
using namespace std;
int usal(int a,int b){
for (int i=1;i<b;i++){
a=a*a;
}
return a;
}
int kontrol(char dizi[]){
int i,k;
int a;
i=strlen(dizi);
for(int j=0;j<i;j++){
dizi[j]=a;
if(a>='A' & a<='Z'){
return 0;
break;
}
else if(a>='a' & a<='z'){
return 0;
break;
}
else if(a>='0' & a<='9'){
cout << "Dogru giris";
}
else {
return 0;
break;
}
}
int sayi=0;
int gercek=1;
for(int j=0;j<=i;j++){
dizi[j]=k;
sayi= k * usal(10,(i-1));
gercek += sayi;
}
return gercek;
}
int main(){
char dizi[10];
cout << "Bir sayi girin:" << endl;
gets(dizi);
int sayi;
sayi = kontrol(dizi);
cout << "Girdiginiz sayi " << sayi << " idi." <<endl;
system("PAUSE");
return 0;
}
Yukarıdaki örnek karmaşık. İsteyen olursa diye en basit halini de paylaştım.
#include <cstdlib>
#include <iostream>
using namespace std;
int main(){
char tus;
cout<<"Bir sayi giriniz=";
cin>>tus;
if(tus>='A' & tus<='Z'){
cout<<"harf tusuna basildi"<<endl;
}
else if(tus>='a' & tus<='z'){
cout << "gecersiz islem. " << tus << " harfini girdiniz." <<endl;
}
else if (tus>='0' & tus<='9'){
cout<<"sayi tusuna basildi. " << tus << " sayisini girdiniz."<<endl;}
else {
cout << "gecersiz islem \"" << tus << "\" karakterine bastiniz." <<endl;
}
main();
system("PAUSE");
return EXIT_SUCCESS;
}
Bu örnekte sadece 1 karaker inceleyebiliyor. 1'den fazla yazarsanız hata vermiyor ama girdiğiniz her karakteri ayrı ayrı inceliyor.
Basit örneğin çalışma çıktıları:
Çıktı 1:
Bir sayi giriniz=)
gecersiz islem ")" karakterine bastiniz.
Bir sayi giriniz=1
sayi tusuna basildi. 1 sayisini girdiniz.
Bir sayi giriniz=a
gecersiz islem. a harfini girdiniz.
Bir sayi giriniz= }
gecersiz islem "}" karakterine bastiniz.
Bir sayi giriniz=
Çıktı 2:
Bir sayi giriniz=123]a
sayi tusuna basildi. 1 sayisini girdiniz.
Bir sayi giriniz=sayi tusuna basildi. 2 sayisini girdiniz.
Bir sayi giriniz=sayi tusuna basildi. 3 sayisini girdiniz.
Bir sayi giriniz=gecersiz islem "]" karakterine bastiniz.
Bir sayi giriniz=gecersiz islem. a harfini girdiniz.
Bir sayi giriniz=
Üzülerek söylemeliyim ki yukarıdaki kodlar Ctrl + 3 kombinasyonu durumunda programın çökmesini engelleyemiyor.
-
Ben bunu yapmaya çalıştığımda sayıları bile kabul etmiyordu. ;D Sizinki iyi bir örnek olmuş sayı tahmin oyunu yapmaya çalışıyorum şimdi onu kullanarak. :)
Bu arada notepad uygulamasını bitirdim https://github.com/egeoz/qNotepad
-
Benim amacım c++ ile ilerleyip ardından c'ye geçip sonrasında pyton yada java öğreneceğim. Qt Creator öğrenmeyi düşünüyordum ama vazgeçtim. Nasıl olsa alacağım kitapların birinde görsel programlama yapmayı öğretecektir.
Ben bunu yapmaya çalıştığımda sayıları bile kabul etmiyordu. ;D Sizinki iyi bir örnek olmuş sayı tahmin oyunu yapmaya çalışıyorum şimdi onu kullanarak. :)
Bİrisinden ilham almasaydım ben de yapamayacaktım. Hatta benim için imkansız gibiydi.
Sana bir şey soracağım sen şimdi sadece Qt Creator mı kullanıyorsun? Kendine nasıl bir yol çizdin ?
-
Evet sadece qtcreator kullanıyorum. Belli bir yolum yok doğrusu. :D Bunları daha önce PyQt da yapmıştım şimdi de c++ a geçiriyorum sadece :)
-
Sayenizde qtdaki sayı tahmin oyununu da bitirdim. :) (githuba yüklememin sebebi öğrenmeye çalışmamdır yoksa basit bir örnekten başka birşey değiller :D)
https://github.com/egeoz/CNumber-Guessing
Düzenleme:
QT'da yeni yaptığım hesap makinesi ;D
https://github.com/egeoz/qCalc
-
Merhaba Arkadaşlar, benim bir sorum olacak:
Yazdığımız kod kullunıcının yön tuşuna basmasını isteyecek ve kullanıcı bastıktan sonra enter demesine gerek kalmadan hangi yön tuşu olduğunu hemen söyleyecek. Yani program hem yön tuslarını algılayacak hem de kullunıcı enter demeden veriyi almasını sağlayacak. Yaptığım araştırma sonucunda birçok kodla karşılaştım. Ama kodların hiçbiri istediğim bilgiyi elde edebilmemi sağlamadı. Ayrıca kafam allak bullak oldu.En azından ilham veren bir ipucuna da razıyım.
-------------------------------------------
Ekleme: İnternette bunun Windows'ta nasıl yapılacağını söyleyen bir sürü kaynak var ama ben Linux'ta 'windows.h' kütüphanesini kullanmadan nasıl yapılacağını öğrenmek istiyorum
-
Ben bunu araştırmıştım. Linuxda konsol altında "ncurses" kütüphanesini kullanabilirsin. Ya da Windows altında "conio.h" kütüphanesi.
-
Kardeş ben ipucu istedim sen bana ipin tamamını verdin. :) :)
Çok sağol.
-
Rica ederim :)
-
GTK kütüphanesi kullanarak yaptığım 2 adet sayıyı toplayan arayüz destekli program : http://aliihsanuyar.net/kaynak/gtkcpptoplama.rar
SDL kütüphanesinde nesne oluşturmak ve klavye tuşları aracılığıyla o nesneyi hareket ettirmek.
/*
Toor
*/
#include <SDL/SDL.h>
int main(int argc, char** argv)
{
SDL_Init(SDL_INIT_EVERYTHING);
SDL_Surface *window;
window=SDL_SetVideoMode(600,360,32,SDL_SWSURFACE);
bool activating=true;
bool key[4] = {0,0,0,0};
const int FPS = 30;
Uint32 start;
SDL_Rect snake;
snake.x=10;
snake.y=10;
snake.w=60;
snake.h=10;
Uint32 snkcolor = SDL_MapRGB(window->format,0xff,0xff,0xff);
Uint32 backcolor = SDL_MapRGB(window->format,0x00,0x00,0x00);
while(activating)
{
start = SDL_GetTicks();
SDL_Event signal;
while(SDL_PollEvent(&signal))
{
switch(signal.type)
{
case SDL_QUIT:
activating=false;
break;
case SDL_KEYDOWN:
switch(signal.key.keysym.sym) {
case SDLK_UP:
key[0] = 1;
break;
case SDLK_LEFT:
key[1] = 1;
break;
case SDLK_DOWN:
key[2] = 1;
break;
case SDLK_RIGHT:
key[3] = 1;
break;
}
break;
case SDL_KEYUP:
switch(signal.key.keysym.sym) {
case SDLK_UP:
key[0] = 0;
break;
case SDLK_LEFT:
key[1] = 0;
break;
case SDLK_DOWN:
key[2] = 0;
break;
case SDLK_RIGHT:
key[3] = 0;
break;
}break;
}}
if(key[0])
{
snake.y--;
}
if(key[1])
{
snake.x--;
}
if(key[2])
{
snake.y++;
}
if(key[3])
{
snake.x++;
}
SDL_FillRect(window,&window->clip_rect,backcolor);
SDL_FillRect(window, &snake, snkcolor);
SDL_Flip(window);
if(1000/FPS > SDL_GetTicks()-start) {
SDL_Delay(1000/FPS-(SDL_GetTicks()-start));
}
}
SDL_Quit();
return 0;
}
-
Hocam sana tavsiyem bir proje seç,ve projeyi yapmak için uğraş o sayede çok iyi şeyler öğreneceksin.
Matematik hesapları,eğer matematiksel program yazmayacaksan bir işine yaramaz.
Mesela linux terminaline tam erişim sağlamayı deneyebilirsin,program kurma,paketlere erişme,linux terminaline resim çizdirme vs,neden olsa bu C++,sınırı yok bunun