İçeriğe geç
ShiftDelete.Net
Haber ara/ SDN'ye SorGiriş
Haber Akışı SDNTV İnceleme Forum Yapay Zeka Akıllı Telefon Elektrikli Otomobil Oyun ShiftDelete.Net Global Teknoloji Haberleri Mobil Otomobil Donanım Savunma Bilim Sosyal Medya İnternet Giyilebilir Teknoloji Rehber Ürünler Son dakika Yazarlar
  1. Ana sayfa
  2. Topluluk
  3. Programlama
  4. Programlama Dilleri
Programlama Dilleri

Dev C++ Hatası

msegmen12.09.201212 cevap20.052 görüntüleme
2012'den beri27 mesaj
#1
Arkadaşlar geçen gün Deitel&Deitel C ve C++ kitabını satın aldım.İlk iki ünitede hiç sorun çıkmadı ancak üçüncü ünitedeki ( C'de yapısal program geliştirme) sayıcı ve nöbetçi kontrollü döngülerde sorun yaşıyorum.Kitaptaki kodu aynen derleyiciye geçirdiğim halde bir çok hata buluyor ve kodu derlemiyor.Aşağıdaki koda şu hataları veriyor:

* C:\Dev-Cpp\Sınıf Ortalaması.cpp In function `int main()':
*7 C:\Dev-Cpp\Sınıf Ortalaması.cpp expected unqualified-id before '!' token
*7 C:\Dev-Cpp\Sınıf Ortalaması.cpp expected `,' or `;' before '!' token
*8 C:\Dev-Cpp\Sınıf Ortalaması.cpp `toplam' undeclared (first use this function)
* (Each undeclared identifier is reported only once for each function it appears in.)
*10 C:\Dev-Cpp\Sınıf Ortalaması.cpp missing terminating " character
*11 C:\Dev-Cpp\Sınıf Ortalaması.cpp expected primary-expression before ')' token
*13 C:\Dev-Cpp\Sınıf Ortalaması.cpp expected primary-expression before '!=' token
*14 C:\Dev-Cpp\Sınıf Ortalaması.cpp expected primary-expression before ';' token
*17 C:\Dev-Cpp\Sınıf Ortalaması.cpp expected primary-expression before ')' token

#include <stdio.h>
#include <conio.h>
/* Sayıcı kontrollü döngüye bir örnek*/
int main()
{
float ortalama;
int sayici,not,toplam;
toplam=0;
sayici=0;
printf("Notu giriniz: (Cikis icin -1'e basiniz.\n)");
scanf("%d",&not);

while (not!=-1){
toplam=toplam+not;
sayici=sayici+1;
printf("Notu giriniz(Cikis icin -1'e basiniz. \n");
scanf("%d",&not);
}
if (sayici!=0){
ortalama=(float)toplam/sayici;
printf("Sinif ortalamasi %.2f",ortalama);
}
else
printf("Hic not girilmemistir.\n");


getch();
return 0 ;

}

Yardımcı olursanız sevinirim arkadaşlar.

Yardımcı olabilecek kimse yok mu? :(
Cevaplar
2012'den beri35 mesaj
#2
harbi bak şimdi bende anlamadım programda hata ne ki !
(upupup)
2009'den beri4.659 mesaj
#3
bende sorunsuz çalışıyor program dev c de
2012'den beri35 mesaj
#4
cobra11 dedi: ↑
bende sorunsuz çalışıyor program dev c de
denedim bende çalışmadı :S
2008'den beri64 mesaj
#5
float ı double yapıp dener misin birde?
2009'den beri4.659 mesaj
#6
Aithusa dedi: ↑
denedim bende çalışmadı :S
dev c böyle yapıyor arada. programı kapat yeni bir proje oluşturup öyle denermisin bide
2011'den beri3.263 mesaj
#7
Programı c++ projesi içerisinde derlemiş olabilir misin?

Yeni bir c projesi aç ve kodu orada derleyip çalıştırırsan sorun düzelecektir :)

ek: yeni proje açarken açılan pencerenin sağalt tarafında c yada c++ tercihi gibisinden birşey olması gerekiyor. Oradan C'yi seç.
2011'den beri3.263 mesaj
#8
msegmen dedi: ↑
Arkadaşlar geçen gün Deitel&Deitel C ve C++ kitabını satın aldım.İlk iki ünitede hiç sorun çıkmadı ancak üçüncü ünitedeki ( C'de yapısal program geliştirme) sayıcı ve nöbetçi kontrollü döngülerde sorun yaşıyorum.Kitaptaki kodu aynen derleyiciye geçirdiğim halde bir çok hata buluyor ve kodu derlemiyor.Aşağıdaki koda şu hataları veriyor:

* C:\Dev-Cpp\Sınıf Ortalaması.cpp In function `int main()':
*7 C:\Dev-Cpp\Sınıf Ortalaması.cpp expected unqualified-id before '!' token
*7 C:\Dev-Cpp\Sınıf Ortalaması.cpp expected `,' or `;' before '!' token
*8 C:\Dev-Cpp\Sınıf Ortalaması.cpp `toplam' undeclared (first use this function)
* (Each undeclared identifier is reported only once for each function it appears in.)
*10 C:\Dev-Cpp\Sınıf Ortalaması.cpp missing terminating " character
*11 C:\Dev-Cpp\Sınıf Ortalaması.cpp expected primary-expression before ')' token
*13 C:\Dev-Cpp\Sınıf Ortalaması.cpp expected primary-expression before '!=' token
*14 C:\Dev-Cpp\Sınıf Ortalaması.cpp expected primary-expression before ';' token
*17 C:\Dev-Cpp\Sınıf Ortalaması.cpp expected primary-expression before ')' token

#include <stdio.h>
#include <conio.h>
/* Sayıcı kontrollü döngüye bir örnek*/
int main()
{
float ortalama;
int sayici,not,toplam;
toplam=0;
sayici=0;
printf("Notu giriniz: (Cikis icin -1'e basiniz.\n)");
scanf("%d",&not);

while (not!=-1){
toplam=toplam+not;
sayici=sayici+1;
printf("Notu giriniz(Cikis icin -1'e basiniz. \n");
scanf("%d",&not);
}
if (sayici!=0){
ortalama=(float)toplam/sayici;
printf("Sinif ortalamasi %.2f",ortalama);
}
else
printf("Hic not girilmemistir.\n");


getch();
return 0 ;

}

Yardımcı olursanız sevinirim arkadaşlar.

Yardımcı olabilecek kimse yok mu? :(
'not' kelimesi c++ 'da reserved word olarak kullanıldığı için bu isimde kullanıcı değişken tanımlayamıyor. Eğer not değişkeninin ismini değiştirirsen c++ ile de çalıştırabilirsin.
reserved word: programlama dili tarafından kullanılan kelimelerdir. Bu kelimelerle aynı adı taşıyan değişkenler tanımlanamaz. ( if, else, while da birer reserved word tür. http://en.cppreference.com/w/cpp/keyword)

:) umarım yardımcı olabilmisimdir.

c++ 'ın tartışıldığı konularda da bahsettiğim gibi bu dilin IDE(program geliştirme ortamı, dev c++ gibi) ortamları biraz sıkıntılı, hata log'unda belirtilen hataların açıklamaları yeterli değil yada alakasız oluyor çoğu zaman. Programlamaya yeni başlayanlar için bu nedenle önermiyordum c ve c++ :)
msegmen Konuyu açan
2012'den beri27 mesaj
#9
hkncetin dedi: ↑
float ı double yapıp dener misin birde?
Denedim kardeş olmadı. :(
tambjk dedi: ↑
'not' kelimesi c++ 'da reserved word olarak kullanıldığı için bu isimde kullanıcı değişken tanımlayamıyor. Eğer not değişkeninin ismini değiştirirsen c++ ile de çalıştırabilirsin.
reserved word: programlama dili tarafından kullanılan kelimelerdir. Bu kelimelerle aynı adı taşıyan değişkenler tanımlanamaz. ( if, else, while da birer reserved word tür. http://en.cppreference.com/w/cpp/keyword)

:) umarım yardımcı olabilmisimdir.

c++ 'ın tartışıldığı konularda da bahsettiğim gibi bu dilin IDE(program geliştirme ortamı, dev c++ gibi) ortamları biraz sıkıntılı, hata log'unda belirtilen hataların açıklamaları yeterli değil yada alakasız oluyor çoğu zaman. Programlamaya yeni başlayanlar için bu nedenle önermiyordum c ve c++ :)
Not'u note olarak değiştirdim.Hataların bazıları düzeldi ancak hataların bazıları hala devam ediyor.

Düzenleme: Tüm not'ları değiştirmemişim pardon. Sorun çözüldü çok sağol kardeş. :)
2012'den beri15 mesaj
#10
dev c yi bırak code::blocks a gec derim :D

hatta linux a gec gcc ile derle bence
msegmen Konuyu açan
2012'den beri27 mesaj
#11
sinan.nar dedi: ↑
dev c yi bırak code::blocks a gec derim :D

hatta linux a gec gcc ile derle bence
Bir deneyeyim code::blocks 'u.Dev den iyidir diye düşünüyorum.Çok hata alıyorum Dev'de.Ama heralde sorun bende :D

Arkadaşlar bir sorunla daha karşılaştım.İnşallah buna da çözüm getirirsiniz.Kitabın bir alıştırması için bir program yazdım.Ancak ondalık sayı içeren bir veri girdiğimde ya kapanıyor ya da garip şeyler oluyor :). Kod:

#include <stdio.h>
#include <conio.h>
int main()
{
float hspno,bakiye,harcama,kredi,limitkredi,ilkbakiye;
printf("Hesap numaranizi giriniz:");
scanf("%f",&hspno);
printf("\nIlk bakiyeyi giriniz:");
scanf("%f",&ilkbakiye);
printf("\nToplam harcamalarinizi giriniz:");
scanf("%f",&harcama);
printf("\nAldiginiz kredi miktari:");
scanf("%f",&kredi);
printf("\nKredi limitinizi giriniz:");
scanf("%f",&limitkredi);

bakiye=limitkredi+ilkbakiye;

if(bakiye+limitkredi>kredi+harcama){
printf("\n\nHesap numaraniz:%.2f\n",hspno);
printf("Kredi limitiniz:%.2f\n",limitkredi);
printf("Bakiye:%.2f\n",bakiye);
printf("Kredi limitiniz asilmadi.\n");
}
else if (bakiye+limitkredi<kredi+harcama){
printf("Hesap numaraniz:%d\n",hspno);
printf("Kredi limitiniz:%.2f\n",limitkredi);
printf("Bakiye:%.2f\n",bakiye);
printf("Kredi limitiniz asildi.\n");
}


getch();
return 0;
}
2012'den beri15 mesaj
#12
öncelikle ben fedora ortamında çalıştığım için
#include <conio.h> i sildim ve getch(); i sildim
iki değişiklik yaptım ve devam ediyorum.

şimdi bi tane warning aldım

main.cpp:26:36: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘double’ [-Wformat]

yani suradan bahsediyo
printf("Hesap numaraniz:%d\n",hspno);

%d yi %f yapınca problem ortadan kalktı.

ve bundan sonra program çalıştı hata vermeden
çalışma şeklini copy paste yaptım

-------------------------------------
sinannar@sinan Desktop$ g++ -c main.cpp =>burda programı compile ediyorum
sinannar@sinan Desktop$ g++ -o main main.o =>burda programı link ediyorum
sinannar@sinan Desktop$ ./main =>burda programı çalıştırıyorum
Hesap numaranizi giriniz:1


Ilk bakiyeyi giriniz:1


Toplam harcamalarinizi giriniz:1


Aldiginiz kredi miktari:1


Kredi limitinizi giriniz:1




Hesap numaraniz:1.00
Kredi limitiniz:1.00
Bakiye:2.00
Kredi limitiniz asilmadi.
sinannar@sinan Desktop$ =>burda program bitti işte artıkın :)

-------------------------------------

bu arada virgüllü sayı ilede programı denedim çalışıyo istersen ekran cıksını koyarım buraya...
virgüllü sayı bekleyen yerlere sayıları 3,2 diye değil 3.2 diye yani nokta ile yazman gerekiyo umarım programın hatasız çalışır

-------------------------------------
sinannar@sinan Desktop$ ./main
Hesap numaranizi giriniz:1

Ilk bakiyeyi giriniz:3.4

Toplam harcamalarinizi giriniz:4.3

Aldiginiz kredi miktari:4.4

Kredi limitinizi giriniz:33

Hesap numaraniz:1.00
Kredi limitiniz:33.00
Bakiye:36.40
Kredi limitiniz asilmadi.
-------------------------------------
msegmen Konuyu açan
2012'den beri27 mesaj
#13
sinan.nar dedi: ↑
öncelikle ben fedora ortamında çalıştığım için
#include <conio.h> i sildim ve getch(); i sildim
iki değişiklik yaptım ve devam ediyorum.

şimdi bi tane warning aldım

main.cpp:26:36: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘double’ [-Wformat]

yani suradan bahsediyo
printf("Hesap numaraniz:%d\n",hspno);

%d yi %f yapınca problem ortadan kalktı.

ve bundan sonra program çalıştı hata vermeden
çalışma şeklini copy paste yaptım

-------------------------------------
sinannar@sinan Desktop$ g++ -c main.cpp =>burda programı compile ediyorum
sinannar@sinan Desktop$ g++ -o main main.o =>burda programı link ediyorum
sinannar@sinan Desktop$ ./main =>burda programı çalıştırıyorum
Hesap numaranizi giriniz:1


Ilk bakiyeyi giriniz:1


Toplam harcamalarinizi giriniz:1


Aldiginiz kredi miktari:1


Kredi limitinizi giriniz:1




Hesap numaraniz:1.00
Kredi limitiniz:1.00
Bakiye:2.00
Kredi limitiniz asilmadi.
sinannar@sinan Desktop$ =>burda program bitti işte artıkın :)

-------------------------------------

bu arada virgüllü sayı ilede programı denedim çalışıyo istersen ekran cıksını koyarım buraya...
virgüllü sayı bekleyen yerlere sayıları 3,2 diye değil 3.2 diye yani nokta ile yazman gerekiyo umarım programın hatasız çalışır

-------------------------------------
sinannar@sinan Desktop$ ./main
Hesap numaranizi giriniz:1

Ilk bakiyeyi giriniz:3.4

Toplam harcamalarinizi giriniz:4.3

Aldiginiz kredi miktari:4.4

Kredi limitinizi giriniz:33

Hesap numaraniz:1.00
Kredi limitiniz:33.00
Bakiye:36.40
Kredi limitiniz asilmadi.
-------------------------------------
Ben nokta yerine virgül kullanıyormuşum meğer.Sağol çözdüm sorunu :)

Cevabını yaz

Cevap yazmak için giriş yap ya da üye ol. Eski forum kullanıcı adın ve parolanla girebilirsin.