Tam Sürümünü Görmek İçin : Arkadaşlar lütfen yardım !Hata nerede?
#include <iostream>
#include <string>
using namespace std;
class Student{
public:
string name;
string surname;
int midterm;
int final;
};
int main()
{
Student *arr;
arr = new Student[10];
int avg;
for(int i = 0; i < 10; i++)
{
cout << "Enter the name of the student: " ;
cin >> arr[i].name;
cout << "Enter the surname of the student: ";
cin >> arr[i].surname;
cout << "Enter the midterm point: ";
cin >> arr[i].midterm;
cout << "Enter the final point: ";
cin >> arr[i].final;
}
for(i = 0; i < 10; i++)
{
avg = arr[i].midterm * 0.4 + arr[i].final * 0.6;
cout << arr[i].name << " " << arr[i].surname << "Average : " << avg << endl;
}
return 0;
}
acehreli
28/04/2005, 00:54
Normalde hata ile ilgili az da olsa bilgi vermek iyi oluyor. Yoksa tahminler yurutmek zorunda kaliyoruz. En azindan ne olmasini bekledigini ve ne sonuc aldigini yazabilirsin.
Program C++ kurallarina gore yazilmadigi icin bir derleme hatasi aldim. O hatadan bahsettigini dusunecegim:
for (i = 0; /* ... */)
satirinda 'i' diye bir nesne kullaniyorsun ama derleyici o nesnenin ne oldugunu bilmiyor. Belki de bir onceki for dongusunde kullanilan 'i'yi kastediyorsundur ama o 'i'nin yasami yalnizca ilk for dongusu ile sInIrlidir.
Ali
programın yaptığı işe göre, int unutulmuş..
ama verilen hata çok tuhaf (MingW de derledim)
1-) error: name lookup of `i' changed for new ISO `for' scoping ( ikinci i için veriyor)
2-) error: using obsolete binding at `i' ( ilk i için veriyor)
oysa normalde scope dışı kullanımda:
for( int i = 0; i < 10; i++)
{
int a=10;
}
...
for(int i ; i <a ; i++) {...}
error: `a' undeclared (first use this function)
bu i ye ayrı bir muamelesi var derleyicinin. :confused:
acehreli
28/04/2005, 03:26
for satirinda tanimlanan nesnelerin hangi kapsamda gecerli olduklari ile ilgili kural C++'in standartlastirilmasi asamasi sirasinda degistigi icin, oyle ozel bir durumda ozel bir mesaj geliyor. (Bu arada, ming'in kullandigi da g++.)
Eski kurallara gore, turgay'in kullandigi kod gecerliydi.
'a' nesnesinde ise hicbir ilginclik yok; o zaten {} ile belirlenen bir kapsam icinde yasiyor. Karisiklik for satirinda belirlenenlerle ilgili.
Ali
Ya arkadaşlar hatası bu kodlar çalışmıyo. Ne hata veriyo nede çalışıyo. Benim derleyici mi bozuktur anlamadım gitti. C++ yi yeni görmeye başladık pek fazlada bilgim yok.Bu kodların başka alternetifte yazılımı olabilirmi ?
Lütfen yardım edin çıldırmama az kaldı. Yardımlarınız için şimdiden teşekkürler.
acehreli
28/04/2005, 21:37
turgay, herhalde ilk mesajimda soylediklerimi anlamamissin. (Anlamadiklarini neden sormadigini da ben anlamiyorum.) Bir daha deniyorum:
O ikinci for dongusundeki 'i' tanimlanmamis. Birinci dongude oldugu gibi, onu da tanimlaman gerekiyor:
for(int i = 0; i < 10; i++)
Ali
aslında for daki bu uyuzluga ben sadece visual c++ ta karsılastım.. (gonderdigin kodlar hiçbir degisiklik yapmadan sorunsuz calısıyo).. kullandıgım diger derleyicilerde i yi tekrar tanımlaman gerekiyo... yani acehreli kardesimizin dedigi visual studio 2003 disinda dogru... visual studio tanımlasanda olur tanımlamasanda... ama tutarlılık acısından i yi tekrar tanımlamak en mantıklısı...
Derleyici mesajları;
Derleyici: Default compiler
Building Makefile: "C:\Dev-Cpp\Makefile.win"
make... çalıştırılıyor
make.exe -f "C:\Dev-Cpp\Makefile.win" all
g++.exe -c İsimsiz1.cpp -o İsimsiz1.o -I"C:/Dev-Cpp/lib/gcc/mingw32/3.4.2/include" -I"C:/Dev-Cpp/include/c++/3.4.2/backward" -I"C:/Dev-Cpp/include/c++/3.4.2/mingw32" -I"C:/Dev-Cpp/include/c++/3.4.2" -I"C:/Dev-Cpp/include"
g++.exe: ¦simsiz1.cpp: No such file or directory
g++.exe: no input files
make.exe: *** [İsimsiz1.o] Error 1
Çalıştırma iptal edildi
Abi for(int i = 0; i < 10; i++) olarak ta denedim ben. ıı-ıııh gene aynı ya. benim yerime siz bi denermisiniz.Çünkü ben bu programda daha önce çalıştırdığım kodlarıda çalıştıramıyorum.Sorun nerede bende bilmiyorum.Kafam allak bullak oldu ya.Programı silip tekrar yükledim. Denemediğim şey kalmadı. WAllaha çaresiz kaldım.Elimkolum bağlı kaldı. Bi format kaldı denemediğim. Format atıp herşeyi baştan kurmayı, düşünüyorum. Eğer siz deneyip çalıştırabilirseniz, çalıştırmadan verecem hocaya.Saygılarımla.
acehreli
29/04/2005, 03:53
Sonunda hatanin ne oldugunu soyledigin icin tesekkurler. Su ana kadar yuruttugumuz butun tahminler bosa gitmis oldu! :)
Hata mesajina bakalim: "g++.exe: ¦simsiz1.cpp: No such file or directory"
Turkce olarak: "¦simsiz1.cpp adinda dosya veya dizin yok"
Benim anladigima gore, icinde Turkce'ye has karakterlerin bulundugu dosya adlari senin calistigin ortamda sorun cikartiyor. Onceki satirlarda buyuk noktali i gorunuyorken, sonradan garip bir karaktere donusuyor.
Bence dosyanin ismini kucuk harflerle isimsiz1.cpp olarak degistirdiginde derleme baslayacak ve bastan konustugumuz for dongusundeki i degiskeni sorunuyla karsilasacaksin. Ama onu nasil giderecegini biliyorsun zaten...
Ali
:) @Acehreli, @sckz, @m1r1yh1
Ya arkadaşlar size nası teşekkür edeceğimi bilemiyorum. Allah razı olsun sizden. Meğersem türkçe imiş tüm sorun ve dediğiniz gibi bide 'i' değişkeni hepsini hallettim.Artık bende çalıştırabiliyorum. Tüm yardım eden arkadaşlara tekrardan ayrı ayrı teşekkürlerimi sunuyorum. Saygılarımla...
Forum Yazılımı : vBulletin v3.6.8, Copyright ©2000-2008, Jelsoft Enterprises Ltd.